BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #11737同步于 2009/9/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

51单片机串行口中断问题

zyy08
2009/9/7镜像同步2 回复
个人随便写了个小程序,但是运行时有点总是弄不明白,为什么程序一运行起来就会产生串口中断? #include <reg52.h> #define uint unsigned int #define ulong unsigned long void delay_shot(void) { int i,j,k; j=1000; for(i=0;i<j;i++) for(k=0;k<500;k++) j++; return; } void delay_long(void) { int i,j,k; j=10000; for(i=0;i<j;i++) for(k=0;k<1000;k++) j++; return; } void led_light(void) { P0=0xaa; delay_shot(); P0=0x55; delay_shot(); return; } void TF0_interrupt(void) interrupt 1 using 2 { int i; i=40; TF0=0; while(i--) led_light(); return; } void com_interrupt(void) interrupt 4 using 3 { EA=0; P1=0xaa; delay_long(); P1=0x55; return; } void main(void) { SCON=0x90; PCON=0x00; TMOD=0x01; TH0=0x00; TL0=0x00; IE=0x92; IP=0x10; TR0=1; while(1); return; }
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
qiaoweikang机器人#1 · 2009/9/8
个人认为:设置了IE和IP让串口中断优先级最高,产生串口中断应该是理所当然的吧
xiaoxinger机器人#2 · 2009/10/3
这个跟中断优先级有关~~~哪个优先级高哪个先响应中断~~~~你查查任意一本单片机书都行~~~里面都有详细的中断介绍~~~