

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> PC機MCS-51單片機的串口通信</p><p><b> 1 引言</b></p><p><b> 1.1 選題背景</b></p><p> 在國內(nèi)外,以PC機作為上位機,單片機作為下位機的控制系統(tǒng)中,PC機通常以軟件界面進行人機交互,以串行通信方式與單片機進行積極交互,而單片機系統(tǒng)根
2、據(jù)被控對象配置相應(yīng)的前向,后向信息通道,工作時作為主控機測對象,作為被控機接受PC機監(jiān)督,指揮,定期或受命向上位機提供對象及本身的工作狀態(tài)信息。</p><p> 目前,隨著集成電路集成度的增加,電子計算機向微型化和超微型化方向發(fā)展,微型計算機已成為導(dǎo)彈,智能機器人,人類宇宙和太空和太空奧妙復(fù)雜系統(tǒng)不可缺少的智能部件。在一些工業(yè)控制中,經(jīng)常需要以多臺單片機作為下位機執(zhí)行對被控對象的直接控制,以一臺PC機為上位機
3、完成復(fù)雜的數(shù)據(jù)處理,組成一種以集中管理、分散控制為特點的集散控制系統(tǒng)。</p><p> 為了提高系統(tǒng)管理的先進性和安全性,計算機工業(yè)自動控制和監(jiān)測系統(tǒng)越來越多地采用集總分算系統(tǒng)。較為常見的形式是由一臺做管理用的上位主計算機(主機)和一臺直接參與控制檢測的下位機(單片機)構(gòu)成的主從式系統(tǒng),主機和從機之間以通訊的方式來協(xié)調(diào)工作。主機的作用一是要向從機發(fā)送各種命令及參數(shù):二是要及時收集、整理和分析從機發(fā)回的數(shù)據(jù),供
4、進一步的決策和報表。從機被動地接受、執(zhí)行主機發(fā)來的命令,并且根據(jù)主機的要求向主機回傳相應(yīng)煩人實時數(shù)據(jù),報告其運行狀態(tài)。</p><p> 用串行總線技術(shù)可以使系統(tǒng)的硬件設(shè)計大大簡化、系統(tǒng)的體積減小、可靠性提高。同時,系統(tǒng)的更改和擴充極為容易。MCS-51系列單片機,由于內(nèi)部帶有一個可用于異步通訊的全雙工的穿行通訊接口,陰齒可以很方便的構(gòu)成一個主從式系統(tǒng)。</p><p> 串口是計算機
5、上一種非常通用的設(shè)備通訊協(xié)議,大多數(shù)計算機包容兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通過用的通訊協(xié)議,很多GPIB兼容的設(shè)備也帶有RS-232口。同時串口通訊協(xié)議也可以用于獲取遠程采集設(shè)備數(shù)據(jù)。所以,深入的理解學(xué)習(xí)和研究串口通信相關(guān)知識是非常必要的。此次畢業(yè)設(shè)計選題為“PC機與MCS-51單片機的串口通訊”,使用51單片機來實現(xiàn)一個主從式的總線通訊系統(tǒng)。通過此次設(shè)計,對串口通訊的原理和應(yīng)用融會貫通,為以后的時間工作儲備知識和
6、研究方法。</p><p> 1.2 目的和意義</p><p> 為了提高系統(tǒng)管理的先進性和安全性,計算機工業(yè)自動控制和監(jiān)測系統(tǒng)越來越多地采用集總分算系統(tǒng)。較為常見的形式是由一臺做管理用的上位主計算機(主機)和一臺直接參與控制檢測的下位機(單片機)構(gòu)成的主從式系統(tǒng),主機和從機之間以通訊的方式來協(xié)調(diào)工作。主機的作用一是要向從機發(fā)送各種命令及參數(shù):二是要及時收集、整理和分析從機發(fā)回的數(shù)
7、據(jù),供進一步的決策和報表。從機被動地接受、執(zhí)行主機發(fā)來的命令,并且根據(jù)主機的要求向主機回傳相應(yīng)煩人實時數(shù)據(jù),報告其運行狀態(tài)。</p><p> 用串行總線技術(shù)可以使系統(tǒng)的硬件設(shè)計大大簡化、系統(tǒng)的體積減小、可靠性提高。同時,系統(tǒng)的更改和擴充極為容易。MCS-51系列單片機,由于內(nèi)部帶有一個可用于異步通訊的全雙工的穿行通訊接口,陰齒可以很方便的構(gòu)成一個主從式系統(tǒng)。</p><p> 串口是
8、計算機上一種非常通用的設(shè)備通訊協(xié)議,大多數(shù)計算機包容兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通過用的通訊協(xié)議,很多GPIB兼容的設(shè)備也帶有RS-232口。同時串口通訊協(xié)議也可以用于獲取遠程采集設(shè)備數(shù)據(jù)。所以,深入的理解學(xué)習(xí)和研究串口通信相關(guān)知識是非常必要的。此次畢業(yè)設(shè)計選題為“PC機與MCS-51單片機的串口通訊”,使用51單片機來實現(xiàn)一個主從式的總線通訊系統(tǒng)。通過此次設(shè)計,對串口通訊的原理和應(yīng)用融會貫通,為以后的時間工作儲備
9、知識和研究方法。</p><p> 1.3 國內(nèi)外發(fā)展現(xiàn)狀</p><p> 在國內(nèi)外,以PC機作為上位機,單片機作為下位機的控制系統(tǒng)中,PC機通常以軟件界面進行人機交互,以串行通信方式與單片機進行積極交互,而單片機系統(tǒng)根據(jù)被控對象配置相應(yīng)的前向,后向信息通道,工作時作為主控機測對象,作為被控機接受PC機監(jiān)督,指揮,定期或受命向上位機提供對象及本身的工作狀態(tài)信息。</p>
10、<p> 目前,隨著集成電路集成度的增加,電子計算機向微型化和超微型化方向發(fā)展,微型計算機已成為導(dǎo)彈,智能機器人,人類宇宙和太空和太空奧妙復(fù)雜系統(tǒng)不可缺少的智能部件。在一些工業(yè)控制中,經(jīng)常需要以多臺單片機作為下位機執(zhí)行對被控對象的直接控制,以一臺PC機為上位機完成復(fù)雜的數(shù)據(jù)處理,組成一種以集中管理、分散控制為特點的集散控制系統(tǒng)。</p><p><b> 2 系統(tǒng)分析</b>
11、;</p><p> 2.1 系統(tǒng)功能概述</p><p> 系統(tǒng)主要實現(xiàn)功能是:由PC機鍵盤的輸入發(fā)送給MCS-51單片機,單片機接收到PC機發(fā)來的數(shù)據(jù)后,回送同一數(shù)據(jù)給PC機,并在PC機屏幕上顯示出來。只要PC機屏幕上顯示的字符與鍵入的字符相同,即表明PC機與單片機間通信正常,紅外通信成功。</p><p> 微機與單片機紅外線通信系統(tǒng),由于我們本次畢業(yè)
12、設(shè)計采用的是紅外通信方式,考慮到紅外通信存在發(fā)射與接收之間的相互干擾,所以本次設(shè)計采用是半雙工(Half Duplex)串口通信,微機與單片機兩個部分。微機部分是通過串口RS-232的TXD口發(fā)送數(shù)據(jù),經(jīng)電平轉(zhuǎn)換電路之后送紅外發(fā)射電路發(fā)射出去,由單片機部分接收,并相應(yīng)的處理、顯示之后再經(jīng)紅外發(fā)射電路返回給PC機,PC機檢驗發(fā)送與接受是否一致,標(biāo)志著設(shè)計的成與敗。微機部分用Visual Basic軟件編寫的界面作為PC機部分與單片機進行串
13、口之間通信,其界面的設(shè)計、電平轉(zhuǎn)換電路和紅外發(fā)射、接收電路以及單片機部分的電路的設(shè)計等將在以下章節(jié)作詳細地設(shè)計。</p><p> 從實用的角度看,評價一個系統(tǒng)實用價值的重要標(biāo)準(zhǔn),就是這個系統(tǒng)對社會生活和科技觀念有多大的貢獻。隨著生活節(jié)奏的加快,人們將更加鐘情于個人信息終端的智能化互聯(lián)。另一方面,用無線設(shè)備來代替安全隱患的工作區(qū)采集數(shù)據(jù),更加安全。因此,紅外線有其不可估量的實用價值!</p>&l
14、t;p> 2.2 系統(tǒng)要求及主要內(nèi)容</p><p> 將微機中的二進制或ASCⅡ數(shù)據(jù)通過微機的RS-232串口經(jīng)紅外發(fā)射器發(fā)送緞帶單片機,再由單片機將接收的二進制或ASCⅡ數(shù)據(jù)通過串口經(jīng)紅外發(fā)射器發(fā)送給微機,在微機中檢查發(fā)送的二進制或ASCⅡ數(shù)據(jù)與接收到的二進制數(shù)據(jù)是否一致。</p><p> ?。?) 單片機部分主要完成接收微機發(fā)送的數(shù)據(jù)和將接收的數(shù)據(jù)回送給</p&g
15、t;<p><b> 機;</b></p><p> ?。?) 紅外發(fā)發(fā)射部分完成將微機或單片機發(fā)送的數(shù)據(jù)通過紅外發(fā)送給紅外接收器。</p><p> ?。?) 紅外接收部分主要完成接收紅外信號并將紅外信號轉(zhuǎn)換為數(shù)據(jù)送給計算機。</p><p> ?。?) PC機部分主要完成將數(shù)據(jù)的發(fā)送給單片機和接受單片機發(fā)送的數(shù)據(jù)。<
16、;/p><p> 2.3 系統(tǒng)技術(shù)指標(biāo)</p><p> 微機與單片機紅外線通信的主要完成以下功能:</p><p><b> 單片機部分:</b></p><p> (1)設(shè)計并制作單片機的串口通信的硬件系統(tǒng);</p><p> ?。?)用匯編語言編制串口通信軟件;</p>
17、<p> (3)要求把從微機發(fā)送來的原樣發(fā)送回微機;</p><p><b> 紅外發(fā)射部分:</b></p><p> ?。?)自行設(shè)計紅外發(fā)送器</p><p> (2)紅外發(fā)送距離大于50cm</p><p> ?。?)系統(tǒng)穩(wěn)定、抗干擾能力強</p><p><b>
18、; 紅外接收部分:</b></p><p> (1)自行設(shè)計紅外接收器</p><p> ?。?)紅外接收器的穩(wěn)定、抗干擾能力要強</p><p><b> PC機部分:</b></p><p> ?。?)在微機部分采用Visual Basic編制RS—232通信軟件</p><p&
19、gt; ?。?)通信軟件具有數(shù)據(jù)發(fā)送和數(shù)據(jù)接受編輯框</p><p> (3)通信軟件要實現(xiàn)發(fā)送數(shù)據(jù)與接受數(shù)據(jù)一致</p><p> 根據(jù)系統(tǒng)要實現(xiàn)的功能以及要求,要實現(xiàn)單片機和PC機之間的紅外通信,主要是實現(xiàn)上下微機之間能夠互通信息,而采用紅外通信,就是利用這種非電信號傳送控制信息和數(shù)據(jù)信息,省去了有線方式信號線的直接連接,屬完全隔離狀態(tài),安全可靠,能有效地隔離電氣干擾,同時使用簡單
20、,移動方便,實現(xiàn)了通信雙方非接觸式的數(shù)據(jù)傳送。它可以應(yīng)用于高壓、輻射、潮濕、有毒氣體、粉塵等不利于人們現(xiàn)場控制的環(huán)境下,這種紅外通信方案也可用于其它遙控、遙測的單片機應(yīng)用場合。紅外通信的重點在于信號的調(diào)制與解調(diào),完成低誤碼率、高速率的信息傳輸。目前紅外通信技術(shù)和集成技術(shù)的發(fā)展已將此方面做的比較平民化了。以普通的集成紅外頭為核心的紅外收發(fā)模塊即可完成此功能。單片機可通過編程控制外圍部件,能實現(xiàn)較高的自動化程度。</p>&l
21、t;p> 以它為系統(tǒng)核心的控制模塊可實現(xiàn)主從控制,完成預(yù)定的任務(wù)。系統(tǒng)的進一步升級是與上位機實現(xiàn)紅外通信,實現(xiàn)與整個網(wǎng)絡(luò)的連通,達到資源共享和遠程控制,這在當(dāng)今這個信息化的社會里是非常有價值的!</p><p><b> 3 系統(tǒng)總體設(shè)計</b></p><p> 3.1 硬件電路設(shè)計思路</p><p> 硬件設(shè)計的任務(wù)是根據(jù)
22、總體設(shè)計要求,在選擇的機型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計出系統(tǒng)的原理框圖、電路原理圖。</p><p> 89C51單片機通過普通I/O口與PC機RS-232串口實現(xiàn)通信的硬件接口電路如圖2 所示。由于PC 系列微機串行口為RS232C 標(biāo)準(zhǔn)接口,與輸入、輸出均采TTL 電平的89C51 單片機在接口規(guī)范上不一致,因此TTL 電平到RS-232 接口電平的轉(zhuǎn)換采用MAXIM 公司的MAX232
23、標(biāo)準(zhǔn)MAX232CPE接口芯片,該芯片可以用單電壓(+5V)實現(xiàn)RS232接口邏輯“1”(-3V~-15V)和邏輯“0”(+3V~+15V)的電平轉(zhuǎn)換。</p><p> (1) 單片機部分硬件設(shè)計思路:本次設(shè)計單片機部分的硬件框圖如圖3-1所示。</p><p> 圖3-1 單片機部分硬件框圖</p><p> (2) PC機部分硬件設(shè)計思路:PC機與單
24、片機之間的紅外數(shù)據(jù)收發(fā)裝置的結(jié)構(gòu)非常簡單,其結(jié)構(gòu)框圖如圖3-2所示。PC機及其兼容機的標(biāo)準(zhǔn)串行通信接口RS-232C有一個9芯的D型插座,該紅外收發(fā)裝置便是通過此接口插座與計算機連接,并由計算機通信軟件控制其數(shù)據(jù)的收發(fā),并由計算機通信軟件控制其數(shù)據(jù)的收發(fā)。由于數(shù)據(jù)的傳輸采用了38KHZ信號進行調(diào)制、解調(diào)和發(fā)射、接收,因而更加安全可靠。具體的電路原理圖將在第三章中作詳細地分析設(shè)計。</p><p> 圖3-2 P
25、C機部分硬件框圖</p><p> 3.2 軟件設(shè)計思路</p><p> 軟件需要解決的是設(shè)定PC機串口和單片機串行口的工作方式,包括串行口的通訊速率、奇偶校驗位、停止位等。</p><p><b> 軟件工作流程是:</b></p><p> PC機發(fā)送一個數(shù)據(jù)信號,通過紅外通信方式傳送到單片機,單片機接收
26、數(shù)據(jù)作相應(yīng)的處理后回送到PC機。經(jīng)測試,此系統(tǒng)可以在2400kbit/s速率下穩(wěn)定工作,比較理想。</p><p> (1) 單片機部分軟件設(shè)計思路: AT89C51單片機的P3.0 和P3.1 口分別串行通信的接收和發(fā)送端,其接口程序主要由INPUT 發(fā)送子程序和OUTPUT接收子程序組成。通信速率2400 bit /s,幀格式為N.8.1。發(fā)送時,先發(fā)送一個起始位(低電平),接著按低位在先的順序發(fā)送8 位數(shù)
27、據(jù),最后發(fā)送停止位。接收時,先判斷P3. 0 接收端口是否有起始低電平出現(xiàn),如有則按低位在先的順序接收8 位數(shù),最后判斷P3.0 口是否有停止高電平出現(xiàn),如有則完成一個數(shù)據(jù)接收,否則繼續(xù)等待。其中軟件編寫要嚴格按照異步通信的時序進行,每bit 位傳送時間間隔按通信速率2400 bit /s計算為833μs,系統(tǒng)要求單片機晶振為11.0592MHZ。</p><p> (2) PC機部分軟件設(shè)計思路:PC機有多種
28、支持串行通信的軟件,Visual Basic通信語句、C語言等等,本次畢業(yè)設(shè)計準(zhǔn)備采用Visual Basic語言來實現(xiàn)PC機部分的通信,VB具有面向?qū)ο蟮脑O(shè)計方法,友好的用戶界面,簡單方便的串行通訊和實用性強等優(yōu)點。</p><p><b> 4 硬件電路設(shè)計</b></p><p> 硬件的功能由總體設(shè)計所規(guī)定,硬件設(shè)計的任務(wù)是根據(jù)總體設(shè)計要求,在選擇的機型的
29、基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計出系統(tǒng)的電路原理圖,必要時做一些部件實驗,以難電路圖的正確性,以及工藝結(jié)構(gòu)的設(shè)計加工、印制板的制作、樣機的組裝等。</p><p> 根據(jù)本次畢業(yè)設(shè)計的要求以及要實現(xiàn)的功能,查閱了很多有關(guān)PC機與單片機之間通信的書籍以及紅外通信方面的知識,對硬件電路的設(shè)計做了很深刻的研究。</p><p> 我們將整個PC機與單片機之間的紅外通信系統(tǒng)分成三大
30、模塊:PC機模塊、紅外通信模塊(紅外發(fā)射和紅外接收)以及單片機模塊,各個模塊都承擔(dān)著各自的任務(wù)。</p><p> 在設(shè)計單片機模塊時,考慮到單片機本身并不具備紅外通信接口,利用單片機的串行接口與單片機外的紅外發(fā)射和接收電路,組成一個應(yīng)用于單片機系統(tǒng)的紅外串行通信接口;PC機通過RS-232進行數(shù)據(jù)的傳輸,考慮到PC微機串口的電平和單片機的輸入輸出的TTL電平不一致,在整個電路設(shè)計時要考慮電平轉(zhuǎn)換電路,除此之外
31、本系統(tǒng)的傳輸是采用的無線通信,因此還需要設(shè)計紅外發(fā)射與接收電路,具體每一部分的設(shè)計將在以下章節(jié)中詳細分析。</p><p> 4.1 單片機模塊</p><p> 根據(jù)系統(tǒng)功能要求以及單片機硬件電路設(shè)計思路(如圖2-1)對單片機模塊進行設(shè)計,要使單片機準(zhǔn)確的接收與發(fā)送,并且使接收到的數(shù)據(jù)能顯示出來,所以整個單片機部分分為時鐘電路、復(fù)位電路、執(zhí)行元件以及顯示電路四個部分。</p&
32、gt;<p> 4.1.1 執(zhí)行元件</p><p> 本次畢業(yè)設(shè)計的單片機部分的執(zhí)行元件我們采用MCS-51T系列的AT89C51(其引腳圖如圖4-1),由于它本身帶有一定的優(yōu)點。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單
33、片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器, AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> 圖4-1 AT89C51引腳圖</p><p> 一、主要特性:·與MCS-51
34、兼容 ·4K字節(jié)可編程閃爍存儲器 ·壽命:1000寫/擦循環(huán)· 數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0Hz-24Hz·三級程序存儲器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個16位定時器/計數(shù)器·5個中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時鐘電路</p&g
35、t;<p><b> 二、管腳說明:</b></p><p> (1)VCC:供電電壓;</p><p> (2)GND:接地;</p><p> (3)P0口:P0口為一個8位漏極開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/
36、地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> (4)P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
37、 (5)P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。
38、P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 (6)P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉</p><p> P3口也可作為AT89C51的一些特殊功能口,如下表4-1所示:</p><p>
39、 表4-1 P3口的第二功能</p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p> (7)RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> (8)ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。
40、在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 (9)/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器
41、取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 (10)/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 (11)XTAL1:反向</p&g
42、t;<p><b> 三、振蕩器特性:</b></p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p
43、><b> 四、芯片擦除:</b></p><p> 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工
44、作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。</p><p> 4.1.2 時鐘電路</p><p> 時鐘電路是計算機的心臟,它控制著計算機的工作節(jié)奏。MCS-51單片機允許的時鐘頻率是因型號而異的典型值為12MHZ</p><p> MCS-51內(nèi)部都有
45、一個反相放大器,XTAL1、XTAL2分別為反相放大器輸入和輸出端,外接定時反饋元件以后就組成振蕩器,產(chǎn)生時鐘送至單片機內(nèi)部的各個部件。AT89C51是屬于CMOS8位微處理器,它的時鐘電路在結(jié)構(gòu)上有別于NMOS型的單片機。</p><p> CMOS型單片機內(nèi)部(如AT89C51)有一個可控的負反饋反相放大器,外接晶振(或陶瓷諧振器)和電容組成振蕩器,圖4-2為CMOS型單片機時鐘電路框圖。振蕩器工作受/PD
46、端控制,由軟件置“1”PD(即特殊功能寄存器PCON.1)使/PD=0,振蕩器停止工作,整個單片機也就停止工作,以達到節(jié)電目的。清“0”PD,使振蕩器工作產(chǎn)生時鐘,單片機便正常運行。圖中SYS為晶振或陶瓷諧振器,振蕩器產(chǎn)生的時鐘頻率主要由SYS參數(shù)確定(晶振上標(biāo)明的頻率)。電容C1和C2的作用有兩個:其一是使振蕩器起振,其二是對振蕩器的頻率f起微調(diào)作用(C1、C2大,f變小),其典型值為30pF。</p><p>
47、; 圖4-2 CMOS型單片機時鐘電路框圖</p><p> 4.1.3 復(fù)位電路</p><p> 計算機在啟動運行時都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。</p><p> MCS-51單片機有一個復(fù)位引腳RST,它是史密特觸發(fā)輸入(對于CHMOS單片機,RST引腳的內(nèi)部有一個拉低電阻),當(dāng)振蕩
48、器起振后,該引腳上出現(xiàn)2個機器周期(即24個時鐘周期)以上的高電平,使器件復(fù)位,只要RST保持高電平,MCS-51保持復(fù)位狀態(tài)。此時ALE、PSEN、P0、P1、P2、P3口都 輸出高電平。RST變?yōu)榈碗娖胶螅顺鰪?fù)位,CPU從初始狀態(tài)開始工作。</p><p> 本次畢業(yè)設(shè)計采用的復(fù)位方式是自動復(fù)位方式。對于CMOS(AT89C51)單片機只要</p><p> 接一個電容至VCC即
49、可(見圖4-3)。在加電瞬間,電容通過電阻充電,就在RST端出現(xiàn)一定時間的高電平,只要高電平時間足夠長,就可以使MCS-51有效的復(fù)位。RST端在加電時應(yīng)保持的高電平時間包括VCC的上升時間和振蕩器起振的時間,Vss上升時間若為10ms,振蕩器起振的時間和頻率有關(guān)。10MHZ時約為1ms,1MHZ時約為10ms,所以一般為了可靠的復(fù)位,RST在上電進應(yīng)保持20ms以上的高電平。圖3-8中,RC時間常數(shù)越大,上電進RST端保持高電平的時間
50、越長。當(dāng)振蕩頻率為12MHZ時,典型值為C=10uf,R=8.2kΩ。</p><p> 若復(fù)位電路失效,加電后CPU從一個隨機的狀態(tài)開始工作,系統(tǒng)就不能正常運轉(zhuǎn)。</p><p> 圖4-3 上電復(fù)位電路</p><p> 4.1.4 顯示電路</p><p> 本次畢業(yè)設(shè)計的顯示電路采用LED數(shù)碼管動態(tài)顯示,LED(Light-
51、Emitting Diode)是一種外加電壓從而渡過電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時必須加限流電阻。LED有單個LED和八段LED之分,也有共陰和共陽兩種。</p><p><b> 一、顯示器結(jié)構(gòu)</b></p><p> 常用的七段顯示器的結(jié)構(gòu)如圖4-4(a)所示。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器(如圖4-4(b)所示),陰極
52、連在一起的稱為共陰極顯示器(如圖3-4(c)所示)。1位顯示器由八個發(fā)光二極管組成,其中七個發(fā)光二極管a~g控制七個筆畫(段)的亮或暗,另一個控制一個小數(shù)點的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡單,使用方便。</p><p> ?。╝)外形 (b)共陽極 (C)共陰極</p><p> 圖4-4
53、 七段發(fā)光顯示器的結(jié)構(gòu)</p><p><b> 二、顯示方式</b></p><p> 為了節(jié)省I/O口線,我們采用的動態(tài)顯示方式。</p><p> 所謂動態(tài)顯示,就一位一位地輪流點亮各位顯示器(掃描),對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點亮?xí)r間和間隔時間的比例有關(guān)。調(diào)整電流和時間參數(shù),可
54、實現(xiàn)亮度較高較穩(wěn)定的顯示。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需8位口(稱為掃描口),控制各位顯示器所顯示的字形也需一個8位口(稱為段數(shù)據(jù)口)。4位共陰極顯示器和AT89C51的接口邏輯如圖8-7所示。AT89C51的P0口作為段數(shù)據(jù)口,經(jīng)同相驅(qū)動器7407接顯示器的各個段;P2口作為掃描口,經(jīng)反相驅(qū)動器7406接顯示器公共極。</p><p> 對于圖4-5中的4位顯示器,在AT89C51RAM
55、存貯器中設(shè)置四個顯示緩沖器單元30H-34H,分別存放4位顯示器的顯示數(shù)據(jù),AT89C51的P2口掃描輸出總是只在一位為高電平,即4位顯示器中僅有一位公共陰極為低電平,其它位為高電平,AT89C51的P0口相應(yīng)位(陰極為低)的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個字符,其它們?yōu)榘?,依次地改變P2口輸出為高的位,P0口輸出對應(yīng)的段數(shù)據(jù),4位顯示器就顯示出由緩沖器中顯示數(shù)據(jù)所確定的字符。</p><p> 圖4-5
56、 4位動態(tài)顯示電路</p><p> 4.2 紅外通信(發(fā)射與接收)模塊</p><p> 紅外線通訊是一種廉價、近距離、無線、低功耗、保密性強的通訊方案,主要應(yīng)用于無線數(shù)據(jù)傳輸,有時也用于無線網(wǎng)絡(luò)接入和近程遙控。</p><p> 紅外通信的基本原理:紅外通信的基本原理是發(fā)送端將基帶二進制信號調(diào)制為一系列的脈沖串信號,通過紅外發(fā)射管發(fā)射紅外信號。紅外通信
57、是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通信信道。常用的有通過脈沖寬度來實現(xiàn)信號調(diào)制的脈寬調(diào)制(PWM)和通過脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制的脈時調(diào)制(PPM)兩種方法。本系統(tǒng)采用的為脈寬調(diào)制方法,發(fā)送端采用脈寬調(diào)制(PWM)方式,將二進制數(shù)字信號調(diào)制成某一頻率的脈沖序列,并驅(qū)動紅外發(fā)射管以光脈沖的形式發(fā)送出去;接收端將接收到的光脈轉(zhuǎn)換成電信號,再經(jīng)過放大、濾波等處理后送給解調(diào)電路進行解調(diào),還原為二進制數(shù)字信號后輸出
58、。簡而言之,紅外通信的實質(zhì)就是對二進制數(shù)字信號進行調(diào)制與解調(diào),以便利用紅外信道進行傳輸。</p><p> 單片機紅外通信系統(tǒng)(硬件原理圖見圖4-6)的紅外發(fā)射和紅外接收電路主要由單片機AT89C51、CD4011與非門、紅外發(fā)射管PH30B、紅外一體化接收頭SM0038(見圖4-7所示),以及驅(qū)動三極管8550、電阻和電容組成。我們將紅外通信模塊分為紅外發(fā)射和接收兩部分。</p><p&g
59、t; 圖4-6 單片機紅外通信硬件原理圖</p><p> (a) 紅外發(fā)射管 (b)紅外接收管</p><p> 圖4-7 紅外發(fā)射管和紅外一體化接收頭</p><p> 一、紅外發(fā)射硬件電路</p><p> 紅外線發(fā)射器由于控制方式不同,很難做到一體化,大多是由分力元件組裝而成。本章節(jié)
60、將重點講一下紅外線發(fā)射器電路原理圖見圖4-8所示。</p><p> 圖4-8 紅外發(fā)射電路原理圖</p><p> 紅外發(fā)送電路的工作原理為:串行數(shù)據(jù)由單片機的串行輸出端TXD(接圖中IN端)送出并驅(qū)動YF1,若數(shù)位“0”使YF1輸出高電平,通過YF2、YF3和電阻R2電容C組成的震蕩電路,將信號調(diào)制成38kHz的載波信號,并利用紅外發(fā)射管D以光脈沖的形式向外發(fā)送。若數(shù)位“1”YF1
61、輸出低電平,使YF2和YF3停止震蕩,使 YF4輸出高電平使驅(qū)動管8550截止,紅外發(fā)射管D不發(fā)射紅外光。</p><p> 二、紅外接收硬件電路</p><p> 紅外線接收器是紅外線通信成敗的關(guān)鍵所在,以前大多采用紅外線接收專用芯片CA20106A 以及外圍部分元器件(紅外線接收管、電阻、電容等)。實際使用時常出現(xiàn)接收靈敏度過高或過低,工作欠穩(wěn)定,加之裝配焊接麻煩、調(diào)試不便、體積大
62、、抗干擾能力較差等等,現(xiàn)已基本被淘汰。目前采用最多的是一種一體化的紅外線接收頭,體積小巧(外形類似三極管)、價格低廉、使用方便、無須調(diào)整、抗干擾能力強、工作穩(wěn)定可靠。紅外接收電路選用新日本株式會社公司生產(chǎn)的專用紅外一體化接收頭SM0038,集紅外線接收和放大于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,因此它適合于各種紅外線數(shù)據(jù)的傳輸,是代替CA20106A和接收二極管等紅外接收放大器的理想元件。
63、</p><p> 圖4-7(b)是其正視圖(半球面的紅外線接收面正對我們),三個輸出腳依次為: GND(地)、+(電源正端)、OUT(紅外線經(jīng)接收后經(jīng)解調(diào)、整形的輸出腳)。</p><p> 圖4-11 紅外接收基本電路</p><p> 根據(jù)SM0038的工作原理對其外圍電路進行設(shè)計,具體硬件原理圖見圖4-11所示,其中1端為接地腳,2端接電源,3端接信號
64、輸出端,R和C組成去耦電路抑制電源干擾。由于紅外一體化接收頭SM0038的靈敏度高,因此在實際應(yīng)用電路中要在電源和地之間外接上拉電阻來抗干擾。</p><p> 4.3 PC機模塊</p><p> 根據(jù)系統(tǒng)功能要求以及PC機硬件電路設(shè)計思路(如圖3-2所示)對PC機模塊進行設(shè)計,要使PC機通過紅外線準(zhǔn)確的接收與發(fā)送,必須要對其外圍電路進行設(shè)計。由于無線收發(fā)裝置工作于TTL邏輯電平
65、(0V和5V),而計算機RS-232總線上輸入、輸出數(shù)據(jù)和控制信號為+12V左右的電壓,因此用IC1(MAX232CPE)進行轉(zhuǎn)換。如圖4-12為PC機部分的電路原理圖。</p><p> 圖4-12 PC機收發(fā)數(shù)據(jù)電路原理圖</p><p><b> 一、數(shù)據(jù)的傳輸</b></p><p> 對所設(shè)計的原理圖進行分析,數(shù)據(jù)的傳輸分為兩大
66、部分:數(shù)據(jù)的發(fā)送和數(shù)據(jù)的接收。下面就兩部分作一下介紹。</p><p><b> 1、數(shù)據(jù)發(fā)送</b></p><p> 當(dāng)電路工作于發(fā)送數(shù)據(jù)狀態(tài)時,PC機的RTS端輸出高電平,經(jīng)IC1電平轉(zhuǎn)換打開IC3(74LS08)的與門B1,使PC機TXD端輸出的數(shù)據(jù)經(jīng)紅外發(fā)射電路發(fā)射出去;RTS信號IC1反相后作為CTS信號送入計算機,同時還關(guān)閉與門B2;使計算機不接收其
67、它數(shù)據(jù)信號。</p><p><b> 2、數(shù)據(jù)接收</b></p><p> 當(dāng)電路工作于接收數(shù)據(jù)狀態(tài)時,計算機的RTS端輸出和CTS端輸入均為低電平,使IC3的B1、B2的工作狀態(tài)正好相反,發(fā)射部分被B1封鎖,與門B2則打開使用權(quán)電路處于接收工作狀態(tài),從紅外接收端接收過來的數(shù)據(jù)由RXD端送處計算機。該必發(fā)器的數(shù)據(jù)傳輸速率最好設(shè)在2400b/s為宜,以確保數(shù)據(jù)傳
68、輸?shù)目煽啃浴?lt;/p><p><b> 二、器件的介紹</b></p><p><b> 1、RS-232C</b></p><p> RS-232C是美國電氣工業(yè)協(xié)會推廣使用的一種串得通信總路線標(biāo)準(zhǔn),是DCE(數(shù)據(jù)通信設(shè)備,如微機)和DTE(數(shù)據(jù)終端設(shè)備,如CRT)間傳輸串行數(shù)據(jù)的接口總線。</p>
69、<p> RS-232C最大傳輸距離為15m,最高傳輸速率約20kbps,信號的邏輯0電平為+3V~+15V。邏輯1電平為-3V~-15V。</p><p><b> 電氣特性:</b></p><p> EIA-RS-232C對電器特性、邏輯電平和各種信號線功能都作了規(guī)定;</p><p> 在TxD和RxD上:邏輯1(MA
70、RK) =-3V~-15V</p><p> 邏輯0(SPACE)=+3~+15V</p><p> 在RTS、CTS、DSR、DTR和DCD等控制線上:</p><p> 信號有效(接通,ON狀態(tài),正電壓)=+3V~+15V</p><p> 信號無效(斷開,OFF狀態(tài),負電壓)=-3V~-15V</p><p&
71、gt; 2、RS-232連接器DB-9</p><p> DB-9是RS-232信號線的連接器,其連接器的機械特性見圖(4-13),表 1所示RS-232信號線名稱、符號以及對應(yīng)在DB-9上的針腳號。</p><p> 圖4-13連接器的機械特性</p><p> 表3-1 RS-232信號線和DB-9引腳關(guān)系</p><p>
72、3、電平轉(zhuǎn)換器MAX232CPE</p><p> 由于RS-232C總線上傳輸?shù)男盘栠壿嬰娖脚cTTL邏輯電平差異很大,所以就存在這兩種電平的轉(zhuǎn)換問題,下面就介紹一下電平轉(zhuǎn)換器MAX232CPE。</p><p> MAX232CPE能將RS-232C電平轉(zhuǎn)換成TTL電平,也能將TTL電平轉(zhuǎn)換成RS-232C電平,只需單+5V供電,由內(nèi)部升高電路產(chǎn)生10V~+12V。內(nèi)部有兩個發(fā)送器(
73、TTL電平轉(zhuǎn)換為RS-232C電平)和兩個接收器(RS-232電平轉(zhuǎn)換為TTL電平)。MAX232CPE芯片引腳排列和外部元件連接線路如圖4-14所示。</p><p> 圖 4-14 MAX232CPE 電平轉(zhuǎn)換器及外接元件圖</p><p><b> 5 串行口通信技術(shù)</b></p><p> 在設(shè)計單片機與PC機程序時,PC機串口
74、和單片機串行口的設(shè)置是至關(guān)重要的一個環(huán)節(jié),所以在軟件設(shè)計前必須對串行口的通信技術(shù)作系統(tǒng)的研究。本章節(jié)是為軟件設(shè)計服務(wù)的。</p><p> 串行數(shù)據(jù)通信指數(shù)據(jù)是一位一位順序傳送的通信方式,它的突出優(yōu)點是只需一對傳送線(利用電話線就可作為傳送線),這樣就大大降低了傳送成本,特別適用于遠距離通信;其缺點是傳送速度較低。</p><p> 串行通信的主要特點:</p><
75、;p> ?串行通訊:一條信息的各位數(shù)據(jù)被逐位按順序傳送的通訊方式稱為串行通訊。</p><p> ?串行通訊的特點是:數(shù)據(jù)位傳送,傳按位順序進行,最少只需一根傳輸線即可完成,</p><p> ?成本低但送速度慢。串行通訊的距離可以從幾米到幾千米。</p><p> ?根據(jù)信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種。</p&g
76、t;<p><b> 如圖5-1所示。</b></p><p><b> 發(fā)送</b></p><p><b> 器甲</b></p><p><b> (a) 單工方式</b></p><p><b> 發(fā)送器</
77、b></p><p><b> 發(fā)送器</b></p><p><b> (b) 半雙工方式</b></p><p><b> 數(shù)據(jù)流</b></p><p><b> 發(fā)送器</b></p><p><b>
78、; 發(fā)送器</b></p><p><b> (C) 全雙工方式</b></p><p> 圖5-1 串行通信傳輸方式</p><p> 系統(tǒng)設(shè)計時采用半雙工方式通信,這主要是為了盡量避免紅外通信存在發(fā)射與接收之間的相互干擾。</p><p> 5.1 單片機串行口通信技術(shù)</p>
79、;<p> MCS-51單片機內(nèi)部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99H。這個通信口既可以用于網(wǎng)絡(luò)通信,亦可實現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在串行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口。</p>
80、<p> MCS-51單片機串行口寄存器結(jié)構(gòu)如圖5-3所示。SBUF為串行口的收發(fā)緩沖器,它是一個可尋址的專用寄存器,其中包含了接收器和發(fā)送器寄存器,可以實現(xiàn)全雙工通信。但這兩個寄存器具有同一地址(99H)。MCS-51的串行數(shù)據(jù)傳輸很簡單,只要向發(fā)送緩沖器寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù)。而從接收緩沖器讀出數(shù)據(jù)即可接收數(shù)據(jù)。</p><p> 此外,從圖5-3中可看出,接收緩沖器前還加上一級輸入移位寄存器
81、,MCS-51這種結(jié)構(gòu)目的在于接收數(shù)據(jù)時避免發(fā)生數(shù)據(jù)幀重疊現(xiàn)象,以免出錯,部分文獻稱這種結(jié)構(gòu)為雙緩沖器結(jié)構(gòu)。而發(fā)送數(shù)據(jù)時就不需要這樣設(shè)置,因為發(fā)送時,CPU是主動的,不可能出現(xiàn)這種現(xiàn)象。</p><p> 圖5-3 MCS-51串行口寄存器結(jié)構(gòu)</p><p><b> 1、波特率的設(shè)置</b></p><p> 要實現(xiàn)單片機與PC機的串
82、行通信,雙方的波特率必須一致.PC機串行通信的波特率參數(shù)通常為一些標(biāo)準(zhǔn)的參數(shù),可直接使用.因此實現(xiàn)MCS--51單片機和PC機的串行通信時,選擇MCS—51單片機串行通信的波特率至關(guān)重要.</p><p> 波特率根據(jù)串行口的工作方式不同而不同:</p><p> (1) 方式0波特率</p><p> 串行口方式0的波特率由振蕩器的頻率所確定:</p&
83、gt;<p> 方式0波特率=振蕩器頻率/12</p><p> (2) 方式2波特率</p><p> 串行口方式2的波特率由振蕩器的頻率和SMOD(PCON.7)所確定:</p><p> SMOD為0時,波特率等于振蕩器頻率的六十四分之一;SMOD為1時,波特率等于振蕩器的三十二分之一。</p><p> (3)
84、 方式1和方式3的波特率</p><p> 串行口方式1和方式3的波特率由定時器T1或T2(8051等單片機)的溢出率和SMOD所確定。T1和T2是可編程的,可以選的波特率范圍比較大,因此串串行口方式1和方式3是最常用的方式。</p><p> 當(dāng)定時器T1作為串行口的波特率發(fā)生器時,串行口方式1和方式3的波特率由下式確定:</p><p> 方式1和方式3波
85、特率=2SMOD*(T1溢出率)/32</p><p> SMOD為0時,波特率竽T1溢出三十分之一;SMOD為1時,波特率等于T1的六十四分之一。</p><p> 定時器T1作為時,應(yīng)禁止T1中斷。通常T1工作于定時方式(C/T=0),計數(shù)脈沖為振蕩器的十二分頻信號。也可以選擇外部T1(P3.5)上輸入脈沖作為T1計數(shù)信號(C/T=1)。T1的溢出率又和它的工作方式有關(guān),一般選方式
86、2定時,此時波特率的計算公式為:</p><p> 方式1和方式3波特率=2SMOD*Fosc/[32*12(256-(TH1))]</p><p> 表4-1 常用波特率</p><p> 注:定時器T1作波特率發(fā)生器,所以在程序設(shè)計時要注意到禁止T1中斷</p><p> 2、串行通信控制寄存器SCON</p>&l
87、t;p> SCON控制寄存器,它是一個可尋址的專用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98H,其結(jié)構(gòu)格式如下:</p><p> 表4-2 SCON寄存器結(jié)構(gòu)</p><p> 3、電源管理寄存器PCON</p><p> PCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器,單元地址是87H,其結(jié)構(gòu)格式如下:</p>
88、<p> 表4-3 PCON電源管理寄存器結(jié)構(gòu)</p><p> 在CHMOS型單片機中,除SMOD位外,其他位均為虛設(shè)的,SMOD是串行口波特率倍增位,當(dāng)SMOD=1時,串行口波特率加倍。系統(tǒng)復(fù)位默認為SMOD=0。</p><p> 4、中斷允許寄存器IE</p><p> 中斷允許寄存器在前一節(jié)中已闡述,這里重述一下對串行口有影響的位ES。E
89、S為串行中斷允許控制位,ES=1允許串行中斷,ES=0,禁止串行中斷。</p><p> 表4-4 IE中斷允許控制寄存器結(jié)構(gòu)</p><p> 5.2 PC機串口通信技術(shù)</p><p> PC機串行通信接口設(shè)計是整個PC機部分的重點,在本章節(jié)中將詳細分析串口的設(shè)計問題。</p><p><b> 通信芯片的選擇<
90、;/b></p><p> 由于RS-232C的邏輯電平兼容,因此為了TTL器件連接,必須進行電平轉(zhuǎn)換。MC1488和MC1489是RC-232C通信接口常用的集成電路轉(zhuǎn)換芯片,但他們是兩個獨立的驅(qū)動器和發(fā)送芯片,而且MC1488驅(qū)動器還需要外接正負電源,很不方便。目前市場上出現(xiàn)了一些新型的RS-232C電平轉(zhuǎn)換芯片MAXIM系列的產(chǎn)品,AXIM公司生產(chǎn)的MAX系列RS-232C收發(fā)器芯片。</p&
91、gt;<p><b> 波特率設(shè)置</b></p><p> PC機的波特率必須和單片機相匹配,所以只要單片機的波特率定了,PC機只要下圖5-4所示的界面中設(shè)置一下即可。</p><p> 圖5-4 波特率設(shè)置界面</p><p> 3、串行口工作方式的選擇</p><p> 為了確保數(shù)據(jù)傳輸無
92、誤,采用軟件握手的方式。即發(fā)送方給接收方傳送的一個數(shù)據(jù),接收方收到后再將這個數(shù)據(jù)發(fā)送回來,發(fā)送方將兩個數(shù)據(jù)比較,若二者相同則表示傳輸無誤,接著傳送下一個數(shù)據(jù)。所以不需要奇偶校驗,因此選擇串行口方式一工作即傳輸數(shù)據(jù)的格式為1位起始位,8位數(shù)據(jù)位,1位停止位。</p><p> 4、VB串口Mscomm控件</p><p> VB提供了串行端口控制Mscomm來為應(yīng)用程序提供串行通訊。該控
93、件屏蔽了通信過程中的底層操作,程序員可以設(shè)置、監(jiān)視Mscomm控件的屬性和事件,結(jié)合Timer控件即可完成對串行口的初始化和數(shù)據(jù)的輸入輸出工作。Mscomm控件的主要屬性如下:</p><p> ?。?)Commport 設(shè)置并返回通訊端口號。端口號可以設(shè)置為1~16的任何數(shù),如Mscomm.Commport=2表示設(shè)置當(dāng)前通訊端口為COM2。</p><p> ?。?)Setting 設(shè)
94、置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位。格式為Mscomm.Setting=String。String是一個包含四部分的字符串:第一部分為波特率;第二部分為奇偶校驗,N表示不校驗,M表示符號校驗,E表示偶校驗,O表示奇校驗,S表示空格校驗;第三部分為數(shù)據(jù)位數(shù),其可選值為4,5,6,7,8;第四部分為停止位位數(shù),其可選值為1,1.5,2。Setting屬性的缺省值為2400,N,8,1”。</p><p> (
95、3)Portopen 設(shè)置并返回通訊端口的狀態(tài),也可以打開和關(guān)閉端口。</p><p> ?。?)Input 從接收緩沖區(qū)返回和刪除字符。該屬性在運行時為只讀。</p><p> (5)InputLen 設(shè)置并返回每次Input屬性從接收緩沖區(qū)中讀取的字符數(shù)。InputLen屬性的缺省值為0。設(shè)置InputLen為0時,Input將讀取接收緩沖區(qū)的全部字符。</p><
96、;p> ?。?)Output 向傳送緩沖區(qū)寫數(shù)據(jù)。要傳送的數(shù)據(jù)可是文本數(shù)據(jù)或二進制數(shù)據(jù)。</p><p> ?。?)CommEvent 返回最近的通訊事件或錯誤。只要有通訊錯誤或事件發(fā)生錯誤時就會產(chǎn)生Oncomm事件。CommEvent屬性中存有該錯誤或事件的數(shù)值代碼。</p><p><b> 6 軟件設(shè)計</b></p><p>
97、 PC機與單片機間的通信,特別是PC機和多臺單片機構(gòu)成小型分布系統(tǒng)實現(xiàn)分級分布式控制得到了廣泛的應(yīng)用。本章闡述PC機與AT89C51間的雙機通信的匯編語言和Visual Basic 語言通信程序設(shè)計技術(shù)。</p><p> 軟件需要解決的是設(shè)定PC機串口和單片機串行口的工作方式,包括串行口的通訊速率、奇偶校驗位、停止位等。本次設(shè)計,以PC機為主機,單片機AT89C51作為從機,具體的通信協(xié)議如下:</p&
98、gt;<p> · 波特率設(shè)置:2400b/s;</p><p> · 信息幀格式:1位起始位,8位數(shù)據(jù)位,1位停止位;</p><p> · 校驗方式:采用無校驗方式;</p><p> · 傳送方式:PC機采查詢方式接收和發(fā)送數(shù)據(jù),單片機AT89C51采用中斷方式接收與發(fā)送數(shù)據(jù)。</p>
99、<p> 6.1 單片機通信程序設(shè)計</p><p> 單片機的數(shù)據(jù)通信由串行口完成,定時器T1作為波特率發(fā)生器,其波特率要與PC機一致。數(shù)據(jù)的傳送格式為1位起始位、8位數(shù)據(jù)位和1位停止位。采用中斷方式發(fā)送和接收數(shù)據(jù),定時器T1設(shè)置為工作工作模式2,串行口設(shè)置為工作方式3,由第9位判斷停止。具體的程序流程圖和程序清單分別見附錄2和附錄3。</p><p> 6.1.1
100、 單片機中斷方式接收程序</p><p> 當(dāng)PC機不發(fā)送任何數(shù)據(jù)的時候,從機單片機始終處于等待狀態(tài)(P.),直到PC</p><p> 機發(fā)送數(shù)據(jù)過來。由于PC機在發(fā)送有效數(shù)據(jù)之前會加一個開始符(FFH),在有效數(shù)據(jù)之后會加一個開始符(7FH),所以單片機接收到主機發(fā)送來的FFH之后,置RAM存貯單元的初始地址30H單元,用來放緊接著接收的數(shù)據(jù),程序中還用了一個計數(shù)器COUNTER來
101、計接收到的數(shù)據(jù)位數(shù),直到接收到7FH為止。程序框圖見附錄2。</p><p> 單片機接收主程序MAIN及中斷服務(wù)程序STR清單如下:</p><p> COUNTER EQU 40H</p><p> POINT EQU 41H</p><p><b> ORG 0000H</b></p>&
102、lt;p><b> LJMP MAIN</b></p><p><b> ORG 0023H</b></p><p><b> LJMP SRT</b></p><p> MAIN:MOV SP,#60H</p><p> MOV TMOD,#20H ;
103、定時器T1的方式2</p><p> MOV PCON,#00H ;串行口波特率控制位</p><p> MOV TH1,#0F4H ;2400Kb/s</p><p> MOV TL1,#0F4H</p><p> MOV 30H,#15</p><p> MOV COUNTER,#1<
104、;/p><p> MOV R0,#30H ;接收數(shù)據(jù)存放區(qū)</p><p> MOV R1,#30H</p><p> SETB TR1 ;開始計數(shù)</p><p> CLR ET1 ;清定時中斷</p><p> MOV SCON,#50H ;串行口控制
105、寄存器給值</p><p> SETB EA ;開總中斷</p><p> SETB ES ;開串行口中斷</p><p> MOV IP,#10H</p><p> MAIN1: ACALL DISP</p><p> SJMP MAIN1</p>&l
106、t;p> SRT: PUSH ACC</p><p><b> PUSH 01H</b></p><p> JBC RI,GET</p><p><b> SJMP EXIT</b></p><p> GET: MOV A,SBUF</p><p> C
107、JNE A,#0FFH,GET1 ;判斷是否為開始字符,不是跳GET1放數(shù)據(jù)存貯 MOV R0,#30H ;是開始符就置存貯區(qū)首地址30H,計數(shù)器清0并跳出中斷</p><p> MOV COUNTER,#0</p><p> SJMP EXIT</p><p> GET1: CJNE A,#07FH,GET2 判斷是否為結(jié)束符,不是跳
108、GET2放數(shù)據(jù)存貯區(qū) MOV R5,COUNTER ;是結(jié)束符,放發(fā)送緩存區(qū)開始字符</p><p> INC R5 </p><p> MOV POINT,#30H</p><p> MOV SBUF,#255</p><p><b> SJMP EXIT&
109、lt;/b></p><p> GET2: MOV @R0,A</p><p><b> INC R0</b></p><p> INC COUNTER </p><p> EXIT: POP 01H</p><p><b> POP ACC</b></
110、p><p><b> RETI</b></p><p> 6.1.2 單片機中斷方式發(fā)送程序</p><p> 由于本次設(shè)計的系統(tǒng)要實現(xiàn)的功能是將PC機送到單片機的數(shù)據(jù)回送到PC機,所以單片機要在接收完P(guān)C機數(shù)據(jù)后立即將數(shù)據(jù)回送到PC機。也就是說要將RAM存貯單元的初始地址30H單元內(nèi)數(shù)據(jù)逐一發(fā)送出去。程序框圖見附錄2。</p>
111、<p> 單片機發(fā)送主程序MAIN及中斷服務(wù)程序SEND清單如下:</p><p> COUNTER EQU 40H</p><p> POINT EQU 41H</p><p><b> ORG 0000H</b></p><p><b> LJMP MAIN</b>&
112、lt;/p><p><b> ORG 0023H</b></p><p><b> LJMP SRT</b></p><p> MAIN:MOV SP,#60H</p><p> MOV TMOD,#20H ;定時器T1的方式2</p><p> MOV PCO
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機與pc機的串口通信畢業(yè)論文
- 單片機與pc機的串口通信畢業(yè)論文
- 51單片機畢業(yè)論文--基于mcs-51單片機的步進電機系統(tǒng)
- mcs-51單片機的串行通信口
- 畢業(yè)論文——mcs-51單片機溫度控制系統(tǒng)
- mcs-51單片機結(jié)構(gòu)介紹
- mcs-51單片機串行接口
- pc機與單片機串口通信
- 單片機串口通信畢業(yè)論文
- 實驗單片機與pc機串口通信
- mcs-51單片機結(jié)構(gòu)和原理
- mcs-51單片機存儲器結(jié)構(gòu)
- 單片機與pc機串口通信實現(xiàn)
- mcs-51系列單片機課程設(shè)計
- mcs-51單片機溫度控制系統(tǒng)
- mcs-51單片機結(jié)構(gòu)及原理題解
- mcs-51單片機匯編指令集
- 畢業(yè)設(shè)計---mcs-51單片機測溫系統(tǒng)的設(shè)計
- 基于51單片機的串口通訊系統(tǒng)畢業(yè)論文
- MCS-51單片機溫度控制系統(tǒng).doc
評論
0/150
提交評論