51單片機(jī)串行通信課程設(shè)計(jì)_第1頁
51單片機(jī)串行通信課程設(shè)計(jì)_第2頁
51單片機(jī)串行通信課程設(shè)計(jì)_第3頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

13、,通信信道的每一段都可以是發(fā)送端,也可以是接端。但同一時(shí)刻里,信息只能有一個(gè) 傳輸方向。如口常生活中的例子有步話機(jī)通信等。雙工通信:雙工通信是指在同一時(shí)刻信息可以進(jìn)行雙向傳輸,和打電話一樣,說的同時(shí)也能聽,邊 說邊聽。這種發(fā)射機(jī)和接收機(jī)分別在兩個(gè)不同的頻率上(兩個(gè)頻率差有一定要求)能同時(shí)進(jìn)行工作的雙 工機(jī)也稱為異頻雙工機(jī)。雙工機(jī)的特點(diǎn)是使用方便,但線路設(shè)計(jì)較復(fù)雜,價(jià)格也較高。2.3 RS-232 接口標(biāo)準(zhǔn)RS-232C標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C標(biāo)準(zhǔn),定義是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通 訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接I I技術(shù)標(biāo)準(zhǔn)”。它是在1970年由美國電子工業(yè)協(xié)

14、會(huì)(EIA) 聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。其中 EIA(Electromc Iiidustiy Association)代表美國電子工業(yè)協(xié)會(huì),RS (Recommended standard)代表推薦標(biāo)準(zhǔn), 232是標(biāo)識(shí)號(hào),C代表RS232的最新一次修改。1、RS-232C接I I引腳定義由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了 DE25、DB-15和DE9各種類型的連接器,其引腳的定義也各不相同。下面是常用的DB-25和DE9連接器接口圖:FGTXI) RXI) RIS CTS DSR SGC I)圖3 DB25和DB9引腳圖

15、舊制JIS名稱新制JIS 名稱全稱說明FGSGFrame Ground連到機(jī)器的接地線TXDSDTran smittedData數(shù)據(jù)輸出線RXDRDReceived Data數(shù)據(jù)輸入線RTSRSRequest toSend要求發(fā)送數(shù)據(jù)CTSCSClear to Send回應(yīng)對方發(fā)送的RTS的發(fā)送許可,告 訴對方可以發(fā)送DSRDRData SetReady告知本機(jī)在待命狀態(tài)DTRERData TerminalReady告知數(shù)據(jù)終端處于待命狀態(tài)CDCDCarrier Detect載波檢出,用以確認(rèn)是否收到Modem 的載波SGSGSignal Ground信號(hào)線的接地線(嚴(yán)格的說是信號(hào)線的 零標(biāo)準(zhǔn)

16、線)RS-232C規(guī)標(biāo)準(zhǔn)接I I有25條線,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線, 常用的只有9根,它們是:(1) 狀態(tài)線:數(shù)據(jù)準(zhǔn)備就緒(Data set ready-DSR)有效時(shí)(ON)狀態(tài),表明數(shù)據(jù)通信設(shè)備可以使用°(DCE->DTE) 數(shù)據(jù)終端就緒(Data set ready-DTR)有效時(shí)(ON)狀態(tài),表明數(shù)據(jù)終端設(shè)備可以使用。(DTE->DCE) 這兩個(gè)信號(hào)有時(shí)連到電源上,上電就立即有效。這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說明通信鏈路可以開始進(jìn)行通信了,能否開 始進(jìn)行通信要由下面的控制信號(hào)決定。(2) 聯(lián)絡(luò)線請求發(fā)送(Req

17、uest to send-RTS)DTE準(zhǔn)備向DCE發(fā)送數(shù)據(jù),DTE使該信號(hào)有效(ON狀態(tài)),通 知DCE要發(fā)送數(shù)據(jù)給DCE 了。(DTE->DCE)允許發(fā)送(Clear to send-CTS) 是對RTS的響應(yīng)信號(hào)。當(dāng)DCE已準(zhǔn)備好接收DTE傳來的數(shù)據(jù) 時(shí),使該信號(hào)有效,通知DTE開始發(fā)送數(shù)據(jù)。(DCE->DTE)RTS/CTS請求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙 工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡(luò)信號(hào),使其變高。(3) 數(shù)據(jù)線發(fā)送數(shù)據(jù)(Tiaiisnutted data-TxD)DTE 發(fā)送數(shù)據(jù)到 DCE。(DTE

18、->DCE)接收數(shù)據(jù)(Received data-RxD)DCE 發(fā)送數(shù)據(jù)到 DTE (DCE->DTE)(4) 地線有兩根線SG、PG一一信號(hào)地和保護(hù)地信號(hào)線。(5) 其余載波檢測(Carrier Detection-CD)一一用來表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。(DCE->DTE)振鈴指示(Ringmg-RI)當(dāng)DCE收到交換臺(tái)送來的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)), 通知DTE,已被呼叫。(DCE->DTE)通常的應(yīng)用系統(tǒng)中,往往是CPU和I/O設(shè)備之間傳送信息,兩者都是DTE,比如PC和色溫計(jì), PC和單片機(jī)之間的通信,雙方都能發(fā)送和接

19、收,它們的連接只需要使用三根線即可,即RXD,TXD和 GND,連接方式見圖4。圖4 “三線連接法”2、RS-232C的電氣特性(1) 邏輯電平在 TXD 和 RXD ±:邏輯1(MARK)=3V5V邏輯 0(SPACE)=+3+ 15V在RTS. CTS、DSR、DTR和DCD等控制線上:信號(hào)有效(接通,ON狀態(tài),正電壓)=+3V+15V信號(hào)無效(斷開,OFF狀態(tài),負(fù)電壓)=-3V15V由以上定義可以看出,信號(hào)無效的電平低于-3V,也就是當(dāng)傳輸電平的絕對值人于3V時(shí),電路可以有 效地檢查出來,介于-3+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此 實(shí)際工

20、作時(shí),應(yīng)保證電平的絕對值在(315)V之間。當(dāng)計(jì)算機(jī)和TTL電平的設(shè)備通信時(shí),如計(jì)算機(jī)和單片機(jī)通信時(shí),需要使用RS-232C/TTL電平轉(zhuǎn)換器 件,常用的有MAX232。(2)傳輸距離由RS-232C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應(yīng)為15m,其實(shí)這個(gè)4%的碼元畸 變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶是按碼元畸變10-20%的范闈工作的,所以實(shí)際使用中最 大距離會(huì)遠(yuǎn)超過15m。3、RS-232C的不足之處由于RS-232C接I I標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):(1)接II的信號(hào)電平值較高,易損壞接門電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電

21、路方能與TTL電路連接。(2)傳輸速率較低,在異步傳輸時(shí),波特率最人為19200bpso(3)接I I使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾, 所以抗噪聲干擾性弱。(4)傳輸距離有限,實(shí)際最人傳輸距離只有50米左右.第三章系統(tǒng)設(shè)計(jì)及系統(tǒng)調(diào)試3.1設(shè)計(jì)方案本次設(shè)計(jì),對于兩片89C51,采用RS232進(jìn)行雙機(jī)通信。發(fā)送方的數(shù)據(jù)由串行口 TXD段輸出,經(jīng) 過電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號(hào)傳送到接收端。接收 方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行II的接收端。接受方接收后,在數(shù)碼管上 顯示接收

22、的信息。為提高抗干擾能力,還可以在輸入輸出端加光耦合進(jìn)行光電隔離。軟件部分,通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。 主機(jī)收到BBH后就把數(shù)碼表TAB16中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì) 算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)送來的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00H給主機(jī):否則發(fā)送 FFH給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。3.2硬件設(shè)計(jì)151單片機(jī)串行通信功能182627282931>XTAL1XTAL2RSTPO.O/ADO P0.1/AD1 P0.2/AD2P0.3/AD3P0.4Z

23、AD4P0.5/AD5P0.6/AD8P0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A-1404 cP2.7/A15Ki .u P1 .1ro UrTxAD1P3.1 jTXDPI .2Po.zJlNTOP1 .3P3.3>1MT1P1 .4P3.4XT0P1 .5P3.5/T1P1 .5P3.5/WRcoHlU1AT89C51 TEXT圖 1. AT89C51計(jì)算機(jī)與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。51單片機(jī)用4個(gè)接門與外界進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出就是并行通信,并行

24、通信的特點(diǎn)是傳輸信號(hào)的速度快,但所用的 信號(hào)線較多,成本高,傳輸?shù)木嚯x較近。串行通信的特點(diǎn)是只用兩條信號(hào)線(一條信號(hào)線,再加一條地 線作為信號(hào)回路)即可完成通信,成本低,傳輸?shù)木嚯x較遠(yuǎn)。51單片機(jī)的串行接II是一個(gè)全雙工的接II,它可以作為UART (通用異步接受和發(fā)送器)用,也可以 作為同步移位寄存器用。51單片機(jī)串行接I I的結(jié)構(gòu)如下:(1)數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個(gè),一個(gè)緩存,另一個(gè)接受,用同一直接地址99H, 發(fā)送時(shí)用指令將數(shù)據(jù)送到SBUF即可啟動(dòng)發(fā)送;接收時(shí)用指令將SBUF中接收到的數(shù)據(jù)取出。(2)串行控制寄存器(PCON)SCON用于串行通

25、信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SMOSM1SM2RENTB8RB8TIRISMO, SM1:串行接I】工作方式選擇位,這兩位組合成00, 01, 10, 11對應(yīng)于工作方式0、1、2、3。 串行接I I工作方式特點(diǎn)見下表SMOSM1工作方式功能波特率0008位同步移位寄存器(用于I/O擴(kuò)展)foRc/1201110位異步串行通信(UART)可變(T1溢出率*2732)10211位異步串行通信(UART)fonc/64 或 fwc/3211311位異步串行通信(UART)可變(T1溢出率*2732)SM2:多機(jī)通信控制位。REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接

26、收。TB8:方式2或3時(shí),TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。RB9:在方式2或3時(shí),RB8位接收到的第9位數(shù)據(jù),實(shí)際為主機(jī)發(fā)送的第9位數(shù)據(jù)TB8,使從機(jī)根 據(jù)這一位來判斷主機(jī)發(fā)送的時(shí)呼叫地址還是要傳送的數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請中斷。必須要軟件清零后才能繼續(xù) 發(fā)送。RI:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請中斷。必須要軟件清零后才能繼續(xù) 接收。(3)輸入移位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。(4)波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用

27、定時(shí)器T1作為波特率發(fā)生器,T1設(shè)置在定時(shí)方式。波特率時(shí)用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù) 位數(shù)。(5)電源控制寄存器PCON其最高位為SMODo(6)波特率計(jì)算當(dāng)定時(shí)器T1工作在定時(shí)方式的時(shí)候,定時(shí)器T1溢出率二(T1計(jì)數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時(shí)方式,T1計(jì)數(shù)率二W12O產(chǎn)生溢出所需機(jī)器周期數(shù)二模計(jì)數(shù)初值X。2. MAX232 芯片用8051串行接II通信,如果兩臺(tái)8051單片機(jī)之間的距離很近(不超過1.5m),可以采用直接將兩 臺(tái)8051單片機(jī)的串行接I I直接相連,利用其自身的TTL電平(0-5丫)直接傳輸數(shù)據(jù)信息。如果傳輸距離 較遠(yuǎn)(超過

28、1.5m),由于傳輸線的阻抗與分布電容,會(huì)產(chǎn)生電平損耗和波形畸變,以至于檢測不出數(shù)據(jù) 或數(shù)據(jù)出錯(cuò)。此時(shí)可利用RS232標(biāo)準(zhǔn)總線接I I,將單片機(jī)輸出的TTL電平轉(zhuǎn)換為RS232標(biāo)準(zhǔn)電平(邏輯 1為-15-5V;邏輯0為+5-一+15V)。用RS232可將傳輸距離提高到15m,如果想遠(yuǎn)距離傳輸,可以采用 RS422 或者 RS485。電平轉(zhuǎn)換芯片MAX232是美信公司(MAXIM)生產(chǎn),專用于進(jìn)行將TTL電平轉(zhuǎn)換為RS232電平的芯片, MAX232內(nèi)部有泵電源,能將+5V電源電壓在芯片內(nèi)提高到RS232電平所需的+10V或者-10V電平。U2C1 +C1-T1INT1OUTR1OUTR1INT

29、2INT2OUTR2OUTR2INVS*VS-C2+C2-嗤11_ 亙 10MAX232 <TEXT>圖2.電平轉(zhuǎn)換芯片MAX2323. 整體電路設(shè)計(jì)最終設(shè)計(jì)電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串行ri TXD段輸出,經(jīng)過電平轉(zhuǎn)換芯片MAX232將 TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號(hào)傳送到接收端。接收方也使用MAX232芯片進(jìn)行 電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行門的接收端。接受方接收后,通過Pll在數(shù)碼管上顯示接收的信息。RR”:4-TE1-rCXYAOCPC.VAD1PC2*A&2 rcofA&j PC 4/A&4 PC4C.*A&&l

30、t; rCJOTAPQ P0.7/A0?>2W rsAio pm P2«A12 rSAA13 P2AAU P2.7M1CPH唧P3.<7T>f| raarMTD PXaflTF» *mirarrtP3AJFrav-'RC*FODACO rO.47KC>1 rUJTACZ F03-ACG ra.«*A&« rujVAto FO«TA(« ro.?.'AC?XTALKXT«12H5丄1C6:Hl-j01-C軒T10UTTiltRUNR10UT*ra>urrzi«R2

31、NR2DUTV&-PZ*QQ口5ZF2P/»S rz.fAS F2AW rss'Aii rz.AtzF2SAQrz.rfnwU 口賂D r3.inry&K3N1BE laTiirTra.«m3 F3ST1 yafiyyT ra.rrKFATS9C51 *TT>.psciiXLC0»1BF1.1M2F1.« FIS 91 AF1.Tlu圖3.串行通信電路3.3軟件設(shè)計(jì)通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送CDH給從機(jī),當(dāng)從機(jī)接收到CDH后,向主機(jī)回答DCH。主機(jī) 收到DCH后就把數(shù)碼表TAB16中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和

32、。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接 收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)送來的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00H給主機(jī);否則發(fā)送FFH 給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。1串行通信軟件實(shí)現(xiàn)(1)串行II工作于方式3;用定時(shí)器1產(chǎn)生4800bit/s的波特率,晶振頻率為11.0592MHZ。(2)功能:將本機(jī)ROM中數(shù)碼表TAB16中的16個(gè)數(shù)發(fā)送到從機(jī),并保存在從機(jī)內(nèi)部RONI中,從機(jī)收 到這16個(gè)數(shù)據(jù)后送到一個(gè)數(shù)碼管循壞顯示。(3)通信協(xié)議:主機(jī)首先發(fā)送連絡(luò)信號(hào)(CDH),從機(jī)接收到之后返回一個(gè)連絡(luò)信號(hào)(DCH)表示從機(jī)已準(zhǔn)備 好接收。(4)通信過程使用第九位發(fā)送奇偶校驗(yàn)位

33、。(5)從機(jī)接收到一個(gè)數(shù)據(jù)后,立即進(jìn)行奇偶校驗(yàn),若數(shù)據(jù)沒有錯(cuò)誤,則返回00H,否則返回FFH。(6)主機(jī)發(fā)送一個(gè)數(shù)據(jù)后,等待從機(jī)返回?cái)?shù)據(jù);若為00H,則繼續(xù)發(fā)送下一個(gè)數(shù)據(jù),若為FFH,則重新 /I * »/. iri發(fā)送數(shù)據(jù)。2 程序流程圖(1)發(fā)送端程序流程圖(2) 接收方程序流程圖A、B兩臺(tái)51單片機(jī)的異步串行接收采用查詢方式,它們詳細(xì)的C51程序如下所示。/A機(jī)程序#include<reg51. h>/包含單片機(jī)寄存器的頭文件unsigned char code ddata=0x8& 0x83,0xc6,Oxal,0x86,0x8e, OxcO,0xf9,0

34、xa4,OxbO,0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,; /A, B,C, D, E, F,0, 1., & 9 的段碼l丄"卜卜丄"卜 卜 卜 卜/函數(shù)功能:發(fā)送一個(gè)字節(jié)數(shù)據(jù)丄"卜 丄"卜 丄"卜 卜 卜 卜 丄"卜<rvoid Send (unsigned char dat)SBUFdat;While(TI=0)/等待TI=0;,'“ “%!> 卜 vA 丄"卜 vA 卜 卜 卜 丄"函數(shù)功能:接收一個(gè)字節(jié)數(shù)據(jù)卜 丄"“丄"卜 丄

35、"卜*丄"”丄"”丄"”>1 Iunsigned char Receive(void)unsigned char dat;while(RI=0);/等待,直至接收完畢(RI二1)RI=0;為了接收下一幀數(shù)據(jù),需將RI清0dat二SBUF; /將接收緩沖器中的數(shù)據(jù)存于datreturn dat;f卜 卜 卜 卜 卜 卜丄“<T函數(shù)功能:延時(shí)約150ms%! 卜 %f 卜 %fx 卜 " 卜 %! 卜 %f 卜 " 丄"丄"<Tvoid delay(void)unsigned char m, n;fo

36、r(m=0;m<200;m+)for (n二0;n<250;n+)/ 卜 >S* " 卜 丄"丄"丄"丄"卜T函數(shù)功能:主函數(shù)void main(void)unsigned char i;TI0D 二 0x20;/TM0D=0010 0000B,定時(shí)器T1工作于方式2SCON二OxDO;/SCOM二1101 0000B,串口工作方式3,允許接收PCON二0x00;THl=0xfa;/定時(shí)器TH1賦初值,波特率4800MHzTL1二Oxfa;/定時(shí)器TL1賦初值TRI二1;啟動(dòng)定時(shí)器T1while (1)for(i=0;i<

37、;8;i+)Send(i);/發(fā)送數(shù)據(jù)iPO二ddata Receive。; /將接收到的數(shù)據(jù)送PO 口顯示delay () ;/600ms后發(fā)送下一個(gè)數(shù)據(jù)delay ();delay ();delay ();/B機(jī)程序#include<reg51. h>/包含單片機(jī)寄存器的頭文件unsigned char code ddata=0x8& 0x83, 0xc6, Oxal, 0x86, 0x8e, OxcO, 0xf9, 0xa4, OxbO, 0x99, 0x92,0x82, 0xf8, 0x80, 0x90; /A, B,C, D, E, F,0, 1., &

38、9 的段碼:丄.卜 卜 丄.卜 卜 丄"卜丄"卜 卜 丄"卜函數(shù)功能:發(fā)送一個(gè)字節(jié)數(shù)據(jù)卜 卜 丄.卜 丄.卜 丄.卜 丄.卜 卜丄"卜丄"/void Send (unsigned char dat)SBUFdat;while(TI=O)/等待TI=O;* 卜 卜 卜丄"%!>丄"卜函數(shù)功能:接收一個(gè)字節(jié)數(shù)據(jù)vA %!> 卜 卜 卜 卜 卜 卜 丄"“ “!unsigned char Receive(void)unsigned char dat;while(RI=0);/等待,直至接收完畢(RI二1)RI

39、二0;為了接收下一幀數(shù)據(jù),需將RI清0dat二SBUF; /將接收緩沖器中的數(shù)據(jù)存于datreturn dat;/ 丄"卜 丄"卜 丄"丄"丄"丄"丄"”丄"J TX XTTX XT函數(shù)功能:主函數(shù) 卜卜卜卜f * I * "(、* I * "(、* I * "(、* I * "(、* I * "(、* I * "(、void main(void)unsigned char dat:TMOD二0x20;/定時(shí)器T1工作于方式2SCON二OxDO; /SC0

40、N=1101 0000B,串口工作方式 3,允許接收(RENI)PC0N=0x00;THl=0xfa; /定時(shí)器TH1賦初值,波特率4800TLl=0xfa; /定時(shí)器TL1賦初值TR1=1;/啟動(dòng)定時(shí)器T1while(1)dat二Receive ();P0二ddataldat; /將接收到的數(shù)據(jù)送P0 口顯示Send(dat+8) ;/偏移量為+83.4聯(lián)合調(diào)試在protues ±進(jìn)行仿真實(shí)驗(yàn)。首先使用KeilC將編寫完成的程序編譯生成HEX文件,將HEX文 件燒錄到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗(yàn),結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完 整的顯示了出來。ZTAL2ICL7A

41、D3 怛仔” 砂燦5 rsma WAD,F(xiàn)2XVG riiKO P2M.13 P2A11 P2M,.1Z gm rxzr/.u 92.1/A1Cranazi rarrxo P3NWT raalrrTF3.4HOrsrriPJWTP3?mFMW91二ilF-s一 -ll:s-ifQirszfzP01Vft>D ro.i<n> iP92AA>7 rozrt>3PD.4AH roxwx>5 PD加& ra/A>TXTAL1*ZTALZvyrPU跑p乙應(yīng)P22AXIOPZ3ft<!l?wP24Mt7ALErZ5»HI3EArz/rv»FWP3i/r<c"5razTMTxiP1ZP33

溫馨提示

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

評(píng)論

0/150

提交評(píng)論