![基于DS1302电子时钟的设计概要_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-6/6/35d9ebd9-6d4f-4aab-9488-296184c605f5/35d9ebd9-6d4f-4aab-9488-296184c605f51.gif)
![基于DS1302电子时钟的设计概要_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-6/6/35d9ebd9-6d4f-4aab-9488-296184c605f5/35d9ebd9-6d4f-4aab-9488-296184c605f52.gif)
![基于DS1302电子时钟的设计概要_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-6/6/35d9ebd9-6d4f-4aab-9488-296184c605f5/35d9ebd9-6d4f-4aab-9488-296184c605f53.gif)
![基于DS1302电子时钟的设计概要_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-6/6/35d9ebd9-6d4f-4aab-9488-296184c605f5/35d9ebd9-6d4f-4aab-9488-296184c605f54.gif)
![基于DS1302电子时钟的设计概要_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-6/6/35d9ebd9-6d4f-4aab-9488-296184c605f5/35d9ebd9-6d4f-4aab-9488-296184c605f55.gif)
已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用课程设计报告单片机应用课程设计报告 (20122013 学年第 2 学期) 设计题目:基于设计题目:基于 DS1302DS1302 电子时钟的设计电子时钟的设计 班别: 姓名: 指导教师: 时间: 物理与电子工程学院 2 目录目录 1 1 设计任务设计任务 .3 3 2 2 系统总体方案设计系统总体方案设计 .3 3 2.12.1 各个模块方案论证各个模块方案论证 .3 3 2.1.12.1.1 时钟芯片的选择时钟芯片的选择.3 3 2.1.22.1.2 显示器的选择显示器的选择.3 3 2.22.2 总体方案设计总体方案设计.4 4 3 3 硬件电路设计硬件电路设计 .4 4 3.13.1 单片机最小系统单片机最小系统 .4 4 3.23.2 13021302 时钟电路时钟电路.5 5 3.33.3 按键调时电路按键调时电路 .5 5 4 4 系统软件设计系统软件设计 .6 6 4.14.1 主程序流程图主程序流程图 .6 6 4.24.2 子程序流程图子程序流程图 .7 7 4.2.14.2.1 DS1302DS1302 子程序流程图子程序流程图 .7 7 4.2.24.2.2 16021602 子程序流程图子程序流程图 .8 8 4.34.3 按键校正调时程序按键校正调时程序 .8 8 5 5 实物调试实物调试 .9 9 5.15.1 实物性能分析实物性能分析.9 9 5.25.2 总结总结 .1212 附录附录 1 1.1414 (1 1)系统总电路图)系统总电路图 .1414 (2 2)系统仿真图)系统仿真图 .1414 附录附录 2 2.1616 部分程序清单部分程序清单 .1616 物理与电子工程学院 3 1 设计任务设计任务 基本要求:采用 DS1302 时钟芯片与单片机 STC89C52 相结合设计电子时钟 来显示出实时年、月、日、时、分、秒等时间,并且可以通过按键进行时间调 整。 2 系统总体方案设计系统总体方案设计 2.12.1 各个模块方案论证各个模块方案论证 2.1.12.1.1 时钟芯片的选择时钟芯片的选择 由于设计的是电子时钟, 而单片机 STC89C52 自带计时功能,利用单片机 实现数据的显示和调整是可行的,采用单片机计时,利用它的一个 16 位定时器 /计数器每 50ms 产生一个中断信号,中断 20 次后产生一个秒信号,然后根据时 间进制关系依次向分、时、日、星期、月、年进位。这样就实现了直接用单片 机来实现电子万年历设计。 用单片机来实现电子万年历设计,无须外接其他芯片,充分利用了单片机 的资源。但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂。 在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便 对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。利用 单片机进行控制,采用 DS1302 作为实时时钟芯片,其三线接口 SCLK、I/O、/RST 与单片机进行同步通信,外加掉电存储电路、显示电路、键 盘电路,即构成一个基本的电子万年历系统。由于在系统设计时,需要考虑以 下几点因素:功耗低、精确度高、软件程较简单,芯片的体积小、芯片成本低 等,而 DS1302 芯片有上面所述的诸多优点,所以本设计采用 DS1302 作为实时 时钟芯片。 2.1.22.1.2 显示器的选择显示器的选择 LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而 显示出需要的字符,但此次设计需要显示汉字,如果选用数码管来显示汉字, 则会需要数十个,这样就会产生浪费,而且不方便控制,不符合设计的初衷。 LCD1602 具有微功耗、体积小、显示内容丰富、超薄轻巧,对比度可调、 内含复位电路、提供各种控制命令等特点,完全满足本次设计的需要,因此选 物理与电子工程学院 4 择用 LCD1602 作为显示器使用。 2.22.2 总体方案设计总体方案设计 DS1302 具有自身计时的功能,但是自身却没法显示并且调整时间,这时就 不可避免的要使用到单片机 STC89C52,它可以作为一个桥梁,架接液晶显示器 和 DS1302,并且利用单片机的专用端口可以实现调整时间的功能。 利用单片机 STC89C52 实现数据的显示和调整是整个系统的关键所在,在整 个系统中,使用单片机的 P0 口作为液晶显示屏的显示端口,液晶显示屏所显示 的数据全都通过 P0 口接收与发送 ,P1 口用作触发开关的通信接口,这样单片 机可以较好地完成时间的显示与调整。 3 3 硬件电路设计硬件电路设计 3.13.1 单片机最小系统单片机最小系统 单片机最小系统是时钟的主要控制器,它是连接外围与时钟电路、输入按 键、显示器 LCD1602 的纽带。它主要由 STC89C52 单片机、单片机晶振电路与单 片机复位电路组成。单片机最小系统如图 1 所示。 图图 1 1 单片机最小系统电路单片机最小系统电路 晶振系统由两个 30pf 的陶瓷电容和一个 12MHz 的晶振组成,分别接在 XTAL1、XTAL2 上,在单片机内部,这两个端口是一个反相放大器的输入端,这 个放大器构成了片内震荡器,它决定了单片机的时钟周期。 单片机有一个复位引脚 RST,高电平有效,只要 RST 保持高电平,单片机 物理与电子工程学院 5 将循环复位,复位期间,ALE、PSEN 输出高电平。RST 从高电平变为低电平之后, PC 指针变为 0000H,使单片机从程序存储器地址为 0000H 的单元开始执行。当 单片机执行程序出错或进入死循环时,也可按复位按钮重新启动。 3.2 1302 时钟电路 时钟电路是时间计时的基本电路,时钟电路一般由 DS1302 时钟芯片和 32.768MHz 晶振构成。理论上在晶振两端加两个 6pf 的电容,可以使晶振频率 更为精确。DS1302 时钟电路图如图 2 所示。 图图 2 2 13021302 时钟电路时钟电路 3.33.3按键调时电路按键调时电路 按键调时电路主要的作用是校正时间,它包含有五个动作:进入(S3),退 出(S6),加一(S4),减一(S5),切换(S2)。要进行校正调时,要首先按启动按 钮,启动按键有效之后,其他按键才能被解锁,如果启动按键判断无效,其余 按键将被锁定,按退出按键就会退出校正调时状态。按键调时电路如图 3 所示。 物理与电子工程学院 6 图图 3 3 按键校正调时电路按键校正调时电路 4 4 系统软件设计系统软件设计 DS1302 是利用单片机控制来实现时钟计时, C 语言具有简单易懂,条理 清晰,易于修改的特点,因此应用起来就比较方便。 4.14.1 主程序流程图主程序流程图 物理与电子工程学院 7 图图 4 4 主程序流程图主程序流程图 开始时,先对变量进行初始化,然后对 DS1302 进行处理,使其不具备写保 护,这样才能给 DS1302 通信,使其能与单片机交换数据。给 DS1302 连续的脉 冲,接着向 1302 内部写入地址,直至写完。最后由单片机与 DS1302 通信,读 取 DS1302 内部的地址,直至读取完毕,然后单片机把所读到的数据传送给 1602,使数据呈现在液晶屏上,这样,整个主程序流程图就完成了。主程序流 程图如图 4 所示。 4.24.2 子程序流程图子程序流程图 4.2.14.2.1 DS1302DS1302 子程序流程图子程序流程图 DS1302 子程序流程图如图 5 所示。 是 否 图图 5 5 DS1302DS1302 子程序流程图子程序流程图 图 5 展示了 DS1302 工作的一个工作流程:首先便是对 DS1302 进行初始化, 使其不受写保护,方便数据写入,在连续的脉冲作用下,不断有数据写入 1302 开始 DS1302 初始化 写入数据 计数 是 否 校 正 调 时 读出数据 物理与电子工程学院 8 的地址中,直至需要调时,这时改变后的数据就会储存在新的地址上,读取时 便可把新的数据传输在 1602 上,即完成了调时。 4.2.24.2.2 16021602 子程序流程图子程序流程图 否 是 图图 6 6 16021602 子程序流程图子程序流程图 1602 显示器的工作流程图展示了 1602 的工作流程:启动时,首先对 1602 进行初始化,然后检测有没有数据写入,当有数据写入时,1602 便读出数据并 显示,没有数据写入时,1602 就一直处于等待中,直至有数据写入。1602 子程 序流程图如图 6 所示。 4.34.3 按键校正调时程序按键校正调时程序 if(num=1) enable(0 xc0+12); if(jia=0) 开始 1602 初始化 写入数据 是 否 有 写 入 读出数据显示 物理与电子工程学院 9 delay(5); if(jia=0) while(!jia); sec=bcdtodec(uc_R1302(0 x81) sec+; if(sec59) sec=0; L1602_char(2, 12, sec/10+48); L1602_char(2, 13, sec%10 + 48); v_W1302(0 x80,dectobcd(sec)|0 x80); if(jian=0) delay(5); if(jian=0) while(!jian); sec=bcdtodec(uc_R1302(0 x81); sec-; if(sec=-1) sec=59; L1602_char(2, 12, sec/10+48); L1602_char(2, 13, sec%10 + 48); v_W1302(0 x80,dectobcd(sec)|0 x80); 这是整个调时系统的一部分,它实现了时间的调整这一功能。全部程序详 见附录。 5 5 实物调试实物调试 5.15.1 实物性能分析实物性能分析 用 KEIL 编写程序软件编写程序、经过 Proteus 仿真软件仿真调试之后,确 认了此系统可正常运行,在这样的前提下,我们利用一个单片机最小系统、一 块用万用板焊接的模块和一个 1602 液晶完成了第一次实物仿真。本次实物如图 7 所示。虽然本次调试测试没有达到要求,但是为后续工作打下了不可替代的 基础。 物理与电子工程学院 10 图图 7 7 万用板实物万用板实物 我们在第一次的尝试之后,发现无较大问题存在,于是就尝试着做出了我 们此次课程设计的第一块 PCB 板,在仔细检查了整个电路无误之后我们就开始 了我们的尝试,第一块板的造型是深思熟虑之后才最终定稿的。可能是由于第 一次做双面板,技术不熟练,所以打板的时候就难免出现这样那样的问题,我 们的第一块板同样出现了问题:液晶显示屏上只显示三个小亮点,不显示数字, 实物如图 8 所示。 物理与电子工程学院 11 图图 8 8 第一块第一块 PCBPCB 板板 经过这一次的挫折,我们发现了本来不会出错的地方,无缘无故的出现了 好多问题,导致了第一次试验没能成功。但是我们并不气馁,经过细致的检查, 我们找到了大部分的问题,最终我们的第二块板也很快做出来了,可是问题又 出现了:时钟不走。第二块 PCB 板如图 9 所示。 图图 9 9 第二块第二块 PCBPCB 板板 物理与电子工程学院 12 因为时间数据一直不走,我们查阅了好多资料,又认真的把相关知识复习 了一遍,最终问题解决了:原来是 DS1302 的两个数据传输线的电流太小,于是 我们就在 P3.5、P1.6 的端口加上了上拉电阻,加大了电流,最终我们完成了设 计。完成的实物如图 10 所示。 图图 1010 最终设计最终设计 5.25.2 总结总结 首先,这次设计让我们更加了解了单片机及其运用,让我们受益匪浅,在 这次设计中,我们想挑战一下自己,于是就选用了 1602 液晶屏来显示数字时钟, 我们知道这对我们来说还是有难度的,但是我相信我们一定会克服这个困难的, 因为我坚信只有给自己真正的压力,自己才会获得真正的知识! 在整个方案的探究与决策中,我们自己动手分析设计程序加深了对自己未 知知识的理解和对指令的灵活运用。通过对程序的编译和电路的仿真,让我们 更加熟悉了仿真软件的应用,最重要的是使我们能够更直观的看到程序运行的 结果,这给了我们极大地鼓励与信心! 此外,通过这次单片机课程设计,不仅对我们的动手能力有进一步的提高, 物理与电子工程学院 13 而且还对我们的性格成长上也产生了很大的影响:设计操作量大,对我们的习 惯和技能要求高,对我们的素质发展有着相当重要的作用,要在操作前应该认 真学习理论知识,以便更好地指导实践,之后应该继续思考,把理论与实践更 好地结合起来,凡事不能操之过急,静下心来,认真的思考,谨慎的处理好动 手与动脑的有效结合。这种改变无疑让我们在以后的生活中能获取更多的益处 与经验。 本次课程设计给我印象最深刻的是它给我们启发:理论和实践是两个不同 的过程,理论是不能等于实践,反之也不行,两者是有区别的,有时理论是对 的,实践不一定能体现出来。实践出来了,不一定能和理论稳合呼应。比如, 我们在仿真的时候,我们电路和程序没有问题,完全正确,实验结果也与我们 预期的一样,这是我们产生了“此次设计如此简单,只要把电路图连对就行了” 错误想法,结果做出来的实物并没有按照我们的预期展现给我们:又有问题了! 经过我们认真仔细的检查,又查阅了众多的资料,把以前的资料又习一遍, 最终问题找到了。在找到问题的那一瞬间,我真切的感受到了理论与实际的切 切实实的联系,所有的东西并不是理论是正确的,实际也是正确的:我们按照 仿真的电路图连结起来的电路在真正做出来时,DS1302 的两个数据传输端口因 为电流过小而不能工作,我们在 P3.5 和 1.6 端口的后面接上了上拉电阻,这样 我们的作品才真正的完成了。 “读万卷书,不如行万里路” ,现在我终于明白这句从古至今都在流传的话 了,一句名言存在自有它存在的道理。我们会谨记此次设计带给我们的启发, 我们一定会认真的去思,仔细的去体会此次设计的真正意义 参考文献 1谭浩强主编. C 程序设计题解与上机指导(第 3 版)M. 北京,清华大学出版社, 2005.16-24 2谢维成 杨家国 董秀成,单片机原理与应用及 C51 程序设计(第 2 版)M,北京,清华 大学出版社,2009.7.25-36 物理与电子工程学院 14 附录附录 1 (1 1)系统总电路图系统总电路图 系统总电路图,如图 11 所示。 图图 1111 系统总电路图系统总电路图 (2 2) 系统仿真图系统仿真图 系统仿真图,如图 12 所示。 图图 1212 系统仿真图系统仿真图 物理与电子工程学院 15 (3 3) PCBPCB 板板 设计使用的 PCB 如图 13、14 所示 图图 1313 PCBPCB 板正面板正面 物理与电子工程学院 16 图图 1414 PCBPCB 板反面板反面 附录附录 2 2 程序清单程序清单: #include #include #define uchar unsigned char #define uint unsigned int sbit ACC0 = ACC0; sbit ACC7 = ACC7; sbit t=P10; sbit jia=P11; sbit jian=P12; sbit m=P13; sbit T_CLK = P16; sbit T_IO = P35; sbit T_RST = P17; sbit E=P27; /1602 sbit RW=P26; sbit RS=P25; void v_W1302(uchar ucAddr, uchar ucDa); uchar uc_R1302(uchar); uchar dectobcd(uchar bcd); uchar bcdtodec(uchar); void delay(uchar x) uchar i; while(x-) for(i=0;i59) sec=0; L1602_char(2, 12, sec/10/*%10*/+48); L1602_char(2, 13, sec%10 + 48); v_W1302(0 x80,dectobcd(sec)|0 x80); if(jian=0) delay(5); if(jian=0) while(!jian); sec=bcdtodec(uc_R1302(0 x81); sec-; if(sec=-1) sec=59; L1602_char(2, 12, sec/10/*%10*/+48); L1602_char(2, 13, sec%10 + 48); v_W1302(0 x80,dectobcd(sec)|0 x80); 物理与电子工程学院 19 if(num=2) enable(0 xc0+9); if(jia=0) delay(5); if(jia=0) min = bcdtodec(uc_R1302(0 x83); min+; while(!jia); if(min59) min=0; L1602_char(2, 9, min / 10 /*% 10 */+ 48); L1602_char(2, 10, min % 10 + 48); v_W1302(0 x82,dectobcd(min); if(jian=0) delay(5); if(jian=0) min = bcdtodec(uc_R1302(0 x83); min-; while(!jian); if(min=-1) min=59; L1602_char(2, 9, min / 10/*% 10 */+ 48); L1602_char(2, 10, min % 10 + 48); v_W1302(0 x82,dectobcd(min); if(num=3) enable(0 xc0+6); if(jia=0) delay(5); if(jia=0) hour = bcdtodec(uc_R1302(0 x85); hour+; while(!jia); if(hour23) hour=0; L1602_char(2, 6, hour / 10 /*% 10*/ + 48); 物理与电子工程学院 20 L1602_char(2, 7, hour % 10 + 48); v_W1302(0 x84,dectobcd(hour); if(jian=0) delay(5); if(jian=0) while(!jian); hour = bcdtodec(uc_R1302(0 x85); hour-; if(hour=-1) hour=23; L1602_char(2, 6, hour / 10/* % 10*/+ 48); L1602_char(2, 7, hour % 10 + 48); v_W1302(0 x84,dectobcd(hour); if(num=0) enable(0 x0c); v_W1302(0 x80,uc_R1302(0 x81) void v_RTInputByte(uchar ucDa) uchar i; ACC = ucDa; T_RST = 1; for(i=8; i0; i-) T_IO = ACC0; T_CLK = 1; T_CLK = 0; ACC = ACC 1; uchar uc_RTOutputByte(void) uchar i; T_RST = 1; 物理与电子工程学院 21 for(i=8; i0; i-) ACC = ACC 1; ACC7 = T_IO; T_CLK = 1; T_CLK = 0; return(ACC); void v_W1302(uchar ucAddr, uchar ucDa) T_RST = 0; T_CLK = 0; T_RST = 1; v_RTInputByte(ucAddr); _nop_(); _nop_(); v_RTInputByte(ucDa); T_CLK = 1; T_RST = 0; uchar uc_R1302(uchar ucAddr) uchar ucDa; T_RST = 0; T_CLK = 0; T_RST = 1; v_RTInputByte(ucAddr); _nop_(); _nop_(); ucDa = uc_RTOutputByte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度园林景观用树木租赁合同模板
- 高速公路防护工程劳务合同(3篇)
- 2025年个人住宅装修工程协议书
- 2025年矿权开采许可协议策划范本
- 2025年企业整体并购协议书
- 2025年资产重置策划谅解协议细则
- 2025年分手策划协议书范本
- 2025年高速精密电主轴项目规划申请报告模范
- 2025年策划授权协议范本正式版
- 2025年个人租赁私家车合同样式
- 医疗器械市场规划
- 安徽省合肥市庐阳区评价2023-2024学年六年级下学期小升初数学模拟试卷+
- 2024年3月山东省直监狱类面试题及参考答案全套
- 新产品研发工作总结汇报
- pi粉末成型工艺
- Optix-OSN3500智能化光传输设备业务配置手册范本
- swagelok管接头安装培训教程
- 公墓管理考核方案
- 把子肉店创业计划书
- 综合楼装修改造项目 投标方案(技术方案)
- 冀教版五年级上册英语全册单元测试卷(含期中期末试卷及听力音频)
评论
0/150
提交评论