pc機與單片機之間的串口通信分析

pc機與單片機之間的串口通信分析

ID:13417227

大?。?59.50 KB

頁數(shù):9頁

時間:2018-07-22

pc機與單片機之間的串口通信分析_第1頁
pc機與單片機之間的串口通信分析_第2頁
pc機與單片機之間的串口通信分析_第3頁
pc機與單片機之間的串口通信分析_第4頁
pc機與單片機之間的串口通信分析_第5頁
資源描述:

《pc機與單片機之間的串口通信分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、中山火炬職業(yè)技術(shù)學院畢業(yè)綜合實踐項目項目名稱:PC機與單片機之間的串口通信分析作者:劉世浩學號:1102070104系別:信息工程系專業(yè):通信技術(shù)指導老師:雷英專業(yè)技術(shù)職務單片機技術(shù)9摘要單片機的串行口在單片機的日常教學實踐和實際的工程技術(shù)中,應用十分普遍,因此在學習和設計時經(jīng)常會對串口進行仿真調(diào)試。PC機和單片機的串口通信系統(tǒng)的調(diào)試一般需要通過一根串口連接線把帶有軟件的上位機(PC機)和下位機(即單片機)連接起來進行,這種方法受實驗條件的約束,而且比較煩瑣。本文介紹一種用純軟件實現(xiàn)的仿真調(diào)試方法,全部過程都在一臺電腦上通過軟

2、件完成此次課設主題為單片機串口通信的應用之一。通過串口,我們的個人電腦和單片機系統(tǒng)進行通信。個人電腦作為上位機,向下位機單片機系統(tǒng)發(fā)送數(shù)據(jù)幀,單片機系統(tǒng)接收后,發(fā)回通信協(xié)議要求的數(shù)據(jù)幀??梢杂肅++Builder語言制作的應用程序界面或串口調(diào)試助手字符串輸入框中輸入數(shù)字和字符來實現(xiàn)PC機與80C51系列單片機的串口通信。關(guān)鍵詞:單片機串口通信仿真一、如何串行通信實現(xiàn)利用虛擬終端仿真單片機與PC機間的串行通信。PC機先發(fā)送從鍵盤輸入的數(shù)據(jù),單片機接收后回發(fā)給PC機。單片機同時將收到的30~39H間的數(shù)據(jù)轉(zhuǎn)換成0~9的數(shù)字顯示,其

3、他字符的數(shù)據(jù)直接顯示為其ASCII碼。單片機和PC機進行通信時,要求使用的波特率、傳送的位數(shù)等相同。要能夠進行數(shù)據(jù)傳送也必須首先測試雙方是否可以可靠通信??稍赑C機和單片機上各編制非常短小的程序,具體可分成PC機串行口發(fā)送接收程序、單片機串行口發(fā)送程序和單片機串行口發(fā)送接收程序。這三個程序能運行通過,即可證明串行口工作正常。PC機串行口發(fā)送接收程序設置串行口為波特率9600、8位數(shù)據(jù)、1位停止位、無奇偶校驗的簡單設置。從鍵盤接收的字符可從串行口發(fā)送出去,從串行口接收的字符在屏幕上顯示。通過讓串行口發(fā)送線和接收線短接可測試微機串

4、行口,通過讓串行口和單片機系統(tǒng)相接,使用此程序可進一步測試單片機的串行通信狀況。二、串行通信詳細設計1.串行通信原理此次采用80C51系列串口的方式1進行串行通信。串口結(jié)構(gòu)如圖1所示。9圖1方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖2所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,

5、數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。用單片機內(nèi)部定時器1即T1,使其工作在方式2,作為波特率發(fā)生器。圖2由于基于C++Builder的通信協(xié)議如圖3所示,因此在程序編寫時,需要在設置一個緩沖區(qū)來暫時存儲單片機接收的來自PC機的一串字符串。前導符站號地址功能碼數(shù)據(jù)長度數(shù)據(jù)結(jié)束符校驗碼##AAAAFFLLDDDD@@X圖

6、32.硬件設計51單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進行轉(zhuǎn)換。如圖4所示。9圖43.軟件設計如圖4,PC機作為主機,80C51單片機作為從機(波特率為9600b/s)。通信程序采用C語言編程。這個程序的流程圖如圖5所示。程序見下。圖593.1串口初始化3.2從機(單片機)接收主機(PC機)發(fā)送來的數(shù)據(jù)幀3.3從機發(fā)送數(shù)據(jù)幀給主機(

7、1)解析從機發(fā)送的數(shù)據(jù)幀(程序見附錄3的voidsend()部分)(2)從機發(fā)送數(shù)據(jù)幀3.4拓展部分利用P1口連接的8個LED燈來顯示C++Builder的十三個功能(見附錄1)。9三、實驗調(diào)試1.硬件方面9(1)燒寫程序時,已經(jīng)上電了,可軟件還是一直提示上電,反復上電也不行后,最終通過反復換串口,反復燒寫上電解決了。類似的還有只要進行燒寫,燒寫軟件界面就會消失,也是通過上述方法解決。(2)有時燒寫時,忽略了相應的串口和波特率的選擇甚至忘記打開串口助手的串口,發(fā)送數(shù)據(jù)后使得PC機的接收窗口中無顯示。(3)有時發(fā)送數(shù)據(jù)后接收窗口

8、無顯示,經(jīng)過復位后,問題得以解決。2.軟件方面編程時遇到的主要問題有四個:(1)如何在C51單片機中存儲接收的一個字符串數(shù)據(jù)幀。如上所述,需要設置一個緩沖數(shù)組來接收主機發(fā)送的字符串數(shù)據(jù)幀。程序見3.2。(2)如何判斷從機已經(jīng)接收到完整的數(shù)據(jù)幀即結(jié)束接收。設置一個標志位,如uc

當前文檔最多預覽五頁,下載文檔查看全文

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

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