子程序init_t0(void)用于初始化定时器T0。T0工作于方式1,16位定时器模式,定时时间50ms。代码如下:
子程序isr_t0(void)是TO的中断服务程序。当50ms时间到时,该程序被执行,重新装载T0的计数初值,并判断倒计时时间是否到。代码如下:
系统主程序流程图如下图所示。
程序如下:
该设计实现了一个四人抢答器的功能。硬件设计时,采用MAX7219芯片驱动LED数码管显示。在软件设计中,通过读取键盘获得按键键值,根据系统所处的模式控制显示器显示及蜂鸣器报警。定时器T0每隔50ms中断一次,用于答题倒计时。
该设计给出了一个基本抢答器的硬件电路及软件设计方法。设计者可以对该设计进行功能扩展,如增加按键书面增加竞赛者人数,加入语音芯片实现不同语音提示,加入通信接口,实现计算机管理多个抢答器等。
上一篇:一款简单电子琴电路