嵌入式课程设计报告
DS1302控制字:
控制字节最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钏娄据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 DS1302的复位引脚:
通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阴态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。 DS1302的数据输入与输出:
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指
- 5 -
嵌入式课程设计报告
令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0至高位7,数据读写时序如下图:
DS1302寄存器:
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
2. 2 AT89C52
功能特性概述:
AT89C52提供以下标准功能:8k字节Flash闪速 存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但通话RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作
- 6 -
嵌入式课程设计报告
并禁止其它所有部件工作直到下一个硬件复位。 引脚功能说明:
Vcc:电源电压 GND:地
P0口:P0口是一组8位漏极开中型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
P1口、P2口、P3口:是一组带内部上拉电阻的8位双向I/O口,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平, 此时可作输入口。作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流。
2. 3 LCD1602
接口信号说明:
基本操作时序:
读状态:输入:RS=L,RW=H,E=H 输出:D0~D7=状态字 写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲 输出:无 读数据:输入:RS=H,RW=H,E=H 输出:D0~D7=数据
- 7 -
嵌入式课程设计报告
写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲 输出:无 读操作时序:
写操作时序:
2. 4 设计方案
以AT89C52为主控芯片,串行时钟芯片DS1302为核心计时芯片,LCD1602为主要显示器件,组成数字时钟电路。将AT89C52的P0口分别与LCD1602的D0~D7相连,P2.0接DS1302的SCKL引脚,P1.5接DS1302的RST引脚,P1.7接DS1302的I/O引脚,P2.2接LCD1602的使能端E,P2.0接LCD1602的RS引脚,P2.1接LCD1602的RW引脚。
- 8 -
嵌入式课程设计报告
3.软件程序设计
3.1主程序
#include
void Delay1ms(unsigned int count) {
unsigned int i,j; for(i=0;i main() { SYSTEMTIME CurrentTime; LCD_Initial(); Initial_DS1302(); GotoXY(0,0); - 9 -