好文档 - 专业文书写作范文服务资料分享网站

基于51单片机的电子万年历的设计 

天下 分享 时间: 加入收藏 我要投稿 点赞

宜宾职业技术学院电子信息工程系 基于51单片机实现万年历的设计

5 系统程序的设计

5.1 阳历程序设计

因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、[小]时、分、秒等数据,再处理即可。在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图见图5.1所示。

开 始 初始化1302 1302开始振荡 从1302中读出年、周、月、日、[小]时、分、秒 读出的数据都为BCD码,将其高低位分离送显示缓冲单元 图5.1 阳历程序流程图

5.2 时间调整程序设计

调整时间用5个调整按钮,1个作为移位、控制用,2个作为加和减用,还有2个作为闹钟调整使用,分别定义为控制按钮、加按钮、减按钮、闹钟加按纽、闹钟减按纽。在调整时间过程中,要调整的位与别的位应该有区别。所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定时间熄灭一次,比如说50ms。利用定时器计时,当达到50ms溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。 5.3 温度程序设计

系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温

16

宜宾职业技术学院电子信息工程系 基于51单片机实现万年历的设计

度子程序、显示数据刷新子程序等等。 5.3.1 主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。其程序流程图见5.2。 5.3.2 读出温度子程序

主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图5.3所示。 5.3.3 温度转换命令子程序

温度转换子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。

发DS18B20复位命令 初始化 发跳过ROM命令 调用显示子程序 发读取温度命令 N 1S到? Y 初次上电? Y 读出温度值 温度计算处理 显示数据刷新 读取操作,CRC校验 N N 9字节完? Y CRC校验正Y 移入温度暂存器 N 发温度转换开始命令 结束

图5.2 DS18B20温度计主程序流程图 图5.3 读出温度子程序流程图

17

宜宾职业技术学院电子信息工程系 基于51单片机实现万年历的设计

5.3.4 计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。

5.3.5显示数据刷新子程序

显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。

18

宜宾职业技术学院电子信息工程系 基于51单片机实现万年历的设计

6 调试及性能分析

6.1 调试步骤

系统的调试分为硬件调试和软件调试。其中硬件调试主要是检测硬件电路是否有短路、断路、虚焊现象。时钟和测温部分的硬件电路很简单,DS1302通过3根线、DS18B20只通过1根线与单片机相连接,很容易检测,主要是检测引脚晶振和电源是否接好。另外可以通过软件来调试硬件,如编写一个简单的显示程序来测试显示电路连接是否正确。接下来可进行软件调试,可以编写只含DS1302的计时和读写程序、显示程序,测试DS1302是否正常工作。最后调试日历、时间、闹钟、报警和温度程序。 6.2 性能分析

计时器最关键的是计时的精度。电子万年历中DS1302上最好使用专用的晶振。经测试制作的电子万年历,误差较大,设计可以通过换用标准晶振或用软件进行修正。

19

宜宾职业技术学院电子信息工程系 基于51单片机实现万年历的设计

7 总结

此次设计立足于电子技术的实际运用,不断实践,开拓了思维,设计以考查、调研、搜集资料、拟订方案、进行系统规划、编程、仿真、调试的流程,使我深刻的体会到了在学习我们专业的过程中理论与实践相结合的重要性,同时也解决了以前学习比较模糊的专业知识点,使自己掌握的专业知识更加结构化、系统化。

总之,本次设计在各位领导的精心安排与大力支持下;在指导老师的耐心指导下;在各位同学和朋友的贴心帮助下解决了许多设计中的实际困难,我以最低的成本和最简单的方案设计出了功能强大的电子万年历。

20

基于51单片机的电子万年历的设计 

宜宾职业技术学院电子信息工程系基于51单片机实现万年历的设计5系统程序的设计5.1阳历程序设计因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、[小]时、分、秒等数据,再处理即可。在首次对DS1302进行操作之前,必须对它进行初始化,然后从
推荐度:
点击下载文档文档为doc格式
6f3g99gwa94zk8m0i2fe
领取福利

微信扫码领取福利

微信扫码分享