學(xué)了幾天,接收也沒調(diào)通。原搬了網(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; //定時器1用作波特率發(fā)生器(具有自動重裝載初值的功能)
SCON=0x50; //8為異步收發(fā),波特率可變(由定時器控制)選擇串口方式1,接收允許
TH1=0x0fd;
TL1=0x0fd; //設(shè)置波特率為9600bps,晶振11.0592MHz
RI=0; //清標(biāo)志位
TI=0;
TR1=1; //開啟計數(shù)T1
ES=1; //開串口中斷
IT1=1; //設(shè)置為跳變觸發(fā)方式
EX1=1; //開外部中斷1
EA=1; //開總中斷
}
void main(){
init();
while(1); //延時等待中斷
}
void uart_interrupt (void) interrupt 4{
char date;
ES=0; //關(guān)閉串口中斷
if(TI) { //判斷是發(fā)送中斷
TI=0; //清除發(fā)送中斷標(biāo)志
}
else {
date=SBUF; //數(shù)據(jù)緩存到date中
RI=0; //清除接收中斷標(biāo)志
date++; //數(shù)據(jù)處理
SBUF=date; //返回數(shù)據(jù)
}
ES=1; //打開串口中斷
}
void int1_interrupt(void) interrupt 2 {
while(!WINT1); //按鍵松手檢測
SBUF=0X41; //發(fā)送字符數(shù)據(jù)A
}
評論