2018-04-24 · 知道合伙人互联网行家
关注
展开全部
你程序里有每个问题,第一P3口的初始化应该设定为0XFF,因为你是要读引脚的信号。
第二,你的P2^3引脚置零后蜂鸣器就响,你又没置1,所以你的蜂鸣器会一直响。我临时写了个小程序,也没运行,但应该没问题,希望读你有帮助。注意:中断时间间隔最好是大于延时时间。
#include<reg52.h>
sbit Beep=P2^3
bit Beep_flg
void delay(void) //延时
{
unsigned char i,j;
for(i=3;i>0;i--)
for(i=100;i>0;i--);
}
void main()
{
P3=0xff;//P3口初始化
EA=1;//全局中断开
EX0=1;//外部中断0开
IT0=1;//边沿触发
while(1)
{
if(Beep_flg) //是否中断
{
Beep=0; //打开蜂鸣器
delay(); // 延时
Beep_flg=0;
}
Beep=1; //关蜂鸣器
}
}
void it0(void) interrupt 0 using 1
{
Beep_flg=1;
}
第二,你的P2^3引脚置零后蜂鸣器就响,你又没置1,所以你的蜂鸣器会一直响。我临时写了个小程序,也没运行,但应该没问题,希望读你有帮助。注意:中断时间间隔最好是大于延时时间。
#include<reg52.h>
sbit Beep=P2^3
bit Beep_flg
void delay(void) //延时
{
unsigned char i,j;
for(i=3;i>0;i--)
for(i=100;i>0;i--);
}
void main()
{
P3=0xff;//P3口初始化
EA=1;//全局中断开
EX0=1;//外部中断0开
IT0=1;//边沿触发
while(1)
{
if(Beep_flg) //是否中断
{
Beep=0; //打开蜂鸣器
delay(); // 延时
Beep_flg=0;
}
Beep=1; //关蜂鸣器
}
}
void it0(void) interrupt 0 using 1
{
Beep_flg=1;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询