新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51串口網(wǎng)上參考程序

51串口網(wǎng)上參考程序

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
學(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; //定時(shí)器1用作波特率發(fā)生器(具有自動(dòng)重裝載初值的功能)

SCON=0x50; //8為異步收發(fā),波特率可變(由定時(shí)器控制)選擇串口方式1,接收允許

TH1=0x0fd;

TL1=0x0fd; //設(shè)置波特率為9600bps,晶振11.0592MHz

RI=0; //清標(biāo)志位

TI=0;

TR1=1; //開啟計(jì)數(shù)T1

ES=1; //開串口中斷

IT1=1; //設(shè)置為跳變觸發(fā)方式

EX1=1; //開外部中斷1

EA=1; //開總中斷

}

void main(){

init();

while(1); //延時(shí)等待中斷

}

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; //返回?cái)?shù)據(jù)

}

ES=1; //打開串口中斷

}

void int1_interrupt(void) interrupt 2 {

while(!WINT1); //按鍵松手檢測(cè)

SBUF=0X41; //發(fā)送字符數(shù)據(jù)A

}




關(guān)鍵詞: 51串口參考程

評(píng)論


技術(shù)專區(qū)

關(guān)閉