99秒马表计时器设计与实现

需积分: 9 4 下载量 129 浏览量 更新于2024-10-28 收藏 92KB DOC 举报
"99 秒马表设计" 99秒马表设计是一个常见的电子工程实验,用于训练学生对单片机控制、定时器计数器以及数字显示的理解与应用。该设计通常基于MCS-51系列单片机,通过简单的硬件连接和程序编写,实现一个能够进行99秒计时、暂停和复位功能的计时器。 实验任务的核心在于利用单片机的输入输出功能,以及定时器/计数器来实现计时。计时器在开始时显示"00",通过独立式键盘上的SP1按钮进行操作:第一次按下开始计时,第二次按下停止计时,第三次按下则将计时归零。 电路原理图中,关键部分包括单片机系统、四路静态数码显示模块和独立式键盘。P0.0到P0.7以及P2.0到P2.7口被用来驱动数码管显示计时数值,P3.5口连接到SP1键,用于检测按键输入。这种硬件连线使得单片机可以通过P0和P2口同时控制两个四位数码管,从而显示00到99的计时数值。 程序设计上,主要涉及主程序和T0中断服务程序。主程序中,首先初始化计数器和按键计数,并设置TMOD寄存器为模式2,这是8位定时器的工作模式,具有自动重载功能,适合做定时应用。在这个模式下,TL0和TH0分别作为低8位计数器和高8位预置寄存器,当TL0溢出时,TH0的值会自动重装到TL0,无需软件干预。SETB指令用于开启T0定时器和中断允许。 中断服务程序处理定时器T0的溢出事件,每当定时器计满溢出,计时数值会增加,同时根据按键计数状态决定是否更新显示或者停止计时。在程序中,通过直接寻址位操作(如JB SP1, WT)判断按键状态,实现计时器的启动、停止和复位功能。 汇编源程序中,TCNTAEQU和TCNTBEQU定义了时间计数的存储位置,SECEQU定义了秒数存储位置,而KEYCNTEQU则定义了按键计数的存储位置。程序中使用了分频和除法指令(如DIVAB)来将秒数转换为两位十进制数,以便于数码管显示。 99秒马表设计是一个基础但实用的单片机实验,它涵盖了单片机基本输入输出、定时器计数器应用、中断处理和数码管显示等多个核心知识点,对于学习单片机编程和硬件控制有着重要的实践意义。