基于1602液晶显示的数字时钟(课程论文).doc

上传人:b****2 文档编号:1031203 上传时间:2022-10-15 格式:DOC 页数:15 大小:146KB
下载 相关 举报
基于1602液晶显示的数字时钟(课程论文).doc_第1页
第1页 / 共15页
基于1602液晶显示的数字时钟(课程论文).doc_第2页
第2页 / 共15页
基于1602液晶显示的数字时钟(课程论文).doc_第3页
第3页 / 共15页
基于1602液晶显示的数字时钟(课程论文).doc_第4页
第4页 / 共15页
基于1602液晶显示的数字时钟(课程论文).doc_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于1602液晶显示的数字时钟(课程论文).doc

《基于1602液晶显示的数字时钟(课程论文).doc》由会员分享,可在线阅读,更多相关《基于1602液晶显示的数字时钟(课程论文).doc(15页珍藏版)》请在冰豆网上搜索。

基于1602液晶显示的数字时钟(课程论文).doc

课程论文首页

院、系(部)

电信系

专业

电信092

班级

2班

学号

910706215

姓名

戴文滨

课程教师

林志雄

课程名称

科研论文与写作

论文题目

基于1602液晶显示的数字时钟

成绩

签字:

年月日

签字:

年月日

基于1602液晶显示的数字时钟

戴文滨

摘要:

基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个简易数字时钟系统。

单片机扩展的LCD显示器用来显示秒、分、时计数单元中的值。

整个设计包括两大部分:

硬件部分和软件部分,以单片机为核心,配以一定的外围电路和软件。

硬件是整个系统的基础,软件部分则要合理、充分地支持和使用系统的硬件,从而完成系统所要完成的任务。

关键词:

单片机1602液晶屏按键闹钟

目前时钟随处可见,随着电子产品的更新速度的加快,各种功能强大,款式新颖的电子产品不断问世。

电子时钟便是这一发展趋势中的代表,各种功能的电子时钟应有尽有,且功能不断更新。

在现有数字电子钟技术的基础上,基于单片机技术原理,设计了一种体积小,误差小,可调整设置、液晶显示、且具有闹钟报时功能的数字电子钟。

1、系统硬件设计

1.1、单片机控制系统:

本设计基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,利用单片机的控制作用通过LCD来直接时、分、秒,并能对其分别进行设置、修改;利用对蜂鸣器的控制来实现闹钟功能。

同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过三个模块:

键盘、芯片、显示屏即可满足设计要求。

整体线路见附录一所示:

1.2、各部分功能实现

1.2.1、控制部分(AT89C52):

单片机采用52系列单片机。

由ATMEL公司生产的AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。

AT89S52具有以下标准功能:

8K字节Flash,256字节RAM,32位I/O口线,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

而且,它还具有一个看门狗(WDT)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。

单片机最小系统:

单片机最小系统主要由复位电路,晶振电路,电源等几部分组成。

1)复位电路:

图1复位电路

复位电路有两种方式:

上电复位和按钮复位,我们主要用按钮复位方式。

如图1所示:

2)晶振电路:

晶振电路如图2所示:

图2晶振模块原理图

选取原则:

电容选取22pF,晶振为12MHz。

3)电源:

AT89S52单片机的供电电源是5V的直流电。

4)EA非/Vpp脚:

我们没有用外部扩展ROM,因此EA非/Vpp为高电平,即接+5V电源。

1.2.2、键盘控制系统设计:

按键需要4个,分别实现为时间调整、时间的加、时间的减、闹钟调整四个功能。

用单片机的4个I/O口接收控制信号,其电路如图3所示:

图3按键调时电路

通过控制键来控制所要调节的是时、分、还是秒。

在控制键按下后LCD中会在相应的位置出现光标,这时在通过加数键或减数键来控制时分秒的加或减。

在调闹钟键按下后LCD中也会在相应的位置出现光标,这时也通过加数键或减数键来设置闹钟。

1.2.3、1602液晶屏的显示电路

1.2.3.1、1602液晶屏的介绍:

液晶显示器简称是利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。

其特点是体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中有着日益广泛的应用。

1602芯片:

主要用于显示时间和定时时间。

1602芯片由点阵字符液晶显示器件和专用的行、列驱动器、控制及必要的链接件、结构件组装而成,可以显示数字和西文字符,但不能显示图形,已经可以满足本次设计的需要。

1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。

1.2.3.2、显示电路:

显示电路图如图4所示:

图4显示电路图

1.2.4、闹钟部分:

闹钟部分主要由蜂鸣器,三极管,电阻组成。

其电路图如图5所示:

图5闹钟电路

当单片机的P1^5接口输出为高电平时,蜂鸣器响,当输出为低电平时,蜂鸣器停止。

2、软件编程

程序主要分为两个部分,即液晶显示部分和控制按键部分。

由于本设计采用的是用按键分别控制,可以在主函数中调用一个键盘扫描的函数,当相应的不同按键按下后通过控制单片机P2的输出,从而控制液晶的显示。

源程序见附录二所示:

编程思路:

在确定了时钟要实现的功能后按照上述各按键所实现的效果编写程序。

本程序包含液晶写指令函数(write-com())、写数据函数(write-data())、初始化函数(init())、写入时分秒函数(write-sfm())和键盘扫描函数,这些程序围绕主函数相互调用。

3、总结与体会

在本次设计的过程中,我发现很多的问题,同时也让我认识到单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法。

从这次的课程设计中,我真真正正意识到,在写程序时,逻辑思维要清晰,要有耐心。

在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有经常写和读才能提高,这就是我在这次设计中的最大收获。

参考文献:

[1].李光才.单片机课程设计实例指导[M].北京:

北京航空航天大学出版社2004.

[2]朱定华.单片机原理及接口技术实验[M].北京:

北方交通大学出版社2002.11

[3]刘湘涛.江世明.单片机原理与应用[M].北京:

电子工业出版社,2006.

[4]何立民.单片机应用系统设计[M].北京:

北京航空航天大学出版社,1993.

[5]楼然笛.单片机开发[M].北京:

人民邮电出版社,1994.

[6]付家才.单片机控制工程实践技术[M].北京:

化学工业出版社2004.3.

附录一:

图6数字时钟的整体线路

附录二:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitbeep=P1^5;//定义蜂鸣器的io口

sbitrw=P2^1;//定义读写的io口

sbitrs=P2^0; //定义接收与发送指令的io口

sbitlcden=P2^2; //定义使能端的io口

sbitk1=P3^0;//定义调时键的io口

sbitk2=P3^1;//定义加数键的io口

sbitk3=P3^2;//定义减数键的io口

sbitk4=P3^3;//定义调闹钟键的io口

ucharcount,count1,num,num1,num2;

charh,min,sec,h1,min1,sec1;

uchartable[]={"23:

59:

57"};

uchartable1[]={"00:

00:

00"};

voiddelay(uintms) //延时程序

{

inti;

while(ms--)

{

for(i=0;i<250;i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

delay1(ucharz)//延时程序

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

bitwrite_busy()//判断是否为繁忙状态

{

bitresult;

rs=0;

rw=1;

lcden=1;

_nop_();

_nop_();

_nop_();

_nop_();

result=(bit)(P0&0x80);

lcden=0;

returnresult;

}

voidwrite_com(ucharcom)//写指令函数

{

while(write_b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1