基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計(共36頁)_第1頁
基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計(共36頁)_第2頁
基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計(共36頁)_第3頁
基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計(共36頁)_第4頁
基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計(共36頁)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 專業(yè) 課程設(shè)計任務(wù)書20132014 學(xué)年 第 2 學(xué)期第 16 周 19 周 題目基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計內(nèi)容及要求1.利用RS485實現(xiàn)單片機(jī)的雙向通訊;2.通過鍵盤實現(xiàn)從機(jī)的選擇、發(fā)送數(shù)據(jù)的輸入;3.主機(jī)顯示發(fā)送的數(shù)據(jù)及從機(jī)編號。4提高要求:通過鍵盤實現(xiàn)循環(huán)工作模式、指定從機(jī)這2種工作方式的切換。進(jìn)度安排 16周:查找資料,進(jìn)行系統(tǒng)硬件設(shè)計、軟件方案設(shè)計; 17周:硬件制作、軟件的分模塊調(diào)試; 19周:系統(tǒng)聯(lián)調(diào); 19周:設(shè)計結(jié)果驗收,報告初稿的撰寫。學(xué)生姓名:萬嬌 趙佳慧指導(dǎo)時間:周一、周三、周五指導(dǎo)地點:E樓 610 室任務(wù)下達(dá)2014年 6

2、月 3 日任務(wù)完成2014年 6月 27 日考核方式1.評閱 2.答辯 3.實際操作 4.其它指導(dǎo)教師張小林系(部)主任注:1、此表一組一表二份,課程設(shè)計小組組長一份;任課教師授課時自帶一份備查。2、課程設(shè)計結(jié)束后與“課程設(shè)計小結(jié)”、“學(xué)生成績單”一并交院教務(wù)存檔。專心-專注-專業(yè)摘要串口通信是一種廣泛應(yīng)用于各個領(lǐng)域的通信方式,在遠(yuǎn)距離數(shù)據(jù)傳輸和控制系統(tǒng)中,可以根據(jù)RS-485協(xié)議實現(xiàn)遠(yuǎn)距離傳輸。此次課設(shè)即利用MAX485芯片實現(xiàn)半雙工串行通信的雙向通信系統(tǒng)。系統(tǒng)主要由主機(jī)控制模塊、通信模塊、數(shù)據(jù)輸入模塊、數(shù)據(jù)顯示模塊和模數(shù)轉(zhuǎn)換模塊五個部分組成,實現(xiàn)了 利用RS-485實現(xiàn)單片機(jī)的雙向通信,通

3、過鍵盤實現(xiàn)從機(jī)的選擇、發(fā)送數(shù)據(jù),主機(jī)顯示發(fā)送的數(shù)據(jù)及從機(jī)編號,通過鍵盤實現(xiàn)循環(huán)工作模式、指定從機(jī)這兩種工作方式的切換。此系統(tǒng)具有使用方便、操作簡單、便于實現(xiàn)、成本低、可靠性高、可拓展性強(qiáng)、易于維護(hù)等特點,具有較廣泛的應(yīng)用前景。關(guān)鍵字:單片機(jī);RS-485總線;串行通信;數(shù)模轉(zhuǎn)換目錄前言單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的CPU、RAM、多種I/O口和、/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、電路、模擬多路、等電路)集成到一塊硅片上構(gòu)成的一個小而完善的。而在以單片機(jī)為基礎(chǔ)的數(shù)據(jù)采集和實時控制中,通過計算機(jī)中的RS-232接口進(jìn)行計算機(jī)與單片機(jī)之間的命令和數(shù)據(jù)傳

4、送,就可以對現(xiàn)場進(jìn)行監(jiān)測和控制。由于計算機(jī)上的RS-232所傳送的距離不超過30m,所以在遠(yuǎn)距離數(shù)據(jù)傳送和控制時,可以利用MAX485的接口芯片將RS232協(xié)議轉(zhuǎn)換成RS-485協(xié)議進(jìn)行遠(yuǎn)距離傳送。RS-485是雙向、半雙工通信協(xié)議,允許多個驅(qū)動器和接收器掛接在總線上,其中每個驅(qū)動器都能夠脫離總線。接收器輸入靈敏度為200mV,這就意味著若要識別符號或者間隔狀態(tài),接收端電壓必須高于+200mV或者低于-200mV。最小接收器輸入阻抗為12K,驅(qū)動器輸出電壓為1.5V(最小值)、5V(最大值)。第一章 設(shè)計內(nèi)容及要求1.1設(shè)計內(nèi)容設(shè)計一個基于RS-485的單片機(jī)通信系統(tǒng)。1.2設(shè)計要求1.通過鍵

5、盤輸入數(shù)據(jù)和顯示要傳輸?shù)臄?shù)據(jù);2通過串口利用RS-485總線,將數(shù)據(jù)發(fā)給單片機(jī)主機(jī),并顯示。 單片機(jī)1 RS-485 RS-485 單片機(jī)2 圖1.1 系統(tǒng)設(shè)計方案圖 第二章 系統(tǒng)組成及工作原理2.1系統(tǒng)組成系統(tǒng)主要由主機(jī)控制模塊、通信模塊、數(shù)據(jù)輸入模塊、數(shù)據(jù)顯示模塊和數(shù)模轉(zhuǎn)換模塊五個部分組成。其系統(tǒng)框圖如下: 通信從機(jī) 通信主機(jī) 數(shù)據(jù)顯示 數(shù)據(jù)顯示通信模塊數(shù)據(jù)輸入數(shù)模轉(zhuǎn)換鍵盤圖2.1 系統(tǒng)框圖在本系統(tǒng)中,通信主機(jī)是核心部分,主要完成對數(shù)據(jù)的處理、操作和運算;數(shù)據(jù)輸入模塊主要完成數(shù)據(jù)的輸入,所有人機(jī)交換的數(shù)據(jù)都從該模塊中輸入;數(shù)據(jù)顯示模塊完成了通信雙方的數(shù)據(jù)顯示;通信模塊即完成數(shù)據(jù)的接受和發(fā)送

6、,實現(xiàn)數(shù)據(jù)遠(yuǎn)距離傳輸。2.2 工作原理基于RS-485的單片機(jī)通信系統(tǒng)設(shè)計的原理是:利用數(shù)模轉(zhuǎn)換模塊或者鍵盤輸入模塊通過P3口或者P1口將數(shù)據(jù)輸入到C51單片機(jī)主機(jī)里,C51單片機(jī)主機(jī)通過程序來控制共陰數(shù)碼管顯示數(shù)據(jù)并利用MAX485芯片將數(shù)據(jù)傳輸?shù)紺51單片機(jī)從機(jī)中,C51單片機(jī)從機(jī)再通過程序控制另一個共陰數(shù)碼管顯示傳輸過來的數(shù)據(jù)。第三章 硬件電路方案設(shè)計3.1 主機(jī)控制模塊圖3.1 主機(jī)控制模塊89C51是一種帶4K字節(jié)閃爍可編程可擦除(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS8位,俗稱。的可擦除

7、可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍組合在單個芯片中,ATMEL的89C51是一種高效微控制器。 a.數(shù)據(jù)存儲器片內(nèi)為128個字節(jié),片外最多可外擴(kuò)至64k字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等,所以稱為數(shù)據(jù)存儲器。b.程序存儲器由于受集成度限制,片內(nèi)只讀存儲器一般容量較小,如果片內(nèi)的只讀存儲器的容量不夠,則需用擴(kuò)展片外的只讀存儲器,片外最多可外擴(kuò)至64k字節(jié)。c.中斷系統(tǒng)具有5個中斷源,2級中斷優(yōu)先權(quán)。d.定時器/計數(shù)器片內(nèi)有2個16位的定

8、時器/計數(shù)器, 具有四種工作方式。e. 串行口1個全雙工的串行口,具有四種工作方式。可用來進(jìn)行串行通訊,擴(kuò)展并行I/O口,甚至與多個單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣。P1口、P2口、P3口、P4口為4個并行8位I/O口。f.特殊功能寄存器共有21個,用于對片內(nèi)的個功能的部件進(jìn)行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。g.微處理器該單片機(jī)中有一個8位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進(jìn)行位變量的處理。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一

9、些小型的控制單元。其應(yīng)用特點:(1) 有可供用戶使用的大量I/O口線。(2) 內(nèi)部存儲器容量有限。(3) 應(yīng)用系統(tǒng)開發(fā)具有特殊性。3.2 數(shù)據(jù)顯示模塊本次課設(shè)采用八段共陰極數(shù)碼管顯示,利用51單片機(jī)程序來控制數(shù)碼管的顯示。圖3.2 數(shù)據(jù)顯示模塊3.3 模數(shù)轉(zhuǎn)換模塊本次課設(shè)利用ADC0832來實現(xiàn)數(shù)模轉(zhuǎn)換。圖3.3 模數(shù)轉(zhuǎn)換模塊ADC0832 是美國國家半導(dǎo)體公司是生產(chǎn)的一種 8 位分辨率、雙通道 A/D 轉(zhuǎn)換芯片。其分辨率可達(dá)256級,芯片轉(zhuǎn)換時間僅為32S,轉(zhuǎn)換速度快且穩(wěn)定性強(qiáng),其芯片如下圖所示:圖3.4 ADC0832芯片其中各管腳功能為:片選使能,低電平芯片使能。CH0 模擬輸入通道0,

10、或作為IN+/-使用。 CH1 模擬輸入通道1,或作為IN+/-使用。GND 芯片參考0 電位(地)。DI 數(shù)據(jù)信號輸入,選擇通道控制。DO 數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。 CLK 芯片時鐘輸入。Vcc/REF 電源輸入及參考電壓輸入(復(fù)用)。3.4 鍵盤輸入模塊圖3.5 鍵盤輸入模塊本次課設(shè)采用矩陣式鍵盤,其突出優(yōu)點是I/O端口利用率高,可循環(huán)操作,而且掃描鍵盤時占用CPU時間少,操作靈活,矩陣鍵盤控制狀態(tài)多,編寫程序較方便,故此模塊采用矩陣式鍵盤。3.5 通信模塊圖3.6 通信模塊MAX485接口芯片是Maxim公司的一種RS-485芯片。MAX485是用于RS-485與RS-422通信的低

11、功耗收發(fā)器,器件中都具有一個驅(qū)動器和一個接收器。其驅(qū)動器擺率不受限制,可以實現(xiàn)最高2.5Mbps的傳輸速率。采用單一電源+5 V工作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡單,內(nèi)部含有一個驅(qū)動器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動器的輸入端,與單片機(jī)連接時只需分別與單片機(jī)的RXD和TXD相連即可;和DE端分別為接收和發(fā)送的使能端,當(dāng)為邏輯0時,器件處于接收狀態(tài);當(dāng)DE為邏輯1時,器件處于發(fā)送狀態(tài),因為MAX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個管腳控制這兩個引腳即可;A端和B端分別為接收和發(fā)

12、送的差分信號端,當(dāng)A引腳的電平高于B時,代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時,代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時接線非常簡單。只需要一個信號控制MAX485的接收和發(fā)送即可。同時將A和B端之間加匹配電阻,一般可選100的電阻。兩個RS485的1腳和4腳接在對應(yīng)的單片機(jī)上以實現(xiàn)功能。3.5.1 RS485通信協(xié)議由于RS485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道。在任意時刻只允許一臺單機(jī)處于發(fā)送狀態(tài)。因此要求應(yīng)答的單機(jī)必須在偵聽到總線上呼叫信號已經(jīng)發(fā)送完畢,并且沒有其它單機(jī)發(fā)出應(yīng)答信號的情況下,才能應(yīng)答。半雙工通訊對主機(jī)和從機(jī)的發(fā)送和接收時序有嚴(yán)格的要求。如果在時序上配合不好,

13、就會發(fā)生總線沖突,使整個系統(tǒng)的通訊癱瘓,無法正常工作。要做到總線上的設(shè)備在時序上的嚴(yán)格配合,必須要遵從以下幾項原則;1) 復(fù)位時,主從機(jī)都應(yīng)該處于接收狀態(tài)。SN75176芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的 RET,DE端控制的。RET=1,DE=1時,SN75176發(fā)送狀態(tài);RET=0,DE=0時,SN75176處于接收狀態(tài)。一般使用單片機(jī)的一根口線連接RET,DE端。在上電復(fù)位時,由于硬件電路穩(wěn)定需要一定的時間,并且單片機(jī)各端口復(fù)位后處于高電平狀態(tài),這樣就會使總線上各個分機(jī)處于發(fā)送狀態(tài),加上上電時各電路的不穩(wěn)定,可能向總線發(fā)送信息。因此,如果用一根口線作發(fā)送和接收控制信號,應(yīng)該將口線反向后接

14、入SN75176的控制端,使上電時SN75176處于接收狀態(tài)。另外,在主從機(jī)軟件上也應(yīng)附加若干處理措施,如:上電時或正式通訊之前,對串行口做幾次空操作,清除端口的非法數(shù)據(jù)和命令。2) 控制端RET,DE的信號的有效脈寬應(yīng)該大于發(fā)送或接收一幀信號的寬度。在RS232,RS422等全雙工通訊過程中,發(fā)送和接收信號分別在不同的物理鏈路上傳輸,發(fā)送端始終為發(fā)送端,接收端始終為接收端,不存在發(fā)送、接收控制信號切換問題。在RS485半雙工通訊中,由于SN75176的發(fā)送和接收都由同一器件完成,并且發(fā)送和接收使用同一物理鏈路,必須對控制信號進(jìn)行切換??刂菩盘柡螘r為高電平,何時為低電平,一般以單片機(jī)的TI,R

15、I信號作參考。發(fā)送時,檢測TI是否建立起來,當(dāng)TI為高電平后關(guān)閉發(fā)送功能轉(zhuǎn)為接收功能;接收時,檢測RI是否建立起來,當(dāng)RI為高電平后,接收完畢,又可以轉(zhuǎn)為發(fā)送。3.5.2 RS485通信格式RSS485協(xié)議的信息格式如下:(1) 編碼格式;二進(jìn)制代碼。(2) 波特率:9600 bs。(3) 通信方式:半雙工。(4) 每個字符由u 位組成;1位:起始位(0);8位:數(shù)據(jù)位;l位:停止位(1)。(5)主機(jī)詢問的一般格式如下:從機(jī)地址碼命令碼 數(shù)據(jù)個數(shù)數(shù)據(jù) 校驗和 表3.1 主機(jī)詢問的一般格式(6)從機(jī)應(yīng)答的一般格式如下:返回地址碼命令碼 數(shù)據(jù)個數(shù)數(shù)據(jù)校驗和 表3.2 從機(jī)應(yīng)答的一般格式按照要求,只

16、需要實現(xiàn)雙機(jī)通信即可,并無要求主從機(jī)特定地位,但是原理是相同的。3.6從機(jī)控制模塊3.6.1 單片機(jī)最小系統(tǒng)圖3.7 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)主要包括電源、復(fù)位電路和時鐘電路等。  單片機(jī)復(fù)位電路原理是在單片機(jī)的復(fù)位引腳RST上外接電阻和電容,實現(xiàn)上電復(fù)位。當(dāng)復(fù)位電平持續(xù)兩個機(jī)器周期以上時復(fù)位有效。復(fù)位電平的持續(xù)時間必須大于單片機(jī)的兩個機(jī)器周期。具體數(shù)值可以由RC電路計算出時間常數(shù)。 復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分組成。 (1)上電復(fù)位:STC89系列單片及為高電平復(fù)位,通常在復(fù)位引腳RST上連接一個電容到VCC,再連接一個電阻到GND,由此形成

17、一個RC充放電回路保證單片機(jī)在上電時RST腳上有足夠時間的高電平進(jìn)行復(fù)位,隨后回歸到低電平進(jìn)入正常工作狀態(tài),這個電阻和電容的典型值為10K和10uF。 (2)按鍵復(fù)位:按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個開關(guān),當(dāng)開關(guān)按下時電容被放電、RST也被拉到高電平,而且由于電容的充電,會保持一段時間的高電平來使單片機(jī)復(fù)位。單片機(jī)時鐘電路是由方向放大器構(gòu)成。XTAL1為時鐘電路的輸入端,XTAL2為時鐘電路的輸出端。3.6.2 顯示模塊從機(jī)的顯示模塊與主機(jī)原理一致,這里就不再次敘述。 第四章 軟件設(shè)計4.1 通信協(xié)議 4.1.1串行通信協(xié)議的比較RS232 RS422 RS485RS-232、RS-

18、422與RS-485標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。例如:視頻服務(wù)器都帶有多個RS422串行通訊接口,每個接口均可通過RS422通訊線由外部計算機(jī)控制實現(xiàn)記錄與播放。 視頻服務(wù)器除提供各種控制硬件接口外,還提供協(xié)議接口,如RS422接口除支持RS422的Profile協(xié)議外,還支持 Louth、Odetics 、BVW等通過RS422控制的協(xié)議。 RS-232、RS-422與RS-485都是串行數(shù)據(jù)接口標(biāo)準(zhǔn),都是由電子工業(yè)協(xié)會(EIA)制訂并發(fā)布的,RS-232在1962年發(fā)布。RS-

19、422由RS-232發(fā)展而來,為改進(jìn)RS-232通信距離短、速率低的缺點,RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mbps,傳輸距離延長到4000英尺(速率低于100Kbps時),并允許在一條平衡總線上連接最多10個接收器。RS-422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,被命名為TIA/EIA-422-A標(biāo)準(zhǔn)。為擴(kuò)展應(yīng)用范圍,EIA又于1983年在RS-422基礎(chǔ)上制定了RS-485標(biāo)準(zhǔn),增加了多點、雙向通信能力,即允許多個發(fā)送器連接到同一條總線上,同時增加了發(fā)送器的驅(qū)動能力和沖突保護(hù)特性,擴(kuò)展了總線共模范圍,后命名為TIA/EIA-485-A標(biāo)準(zhǔn)。 

20、60;     1.  RS-232串行接口標(biāo)準(zhǔn)       目前RS-232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS-232采取不平衡傳輸方式,即所謂單端通訊。收、發(fā)端的數(shù)據(jù)信號是相對于信號地。典型的RS-232信號在正負(fù)電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅(qū)動器輸出正電平在+5+15V,負(fù)電平在-5-15V電平。當(dāng)無數(shù)據(jù)傳輸時,線上為TTL,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS

21、-232電平再返回TTL電平。接收器典型的工作電平在+3+12V與-3-12V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20Kbps。RS-232是為點對點(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計的,其驅(qū)動器負(fù)載為3k7k。所以RS-232適合本地設(shè)備之間的通信。      2.   RS-422與RS-485串行接口標(biāo)準(zhǔn)      (1) 平衡傳輸   

22、;    RS-422、RS-485與RS-232不一樣,數(shù)據(jù)信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。通常情況下,發(fā)送驅(qū)動器A、B之間的正電平在+2+6V,是一個邏輯狀態(tài),負(fù)電平在-2V6V,是另一個邏輯狀態(tài)。另有一個信號地C,在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的。“使能”端是用于控制發(fā)送驅(qū)動器與傳輸線的切斷與連接。當(dāng)“使能”端起作用時,發(fā)送驅(qū)動器處于高阻狀態(tài),稱作“第三態(tài)”,即它是有別于邏輯“1”與“0”的第三態(tài)。    

23、0;  (2) RS-422電氣規(guī)定      由于接收器采用高輸入阻抗和發(fā)送驅(qū)動器比RS232更強(qiáng)的驅(qū)動能力,故允許在相同傳輸線上連接多個接收節(jié)點,最多可接10個節(jié)點。即一個主設(shè)備(Master),其余為從設(shè)備(Salve),從設(shè)備之間不能通信,所以RS-422支持點對多的雙向通信。RS-422四線接口由于采用單獨的發(fā)送和接收通道,因此不必控制數(shù)據(jù)方向,各裝置之間任何必須的信號交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對單獨的雙絞線)實現(xiàn)。RS-422的最大傳輸距離為4000英尺(約1219米),

24、最大傳輸速率為10Mbps。其平衡雙絞線的長度與傳輸速率成反比,在100Kbps速率以下,才可能達(dá)到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mbps。RS-422需要一終接電阻,要求其阻值約等于傳輸電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸電纜的最遠(yuǎn)端。(3) RS-485電氣規(guī)定由于RS-485是從RS-422基礎(chǔ)上發(fā)展而來的,所以RS-485許多電氣規(guī)定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實現(xiàn)

25、真正的多點雙向通信。RS-485總線,在要求通信距離為幾十米到上千米時,廣泛采用RS-485 串行總線標(biāo)準(zhǔn)。RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測低至200mV的電壓,故傳輸信號能在千米以外得到恢復(fù)。 RS-485采用半雙工工作方式,任何時候只能有一點處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號加以控制。RS-485用于多點互連時非常方便,可以省掉許多信號線。應(yīng)用RS-485 可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),其允許最多并聯(lián)32臺驅(qū)動器和32臺接收器。 RS-485與RS-422的不同還在于其共模輸出電壓是不

26、同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間;RS-485滿足所有RS-422的規(guī)范,所以RS-485的驅(qū)動器可以用在RS-422網(wǎng)絡(luò)中應(yīng)用。RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mbps。平衡雙絞線的長度與傳輸速率成反比,在100Kbps速率以下,才可能使用規(guī)定最長的電纜長度。只有在很短的距離下才能獲得最高速率傳輸。一般100米長雙絞線最大傳輸速率僅為1Mbps。4.1.2 通信過程一次完整的通信過程分為3個階段:發(fā)送機(jī)處理輸入數(shù)據(jù)、通信和接收機(jī)顯示輸入數(shù)據(jù)。第一階段,發(fā)送機(jī)判斷輸入的鍵值,將其打包處理;通信階段,把打

27、包處理好的數(shù)值發(fā)送給寄存器,再從寄存器發(fā)送給接收機(jī);接收機(jī)顯示階段,把打包好的數(shù)據(jù)處理后還原原來的數(shù)據(jù),通過查表以數(shù)碼管的形式顯示;此時接收機(jī)清除接收緩沖區(qū)及相關(guān)變量,準(zhǔn)備與主機(jī)下次通信。任何一次完整的通信過程都是由發(fā)送機(jī)方發(fā)起的,兩個單片機(jī)在無鍵值輸入的情況下都處在接收狀態(tài)。4.2 主機(jī)程序4.2.1 主程序總流程圖多級雙向通信的軟件設(shè)計主要分為:系統(tǒng)初始化、確定主從及關(guān)系、雙方進(jìn)行握手、主機(jī)發(fā)送數(shù)據(jù)和從機(jī)接收數(shù)據(jù)等六大部分;每個功能米快快對于通信雙方都是必不可缺的,只有這樣主機(jī)才能很好的對外部的信息進(jìn)行采集、分析和解決。系統(tǒng)初始化:系統(tǒng)初始化包括串口初始化和顯示模塊初始化。主要實現(xiàn)串口中斷

28、的開啟、總中斷的開啟、定時器的選擇及其工作方式的選擇、串口工作方式的選擇和顯示模塊初始化等功能。有鍵按下:通信雙方進(jìn)行通信時需確定雙方的主從關(guān)系,然后通過鍵盤按下,顯示所傳輸?shù)臄?shù)據(jù)。鍵值處理:在該部分中,通信逐句會發(fā)送握手信號給從機(jī),主機(jī)發(fā)送的數(shù)據(jù)通過處理再傳送給從機(jī)。送顯數(shù)據(jù):所發(fā)送的數(shù)據(jù)通過處理之后再發(fā)送給從機(jī)并顯示。 開始從機(jī)接收數(shù)據(jù):此部分功能較簡單,只需完成從機(jī)不斷接受主機(jī)發(fā)送的數(shù)據(jù)即可。 初始化有鍵按下 N Y 鍵值處理 主機(jī)顯示數(shù)據(jù) 發(fā)送數(shù)據(jù)給從機(jī)機(jī) 從機(jī)顯示數(shù)據(jù)圖4.1 主程序流程圖4.2.2 矩陣鍵盤輸入子程序初始化后程序不斷檢測矩陣鍵盤狀況,一旦檢測到有鍵按下,消抖后即時開

29、始處理輸入的數(shù)據(jù)。先以行為單位確定按下的鍵在哪一行,然后再提取該行的數(shù)據(jù),以相與的方式確定是該行的第幾個鍵按下了,由此確定按下的到底是哪個鍵。確定了之后,用比較方便傳輸?shù)?6進(jìn)制的數(shù)值來代替。開始有鍵按下 N 掃描行,確定按下鍵的行數(shù) Y 掃描列,確定按鍵值轉(zhuǎn)換成數(shù)值按鍵釋放 N 數(shù)據(jù)顯示并傳輸 Y 返回圖4.2 矩陣鍵盤程序流程圖4.2.3 數(shù)碼管顯示子程序 接收數(shù)據(jù) 開始查表,得到對應(yīng)的碼 將對應(yīng)的碼發(fā)給P2 P2接共陰數(shù)碼管 數(shù)碼管顯示數(shù)據(jù) 返回圖4.3 數(shù)碼管顯示子程序流程圖4.2.4 傳輸模塊子程序 所接收的數(shù)據(jù)經(jīng)過處理之后發(fā)送給從機(jī)。 開始關(guān)閉串口中斷 設(shè)置狀態(tài)為發(fā)送 將要傳輸?shù)臄?shù)

30、據(jù)給SBUF 傳輸后T1=0打開串口中斷 返回 圖4.4 傳輸模塊子程序流程圖4.3 從機(jī)程序4.3.1從機(jī)總流程圖 開始 初始化數(shù)據(jù)傳輸 過來 N Y 鍵值處理 從機(jī)顯示數(shù)據(jù)圖4.5從機(jī)主流程圖 4.3.2 接收并顯示子程序 從機(jī)接收到主機(jī)傳來的信息,經(jīng)過處理之后在從機(jī)的數(shù)碼管上顯示。顯示部分與主機(jī)顯示部分相似。 開始中斷標(biāo)志位RI=0? N 打開接受 Y讀緩存區(qū)的值 調(diào)用顯示子程序 返回 圖4.6 接收部分流程圖第五章 實驗調(diào)試和測試結(jié)果與分析先利用Proteus進(jìn)行仿真,看能否滿足要求,若滿足要求后,再將寫好的主機(jī)程序和從機(jī)程序分別燒錄進(jìn)兩個單片機(jī)里,兩個單片機(jī)的P3.0、P3.1控制R

31、S485使能端,再接上數(shù)據(jù)輸入輸出兩根導(dǎo)線,打開電源之后,兩個單片機(jī)的數(shù)碼管顯示模塊都處于顯示的狀態(tài);將采集電壓開關(guān)閉合,按下其中任意一個鍵時,在釋放的瞬間兩個單片機(jī)的數(shù)碼管顯示模塊都全部顯示了矩陣鍵盤輸入的鍵值,而改變滑動電阻器的阻值時,數(shù)碼管顯示模塊的數(shù)值并不發(fā)生變化;當(dāng)采集電壓開關(guān)關(guān)閉時,改變滑動電阻器的阻值,兩個單片機(jī)的數(shù)碼管顯示模塊都全部顯示了滑動變阻器輸入的阻值所對應(yīng)的數(shù)值,但是按下任意矩陣鍵盤的鍵值,數(shù)碼管的顯示模塊的數(shù)值不改變,證明串行通信成功。通過幾次按鍵輸入和模擬輸入,確認(rèn)單片機(jī)可以以半雙工的方式串行通信。第六章 結(jié)論本次課設(shè)的內(nèi)容是是RS485總線雙機(jī)通信系統(tǒng)設(shè)計,本設(shè)計

32、在單片機(jī)網(wǎng)絡(luò)的通信的基礎(chǔ)上,實現(xiàn)單片機(jī)雙機(jī)通信。用RS485接口來實現(xiàn)單片機(jī)與單片機(jī)之間的通信。采用主從式,即在數(shù)個單片機(jī)中,有一個是主機(jī),其余的是從機(jī),從機(jī)要服從主機(jī)的調(diào)度、支配。利用80C51單片機(jī)的串行口方式來實現(xiàn)這種主從式的通信結(jié)構(gòu)。同時利用了Keil和Proteus軟件來實現(xiàn)單片機(jī)的C語言編程,然后在proteus仿真軟件中設(shè)計電路。本次課設(shè)整個過程包括通過理論設(shè)計,仿真軟件仿真,確定具體方案,安裝實際電路,調(diào)試電路、測試結(jié)果等多個方面的內(nèi)容。這就要求我們充分利用所學(xué)的知識進(jìn)行思考、借鑒。可以說,本次課設(shè)是針對前面所學(xué)的知識進(jìn)行的一次比較綜合的檢驗。本次課設(shè)用時3個星期,成功的完成了

33、任務(wù)??偨Y(jié)我這次課設(shè)之所以能成功的原因主要就是做好了充分準(zhǔn)備,即熟練地掌握課本上的理論知識、做好仿真并打印出來和充分了解自己將要用到的芯片。這樣才能對試驗中出現(xiàn)的問題進(jìn)行分析和解決。雖然最后還是出現(xiàn)了正確的結(jié)果,但我這次的設(shè)計還是存在很大的不足。一是程序略有繁瑣;二是其實沒有很好的顯示出RS485的特別的功能。忽略這些不足,本次設(shè)計基本達(dá)到了實驗要求。第七章 參考文獻(xiàn)1 譚浩強(qiáng). C程序設(shè)計.北京:清華大學(xué)出版社,2009.2 張先庭.單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計.北京:國防工業(yè)出版社,2011.3 張毅剛.單片機(jī)原理及應(yīng)用M.高等教育出版社,2008.4 郭天祥.51單片機(jī)C語言教程

34、.電子工業(yè)出版社,2011.5 張涵芳,徐愛卿.單片微型計算機(jī)及其應(yīng)用M.北京:北京航空航天大學(xué)出版社,1991.附錄一 電路圖附錄二 程序代碼主機(jī)程序/*函數(shù)功能:AD轉(zhuǎn)換子程序入口參數(shù):CH出口參數(shù):dat*/#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0

35、x71;sbit anjia=P32;sbit CS=P34;sbit Clk=P35;sbit DATI=P33;uchar a,key,num;uchar dat=0x00;uchar CH;uchar matrixkeyscan();void put(uchar);void display(uchar);void delayms(uint z)uint i,j;for(i=z;i>0;i-)for(j=110;j>0;j-);unsigned char adc0832(unsigned char CH) unsigned char i,test,adval; adval=0x

36、00; test=0x00; Clk=0;/初始化 DATI=1; _nop_(); CS=0; _nop_(); Clk=1; _nop_(); if(CH=0x00)/通道選擇 Clk=0; DATI=1; /通道的第一位 _nop_(); Clk=1; _nop_(); Clk=0; DATI=0;/通道的第二位 _nop_(); Clk=1; else Clk=0; DATI=1;/通道的第一位 _nop_(); Clk=1; _nop_(); Clk=0; DATI=1;/通道的第二位 _nop_(); Clk=1; Clk=0; DATI=1; for(i=0;i<8;i+)

37、/讀取前位的值 adval<<=1; Clk=1; _nop_(); Clk=0; if(DATI) adval|=0x01; else adval|=0x00; for(i=0;i<8;i+)/讀取后位的值 test>>=1; if(DATI) test|=0x80;else test|=0x00; _nop_();Clk=1;_nop_();Clk=0; if(adval=test)/比較前位與后位的值,如果不相同舍去。若一直出現(xiàn)顯示為零,請將該行去掉? dat=test; _nop_(); CS=1;/釋放ADC0832 DATI=1; Clk=1; ret

38、urn dat;void put(uchar c)SBUF=c;while(!TI);TI=0;void init()TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;SCON=0X50;EA=1;ES=1;/EX0=1;/IT0=0;void ser() interrupt 4if(RI=1)RI=0;a=SBUF;/*void display(uchar num)P2=tablenum; /顯示函數(shù)只送段選數(shù)據(jù)/*uchar matrixkeyscan()uchar temp;P1=0xfe;temp=P1;temp=temp&0xf0;if(temp!=0xf0

39、) delayms(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0) temp=P1; switch(temp) case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=15;break; while(temp!=0xf0) /等待按鍵釋放 temp=P1; temp=temp&0xf0; /display(key); P1=0xfd;temp=P1;temp=temp&0xf0;if(temp!=0xf0) delayms(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0) temp=P1; switch(temp) case 0xed:key=3;break;case 0xdd:key=4;break;case 0xbd:key=5;break;case 0x7d:key=14;break; while(temp!=0xf0) temp=P1; temp=temp&

溫馨提示

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

最新文檔

評論

0/150

提交評論