购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

程序设计

该数字管时钟实现的功能包括日期显示、时间显示、闹铃设置、日期和时间修改。在主程序中,根据不同的显示标志显示不同的信息,在日期、时间修改状态下,修改位的数值以闪烁方式显示。数码管时钟程序的代码如下。

I 2 C总线函数放在I2C.C文件中。限于篇幅,本程序内不列出其源代码,只给出函数原型,读者可在广州致远电子股份有限公司的官方网站下载程序包。I 2 C总线函数及其功能如表4-15所示。

表4-15 I 2 C总线函数及其功能

其中,函数I2C_Puts()、I2C_Gets()的参数较多,具体介绍如下。

init()为初始化程序,其功能包括设置数字管时钟上电时的起始时间,设定起闹控制,设定定时器的工作方式,初始化后续程序中要用到的中间变量,具体代码如下。

以下是ZLG7290的数码管显示及键盘扫描的控制子程序中涉及的函数。

函数SendCmd()向ZLG7290发送显示指令,该函数利用了I 2 C总线函数中的多字节发送函数I2C_Puts()传递显示指令,代码如下。

函数display_time()是控制ZLG7290显示时间和闪烁功能的函数,该函数利用数码管(低位开始)显示num个指定字节函数SendBuf()实现时间显示,具体代码如下。

以下是蜂鸣器响闹控制函数的代码,在该函数中,利用变量alarm_flag传递不同的响闹状态和要求。

函数timer1()为T1的中断处理函数。该函数负责产生蜂鸣器信号并重置T1计数初值。

函数enter()是确认键处理函数。该函数根据modif_flag和alarm_mod两个标志变量决定响应执行的任务。

函数cancel()是取消键处理函数。该函数根据modif_flag和alarm_mod两个标志变量,决定响应执行的任务。

函数numkey_manage()是数字键处理函数,其在函数key_manage()中被调用。该函数根据modif_flag和alarm_mod两个标志变量分别进行时间和时钟控制、时间控制的修改操作,具体代码如下。

函数key_manage()是按键处理函数。该函数根据key的数值,决定执行的操作或设置相应的标志位,其他功能函数根据这些标志位执行相应的操作,具体代码如下。

主程序首先进行初始化工作,然后进入while(1)的死循环。在该循环内部,通过判断disp_type_flag的数值,决定显示信息,响应按键输入中断和响闹中断,执行相应的处理。主程序的代码如下。 HyhbQfZiLfpFIqlXc8v78rPCF+QF8wp6qSKhLD37AWU2p1QLM15qqZCsDpYsWEaH

点击中间区域
呼出菜单
上一章
目录
下一章
×