AT89c52单片机制作千位计数器代码
时间: 2023-12-14 12:39:13 浏览: 44
以下是AT89c52单片机制作千位计数器的代码,其中使用了定时器和中断:
```
#include<reg52.h>
unsigned int count = 0; //计数器初始值为0
void timer0_init()
{
TMOD = 0x01; //定时器0工作在模式1(16位定时器)
TH0 = 0xFC; //定时器0初值为0xFC67,使定时器溢出时间为1ms
TL0 = 0x67;
EA = 1; //开启总中断
ET0 = 1; //开启定时器0中断
TR0 = 1; //启动定时器0
}
void timer0_isr() interrupt 1
{
TH0 = 0xFC; //重新装载定时器0初值
TL0 = 0x67;
count++; //计数器加1
}
void main()
{
timer0_init(); //初始化定时器0
while(1)
{
if(count >= 1000) //计数器达到1000时
{
count = 0; //计数器清零
//执行计数器溢出后的操作
}
}
}
```
在主函数中,我们不断地检测计数器是否达到1000,如果达到就执行计数器溢出后的操作(可以是LED闪烁、蜂鸣器响起等)。由于定时器每隔1ms就会产生中断,所以计数器在1秒钟内会累加到1000。