基于DS1302电子时钟的设计 - 图文(2)

2019-08-29 23:27

物理与电子工程学院

图3 按键校正调时电路 4 系统软件设计

DS1302是利用单片机控制来实现时钟计时, C语言具有简单易懂,条理

清晰,易于修改的特点,因此应用起来就比较方便。

4.1 主程序流程图

图4 主程序流程图

6

物理与电子工程学院

开始时,先对变量进行初始化,然后对DS1302进行处理,使其不具备写保护,这样才能给DS1302通信,使其能与单片机交换数据。给DS1302连续的脉冲,接着向1302内部写入地址,直至写完。最后由单片机与DS1302通信,读取DS1302内部的地址,直至读取完毕,然后单片机把所读到的数据传送给1602,使数据呈现在液晶屏上,这样,整个主程序流程图就完成了。主程序流程图如图4所示。

4.2 子程序流程图

4.2.1 DS1302子程序流程图

DS1302子程序流程图如图5所示。

开始

是 写入数据 DS1302初始化 计数 否

是 否 校 正 调 时 读出数据 图5 DS1302子程序流程图

图5展示了DS1302工作的一个工作流程:首先便是对DS1302进行初始化,使其不受写保护,方便数据写入,在连续的脉冲作用下,不断有数据写入1302的地址中,直至需要调时,这时改变后的数据就会储存在新的地址上,读取时便可把新的数据传输在1602上,即完成了调时。

7

物理与电子工程学院

4.2.2 1602子程序流程图

是 否 有

写 入 否 是 写入数据 开始 1602初始化 读出数据显示

图6 1602子程序流程图

1602显示器的工作流程图展示了1602的工作流程:启动时,首先对1602进行初始化,然后检测有没有数据写入,当有数据写入时,1602便读出数据并显示,没有数据写入时,1602就一直处于等待中,直至有数据写入。1602子程序流程图如图6所示。

4.3 按键校正调时程序

?????? if(num==1) {

enable(0xc0+12); if(jia==0) delay(5); if(jia==0) {

while(!jia);

sec=bcdtodec(uc_R1302(0x81)&0x7f);

8

物理与电子工程学院

sec++; if(sec>59) sec=0;

L1602_char(2, 12, sec/10+48); L1602_char(2, 13, sec + 48);

v_W1302(0x80,dectobcd(sec)|0x80); } if(jian==0) delay(5); if(jian==0) { while(!jian); sec=bcdtodec(uc_R1302(0x81)); sec--; if(sec==-1) sec=59; L1602_char(2, 12, sec/10+48); L1602_char(2, 13, sec + 48); v_W1302(0x80,dectobcd(sec)|0x80); } }

??????

这是整个调时系统的一部分,它实现了时间的调整这一功能。全部程序详见附录。

5 实物调试

5.1实物性能分析

用KEIL编写程序软件编写程序、经过Proteus仿真软件仿真调试之后,确认了此系统可正常运行,在这样的前提下,我们利用一个单片机最小系统、一块用万用板焊接的模块和一个1602液晶完成了第一次实物仿真。本次实物如图7所示。虽然本次调试测试没有达到要求,但是为后续工作打下了不可替代的基础。

9

物理与电子工程学院

图7 万用板实物

我们在第一次的尝试之后,发现无较大问题存在,于是就尝试着做出了我们此次课程设计的第一块PCB板,在仔细检查了整个电路无误之后我们就开始了我们的尝试,第一块板的造型是深思熟虑之后才最终定稿的。可能是由于第一次做双面板,技术不熟练,所以打板的时候就难免出现这样那样的问题,我们的第一块板同样出现了问题:液晶显示屏上只显示三个小亮点,不显示数字,实物如图8所示。

10


基于DS1302电子时钟的设计 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国古代诗歌散文鉴赏

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: