子函数enter()是确认键处理予函数。该函数根据modif_flag和alarm_mod两个标志变量,决定响应的执行任务。
子函数CANcel()是取消键处理子函数。该函数根据modif_flag和alarm_mod两个标志变量,决定响应的执行任务。
子函数numkey_manage是数字键处理函数,该函数在key_manage()函数中被调用。该函数根据modif_flag和alarm_mod两个标志变量进行时间和起闹时间的修订操作。具体函数如下:
子函数key_manage是按键处理函数。该函数根据键值key的数值,决定执行相应的操作,或者设置相应的标志位,在其他功能函数中,根据这些标志位执行相应的操作。具体函数代码如下:
主程序首先进行初始化工作,然后进入whilel(l)的死循环。在该循环内部,通过判断disp_type_flag的数值,决定显示信息;响应按键输入中断和响闹中断,执行相应的处理。具体函数如下:
在程序设计过程中,时间读取、时间显示都不难,只要掌握了IIC总线的传输时序,正确进行IIC总线的控制,就能实现。本程序的难点在于键盘处理部分。由于具有时间设置、闹铃设置等功能,使得键盘处理逻辑比较复杂。为此程序引入了多个标志位,记录系统当前状态。对键盘的响应,就是通过判断各个标志位的状态来决定响应策略的。
集成数字时钟芯片和键盘LED显示驱动芯片的引入,使得该数字钟具有走时准确、显示效果丰富等特点。加入了时间设定和闹铃设定功能,使得本时钟具有良好的可用性。另外读者可以继续扩展其他外设,比如温度传感器,采集环境温度,并在数字钟上进行显示,进一步体现该系统多功能的特点。
本文关键字:暂无联系方式时钟-定时电路,单元电路 - 时钟-定时电路
上一篇:一款基于LCD的数字时钟