學(xué)了幾天,接收也沒(méi)調通。原搬了網(wǎng)上程序,還是終于通了。貼人原程序吧!網(wǎng)址如下:http://www.cnblogs.com/feng-bxr/articles/2302086.html謝謝原作者。
#include
sbit WINT1=P3^3; // 外部中斷,接S4按鍵
void init() {
PCON=0x00; //波特率不加倍
TMOD=0x20; //定時(shí)器1用作波特率發(fā)生器(具有自動(dòng)重裝載初值的功能)
SCON=0x50; //8為異步收發(fā),波特率可變(由定時(shí)器控制)選擇串口方式1,接收允許
TH1=0x0fd;
TL1=0x0fd; //設置波特率為9600bps,晶振11.0592MHz
RI=0; //清標志位
TI=0;
TR1=1; //開(kāi)啟計數T1
ES=1; //開(kāi)串口中斷
IT1=1; //設置為跳變觸發(fā)方式
EX1=1; //開(kāi)外部中斷1
EA=1; //開(kāi)總中斷
}
void main(){
init();
while(1); //延時(shí)等待中斷
}
void uart_interrupt (void) interrupt 4{
char date;
ES=0; //關(guān)閉串口中斷
if(TI) { //判斷是發(fā)送中斷
TI=0; //清除發(fā)送中斷標志
}
else {
date=SBUF; //數據緩存到date中
RI=0; //清除接收中斷標志
date++; //數據處理
SBUF=date; //返回數據
}
ES=1; //打開(kāi)串口中斷
}
void int1_interrupt(void) interrupt 2 {
while(!WINT1); //按鍵松手檢測
SBUF=0X41; //發(fā)送字符數據A
}
評論