资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于DS1302的数字时钟的设计 姓名: 学号: 专业:电子信息科学与技术 指定老师:一, 实验目的 时表作为一种定时工具被广泛的使用在生产生活的各方面。而电子钟又具有价格便宜,质量轻,定时误差小等优点,被广泛的应用在生产,生活的各个方面。本次课程设计,我利用单片机和DS1302实现数字时钟。并在设计过程中体验学习单片机设计的基本流程,提高对单片机的认识。为毕业工作打下坚实的基础。二, 实验内容 以AT89S52为核心,结合DS1302和LCD1602,设计一个数字时钟。在液晶上实现年,月,日,时,分,秒和星期的显示,并且日期和时间都可以通过按键选择进行调整。给DS1302设置初始化的时间。当选择CHG键时,可以跳转到年月日时分秒和星期处的位置,此时,通过INC键可以进行增加调整,DEC可以进行减小调整。三, 实验器件介绍 1,AT89S52 AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。 AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89S52管脚图 2,DS1302 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 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引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 DS1302的管脚图 3,LCD1602 1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。 四,实验的硬件设计 这次数字时钟设计主要由四个模块组成,分别是数据处理模块,DS1302模块,键盘输入模块和液晶显示模块。通过DS1302提供时间数据,单片机处理数据并且通过液晶显示时间。修改时间时,通过键盘来选择修改位置和执行增加或者减小的数量。原理图: 五,实验的软件设计在系统设计中,除了硬件设计之外,软件设计也是很重要的,它是系统工作的指挥者,因此系统软件设计时要遵循结构合理、操作性能好、具有一定的保护措施、兼容性好的设计原则来开发设计。数字时钟软件设计主要包括主程序模块、LCD1602模块、DS1302模块,键盘扫描模块和修改时间模块 。系统的流程图:实物图:1,整体结构图2,正常的日期显示结果3,关掉电源再打开,时间不会失去4,修改时间的演示图程序清单:#include#include#includesbit a0 = ACC0;sbit a1 = ACC1;sbit a2 = ACC2;sbit a3 = ACC3;sbit a4 = ACC4;sbit a5 = ACC5;sbit a6 = ACC6;sbit a7 = ACC7;sbit speaker = P36 ;/蜂鸣器sbit INC = P15 ;/增加键sbit DEC = P16 ;/减少键sbit CHG = P17 ;/修改键sbit RS=P20;/指令OR数据寄存器选择sbit RW=P21;/读写控制sbit EN=P22;/使能控制sbit SCLK=P10;/1302时钟线sbit IO=P11;/1302数据线sbit RST=P12;/1302复位线#define LCLR 0x01/清屏#define MODE 0x38/8位数据,双列显示,5*7字形#define DATA P0/8位数据并行口#define ON 0x0c/开显示,关光标,光标不闪烁#define ADDR_MODE 0x06volatile unsigned char data timedata7 ;/时间值unsigned char display_buffer116;/显示缓冲区1 unsigned char display_buffer216;/显示缓冲区2volatile unsigned int self_pos = 0 ;/自定义三角形标志显示位置变量volatile data WZ = 0 ; /修改的位置值volatile data ZENG = 0 ;/增加的值volatile data JIAN = 0 ;/减小的值unsigned char code self_table1=0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,/年0x1f,0x11,0x1f,0x11,0x1f,0x11,0x15,0x17,/月0x00,0x1f,0x11,0x1f,0x11,0x11,0x1f,0x00,/日;void delay_ms(unsigned char count) / 延时时间unsigned char i;for(;count0;count-)for(i=0;i0;speak_count-)speaker = 0 ;delay_ms(1) ;speaker = 1 ;delay_ms(3) ;/*忙检测*/ void LCD1602_check_busy(void)DATA = 0xff;RS =0;RW =1;EN =1;while(DATA & 0x80) ;EN =0 ;/*写指令*/ void LCD1602_write_cmd(unsigned char cmd)LCD1602_check_busy();RS = 0 ;RW = 0 ;DATA = cmd ;EN = 1 ;EN = 0 ;/*写数据*/ void LCD1602_write_data(unsigned char dat)LCD1602_check_busy();RS = 1 ;RW = 0 ;DATA = dat ;EN = 1 ;EN = 0 ; void LCD1602_init(void)unsigned char i ;LCD1602_write_cmd(0x40);/CGRAM起始地址for(i=0;i40;i+)LCD1602_write_data(self_table1i);/写入自定义字符LCD1602_write_cmd(MODE) ;LCD1602_write_cmd(ON) ;LCD1602_write_cm
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号