接收是被动的,接收中断由外部设备发送数据产生的。一般用中断接收方式。如果这样理解应该很清楚了: 发送可以认为内部中断(TI=1,) 接收可以认为外部中断(RI=1,) 查询发送方式: #include #include #include void initial_uart(); main() { initial_uart(); while(1) { TI=0; SBUF = A; while(!TI); TI=0; }} void initial_uart() { TMOD = 0x20;//定时器1工作在模式2[自动重装模式] SCON = 0x50;//使串口工作在模式1,打开串口接收功能[接收本程序没有用到] PCON = 0x00; TH1 = 0xFD; TL1 = 0xFD; TR1 = 1;//打开定时器1 ES = 1;//打开串口中断 EA = 1;//打开总中断 }