当前位置:文档之家› 用LCD显示实时日历时钟单片机课程设计

用LCD显示实时日历时钟单片机课程设计

成绩:课程设计报告书所属课程名称单片机原理与接口技术题目用LCD显示实时日历时钟的应用分院机电学院专业、班级机械设计制造及其自动化B09022012 年7 月15 日目录1课程设计任务书 (2)2总体设计 (3)3硬件系统设计 (4)4程序设计 (12)5程序调试及结果分析 (19)6总结 (20)7参考文献 (21)用LCD显示实时日历时钟应用说明书一.课程设计任务书课程设计题目:用LCD显示实时日历时钟的应用课程设计时间:自2012 年7 月 2 日起至2012年7 月15 日。

课程设计要求:1.利用DS1302年月日时分秒,并用LCD显示。

2.硬件部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。

设计的单元电路必须有工作原理,器件的作用,分析和计算过程;3.软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;4.原理图设计部分别,根据所确定的设计电路,利用Protel工具软件绘制电路原理图,提供元器件清单。

5.将程序运行并做记录,完成报告。

2012 年7 月15日课程设计评阅意见评阅教师:2012年月日二.总体设计实现数字电子钟的设计有以下两种基本方案,现就两种基本方案的优劣进行具体论证,从而说明选择方案二的理由。

方案一:直接用单片机的内部定时器来实现时间。

该方案以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中。

另外还需要循环赋值。

三.硬件系统设计AT89C51AT89S51[3]美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元。

单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C51芯片的引脚结构如图1所示:3.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等三种封装形式,以适应不同产品的需求。

3.1.2管脚说明:P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。

作为输出口用时,能驱动8个TTL逻辑门电路。

对端口写“1”时,被定义为高阻输入。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会)。

输出一个电流(IIL在Flash编程和程序校验期间,P1接收低8位地址。

部分端口还有第二功能,如表1所示:表1 P1口部分引脚第二功能P2口:P2口是一个带有内部上拉电阻的8位双向I/O口, P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时)。

会输出一个电流(IIL在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据寄存器(例如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。

在Flash编程或校验时,P2亦接收高位地址和其它控制信号。

P3口: P3口是一个带有内部上拉电阻的双向8位I/O口, P3口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写“1”时,它们被内部的上拉电阻拉高并可作为输入端口。

作输入口使用时,被外部信号拉低的P3口将用上拉电阻输出电流(I)。

IL P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

表2 P3口引脚第二功能RST:复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上的高电平时间将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

ALE/PROG:当访问外部存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部寄存器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

值得注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只要一条MOVX和MOVC指令才会激活ALE。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器时,没有两次有效的PSEN信号。

EA/VPP:外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA 端必须保持低电平(接地)。

需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端保持高电平(接VCC端),CPU则执行内部程序存储器中的指令。

Flash存储器编程期间,该引脚用于施加+12V编程电压(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入端。

XTAL2:反向振荡放大器器的输出端。

3.2 DS1302DS1302[1]是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。

时钟可工作在24小时格式或12小时(AM/PM)格式。

DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。

可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

3.2.1 DS1302引脚功能DS1302表3 DS1302引脚功能表图2 DS1302管脚图3.2.2 DS1302的控制字DS1302的控制字节如图3所示:图3控制字节如图控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。

位6如果为0,则表示存取日历时钟数据,为1表示存取RAM 数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

3.2.3 DS1302的复位引脚通过把RST 输入驱动置高电平来启动所有的数据传送。

RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供了终止单字节或多字节数据的传送手段。

当RST 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中置RST 为低电平,则会终止此次数据传送,并且I/O 引脚变为高阻态。

上电运行时,在Vcc≥2.5V 之前,RST 必须保持低电平。

只有在SCLK 为低电平时,才能将RST 置为高电平。

3.2.4 DS1302的数据输入输出CR在控制指令字输入后的下一个SCLK 时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。

同样,在紧跟8位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302图4 读写数据如图所示的数据,读出数据时从低位0位至高位7,数据读写时序如图4所示:3.2.5 DS1302的寄存器DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD 码形式。

相关主题