版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于RS-232C的單片機雙機通信系統(tǒng)設計(二)摘要:本文主要設計了一個基于RS-232C單片機雙機通訊系統(tǒng),利用TDN86/51二合一教學實驗系統(tǒng)中的51單片機實現(xiàn)兩個單片機之間的通訊。通信的結(jié)果用數(shù)碼管進行顯示,數(shù)碼管采用查表方式顯示。兩個單片機之間采用New-Roman進行雙機通信。在通信過程中,使用通信協(xié)議進行通信。關鍵字:RS-232C;數(shù)據(jù)發(fā)送;數(shù)據(jù)接收;LED顯示 ;雙機串行通信。0. 前言計算機的發(fā)展對通信起了巨大的推動作用,計算機和通信緊密結(jié)合構(gòu)成了靈活多樣的通信控制系統(tǒng),也可以構(gòu)成強有力的信息處理系統(tǒng),這樣對社會的發(fā)展產(chǎn)生了深遠的影響。隨著電子技術和計算機技術的發(fā)展,特別是
2、單片機的發(fā)展,使傳統(tǒng)的測量儀器在原理、功能、精度及自動化水平等方面發(fā)生了巨大的變化,形成了一種完全突破傳統(tǒng)概念的新一代測試儀器智能儀器。智能儀器是以微處理器為核心的電子儀器,它不僅要求設計者熟悉電子儀器的工作原理,而且還要求其掌握微型計算機硬件和軟件的原理。目前,有很多的傳統(tǒng)電子儀器已有相應的替代產(chǎn)品,而且還出現(xiàn)不少全新的儀器類型和測試系統(tǒng)體系。在科學技術高速發(fā)展的今天,如何用簡單便宜、性能良好的元器件制造出對人類生活有用的產(chǎn)品,已經(jīng)成為人們研究的主要趨勢。在自動化技術中,無論是過程控制技術還是數(shù)據(jù)采集技術還是測控技術,都離不開單片機,在工業(yè)自動化的領域中,機電一體化技術發(fā)揮越來越重要的作用,
3、在通信方面,單片機得到了廣泛運用。在實現(xiàn)計算機與計算機、計算機與外設的串行通訊時,通常采用標準的通訊接口。所謂標準的通訊接口,就是明確定義若干信號線的機械、電器特性,使接口電路標準化、通用化,這樣就能方便地把不同的計算機、外設等有機地連接起來,進行串行通訊。 RS-232C是由美國電子工業(yè)協(xié)會(EIA)制定的用于串行通信的標準通信接口,利用它可以很方便地把各種計算機、外圍設備、測量儀器等有機地連接起來,進行串行通信。它包括按位傳輸?shù)碾姎夂蜋C械方面的規(guī)定,適用于短距離或帶調(diào)制解調(diào)器的通信場合。 RS-232C標準適用于DCE和DTE之間的串行二進制通信,最高的數(shù)據(jù)速率為19.2Kbit/s,在使
4、用此波特率進行通信時,最大傳輸距離在20m之內(nèi)。降低波特率可以增加傳輸距離。對于RS-232C標準接口的使用是非常靈活的,實際通信中經(jīng)常采用9針接口進行數(shù)據(jù)通信。1. 總體方案設計在本次設計中,硬件部分,對于兩片89C51,采用RS232進行雙機通信,硬件的連接方法如圖1所示。電平轉(zhuǎn)換芯片采用MAX232,其連接一般采用雙絞線,傳輸距離一般不超過15m,傳輸小于20kbit/s。發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進行電平轉(zhuǎn)換后,信號到達接收方串行口的接收端。接受方接收后,
5、在數(shù)碼管上顯示接收的信息。為提高抗干擾能力,還可以在輸入輸出端加光耦合進行光電隔離。軟件部分,通過通信協(xié)議進行發(fā)送接收,主機先送AAH給從機,當從機接收到AAH后,向主機回答B(yǎng)BH。主機收到BBH后就把數(shù)碼表TAB16中的10個數(shù)據(jù)送給從機,并發(fā)送檢驗和。從機收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與主機發(fā)送來的檢驗和進行比較,若檢驗和相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接收。從機收到16個正確數(shù)據(jù)后送到一個數(shù)碼管顯示。T2IN T2OUT MAX232AR2OUT R2INR2IN T2IN MAX232AT2OUT R2OUTTXDAT89C51RXDTXDAT89C51RX
6、D 圖1 RS-232C電平信號傳輸?shù)倪B接圖2. 硬件電路的設計2.1 單片機系統(tǒng)標準型89系列單片機是與MCS-51系列單片機兼容的。在內(nèi)部含有4KB或8KB可重復編程的Flash存儲器,可進行1000次擦寫操作。全靜態(tài)工作為033MHz,有3級程序存儲器加密鎖定,內(nèi)含有128256字節(jié)的RAM、32條可編程的I/O端口、23個16位定時器/計數(shù)器,68級中斷,此外有通用串行接口、低電壓空閑模式及掉電模式。AT89C51相當于將8051中的4KB ROM換成相應數(shù)量的Flash存儲器,其余結(jié)構(gòu)、供電電壓、引腳數(shù)量及封裝均相同,使用時可直接替換。AT89C51在內(nèi)部采用40條引腳的雙列直插式封
7、裝,引腳排列如圖2所示:圖2 AT89C51芯片引腳在自動化測量和控制系統(tǒng)中,各臺儀表之間需要不斷地進行各種信息的交換和傳輸,這種信息的交換和傳輸是通過儀表的通信接口,按照一定的協(xié)議進行的。通信接口是各臺儀表之間或者是儀表與計算機之間進行信息交換和傳輸?shù)穆?lián)絡裝置。計算機與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。所謂并行通信是指數(shù)據(jù)的各位同時在多根數(shù)據(jù)線上發(fā)送或接收,其特點是傳輸信號的速度快,但所用的信號線較多,成本高,傳輸?shù)木嚯x較近。串行通信是指將構(gòu)成字符的每個二進制數(shù)據(jù)位,依照一定的順序逐位進行傳送的通信方式,其特點是只用兩條信號線(一條信號線,再加一條地線作為信號
8、回路)即可完成通信,成本低,傳輸?shù)木嚯x較遠。51單片機內(nèi)部有一個可編程全雙工串行通信接口。該部件不僅能同時進行數(shù)據(jù)的發(fā)送和接收,也可作為一個同步移位寄存器使用。51單片機串行接口的結(jié)構(gòu)如下:(1)串行數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。SBUF包括緩存寄存器和發(fā)送寄存器,以便能以全雙工方式進行通信。此外,在接收寄存器之前還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),這樣可以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤。發(fā)送數(shù)據(jù)時,由于CPU是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路不需要雙重緩沖結(jié)構(gòu)。在邏輯上,SBUF只有一個,它既表示發(fā)送寄存器,又表示接收寄存器,具有同一個
9、單元地址99H。但在物理結(jié)構(gòu)上,則有兩個完全獨立的SBUF,一個是發(fā)送緩沖寄存器SBUF,另一個是接收緩沖寄存器SBUF。如果CPU寫SBUF,數(shù)據(jù)就會被送入發(fā)送寄存器準備發(fā)送;如果CPU讀SBUF,則讀入的數(shù)據(jù)一定來自接收緩沖器。即CPU對SBUF的讀寫,實際上是分別訪問上述兩個不同的寄存器。(2)串行控制寄存器(PCON)串行控制寄存器SCON用于設置串行口的工作方式、監(jiān)視串行口的工作狀態(tài)、控制發(fā)送與接收的狀態(tài)等。它是一個既可以字節(jié)尋址又可以位尋址的8位特殊功能寄存器。其格式如表1所示: 表1 串行口控制寄存器SCON位地址9FH9EH9DH9CH9BH9AH99H98HSCONSM0SM
10、1SM2RENTB8RB8T1R1SM2:多機通信控制位。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ù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標志。接收完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收。SM0,SM1:串行口工作方式選擇位,這兩位組合成00,01,10,11
11、對應于工作方式0、工作方式1、工作方式2、工作方式3。串行接口工作方式如表2:表2 串行工作方式SM0SM1工作方式功能波特率 0008位同步移位寄存器(用于I/O擴展)fORC/1201110位異步串行通信(UART)可變(T1溢出率*2SMOD/32)10211位異步串行通信(UART)fORC/64或fORC/3211311位異步串行通信(UART)可變(T1溢出率*2SMOD/32)(3)輸入移位寄存器接收的數(shù)據(jù)先串行進入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。(4)波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機用定時器T1作為波特率發(fā)生器
12、,T1設置在定時方式。波特率是用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。(5)電源控制寄存器PCON波特率系數(shù)控制寄存器PCON的最高位為Smod,僅僅是最高位與串行口有關。在工作方式1工作方式3時,若SMOD=1,則串行口波特率增加一倍。若SMOD=0,波特率不加倍。系統(tǒng)復位時,SMOD=0。PCON字節(jié)地址為87H,不能位尋址。PCON的格式如表3表3 特殊功能寄存器PCON的格式PCOND7D6D5D4D3D2D1D0位名稱SMODGF1GF0PDIDL(6)波特率計算 串行口每秒鐘發(fā)送(或接收)的位數(shù)稱為波特率。設發(fā)送一位所需要的時間為T,則波特率為1/T。
13、對于不同方式,得到的波特率的范圍是不一樣的,這是由定時器/計數(shù)器T1在不同方式下計數(shù)位數(shù)的不同所決定的。串行口工作在方式1或方式3時,常用定時器T1作為波特率發(fā)生器,關系式為:波特率=2SMOD×(T1溢出率)/32。2.2 MAX232芯片在電氣特性上RS-232C采用負邏輯,要求高、低兩信號間有較大的幅度,標準規(guī)定為:邏輯1:-5-15V ,邏輯0:+5+15V 。而單片機的信號電平與TTL電平兼容,邏輯1大于+2.4V,邏輯0為0.4V以下。很顯然,RS-232C信號電平與TTL電平不匹配,為了實現(xiàn)兩者的連接,必須進行電平轉(zhuǎn)換。MAX232C為單一+5V供電,內(nèi)置自升壓電平轉(zhuǎn)換
14、電路,一個芯片能同時完成發(fā)送轉(zhuǎn)換和接收轉(zhuǎn)換的雙重功能。其引腳如圖3:圖3 電平轉(zhuǎn)換芯片MAX232 (1) C1+,C1-,C2+,C2-;外接電容端。(2) R1IN,R2IN:兩路RS-232C電平信號輸入端,可接傳輸線。(3) R1OUT,R2OUT:兩路轉(zhuǎn)換后的TTL電平輸出端,可接單片機的RXD端。(4) T1OUT,T2OUT:兩路轉(zhuǎn)換后的RS-232C電平信號輸出端,可接傳輸線。(5) T1IN,T2IN:兩路TTL電平輸入端,可接單片機的TXD端。(6)Vs+,Vs-:分別經(jīng)電容接電源和地。2.3 整體電路設計 最終設計電路如圖4所示,發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過電平
15、轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進行電平轉(zhuǎn)換后,信號到達接收方串行口的接收端。接受方接收后,通過P0口在數(shù)碼管上顯示接收的信息。 圖4 串行通信電路3 軟件設計通過通信協(xié)議進行發(fā)送接收,主機先送AAH給從機,當從機接收到AAH后,向主機回答B(yǎng)BH。主機收到BBH后就把數(shù)碼表TAB16中的16個數(shù)據(jù)送給從機,并發(fā)送檢驗和。從機收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與主機發(fā)送來的檢驗和進行比較,若檢驗和相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接受。從機收到16個正確數(shù)據(jù)后送到一個數(shù)碼管顯示。3.1 串行
16、通信軟件實現(xiàn)(1)串行口工作于方式1;用定時器1產(chǎn)生9600bit/s的波特率,工作于方式2。(2)功能:將本機ROM中數(shù)碼表TAB16中的16個數(shù)發(fā)送到從機,并保存在從機內(nèi)部ROM中,從機收到這16個數(shù)據(jù)后送到一個數(shù)碼管循環(huán)顯示。(3)通信協(xié)議:主機首先發(fā)送連絡信號(AAH),從機接收到之后返回一個連絡信號(BBH)表示從機已準備好接收。(4)通信過程使用第九位發(fā)送奇偶校驗位。(5)從機接收到一個數(shù)據(jù)后,立即進行奇偶校驗,若數(shù)據(jù)沒有錯誤,則返回00H,否則返回FFH。(6)主機發(fā)送一個數(shù)據(jù)后,等待從機返回數(shù)據(jù);若為00H,則繼續(xù)發(fā)送下一個數(shù)據(jù),若為FFH,則重新發(fā)送數(shù)據(jù)。3.2 程序流程圖(
17、1) 發(fā)送端程序流程圖,如圖5所示:主程序開始從機是否回答B(yǎng)BH?程序初始化主機發(fā)送AAHN主機發(fā)送數(shù)據(jù),檢驗和輸出完成?N清除標志位 圖5 發(fā)送端程序流程圖(2) 接收端程序流程圖,如圖6所示:主程序開始檢驗和相等?程序初始化接收數(shù)據(jù),計算檢驗和N發(fā)送00H至主機接收完成?N清除標志位發(fā)送FFH,重新接收顯示圖6 接收端程序流程圖 4.聯(lián)合調(diào)試在protues上進行仿真實驗。首先使用Keil uVsion 2將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機中,進行仿真實驗,結(jié)果如圖7所示,可以看到,接收端已將接收到的數(shù)據(jù)完整的顯示出來。 圖7 仿真圖5. 課設小結(jié)及進一步設想
18、通過這次緊張的課程設計,我收獲頗多,每天面對著電腦,翻閱各種相關資料,體會頗深。短暫的單片機學習,有種意猶未盡之感,在這次課設中,加深了單片機相關知識的理解,之前的模棱兩可已經(jīng)不存在,這種感覺很好。在課設開始的前期,也遇到了麻煩,比如說,由于發(fā)送端和接收端的通信協(xié)議沒有做好,導致數(shù)據(jù)不能正確的傳輸,在解決問題的過程中,對于通信協(xié)議的協(xié)議有了深刻的認知。很感謝徐濤老師的耐心教導,他的幽默讓我們覺得親切,他的認真負責讓我們折服。在繁忙的一個學期即將結(jié)束之時,我的思想成熟了,這次的課設讓我找到了方向,讓我懂得了很多,有知識方面的,但大部分還是人格方面的。我相信,只要不放棄,只要努力,就一定可以!由于
19、時間緊促,自身水平有限,本論文還有許多部分未能詳細分析,在此僅作簡單了解和認識。本文采用的RS-232標準實現(xiàn)單片機與單片機之間的串行通信。RS-232是目前最常用的一種串行通訊接口。由于RS-232-C接口標準出現(xiàn)較早,難免有不足之處。主要表現(xiàn)在:1、接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL電平不容,故需使用電平轉(zhuǎn)換電路才能與TTL電路連接。2、傳輸速率較低,在異步傳輸時,波特率為20Kbps。3、接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。4、傳輸距離有限,最大傳輸距離標準值為50英尺,實際上也只能用在50米左
20、右。因此建議使用RS-485標準實現(xiàn),RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等優(yōu)點就使其成為首選的串行接口。參考文獻1 趙茂泰.智能儀器原理及應用.北京: 電子工業(yè)出版社,2004.72 張毅剛,劉杰.MCS51單片機原理及應用.哈爾濱: 哈爾濱工業(yè)大學出版社,2004.63 何立民.單片機應用技術選編.北京: 北京航天航空大學出版,2002.54 張軍,梅麗鳳.單片機原理接口技術.北京交通大學出版社,2006.55 張婧武,周靈彬.單片機系統(tǒng)的PROTEUS設計與仿真.北京: 電工出版社,2007.46 周佩玲,彭虎.微機原理與接口技術.北京: 電子工業(yè)出版社,200
21、5.47 李群芳,張士軍.單片微型計算機與接口技術.北京: 電子工業(yè)出版社,2008.5附錄I 元件清單元件名稱型號數(shù)量二合一微機教學實驗箱TDN86/511單片機AT89C512LEDArk SM470501K1接口芯片MAX232A2電容1uf8電阻51R1導線 若干附錄II 整體電路圖附錄III 源程序清單;發(fā)送數(shù)據(jù)采用查詢方式ORG 0000HAJMP STARTORG 0030HSTART:MOV 30H,#0C0H ;傳送的16個數(shù)據(jù)(0F) MOV 31H,#0F9H MOV 32H,#0A4H MOV 33H,#0B0H MOV 34H,#99H MOV 35H,#92H MO
22、V 36H,#82H MOV 37H,#0F8H MOV 38H,#80H MOV 39H,#90H MOV 3AH,#88H MOV 3BH,#83H MOV 3CH,#0C6H MOV 3DH,#0A1H MOV 3EH,#086H MOV 3FH,#08EH MOV TMOD,#20H ;定時器1置為方式2 MOV TH1,#0F4H ;裝載定時器初值,波特率2400 MOV TL1,#0F4H CLR EA SETB TR1 ;啟動定時器 MOV PCON,#00H MOV SCON,#50H ;設定串口方式1,且準備接收應答信號LOOP1:MOV SBUF,#0E1H ;發(fā)聯(lián)絡信號
23、JNB TI,$ ;等待一幀發(fā)送完畢 CLR TI ;允許再發(fā)送 JNB RI,$ ;等待2號機的應答信號 CLR RI ;允許再接收 MOV A,SBUF ;2號機應答后,瀆至A XRL A,#0E2H ;判斷2號機是否準備完畢 JNZ LOOP1 ;2號機未準備好,繼續(xù)聯(lián)絡LOOP2:MOV R0,#30H ;2號機準備好,設數(shù)據(jù)塊指針初值 MOV R7,#10H ;設定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗和單元LOOP3:MOV SBUF,R0 ;發(fā)送一個數(shù)據(jù)字節(jié) MOV A,R6 ADD A,R0 ;求校驗和 MOV R6,A ;保存校驗和 INC R0 JNB TI,$ CLR TI DJNZ R7,LOOP3 ;整個數(shù)據(jù)塊是否發(fā)送完畢 MOV SBUF,R6 ;發(fā)送校驗和 JNB TI,$ CLR TI JNB RI,$ ;等待2號機的應答信號 CLR RI MOV A,SBUF ;2號機應答,讀至A JNZ LOOP2 ;2號機應答”錯誤“,轉(zhuǎn)重新發(fā)送 RET ;2號機應答”正確“,返回 ;接收數(shù)據(jù)采用查詢方式ORG 0000HAJMP STARTORG 0030HSTART:MOV TMOD,#20H ;定時器1置為方式2 MOV TH1,#0F4H ;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學一年級100以內(nèi)口算題
- 小學三年級多位數(shù)加減法脫式計算練習題
- 銀行績效考核總結(jié)
- 航空航天行業(yè)會計工作總結(jié)
- 公益機構(gòu)后勤管理工作概述
- 班主任與家校溝通的藝術與實踐
- 2022年湖南省張家界市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2024年四川省阿壩自治州公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2024年吉林省白山市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 2024年湖南省常德市公開招聘警務輔助人員輔警筆試自考題1卷含答案
- 圍手術期血糖管理指南
- 國際經(jīng)濟學中文版(克魯格曼教材)課件
- 管理方案日間照料中心
- 2024福建省能化集團下屬古雷熱電有限責任公司社會招聘筆試參考題庫附帶答案詳解
- 江蘇省蘇州市2023-2024學年高一上學期期末學業(yè)質(zhì)量陽光指標調(diào)研政治試卷
- 廣東省中山市2023-2024學年七年級上學期期末英語試題
- 煤礦安全生產(chǎn)管理人員逢查必考題庫(500題)
- 2024大型活動標準化執(zhí)行手冊
- 上頜骨骨折的護理
- 上海市嘉定區(qū)2023-2024學年八年級上學期期末語文試題
- 《機械制造基礎》課件-第一章 車削加工
評論
0/150
提交評論