MCS-51单片机60s秒表定时器程序
时间: 2023-08-06 11:08:35 浏览: 30
下面是一个基于 MCS-51 单片机的 60 秒定时器程序:
```
#include <reg52.h>
sbit LED = P1^0;
sbit KEY = P3^2;
void delay(unsigned int i) // 延时函数
{
while (i--);
}
void timer0() interrupt 1 // 定时器0中断服务程序
{
static unsigned char count = 0;
TH0 = 0x4C; // 重新设置计时初值
TL0 = 0x00;
count++;
if (count >= 60) // 计时时间为60秒
{
count = 0; // 计数器归零
LED = ~LED; // 翻转LED灯状态
}
}
void main()
{
EA = 1; // 开启全局中断
TMOD = 0x01; // 定时器0工作在模式1(16位自动重装)
TH0 = 0x4C; // 设置计时初值
TL0 = 0x00;
ET0 = 1; // 开启定时器0中断
TR0 = 1; // 启动定时器0
while (1)
{
if (KEY == 0) // 按键按下
{
delay(1000); // 延时去抖
if (KEY == 0) // 确认按键按下
{
LED = 0; // 关闭LED灯
count = 0; // 计数器清零
}
while (!KEY); // 等待按键释放
}
}
}
```
该程序使用了定时器0中断来实现计时功能,每秒钟触发一次中断,并将计数器加1,当计数器达到60时,LED灯翻转一次,表示60秒时间已经过去。同时,程序还通过按键来重置计时器和LED灯状态,按下按键后计数器清零,并关闭LED灯。
相关推荐
















