51单片机代码实现加法计数(计数初值为0,按键K4(为P1.5)每按下并弹起1次,计数结果加1,计数结果为OxFF时再“加1”则让计数结果回到0),并将计数结果送D9~D16 显示(D9用作计数结果最高位,D16用作计数结果最低位),要求用到延时的地方都用定时器中断实现。
时间: 2024-02-11 22:05:03 浏览: 115
好的,这是一个比较简单的题目,下面是51单片机的加法计数代码实现:
```
#include <reg52.h>
sbit K4 = P1^5;
sbit D9 = P2^0;
sbit D16 = P2^7;
unsigned char count = 0;
void init_timer0(){
TMOD &= 0xF0;
TMOD |= 0x01;
ET0 = 1;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
}
void init_interrupt(){
EA = 1;
}
void timer0() interrupt 1{
TH0 = 0xFC;
TL0 = 0x67;
count++;
}
void display(unsigned char num){
unsigned char temp = num / 10;
D9 = temp;
D16 = num % 10;
}
void main(){
init_timer0();
init_interrupt();
while(1){
if(K4 == 0){
while(K4 == 0);
count++;
if(count == 0xFF){
count = 0;
}
display(count);
}
}
}
```
该代码主要使用了定时器中断来实现延时,通过按下K4按键,计数结果加1,并在0xFF时再次加1,将计数结果显示在D9~D16上。
阅读全文