51單片機串行通信課程設計_第1頁
51單片機串行通信課程設計_第2頁
51單片機串行通信課程設計_第3頁
51單片機串行通信課程設計_第4頁
51單片機串行通信課程設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、*實踐教學* XXXXXX大學XXXXXXXX學院XXX年XXXX季學期 XXXXXX課程設計 題 目:51單片機雙機串行通信設計 專業(yè)班級: 姓 名: 學 號: 指導教師: 成 績: 摘 要通信技術根據(jù)傳輸方式的不同,分為串行通信和并行通信,而單片機在現(xiàn)代通信中非常實用。本次課程設計就是要利用單片機來完成一個系統(tǒng),實現(xiàn)單片機雙機串行通信。通信的結果用數(shù)碼管進行顯示,數(shù)碼管采用查表方式顯示。兩個單片機之間采用RS232接口標準進行雙機通信。在通信過程中,使用通信協(xié)議進行通信,實現(xiàn)兩個單片機之間串行異步通信。關鍵詞:51單片機,串行通信,RS-232接口; 目錄前言1第一章 基本原理2第二章 系

2、統(tǒng)分析32.1單片機32.2 串行通信32.3 RS-232接口標準5第三章 系統(tǒng)設計及系統(tǒng)調試93.1 設計方案93.2 硬件設計93.3 軟件設計123.4 聯(lián)合調試20總結21參考文獻22 前言近年來,在自動化控制和智能儀器儀表中, 單片機的應用越來越廣泛。雖然MCS 單片機內部包含有豐富的硬件資源,但是對于一些復雜的單片機應用系統(tǒng)來說, 光靠單個的單片機資源遠遠不能滿足系統(tǒng)要求, 通常需要對單片機進行外部擴展。例如擴展I/O 口, 擴展存儲器, 擴展定時/計數(shù)器等, 更有甚者還需要擴展單片機。那么一個應用系統(tǒng)就可能用到了兩個或兩個以上的單片機, 而這些單片機就需要通過互聯(lián)來實現(xiàn)彼此間的

3、數(shù)據(jù)通信。MCS 單片機具有串行口, 利用串行口實現(xiàn)數(shù)據(jù)通信。根據(jù)單片機端口內部的結構特點, 這些端口的端口線可以直接相連, 從而使兩個單片機之間并行通信不用另外的硬件電路設備。設計時, 也可以根據(jù)不同的使用要求采用不同的并行連接方法。51單片機的開發(fā)除了硬件支持外,同樣離不開軟件。用匯編語言或C語言等高級語言編寫的源程序必須轉換為機器碼才能被執(zhí)行。目前十分流行的是Keil 8051 C編譯器。它提供了集成開發(fā)環(huán)境,包括C編譯器、宏匯編、連接器、庫管理和仿真調試器。利用Keil C uVision編寫的程序可直接調用編譯器編譯,連接后可直接運行。學生結合自己的實際情況,選擇適合的方法來完成51

4、單片機與PC機的串口通信。該題目概括了通信原理、單片機原理等課程的主要知識點,讓人們對當代通信技術有一定程度的了解,知道我們是怎么利用單片機來進行串行通信的。第一章 基本原理串口通訊對單片機而言意義重大,不但可以實現(xiàn)將單片機的數(shù)據(jù)傳輸?shù)接嬎銠C端,而且也能實現(xiàn)計算機對單片機的控制。由于其所需電纜線少,接線簡單,所以在較遠距離傳輸中,得到了廣泛的運用。單片機有一個全雙工的串行通訊口,所以單片機和計算機之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如計算機的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉換電路,我們采用了專用芯片MAX232進行轉換,雖

5、然也可以用幾個三極管進行模擬轉換,但是還是用專用芯片更簡單可靠。利用AT89C51芯片、復位電路、時鐘電路、LED數(shù)碼管等,使A機控制B機的兩個LED閃爍,B機控制A機的數(shù)碼管加一顯示。使用DS18B20溫度傳感器,由B機測量溫度后由A機顯示. 把P1口的高7位與數(shù)碼管相連,綠燈表示通行方向。P2口與LED顯示器相連,用來輸出顯示的數(shù)字。系統(tǒng)的原理框圖如下:AT89C51晶振電路復位電路電源LED顯示器LED數(shù)碼管數(shù)碼驅動芯片 圖1 系統(tǒng)原理框圖圖2 原理圖第二章 系統(tǒng)分析2.1單片機 單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、

6、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。在我國,單片機已經(jīng)不是一個陌生的名詞,它的出現(xiàn)是近代計算機技術發(fā)展史上的一個重要里程碑,因為單片機的誕生標志著計算機正式形成了通用計算機系統(tǒng)和嵌入式計算機系統(tǒng)兩大分支。在單片機誕生之前,為了滿足工程對象的嵌入式應用要求,只能將通用計算機進行機械加固、電氣加固后嵌入到對象系統(tǒng)中構成。由于通用計算機的巨大體積和高成本,無法嵌入到大多數(shù)對象體系中。單片機則應嵌入式應用而誕生。單片機的單芯片的微小體積和極低的成本,可廣

7、泛的嵌入到玩具、家用電器、機器人、儀器儀表、汽車電子系統(tǒng)、工業(yè)控制單元、辦公自動化設備、金融電子系統(tǒng)、艦船、個人信息終端及通訊產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具。單片機作為最典型的嵌入式系統(tǒng),它的成功應用推動了嵌入式系統(tǒng)的發(fā)展。近年來。除了各種類型的工控機,各種以通用微處理器構成的計算機主模板快、以通用處理器為核,片內擴展一些外圍功能電路單元構成的嵌入式微處理器,甚至單片形式的PC及等,都實現(xiàn)了嵌入式應用,成為嵌入式系統(tǒng)的龐大家族。作為典型的嵌入式系統(tǒng)的單片機,在我國大規(guī)模應用已有十余年歷史。在全國高等工科院校中,已普遍開設單片機及相關課程。單片機已成為電子系統(tǒng)中最普遍的應用手段。除

8、了單設課程外,在涉及的許多環(huán)節(jié),如課程設計、畢業(yè)設計、研究生論文課題中,單片機系統(tǒng)都是最廣泛的應用手段。目前,許多單片機教材都Shiite以80C51系列為基礎來講述其原理及應用的。這是因為MCS-51系列單片機奠定了8位單片機的基礎,形成了單片機的經(jīng)典體系結構。單片機是現(xiàn)代計算機、電子技術的新興領域,無論是單片機本身還是單片機應用系統(tǒng)設計方案都會隨著時代不斷發(fā)生變變化。2.2 串行通信在通信領域內,有兩種數(shù)據(jù)通信方式:并行通信和串行通信。隨著計算機網(wǎng)絡化和微機分級分布式應用系統(tǒng)的發(fā)展,通信的功能越來越重要。而憑借著其改善的信號完整性和傳播速度,串行通信總線正在變得越來越普遍。在遠程通信和計算

9、機科學中,串行通信是指在計算機總線或其他數(shù)據(jù)通道上,每次傳輸一個位元數(shù)據(jù),并連續(xù)進行以上單次過程的通信方式。與之對應的是并行通信,它在串行端口上通過一次同時傳輸若干位元數(shù)據(jù)的方式進行通信。一位接一位地順序傳送。這樣一個字節(jié)的數(shù)據(jù)要分8次由低位到高位按順序一位位地傳送。由此可見,串行通信的特點如下:1、節(jié)省傳輸線,這是顯而易見的。尤其是在遠程通信時,此特點尤為重要。這也是串行通信的主要優(yōu)點;2、數(shù)據(jù)傳送效率低。與并行通信比,這也這是顯而易見的。這也是串行通信的主要缺點。同步和異步都屬于串行數(shù)據(jù)傳送方式,但二者的傳送格式有所不同。同步方式的一幀內含有很多數(shù)據(jù)位,而異步方式一幀內只含有幾個數(shù)據(jù)位。如

10、果要傳送一大堆數(shù)據(jù),同步方式只給這串數(shù)據(jù)進行一次外包裝(即添加“頭幀”、“尾幀”、“校驗”幀),而異步方式在傳送這串數(shù)據(jù)時則要對數(shù)據(jù)的每一個字節(jié)分別加以包裝(即添加“頭”位、“尾”位和校驗)。 顯然在相同的數(shù)據(jù)傳輸波特率下,同步方式比異步方式的傳送速度快,但同步方式要求收發(fā)雙方在整個事件傳送過程中始終保持嚴格同步,這將增加硬件上的難度,而異步通信只要求每幀(字節(jié))的傳送中短時間保持同步即可,實現(xiàn)起來要容易得多。串行通信被用于長距離通信以及大多數(shù)計算機網(wǎng)絡,在這些應用場合里,電纜和同步化使并行通信實際應用面臨困難。憑借著其改善的信號完整性和傳播速度,串行通信總線正在變得越來越普遍,甚至在短程距離

11、的應用中,其優(yōu)越性已經(jīng)開始超越并行總線不需要串行化元件等缺點。串行通信的分類:同步通信和異步通信。所謂同步通信,是指數(shù)據(jù)傳送是以數(shù)據(jù)塊(一組字符)為單位,字符與字符之間、字符內部的位與位之間都同步.同步串行通信的特點可以概括為:以數(shù)據(jù)塊為單位傳送信息;在一個數(shù)據(jù)塊(信息幀)內,字符與字符間無間隔;接收時鐘與發(fā)送進鐘嚴格同步。所謂異步通信,是指數(shù)據(jù)傳送以字符為單位,字符與字符間的傳送是完全異步的,位與位之間的傳送基本上是同步的.異步串行通信的特點可以概括為:以字符為單位傳送信息;相鄰兩字符間的間隔是任意長; 接收時鐘和發(fā)送時鐘只要相近就可以。 異步方式特點簡單的說就是:字符間異步,字符內部各位同

12、步。兩臺機器的通信方式可分為單工通信、半雙工通信、雙工通信,他們的通信原理及通信方式為:單工通信:是指消息只能單方向傳輸?shù)墓ぷ鞣绞?。單工通信信道是單向信道,發(fā)送端和接收端的身份是固定的,發(fā)送端只能發(fā)送信息,不能接收信息;接收端只能接收信息,不能發(fā)送信息,數(shù)據(jù)信號僅從一端傳送到另一端,即信息流是單方向的。通信雙方采用“按講”(Push To Talk,PTT)單工通信屬于點到點的通信。根據(jù)收發(fā)頻率的異同,單工通信可分為同頻通信和異頻通信。半雙工通信:這種通信方式可以實現(xiàn)雙向的通信,但不能在兩個方向上同時進行,必須輪流交替地進行。也就是說,通信信道的每一段都可以是發(fā)送端,也可以是接端。但同一時刻里

13、,信息只能有一個傳輸方向。如日常生活中的例子有步話機通信等。雙工通信:雙工通信是指在同一時刻信息可以進行雙向傳輸,和打電話一樣,說的同時也能聽,邊說邊聽。這種發(fā)射機和接收機分別在兩個不同的頻率上(兩個頻率差有一定要求)能同時進行工作的雙工機也稱為異頻雙工機。雙工機的特點是使用方便,但線路設計較復雜,價格也較高。2.3 RS-232接口標準 RS-232C標準(協(xié)議)的全稱是EIA-RS-232C標準,定義是“數(shù)據(jù)終端設備(DTE)和數(shù)據(jù)通訊設備(DCE)之間串行二進制數(shù)據(jù)交換接口技術標準”。它是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調制解調器廠家及計算機終端生產(chǎn)廠家共同制定的用

14、于串行通訊的標準。其中EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(Recommended standard)代表推薦標準,232是標識號,C代表RS232的最新一次修改。1、 RS-232C接口引腳定義由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。下面是常用的DB-25和DB-9連接器接口圖:圖3 DB25 和DB9引腳圖 舊制JIS名稱新制JIS名稱全 稱說 明FGSGFrame Ground連到機器的接地線TXDSDTransmitted Data數(shù)據(jù)

15、輸出線RXDRDReceived Data數(shù)據(jù)輸入線RTSRSRequest to Send要求發(fā)送數(shù)據(jù)CTSCSClear to Send回應對方發(fā)送的RTS的發(fā)送許可,告訴對方可以發(fā)送DSRDRData Set Ready告知本機在待命狀態(tài)DTRERData Terminal Ready告知數(shù)據(jù)終端處于待命狀態(tài)CDCDCarrier Detect載波檢出,用以確認是否收到Modem的載波SGSGSignal Ground信號線的接地線(嚴格的說是信號線的零標準線) RS-232C規(guī)標準接口有25條線,4條數(shù)據(jù)線、11條控制線、3條定時線、7條備用和未定義線,常用的只有9根,它們是:(1)狀

16、態(tài)線:數(shù)據(jù)準備就緒(Data set ready-DSR)有效時(ON)狀態(tài),表明數(shù)據(jù)通信設備可以使用。(DCE-DTE)數(shù)據(jù)終端就緒(Data set ready-DTR)有效時(ON)狀態(tài),表明數(shù)據(jù)終端設備可以使用。(DTE-DCE)這兩個信號有時連到電源上,上電就立即有效。這兩個設備狀態(tài)信號有效,只表示設備本身可用,并不說明通信鏈路可以開始進行通信了,能否開始進行通信要由下面的控制信號決定。(2)聯(lián)絡線請求發(fā)送(Request to send-RTS)DTE準備向DCE發(fā)送數(shù)據(jù),DTE使該信號有效(ON狀態(tài)),通知DCE要發(fā)送數(shù)據(jù)給DCE了。(DTE-DCE)允許發(fā)送(Clear to

17、send-CTS)是對RTS的響應信號。當DCE已準備好接收DTE傳來的數(shù)據(jù)時,使該信號有效,通知DTE開始發(fā)送數(shù)據(jù)。(DCE-DTE)RTS/CTS請求應答聯(lián)絡信號是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡信號,使其變高。(3)數(shù)據(jù)線發(fā)送數(shù)據(jù)(Transmitted data-TxD)DTE發(fā)送數(shù)據(jù)到DCE。(DTE-DCE)接收數(shù)據(jù)(Received data-RxD)DCE發(fā)送數(shù)據(jù)到DTE (DCE-DTE)(4)地線 有兩根線SG、PG信號地和保護地信號線。(5)其余載波檢測( Carrier Detection

18、-CD)用來表示DCE已接通通信鏈路,告知DTE準備接收數(shù)據(jù)。(DCE-DTE)振鈴指示(Ringing-RI)當DCE收到交換臺送來的振鈴呼叫信號時,使該信號有效(ON狀態(tài)),通知DTE,已被呼叫。(DCE-DTE) 通常的應用系統(tǒng)中,往往是CPU和I/O設備之間傳送信息,兩者都是DTE,比如PC和色溫計,PC和單片機之間的通信,雙方都能發(fā)送和接收,它們的連接只需要使用三根線即可,即RXD,TXD和GND,連接方式見圖4。圖4 “三線連接法”2、RS-232C的電氣特性(1)邏輯電平在TXD和RXD上: 邏輯1(MARK)=-3V-15V 邏輯0(SPACE)=+315V在RTS、CTS、D

19、SR、DTR和DCD等控制線上: 信號有效(接通,ON狀態(tài),正電壓)+3V+15V 信號無效(斷開,OFF狀態(tài),負電壓)=-3V-15V 由以上定義可以看出,信號無效的電平低于-3V,也就是當傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認為無意義,因此,實際工作時,應保證電平的絕對值在(315)V之間。 當計算機和TTL電平的設備通信時,如計算機和單片機通信時,需要使用RS-232C/TTL 電平轉換器件,常用的有MAX232。(2)傳輸距離由RS-232C標準規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應為15m,其實

20、這個4%的碼元畸變是很保守的,在實際應用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實際使用中最大距離會遠超過15m。3、 RS-232C的不足之處由于RS232C接口標準出現(xiàn)較早,難免有不足之處,主要有以下四點:(1)接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL 電平不兼容故需使用電平轉換電路方能與TTL電路連接。(2)傳輸速率較低,在異步傳輸時,波特率最大為19200bps。(3)接口使用一根信號線和一根信號返回線而構成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。(4)傳輸距離有限,實際最大傳輸距離只有50米左右.第三章 系統(tǒng)設計及系

21、統(tǒng)調試3.1 設計方案本次設計,對于兩片89C51,采用RS232進行雙機通信。發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過電平轉換芯片MAX232將TTL電平轉換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進行電平轉換后,信號到達接收方串行口的接收端。接受方接收后,在數(shù)碼管上顯示接收的信息。為提高抗干擾能力,還可以在輸入輸出端加光耦合進行光電隔離。軟件部分,通過通信協(xié)議進行發(fā)送接收,主機先送AAH給從機,當從機接收到AAH后,向主機回答B(yǎng)BH。主機收到BBH后就把數(shù)碼表TAB16中的10個數(shù)據(jù)送給從機,并發(fā)送檢驗和。從機收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與

22、主機發(fā)送來的檢驗和進行比較,若檢驗和相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接受。從機收到16個正確數(shù)據(jù)后送到一個數(shù)碼管顯示。3.2 硬件設計1.51單片機串行通信功能圖1.AT89C51計算機與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。51單片機用4個接口與外界進行數(shù)據(jù)輸入與數(shù)據(jù)輸出就是并行通信,并行通信的特點是傳輸信號的速度快,但所用的信號線較多,成本高,傳輸?shù)木嚯x較近。串行通信的特點是只用兩條信號線(一條信號線,再加一條地線作為信號回路)即可完成通信,成本低,傳輸?shù)木嚯x較遠。51單片機的串行接口是一個全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器

23、)用,也可以作為同步移位寄存器用。51單片機串行接口的結構如下:(1)數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個,一個緩存,另一個接受,用同一直接地址99H,發(fā)送時用指令將數(shù)據(jù)送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數(shù)據(jù)取出。(2)串行控制寄存器(PCON)SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對應于工作方式0、1、2、3。串行接口工作方式特點見下表SM0SM1工作方式功能波特率 0008位同步移位寄存器(

24、用于I/O擴展)fORC/1201110位異步串行通信(UART)可變(T1溢出率*2SMOD/32)10211位異步串行通信(UART)fORC/64或fORC/3211311位異步串行通信(UART)可變(T1溢出率*2SMOD/32)SM2:多機通信控制位。REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。TB8:方式2或3時,TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。RB9:在方式2或3時,RB8位接收到的第9位數(shù)據(jù),實際為主機發(fā)送的第9位數(shù)據(jù)TB8,使從機根據(jù)這一位來判斷主機發(fā)送的時呼叫地址還是要傳送的數(shù)據(jù)。TI:發(fā)送中斷標志。發(fā)送完一幀數(shù)據(jù)后由硬件自動置位,并

25、申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標志。接收完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收。(3)輸入移位寄存器接收的數(shù)據(jù)先串行進入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。(4)波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機用定時器T1作為波特率發(fā)生器,T1設置在定時方式。波特率時用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。(5)電源控制寄存器PCON其最高位為SMOD。(6)波特率計算當定時器T1工作在定時方式的時候,定時器T1溢出率=(T1計數(shù)率)/(產(chǎn)生溢出所需機器周期)。由

26、于是定時方式,T1計數(shù)率= fORC/12。產(chǎn)生溢出所需機器周期數(shù)=模M-計數(shù)初值X。2.MAX232芯片用8051串行接口通信,如果兩臺8051單片機之間的距離很近(不超過1.5m),可以采用直接將兩臺8051單片機的串行接口直接相連,利用其自身的TTL電平(0-5V)直接傳輸數(shù)據(jù)信息。如果傳輸距離較遠(超過1.5m),由于傳輸線的阻抗與分布電容,會產(chǎn)生電平損耗和波形畸變,以至于檢測不出數(shù)據(jù)或數(shù)據(jù)出錯。此時可利用 RS232標準總線接口,將單片機輸出的TTL電平轉換為RS232標準電平(邏輯1為-15-5V;邏輯0為+5-+15V)。用RS232可將傳輸距離提高到15m,如果想遠距離傳輸,可

27、以采用RS422或者RS485。電平轉換芯片MAX232是美信公司(MAXIM)生產(chǎn),專用于進行將TTL電平轉換為RS232電平的芯片,MAX232內部有泵電源,能將+5V電源電壓在芯片內提高到RS232電平所需的+10V或者-10V電平。圖2.電平轉換芯片MAX2323.整體電路設計最終設計電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過電平轉換芯片MAX232將TTL電平轉換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進行電平轉換后,信號到達接收方串行口的接收端。接受方接收后,通過P1口在數(shù)碼管上顯示接收的信息。圖3.串行通信電路3.3 軟件設計

28、通過通信協(xié)議進行發(fā)送接收,主機先送CDH給從機,當從機接收到CDH后,向主機回答DCH。主機收到DCH后就把數(shù)碼表TAB16中的10個數(shù)據(jù)送給從機,并發(fā)送檢驗和。從機收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與主機發(fā)送來的檢驗和進行比較,若檢驗和相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接受。從機收到16個正確數(shù)據(jù)后送到一個數(shù)碼管顯示。1.串行通信軟件實現(xiàn)(1)串行口工作于方式3;用定時器1產(chǎn)生4800bit/s的波特率,晶振頻率為 11.0592MHZ。(2)功能:將本機ROM中數(shù)碼表TAB16中的16個數(shù)發(fā)送到從機,并保存在從機內部ROM中,從機收到這16個數(shù)據(jù)后送到一個數(shù)碼管循環(huán)顯

29、示。(3)通信協(xié)議:主機首先發(fā)送連絡信號(CDH),從機接收到之后返回一個連絡信號(DCH)表示從機已準備好接收。(4)通信過程使用第九位發(fā)送奇偶校驗位。(5)從機接收到一個數(shù)據(jù)后,立即進行奇偶校驗,若數(shù)據(jù)沒有錯誤,則返回00H,否則返回FFH。(6)主機發(fā)送一個數(shù)據(jù)后,等待從機返回數(shù)據(jù);若為00H,則繼續(xù)發(fā)送下一個數(shù)據(jù),若為FFH,則重新發(fā)送數(shù)據(jù)。2.程序流程圖(1)發(fā)送端程序流程圖主程序開始從機是否回答DCH?程序初始化主機發(fā)送CDHN主機發(fā)送數(shù)據(jù),檢驗和輸出完成?N清除標志位(2) 接收方程序流程圖主程序開始檢驗和相等?程序初始化接收數(shù)據(jù),計算檢驗和N發(fā)送00H至主機接收完成?N清除標志

30、位發(fā)送FFH,重新接收顯示A、B兩臺51單片機的異步串行接收采用查詢方式,它們詳細的C51程序如下所示。/A機程序#include /包含單片機寄存器的頭文件unsigned char code ddata=0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, ;/A,B,C,D,E,F,0,1.,8,9的段碼/*函數(shù)功能:發(fā)送一個字節(jié)數(shù)據(jù)*/void Send(unsigned char dat) SBUF=dat; While(TI=0) ;/等待 TI=0;/*函數(shù)功能:接收一個字

31、節(jié)數(shù)據(jù)*/ unsigned char Receive(void) unsigned char dat; while(RI=0) ; /等待,直至接收完畢(RI=1)RI=0; /為了接收下一幀數(shù)據(jù),需將RI清0 dat=SBUF; /將接收緩沖器中的數(shù)據(jù)存于datreturn dat;/*函數(shù)功能:延時約150ms*/ void delay(void) unsigned char m,n;for(m=0;m200;m+)for(n=0;n250;n+) ; /*函數(shù)功能:主函數(shù)*/void main(void) unsigned char i; TMOD=0x20; /TMOD=0010 0

32、000B,定時器T1工作于方式2 SCON=0xD0; /SCON=1101 0000B,串口工作方式3,允許接收 PCON=0x00; TH1=0xfa; /定時器TH1賦初值,波特率4800MHz TL1=0xfa; /定時器TL1賦初值 TR1=1; /啟動定時器T1 while(1) for(i=0;i8;i+) Send(i); /發(fā)送數(shù)據(jù)iP0=ddataReceive(); /將接收到的數(shù)據(jù)送P0口顯示 delay(); /600ms后發(fā)送下一個數(shù)據(jù) delay(); delay(); delay(); /B機程序#include /包含單片機寄存器的頭文件unsigned ch

33、ar code ddata=0x88,0x83,0xc6,0xa1,0x86,0x8e, 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ;/A,B,C,D,E,F,0,1.,8,9的段碼/*函數(shù)功能:發(fā)送一個字節(jié)數(shù)據(jù)*/void Send(unsigned char dat) SBUF=dat; while(TI=0) ;/等待 TI=0;/*函數(shù)功能:接收一個字節(jié)數(shù)據(jù)*/ unsigned char Receive(void) unsigned char dat; while(RI=0) ; /等待,直至接收完畢(RI=1)RI=0; /

34、為了接收下一幀數(shù)據(jù),需將RI清0 dat=SBUF; /將接收緩沖器中的數(shù)據(jù)存于datreturn dat;/*函數(shù)功能:主函數(shù)*/void main(void) unsigned char dat; TMOD=0x20; /定時器T1工作于方式2 SCON=0xD0; /SCON=1101 0000B,串口工作方式3,允許接收(REN=1) PCON=0x00; TH1=0xfa; /定時器TH1賦初值,波特率4800 TL1=0xfa; /定時器TL1賦初值 TR1=1; /啟動定時器T1 while(1) dat=Receive();P0=ddatadat; /將接收到的數(shù)據(jù)送P0口顯示Send(dat+8); /偏移量為+8 3.4 聯(lián)合調試在protues上進行仿真實驗。首先使用KeilC將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機中,進行仿真實驗,結果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來。圖4.仿真圖 總結這個學期的單片機課已經(jīng)早早的上完了,但是理論純屬理論,沒有與實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論