




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计成果说明书题 目: 基于DS1302的实时时钟设计 学生姓名: 陈岱 学 号: 0800403206 学 院: 机电工程学院 班 级: A08电信(2)班 指导教师: 李良儿 浙江海洋学院教务处2010年 12 月 23 日浙江海洋学院课程设计成绩评定表20 10 20 11 学年 第 1 学期学院 机电工程学院 班级 A08电信(2)班 专业 电子信息工程 学生姓名(学 号) 陈岱(0800403206) 课程设计名 称 单片机原理及应用题 目 基于DS1302的实时时钟设计指导教师评语指导教师签名: 年 月 日答辩评语及成绩答辩小组教师签名: 年 月 日 浙江海洋学院课程设计任务书
2、20 1020 11学年 第 1 学期学院 机电工程 班级 A08电信(2) 专业 电子信息工程 学生姓名(学号) 陈岱(0800403206)课程名称单片机原理及应用设计题目基于DS1302的实时时钟设计完成期限自 2010 年 12 月 20 日至 2010 年 12 月 26 日 共 1 周设计依据1.单片机原理及应用课程教学大纲。2.单片机原理及应用课程设计教学大纲。3.A08电信单片机原理及应用课程设计教学计划。设计要求及主要内容基本要求: 通过程序直接对实时时钟时间进行设置,启动时钟运行。用8位数码管显示。 发挥部分: 1、通过按钮对实时时钟时间进行设置,使时钟能正常运行。 2、其
3、他发挥功能。主要内容: 用汇编或C语言编制相应的程序,用PROTEUS绘制电路图并仿真调试实现实时时钟的设计。参考资料1.楼然苗、李光飞,单片机课程设计指导M,北京,北京航空航天大学出版社,2007.07.2.蔡美琴等,MCS-51系列单片机系统及其应用(第二版)M,高等教学出版社,2004.06.3、楼然苗、胡佳文等,单片机实验与课程设计(PROTEUS仿真版)M,杭州,浙江大学出版社,2010.10指导教师签字日期摘要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于
4、与控制有关的系统,越来越广泛地应用。本设计采用实时时钟芯片DS1302,基于AT89C51单片机的设计制作了具有红外遥控、LED显示、可设定时的电子时钟,达到制作的目的,并用protuse和medwin进行模拟实验。本报告中主要介绍了系统的硬件设计和软件设计,并用八位共阳极LED数码管,采用查询法查键实现。关键词 单片机 DS1302 AT89C51 共阳极LED数码显示器 目 录一、设计任务及主要技术指标和要求.61.1 设计任务.61.2 主要技术指标和要求.6二、引言.6三、核心芯片简介.63.1 DS1302简介 63.1.1 DS1302引脚功能与内部结构7 DS1302的寄存器.7
5、3.2 AT89C52简介.8四、方案设计和论证.9五、软硬件设计.95.1硬件电路设计.95.2软件实现10主程序12公历设置程序14闪动调时程序14显示程序.14时钟读出程序设计.155.2.5时钟调整程序设计. . .15六、系统调试. .16七、总结16八、参考文献16一、设计任务及主要技术指标和要求 1.1 设计任务:用DS1302时钟芯片设计实时时钟。 1.2 主要技术指标和要求: (1)通过程序直接对实时时钟时间进行设置,启动时钟运行。用8位数码管显示。 (2)通过按钮对实时时钟时间进行设置,使时钟能正常运行。 (3)其他发挥功能。 二、引言 从古代的滴漏更鼓到近代的机械钟,从电
6、子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。钟表的数字化,大力推动了计时的精确性和可靠性。在单片机构成的装置中,实时时钟是必不可少的部件。目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。本设计选取串行接口时钟芯片DS1302与单
7、片机同步通信构成数字时钟电路。其简单的三线接口能为单片机节省大量资源,DS1302的后背电源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。这些优点解决了目前常用的实时时钟所无法解决的问题。该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。三、核心芯片简介3.1 DS1302简介 DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。时钟
8、可工作在24小时格式或12小时(AM/PM)格式。 DS1302与单片机的接口使用同步串行通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。3.1.1 DS1302引脚功能与内部结构 DS1302的引脚功能如表1所示,外形及内部结构如图1所示:引脚号引脚名称功能1VCC2主电源2、3X1、X2振荡源,外接32768Hz晶振4GND地线5
9、RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行时钟输入端8VCC1后备电源表1 DS1302引脚功能表图1 DS1302管脚图及内部结构图 DS1302的寄存器 DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。 DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H-FD
10、H,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器 80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN时寄存器84H85H01-12或00-2312/24010HRHR表2 DS1302的时钟寄存器及其控制字3.2 AT89C52简介图2 AT89S51引脚图功能特性概括:AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、128 Bytes的随机存
11、取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。四、方案设计和论证使用串行接口时钟芯片DS1302设计时钟电路。该设计方案以单片机AT89C52为主控芯片,以串行时钟芯片DS1302为核心计时芯片,组成数字时钟电路。该电路不但能准确地计时、附加其它功能,而且,其三线接口可以节省接口资源,在断电后不丢失时间和数据信息。设计方案接口简单,计时可靠,综合性能良好。DS1302时钟电路(AT89C52)主控模块键扫描电路八位LED数码管显示电路 图
12、3 时钟芯片DS1302设计时钟五、软硬件设计5.1硬件电路设计LED数码管采用动态扫描方式显示,P0口为段码输出口,P2口为扫描驱动口,扫描驱动信号经74HC224功率放大来低点亮电源。计时按键设计了2个,分别接在P3.5,P3.6口,用于设定与加一调整。DS1302时钟芯片的晶挣频率为32.78KHz。秒表/时钟计时器的硬件电路如图,采用32.768KHz晶振可有利于提高秒计时的精确性。图4 DS1302实时时钟硬件仿真电路5.2软件实现汇编的主程序 START:MOV SP,#80H;堆栈在80H上 CLR RST ;1302禁止 MOV DISPFIRST,#72H MOV 74H,#
13、12;"-" MOV 77H,#12 MOV TMOD,#10H;计数器1,方式1 MOV TL1,#00H MOV TH1,#00H MOV INTCON,#CON_DATA CLR 00H;清闪烁标志 CLR 01H;清闪烁标志 SETB EA MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H;允许写1302,#80H,禁止 LCALL WRITE MOV DS1302_ADDR,#90H MOV DS1302_DATA,#0A6H;1302充电电流1.1MA;#A5:2.2MA;#A7:0.6MA; LCALL WRITE MOV D
14、S1302_ADDR,#80H MOV DS1302_DATA,#00H;1302晶振开始振荡,#80H,禁止 LCALL WRITE公历设置程序SETG:LCALL DL20ms JB KEYSW0,MAIN1 WAITKEY0:LCALL DISPLAY;等待按键释放 JNB KEYSW0,WAITKEY0 LCALL DISPLAY JNB KEYSW0,WAITKEY0 MOV 78H,#00H;调时时秒位为0 MOV 79H,#00H;调时时秒位为0 MOV 40H,#00H;调时时秒位为0 MOV 41H,#00H;调时时秒位为0 MOV DS1302_ADDR,#8EH MOV
15、DS1302_DATA,#00H;允许写1302 LCALL WRITE MOV DS1302_ADDR,#80H MOV DS1302_DATA,#80H;1302停止振荡 LCALL WRITE SETB TR1;闪烁开始 SETB ET1 SETG9: LCALL DISPLAY;等待键按下 JNB KEYSW0,SETG10 JNB KEYSW1,GADDHOUR AJMP SETG9 GADDHOUR:LCALL DL20ms JB KEYSW1,SETG9 MOV R7,52H;小时加1 LCALL ADD1 MOV 52H,A CJNE A,#24H,GADDHOUR11 GAD
16、DHOUR11:JC GADDHOUR1 MOV 52H,#00H GADDHOUR1:MOV DS1302_ADDR,#84H;小时值送人1302 MOV DS1302_DATA,52H LCALL WRITE MOV R0,52H LCALL DIVIDE MOV 73H,R1 MOV 44H,R1 MOV 72H,R2 MOV 45H,R2 WAITKEY1: LCALL DISPLAY JNB KEYSW1,WAITKEY1 LCALL DISPLAY JNB KEYSW1,WAITKEY1 LJMP SETG9 SETG10: LCALL DL20ms JB KEYSW0,SETG9
17、 SETB 01H;调分时闪标志 WAITKEY00: LCALL DISPLAY JNB KEYSW0,WAITKEY00 LCALL DISPLAY JNB KEYSW0,WAITKEY00 SETG11: LCALL DISPLAY JNB KEYSW0,SETGOUT JNB KEYSW1,GADDMINUTE AJMP SETG11 GADDMINUTE:LCALL DL20ms JB KEYSW1,SETG11 MOV R7,51H;分钟加1 LCALL ADD1 MOV 51H,A CJNE A,#60H,GADDMINUTE11 GADDMINUTE11:JC GADDMINU
18、TE1 MOV 51H,#00H GADDMINUTE1:MOV DS1302_ADDR,#82H;分钟值送入1302 MOV DS1302_DATA,51H LCALL WRITE MOV R0,51H LCALL DIVIDE MOV 76H,R1 MOV 42H,R1 MOV 75H,R2 MOV 43H,R2 WAITKEY111:LCALL DISPLAY JNB KEYSW1,WAITKEY111 LCALL DISPLAY JNB KEYSW1,WAITKEY111 AJMP SETG11 SETGOUT: LCALL DL20ms JB KEYSW0,SETG11 MOV DS
19、1302_ADDR,#80H MOV DS1302_DATA,#00H;1302晶振开始振荡 LCALL WRITE MOV DS1302_ADDR,#8EH MOV DS1302_DATA,#00H;禁止写入1302 LCALL WRITE CLR 00H CLR 01H CLR ET1;关闪中断 CLR TR1 WAITKEY000:LCALL DISPLAY ;等待按键释放 JNB KEYSW0,WAITKEY000 LCALL DISPLAY JNB KEYSW0,WAITKEY000 LJMP MAIN1闪动调时程序 INTT1:PUSH ACC PUSH PSW DJNZ INTC
20、ON,GFLASHOUT MOV INTCON,#CON_DATA GFLASH:CPL 00H JB 00H,GFLASH5 MOV 72H,45H MOV 73H,44H MOV 75H,43H MOV 76H,42H MOV 78H,41H MOV 79H,40H GFLASHOUT:LCALL DISPLAY POP PSW POP ACC RETI GFLASH5:JB 01H,GFLASH6;调小时闪 MOV 72H,#0AH MOV 73H,#0AH AJMP GFLASHOUT GFLASH6:MOV 75H,#0AH;调分钟闪 MOV 76H,#0AH AJMP GFLASH
21、OUT 显示程序 DISPLAY:MOV R1,DISPFIRST MOV R5,#01H SPLAY:MOV A,R5 MOV P2,A MOV A,R1 MOV DPTR,#TABS MOVC A,A+DPTR MOV P0,A MOV A,R5 LCALL DL1ms INC R1 MOV A,R5 JB ACC.7,ENDOUTS RL A MOV R5,A AJMP SPLAY ENDOUTS:MOV P2,#00H MOV P0,#0FFH RET TABS:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H ;显示值0 1 2 3 4 5 6 7 8 9 不显 C - A' ;内存数0 1 2 3 4 5 6 7 8 9 0AH 0BH 0CH 0DH5.2.5时钟读出程序设计开始初始化DS1302DS1302开始振荡从130
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论