51单片机串口通信时, 外部中断无法执行

如题所述

串口通信是不是也是采用中断方式?如果与外部中断为同一优先经中断的话,则当51单片机串口通信时(串口中断时),外部中断是无法执行的。
如果想实现外部中断优先,需要改变它们的优先级别,串口低优先级PS=0,外部中断高优先级PX0=1,PX1=1
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-06
外部中断执行要满足几个条件
1 . IT0/IT1要设置触发方式, EX0/EX1要置为1(即启用外部中断)
2 . EA要置为1(即总中断要开)
3 . 要定义处理外部中断的函数

外部断0代码示例:
void int0_init(void)
{
IT0 = 0; //INT0触发方式 0电平触发 1脉冲触发
EX0 = 1; //INT0中断允许
EA = 1;//开总中断
}

void exint0() interrupt 0
{
// 事件代码
}
第2个回答  2012-01-07
控制字 写的对吗?
相似回答