各位同志好: 现在想弄个双机通信的东西玩玩,学学uart口的通信,写了下面这个简单的程序,估计入不了法眼,兄弟我不怕丢人,请大家看看为什么用keil调试的时候进不了中断?
/*mcu是AT89C51*/
#include <reg51.h>
#define uchar unsigned char
uchar needR;
void uart_sent(uchar); void uart_Rev(); void uartINI_sent(); void uart_onPower();
void main(void) { uart_onPower();
while(1) { /* 需要调用发送子程序的应用 发送void uart_Rev(uchar) */ }; }
void uart_onPower() { SM0=0; //串口工作方式1 SM1=1; REN=1;
TMOD&=0x0f; //再装入8位定时器 TMOD|=0x20; TH1=0xf9; //定时常数 TL1=0xf9; ES=1; //开串行中断,关定时器1中断 ET1=0; TI=0; RI=0; } void uartINI_sent() { EA=0; TR1=1; ES=0; EA=1;
} void uart_sent(uchar needS) { uartINI_sent(); SBUF=needS; TI=0; TR1=0; ES=1; } void uart_Rev() interrupt 4 { while(!RI); needR=SBUF; RI=0; TR1=0; }
|