单片机中断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代表蜂鸣器,上电之后蜂鸣器总是自动响
展开
 我来答
唯与心魔果3r
2012-07-09
知道答主
回答量:28
采纳率:0%
帮助的人:18.8万
展开全部
单片机上电后,引脚默认是高点平!所以你在引脚初始化时就要把 fmq清零
在主函数开始执行 fmq = 0;再做就不会自动响了
上海实邦电子科技
2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设... 点击进入详情页
本回答由上海实邦电子科技提供
a295281315
2012-07-09 · TA获得超过196个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:142万
展开全部
神呀,P2=0xd4不就是你蜂鸣器响的原因,P2^7电平是0;
需要改成P2|=0xd4?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古今无限人
2012-07-09
知道答主
回答量:33
采纳率:0%
帮助的人:10万
展开全部
p2=0xd4 是不是把P2第七位,也就是fmq又设为0了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式