
单片机中断c语言编程
我用c语言编写单片机中断程序但是我没按中断单片机就自动执行了中断内的程序,我不知道是为什么程序:#include<reg51.h>voiddelay(unsignedin...
我用c语言编写单片机中断程序但是我没按中断单片机就自动执行了中断内的程序,我不知道是为什么
程序:
#include<reg51.h>
void delay(unsigned int z);
sbit fmq=P2^7;
unsigned char code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
};
void main()
{
int i;
while(1)
{
EX0=1;
IT0=0;
EA=1;
for(i=0;i<16;i++)
{
fmq=1;
P2=0xd4;//01010100
P0=table[i];
delay(1000);
}
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void x0() interrupt 0
{
fmq=0;
}
fmq代表蜂鸣器,上电之后蜂鸣器总是自动响 展开
程序:
#include<reg51.h>
void delay(unsigned int z);
sbit fmq=P2^7;
unsigned char code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
};
void main()
{
int i;
while(1)
{
EX0=1;
IT0=0;
EA=1;
for(i=0;i<16;i++)
{
fmq=1;
P2=0xd4;//01010100
P0=table[i];
delay(1000);
}
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void x0() interrupt 0
{
fmq=0;
}
fmq代表蜂鸣器,上电之后蜂鸣器总是自动响 展开
展开全部
单片机上电后,引脚默认是高点平!所以你在引脚初始化时就要把 fmq清零
在主函数开始执行 fmq = 0;再做就不会自动响了
在主函数开始执行 fmq = 0;再做就不会自动响了

2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设...
点击进入详情页
本回答由上海实邦电子科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询