c51数码管9秒倒计时
时间: 2024-01-19 15:48:23 浏览: 117
采用proteus仿真设计51单片机数码管,中断1s显示0~F
5星 · 资源好评率100%
以下是C51单片机控制数码管进行9秒倒计时的示例代码:
```C
#include<reg52.h>
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit beep=P2^5;
unsigned char num;
unsigned char code table[10]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(unsigned int i){
while(i--);
}
void display(unsigned char i){
switch(i){
case(0):LSA=0;LSB=0;LSC=0;break;
case(1):LSA=1;LSB=0;LSC=0;break;
case(2):LSA=0;LSB=1;LSC=0;break;
case(3):LSA=1;LSB=1;LSC=0;break;
case(4):LSA=0;LSB=0;LSC=1;break;
case(5):LSA=1;LSB=0;LSC=1;break;
case(6):LSA=0;LSB=1;LSC=1;break;
case(7):LSA=1;LSB=1;LSC=1;break;
}
}
void main(){
TMOD=0x01;
TH0=0xfc;
TL0=0x18;
TR0=1;
ET0=1;
EA=1;
num=9;
while(1){
display(num);
P0=table[num];
delay(1000);
if(num==0){
beep=0;
delay(10000);
beep=1;
num=9;
}
}
}
void time() interrupt 1{
TH0=0xfc;
TL0=0x18;
num--;
}
```
此代码的实现方式为:使用定时器中断,每1s减去一个数,同时将减去的数显示在数码管上,并通过蜂鸣器发出提示声音。
阅读全文