数字时钟设计报告.docx
《数字时钟设计报告.docx》由会员分享,可在线阅读,更多相关《数字时钟设计报告.docx(10页珍藏版)》请在冰豆网上搜索。
数字时钟设计报告
西安文理学院物理与机械电子工程学院
课程设计报告
专业班级 自动化
(2)班
课 程 电子课程设计
题 目 LCD数字时钟
学 号 0810*******
学生姓名 张 梁
指导教师 李国柱
2013年12月
西安文理学院物理与机械电子工程学院
课程设计任务书
学生姓名
张梁
专业班级
自动化2班
学号
0810*******
指导教师
李国柱
职称
讲师
教研室
自动化B0406
课程
自动化专业课程设计
题目
LCD显示数字钟的设计
任务与要求
利用单片机实验箱上的资源设计一个数字时钟。
设计要求:
1)该数字钟采用LCD显示,显示年月日时分秒;
2)数字钟的时钟信号可采用硬件定时和软件定时;
3)能够对年月日时分秒的值进行设置。
4)实现闹钟功能,能够设定闹钟时间,并在闹钟时间到时鸣响蜂鸣器,按下相应按键后闹铃停止。
开始日期2013.12.2完成日期2013.12.28
2013年11月29日
设计目的……………………………………………1
设计任务和要求……………………………………1
总体设计方案………………………………………1
功能模块设计与分析………………………………4
电路的安装和调试…………………………………7
元器件清单…………………………………………8
心得体会……………………………………………8
附录一系统程序…………………….……….……9
附录二系统电路仿真图…………………….………20
LCD显示数字钟的设计
一、设计目的
1、综合利用所学单片机知识完成一个单片机应用系统设计,从而加深对单片机软硬知识的理解,获得初步的应用经验。
2、学习AT89C52定时/计数器的原理及基本应用。
3、掌握LCD1602液晶显示方法。
4、掌握KeiluVision2IDE的使用方法。
5、掌握PROTEUS软件的使用方法。
二、设计要求和任务
利用单片机实验箱上的资源设计一个数字时钟。
设计要求:
1)该数字钟采用LCD显示,显示年月日时分秒;
2)数字钟的时钟信号可采用硬件定时和软件定时;
3)能够对年月日时分秒的值进行设置。
4)实现闹钟功能,能够设定闹钟时间,并在闹钟时间到时鸣响蜂鸣器,按下相应按键后闹铃停止。
三、总体设计方案
本设计以AT89C52单片机为系统的控制核心,以ds1302芯片进行计时,然后反馈给单片机再利用LCD1302显示。
本系统硬件用AT89S5作为CPU进行总体控制,通过DS1302时钟芯片获取准确详细的时间(年、月、日、周、时、分、秒准确时间),对时钟信号进行控制,同时利用液晶显示芯片LCD1602对时间进行准确显示,并且可实现蜂鸣器闹钟报时。
3.1硬件电路组成
根据系统设计的要求和设计思路,确定该系统的系统设计结构图。
如图3.1所示。
硬件电路主要由MCU微处理控制器单元、DS1302时钟电路、复位电路、晶振电路、LCD1302液晶显示模块组成。
系统结构框图如图3.1所示:
AT89S5单片机是整个系统的核心,晶振电路主要给系统提供一个频率稳定的时钟信号,单片机所有的工作都是在由晶振的节产生拍的控制下工作的DS1302是一种高性能、低功耗的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,然后把数据传送给单片机,起到计时作用。
复位电路可以使单片机从内存的0000H地址开始执行程序,能够恢复到初始状态。
按键电路可以调整时间和日期,使之显示当前时间。
蜂鸣报时是当显示的时间达到设定时间,蜂鸣器发出声音,起到报时的效果。
LCD1602显示电路用于显示时间和日期,是输出设备。
3.2软件设计框图
系统的主程序设计是用来控制整个系统运行时的时序工作状态,本设计使用的主程序设计流程图如图3.1所示:
图3.1系统软件图
上图是整个软件流程图的主要过程,首先开始,然后定义引脚,定义的主要引脚有液晶屏通信引脚定义,ds1302通信引脚定义,数据设定引脚定义,接着是地址定义,主要有数据存储地址定义和显示数据缓冲地址定义,然后程序开始,再初始化液晶屏,其中包括:
初始化液晶屏幕,显示初始画面,清液晶
屏,写成空白。
DS1302开始振荡,读取DS1302子程序,读出数据(年、月、日、时、分、秒),将高低端分离后送显示缓存,保存时间数据,日历显示子程序,然后在初始化下面不断的循环。
四、功能模块设计与分析
4..1MCU微控制器电路
AT89C52是一个系统的核心控制元件,只有它正常工作的话,其它的元件才能进入正常的工作状态。
AT89C52是一种低功耗,高性能CMOS8位微控器,具有8K在系统可编程Flash存储器。
AT89C52管脚如图2.2所示:
89C52各引脚功能介绍:
VCC:
89C52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只 要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入两个20-50PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89C52便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
端口3的管脚设置:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
4.2LCD液晶显示电路:
LCD1602是一种用5x7点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字共32个字符。
液晶显示器有很多优点,比如微功耗,体积小,显示内容丰富,超薄轻巧等。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志位是不是为低电平,是低电平则表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。
LCD1602的连接图如图4.2所示:
图4.2LCD1602液晶显示电路图
关于LCD1302的引脚说明如下(它比LCD1602少了15,16两个引脚):
1)第1脚:
GND为地电源。
2)第2脚:
VCC接+5V电源。
3)第3脚:
VEE为液晶显示器对比度调整端。
接+5V电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的精密电位器调整对比度,一般对比电压为0.7V左右。
4)第4脚:
RS为寄存器选择。
高电平时选择数据寄存器,否则选择指令寄存器。
5)第5脚:
为读写信号线。
高电平时进行读操作,低电平时进行写操作。
当RS和
共同为低电平时可以写入指令或者显示地址,当RS为低电平
为高电平时可以读出忙信号,当RS为高电平
为低电平时可以写入数据。
6)第6脚:
E端为使能端。
当E端由高电平跳变成低电平时,液晶模块执行命令。
7)第7~14脚:
D0~D7为8位双向数据线。
4.3实时时钟电路
ds1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
DS1302的引脚中Vcc1为后备电源,Vcc2为主电源,当主电源关闭的情况下,也能保持时钟的连续运行。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
输入有两种功能:
首先,
接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,
提供终止单字节或多字节数据的传送手段。
当
为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中
置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,
必须保持低电平。
只有在SCLK为低电平时,才能将
置为高电平。
SCLK始终是输入端。
是复位/片选线,通过把
输入驱动置高电平来启动所有的数据传送。
实时时钟电路图如图4.3所示:
图4.3ds1302电路图
4.4蜂鸣器电路
图4.4蜂鸣器电路连接图
4.5晶振电路
AT89C52在工作时需要外部提供时钟信号,因此,本设计选择在其18脚19脚之间接上12MHz的晶振,为单片机提供1μs的机器振荡周期。
其电路连接图如图所示。
在图中,电容器C3.C4起稳定振荡频率、快速起振的作用,其电容值一般在20~50pF。
晶振电路图如图2.7所示:
图4.5晶振电路连接图
五、电路的安装与调试
本设计先利用KeilC51uVision2编译C程序,然后用Proteus软件画出电路原理图,将工程文件.Hex加载到AT89C52中运行,得到仿真图,验证其原理图和C程序的准确性。
利用Proteus绘制出相应硬件电路后进行仿真,出现液晶显示无法正常显示的问题,经过思考和查阅相关资料后发现AT89C52的P0在进高电平时没有接上拉电阻导致LCD1602无法正常显示时间。
修改电路载入程序后,程序正常运行,LCD1602准确的显示。
用Proteus仿真能够正确的显示时间,但载入学习板后出现乱码显示不能正常工作,经过反复检查及思考发现仿真软件上的硬件电路与学习板上的硬件电路有些芯片型号不一致无法对应起来,最后根据学习板的硬件电路修改相应程序及仿真软件上的硬件电路,通过仿真调试,最终各项功能均可以实现。
1、设计难点:
(1):
LCD显示模块的设计
(2):
单片机个功能模块的综合设计
(3):
闹钟功能的实现,能够设定闹钟时间,并在闹钟时间到时鸣响蜂鸣器时钟电路的调试以及程序的实现
2、调试过程出现的问题:
(1):
LCD显示模块的功能显示不正常
(2):
闹铃的设计与其他时间功能设置切换
(3):
软件程序设计功能不完善,系统无法正常运转,
六、实验仪器及元器件清单
元器件名称
参数
备注
单片机
AT89C52(12MHZ)
1
晶体
DRYSTAL12MHZ
1
时钟模块
DS1302
1
LCD显示模块
LCD1602
1
三极管
PNP9012
1
闹铃
BUZZER
1
电容
20uF
2
按键
BUTTON
5
电阻
10K
2
排阻
RESPACK-8/10K
1
七、心得体会
继续阅读