用LCD显示实时日历时钟单片机课程设计报告.doc_第1页
用LCD显示实时日历时钟单片机课程设计报告.doc_第2页
用LCD显示实时日历时钟单片机课程设计报告.doc_第3页
用LCD显示实时日历时钟单片机课程设计报告.doc_第4页
用LCD显示实时日历时钟单片机课程设计报告.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用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月 指导老师成绩答辩小组成绩总成绩目录一设计任务和要求2二核心芯片功能介绍21.AT89C5121.1 功能特性概括:31.2 管脚说明:32DS130252.1 DS1302引脚功能52.2DS1302的控制字62.3 DS1302的复位引脚62.4 DS1302的数据输入输出72.5 DS1302的寄存器7三系统方案9四理论分析与计算9五电路与程序设计81.电路设计91.1分电路图及原理说明91.2 主控部分(单片机MCS-51)91.3 计时部分(实时时钟芯片DS1302)92Protues仿真图103.程序设计流程图114.具体程序13六结果分析21七总结21八设计体会与今后的改进意见.23参考文献.23 摘要 本次课程设计是使用专门的时钟芯片DS1302在LCD上显示的日历时钟, DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,它能够对时,分,秒进行精确计时,它与单片机的接口使用同步串行通信,仅用3条线与之相连接,就可以实现MCS-51单片机对其进行读写操作,把读出的时间数据送到LM044L上显示。程序运行时,必须先对LM044L进行初始设置,然后,通过单片机从DS1302中获取时间并通过LM044L显示。同时,进行循环赋值,使LCD动态显示当前的时间。关键字:MCS-51单片机、DS1302,LM044L显示器,动态显示 Abstract: This course is designed to use special clock chip DS1302 is displayed on LCD and the calendar, clock DS1302 is a kind of high performance, low power consumption, take the RAM chips, which can real-time clock diffculties, points, seconds for accurate timing, it and single-chip microcomputer interface USES synchronous serial communication, with only three line and the connected, can come true - 51 SCC of the MCS reading operation, to read the time data sent to LCD display on. When the program is running, you must first for the initial set of LCD, then, by microcontroller from getting times in DS1302 through LCD display. Meanwhile, cyclicly assignment, make LCD dynamic display the current time一设计任务和要求 1. 利用DS1302实现年月日时分秒,并用LCD显示。2. 硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;3. 软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;4.原理图设计部分,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。5计算说明书部分包括方案论证报告打印版或手写版,程序流程图具体程序等6. 图纸部分包括具体电路原理图打印版7. 设计要求还包括利用一天时间进行资料查阅与学习讨论,利用5天时间在实验室进行分散设计,最后三天编写报告。最后一天进行成果验收。 二核心芯片功能介绍1.AT89C51AT89S513美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51芯片的引脚结构如图1所示: 1.1 功能特性概括: 图1 AT89C51引脚图 AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲模式下,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。2DS1302DS13021是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。时钟可工作在24小时格式或12小时(AM/PM)格式。 DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。2.1 DS1302引脚功能DS1302的引脚功能如表3所示,管脚图如图2所示引脚号引脚名称功能1VCC2主电源2、3X1、X2振荡源,外接32768Hz晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行时钟输入端8VCC1后备电源表3 DS1302引脚功能表 图2 DS1302管脚图 寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器 80H81H00-59CH10SECSEC 82H83H00-59010MINMIN时寄存器84H85H01-12或00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYEAR 表5 DS1302的日历、时钟寄存器及其控制字23三系统方案实现数字电子钟的设计有以下两种基本方案,现就两种基本方案的优劣进行具体论证,从而说明选择方案二的理由。方案一:直接用单片机的内部定时器来实现时间。该方案以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虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。如果使用石英晶体,电容应该使用30pF10pF。电路图如下:图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引脚变为高阻态。上电运行时,在Vcc2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。图6 计时部分电路图 2Protues仿真图 图7 protues仿真图3.程序设计流程图启动读数据字节一位复位端变高启动一次数据传送工作结束SCLK发脉冲复位端变低SCLK发脉冲写命令字节一位够8次吗?够8次吗?NYYN启动写数据字节一位复位端变高启动一次数据传送工作结束SCLK发脉冲复位端变低SCLK发脉冲写命令字节一位够8次吗?够8次吗?NYYN图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所示。开始 初始化lcd够无穷次吗读取ds1302的时间存到单片机中将单片机中的时间赋值给lcd并显示时间结束 图10 总程序的流程图4.具体程序如下 IO EQU P1.0 SCLK EQU P1.1 RST EQU P1.2 RW BIT P1.6 RS BIT P1.7 E BIT P1.5 ORG 0000H JMP MAIN ORG 0030HMAIN: CALL INIT ;对LCD进行初始化 MOV A,#83H ;DDRAM的地址进行设置,选择从哪里开始显示 CALL WRC MOV A,#54H ;T的ASCII码 CALL WRD MOV A,#49H ;I的ASCII码 CALL WRD MOV A,#4DH ;M的ASCII码 CALL WRD MOV A,#45H ;E的ASCII码 CALL WRD MOV A,#3AH ;:的ASCII码 CALL WRD MOV A,#097H ;DDRAM的地址进行设置,选择从哪里开始显示 CALL WRC MOV A,#30H CALL WRD MOV A,#38H CALL WRD MOV A,#32H CALL WRD MOV A,#3AH CALL WRD MOV A,#4CH ;L的ASCII码 CALL WRD MOV A,#49H ;I的ASCII码 CALL WRD MOV A,#55H ;U的ASCII码 CALL WRD MOV A,#10H ; 的ASCII码 CALL WRD MOV A,#53H ;S的ASCII码 CALL WRD MOV A,#48H ;H的ASCII码 CALL WRD MOV A,#55H ;U的ASCII码 CALL WRD MOV A,#10H ; 的ASCII码 CALL WRD MOV A,#54H ;T的ASCII码 CALL WRD MOV A,#4FH ;O的ASCII码 CALL WRD MOV A,#4EH ;N的ASCII码 CALL WRD MOV A,#47H ;G的ASCII码 CALL WRD MOV A,#0DBH ;DDRAM的地址进行设置,选择从哪里开始显示 CALL WRC MOV A,#5AH ;Z的ASCII码 CALL WRD MOV A,#48H ;H的ASCII码 CALL WRD MOV A,#41H ;A的ASCII码 CALL WRD MOV A,#4EH ;N的ASCII码 CALL WRD MOV A,#47H ;G的ASCII码 CALL WRD MOV A,#10H ; 的ASCII码 CALL WRD MOV A,#10H ; 的ASCII码 CALL WRD MOV A,#10H ; 的ASCII码 CALL WRD MOV A,#43H ;C的ASCII码 CALL WRD MOV A,#48H ;H的ASCII码 CALL WRD MOV A,#41H ;A的ASCII码 CALL WRD MOV A,#4FH ;O的ASCII码 CALL WRD LOP5: MOV 30H,#8 ;以下为将DS1302的数据存到单片机的40H到46H中 MOV R0,#40H MOV R7,#7 MOV R6,#81HLOP: CLR P1.2 CLR P1.1 SETB P1.2 MOV B,R6 ACALL WRITE ACALL READ MOV R0,A INC R0 INC R6 INC R6 DJNZ R7,LOP ;读出DS1302中的数据存到单片机中 MOV A,#88H ;取出42H中的数据(小时)并显示 CALL WRC MOV A,42H ;显示小时 ANL A,#0F0H SWAP A ADD A,#30H ACALL WRD MOV A,42H ANL A,#0FH ADD A,#30H ACALL WRD MOV A,#8AH ;对DDRAM地址进行设置 CALL WRC MOV A,#3AH ;:的ASCII码 CALL WRD MOV A,41H ;显示分钟 ANL A,#0F0H SWAP A ADD A,#30H ACALL WRD MOV A,41H ANL A,#0FH ADD A,#30H ACALL WRD MOV A,#8DH ;对DDRAM地址进行设置 CALL WRC MOV A,#3AH ;:的ASCII码 CALL WRD MOV A,40H ;显示秒 ANL A,#0F0H SWAP A ADD A,#30H ACALL WRD MOV A,40H ANL A,#0FH ADD A,#30H ACALL WRD MOV A,#0D4H ;对DDRAM地址进行设置 CALL WRC MOV A,#58H ;X的ASCII码 CALL WRD MOV A,#51H ;Q的ASCII码 CALL WRD DEC 45H MOV A,45H ;显示星期 ANL A,#0FH ADD A,#30H ACALL WRD MOV A,#0C3H CALL WRC MOV A,#44H ;D的ASCII码 CALL WRD MOV A,#41H ;A的ASCII码 CALL WRD MOV A,#54H ;T的ASCII码 CALL WRD MOV A,#45H ;A的ASCII码 CALL WRD MOV A,#3AH ;:的ASCII码 CALL WRD MOV A,46H ;显示年 ANL A,#0F0H SWAP A ADD A,#30H ACALL WRD MOV A,46H ANL A,#0FH ADD A,#30H ACALL WRD MOV A,#0CAH ;对DDRAM地址进行设置 CALL WRC MOV A,#2DH ;-的ASCII码 CALL WRD MOV A,44H ;显示月 ANL A,#0F0H SWAP A ADD A,#30H ACALL WRD MOV A,44H ANL A,#0FH ADD A,#30H ACALL WRD MOV A,#0CDH ;对DDRAM地址进行设置 CALL WRC MOV A,#2DH ;-的ASCII码 CALL WRD MOV A,43H ;显示日 ANL A,#0F0H SWAP A ADD A,#30H ACALL WRD MOV A,43H ANL A,#0FH ADD A,#30H ACALL WRD AJMP LOP5 WRITE: ;以下全为子程序 MOV 30H,#8 LOP1: MOV A,B RRC A MOV B,A MOV P1.0,C SETB P1.1 CLR P1.1 DJNZ 30H,LOP1 RET ;写入命令子程序DS1302READ: MOV 30H,#8 LOP2: MOV C,P1.0 RRC A SETB P1.1 CLR P1.1 DJNZ 30H,LOP2 RET ;读出数据子程序DS1302INIT: MOV A,#01H CALL WRC MOV A,#38H CALL WRC MOV A,#0CH CALL WRC MOV A,#06H CALL WRC RET ;对液晶显示器初始功能设置WRC: CLR RS CLR RW SETB E MOV P2,A CLR E CALL DELAY RET ;写入LCD命令的程序WRD: SETB RS CLR RW SETB E MOV P2,A CLR E CALL DELAY RET ;写入LCD要显示的数据的DELAY: MOV R7,#035H LP1: MOV R6,#03FH DJNZ R6,$ DJNZ R7,LP1 RET ;显示数据的延时 END六结果分析结果分析如图11所示 图11 实验结果图由图11可以看出LM044L可以正常显示时间,而且显示时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论