51单片机倒计时15秒后为什么蜂鸣器不响?
#include"reg52.h"typedefunsignedintu16;typedefunsignedcharu8;sbitbeep=P1^5;u16b=1000,...
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit beep=P1^5;
u16 b=1000,c=15;
u8 a[2];
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
while(i--);
}
void s()
{
u8 j;
for(j=0;j<=7;j++)
{
switch(j)
{
case 0:P2=0X00;break;
case 1:P2=0X04;break;
case(2):
P2=0X08; break;//显示第2位
case(3):
P2=0X0c; break;//显示第3位
case(4):
P2=0X10; break;//显示第4位
case(5):
P2=0X14; break;//显示第5位
case(6):
P2=0X18; break;//显示第6位
case(7):
P2=0X1c; break;
}
}
P0=a[j];
delay(100);
P0=0X00;
}
void csh()
{
TMOD|=0X01;
TH0=0Xfc;
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void szh()
{
a[0]=smgduan[c%10];
a[1]=smgduan[c/10];
}
void main()
{
csh();
while(1)
{
szh();
s();
if(c==12)
{
EA=0;
beep=~beep;
delay(100);
}
}
}
void zd()interrupt 1
{
TH0=0Xfc;
TL0=0X18;
b--;
if(b==0)
{
b=1000;
c--;
}
} 展开
typedef unsigned int u16;
typedef unsigned char u8;
sbit beep=P1^5;
u16 b=1000,c=15;
u8 a[2];
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
while(i--);
}
void s()
{
u8 j;
for(j=0;j<=7;j++)
{
switch(j)
{
case 0:P2=0X00;break;
case 1:P2=0X04;break;
case(2):
P2=0X08; break;//显示第2位
case(3):
P2=0X0c; break;//显示第3位
case(4):
P2=0X10; break;//显示第4位
case(5):
P2=0X14; break;//显示第5位
case(6):
P2=0X18; break;//显示第6位
case(7):
P2=0X1c; break;
}
}
P0=a[j];
delay(100);
P0=0X00;
}
void csh()
{
TMOD|=0X01;
TH0=0Xfc;
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void szh()
{
a[0]=smgduan[c%10];
a[1]=smgduan[c/10];
}
void main()
{
csh();
while(1)
{
szh();
s();
if(c==12)
{
EA=0;
beep=~beep;
delay(100);
}
}
}
void zd()interrupt 1
{
TH0=0Xfc;
TL0=0X18;
b--;
if(b==0)
{
b=1000;
c--;
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询