51单片机外部中断问题

想用51外部中断程序中设置一个标志,在主程序中检查此标志来显示要输出的东西。在进入外部中断时,我想关掉中断时能EX0=0,然后设置标志flag=1;在主函数中我判断当fl... 想用51外部中断程序中设置一个标志,在主程序中检查此标志来显示要输出的东西。在进入外部中断时,我想关掉中断时能EX0=0,然后设置标志flag=1;在主函数中我判断当flag=1时,执行显示子程序display();设置flag=0;再开EX0=1;可是这样只能让数码管闪一下就不显示了。主要想表达的函数部分如下。如果把下面函数中的EX0都改为EA,则可以达到我要的目的了。请问问题出在哪里要如何修改?
main
{
.....
......
......
while(1)
{
if(flag==1)
{
display();
flag=0;
EX0=1;
}
}
}

void int_ex0(void) interrupt 0
{
EX0=0;
flag=1;
}
EA是开着的,我用的是边沿触发IT0=1,就是想进入中断后把中断关闭,再到主程序中检测到中断设置的标志后执行完显示再把中断打开。用EX0来开关中断就有问题(EA是已经打开的),用EA开关中断就OK
展开
 我来答
飞猫vs飞猫
2010-12-01 · TA获得超过134个赞
知道答主
回答量:37
采纳率:0%
帮助的人:11.9万
展开全部
你可以先将display放到中断中,看看中断是否响应,接着再想办法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿呖噶祷honey
2010-11-24 · TA获得超过222个赞
知道小有建树答主
回答量:275
采纳率:90%
帮助的人:179万
展开全部
你用的是低电平中断么?如果是的话你改成边沿触发中断方式试一下。

那你的中断频率是多少? 是被动触发还是主动触发?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
playnee
2010-11-24 · TA获得超过637个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:229万
展开全部
可不可以给完整程序,再说清楚用EX0出现了什么问题?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LoveJinLee
2010-11-24 · TA获得超过4145个赞
知道大有可为答主
回答量:2227
采纳率:0%
帮助的人:1904万
展开全部
你的显示程序很长,要执行很久么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式