写一段51单片机代码实现正常进行0-99累加(正常显示,按键不动作,也就是没有外部中断时)
时间: 2024-02-03 13:04:33 浏览: 22
好的,以下是一段简单的51单片机代码,可以实现正常进行0-99累加,即在没有按键按下时,自动进行0-99的累加:
```
#include <reg52.h>
// 定义全局变量
unsigned char count = 0; // 计数器,初始值为0
// 定时器0中断服务函数,每隔10ms触发一次
void timer0_isr() interrupt 1
{
TH0 = (65536 - 10000) / 256; // 重新赋值计时器0的初值
TL0 = (65536 - 10000) % 256;
count++; // 累加计数器
if (count == 100) // 如果计数器达到了100,重置为0
{
count = 0;
}
}
void main()
{
TMOD = 0x01; // 定时器0工作在模式1下
TH0 = (65536 - 10000) / 256; // 设置计时器0的初值
TL0 = (65536 - 10000) % 256;
EA = 1; // 开启总中断
ET0 = 1; // 开启定时器0中断
TR0 = 1; // 启动计时器0
while (1)
{
P0 = count % 10; // 显示个位数
P1 = count / 10; // 显示十位数
}
}
```
这段代码使用了定时器0来触发中断,每隔10ms累加计数器`count`的值,当计数器达到100时,重置为0。在主程序中,将计数器的个位和十位数分别输出到P0和P1口,从而实现了自动0-99的累加。