清翔51单片机按键控制毫秒表代码
时间: 2024-01-24 22:04:57 浏览: 36
以下是清翔51单片机按键控制毫秒表的示例代码:
```c
#include <reg51.h>
sbit LED = P1^0; //定义LED灯连接的IO口
unsigned int Timer0H, Timer0L; //定时器0初值
unsigned int Count; //计数器
void Timer0Init() //定时器0初始化函数
{
TMOD &= 0xF0; //清空低四位
TMOD |= 0x01; //设置为模式1,16位定时器模式
TH0 = Timer0H; //设置高8位初值
TL0 = Timer0L; //设置低8位初值
ET0 = 1; //允许定时器0中断
TR0 = 1; //启动定时器0
}
void main()
{
LED = 0; //初始化LED灯状态
Timer0H = 0xFF; //设置计时初值
Timer0L = 0xFF;
Count = 0; //初始化计数器
Timer0Init(); //定时器0初始化
EA = 1; //开启总中断
while(1); //主程序循环
}
void Timer0() interrupt 1 //定时器0中断函数
{
TH0 = Timer0H; //重新设置高8位初值
TL0 = Timer0L; //重新设置低8位初值
Count++; //计数器加1
if(Count >= 1000) //如果计数器达到1000
{
Count = 0; //计数器清零
LED = ~LED; //LED灯翻转状态
}
}
```
该代码使用了定时器0来进行毫秒级的计时,并通过中断函数来实现LED灯的控制。在主程序中,我们通过调用Timer0Init()函数来初始化定时器0,并开启总中断。在定时器0中断函数中,我们每计数到1000次(即1秒)就翻转一次LED灯状态。