基于ATMEL 89S51單片機的通信系統(tǒng)計算機科學(xué)與技術(shù)專業(yè)畢業(yè)設(shè)計論文_第1頁
基于ATMEL 89S51單片機的通信系統(tǒng)計算機科學(xué)與技術(shù)專業(yè)畢業(yè)設(shè)計論文_第2頁
基于ATMEL 89S51單片機的通信系統(tǒng)計算機科學(xué)與技術(shù)專業(yè)畢業(yè)設(shè)計論文_第3頁
基于ATMEL 89S51單片機的通信系統(tǒng)計算機科學(xué)與技術(shù)專業(yè)畢業(yè)設(shè)計論文_第4頁
基于ATMEL 89S51單片機的通信系統(tǒng)計算機科學(xué)與技術(shù)專業(yè)畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2009屆學(xué)生畢業(yè)設(shè)計(論文)材料(四)學(xué) 生 畢 業(yè) 設(shè) 計(論 文)課題名稱基于Atmel 89S51單片機的通信系統(tǒng)姓 名學(xué) 號院 系計算機科學(xué)系專 業(yè)計算機科學(xué)與技術(shù)指導(dǎo)教師2009年5月26日28目 錄摘 要1關(guān)鍵詞1Abstract1Key Word2第1章單片微型計算機概述及其發(fā)展31.1單片機的發(fā)展歷史和發(fā)展趨勢31.1.1單片機的發(fā)展歷史31.1.2單片機的發(fā)展趨勢31.2單片機在國內(nèi)外的發(fā)展情況41.2.1單片機在國內(nèi)的的發(fā)展情況41.2.2單片機在國外的發(fā)展情況4第2章MCS-51系列單片機硬件結(jié)構(gòu)42.1單片機的結(jié)構(gòu)與組成42.2Atmel 89S51單片機的引腳說明7

2、2.3單片機的最小系統(tǒng)82.4Atmel 89S51單片機的存儲結(jié)構(gòu)9第3章單片機串口通信的可行性分析123.1單片機串口通信的應(yīng)用及其意義123.1.1單片機串口通信的應(yīng)用123.1.2單片機串口通信的意義133.2單片機串口通信的可行性分析133.2.1經(jīng)濟可行性133.2.2技術(shù)可行性133.2.3人力資源分析14第4章單片機串口通信的實現(xiàn)144.1串行通信基礎(chǔ)144.1.1異步串行通信的字符格式154.1.2異步串行通信的相關(guān)知識154.1.3串行接口電路164.1.4串行口寄存器結(jié)構(gòu)164.1.5串行通信控制寄存器174.2串口通信的硬件實現(xiàn)194.2.1串口通信的硬件描述194.2

3、.2串口通信的電路圖194.串口通信的軟件實現(xiàn)194.1串口通信的相關(guān)的問題194.3.2串口通信主控制端的實現(xiàn)204.3.3串口通信遙控端的實現(xiàn)23第5章單片機串口通信的檢測255.1對串口通信主控端的檢測265.2對串口通信遙控端的檢測26參考文獻:27致謝:28基于Atmel 89S51單片機的通信系統(tǒng)盛勝程(湖南城市學(xué)院計算機科學(xué)系05級計算機科學(xué)與技術(shù)專業(yè),益陽,413000)摘 要:串口通信在工業(yè)、農(nóng)業(yè)、國防等行業(yè)有著廣泛的應(yīng)用。利用單片機技術(shù)的串口通信系統(tǒng)以其體積小、,可靠性高而被廣泛采用。本文對該串口通信系統(tǒng)進行了分析設(shè)計。首先,本文針對系統(tǒng)所使用的AT89S51單片機的性能和

4、發(fā)展情況做了簡單介紹;對串口通信過程及協(xié)議作了簡單說明;同時對串口通信系統(tǒng)進行了可行性分析;其次,本文重點對串口通信的硬件、軟件的組成進行了分項、模塊化逐步分析設(shè)計。最終實現(xiàn)了該系統(tǒng)的硬件電路。繪制了電路原理圖并完成了硬件調(diào)試。同時對軟件也進行了一一設(shè)計,并在Keil C51上經(jīng)過反復(fù)的模擬運行、調(diào)試、修改簡化了軟件系統(tǒng),最后形成了一個完整的基于8051單片機的串口通信系統(tǒng)。關(guān)鍵詞:單片機;AT89C51;串口通信;硬件系統(tǒng);ProtelAbstract:Key Word:第1章單片微型計算機概述及其發(fā)展1.1單片機的發(fā)展歷史和發(fā)展趨勢1.1.1單片機的發(fā)展歷史單片機的發(fā)展可以發(fā)為以下四個階段

5、。第一階段(1974年到1976年)單片機初級階段。因工藝限制,此階段單片機功能比較簡單只包括8位CPU,64BRAM和兩個并行口第二階段(1976年到1978年)低性能單片機階段。此階段的單片機己為一臺完整的計算機,但內(nèi)部資源不夠豐富。單片機內(nèi)己集成了8位CPU、8位定時器/計數(shù)器、RAM和ROM等,但無串行口,中斷系統(tǒng)比較簡單,片內(nèi)RAM的ROM容量較小,且尋址范圍不大于4KB。第三階段(1978年到現(xiàn)在)高性能單片機階級。此階段的單片機內(nèi)部資源豐富,片內(nèi)集成了8位CPU、16位定時器/計數(shù)器、串行I/O口、多級中斷、尋址范圍可達64KB。?1.1.2單片機的發(fā)展趨勢單片機的發(fā)展趨勢是向高

6、性能化、大容量、微型化及外圍電路內(nèi)部化發(fā)展。具體表以下方面:1、CPU的改進(1) 采用雙CPU結(jié)構(gòu);(2) 增加數(shù)據(jù)總線寬度;(3) 采用流水線結(jié)構(gòu);(4) 串行總線結(jié)構(gòu)。2、存儲器的改進(1) 增大存儲容量;(2) 片內(nèi)EPROM開始E2PROM化;(3) 程序保密化。3、片內(nèi)I/O的改進(1) 高并行口的驅(qū)動能力;(2) 增加I/O口的邏輯控制能力;(3) 特殊的串口接口功能。4、 外圍電路內(nèi)裝化5、低功耗化1.2單片機在國內(nèi)外的發(fā)展情況1.2.1單片機在國內(nèi)的的發(fā)展情況為使我國盡快實現(xiàn)經(jīng)濟信息化,趕上發(fā)達國家水平,必須加速發(fā)展我國的信息技術(shù)和信息產(chǎn)業(yè)。據(jù)統(tǒng)計,我國的單片機年容量已達13

7、億片,且每年以大約16%的速度增長,但相對于世界市場我國的占有率還不到1%。這說明單片機應(yīng)用在我國才剛剛起步,有著廣闊的前景。培養(yǎng)單片機應(yīng)用人才,特別是在工程技術(shù)人員中普及單片機知識有著重要的現(xiàn)實意義。單片機是二十世紀七十年代中期發(fā)展起來的一種大規(guī)模集成電路器件。它在一塊芯片內(nèi)集成了計算機的各個功能部件,構(gòu)成一種單片式的微型計算機。單片機的應(yīng)用技術(shù)是一項新型的工程技術(shù),其內(nèi)涵隨著單片機的發(fā)展而發(fā)展。而單片機的學(xué)習(xí)不僅讓我們明白了計算機硬件的一些知識,更讓我們懂得了許多關(guān)于現(xiàn)在個人計算機中的許多原始的命令的完成原理。1.2.2單片機在國外的發(fā)展情況當前,在世界范圍內(nèi),一個以微電子技術(shù),計算機和通

8、信技術(shù)為先導(dǎo)的,以信息技術(shù)和信息產(chǎn)業(yè)為中心的信息革命方興未艾。二十世紀八十年代以來,國際上單片機的發(fā)展迅速,單片機應(yīng)用不斷深入,新技術(shù)層出不窮。而計算機技術(shù)怎樣與實際應(yīng)用更有效的結(jié)合并有效的發(fā)揮其作用是科學(xué)界最熱門的話題,也是當今計算機應(yīng)用中空前活躍的領(lǐng)域。第2章MCS-51系列單片機硬件結(jié)構(gòu)2.1單片機的結(jié)構(gòu)與組成MCS-51單片機的內(nèi)部結(jié)構(gòu)按功能可劃分為8個部分:微處理器 (CPU)、數(shù)據(jù)存儲器(RAM),程序存儲器(ROM/EPROM)、特殊功能寄存器(SFR)、 并行I/O口、串行通信口、定時器/計數(shù)器及中斷系統(tǒng)。1、中央處理單元(CPU)主要由運算器和控制器組成。運算器是單片機的運算

9、部件,用于實現(xiàn)算術(shù)運算和邏輯學(xué)運算;它由ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、PSW(程序狀態(tài)寄存器)和兩個暫存寄存器等組成。運算器以ALU為核心,基本的算術(shù)和邏輯運算都在其中進行,然后運算和操作結(jié)果的狀態(tài)由PSW保存;控制器是單片機的指揮控制部件,它保證單片機各部分能自動協(xié)調(diào)地工作。它由PC(程序計數(shù)器)、PC加1寄存器、指令寄存器、指令譯碼器、定時與控制電路等均屬于控制器。2、內(nèi)部數(shù)據(jù)存儲器包括RAM(128*8bit)和RAM地址寄存器。實際上8051芯片中共有256個RAM單元,其中后128個單元被專用寄存器(SFR)占用,供用戶用來存放可讀取數(shù)據(jù)的只有前128個單元。3

10、、內(nèi)部程序存儲器還有(ROM)(4K*8bit)和程序地址寄存器。8051內(nèi)有4KB掩膜ROM,用于存放程序和原始數(shù)據(jù)。4、8051內(nèi)部設(shè)置了兩個16位的定時器/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,并以其定時或結(jié)果對單片機進行控制。5、MCS-51單片機的內(nèi)部設(shè)有關(guān)4個8位的I/O口(p0,p1,p2,p3),以實現(xiàn)數(shù)據(jù)的并行輸入輸出。6、8051共有5個中斷源,即2個外部中斷、2個定時器/計數(shù)器中斷、1個串行口中斷。中斷分為高低兩級。7、MCS-51單片機有一個全雙工的串行通信口,以實現(xiàn)單片機和其他數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。8、MCS-51單片機芯片內(nèi)有時鐘振蕩電路,8051所用典型晶振頻率為1

11、2MHZ。9、位處理器也叫布爾處理器,用于對單片機尋址位進行置位、復(fù)位、取反等以及可尋址位之間的傳送、邏輯與、邏輯或等位操作。以上所有的部件都是通過總線連接,構(gòu)成了一個完整的單片機系統(tǒng)。綜上所述,雖然MCS-51單片機只是一塊芯片,但作為計算機系統(tǒng)應(yīng)該具有的基本部件在單片機芯片中幾乎都包括,實際上它己經(jīng)是一個簡單的微型計算機系統(tǒng)了,應(yīng)當按計算機系統(tǒng)的概念來理解單片機。圖2.1 單片機的基本結(jié)構(gòu)圖2.2 單片機的組成框圖圖2.3 單片機的引腳圖2.2Atmel 89S51單片機的引腳說明Atmel 89S51單片機的引腳由電源及時鐘引腳、控制引腳、輸入/輸出引腳組成。1、電源及時鐘引腳:此部分引

12、腳包括電源引腳Vcc、Vss及時鐘引腳XTAL1、XTAL2;Vcc(40腳):接+5V電源;Vss(20腳):接地。XTAL1(19腳):接外部晶體的一個引腳,在單片機內(nèi)部,它對一個反相放大器的輸入端。當采用外接晶體振蕩器時,此引腳接地。XTAL2(18腳):接外部晶體的另一個引腳,在單片機內(nèi)部,它對一個反相放大器的輸出端。當采用外接晶體振蕩器時,該引腳接收振蕩器的信號,即把此信號直接接到內(nèi)部時鐘發(fā)生器的輸入端。2、控制引腳:此部分引腳包括RESET(即RST)、ALE、PSEN、EA等(1)RST(9腳):當振蕩器運行時,在此引腳上加上兩個機器周期的高電平將使單片機復(fù)位(RST),復(fù)位后保

13、持低電平,使單片機正常工作。掉電時,此引腳可接備用電源以保持RAM中的數(shù)據(jù)不丟失。(2)ALE/PROG(30腳):當單片機訪問外部存儲器時,ALE輸出脈沖的下降沿用于鎖存16位地址的低8位。(3)PSEN(29腳):此輸出為單片機訪問外部程序存儲器的選通信號。在從外部程序存儲器取指令(或常數(shù))期間,每個機器周期PSEN兩次有效。但在此期間,每當訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。PSEN同樣可以驅(qū)動8個TTL負載。(4)EA(31腳):當EA端保持高電平時,單片機訪問的是內(nèi)部程序程序存儲器,但當PC值超過某值時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。當EA端保持低電平時,

14、則不管是否有內(nèi)部程序存儲器而只訪問外部程序存儲器。3、輸入/輸出引腳(包括P0口、P1口、P2口、P3口)(1)P0口(P0.0P0.7):為雙向8位三態(tài)I/O口,當作為I/O口使用時,可直接連接外部I/O設(shè)備。它是地址總線低8位及數(shù)據(jù)總線分時復(fù)用口,可驅(qū)動8個TTL負載。一般作為擴展時地址/數(shù)據(jù)總線口使用。(2)P1口(P1.0P1.7):為8位準雙向I/O口,它的每一位都可以分別定義為輸入線或輸出線,可驅(qū)動4個TTL負載。(3)P2口(P2.0P2.7):為8位準雙向I/O口,當作為I/O口使用時,可直接連接外部I/O設(shè)備。它是與地址總線高8位復(fù)用,可驅(qū)動4個TTL負載。一般作為擴展時地址

15、總線的高8位使用。(4)P3口(P3.0P3.7):為8位準雙向I/O口,是雙功能復(fù)用口,可驅(qū)動4個TTL負載。2.3單片機的最小系統(tǒng)單片機的最小系統(tǒng)包括一個Atmel 89S51單元片機的芯片,一個30pf的電容接單片機的18管腳,另一人30pf的電容接單片機的19管腳,然后它們中間接一個12MHZ的晶體振蕩器,這三個部分組成了一個反饋電路,就構(gòu)成了一個穩(wěn)定的自激振蕩器。振蕩電路產(chǎn)生的振蕩脈沖并不直接為系統(tǒng)所用,而是經(jīng)過二分頻后才作為系統(tǒng)時鐘信號,在二分頻的基礎(chǔ)上再三分頻產(chǎn)生ALE信號,在二分頻的基礎(chǔ)上再三分頻得到機器周期信號。當然,這個晶體振蕩器不一定是12MHZ,因為如果用12MHZ經(jīng)過

16、分頻后得到的一次信號周期正好是1ms,當然不一定一定得用12MHZ的晶體振蕩器。圖2.4單片機的最小系統(tǒng)2.4Atmel 89S51單片機的存儲結(jié)構(gòu)MCS-51單片機的存儲結(jié)構(gòu)有兩個重要的特點:一是把數(shù)據(jù)存儲器和程序存儲器截然分開,二是存儲器有內(nèi)外之分,其地址空間、存取指令和控制信號均各有自己的方式。MCS-51系列單片機有關(guān)5個獨立的存儲空間:l 64KB程序存儲器(ROM)空間(00FFFFH);l 64KB外部數(shù)據(jù)存儲器(RAM/IO)空間(00FFFFH);l 256B內(nèi)部RAM空間(00FFH);l 128B內(nèi)部特殊功能寄存器(SFR)空間(80H0FFH);l 位尋址空間(20H2

17、FH及特殊功能寄存器中地址能被8整除的部分)程序存儲器MCS-51的程序存儲器空間為64KB,其地址指針為16位的程序計數(shù)器PC。數(shù)據(jù)存儲器:MCS-51的數(shù)據(jù)存儲器分為內(nèi)部存儲器和外部存儲器,MCS-51的外部數(shù)據(jù)存儲器(RAM/IO)空間為64KB,一般通過數(shù)據(jù)指針DPTR來訪問,MCS-51將內(nèi)部數(shù)據(jù)存儲器中的不同區(qū)域從功能和用途方面來劃分,可以分為3個區(qū)域:工作寄存器區(qū)(00H1FH)、位尋址區(qū)(20H2FH)、堆棧和數(shù)據(jù)緩沖器區(qū)(30H70H或30H0FFH)。1、工作寄存器區(qū):內(nèi)部RAM的工作寄存器區(qū)地址為00H1FH,共32個RAM單元,分為4組,每組占8個RAM單元,分別用R0

18、R7表示,R0R7可以指向4組中的任一組,具體指向哪組由程序狀態(tài)字PSW的RS0、RS1位的狀態(tài)來決定,即CPU通過修改PSW中RS0、RS1的兩位狀態(tài),就能任選一個工作寄存器區(qū)。表2.1 RS0-RS1的工作寄存器的選擇PSW(RS1、RS0)R0R7對應(yīng)的組號內(nèi)部RAM中R0R7對應(yīng)的地址0 0000H07H0 1108H0FH1 0210H17H1 1318H1FH表2.2 不同區(qū)工作寄存器R0-R7的地址對應(yīng)關(guān)系寄存器對應(yīng)的物理關(guān)系0區(qū)1區(qū)2區(qū)3區(qū)R000H08H10H18HR101H09H11H19HR202H0AH12H1AHR303H0BH13H1BHR404H0CH14H1CH

19、R505H0DH15H1DHR606H0EH16H1EHR707H0FH17H1FH2、位尋址區(qū):內(nèi)部RAM的位操作區(qū)地址為20H2FH,共16個RAM單元,這16個RAM單元具有雙重功能。它們既可以像普通內(nèi)部RAM單元一樣按字節(jié)存取,也可以對其每個單元中的任何一位單獨存取,即位尋址,所以在編程時該區(qū)域一般不應(yīng)被其他用途所占用。3、堆棧和數(shù)據(jù)緩沖器區(qū):堆棧是一種數(shù)據(jù)結(jié)構(gòu),所謂堆棧就是只允許在其一端進行數(shù)據(jù)寫入和數(shù)據(jù)讀出的線性表。數(shù)據(jù)定入稱為壓入操作(PUSH),也叫入棧。從堆棧中讀出數(shù)據(jù)稱為彈出(POP),也叫出棧。MCS-單片機的堆棧采用的是“后進先出”的數(shù)據(jù)操作規(guī)則。數(shù)據(jù)緩沖器區(qū)一般用來存

20、放輸入的數(shù)據(jù)或運算的結(jié)果。數(shù)據(jù)緩沖區(qū)原則上可以設(shè)在內(nèi)部RAM的任意連續(xù)或非連續(xù)區(qū)域,但應(yīng)盡量避開展那些己有專門用途的區(qū)域。特殊功能寄存器(SFR):特殊功能寄存器也叫專用寄存器。MCS-51的SFR包括內(nèi)部的I/O口鎖存器、累加器以及定時器、串行口、中斷的各種控制寄存器和狀態(tài)寄存器等,共22個SFR。表2.3 特殊功能寄存器名及對應(yīng)的地址符 號名 稱地 址*ACC累加器0E0H*BB寄存器0F0H*PSW程序狀態(tài)位0D0HSP堆棧指針81HDPTR數(shù)據(jù)指針(包括DPH及DPL)83H及82HDPL數(shù)據(jù)指針的低8位82HDPH數(shù)據(jù)指針的高8位83H*P0端口080H*P1端口190H*P2端口2

21、0A0H*P3端口30B0H*IP中斷優(yōu)先級控制0B8H*IE中斷使能控制0A8HTMOD定時/計數(shù)器模式控制89H*TCON定時/計數(shù)器控制88H*T2CON定時/計數(shù)器2控制0C8HTH0定時/計數(shù)器0高8位8CHTL0定時/計數(shù)器0低8位8AHTH1定時/計數(shù)器1高8位8DHTL1定時/計數(shù)器1低8位8BH*SCON串行端口控制98HSBUF串行數(shù)據(jù)緩沖口99HPCON電源控制87H有些特殊功能寄存器可以按位尋址法進行尋址。各特殊功能寄存器的地址是80HFFH,看起來好象與內(nèi)部RAM的間接存取區(qū)的地址80HFFH相重疊,其實他們是兩個完全獨立的區(qū)域。其差別有兩點,一點是內(nèi)部RAM的地址8

22、0HFFH只能用間接尋址法存取數(shù)據(jù),第二點特殊功能寄存器的地址80HFFH只能用直接尋址方法存取數(shù)據(jù)。第3章單片機串口通信的可行性分析3.1單片機串口通信的應(yīng)用及其意義3.1.1單片機串口通信的應(yīng)用1、單片機串口通信在機電一體化中的應(yīng)用 機電一體化是機械工業(yè)發(fā)展的方向。機電一體化產(chǎn)品是指集成機械技術(shù)、微電子技術(shù)、計算機技術(shù)于一體,具有智能化特征的機電產(chǎn)品,例如微機控制的車床、鉆床等。單片機作為產(chǎn)品中的控制器,能充分發(fā)揮它的體積小、可靠性高、功能強等優(yōu)點,可大大提高機器的自動化、智能化程度。 2、在實時過程控制中的應(yīng)用 用單片機串口通信實時進行數(shù)據(jù)處理和控制和反饋,使系統(tǒng)保持最佳工作狀態(tài),提高系

23、統(tǒng)的工作效率和產(chǎn)品的質(zhì)量。 3、在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機串口通信在醫(yī)用設(shè)備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 4、汽車電子產(chǎn)品 現(xiàn)代汽車的集中顯示系統(tǒng)、動力監(jiān)測控制系統(tǒng)、自動駕駛系統(tǒng)、通信系統(tǒng)和運行監(jiān)視器(黑匣子)等都離不開單片機。 綜合所述,單片機已成為計算機發(fā)展和應(yīng)用的一個重要方面。另一方面,單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。3.1.2

24、單片機串口通信的意義串行數(shù)據(jù)傳送的特點是:數(shù)據(jù)傳送按位進行,最少只需一根傳輸線即可完成,成本低但速度慢。計算機與外界的數(shù)據(jù)傳送大多數(shù)是串行的,其傳送的距離可以從幾米到幾千公里。因為一根傳輸線就可以進行傳送,可以大大減輕成本;同時用一些簡單的校驗可以保證傳輸?shù)母呖煽啃浴?.2單片機串口通信的可行性分析3.2.1經(jīng)濟可行性串口通信系統(tǒng)上位機主控制端和下位機遙控端組成。在該控制系統(tǒng)中,需要使用到的電子元件有89S51單片機芯片兩快、12MHz晶體震蕩器兩個、30pf電容4個、10K歐電阻兩個、10uf電容兩個、按鈕若干、330歐電阻若干、發(fā)光二極管若干。在此次畢業(yè)設(shè)計中使用實驗箱來完成,采用ATME

25、L公司生產(chǎn)的89S51實驗箱,該種實驗箱中帶有89S51芯片的仿真電路、發(fā)光二極管和導(dǎo)線若干條。其89S51芯片的仿真電路可以完全仿真51芯片的功能,并且可以無限擦除多次,使用方便仿真時只要將RST鍵按一下自動復(fù)位。51芯片自帶有串口通信端口,該實驗箱將51芯片的40個腳擴展出來,接線方便。利用這種辦法實現(xiàn)簡單的串口通信穩(wěn)定性高、功耗低、性價比高。對于要用到串行通信的地方廣泛使用。 3.2.2技術(shù)可行性在該實驗的設(shè)計過程中,使用keilC51做為開發(fā)工具,使用匯編語言進行編碼,一方面需要對串口通信的主控制端進行編碼;另一方面還得對遙控端進行編碼。以實現(xiàn)主控端與遙控端的實時通信。在有兩臺PC機和

26、兩個實驗箱的情況下完全可以實現(xiàn)。I/O周期由外部提供的I/O CLOCK定義,延續(xù)8、12或16個時鐘周期,決定于選定的輸出數(shù)據(jù)長度。器件進入I/O周期后同時進行兩種脈沖處理操作。在I/O周期的最后一個I/O CLOCK脈沖下降沿之后,EOC變低,采樣值保持不變,轉(zhuǎn)換周期開始,片內(nèi)轉(zhuǎn)換器對采樣值進行逐次逼近式A/D轉(zhuǎn)換,其工作由與I/O CLOCK同步的內(nèi)部時鐘控制。轉(zhuǎn)換完成后EOC變高,轉(zhuǎn)換結(jié)果鎖存在輸出數(shù)據(jù)寄存器中,待下一個I/O周期輸出。I/O周期和轉(zhuǎn)換周期交替進行,從而可以減少外部的數(shù)字噪聲對轉(zhuǎn)換器精度的影響。所有的代碼的總行數(shù)大約為200行左右,順利完成燒片后應(yīng)該能夠看到預(yù)測的結(jié)果。

27、由于該系統(tǒng)主要是用于工業(yè)控制中,因此需要確保它的穩(wěn)定性并保證它的高可靠性,只有這樣才能夠真正實現(xiàn)它的價值。在實際應(yīng)用中基本上是不允許出現(xiàn)錯誤。當然這就得使用相對而言很穩(wěn)定的電子元器件,從成本和使用時間上來估計,該系統(tǒng)很有研究的價值。 3.2.3人力資源分析在次項目的開發(fā)過程中,先后查閱過十本左右的相關(guān)資料和網(wǎng)上關(guān)于51單片機之間串行通信、通信協(xié)議等相關(guān)項目,從中獲得了一些參考信息,并受到了啟發(fā),將他們中的一些有用的部分運用到該ATMEL89S51控制系統(tǒng)中。例如:兩個單片機互相傳送數(shù)據(jù)時,自己可以控制在何時發(fā)送數(shù)據(jù),但卻無法知道在什么時候收到數(shù)據(jù),所以接收數(shù)據(jù)時應(yīng)采用中斷來實現(xiàn)。同時在制作的過

28、程中,可以采用分步完成的方法,對于二極管發(fā)光的控制就相當簡單點了,因為二極管只有兩種表現(xiàn)形式,一種是亮,另一種是滅,這樣就好像是二進制中的0和1一樣的。對數(shù)字信號采用二進制編碼,使得信號中只有2種信號,一種是通電,另一種是斷電。在近期的過程中,可以先制作出主控制端的控制模塊。然后對遙控端發(fā)過來的數(shù)據(jù)用一個串行中斷子程序的方法來簡化實現(xiàn)過程,遙控器端主要是處理一個數(shù)據(jù)發(fā)送和接收的過程,發(fā)送時可以控制主控制器端負載的通電情況,接收主控端的數(shù)據(jù)用來顯示主控端負載的通電情況。估計在一個月左右的時間內(nèi)可以完成預(yù)期的項目成果。第4章單片機串口通信的實現(xiàn)4.1串行通信基礎(chǔ)計算機的數(shù)據(jù)傳送有并行數(shù)據(jù)傳送和串行

29、數(shù)據(jù)傳送兩種方式。并行數(shù)據(jù)傳送的特點是:在同一時刻,多個數(shù)據(jù)位同時傳送,傳送速度快,效率高。但并行數(shù)據(jù)傳送有多少位就需要多少根數(shù)據(jù)線,因此傳送成本高。并行數(shù)據(jù)傳送比較適合于短距離、大批量的數(shù)據(jù)傳送,如計算機內(nèi)部數(shù)據(jù)傳送。串行數(shù)據(jù)傳送的特點是:數(shù)據(jù)傳送按位順序進行,最少只需一根傳輸線就可以完成,成本低但速度慢。計算機與外界的數(shù)據(jù)傳送大多是串行的,其傳送距離可以從幾米到幾千公里。通常把計算機與外界的數(shù)據(jù)傳送稱之為通信,因此所謂串行通信也就是串行數(shù)據(jù)傳送。串行通信又分為異步和同步兩種方式。在單片機中使用的串行通信都是異步方式。4.1.1異步串行通信的字符格式異步串行通信以字符為單位,即一個字符一個字

30、符的傳送。圖4.1給出了一個字符的字符幀異步串行通信格式圖4.1異步串行通信的字符格式異步串行通信的一個字符幀包括起始位、數(shù)據(jù)位、奇偶校驗位、和停止位四部分,對其格式作如下說時:1、起始位:開始一個字符傳送的標志位。起始位使數(shù)據(jù)線處于“0”狀態(tài)2、數(shù)據(jù)位:起始位之后傳送的數(shù)據(jù)信號位。在數(shù)據(jù)位中,低位在前高位在后。由于字符編碼方式的不同,數(shù)據(jù)位可以是5、6、7或8位。3、奇偶校驗位:用于對字符的傳送做正確性檢查。4、停止位:用以標志一個字符的結(jié)束。5、位時間:一個格式位的時間寬度。6、幀:從起始位開始到結(jié)束的全部內(nèi)容為一幀。幀是一個字符的完整通信格式。4.1.2異步串行通信的相關(guān)知識異步串行通信

31、的信號形式有近程的串行通信和遠程的串行通信,本課題用的是近程的串行通信。近程通信又稱為本地通信,它采用數(shù)字信號直接傳送。串行通信有以下幾種數(shù)據(jù)通路形式:單工形式、半雙工形式、全雙工形式。單片機內(nèi)部有一個全雙工的串行口,所以本課題采用的是全雙工的通信形式。全雙工形式的數(shù)據(jù)傳送是雙向的,且可以同時發(fā)送和接收數(shù)據(jù),其需要兩條數(shù)據(jù)線。傳送速率用于描述數(shù)據(jù)傳送的快慢。在串行通信中,數(shù)據(jù)是按位進行傳送的,因此傳送速率用每秒鐘傳送格式位的數(shù)目來表示,稱之為波特率(Band Rate)。每秒鐘傳送一個格式位就是1波特。在串行通信中,格式位的發(fā)送和接收分別由發(fā)送時鐘脈沖的接收時鐘脈沖進行定時控制。時鐘頻率高,波

32、特率也高,通信速度就快;反之,時鐘頻率低,則小組特率也低,通信速度慢。4.1.3 串行接口電路在串行傳送中,數(shù)據(jù)是一位一位按順序進行的,而計算機內(nèi)部的數(shù)據(jù)是并行的。因此,當計算機缶外發(fā)送數(shù)據(jù)時,必須將并行的數(shù)據(jù)轉(zhuǎn)換為串行的數(shù)據(jù)再傳送。反之,又必須將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸入計算機中。這種并到串或串到并的轉(zhuǎn)換既可以用軟件實現(xiàn)又可以用硬件實現(xiàn)。但由于用軟件實現(xiàn)會使CPU的負擔(dān)增加,降低其利用率,故目前常采用硬件方法實現(xiàn)。UART它既可以發(fā)送,由并行到串行輸出,又能接收,由串行到并行輸入。對每一方來說都是一個雙緩沖結(jié)構(gòu)。當接收數(shù)據(jù)時,串行數(shù)據(jù)先經(jīng)RxD端進入移位寄存器,再經(jīng)過移位寄存器輸出并行數(shù)據(jù)到

33、數(shù)據(jù)緩沖器,最后通過數(shù)據(jù)總線到CPU;當發(fā)送信息時,先由CPU經(jīng)數(shù)據(jù)總線將并行數(shù)據(jù)給緩沖器,再由緩沖器并行送給移位寄存器,最后按位由TxD端輸出。所有這些工作都是在時鐘信號和其他控制信號作用下完成的。4.1.4 串行口寄存器結(jié)構(gòu)MCS-51單片機串行口寄存器的基本結(jié)構(gòu)如圖4.2所示圖4.2MCS-51串行口寄存器結(jié)構(gòu)圖中共有兩個串行口的緩沖寄存器(SBUF),一人是發(fā)送寄存器,一個是接收寄存器,以便MCS-51能以全雙工方式進行通信。串行發(fā)送時,從片內(nèi)總線向發(fā)送SBUF寫入數(shù)據(jù);串行接收時,從接收SBUF向片內(nèi)總線讀出數(shù)據(jù)。它們都是可尋址的寄存器,但因為發(fā)送與接收不能同時進行,所以給這兩個寄存

34、器賦以同一地址(99H)。在接收方式下,串行數(shù)據(jù)通過RxD(P3.0)進入。由于在接收寄存器之間還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤,即在一幀數(shù)據(jù)來時,前一幀數(shù)據(jù)還沒有讀走。在發(fā)送方式下,串行數(shù)據(jù)通過TxD(P3.1)送出。與接收數(shù)據(jù)情況不同,發(fā)送數(shù)據(jù)時,由于CPU是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路就不需要雙重緩沖結(jié)構(gòu),這樣可以提高數(shù)據(jù)發(fā)送速度。4.1.5 串行通信控制寄存器與串行通信有關(guān)的控制寄存器有SCON、PCON和IE。SCON是一個可尋址的特殊功能寄存器,用于串行數(shù)據(jù)控制。其字節(jié)地址為98H,位地址9FH98H。寄存器內(nèi)容及位地

35、址如表4.1所示:表4.1SCON寄存器內(nèi)容及地址表示位地址9FH9EH9DH9CH9BH9AH99H98H位符號SM0SM1SM2RENTB8RB8TIRI各位功能說明如下:SM0、SM1是串行口工作方式選擇位,這兩位的組合決定了串行口的4種工作模式,如表4.2示。表4.2串行口的4種工作模式SM0 SM1工作方式功能波特率0 0方式0擴展移位寄存器方式Fosc/120 1方式18位UART定時器T1溢出率/n1 0方式29位UARTFosc/32或fosc/641 1方式39位UART定時器T1溢出率/nSM2是多機通信控制位,因多機通信在方式2和方式3下進行的,所以SM2位主要用于方式2

36、和方式3。當SM2=1時,只有當接收到的第9位數(shù)據(jù)(RB8)為“1”時,才將接收到的前8位數(shù)據(jù)放入SBUF,并置位RI產(chǎn)生中斷請求;否則,將接收到的前8位數(shù)據(jù)丟棄。而當SM2=0時,不論接收到的第9位數(shù)據(jù)是什么都將前8位數(shù)據(jù)裝入SBUF,并產(chǎn)生中斷請求。REN是允許接收位,REN=1時允許接收REN=0時禁止接收。TB8是發(fā)送數(shù)據(jù)的第9位,一般作為奇偶校驗位。RB8是接收數(shù)據(jù)的第9位,可能是奇偶校驗位,也可能是地址/數(shù)據(jù)的標志位。TI是發(fā)送中斷標志位,發(fā)送中斷被告響應(yīng)后,TI不會自動復(fù)位,必須由軟件復(fù)位。RI是接收中斷標志位。電源控制寄存器(PCON)是為8051的電源控制而設(shè)置的專用寄存器。

37、字節(jié)地址為87H中斷允許寄存器(IE),當ES=0時禁止串行中斷;當ES=1時允許串行中斷。4.1.6 MCS-51單片機串行通信工作方式本課題所用的串口通信是用的單片機4種工作方式的方式1,重點介紹串行通信方式1。方式1是8 位異步串行通信方式,一幀數(shù)據(jù)一般為10位,共包括1個起始位,8個數(shù)據(jù)位和1個停止位。其幀格式為一個起始位加8個數(shù)據(jù)位,然后一個停止位。方式1的數(shù)據(jù)發(fā)送是由一條寫發(fā)送緩沖器(SBUF)的指令開始的,隨后在串行口由硬件自動加入起始位和停止位構(gòu)成一個完整的數(shù)據(jù)幀,然后在移位脈沖的作用下,由TxD端串行輸出 。發(fā)送完后,由TxD輸出線維持在“1”狀態(tài),并將SCON的TI置“1”

38、,通知CPU可以接著發(fā)送下一個字符。接收數(shù)據(jù)時,SCON的REN位應(yīng)處于允許接收狀態(tài)(REN=1)。在此前提下,串行品采樣RxD端,當它由“1”向“0”的狀態(tài)跳變時,就認定是接收到起始位。隨后在移位脈沖的控制下,把接收到的數(shù)據(jù)位移入接收緩沖器(SBUF)中。直到停止位到來之后把停止位送入RB8中,并設(shè)置中斷標志位RI,通知CPU從SBUF取走接收到的一個字符。4.2串口通信的硬件實現(xiàn)4.2.1串口通信的硬件描述對于主控制器,它的一個開關(guān)SW1按下可以將負載1通電;用另外一個開關(guān)SW2可以將負載1斷電;SW3按下可以將負載2通電;另外開關(guān)SW4可以將負載2斷電。對于遙控器,它的一個開關(guān)SW5按下

39、可以將主控制器的負載1通電;用另外一個開關(guān)SW6可以將主控制器的負載1斷電;SW7按下可以將主控制器的負載2通電;另外開關(guān)SW8可以將主控制器的負載2斷電。同時遙控器的指示燈可以顯示負載1的通電情況,LED1亮?xí)r負載1也通電;來時負載1斷電;LED2可以顯示負載2的通電情況。4.2.2串口通信的電路圖對于兩個MCS-51單片機的串口通信用P3口的RxD串行輸入通道和TxD串行輸出通道就可以滿足要求了。其電路圖4.1示。圖4.3 用串行端口互傳數(shù)據(jù)的基本電路 4.串口通信的軟件實現(xiàn)4.1串口通信的相關(guān)的問題1、兩個單片機互相傳送數(shù)據(jù)時,自己可以控制在何時發(fā)送數(shù)據(jù),但卻無法知道在什么時候收到數(shù)據(jù),

40、所以接收數(shù)據(jù)時應(yīng)采用中斷來實現(xiàn)。2、若在程序中令ES=1且EA=1,則當數(shù)據(jù)發(fā)送完畢即TI=1或數(shù)據(jù)接收完畢RI=1時,CPU會放下當前的工作轉(zhuǎn)而跳至串行端口中斷服務(wù)程序。3、串行端口無論是發(fā)送中斷標志位TI=1還是接收中斷標志位RI=1,都會產(chǎn)生中斷請求而跳至相同的地址執(zhí)行中斷服務(wù)程序,所以必須在中斷服務(wù)程序中用指令來判斷產(chǎn)生中斷的到底是TI還是RI,所以必須在中斷服務(wù)程序中用指令來判斷產(chǎn)生中斷請求的到底是TI還是RI,然后才執(zhí)行相對應(yīng)的程序。4、在串行端口中斷服務(wù)程序中,必須自己用指令把引起中斷的標志位清除為0。5、中斷服務(wù)程序必須以指令RETI結(jié)尾,CPU才會回到主程序的中斷處繼續(xù)執(zhí)行。

41、4.3.2串口通信主控制端的實現(xiàn)主控制端一方面要用開關(guān)控制負載1和負載2的通電情況并將之發(fā)送出去,另一方面要接收來自遙控器的信息并產(chǎn)生相應(yīng)的反應(yīng)。主控制器的流程圖如圖4.2示圖4.4主控制器流程圖主控端程序:ORG 8000HJMP MAINORG 8100H ;串口中斷服務(wù)程序 ;若接收到數(shù)據(jù),則執(zhí)行SW5SW8的相應(yīng)的程序JNB RI,NON ;若未收到數(shù)據(jù),則返回主程序CLR RI ;清除接收中斷標志位RECEV:MOV A,SBUF ;判斷哪一個按鈕被按下,并執(zhí)行相應(yīng)的程序JNB ACC.2,CASE5 JNB ACC.3,CASE6 JNB ACC.4,CASE7JNB ACC.5,

42、CASE8AJMP OK ;按鈕SW5相對應(yīng)的程序CASE5:CLR P1.0;將負載1通電MOV SBUF,P1;將負載的通電情況發(fā)送出去AJMP OKCASE6:SETB P1.0MOV SBUF,P1AJMP OKCASE7:CLR P1.1MOV SBUF,P1AJMP OKCASE8:SETB P1.1MOV SBUF,P1AJMP OKNON:CLR TI;清除發(fā)送中斷標志位OK:RETI;返回主程序/*/;設(shè)置波特率/*/MAIN:MOV TMOD,#00100000B;令定時器1工作在模式2MOV TH1,#230;設(shè)定計數(shù)值MOV TL1,#230SETB TR1;啟動定時器

43、1;設(shè)定串行端口工作模式MOV SCON,#01110000B;設(shè)定串行端口為模式1CLR RI;令RI=0(開始接收數(shù)據(jù))CLR TI;令TI=0(準備發(fā)送數(shù)據(jù))SETB ES ;串行端口中斷使能SETB EA;等待按鈕SW1SW4被按下,并執(zhí)行相應(yīng)的程序LOOP:JNB P3.2,CASE1JNB P3.3,CASE2JNB P3.4,CASE3JNB P3.5,CASE4AJMP LOOP;按鈕SW1相對應(yīng)的程序CASE1:CLR P1.0;令負載1通電AJMP TRANSCASE2:SETB P1.0AJMP TRANSCASE3:CLR P1.1AJMP TRANSCASE4:SET

44、B P1.1TRANS:MOV SBUF,P1;將負載的通電情況發(fā)送出去WAIT:CALL DELAY;等待按鈕SW1SW4全部放開MOV A,P3CJNE A,#11111111B,WAITAJMP LOOPDELAY:MOV R6,#250;延時0.1sDL1:MOV R7,#200DL2:DJNZ R7,DL2DJNZ R6,DL1RETEND4.3.3串口通信遙控端的實現(xiàn)圖4.5遙控器流程圖遙控端程序:ORG 8000HJMP MAINORG 8100H;串口中斷服務(wù)程序JNB RI,NON;若未收到數(shù)據(jù),則返回主程序CLR RI;清除接收中斷標志位MOV P1,SBUF;把通電狀況顯示在指示燈上AJMP OKNON:CLR TI;清除發(fā)送中斷標志位OK:RETI;返回主程序;設(shè)置波特率MAIN:MOV TMOD,#00100000B;令定時器1工作在模式2MOV TH1,#230;設(shè)定計數(shù)值MOV TL1,#230SETB TR1;啟動定時器1MOV SCON,#01110000B;設(shè)定串行端口為模式1CLR RI;令RI=0(開始接收數(shù)據(jù))CLR TI;令TI=0(準備發(fā)送數(shù)據(jù))SETB ES;串行端口中斷使能SETB EA;等待按鈕SW5SW8

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論