单片机开发实例 3 单片机开发工程案例分析与解析 3.1 定时报警器 设计一个单片机控制的简易定时报警器。要求根据设定的初始值(1-59 秒)进行倒计时,当计 时到 0 时数码管闪烁“00” (以 1Hz 闪烁),按键功能如下: (1)设定键:在倒计时模式时,按下此键后停止倒计时,进入设置状态;如果已经处于设置 状态则此键无效。 (2)增一键:在设置状态时,每按一次递增键,初始值的数字增 1。 (3)递一键:在设置状态时,每按一次递减键,初始值的数字减 1。 (4)确认键:在设置状态时,按下此键后,单片机按照新的初始值进行倒计时及显示倒计时 的数字。如果已经处于计时状态则此键无效。 3.1.2 模块 1:系统设计 (1)任务分析与整体设计思路 根据题目的要求,需要实现如下几个方面的功能。 计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中 断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时 1 秒中的功能。然后,当计时每 到 1 秒钟后,倒计时的计数器减 1。当倒计时计数器到 0 时,触发另一个标志变量,进入闪烁状态。 显示功能:显示倒计时的数字要采用动态扫描的方式将数字拆成“十位”和“个位”动态扫描 显示。如果处于闪烁状态,则可以不需要动态扫描显示,只需要控制共阴极数码管的位控线,实现 数码管的灭和亮。 键盘扫描和运行模式的切换:主程序在初始化一些变量和寄存器之后,需要不断循环地读取键 盘的状态和动态扫描数码管显示相应的数字。根据键盘的按键值实现设置状态、计时状态的切换。 (……