單片機(jī)串口通信設(shè)計(jì)方案_第1頁(yè)
單片機(jī)串口通信設(shè)計(jì)方案_第2頁(yè)
單片機(jī)串口通信設(shè)計(jì)方案_第3頁(yè)
單片機(jī)串口通信設(shè)計(jì)方案_第4頁(yè)
單片機(jī)串口通信設(shè)計(jì)方案_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)串口通信設(shè)計(jì)方案1.緒論1.1課題背景及意義目前,單片機(jī)的發(fā)展速度大約每?jī)伞⑷暌乱淮啥仍黾右槐?,功能翻一番。其發(fā)展速度之快、應(yīng)用圍之廣已達(dá)到了驚人的地步,它已滲透到生產(chǎn)和生活的各個(gè)領(lǐng)域,應(yīng)用非常廣泛。在汽車、通信、智能儀表、家用電器和軍事設(shè)備的智能化以及實(shí)時(shí)過(guò)程控制等方面,單片機(jī)都扮演著非常重要的角色1。因此單片機(jī)的設(shè)計(jì)開(kāi)發(fā)具有廣闊的前景。所以,對(duì)于電氣類學(xué)生而言,學(xué)習(xí)一種單片機(jī)的開(kāi)發(fā)是十分必要的。而51系列的單片機(jī),隨著半導(dǎo)體技術(shù)的發(fā)展,其處理速度更快,性能更優(yōu)越,在工業(yè)控制領(lǐng)域上占據(jù)十分重要的地位,通過(guò)對(duì)51系列單片機(jī)的學(xué)習(xí)而掌握單片機(jī)開(kāi)發(fā)的過(guò)程是一種不錯(cuò)的選擇。然而單片

2、機(jī)是一門綜合性、實(shí)踐性都很強(qiáng)的學(xué)科,其學(xué)習(xí)涉及的實(shí)驗(yàn)環(huán)節(jié)比較多,硬件設(shè)備投入比較大,對(duì)于大多數(shù)人而言很難投入大筆資金去購(gòu)買實(shí)驗(yàn)器件。而且要進(jìn)行硬件電路測(cè)試和調(diào)試,必須在電路板制作完成、元器件焊接完畢之后進(jìn)行,但這些工作費(fèi)時(shí)費(fèi)力。因此引入EDA軟件仿真系統(tǒng)建立虛擬實(shí)驗(yàn)平臺(tái),不僅可以大大提高單片機(jī)的學(xué)習(xí)效率,而且大大減少硬件設(shè)備的資金投入,同時(shí)降低對(duì)硬件設(shè)備的維護(hù)工作。EDA設(shè)計(jì)思路是:從元器件的選取到連接、直至電路的調(diào)試、分析和軟件的編譯,都是在計(jì)算機(jī)中完成,所用的工作都是虛擬的。雖然現(xiàn)在的電路設(shè)計(jì)軟件已經(jīng)很多,諸如PROTEL、ORCAD、EWB、Multisim等,不過(guò)這些軟件之間的差別都不

3、大:都有原理圖和PCB制作功能,都能進(jìn)行諸如頻率響應(yīng),噪音分析等電路分析,主要用于模擬電路、數(shù)字電路、模數(shù)混合電路的性能仿真與分析,但對(duì)于單片機(jī)設(shè)計(jì)及軟件編程,最重要的是兩者的聯(lián)調(diào),這些軟件都無(wú)法實(shí)現(xiàn),所以造成了單片機(jī)系統(tǒng)設(shè)計(jì)周期長(zhǎng)、設(shè)計(jì)費(fèi)用高等缺點(diǎn)広。新款的EDA軟件Proteus解決了上述軟件的不足,成為目前最好的一款單片機(jī)學(xué)習(xí)仿真軟件。Proteus軟件是由英國(guó)LabCenterElectronics公司開(kāi)發(fā)的EDA工具軟件。Proteus軟件已有近20年的歷史,在全球已得到相當(dāng)廣泛的使用。Proteus軟件集成了高級(jí)原理布圖、混合模式SPICE電路仿真、PCB設(shè)計(jì)以及自動(dòng)布線來(lái)實(shí)現(xiàn)一個(gè)

4、完整的電子設(shè)計(jì)系統(tǒng)oProteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。同時(shí),當(dāng)硬件調(diào)試成功后,利用ProteusARES軟件,很容易獲得其PCB圖,為今后的系統(tǒng)制造提供了方便。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象34。Proteus軟件支持許多通用的微控制器,如PCI系列、AVR系列、HC11系列、68000系列、Z80系列、8051

5、系列以及各種外圍芯片;包含強(qiáng)大的調(diào)試工具,具有對(duì)寄存器和存儲(chǔ)器,斷點(diǎn)和單步模式IAR、C-SPY、Keil、MALAB等開(kāi)發(fā)工具的源程序進(jìn)行調(diào)試的功能;能夠觀察代碼在仿真硬件上的實(shí)時(shí)運(yùn)行效果、對(duì)顯示、按鈕、鍵盤等外設(shè)的交互可視化進(jìn)行仿真;具有6000多種模擬和數(shù)字器件的模型庫(kù);具有單步斷點(diǎn)設(shè)置等調(diào)試功能;能夠與常用的匯編器、編譯器如IAR、Keil、Proton等協(xié)同調(diào)試;有直流電流表/電壓表、交流電壓表/電流表、示波器邏輯分析儀、計(jì)數(shù)/按時(shí)/頻率計(jì)虛擬終端、SPI調(diào)試器等虛擬儀器,以仿真中的測(cè)量記錄提供了方便;支持圖形化的分析功能,具有頻率特性、傅立葉、失真、噪聲分析等多種繪圖方式、可將仿真

6、曲線精美地繪制出來(lái)3。Keil是KeilSoftware公司開(kāi)發(fā)的,是目前世界上最好的51單片機(jī)開(kāi)發(fā)工具之一。軟件本身支持?jǐn)?shù)百種51系列單片機(jī)機(jī)芯,可以用來(lái)編譯C源碼、匯編程序、連接和重定位目標(biāo)文件和庫(kù)文件、創(chuàng)建HEX文件、調(diào)試目標(biāo)程序等,是一種集成化文件管理編譯環(huán)境。它集成了文件編譯處理、編譯連接、項(xiàng)目管理,窗口、工具引用和軟件仿真調(diào)試等多種功能,是相當(dāng)強(qiáng)大的的開(kāi)發(fā)工具5。ProteusISIS與Keil整合起來(lái)使用,充分利用各自的仿真功能,單片機(jī)的軟硬件的調(diào)試和仿真,將變得非常直觀和生動(dòng)。國(guó)外的很多知名大學(xué)已經(jīng)開(kāi)始使Proteus作為他們的教學(xué)工具,比如StanfordUniversity

7、,UniversityOfCalifornia,CambridgeUniversity,Carlislecollege,理工大學(xué),大學(xué),華南理工大學(xué),工程大學(xué)等幾十所高校。他們一致認(rèn)為該軟件在教學(xué)中的應(yīng)用有很大的幫助,其靈活自主的設(shè)計(jì)方式使學(xué)生更能體驗(yàn)到電子設(shè)計(jì)的魅力,學(xué)生對(duì)單片機(jī)以及電子設(shè)計(jì)的興趣大大提升,知識(shí)的掌握和應(yīng)用當(dāng)然也有了很大的提高。雖然Proteus在單片機(jī)的學(xué)習(xí)和應(yīng)用系統(tǒng)的開(kāi)發(fā)上有著諸多的優(yōu)點(diǎn),但是在國(guó)的發(fā)展才幾年的時(shí)間,其應(yīng)用還未普及。因此,通過(guò)Proteus仿真平臺(tái)學(xué)習(xí)51系列單片機(jī)之間的串口通信,是對(duì)EDA軟件Proteus的使用過(guò)程的學(xué)習(xí),也為以后利用該軟件進(jìn)行電子設(shè)計(jì)

8、與開(kāi)發(fā)打下一定的基礎(chǔ),以跟上現(xiàn)代科技的快車去適應(yīng)激烈競(jìng)爭(zhēng)的環(huán)境。串行通信是CPU與外界交換信息的一種基本方式,單片機(jī)應(yīng)用于數(shù)據(jù)采集或工業(yè)控制時(shí),往往作為前端機(jī)安裝在工業(yè)現(xiàn)場(chǎng),遠(yuǎn)離主機(jī),現(xiàn)場(chǎng)數(shù)據(jù)采用串行通信方式發(fā)送給主機(jī)并進(jìn)行處理,以降低成本,提高通信的可靠性。51系列單片機(jī)自身有全雙工的異步串行通信接口,實(shí)現(xiàn)串行通信極為方便。既可通過(guò)一臺(tái)計(jì)算機(jī)來(lái)控制和監(jiān)視多臺(tái)單片機(jī)系統(tǒng),也可實(shí)現(xiàn)多臺(tái)單片機(jī)之間的互聯(lián),組成不同的控制系統(tǒng),適應(yīng)不同的應(yīng)用場(chǎng)合6。實(shí)現(xiàn)單片機(jī)之間的串口通信所涉及單片機(jī)的知識(shí)點(diǎn)多,概括了單片機(jī)的定時(shí)器/計(jì)數(shù)器功能、中斷功能和串行通信功能等,是單片機(jī)功能的綜合應(yīng)用。通過(guò)Proteus對(duì)單

9、片機(jī)串行通信的仿真和調(diào)試,不僅是對(duì)51單片機(jī)知識(shí)的綜合學(xué)習(xí),也是熟悉Proteus軟件的應(yīng)用過(guò)程。1.2設(shè)計(jì)的主要任務(wù)本論文要求在理解串行通信基本知識(shí)、學(xué)習(xí)并掌握51單片機(jī)的結(jié)構(gòu)組成、指令系統(tǒng)、C語(yǔ)言程序設(shè)計(jì)、熟悉Ke訂軟件的編程與調(diào)試環(huán)境以及掌握Proteus仿真軟件的使用環(huán)境、元器件調(diào)用、虛擬儀器應(yīng)用、原理圖設(shè)計(jì)、仿真調(diào)試的基礎(chǔ)上,完成以下4項(xiàng)任務(wù):1、總結(jié)單片機(jī)串口通信的基本知識(shí)和設(shè)計(jì)要求,對(duì)單片機(jī)串口通信的各種控制方案進(jìn)行比較,選擇一個(gè)合適的控制方案;2、根據(jù)課題的設(shè)計(jì)要求,在Proteus仿真環(huán)境中設(shè)計(jì)單片機(jī)串口通信硬件電路;3、在Keil環(huán)境中編制串口通信控制程序,并進(jìn)行編譯調(diào)試;

10、4、在Proteus仿真環(huán)境中調(diào)用硬件電路,加載控制程序,并進(jìn)仿真調(diào)試。1.3論文的主要容在本論文中,設(shè)計(jì)的主要容有五個(gè)方面:一是串行通信控制系統(tǒng)方案的選擇;二是系統(tǒng)硬件電路的設(shè)計(jì);三是系統(tǒng)軟件設(shè)計(jì);四是系統(tǒng)軟件設(shè)計(jì);五是系統(tǒng)仿真與調(diào)試;六是系統(tǒng)硬件PCB設(shè)計(jì)。具體章節(jié)安排如下:1、緒論在課題的背景及意義中介紹單片機(jī)發(fā)展現(xiàn)狀、單片機(jī)EDA軟件Proteus的優(yōu)勢(shì)、Keil集成開(kāi)發(fā)環(huán)境軟件簡(jiǎn)介以及單片機(jī)通信的描述;此外,還簡(jiǎn)單的說(shuō)明介紹了本文設(shè)計(jì)的主要任務(wù)以及論文的主要容。2、系統(tǒng)方案設(shè)計(jì)主要論述通信的基本知識(shí)和系統(tǒng)的方案選擇。系統(tǒng)的方案選擇主要包括控制器的選擇、串行通信方式比較與方案選擇、顯示

11、方案比較與選擇、編寫程序語(yǔ)言比較和選擇、串行控制方案確定以及系統(tǒng)框圖繪制。3、系統(tǒng)硬件設(shè)計(jì)根據(jù)控制系統(tǒng)方案在ProteusISIS原理圖編輯環(huán)境中繪制系統(tǒng)硬件電路,主要包括原理圖文件的創(chuàng)建、圖紙大小的設(shè)置、原理圖中元器件的選取、元器件的放置、電源、地、和輸入輸出終端的放置、原理圖連線、器件統(tǒng)一編號(hào)、電氣檢測(cè)以及元器件屬性設(shè)置等容。4、系統(tǒng)軟件設(shè)計(jì)主要介紹了在Keil集成開(kāi)發(fā)環(huán)境中進(jìn)行C51語(yǔ)言的編寫過(guò)程、控制系統(tǒng)程序的編寫以及程序流程圖繪制。5、系統(tǒng)仿真與調(diào)試完成控制系統(tǒng)在ProteusISIS環(huán)境中的仿真與調(diào)試,主要是根據(jù)仿真結(jié)果驗(yàn)證硬件原理圖以及軟件編寫的是否正確。6、系統(tǒng)硬件PCB設(shè)計(jì)完

12、成串行通信單片機(jī)最小系統(tǒng)原理圖設(shè)計(jì)與PCB繪制。通過(guò)以上六個(gè)方面的闡述說(shuō)明,將會(huì)對(duì)單片機(jī)串行通信控制系統(tǒng)基于Proteus的設(shè)計(jì)、開(kāi)發(fā)與仿真過(guò)程以及電路板制作有一個(gè)清晰全面的認(rèn)識(shí)。系統(tǒng)方案設(shè)計(jì)本文的題目是“基于Proteus的51單片機(jī)應(yīng)用一一單片機(jī)串行通信設(shè)計(jì)”,主要是通過(guò)單片機(jī)串行通信控制系統(tǒng)的設(shè)計(jì),來(lái)闡述和實(shí)踐51單片機(jī)的應(yīng)用在Proteus虛擬實(shí)驗(yàn)平臺(tái)的仿真和調(diào)試過(guò)程。由于題目沒(méi)有給出具體的系統(tǒng)功能要求,因此有很大的設(shè)計(jì)空間。為了很好地在Proteus虛擬實(shí)驗(yàn)平臺(tái)上展示51單片機(jī)串行通信的結(jié)果,需要自行設(shè)計(jì)方案。2.1通信概述及串行通信方式選擇單片機(jī)串行通信在本系統(tǒng)設(shè)計(jì)中十分重要,是設(shè)

13、計(jì)的核心部分,為此需要在此對(duì)通信部分做一些介紹。2.1.1通信的基本概念通信是計(jì)算機(jī)系統(tǒng)中主機(jī)與外設(shè)之間及主機(jī)系統(tǒng)與主機(jī)系統(tǒng)之間的數(shù)據(jù)交換。通信有并行通信和串行通信兩種基本方式。兩種基本通信方式如圖2.1所示。O1_u_u1_u_u1計(jì)直機(jī)0O1_u_u1_u_u1計(jì)直機(jī)01001計(jì)算機(jī)外計(jì)算機(jī)或外設(shè)泗*-畑)并行通信(b)串行謹(jǐn)信圖2.1并行通信與串行通信并行通信的特點(diǎn)就是將多個(gè)數(shù)據(jù)位同時(shí)進(jìn)行傳輸。通信速度快,但傳輸?shù)臄?shù)據(jù)有多少位,就相應(yīng)地有多少根傳輸線,傳輸信號(hào)線多,傳輸距離較遠(yuǎn)時(shí)線路復(fù)雜,成本高,較適合于短距離的數(shù)據(jù)通信。串行通信的特點(diǎn)就是只用一根數(shù)據(jù)線進(jìn)行傳輸,多位數(shù)據(jù)必須在一根數(shù)據(jù)線

14、上順序地進(jìn)行傳送。傳輸線少,通信線路簡(jiǎn)單,通信速度慢,成本低,適合于多數(shù)位、長(zhǎng)距離通信的場(chǎng)合。串行通信按照信息在設(shè)備間的傳輸方向,還可分為單工、半雙工和全雙工三種方式。分別如圖2.2所示。在串行通信中,通信雙方在任一時(shí)刻,只能單方向的傳送數(shù)據(jù),這樣的傳送方法稱為單工方式。如圖2.2(a)所示,通信方甲機(jī)只能作為發(fā)送方,而通信方乙機(jī)只能作為接收方,不能互換。通信雙方可通過(guò)傳輸線交替地進(jìn)行雙向傳輸,每個(gè)通信方都可以作為發(fā)送方或接收方,但在任一時(shí)刻,不能同時(shí)作為發(fā)送方和接收方,這樣的通信方甲機(jī)(A)單工傳送Ml乙機(jī)行滄半觀工傳送1甲機(jī)(A)單工傳送Ml乙機(jī)行滄半觀工傳送1岌醫(yī)器1一甲機(jī)XT岌醫(yī)器1乙

15、機(jī)接收器寸Q液工伎送圖2.2通信方式示意圖式稱為半雙工方式。如圖2.2(b)所示,通信方甲機(jī)和通信方乙機(jī)都可以作為發(fā)送方或接收方,但在任一時(shí)刻,不能同時(shí)作為發(fā)送方和接收方,通軟件或硬件設(shè)定。通信雙方通過(guò)兩條傳輸線進(jìn)行互連,兩者之間的數(shù)據(jù)可以同時(shí)進(jìn)行發(fā)送和接收,這樣的通信方式稱為全雙工方式。如圖2.2(c)所示,通信方甲機(jī)和通信方乙機(jī)同時(shí)可以作為發(fā)送方和接收方。AT89C51單片機(jī)在硬件上具有全雙工的結(jié)構(gòu)。在實(shí)際應(yīng)用中,盡管多數(shù)串行通信接口電路具有全雙工功能,單一般情況下,多工作于半雙工方式下。因此,為了能夠綜合展示單片機(jī)串行通信的的應(yīng)用,本系統(tǒng)采用半雙工方式。串行通信中要解決好發(fā)送設(shè)備與接收設(shè)

16、備之間的同步問(wèn)題,否則會(huì)造成某些數(shù)據(jù)位的丟失而通信失敗。根據(jù)采用的同步方式的不同,將串行通信進(jìn)一步分為同步串行通信和異步串行通信兩種。異步串行通信方式是將傳輸?shù)臄?shù)據(jù)按照某種位數(shù)進(jìn)行分組(通常以8位的字節(jié)為單位),在每組數(shù)據(jù)的前面和后面分別加上一位起始位和一位停止位,根據(jù)需要還可以在停止位前加一位校驗(yàn)位,并且停止位的長(zhǎng)度還可以增加。這樣組合而成的一組數(shù)據(jù)被稱為一幀。異步串行通信的數(shù)據(jù)傳送格式如圖2.3所示。圖2.3圖2.3串行異步通信數(shù)據(jù)格式異步串行通信方式的結(jié)構(gòu)簡(jiǎn)單,但是數(shù)據(jù)的傳送量增加很多,導(dǎo)致傳輸效率不高,一般用在對(duì)傳輸速率要求不高的應(yīng)用中。同步串行通信方式不再以字節(jié)為單位,而是以數(shù)據(jù)塊為

17、單位,每個(gè)數(shù)據(jù)塊可以有多個(gè)字節(jié)構(gòu)成,只在每個(gè)數(shù)據(jù)塊的前后加上起始位和停止位,這樣減少了需要額外傳輸?shù)目刂茢?shù)據(jù)的長(zhǎng)度,自然也就提高了傳輸?shù)男?。同步串行通信的?shù)據(jù)傳送格式如圖2.4所示。同步字符1同步字符2數(shù)據(jù)塊校驗(yàn)字符1校驗(yàn)字符1圖2.4串行同步通信數(shù)據(jù)格式同步通信方式的軟硬件的復(fù)雜程度也隨之上升,價(jià)格比較昂貴,一般只在傳輸速率要求較高系統(tǒng)使用。因此本系統(tǒng)采用異步串行通信。波特率是串行通信中的一個(gè)重要概念,它用于衡量串行通信速度的快慢。波特率是指在串行通信中,單位時(shí)間里傳輸?shù)亩M(jìn)制代碼的位數(shù),單位是b/s或bps(位/秒)。例如:每秒鐘傳輸120個(gè)字符,每個(gè)字符由10個(gè)二進(jìn)制位(其中1個(gè)起始位

18、、8個(gè)數(shù)據(jù)位和一個(gè)停止位),其波特率為120字符/秒X10位/字符=1200位/秒。在異步串行通信中,波特率一般為50-9600bps。在串行傳輸中,二進(jìn)制數(shù)據(jù)序列是以數(shù)字波形表示的,發(fā)送時(shí),在發(fā)送時(shí)鐘的作用下將移位寄存器的數(shù)據(jù)串行移位輸出;接收時(shí),在接收時(shí)鐘的作用下將通信線上傳來(lái)的數(shù)據(jù)串行移入移位寄存器。所以,發(fā)送時(shí)鐘和接收時(shí)鐘也可稱為移位時(shí)鐘,能產(chǎn)生該時(shí)鐘的電路稱為波特率發(fā)送器。為了提高采樣的分辨率,準(zhǔn)確地測(cè)定數(shù)據(jù)位的上升沿或下降沿,時(shí)鐘頻率總是高于波特率若干倍,這個(gè)倍數(shù)稱為波特率因子。在單片機(jī)中,發(fā)送/接收時(shí)鐘可以由系統(tǒng)時(shí)鐘fosc產(chǎn)生,其波特率因子可為12、32和64,根據(jù)方式而不同。

19、此時(shí)波特率由fosc決定,稱為固定方式頻率方式;也可由單片機(jī)部定時(shí)器T1產(chǎn)生,T1工作于自動(dòng)再裝入8位定時(shí)方式(方式2)。由于定時(shí)器的計(jì)數(shù)初值可以人為改變,T1產(chǎn)生的時(shí)鐘頻率也可以改變,因此稱為可變波特率方式。當(dāng)然,也可以用用T2作為波特率發(fā)生器7。51系列單片機(jī)串行口的功能51單片機(jī)的串口是一個(gè)可編程的全雙工串行通信接口,通過(guò)軟件編程,它可以作為通用異步接收和發(fā)送UART使用,可以同時(shí)發(fā)送、接收數(shù)據(jù)。發(fā)送、接收數(shù)據(jù)可以通過(guò)查詢或中斷方式處理,使用十分靈活,能方便的與其他計(jì)算機(jī)或串行傳送信息的外部設(shè)備(如串行打印機(jī)、CRT終端)實(shí)現(xiàn)雙機(jī)、多機(jī)通信。其幀格式為:1個(gè)起始位,8或9個(gè)數(shù)據(jù)位和1個(gè)停

20、止位。51單片機(jī)的串口也可以作為同步移位寄存器。51單片機(jī)的串口有4種工作方式,分別是方式0、方式1、方式2、方式3。其中:方式0,為同步移位寄存器方式,一般用于外接移位寄存器芯片擴(kuò)展I/O接口;方式1,是8位的異步通信方式,通常用于雙機(jī)通信。方式2和方式3,是9位的異步通信方式,通常用于多機(jī)通信。不同的工作方式,其波特率不一樣,方式0和方式2的波特率直接由系統(tǒng)時(shí)鐘產(chǎn)生,方式1和方式3的波特率由定時(shí)器/計(jì)數(shù)器T1或T2的溢出頻率決定。51系列單片機(jī)的串行結(jié)構(gòu)51系列的單片機(jī)串行口主要由發(fā)送數(shù)據(jù)寄存器、發(fā)送控制器、輸出控制門、接收數(shù)據(jù)寄存器、接收控制器和輸入移位寄存器等組成,它的結(jié)構(gòu)如圖2.5所

21、示:內(nèi)部總線I皴特率發(fā)生器(F密0)內(nèi)部總線I皴特率發(fā)生器(F密0)圖2.551單片機(jī)串行口結(jié)構(gòu)圖串行通信數(shù)據(jù)寄存器SBUF,字節(jié)地址為99H,實(shí)際對(duì)應(yīng)兩個(gè)寄存器:發(fā)送數(shù)據(jù)寄存器、接收數(shù)據(jù)寄存器。當(dāng)CPU向SBUF寫數(shù)據(jù)時(shí)對(duì)應(yīng)的是發(fā)送數(shù)據(jù)寄存器;當(dāng)CPU讀SBUF時(shí),對(duì)應(yīng)的是接收數(shù)據(jù)寄存器。特殊功能寄存器SC0N用于存放串行口的控制信息和狀態(tài)信息。根據(jù)對(duì)其寫控制字決定工作方式,從而決定波特率發(fā)生器的時(shí)鐘來(lái)自系統(tǒng)時(shí)鐘還是來(lái)自定時(shí)器T1或T2。特殊功能寄存器PCON的最高位SMOD為串行口波特率的倍增控制位。51單片機(jī)的串行口正是通過(guò)對(duì)上述專用寄存器的設(shè)置、檢測(cè)與讀寫來(lái)管理串行通信的。在進(jìn)行通信時(shí)

22、,外界的串行數(shù)據(jù)是通過(guò)引腳RXD(P3.0)輸入的。輸入數(shù)據(jù)先逐位進(jìn)入輸入移位寄存器,再送入接收SBUF,在此采用了雙緩沖結(jié)構(gòu),這是為了避免在接收到第二幀數(shù)據(jù)之前,CPU未及時(shí)響應(yīng)接收器的前一幀的中斷請(qǐng)求而把前一幀數(shù)據(jù)讀走,造成兩幀數(shù)據(jù)重疊的錯(cuò)誤。對(duì)于發(fā)送器,因?yàn)榘l(fā)送時(shí)CPU是主動(dòng)的,不會(huì)產(chǎn)生寫重疊的問(wèn)題,一般不需要雙緩沖器結(jié)構(gòu),為了保持最大的傳送速率,僅用了SBUF一個(gè)緩沖器。TI和RI為發(fā)送和接收中斷標(biāo)志,無(wú)論哪個(gè)為1,只要中斷允許,都會(huì)引起中斷851系列單片機(jī)串口工作原理設(shè)有兩個(gè)單片機(jī)串行通信,甲機(jī)發(fā)送,乙機(jī)接收,如圖2.6所示。圖2.651單片機(jī)串彳丁傳送示意圖發(fā)送數(shù)據(jù)時(shí),當(dāng)執(zhí)行一條向

23、SBUF寫入數(shù)據(jù)時(shí)把數(shù)據(jù)寫入串口發(fā)送數(shù)據(jù)寄存器,就啟動(dòng)發(fā)送過(guò)程。串行通信中,甲機(jī)CPU向SBUF寫入數(shù)據(jù)(MOVSBUF,A),就啟動(dòng)發(fā)送過(guò)程。在發(fā)送時(shí)鐘控制下,先發(fā)送一個(gè)低電平的起始位,緊接著把A中的數(shù)據(jù)送入SBUF,在發(fā)送控制器的控制下,按設(shè)定的波特率,每來(lái)一個(gè)移位時(shí)鐘,數(shù)據(jù)移出移一位,由低位到高位一位一位發(fā)送到電纜線上,移出的數(shù)據(jù)位通過(guò)電纜線直達(dá)乙機(jī)。最后發(fā)送一個(gè)高電平的停止位。一個(gè)字符發(fā)送完畢,串行口控制寄存器中的發(fā)送中斷標(biāo)志位T1置位。(對(duì)于方式2和方式3,當(dāng)發(fā)送完數(shù)據(jù)位后,要把串行口控制寄存器SCON中的TB8位發(fā)送出去后才能發(fā)送停止位)。乙機(jī)按設(shè)定的波特率,每來(lái)一個(gè)移位時(shí)鐘及移入

24、一位,由低位到高位一位一位移入到SBUF。一個(gè)移出,一個(gè)移進(jìn),很顯然,如果兩邊的移位速度一致,甲機(jī)移出的數(shù)據(jù)位正好被乙機(jī)移進(jìn),就能完成數(shù)據(jù)的正確傳送;如果不一致,則必然會(huì)造成數(shù)據(jù)位的丟失。因此,兩邊的波特率必須一致。當(dāng)甲機(jī)一幀數(shù)據(jù)發(fā)送完畢(或稱發(fā)送緩沖器空),硬件置位發(fā)送中斷標(biāo)志位TI(SCON.1),該位可作為查詢標(biāo)志,如果設(shè)置為允許中斷,則將引起中斷,甲機(jī)的CPU可發(fā)送下一幀數(shù)據(jù)。作為接受方的乙機(jī),需預(yù)先設(shè)置位REN(SCON.4),即允許接收。當(dāng)REN置位1,接收控制器就開(kāi)始工作,對(duì)接收數(shù)據(jù)線進(jìn)行采樣,當(dāng)采樣到從“1”到“0”的負(fù)跳變時(shí),接收控制器開(kāi)始接收數(shù)據(jù)。為了減少干擾的影響,接收控

25、制器在接收數(shù)據(jù)時(shí),將一位的傳送時(shí)間分成16等分,用當(dāng)中的7、8、9三個(gè)狀態(tài)對(duì)接收數(shù)據(jù)線進(jìn)行采樣,三次采樣當(dāng)中,當(dāng)兩次采樣為低電平時(shí),就認(rèn)為接收的是“0”,兩次采樣為高電平,就認(rèn)為接收是“1”。如果接收是起始位的值不是“0”,則起始位無(wú)效,復(fù)位接收電路;如果起始位為“0”,則開(kāi)始接受其它數(shù)據(jù)。甲方的數(shù)據(jù)按設(shè)定的波特率由地位到高位順序進(jìn)入乙機(jī)的移位寄存器。當(dāng)一幀數(shù)據(jù)到齊(接收緩沖器滿)后(接收的前8位數(shù)據(jù)依次移入輸入移位寄存器,接收是第9位數(shù)據(jù)置入串口控制寄存器的RB8位中),硬件自動(dòng)置位接收中斷標(biāo)志RI(SCON.0),通知CPU來(lái)取數(shù)據(jù)。該位可作為查詢標(biāo)志,如果設(shè)置為允許中斷,將引起接收中斷,

26、乙機(jī)的CPU可通過(guò)讀SBUF(MOVA,SBUF),將幀數(shù)據(jù)讀入,從而完成了一幀數(shù)據(jù)的傳送。無(wú)論是單片機(jī)之間,還是單片機(jī)和PC機(jī)之間,串行通信雙方的波特率必須相同,才能完成數(shù)據(jù)的正確傳送751系列單片機(jī)多機(jī)通信多機(jī)應(yīng)用是指在一個(gè)系統(tǒng)中用到了多塊單片機(jī)。它是單片機(jī)在高科技領(lǐng)域的主要應(yīng)用,主要用于一些大型的自動(dòng)化控制系統(tǒng)。這時(shí)整個(gè)系統(tǒng)分成了多個(gè)子系統(tǒng),每個(gè)子系統(tǒng)是一個(gè)單片機(jī)系統(tǒng),用于完成本系統(tǒng)的工作,即從上級(jí)主機(jī)接收信息,并發(fā)送信息給上級(jí)主機(jī)。上級(jí)主機(jī)則根據(jù)接收的下級(jí)子系統(tǒng)的信息,進(jìn)行判斷,產(chǎn)生相應(yīng)的處理命令傳送給下級(jí)子系統(tǒng)。通過(guò)51單片機(jī)串口能夠?qū)崿F(xiàn)一臺(tái)主機(jī)與多臺(tái)從機(jī)進(jìn)行通信,主機(jī)和從機(jī)之間能夠

27、相互發(fā)送和接收信息。主機(jī)可以向各個(gè)從機(jī)或指定的從機(jī)發(fā)送信息,各個(gè)從機(jī)發(fā)送的信息只能被主機(jī)接收,但從機(jī)與從機(jī)之間不能相互通信。單片機(jī)串行多機(jī)通信必須使用串口模式2和模式3。在多機(jī)通信中,為了保證主機(jī)能夠正確識(shí)別所選是從機(jī)并進(jìn)行通信,主,從機(jī)需要正確地設(shè)置和判斷多機(jī)通信控制位SM2和發(fā)送/接收的第9位信息,TB8,RB8。主機(jī)在發(fā)送信息時(shí),依靠TB8標(biāo)志位來(lái)區(qū)分發(fā)送的信息為地址信息還是數(shù)據(jù)信息。當(dāng)設(shè)置TB8=1,時(shí),發(fā)送的是地址信息;當(dāng)設(shè)置TB8=0時(shí),發(fā)送的是數(shù)據(jù)或者命令信息。從機(jī)主要依靠SM2標(biāo)志位的設(shè)置來(lái)實(shí)現(xiàn)對(duì)主機(jī)的響應(yīng)。當(dāng)從機(jī)的SM2=1時(shí),該從機(jī)只接受地址幀,對(duì)數(shù)據(jù)幀不進(jìn)行處理,即只有接

28、收的RB8位等于1數(shù)據(jù)時(shí),接收才有效,RI才置1,對(duì)接收的RB8位等于0的數(shù)據(jù)不進(jìn)行處理。當(dāng)SM2二0時(shí),無(wú)論接收的是地址幀TB8=1還是數(shù)據(jù)幀RB8=0,接收都有效,RI都置1。多級(jí)通信時(shí),主機(jī)每一次都向從機(jī)傳送至少兩字節(jié)信息,先傳送從機(jī)的地址信息,再傳送數(shù)據(jù)信息。處理時(shí),地址信息的TB8位設(shè)為1,數(shù)據(jù)信息的TB8位設(shè)為0。硬件線路如圖2.7所示。圖2.7多機(jī)通信線路圖單片機(jī)多機(jī)通信的過(guò)程如下:1所有從機(jī)復(fù)位,置SM2=1,使其處于準(zhǔn)備接收一幀地址數(shù)據(jù)的狀態(tài);主機(jī)設(shè)置第9位TB8=1,發(fā)送一幀地址信息,與所需要的從機(jī)進(jìn)行聯(lián)系;各從機(jī)接收到地址信息后,分別于自己的地址進(jìn)行比較,對(duì)于地址相符的從

29、機(jī),置SM2=0,以便于接收主機(jī)隨后發(fā)送的所有信息;對(duì)于地址不相符的從機(jī),仍保持SM2=1,對(duì)主機(jī)隨后發(fā)送的數(shù)據(jù)不進(jìn)行處理。主機(jī)發(fā)送控制指令和數(shù)據(jù)給從機(jī),此時(shí)一幀數(shù)據(jù)的第9位TB8=0。當(dāng)從機(jī)接收數(shù)據(jù)結(jié)束的時(shí)候,置SM2=1,返回接收地址幀狀態(tài)。6主機(jī)繼續(xù)發(fā)送其它地址幀,與其它從機(jī)進(jìn)行通信。多機(jī)通信協(xié)議約定:主機(jī)為了正確地和指定的從機(jī)正確的通信,雙方需要對(duì)各種數(shù)據(jù)、地址、指令和狀態(tài)等進(jìn)行明確的約定。本系統(tǒng)的通信協(xié)議作如下規(guī)定:主機(jī)的控制命令:01H表示主機(jī)請(qǐng)求從機(jī)接收數(shù)據(jù);02H表示主機(jī)請(qǐng)求從機(jī)發(fā)送數(shù)據(jù)。其它保留,可定義其它用途。從機(jī)的地址定義在00H到FEH之間,即系統(tǒng)中最多允許連接255個(gè)

30、從機(jī)。對(duì)于地址FFH定義為對(duì)所有從機(jī)都有效的控制命令,用于將各從機(jī)恢復(fù)到復(fù)位狀態(tài),即SM2=1。按照上面的協(xié)議規(guī)定:主機(jī)首先發(fā)送地址幀,被尋址的從機(jī)向主機(jī)回送本地地址。從機(jī)的狀態(tài)格式;D7D6D5D4D3D2DIDOEKR0000ntDYKKDY從機(jī)接到非法命令TKDY-1:冊(cè)機(jī)發(fā)送準(zhǔn)備完畢居D=t:從機(jī)接收準(zhǔn)備完畢主機(jī)判斷地址是否相符,然后給被尋址的從機(jī)發(fā)送控制命令,被尋址的從機(jī)根據(jù)其命令向主機(jī)發(fā)送本地機(jī)狀態(tài)。若主機(jī)判斷狀態(tài)正常,即開(kāi)始發(fā)送或接收數(shù)據(jù),后面緊跟的便是數(shù)據(jù),若主機(jī)判斷不正常,需要重新聯(lián)系。為了能夠?qū)崿F(xiàn)多單片機(jī)之間的數(shù)據(jù)傳送,本系統(tǒng)米用多機(jī)通信模式8910。2.2模塊化方案比較與

31、選擇根據(jù)51單片機(jī)的串行通信的特點(diǎn),進(jìn)行了以下系統(tǒng)設(shè)計(jì)的方案比較與選擇。2.2.1單片機(jī)芯片的方案選擇方案一:采用MCS-51芯片,MCS-51是Intel公司單片機(jī)的典型代表,部有4KBROM空間。其結(jié)構(gòu)典型、總線完善、SFR集中管理,并且具有豐富的位操作系統(tǒng)和面向控制功能的指令系統(tǒng)11。但是,MCS-51系列單片機(jī)在實(shí)際應(yīng)用中使用較少。方案二:采用AT89C51芯片作為硬件核心,AT89系列機(jī)是ATMEL公司將先進(jìn)的Flash存儲(chǔ)器技術(shù)和Intel80C51單片機(jī)相結(jié)合的產(chǎn)物,是與MCS-51系列兼容的Flash單片機(jī)系列。它既繼承了MCS-51原有的功能,又擁有自己是獨(dú)特功能是目前應(yīng)用廣

32、泛的主流單片機(jī)AT89C51是AT89系列的標(biāo)準(zhǔn)型單片機(jī),是低功耗高性能的8位單片機(jī),使用的最高晶振頻率為24MHz。采用FlashROM,部具有4KBROM存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,可反復(fù)進(jìn)行系統(tǒng)實(shí)驗(yàn)12。因此,采用該單片機(jī)作為主控制系統(tǒng)的芯片。顯示模塊方案選擇方案一:采用LED數(shù)碼管動(dòng)態(tài)掃描丄ED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字合適,采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),雖然占用的單片機(jī)口線少,但連線還需要花費(fèi)一點(diǎn)時(shí)間,所以也不用此種作為顯示。方案二:采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太

33、浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字、圖形、符號(hào)顯示多樣,清晰可見(jiàn)。由于本系統(tǒng)主機(jī)顯示4個(gè)數(shù)據(jù),從機(jī)顯示2個(gè)數(shù)據(jù),選擇162的液晶顯示器皆可,所以在此設(shè)計(jì)中采用LCD1602液晶顯示屏。軟件編程語(yǔ)言的選擇方案一:采用匯編語(yǔ)言編寫,匯編語(yǔ)言是一種用文字助記符來(lái)表示機(jī)器指令的符號(hào)語(yǔ)言,是最接近機(jī)器碼的一種語(yǔ)言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是匯編語(yǔ)言可讀性差,而且不同的CPU,其匯編語(yǔ)言可能有所差異,也不易移植。因此本系統(tǒng)軟件不采用匯編語(yǔ)言編寫。方案二:采用C語(yǔ)言編寫,C語(yǔ)言是一種結(jié)構(gòu)化的高級(jí)語(yǔ)言。其優(yōu)點(diǎn)

34、是可讀性好,移植容易,是普遍使用的一種計(jì)算機(jī)語(yǔ)言。用C語(yǔ)言來(lái)編寫目標(biāo)系統(tǒng)軟件,會(huì)大大縮短開(kāi)發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。缺點(diǎn)是占用資源較多,執(zhí)行效率沒(méi)有匯編高。但本系統(tǒng)只進(jìn)行單片機(jī)之間的數(shù)據(jù)傳送,不涉及復(fù)雜的數(shù)據(jù)處理,因此本系統(tǒng)軟件采用C語(yǔ)言編寫。總體方案設(shè)計(jì)本系統(tǒng)是由一個(gè)上位機(jī)系統(tǒng)和三個(gè)下位機(jī)系統(tǒng)構(gòu)成,上位機(jī)系統(tǒng)是由AT89C51單片機(jī)串行通信最小系統(tǒng)、LCD1602顯示器、中斷發(fā)送信號(hào)按鈕和接收/發(fā)送選擇開(kāi)關(guān)組成。三個(gè)下位機(jī)系統(tǒng)的構(gòu)成完全相同主要有AT89C51單片機(jī)串行通信最小系統(tǒng)、LCD1602顯示器和中斷數(shù)據(jù)加1按鈕組成。單片

35、機(jī)最小系統(tǒng)是控制系統(tǒng)的核心,LCD1602液晶顯示器作為串行通信接收/發(fā)送數(shù)據(jù)以及單片機(jī)狀態(tài)的顯示。上位機(jī)系統(tǒng)的發(fā)送/接收狀態(tài)可以通過(guò)接收/發(fā)送選擇開(kāi)關(guān)進(jìn)行控制,處于發(fā)送數(shù)據(jù)狀態(tài)時(shí),由中斷發(fā)送信號(hào)按鈕決定是否給從機(jī)發(fā)送數(shù)據(jù)。下位機(jī)系統(tǒng)始終處于串行中斷狀態(tài),是接收還是發(fā)送數(shù)據(jù)由上位機(jī)發(fā)送的控制命令決定。系統(tǒng)框圖如圖2.8所示。圖2.8串行通信系統(tǒng)框圖本系統(tǒng)主要完成的功能是上位機(jī)和下位機(jī)的半雙工通信,可以通過(guò)接收/發(fā)送選擇開(kāi)關(guān)來(lái)控制上位機(jī)是處于接收狀態(tài)還是發(fā)送狀態(tài)。當(dāng)處于接收狀態(tài)時(shí),主機(jī)循環(huán)接收下位機(jī)00#、01#、02#三機(jī)的實(shí)時(shí)數(shù)據(jù),并進(jìn)行顯示;當(dāng)處于發(fā)送狀態(tài)時(shí),主機(jī)將接收到的三機(jī)數(shù)據(jù)按從大到

36、小的數(shù)據(jù)排列,然后依次發(fā)送到00#、01#和02#機(jī)上,并進(jìn)行顯示。從機(jī)的數(shù)據(jù)通過(guò)外部中斷輸入,數(shù)據(jù)從0開(kāi)始每來(lái)一次中斷數(shù)據(jù)加1,加到9數(shù)據(jù)清0,再?gòu)?到9進(jìn)行循環(huán)。2.4本章小結(jié)本章介紹了系統(tǒng)的方案選擇,主要對(duì)單片機(jī)串行通信的相關(guān)知識(shí)進(jìn)行了歸納整理和工作方式選擇,以及模塊化方案的比較與選擇,最后確定了串行通信控制系統(tǒng)要實(shí)現(xiàn)的功能并繪制了系統(tǒng)框圖。系統(tǒng)硬件設(shè)計(jì)根據(jù)總體設(shè)計(jì)方案框圖,總系統(tǒng)由4個(gè)分系統(tǒng)組成,1個(gè)上位機(jī)系統(tǒng),3個(gè)下位機(jī)系統(tǒng)。硬件主要由AT89C51微控制器、LCD1602液晶顯示器、開(kāi)關(guān)和按鈕組成。3.1硬件電路核心器件介紹本系統(tǒng)的兩大核心器件位AT89C51單片機(jī)和LCD液晶顯示

37、器,AT89C51單片機(jī)完成系統(tǒng)的功能控制部分,液晶顯示器完成通信過(guò)程中數(shù)據(jù)的實(shí)時(shí)顯示。AT89C51的主要特點(diǎn)AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS的8位單片機(jī),采用單一+5V電源供電,片含4KB的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ROM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元。功能強(qiáng)大AT89C51單片機(jī)可提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。AT89C51的主要部件:(1)一個(gè)以ALU為中心的8位中央處理器,完成

38、運(yùn)算和控制功能。(2)128B的部數(shù)據(jù)存取存儲(chǔ)器(部RAM),其地址空圍00H-7FH。(3)21個(gè)特殊功能寄存器,離散分布于地址80H-FFH中。(4)程序計(jì)數(shù)器PC,是獨(dú)立的16位專用寄存器,容為將要執(zhí)行的指令地址。(5)4KBFlash部程序存儲(chǔ)器(片ROM),用來(lái)存儲(chǔ)程序、原始數(shù)據(jù)、表格等。(6)4個(gè)8位可編程I/O口(P0、P1、P2和P3)。(7)一個(gè)UART串行通信口。(8)2個(gè)16位定時(shí)器/計(jì)數(shù)器。(9)5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)的中斷控制系統(tǒng)。(10)一個(gè)片振蕩器和時(shí)鐘電路。AT89C51的極限參數(shù)如表1所示:表1AT89C51的極限參數(shù):工作溫度儲(chǔ)藏溫度任一引腳對(duì)地電壓最髙

39、工作電壓直流輸出電流-55C到+125C-65C到-55C到+125C-65C到+150C1.0V到H+7.0V6.6V15.0mA(1)電源引腳Vcc(40):接DC電源端,Vcc=+5V20%。GND(20):接地端。(2)P0-P3引腳P0口:是一組8位漏極開(kāi)路型雙向I/O,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“1”可作為高阻抗輸入端用。P1口:是一個(gè)帶部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。作輸入口使用時(shí),因?yàn)椴看嬖谏侠娮?,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)

40、。P2口:是一個(gè)帶有部上拉電阻的8位雙向I/O其引腳說(shuō)明如下:234567sIB1215143119is517其引腳說(shuō)明如下:234567sIB1215143119is517161EAjVPBESETnrrL(P33:inTr:n:F32:iBDTE3.7:iPl.uEl.lPl2Pl3Pl.4PlJFl.CPl.7KTAllAT3837363534333221222324252627284020lU113029P0.1i:M:1:ipid:AI:P0.4i;M:4;iP0-5i:M:5:iVCC|?1WjXE-TRQgPSEMP2.0i:AS:iPA1i:A5:iP23(A10jT1(P3J

41、onrciP23(A11JTO呼4)丄M.+(A123F2J(A13JP2.i5i;A14;iP2.T(A1JJ口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”通過(guò)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)椴看嬖谏侠娮?,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。P3口:是一組帶有部上拉電阻的8位雙向I/O口,P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。作輸入端時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的1/0口線外,更重要的用途是它的第二功能,如表2所示:表2P3口的第二功能:端口

42、引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P33INT1(外中斷1)P3.4T0(定時(shí)/計(jì)數(shù)器0)P3.5T1(定時(shí)/計(jì)數(shù)器1)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)(3)時(shí)鐘引腳XTAL1(19):振蕩器反相放大器的及部時(shí)鐘發(fā)生器的輸入端。XTAL2(18):振蕩器放大器的輸出端。(4)控制線引腳RST(9):復(fù)位輸入端。此引腳出現(xiàn)至少兩個(gè)機(jī)器周期的高電平,將單片機(jī)復(fù)位。ALE/(PROG)(30):地址鎖存/編程脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳用于輸入編程脈沖(PROG)。PSEN(29):外部

43、ROM讀選通信號(hào)。當(dāng)AT89C51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,這兩次有效的PSEN信號(hào)不出現(xiàn)。EA/VPP(31):、外ROM選擇/編程電源。EA為片外ROM選擇端。當(dāng)EA保持高電平時(shí),先訪問(wèn)片ROM,當(dāng)PC的值超過(guò)4KB時(shí),自動(dòng)轉(zhuǎn)向執(zhí)行片外ROM中的程序。當(dāng)EA保持低電平時(shí),只訪問(wèn)片ROM。在Flash存儲(chǔ)器編程期間,該引腳用于施加編程電壓Vpp13。LCD1602液晶顯示器模塊1602是一款常用的字符型液晶,可顯示2行16個(gè)字符。1602液晶模塊帶標(biāo)準(zhǔn)字庫(kù),部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160

44、個(gè)5x7點(diǎn)陣字符圖形,32個(gè)5x10點(diǎn)陣字符圖形。這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等。每一個(gè)字符都有一個(gè)固定的代碼,這個(gè)代碼就是對(duì)應(yīng)字符的ASCII碼。比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí),只要將41H存入顯示數(shù)據(jù)存儲(chǔ)器DDRAM即可,液晶自動(dòng)將地址41H中的中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。1602采用標(biāo)準(zhǔn)的16引腳接口,引腳圖如圖3.2所示,其功能如表3所示。其中1.DB7162VDDDB&153.VoTIRE144RS13512.E胡DBS6E.117DB.2EEKDB1108&LADBO圖3.21602引腳

45、圖8位數(shù)據(jù)總線D0-D7和RS、R/W、EN圖3.21602引腳圖當(dāng)RS和RW同時(shí)為低電平時(shí),可以寫入指令或顯示地址;當(dāng)RS為低電平,RW為高電平時(shí),可以讀忙信號(hào);當(dāng)RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)。1602LCD主要技術(shù)參數(shù):顯示容量:16X2個(gè)字符、芯片工作電壓:4.55.5V、工作電流:2.0mA(5.0V)、模塊最佳工作電壓:5.0V、字符尺寸:2.95X4.35(WXH)mm。表31602引腳使用說(shuō)明編號(hào)符號(hào)引腳說(shuō)明使用方法1VSS電源地2VDD電源3V0對(duì)比度信號(hào)調(diào)整端外接分壓電阻,調(diào)節(jié)屏幕亮度4RS數(shù)據(jù)/命令選擇端RS=1時(shí)選擇數(shù)據(jù)寄存器,RS=0時(shí)選擇指令寄存器5RW

46、讀/寫選擇端RW=1時(shí)執(zhí)行讀操作,RW=0時(shí)執(zhí)行寫操作6E使能信號(hào)端高電平使能7-14D0-D7數(shù)據(jù)I/O雙向數(shù)據(jù)輸入與輸出15BLA背景光源正極接到或通過(guò)10Q左右電阻接到VDD16BLK背景光源負(fù)極接到VSS對(duì)1602顯示字符控制,通過(guò)訪問(wèn)1602部RAM地址實(shí)現(xiàn),1602部控制具有80字節(jié)RAM,RAM地址與字符位置對(duì)應(yīng)關(guān)系如圖3.3所示。LCD16字玄2行00010203.04050670&09:0A0E0GonOEf10:2Y40414243444E464740494A4B4D4E4F67圖3.31602的RAM地址與字符位置對(duì)應(yīng)關(guān)系1602的讀/寫操作,即顯示控制,是通過(guò)控制指令實(shí)

47、現(xiàn)的,控制指令如表4所示。表4控制指令表指令名稱指令功能D7D6D5D4D3D2D1D0模式設(shè)置設(shè)置為16X2,5X7點(diǎn)陣,8位數(shù)據(jù)接口00111000開(kāi)/關(guān)及光標(biāo)設(shè)置D=1開(kāi)顯示;D=0關(guān)顯示00001DCBC=1顯示光標(biāo);C=0不顯示光標(biāo)00001DCBB=1光標(biāo)閃爍;B=0光標(biāo)不顯示00001DCB輸入模式設(shè)置N=1光標(biāo)右移;N=0光標(biāo)左移000001NSS=1文字移動(dòng)有效;S=0文字移動(dòng)無(wú)效000001NS3.2電路原理圖設(shè)計(jì)電路原理圖設(shè)計(jì)是在實(shí)現(xiàn)系統(tǒng)功能基礎(chǔ)之上,進(jìn)行器件選型、器件值計(jì)算以及整合模塊功能電路。但是在ProteusISIS仿真環(huán)境中AT89C51微控制器和LCD1602

48、的外圍電路可以不加,通過(guò)屬性設(shè)置對(duì)話框可以直接設(shè)置AT89C51的外部晶振頻率,加載程序即可實(shí)現(xiàn)仿真。具體的電路模塊設(shè)計(jì)說(shuō)明將在本文第六部分AT89C51最小系統(tǒng)的外圍電路中詳細(xì)介紹,在此不再累述。本節(jié)主要介紹如何在PorteusISIS環(huán)境中進(jìn)行原理圖繪制和原理圖電氣檢測(cè)。3.2.1原理圖硬件連接說(shuō)明根據(jù)選擇的設(shè)計(jì)方案,以及系統(tǒng)框圖,可將硬件作如下連接:主、從機(jī)系統(tǒng)的液晶顯示器的數(shù)據(jù)I/O口D0-D7依次接AT89C51的P1.0-P1.7端口,液晶顯示器的RW讀/寫選擇端、RS數(shù)據(jù)/命令選擇端和E使能信號(hào)端依次接AT89C51的P2.0、P2.1和P2.2端口。上位機(jī)系統(tǒng)接收/發(fā)送選擇開(kāi)關(guān)

49、上拉電阻接單片機(jī)的P0.0口,中斷發(fā)送信號(hào)按鈕上拉電阻接單片機(jī)P3.2外部中斷0輸入端。三個(gè)下位機(jī)系統(tǒng)的中斷數(shù)據(jù)加1按鈕上拉電阻接單片機(jī)P3.2外部中斷0輸入端。原理圖中所有器件及其標(biāo)稱值、數(shù)量和代號(hào)如表5所示。表5元器件列表序號(hào)序號(hào)名稱標(biāo)稱數(shù)量代號(hào)電阻470QRl、R2、R3、R4、R5、R6、R7電阻10KQR8、R9、R10、R31電阻470QRl、R2、R3、R4、R5、R6、R7電阻10KQR8、R9、R10、R31電容22pFC1、C2、C4、C5、C7、C8、C10、C11電容lOOuFC3、C6、C9、C12單片機(jī)AT89C51U1、U2、U3、U4液晶顯示器LM061LLCD

50、1、LCD2、LCD3、LCD48引腳排阻RESPACK-8RP1、RP2、RP3、RP4晶振12MX1、X2、X3、X43.2.2基于ProteusISIS系統(tǒng)原理圖設(shè)計(jì)ProteusISIS原理圖設(shè)計(jì)是具智能性和人性化的設(shè)計(jì),過(guò)程簡(jiǎn)明高效ISIS原理圖輸出流程包括設(shè)置編輯環(huán)境、原理圖連線、建立網(wǎng)絡(luò)表、報(bào)表輸出等過(guò)程。本系統(tǒng)的原理圖繪制過(guò)程如下3:1啟動(dòng)PROTEUSISIS圖標(biāo),進(jìn)入ISIS窗口,如圖3.4所示:圖圖3.7選取元件按鈕圖3.8元器件選擇框CreateNewDesignSelectatemplatetoactasthedefaultforthenewdesign:HHHEFA

51、ULTLandscapeAOLandscapeAlLandscapeA2LandscapeA3Landscap已出4陲UNTITLED-IProvesdorsalFile-ViewEditToolsDesiqnGraphSourceDebugLibrairyTemplateSys-temHelp酋P|華軸El勵(lì)懺|串|4*鮑亀食食繪國(guó)工具LBiNoMessagesFiootheet1狀態(tài)繪國(guó)工具LBiNoMessagesFiootheet1狀態(tài)ISIS主要包括:菜單欄、工具欄、對(duì)象預(yù)覽窗口、編輯區(qū)、器件選擇按鈕、對(duì)象選擇器、仿真按鈕、方位控制按鈕、狀態(tài)欄等。創(chuàng)建原理圖文件單擊菜單欄中的“FIL

52、E/NEWDESIGN”彈出如圖3.5所示的新建設(shè)計(jì)(CreateNewDesign)對(duì)話框。單擊“OK”按鈕,則以默認(rèn)的模板(DEFAULT)建立一個(gè)新的空白文件。單擊工具按鈕,取文件名“串行通信原理圖”,后綴為DSN是系統(tǒng)自動(dòng)加上去是,然后單擊保存按鈕,則完成新建文件操作。設(shè)置圖紙大小根據(jù)設(shè)計(jì)串行通信原理圖的大小,默認(rèn)的A4的原理圖紙不能滿足設(shè)計(jì)的要求,需要對(duì)圖紙的大小重新設(shè)置。單擊“System/SetSheetSize”,出現(xiàn)如圖3.6所示的對(duì)話框,選擇“User(自定義)”復(fù)選框,定義長(zhǎng)為16in,寬位8in,點(diǎn)擊“0K”。圖3.6圖3.6圖紙大小設(shè)置窗口從庫(kù)中選擇原理圖中的元器件單

53、擊如圖3.7所示中的“P”按鈕,彈出如圖3.8所示的元器件選擇框。在“Keyword”欄中輸入元器件“AT89C51”,則可元器件列表。從列表中選中AT89C51行后,再雙擊,便將AT89C51選入對(duì)象選擇器中。同樣的方法把原理圖中的其他器件放入對(duì)象選擇器中,以備畫原理圖時(shí)調(diào)用。SPickD&vice-e5.放置元器件在如圖3.9所示的對(duì)為ISIS編輯區(qū)空白處單擊法把對(duì)象選擇器中的其他象選85.放置元器件在如圖3.9所示的對(duì)為ISIS編輯區(qū)空白處單擊法把對(duì)象選擇器中的其他象選8即可將元器件AT89C51方軒件放入原理圖編輯區(qū)中rRicroprocessorICsHesultstS):AT89C

54、51元器件,再在如圖3.彎示的(置在原理圖編輯區(qū)中i。同樣的方?AT甲虜惟音805:Micrccor,以備原理圖連能。圧18051Mi石陰討AT89C51RC2MCS80518051MibrocorMC3HL08051MiiSowi圖3.RAJURfiASP=2HAIi對(duì)象選擇器P3.1AI3rXJ4XE.IFaPEgP9.i|r:gnJmrF3JIfFTE.斗rnneriraaWFra.HWXrjLL2口川nJlwalB.nFTEFTALE.ETpzja.i.iiFT2.QAI2PL:JflAl9PZJIJUAra.riAiapinEJlFZg圖3.RAJURfiASP=2HAIi對(duì)象選擇器

55、P3.1AI3rXJ4XE.IFaPEgP9.i|r:gnJmrF3JIfFTE.斗rnneriraaWFra.HWXrjLL2口川nJlwalB.nFTEFTALE.ETpzja.i.iiFT2.QAI2PL:JflAl9PZJIJUAra.riAiapinEJlFZgPi.ira.nrunPiJrajFPlTPJnafirrPAra.rnFliF33T1pmnuifFF.rfs.hFTFTtrB.-.AHV.放置Au?-wmjFPF石PSENEftT89C51汀EOT、QCCCCCGCo123ii5-N-7nTnnrf16放置電源、地、和輸入輸出終端單擊繪圖工具中的終端按鈕,在對(duì)象選擇器中

56、單擊終端符號(hào)POWER,放置電P|L|DEVJCES3WATT470R10WATT4K7ADC0808ADC0309AT89C51BUTTONCAPCAP-ELECCRYSTALLMO16LPOT-HGRESRESPACK-8SWITCH源,單擊GROUND放置地,單擊DEFAULT放置普通端子,如圖3.11所示。連線單擊自動(dòng)布線圖標(biāo),自動(dòng)布線有效,根據(jù)原理圖中器件的接線,單擊要連線的起點(diǎn)和終點(diǎn),系統(tǒng)便會(huì)自動(dòng)以直角走線,成連線。連線結(jié)果如圖3.12所示。統(tǒng)一編號(hào)單擊Toos/GlobalAnntator,彈出如圖3.13所示的整體編號(hào)對(duì)話框,在圍框中選擇整體設(shè)計(jì),在模式中選擇Toal,單擊“0

57、K”即可將原理圖中所有器件進(jìn)行編號(hào),其結(jié)果如圖3.14所示。8.網(wǎng)絡(luò)標(biāo)號(hào)PSENWLEEftP0.D/=PD.1/PD.2.PD.3/=PL4PD.5/Pu.6/.Hi.7岸P2-U.P3.L中選擇整體設(shè)計(jì),在模式中選擇Toal,單擊“0K”即可將原理圖中所有器件進(jìn)行編號(hào),其結(jié)果如圖3.14所示。8.網(wǎng)絡(luò)標(biāo)號(hào)PSENWLEEftP0.D/=PD.1/PD.2.PD.3/=PL4PD.5/Pu.6/.Hi.7岸P2-U.P3.LP2.2/P2.3/P2.4/P2.6WP2.TW圖3.14整體編號(hào)結(jié)果CZ-OLUR督列罡辰山85SBSBBB!=iPITM89C51P2.B/.P2.7/.PillP

58、1.1Fl.2065?P3.D/FP3.inP3.2/TP3.3/TF陽(yáng)F3.fPS.6/P3.7.L4QL5-L3-L3-P1.4由于串行通信原理圖中器件較多,都進(jìn)行直接連線比較麻煩,而且容易造成連線錯(cuò)誤,因此采用網(wǎng)絡(luò)表號(hào)的方法,將部分要連接的端口,使其具有電氣聯(lián)系。雙擊原理圖中的普通端,彈出如圖3.15所示的對(duì)話框。在字符名稱后中輸入網(wǎng)絡(luò)P1.4標(biāo)號(hào)“L0”,單“0K”即可完成“L0網(wǎng)絡(luò)編號(hào)”,結(jié)果如圖3.16所示。兩個(gè)或多個(gè)相對(duì)應(yīng)端子的網(wǎng)絡(luò)標(biāo)號(hào)要相同。采用同樣的方法完成原理圖中的其他的網(wǎng)絡(luò)標(biāo)號(hào)。電氣檢測(cè)單擊菜單欄上的“Tools/ElectricalRuleCheck,彈出檢測(cè)結(jié)果窗口,

59、如圖3.17所示,結(jié)果顯示本系統(tǒng)所設(shè)計(jì)的原理圖符合電氣規(guī)則,點(diǎn)擊“另存為”保存結(jié)果。EditCor匚omporCapacitPCBPtCitherP圖3.17電氣檢測(cè)結(jié)果EEditCor匚omporCapacitPCBPtCitherP圖3.17電氣檢測(cè)結(jié)果EwcludefromSimulationExcludefromPILEILayoutEdit豆IIpropertied日呂eHAttachhierarchymoduleHidecommon元器件的屬性設(shè)置對(duì)于串行通信原理圖中的每一個(gè)元器件,都有對(duì)應(yīng)的編號(hào)。電阻、電容等還有相應(yīng)的量值。在原理圖中雙擊電容C1彈出如下圖3.18所示對(duì)話框。設(shè)置

60、電容的值為22Pf,PCB封裝信息為CAP10,不隱藏電容C1的編號(hào)和量值結(jié)果如圖3.19所示。按照同樣的方法設(shè)置串行通信原理圖中其他器件的屬性。至此完成了仿真原理圖的繪制工作,完整的原理圖見(jiàn)附件一。3.3本章小結(jié)本章介紹了系統(tǒng)的硬件設(shè)計(jì),首先對(duì)串行通信控制系統(tǒng)的核心器件AT89C51單片機(jī)與LCD1602液晶顯示器作了簡(jiǎn)單介紹。其次,給出了系統(tǒng)原理圖的連線和器件清單。最后,著重介紹在具智能性、人性化和過(guò)程簡(jiǎn)明高效的ProteusISIS編輯環(huán)境中進(jìn)行本系統(tǒng)電路原理圖的繪制過(guò)程。系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)的程序采用C51模塊化程序編寫,主要包括串行通信初始化、LCD液晶顯示部分,硬件接口部分、主機(jī)程序

溫馨提示

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

評(píng)論

0/150

提交評(píng)論