本实例利用单片机定时/计数器设计计时器,按key0启动,要求精确显示到百分之一秒。
功能要求(发挥部分):定时结束有提示音报警并可重新定时;定时时间可设置(最多30s);定时过程可暂停;按key1暂停计时并记下此刻数值;按key2显示第一次按key1的数值(第一次有效,其余无效)。
程序以定时器T0中断实现10ms基本计时(TH0=0xEB、TL0=0x64),工作方式1,显存单元30H~33H分别表示百分秒、十分秒、秒十位、秒个位等,递减计数并在到0时驱动蜂鸣器报警。按键key0/key1/key2分别实现启动、暂停/记录、显示首暂停值,采用软件消抖。显示通过P0口与位选P2口动态扫描四位数码管(TAB段码表)。程序结构:ORG 0000H主程序入口、000BH定时器0中断服务、START主程序扫描按键去抖、ADD1每10ms减1进位子程序、DISPLAY动态显示子程序等。完整汇编源码见附图。