目录1.题目设计要求 (1)2.开发平台简介 (1)3.系统硬件设计 (2)3.1设计原理 (2)3.2器件的功能与作用 (2)3.2.1 MCS51单片机AT89C51 (2)3.2.2复位电路 (3)3.2.3晶振电路 (4)3.2.4 DS1302时钟模块 (4)3.2.5 引脚功能及结构 (4)3.2.6 DS1302的控制字节 (5)3.2.7 数据输入输出(I/O) (5)3.2.8 DS1302的寄存器 (6)3.2.9 液晶显示LCD1602 (6)3.2.10 串行时钟日历片DS1302 (8)4.系统软件设计 (10)4.1程序流程 (10)4.2程序代码 (10)5.系统仿真调试 (20)5.1仿真原理图设计 (20)5.2仿真运行过程 (21)5.3仿真运行结果 (21)6.总结 (21)7.参考文献 (22)1.题目设计要求通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。
要求LCD上显示的日期和时间与当前系统时间保持一致。
2.开发平台简介2.1系统仿真平台ProteusProteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。
Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。
和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。
另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。
2.2软件开发平台Keil CKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
3.系统硬件设计3.1 设计原理图3.1 电路原理图3.2 器件的功能与作用3.2.1 MCS51单片机AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89S51系列单片机中有PDIP,PLCC,TQFP多种封装形式。
本设计采用的是PDIP封装40管脚的单片机。
图3.2 主控制模块AT89C523.2.2复位电路复位是单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
图3.3 复位电路3.2.3晶振电路图3.4 晶振电路晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。
3.2.4 DS1302时钟模块DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
3.2.5 引脚功能及结构DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK为时钟输入端。
下图为DS1302的引脚功能图:图3.5 DS1302封装图3.2.6 DS1302的控制字节DS1302 的控制字节如下图所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3.2.7 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
图3.6 DS1302的寄存器3.2.8 DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
图3.7 DS1302的寄存器3.2.9 液晶显示LCD16021602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
管脚功能图3.8 LCD1602引脚图RT-1602采用表中的16 脚接口:第一脚:Vss,电源地。
第二脚:VDD,+5V电源。
第三脚:VL,液晶显示偏压信号。
第四脚:RS,数据/命令选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。
第五脚:R/W,读/写选择端。
第六脚:E,使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第七~14脚:D0~D7,为8位双向数据线。
第15脚:BLA,背光源正极。
第16脚:BLK,背光源负极。
图3.9 模块显示3.2.10 串行时钟日历片DS1302系统的组成与工作原理:系统由单片机AT89C52,串行日历时钟片DS1302,液晶显示模组LCD1602。
DS1302的CLOCK与AT89C52的P1.6相连,RST与P1.5相连,IO与P1.7相连。
LCD1602的D0~D7与AT89C51的P0.0~P.7相连,并接上拉电阻,RS与P2.0相连,RW与P2.1相连,E与P2.2相连。
DS1302是DALLAS公司拖出的涓流充电时钟芯片,内含有一个实时时钟/日历和31个季节静态RAM,通过简单地串行接口与单片机进行通信,实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24小时或12小时格式,DS1302与单片机之间能简单地采用同步串行方式进行通信,仅需用到RES复位、I/O 数据线、SCLK串行时钟3个口线。
对时钟、RAM的读/写,可以改用单字节方式或多达31个字节的字符组方式。
DS1302工作时功耗很低,保持数据和时钟信息是功率小于1mW。
DS1302广泛应用于电话传真、便携式仪器及电池供电的仪器仪表等产品领域中。
RT-1602 字符型液晶模块是以两行16个子的5*7点阵吐信来显示字符的液晶显示器。
DS1302有8个引脚:X1、X2:32.768kHz晶振介入引脚。
GND:地。
RST:复位引脚,低电平有效。
I/O:数据输入/输出引脚,具有三态功能。
SCLK:串行时钟输入引脚。
Vcc1:工作电源引脚。
Vcc2:备用电源引脚。
DS1302有一个控制寄存器,12个日历,时钟寄存器和31个RAM。
控制寄存器控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。
它用于对DS1302读写过程进行控制,它的格式如下:表3.1 控制寄存器的格式各项功能说明如下。
D7:固定为1D6:RAM/CK位,片内RAM或日历、时钟寄存器选择位,当RAM/CK=1时,对片内RAM进行读写,当RAM/CK=0时,对日历、时钟寄存器进行读写。