Uart串口收發(fā)程序.ppt

Uart串口收發(fā)程序.ppt

ID:50243265

大?。?.15 MB

頁數(shù):50頁

時(shí)間:2020-03-10

Uart串口收發(fā)程序.ppt_第1頁
Uart串口收發(fā)程序.ppt_第2頁
Uart串口收發(fā)程序.ppt_第3頁
Uart串口收發(fā)程序.ppt_第4頁
Uart串口收發(fā)程序.ppt_第5頁
資源描述:

《Uart串口收發(fā)程序.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、3.1MCS-51機(jī)間通信的C語言編程3.2鍵盤和數(shù)碼顯示人機(jī)交互的C語言編程三C51應(yīng)用編程設(shè)計(jì)3.1MCS-51機(jī)間通信的C語言編程3.1.1點(diǎn)對(duì)點(diǎn)的串行異步通信1.通信雙方的硬件連接圖3.18031間RS—232C電平信號(hào)的傳2.通信雙方的約定圖3.2點(diǎn)對(duì)點(diǎn)通信的程序框圖3.點(diǎn)對(duì)點(diǎn)通信編程點(diǎn)對(duì)點(diǎn)通信雙方基本等同,只是人為規(guī)定一個(gè)為發(fā)送,一個(gè)為接收。要求兩機(jī)串行口的波特率相同,因而發(fā)送和接收方串行口的初始化相同??删幹坪谐跏蓟瘮?shù)、發(fā)送函數(shù)接收函數(shù)的程序,在主函數(shù)中根據(jù)程序的發(fā)送、接收設(shè)置TR,采用條件判別決定使

2、用發(fā)送函數(shù)還是接收函數(shù)。這樣點(diǎn)對(duì)點(diǎn)通信的雙方都可運(yùn)行此程序,只需在程序運(yùn)行之前人為設(shè)置選擇TR,一個(gè)令TR=0,一個(gè)令TR=1,然后分別編譯,在兩機(jī)上分別裝入,同時(shí)運(yùn)行。例1點(diǎn)對(duì)點(diǎn)通信。點(diǎn)對(duì)點(diǎn)通信的程序如下:#include#defineucharunsignedchar#defineTR1/*發(fā)送接收差別值TR=0發(fā)送*/ucharidatabuf[10];ucharpf;voidinit(void)/*串行口初始化*/{TMOD=0x20;/*設(shè)T/C1為定時(shí)方式2*/TH1=0xe8;/*設(shè)定波

3、特率*/TL1=0xe8;PCON=0x00;TR1=1;/*啟動(dòng)T/C1*/SCON=0x50;/*串行口工作在方式1*/}voidsend(ucharidata*d){uchari;do{SBUF=0xaa;/*發(fā)送聯(lián)絡(luò)信號(hào)*/while(TI==0);/*等待發(fā)送出去*/TI=0;while(RI==0);/*等待B機(jī)回答*/RI=0;}while((SBUF^0xbb)!=0);/*B機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)*/do{pf=0;/*清校驗(yàn)和*/for(i=0;i<16;i++){SBUF=d[i];/*發(fā)送一個(gè)數(shù)據(jù)

4、*/pf+=d[i];/*求校驗(yàn)和*/while(TI==0);TI=0;}SBUF=pf;/*發(fā)送校驗(yàn)和*/while(TI==0);TI=0;while(RI==0);RI=0;/*等待B機(jī)回答*/}while(SBUF!=0);/*回答出錯(cuò),則重發(fā)*/}voidreceive(ucharidata*d){uchari;do{while(RI==0);RI=0;}while((SBUF^0xaa)!=0);/*判A機(jī)請(qǐng)求否*/SBUF=0xbb;/*發(fā)應(yīng)答信號(hào)*/while(TI==0);TI=0;while(1)

5、{pf=0;/*清校驗(yàn)和*/for(i=0;i<16;i++){while(RI==0);RI=0;d[i]=SBUF;/*接收一個(gè)數(shù)據(jù)*/pf+=d[i];/*求校驗(yàn)和*/}while(RI==0);RI=0;/*接收A機(jī)校驗(yàn)和*/if((SBUF^pf)==0)/*比較校驗(yàn)和*/{SBUF=0x00;break;}/*校驗(yàn)和相同發(fā)"00"*/else{SBUF=0xff;/*出錯(cuò)發(fā)"FF",重新接收*/while(TI==0);TI=0;}}}voidmain(void){init();if(TR==0){send

6、(buf);}else{receive(buf);}}3.1.2多機(jī)通信1.通信接口圖3.3總線式主從式多機(jī)系統(tǒng)2.通信協(xié)議根據(jù)MCS-51串行口的多機(jī)通信能力,多機(jī)通信可以按照以下協(xié)議進(jìn)行:(1)首先使所有從機(jī)的SM2位置1處于只接收地址幀的狀態(tài)。(2)主機(jī)先發(fā)送一幀地址信息,其中8位地址,第9位為地址/數(shù)據(jù)信息的標(biāo)志位,該位置1表示該幀為地址信息。(3)從機(jī)接收到地址幀后,各自將接收的地址與本機(jī)的地址比較。對(duì)于地址相符的那個(gè)從機(jī),使SM2位清零,以接收主機(jī)隨后發(fā)來的所有信息;對(duì)于地址不符的從機(jī),仍保持SM2=1,對(duì)

7、主機(jī)隨后發(fā)來的數(shù)據(jù)不予理睬,直至發(fā)送新的地址幀。(4)當(dāng)從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,發(fā)送一幀校驗(yàn)和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束標(biāo)志。(5)主機(jī)接收數(shù)據(jù)時(shí)先判斷數(shù)據(jù)結(jié)束標(biāo)志(RB8),若RB8=1,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗(yàn)和,若正確,則會(huì)送正確信號(hào)00H,此信號(hào)令該從機(jī)復(fù)位(即重新等待地址幀);若校驗(yàn)和出錯(cuò),則發(fā)送0FFH,令該從機(jī)重發(fā)數(shù)據(jù)。若接收幀的RB8=0,則原數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。(6)若主機(jī)向從機(jī)發(fā)送數(shù)據(jù),從機(jī)在第(3)步中比較地址相符后,從機(jī)令SM2=0,同時(shí)把本站地址發(fā)回主機(jī)

8、。作為應(yīng)答之后才能收到主機(jī)發(fā)送來的數(shù)據(jù)。其它從機(jī)(SM2=1),無法收到數(shù)據(jù)。(7)主機(jī)收到從機(jī)的應(yīng)答地址后,確認(rèn)地址是否相符。如果地址不符,發(fā)復(fù)位信號(hào)(數(shù)據(jù)幀中TB8=1);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。(8)從機(jī)接收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數(shù)據(jù)和命令。3.通信程序設(shè)主機(jī)發(fā)送的地址聯(lián)絡(luò)信

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。