全球旧事资料 分类
先检测WINK是否为2,是则重新赋值WINK为5,修改位置从“时”变为“分”;再按下一次,WINK赋值为8,修改位置从“分”变为“秒”;第三次按下时重新赋值WINK使闪烁位为“时”。
加键处理:要调整的部分加1。由于采用24小时模式,若修改“时”,则先检测是否为23,是则重新赋值为0,否则直接加1;若修改“分”或“秒”,先检测是否为59,是则重新赋值为0,否则直接加1。
减键处理:要调整的部分减1。由于采用24小时模式,若修改“时”,则先检测是否为0,是则重新赋值为23,否则直接减1;若修改“分”或“秒”,先检测是否为0,是则重新赋值为59,否则直接减1。
确认键处理:表示修改完成。把修改后的数据从暂存区送到发送数据缓冲区,调用DS读写程序修改DS实时数据并显示,结束中断,返回主程序。
取消键处理:表示取消修改。由于修改的数据保存在暂存区,不影响DS实时数据,因此直接结束中断,返回主程序继续从DS读取时间并显示。
17
f图38中断调整流程图
18
f332闹钟调整模块当外部中断口P33收到下降沿信号,即闹钟调整键clc按下时,程序进入闹钟
调整中断,默认从“时”开始进行修改。该模块中的按键处理流程同时间调整模块,但在确认键和取消键处理时,闹钟
数据存储在单片机内,所以只需给该单片机存储地址重新赋值或者保持该地址数据不变,然后结束中断。
19
f4.调试结果分析及解决方案
软件完成后,把伟福编译后的文件通过烧录器下载到AT89S52芯片,加上电源就可以进行调试。
各程序模块具有一定的独立性,因此可以先调试模块,在模块功能都能实现的前提下,再调试总程序,这样能快捷地检查判断硬件或软件上的问题。调试结果及解决办法如下:
1.测试显示模块时,数码显示管全亮显示“88888888”而不是预设的初值。利用Proteus软件仿真,发现仿真时显示正常,再检查硬件,发现段码位选线与P0口接线错误。按原理图重新焊接后,能正常显示。
2.测试DS读写模块时,从LED显示表明能正确写入与读取当前时间,但DS1302的工作情况不太理想,主要表现在实时时间稍微偏快。
DS1302时钟的产生基于外接的晶体振荡器,振荡器的频率为32768HZ,该晶振通过引脚X1、X2直接连接至DS1302,即DS1302是依靠外部晶振与其内部的电容配合来产生时钟脉冲,由于DS1302在芯片本身已经集成了6pF的电容。所以,为了获得稳定的可靠的时钟,必须选用具有6pF负载电容的晶振。然而,许多人在选用晶振时仅仅注意了晶振的额定频率值,而忽视了晶振的负载电容大小,r
好听全球资料 返回顶部