用LCD显示实时日历时钟单片机课程设计报告.docx
- 文档编号:5297309
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:23
- 大小:114.39KB
用LCD显示实时日历时钟单片机课程设计报告.docx
《用LCD显示实时日历时钟单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《用LCD显示实时日历时钟单片机课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
用LCD显示实时日历时钟单片机课程设计报告
(用LCD显示实时日历时钟的应用设计)
课程设计说明书
一、设计内容及要求
利用DS1302实现年月日时分秒,并用LCD显示。
(用proteus实现)
二、设计原始资料
单片机原理及应用教程范立南2006年1月
单片机原理及应用教程刘瑞新2003年07月
三、设计完成后提交的文件和图表
1.计算说明书部分
1)方案论证报告打印版或手写版
2)程序流程图
3)具体程序
2.图纸部分:
具体电路原理图打印版
四、进程安排
教学内容学时地点
资料查阅与学习讨论1天单片机实验室
分散设计5天单片机实验室
编写报告3天单片机实验室
成果验收1天单片机实验室
五、主要参考资料
《电子设计自动化技术基础》马建国、孟宪元编清华大学出版2004年4月
《实用电子系统设计基础》姜威2008年1月
《单片机系统的PROTEUS设计与仿真》张靖武2007年4月
指导老师成绩
答辩小组成绩
总成绩
八.设计体会与今后的改进意见……………………………………………………………………………..23
参考文献………………………………………………………………………………………………….23
摘要
本次课程设计是使用专门的时钟芯片DS1302在LCD上显示的日历时钟,DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,它能够对时,分,秒进行精确计时,它与单片机的接口使用同步串行通信,仅用3条线与之相连接,就可以实现MCS-51单片机对其进行读写操作,把读出的时间数据送到LM044L上显示。
程序运行时,必须先对LM044L进行初始设置,然后,通过单片机从DS1302中获取时间并通过LM044L显示。
同时,进行循环赋值,使LCD动态显示当前的时间。
关键字:
MCS-51单片机、DS1302,LM044L显示器,动态显示
Abstract:
ThiscourseisdesignedtousespecialclockchipDS1302isdisplayedonLCDandthecalendar,clockDS1302isakindofhighperformance,lowpowerconsumption,taketheRAMchips,whichcanreal-timeclockdiffculties,points,secondsforaccuratetiming,itandsingle-chipmicrocomputerinterfaceUSESsynchronousserialcommunication,withonlythreelineandtheconnected,cancometrue-51SCCoftheMCSreadingoperation,toreadthetimedatasenttoLCDdisplayon.Whentheprogramisrunning,youmustfirstfortheinitialsetofLCD,then,bymicrocontrollerfromgettingtimesinDS1302throughLCDdisplay.Meanwhile,cycliclyassignment,makeLCDdynamicdisplaythecurrenttime
一.设计任务和要求
1.利用DS1302实现年月日时分秒,并用LCD显示。
2.硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。
设计的单元电路必须有工作原理,器件的作用,分析和计算过程;
3.软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;
4.原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。
5计算说明书部分包括方案论证报告打印版或手写版,程序流程图具体程序等
6.图纸部分包括具体电路原理图打印版
7.设计要求还包括利用一天时间进行资料查阅与学习讨论,利用5天时间在实验室进行分散设计,最后三天编写报告。
最后一天进行成果验收。
二.核心芯片功能介绍
1.AT89C51
AT89S51[3]美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元。
单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C51芯片的引脚结构如图1所示:
1.1功能特性概括:
图1AT89C51引脚图
AT89S51提供以下标准功能:
40个引脚、4KBytesFlash片内程序存储器、128Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。
此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲模式下,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。
掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
2.DS1302
DS1302[1]是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
时钟可工作在24小时格式或12小时(AM/PM)格式。
DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。
可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
2.1DS1302引脚功能
DS1302的引脚功能如表3所示,管脚图如图2所示
引脚号
引脚名称
功能
1
VCC2
主电源
2、3
X1、X2
振荡源,外接32768Hz晶振
4
GND
地线
5
RST
复位/片选线
6
I/O
串行数据输入/输出端(双向)
7
SCLK
串行时钟输入端
8
VCC1
后备电源
表3DS1302引脚功能表
图2DS1302管脚图
寄存器名
命令字
取值范围
各位内容
写操作
读操作
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00--59
CH
10SEC
SEC
82H
83H
00--59
0
10MIN
MIN
时寄存器
84H
85H
01-12或00-23
12/24
0
10
HR
HR
日寄存器
86H
87H
01-28,29,30,31
0
0
10DATE
DATE
月寄存器
88H
89H
01--12
0
0
0
10M
MONTH
周寄存器
8AH
8BH
01--07
0
0
0
0
0
DAY
年寄存器
8CH
8DH
00--99
10YEAR
YEAR
表5DS1302的日历、时钟寄存器及其控制字
三.系统方案
实现数字电子钟的设计有以下两种基本方案,现就两种基本方案的优劣进行具体论证,从而说明选择方案二的理由。
方案一:
直接用单片机的内部定时器来实现时间。
该方案以MCS-51单片机为主控芯片,以MCS-51的内部定时器产生的1s中断作为时钟的驱动,然后再通LCD液晶显示器来组成数字钟电路。
但是此方案最大的缺点在于单片机89C51产生的1s中断存在误差,如果工作时间长的话,数字时钟显示的时间将会出现严重的偏差,不够精确。
方案二:
使用串行接口时钟芯片DS1302设计时钟电路。
该设计方案以MCS-51单片机为主控芯片,以串行时钟芯片DS1302为核心计时芯片,然后再通过一个LCD液晶显示器组成数字时钟电路。
更重要的是,DS1302时钟芯片的加入大大提高了数字钟时间的准确性,而且该电路在断电后不丢失时间和数据信息时也使得该方案的研究与提升更具有开发的意义。
四.理论分析与计算
本次设计的电路由主控部分(单片机MCS-51)、计时部分(实时时钟芯片DS1302)、显示部分(LM044L)3个部分组成。
各部分之间相互协作,构成一个统一的有机整体,实现数字时钟的计时功能。
现就各部分的硬件电路设计作出如下分析:
1.主控部分(单片机MCS-51)
MCS-51单片机作为主控芯片,控制整个电路的运行。
通过分析我们发现要想显示时间,必须先把DS1302中的时间信息通过单片机获取,存放到40H到46H等RAM单元。
并且是实时存放,刷新时间。
2.计时部分(实时时钟芯片DS1302)
时钟芯片DS1302能够准确的记录当前的时间,所以,通过单片机向其写入命令来获取相应的时间,而且一个命令字节控制读一个时间。
3.显示部分
LM044L能够显示简单的汉字及数字,功能十分强大,而且属于动态显示,所以将单片机中存的时间信息传送到LM044L中。
另外还需要循环赋值。
五.电路与程序设计
1.电路设计
1.1分电路图及原理说明
本次设计的硬件电路由主控部分(单片机MCS-51)、计时部分(实时时钟芯片DS1302)、显示部分(LM044L)3个部分组成。
各部分之间相互协作,构成一个统一的有机整体,实现数字时钟的计时功能。
现就各部分的硬件电路设计作出如下论述.
1.2主控部分(单片机MCS-51)
MCS-51单片机作为主控芯片,控制整个电路的运行。
其外围电路主要有两部分:
复位电路和晶体振荡器。
复位电路的功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。
晶体振荡电路:
MCS-51单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。
这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。
如果使用石英晶体,电容应该使用30pF
10pF。
电路图如下:
图5主控部分电路图
1.3计时部分(实时时钟芯片DS1302)
时钟芯片DS1302与外围电路的连接:
与MCS-51单片机的接口是由3条线来完成的,MCS-51单片机的P1.0与时钟芯片的数据传输端I/O相连,P1.1用来作为DS1302输入时钟SCLK控制端,P1.2控制DS1302的复位输入端RST。
DS1302的X1和X2管脚外接标DS1302的复位引脚通过把
输入驱动置高电平来启动所有的数据传送。
输入有两种功能:
首先,
接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,
提供了终止单字节或多字节数据的传送手段。
当
为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中置
为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,
必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
图6计时部分电路图
2.Protues仿真图
图7protues仿真图
3.程序设计流程图
图8写DS1302流程图图9读DS1302流程图
单片机AT89S51对时钟芯片DS1302的控制需要通过程序驱动来实现,程序主要完成两个方面的任务:
①利用单片机实现对DS1302寄存器的地址定义和控制字的写入,②实现对DS1302的数据读取。
初始化DS1302要求
为低电平,SCLK为低电平。
被设置为高电平就启动了一个数据传送的过程。
SCLK的16个方波完成一次数据传送,前8个方波用于输入命令字节,后8个方波用于数据的输出(读DS1302)或数据的输入(写DS1302)。
在SCLK的上升沿,I/O线上的数据被送入DS1302;在SCLK的下降沿,DS1302输出数据在I/O线上。
写和读各需要一个程序,写DS1302程序流程图如图8所示,读DS1302程序流程图如图9所示。
总程序的流程图如图10所示。
够无穷次吗
图10总程序的流程图
4.具体程序如下
IOEQUP1.0
SCLKEQUP1.1
RSTEQUP1.2
RWBITP1.6
RSBITP1.7
EBITP1.5
ORG0000H
JMPMAIN
ORG0030H
MAIN:
CALLINIT;对LCD进行初始化
MOVA,#83H;DDRAM的地址进行设置,选择从哪里开始显示
CALLWRC
MOVA,#54H;T的ASCII码
CALLWRD
MOVA,#49H;I的ASCII码
CALLWRD
MOVA,#4DH;M的ASCII码
CALLWRD
MOVA,#45H;E的ASCII码
CALLWRD
MOVA,#3AH;:
的ASCII码
CALLWRD
MOVA,#097H;DDRAM的地址进行设置,选择从哪里开始显示
CALLWRC
MOVA,#30H
CALLWRD
MOVA,#38H
CALLWRD
MOVA,#32H
CALLWRD
MOVA,#3AH
CALLWRD
MOVA,#4CH;L的ASCII码
CALLWRD
MOVA,#49H;I的ASCII码
CALLWRD
MOVA,#55H;U的ASCII码
CALLWRD
MOVA,#10H;的ASCII码
CALLWRD
MOVA,#53H;S的ASCII码
CALLWRD
MOVA,#48H;H的ASCII码
CALLWRD
MOVA,#55H;U的ASCII码
CALLWRD
MOVA,#10H;的ASCII码
CALLWRD
MOVA,#54H;T的ASCII码
CALLWRD
MOVA,#4FH;O的ASCII码
CALLWRD
MOVA,#4EH;N的ASCII码
CALLWRD
MOVA,#47H;G的ASCII码
CALLWRD
MOVA,#0DBH;DDRAM的地址进行设置,选择从哪里开始显示
CALLWRC
MOVA,#5AH;Z的ASCII码
CALLWRD
MOVA,#48H;H的ASCII码
CALLWRD
MOVA,#41H;A的ASCII码
CALLWRD
MOVA,#4EH;N的ASCII码
CALLWRD
MOVA,#47H;G的ASCII码
CALLWRD
MOVA,#10H;的ASCII码
CALLWRD
MOVA,#10H;的ASCII码
CALLWRD
MOVA,#10H;的ASCII码
CALLWRD
MOVA,#43H;C的ASCII码
CALLWRD
MOVA,#48H;H的ASCII码
CALLWRD
MOVA,#41H;A的ASCII码
CALLWRD
MOVA,#4FH;O的ASCII码
CALLWRD
LOP5:
MOV30H,#8;以下为将DS1302的数据存到单片机的40H到46H中
MOVR0,#40H
MOVR7,#7
MOVR6,#81H
LOP:
CLRP1.2
CLRP1.1
SETBP1.2
MOVB,R6
ACALLWRITE
ACALLREAD
MOV@R0,A
INCR0
INCR6
INCR6
DJNZR7,LOP;读出DS1302中的数据存到单片机中
MOVA,#88H;取出42H中的数据(小时)并显示
CALLWRC
MOVA,42H;显示小时
ANLA,#0F0H
SWAPA
ADDA,#30H
ACALLWRD
MOVA,42H
ANLA,#0FH
ADDA,#30H
ACALLWRD
MOVA,#8AH;对DDRAM地址进行设置
CALLWRC
MOVA,#3AH;:
的ASCII码
CALLWRD
MOVA,41H;显示分钟
ANLA,#0F0H
SWAPA
ADDA,#30H
ACALLWRD
MOVA,41H
ANLA,#0FH
ADDA,#30H
ACALLWRD
MOVA,#8DH;对DDRAM地址进行设置
CALLWRC
MOVA,#3AH;:
的ASCII码
CALLWRD
MOVA,40H;显示秒
ANLA,#0F0H
SWAPA
ADDA,#30H
ACALLWRD
MOVA,40H
ANLA,#0FH
ADDA,#30H
ACALLWRD
MOVA,#0D4H;对DDRAM地址进行设置
CALLWRC
MOVA,#58H;X的ASCII码
CALLWRD
MOVA,#51H;Q的ASCII码
CALLWRD
DEC45H
MOVA,45H;显示星期
ANLA,#0FH
ADDA,#30H
ACALLWRD
MOVA,#0C3H
CALLWRC
MOVA,#44H;D的ASCII码
CALLWRD
MOVA,#41H;A的ASCII码
CALLWRD
MOVA,#54H;T的ASCII码
CALLWRD
MOVA,#45H;A的ASCII码
CALLWRD
MOVA,#3AH;:
的ASCII码
CALLWRD
MOVA,46H;显示年
ANLA,#0F0H
SWAPA
ADDA,#30H
ACALLWRD
MOVA,46H
ANLA,#0FH
ADDA,#30H
ACALLWRD
MOVA,#0CAH;对DDRAM地址进行设置
CALLWRC
MOVA,#2DH;-的ASCII码
CALLWRD
MOVA,44H;显示月
ANLA,#0F0H
SWAPA
ADDA,#30H
ACALLWRD
MOVA,44H
ANLA,#0FH
ADDA,#30H
ACALLWRD
MOVA,#0CDH;对DDRAM地址进行设置
CALLWRC
MOVA,#2DH;-的ASCII码
CALLWRD
MOVA,43H;显示日
ANLA,#0F0H
SWAPA
ADDA,#30H
ACALLWRD
MOVA,43H
ANLA,#0FH
ADDA,#30H
ACALLWRD
AJMPLOP5
WRITE:
;以下全为子程序
MOV30H,#8
LOP1:
MOVA,B
RRCA
MOVB,A
MOVP1.0,C
SETBP1.1
CLRP1.1
DJNZ30H,LOP1
RET;写入命令子程序DS1302
READ:
MOV30H,#8
LOP2:
MOVC,P1.0
RRCA
SETBP1.1
CLRP1.1
DJNZ30H,LOP2
RET;读出数据子程序DS1302
INIT:
MOVA,#01H
CALLWRC
MOVA,#38H
CALLWRC
MOVA,#0CH
CALLWRC
MOVA,#06H
CALLWRC
RET;对液晶显示器初始功能设置
WRC:
CLRRS
CLRRW
SETBE
MOVP2,A
CLRE
CALLDELAY
RET;写入LCD命令的程序
WRD:
SETBRS
CLRRW
SETBE
MOVP2,A
CLRE
CALLDELAY
RET;写入LCD要显示的数据的
DELAY:
MOVR7,#035H
LP1:
MOVR6,#03FH
DJNZR6,$
DJNZR7,LP1
RET;显示数据的延时
END
六.结果分析
结果分析如图11所示
图11实验结果图
由图11可以看出LM044L可以正常显示时间,而且显示时间准确无误。
七.总结
通过本次设计,使我们对单片机的了解有了更加深一步,我发现只有动手做才会孰能技巧,还有对材料的整理和理解。
这次设计运用到的知识很多方面,尤其是单片机,像AT89C51,引脚多,硬件内部线路接通,所以用起来很方便,还有ds1302芯片与单片机之间的连接,以及如入使用ds1302芯片。
当然也要对这些元器件作相应调查。
主要就是电路原理图,还有对引脚的作用熟悉。
对于软件方面则是灵活运用单片机有关的程序语言,还有很多扩展功能,由于知识匮乏,但是理论知识还是比较详细的。
我们最大的成功之处是在这整个过程,动脑寻求解决一个一个问题的办法,对程序是不断思索,务必写出很简单的程序来,使得电子时钟能做成功!
本设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD 显示 实时 日历 时钟 单片机 课程设计 报告