基于AT89C51单片机的LCD电子时钟方案设计书.docx
- 文档编号:7860365
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:36
- 大小:258.86KB
基于AT89C51单片机的LCD电子时钟方案设计书.docx
《基于AT89C51单片机的LCD电子时钟方案设计书.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的LCD电子时钟方案设计书.docx(36页珍藏版)》请在冰豆网上搜索。
基于AT89C51单片机的LCD电子时钟方案设计书
YanChengInstituteofTechnology
课程设计说明书
课程名称
单片机应用设计
设计题目
基于单片机的时钟设计
专业
(工业)自动化
学生姓名
班级
学号
完成日期
2012/12/3——2012/12/15
盐城工学院电气学院
盐城工学院电气学院课程设计任务书
姓名:
院(系):
自动化
专业:
(工业)自动化班号:
BM自动化091
任务起至日期:
2012年12月3日至2012年12月15日
课程设计题目:
《基于单片机的时钟设计》
已知技术参数和设计要求:
(1)AT89C51单片机
(2)DS1302定时器
(3)DS1232看门狗
(4)LCD1602液晶显示
(5)8*10K上拉电阻
(6)Altium软件
预期设计效果:
设计一个基于单片机的电子时钟,要求能够实现时、分、秒。
工作计划安排:
2012年12月3日-6日:
收集和课程设计有关的资料,熟悉课题任务何要求
2012年12月7日-10日:
总体方案设计
2012年12月11日-14日:
硬件电路设计
2012年12月15日:
软件设计
2012年12月16日:
整理书写设计说明书
2012年12月17日:
答辩
同组设计者及分工:
独立完成!
成绩评定:
指导教师签字:
2012年12月17日
第1章电子时钟的工作原理
本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,用C语言程序来控制整个时钟的显示,使得编程变得更容易,这样通过五个模块:
芯片、显示屏、看门狗、电源、时钟即可满足设计要求。
此设计原理图框图如图1-1所示,此电路包括以下五个部分:
单片机、时钟电路、看门狗、液晶屏、电源模块、时钟振荡电路。
图1-1主电路设计框图
本设计采用C语言程序设计,使单片机控制数码管显示年、月、日、时、分、秒,当秒计数满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。
时、分、秒的计数结果经过数据处理可直接送显示器显示。
当计时发生误差的时候可以用校时电路进行校正。
设计采用的是时、分、秒显示,单片机对数据进行处理同时在LCD上显示。
第2章系统硬件电路设计及元件
2.1AT89C51芯片
AT89C51是美国ATMEL公司生产的8位FlashROM单片机。
其最突出的优点是片内ROM为FlashROM,可擦写1000次以上,应用并不复杂的通用ROM写入器就能方便的擦写,读取也很方便,价格低廉,具有片程序ROM二级保密系统。
因此可灵活应用于各种控制领域。
AT89C51包含以下一些功能部件:
(1)一个8位CPU;
(2)一个片内振荡器和时钟电路;
(3)4KBFlashROM;
(4)128B内RAM;
(5)可寻址64KB的外ROM和外RAM控制电路;
(6)两个16位定时/计数器;
(7)21个特殊功能寄存器;
(8)4个8位并行I/O口;
(9)一个可编程全双工串行口;
(10)5个中断源,可设置成2个优先级。
AT89C51单片机一般采用双列直插DIP封装,共40个引脚,图2-1为其引脚排列图。
40个引脚大致可分为4类:
电源、时钟、控制各I/O引脚。
图2-1AT89C51引脚图
2.1.1电源
Vcc——芯片电源,接+5V;GND——接地端。
2.1.2时钟
XTAL1、XTAL2——晶体振荡电路反相输入端和输出端。
2.1.3控制线
控制线共有4根,其中3根是复用线。
所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。
1、ALE/PROG——地址锁存允许/片内EPROM编程脉冲。
(1)ALE功能:
用来锁存P0口送出的低八位地址。
AT89C51在并行扩展外存储器时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。
当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是低8位地址信号。
在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。
需要指出的是,当CPU不执行访问外RAM指令,ALE以时钟振荡频率1/6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。
但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。
(2) PROG功能:
片内EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
2、 PSEN——外ROM读选通信号。
89C51读外ROM时,每个机器周期内PSEN两次有效输出。
PSEN可作为外ROM芯片输出允许OE的选通信号。
在读内ROM或读外RAM时,PSEN无效。
3、RST/VPD——复位/备用电源。
(1)正常工作时,RST端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,AT89C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。
(2)VPD功能:
在VCC掉电情况下,该引脚可接上备用电源,由VPD向片内RAM供电,以保持片内RAM中的数据不丢失。
4、EA/VPP——内外ROM选择/片内EPROM编程电源。
(1)EA功能:
正常工作时,EA为内外ROM选择端。
AT89C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外。
当EA保持高电平时,先访问内ROM,但当PC值超过4KB时,将自动转向执行外ROM中的程序。
当EA保持低电平时,则只访问外ROM,不管芯片内有否内ROM。
(2)VPP功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源。
2.1.4I/O引脚
AT89C51有P0、P1、P2、P34个8位并行I/O端口,共32个引脚。
P0口是一组8位漏级开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路,对端口写1时,又可作高阻抗输入端用。
在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。
在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1口是带内部上拉电阻的双向I/O口,向P1口写入1时P1口被内部上拉为高电平,可用作输入口。
当作为输入脚时被外部信号拉低的P1口会因为内部上拉而输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址。
P2口是带内部上拉电阻的双向I/O口,向P2口写入1时P2口被内部上拉为高电平可用作输入口,当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据,当使用8位寻址方式(MOVX@RI)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容,在整个访问期间不改变。
Flash编程和程序校验时,P2也接收高位地址和一些控制信号。
P3口是带内部上拉电阻的双向I/O口,向P3口写入1时P3口被内部上拉为高电平可用作输入口,当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流。
P3口除了作为一般的I/O口线外,更重要的是它的第二功能,如表2-1所示:
表2-1P3端口的特殊功能
端口引脚
兼用功能
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
外部数据存储器读选通
2.2DS1302芯片
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。
有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。
需要强调的是,DS1302需要使用32.768KHz的晶振。
DS1302包含以下一些功能部件:
(1)实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;
(2)用于高速数据暂存的31×8位RAM;
(3)最少引脚的串行I/O;
(4)2.5~5.5V电压工作范围;
(5)2.5V时耗电小于300nA;
(6)用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;
(7)简单的3线接口;
(8)可选的慢速充电(至VCC1)的能力。
2.2.1DS1302数据操作原理
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。
无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。
在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
DS1302的内部结构图如图2-2所示。
图2-2DS1302内部结构图
2.2.2DS1302的引脚图及功能
DS1302的引脚图如图2-3所示。
图2-3DS1302引脚图
DS1302各引脚功能:
Vcc1:
主电源;
Vcc2:
备份电源。
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 SCLK: 串行时钟,输入,控制数据的输入与输出; I/O: 三线接口时的双向数据线; CE: 输入信号,在读、写数据期间,必须为高。 该引脚有两个功能: 第一,CE开始控制字访问移位寄存器的控制逻辑;其次CE提供结束单字节或多字节数据传输的方法。 引脚功能如表2-2所示: 表2-2DS1302引脚功能说明 引脚号 名称 功能 1 VCC1 备份电源输入 2 X1 32.768KHz晶振输入 3 X2 32.768KHz晶振输出 4 GND 地 5 RST 控制移位寄存器/复位 6 I/O 数据输入/输出 7 SCLK 串行时钟 8 VCC2 主电源输入 2.2.3DS1302的寄存器 1、DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如表2-3所示: 表2-3DS1302的日历、时钟寄存器及其控制字 寄存器名 命令字 取值范围 各位内容 写操作 读操作 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 控制 8EH 8FH - WP 0 0 0 0 0 0 0 秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。 当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。 小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。 当为高时,选择12小时模式。 在12小时模式时,位5是,当为1时,表示PM。 在24小时模式时,位5是第二个10小时位。 控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。 在任何的对时钟和RAM的写操作之前,WP位必须为0。 当WP位为1时,写保护位防止对任一寄存器的写操作。 2、DS1302的工作模式寄存器 所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。 突发模式寄存器如表2-4所示: 表2-4突发模式寄存器 工作模式寄存器 读寄存器 写寄存器 时钟突发模式 CLOCKBURST BFH BEH RAM突发模式 RAMBURST FFH FEH 3、DS1302还有涓流充电寄存器等。 2.2.4DS1302的控制字 DS1302的控制字如下表所示: 表2-5控制字(即地址及命令字节) 7 6 5 4 3 2 1 0 1 RAM A4 A3 A2 A1 A0 RD 控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。 位6: 如果为0,则表示存取日历时钟数据,为1表示存取RAM数据; 位5至位1(A4~A0): 指示操作单元的地址; 位0(最低有效位): 如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。 在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。 同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。 2.2.5DS1302时序 CE输入驱动高启动所有的数据传输。 CE输入有两个功能。 首先,CE打开控制逻辑,允许访问的移位寄存器的地址/命令序列。 其次,CE提供了一个终止单字节或多字节数据传输方法。 一个时钟周期是由一个下降沿之后的上升沿序列。 对于数据传输而言,数据必须在有效的时钟的上升沿输入,在时钟的下降沿输出。 如果CE为低,所有的I/O引脚变为高阻抗状态,数据传输终止。 对于数据输入: 开始的8个SCLK周期,输入写命令字节,数据字节在后8个SCLK周期的上升沿输入。 数据输入位0开始。 对于数据输出: 开始的8个SCLK周期,输入一个读命令字节,数据字节在后8个SCLK周期的下降沿输出。 注意,第一个数据字节的第一个下降沿发生后,命令字的最后一位被写入,命令字节的最后一位被写入。 当CE仍为高时。 如果还有额外的SCLK周期,DS1302将重新发送数据字节,这使DS1302具有连续突发读取的能力。 DS1302数据读写时序如图2-4所示: 图2-4数据读写时序 2.3DS1232芯片 DS1232是由美国DALLAS公司生产的微处理器监控电路,采用8脚DIP封装,具有看门狗功能的电源监测芯片,在电源上电、断电、电压瞬态下降和死机时都会输出一个复位脉冲。 DS1232的的主要特点: (1)在微处理器失控状态下可以停止和重新启动微处理器; (2)具有8脚DIP封装和16脚SOIC贴片封装两种形式,可以满足不同设计要求; (3)微处理器掉电或电源电压瞬变时可自动复位; (4)具有5%或10%的两种电源监测精度。 2.3.1DS1232引脚功能及内部结构 DS1232各引脚功能: RESTE: 复位键连接引脚,直接连接复位键; TD: 看门狗定时器延时设置。 如果连接到地,输入给看门狗的脉冲间隔不得大于150毫秒;如果不连接,脉冲间隔不得大于600毫秒;如果连接到电源,脉冲间隔不得大于1.2秒; TOL: 选择5%或10%的电源监测精度。 如果这个引脚连接到地,当电源下降到4.75V时芯片将输出一个复位脉冲;如果这个引脚连接到5V,只有当电源下降到4.5V时芯片才输出一个复位脉冲; GND: 地线; RST: 复位高脉冲输出引脚; RST: 复位低脉冲输出引脚; ST: 看门狗脉冲输入,低脉冲有效; VCC: 5V电源。 DS1232的引脚如图2-5所示: 图2-5DS1232的引脚图 芯片DS1232在系统工作时,必须不间断的给引脚7输入一个脉冲系列,这个脉冲的时间间隔由引脚2设定,如果脉冲间隔大于引脚2的设定值,芯片将输出一个复位脉冲使单片机复位。 一般将这个功能称为看门狗,将输入给看门狗的一系列脉冲称为“喂狗”。 这个功能可以防止单片机系统死机。 DS1232内部结构如图2-6所示: 图2-6DS1232内部结构 2.3.2DS1232的功能 1、电源电压监视 DS1232能够实时监测向微处理器供电的电源电压,当电源电压VCC低于预置值时,DS1232的第5脚和第6脚输出互补复位信号RST和/RST。 预置值通过第3脚(TOL)来设定;当TOL接地时,RST和/RST信号在电源电压跌落至4.75V以下时产生;当TOL与VCC相连时,只有当VCC跌落至4.5V以下时才产生RST和/RST信号。 当电源恢复正常后,RST和/RST信号至少保持250ms,以保证微处理器的正常复位。 2、按键复位 在单片机产品中,最简单的按键复位电路是由电阻和电容构成的,如果系统扩展存在需要和微处理器同时复位的其他接口芯片,这种简单的阻容复位电路往往不能满足整体复位的要求。 DS1232提供了可直接连接复位按键的输入端/PBSEN(第1脚),在该引脚上输入低电平信号,将在/RST和RST端输出至少250ms的复位信号。 3、看门狗定时器 在DS1232内部集成有看门狗定时器,当DS1232的ST端在设置的周期时间内没有有效信号到来时,DS1232的RST和RST端将产生复位信号以强迫微处理器复位。 这一功能对于防止由于干扰等原因造成的微处理器死机是非常有效的。 看门狗定时器的定时时间由DS1232的TD引脚确定,见表2-6所示: 表2-6看门狗定时器定时时间设置 TD引脚连接至 定时时间 最小值 典型值 最大值 地(GND) 62.5ms 150ms 250ms 浮空 250ms 600ms 1000ms 电源(Vcc) 500ms 1200ms 2000ms 看门狗定时器的周期输入信号ST可以从微处理器的地址信号、数据信号或控制信号中获得,不论哪种信号都必须能够周期性的访问DS1232,对于MCS51系列单片机,推荐使用ALE信号。 2.4LCD1602液晶显示 LCD1602是一种用5x7点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字共32个字符。 它由若干个5×7或者5×11点阵字符位组成,每个点阵字符位都可以显示一个字符。 模块采用数字式接口,能够方便地与单片机等控制类芯片进行通信。 由于其具有体积小、重量轻、显示质量高、功耗低等诸多优点而被广泛用于智能化仪器仪表的显示器件。 2.4.1LCD1602引脚及功能 LCD1602的引脚如图2-7所示: (1)GND: 地电源。 (2)Vcc: 接+5V电源。 (3)VL: 液晶显示器对比度调整端。 接+5V电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的精密电位器调整对比度,一般对比电压为0.7V左右。 (4)RS: 寄存器选择。 高电平时选择数据寄存器,否则选择指令寄存器。 (5) : 读写信号线。 高电平时进行读操作,低电平时进行写操作。 当RS和 共同为低电平时可以写入指令或者显示地址,当RS为低电平 为高电平时可以读出忙信号,当RS为高电平 为低电平时可以写入数据。 (6)E: 使能端。 当E端由高电平跳变成低电平时,液晶模块执行命令。 (7)D1~D8: 8位双向数据线。 (8)BLA: 背光源正极; (9)BLK: 背光源负极。 图2-7LCD1602引脚图 LCD1602引脚功能表如下表2-7所示: 表2-7LCD1602引脚功能表 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有: 阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 LCD1602液晶模块内部的控制器共有11条控制指令,如表2-8所示: 表2-8LCD1602控制命令表 指令 RS R/W D8 D7 D6 D5 D4 D3 D2 D1 清显示 0 0 0 0 0 0 0 0 0 1 光标返回 0 0 0 0 0 0 0 0 1 * 置输入模式 0 0 0 0 0 0 0 1 I/D S 显示开/关控制 0 0 0 0 0 0 1 D C B 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 置功能 0 0 0 0 1 DL N F * * 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址 置数据存贮器地址 0 0 1 显示数据存贮器地址(ADD) 读忙标志或地址 0 1 BF 计数器地址(AC) 写数到CGRAMD或DRAM 1 0 要写的数 从CGRAMD或DRAM读数 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 单片机 LCD 电子 时钟 方案设计
![提示](https://static.bdocx.com/images/bang_tan.gif)