关于void serial (void) interrupt 4 using 1
我在程序中定义了串口中断处理函数 void serial (void) interrupt 4 using 1 可用
simulator 方式调试时,在发数据时,中断一直无法进入其中,无法进行跟踪,这是怎么回
事?我在串口监视窗口里能看到我所发的数据! ES=1 也在串口初始化内设置了,程序请大
家在此作诊断! (我用的是Keil 7, winXp:和操作系统有关吗?)
void serial (void) interrupt 4 using 1 { //
unsigned char c;
if (RI) { //是接收中断
c = SBUF; // 接收数据*/
RI = 0; //清中断请求标志
switch (c) { //处理接收的字符
case 'A':
break;
case 'B':
break;
default: //读取其它字符
break;
}
}
void serial_init (void) {
SCON = 0x50; // 模式 1: 8位, 接收充许
TMOD = 0x20; // 定时器 1 模式 2: 8位 重装
TH1 = 0xFD; // F4 2400 FD 9600 FE 14400 FF 28800 @11.0592MHz
TR1 = 1; // 定时器 1工作
ES = 1; // 串口中断充许
}
main(){
serial_init();
while(1) {
SBUF='A';
while (TI==0);
TI=0;
}
}
发表时间:2003年5月20日16:11:57