电子行业网址大全—您工作和学习的好帮手http://www
elecsite
cn/3单片机开发工程案例分析与解析3
1定时报警器设计一个单片机控制的简易定时报警器
要求根据设定的初始值(1-59秒)进行倒计时,当计时到0时数码管闪烁“00”(以1Hz闪烁),按键功能如下:(1)设定键:在倒计时模式时,按下此键后停止倒计时,进入设置状态;如果已经处于设置状态则此键无效
(2)增一键:在设置状态时,每按一次递增键,初始值的数字增1
(3)递一键:在设置状态时,每按一次递减键,初始值的数字减1
(4)确认键:在设置状态时,按下此键后,单片机按照新的初始值进行倒计时及显示倒计时的数字
如果已经处于计时状态则此键无效
2模块1:系统设计(1)任务分析与整体设计思路根据题目的要求,需要实现如下几个方面的功能
计时功能:要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时1秒中的功能
然后,当计时每到1秒钟后,倒计时的计数器减1
当倒计时计数器到0时,触发另一个标志变量,进入闪烁状态
显示功能:显示倒计时的数字要采用动态扫描的方式将数字拆成“十位”和“个位”动态扫描显示
如果处于闪烁状态,则可以不需要动态扫描显示,只需要控制共阴极数码管的位控线,实现数码管的灭和亮
键盘扫描和运行模式的切换:主程序在初始化一些变量和寄存器之后,需要不断循环地读取键盘的状态和动态扫描数码管显示相应的数字
根据键盘的按键值实现设置状态、计时状态的切换
(2)单片机型号及所需外围器件型号,单片机硬件电路原理图选用MCS-51系列AT89S51单片机作为微控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89S51单片机驱动能力有限,采用两片74HC244实现总线的驱动,一个74HC244完成位控线的控制和驱动,另一