大學(xué)設(shè)計方案單片機(jī)串行接口技術(shù)_第1頁
大學(xué)設(shè)計方案單片機(jī)串行接口技術(shù)_第2頁
大學(xué)設(shè)計方案單片機(jī)串行接口技術(shù)_第3頁
大學(xué)設(shè)計方案單片機(jī)串行接口技術(shù)_第4頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、* 大學(xué)本科生畢業(yè)設(shè)計單片機(jī)串行通信協(xié)議設(shè)計學(xué)院:信息工程學(xué)院專業(yè):電子信息工程班級:電信 * 班姓名:* *指導(dǎo)老師: *完成日期: 2009 年 5 月 30 日摘 要本文介紹了89C51 單片機(jī)的發(fā)展歷史和簡單介紹,并展望了它們的前景。著重介紹了單片機(jī)串行接口技術(shù),指出了它們的重要性并闡述了其實現(xiàn)原理。根據(jù)串行通訊原理結(jié)合 RS232 串口設(shè)計了串行通訊協(xié)議,利用匯編語言為基礎(chǔ),編寫了一個基于RS232串口的通信程序,實現(xiàn)了單片機(jī)-PC 機(jī)的雙機(jī)通訊。在硬件上測試完好,測試表明,在基于設(shè)計的通信協(xié)議上的單片機(jī)-PC 機(jī)的通訊狀況良好。關(guān)鍵詞: 89C51 單片機(jī),串行通訊原理,RS232

2、串口,串行通訊協(xié)議AbstractThis article describes the development and give a brief history of the 89C51 microcontroller and look forward to their future.Focused on single-chip serial interface technology, pointed out the importance of them and described the principles of its realization. Serial communication

3、in accordance with the principle of combining the design of a serial RS232 serial Communication protocol, Based on the use of assembly language, the preparation of a RS232 serial communication based on the procedures, to achieve a single-chip dual-PC machine communication. Well-tested in hardware, t

4、esting showed that the single-chip-PC communications machine based on the design of communication protocols in good condition. Key words:89C51 microcontroller, principle of serial communication, RS232 serial port, serial communication protocol目 錄 11.11.111.221.331.4 AT89C5142. 92.110 2.2 MCS-51 113.

5、133.1143.2143.3144. 154.1154.2164.3185.20 ( 21)附錄( 22)引 言在工業(yè)監(jiān)測及自動控制系統(tǒng)種,串行通信是微機(jī)與單片機(jī)之間進(jìn)行數(shù)據(jù)交換的主要方式。而在現(xiàn)代社會中,短距離的雙機(jī)通信,最常用的就是串口通信。目前存在的一些通信協(xié)議(如RS-232,RS-484 等),僅對通信線路的電氣特性進(jìn)行了約定,并沒有涉及通信內(nèi)容的格式,類型等信息。針對這一現(xiàn)象,我對于RS-232 接口設(shè)計了比較規(guī)范的串行通信協(xié)議,實現(xiàn)了上位單片機(jī)與下位計算機(jī)的串行通信。通過實驗室測試表明該串行通信協(xié)議是可靠可行的。1. 單片機(jī)概述單片機(jī)也被稱作“單片微型計算機(jī)”、“微控制器”、“

6、嵌入式微控制器”。單片機(jī)一詞最初是源于“ Single Chip Microcomputer ”, 簡稱 SCM。隨著 SCM在技術(shù)上、體系結(jié)構(gòu)上不斷擴(kuò)展其控制功能,單片機(jī)已不能用“單片微型計算機(jī)”來表達(dá)其內(nèi)涵。國際上逐漸采用“MCU”(Micro Controller Unit)來代替,形成了單片機(jī)界公認(rèn)的、最終統(tǒng)一的名詞。為了與國際接軌,以后應(yīng)將中文“單片機(jī)”一詞和“MCU”唯一對應(yīng)解釋。在國內(nèi)因為“單片機(jī)”一詞已約定俗成,故而可繼續(xù)沿用。1.1單片機(jī)的發(fā)展歷史如果將 8 位單片機(jī)的推出作為起點,那么單片機(jī)的發(fā)展歷史大致可以分為以下幾個階段:第一階段( 19761978):單片機(jī)的探索階段

7、。以Intel公司的MCS-48 為代表。 MCS-48的推出是在工控領(lǐng)域的探索,參與這一探索的公司還有Motorola 、Zilog等。都取得了滿意的效果。這就是SCM的誕生年代,“單片機(jī)”一詞即由此而來。第二階段( 19781982):單片機(jī)的完善階段。Intel公司在MCS-48基礎(chǔ)上推出了完善的、典型的單片機(jī)系列 MCS-51。它在以下幾個方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。1. 完善的外部總線。 MCS-51設(shè)置了經(jīng)典的 8 位單片機(jī)的總線結(jié)構(gòu),包括 8 位數(shù)據(jù)總線、 16 位地址總線、控制總線及具有多機(jī)通信功能的串行通信接口。2.CPU外圍功能單元的集中管理模式。3. 體現(xiàn)工

8、控特性的地址空間及位操作方式。4. 指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。第三階段( 19821990): 8 位單片機(jī)的鞏固發(fā)展及16 位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。Intel公司推出的MCS-96 系列單片機(jī),將一些用于測控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運行監(jiān)視器、脈寬調(diào)制器等納入片中,體現(xiàn)了單片機(jī)的微控制器特征。第四階段( 1990):微控制器的全面發(fā)展階段。隨著單片機(jī)在各個領(lǐng)域全面、深入地發(fā)展和應(yīng)用,出現(xiàn)了高速、大尋址范圍、強(qiáng)運算能力的 8 位 /16 位/32 位通用型單片機(jī),以及小型廉價的專用型單片機(jī)。單片機(jī)的發(fā)展趨勢目前,單片機(jī)正朝著高性能和多品

9、種方向發(fā)展,今后單片機(jī)的發(fā)展趨勢將是進(jìn)一步向著 CMOS化、低功耗化、低電壓化、低噪聲與高可靠性、大容量化、高性能化、小容量、低價格化、外圍電路內(nèi)裝化和串行擴(kuò)展技術(shù)。隨著半導(dǎo)體集成工藝的不斷發(fā)展,單片機(jī)的集成度將更高、體積將更小和功能將更強(qiáng)。1.2單片機(jī)的特點單片機(jī)主要有如下特點:1. 有優(yōu)異的性能價格比。2. 集成度高、體積小、有很高的可靠性。單片機(jī)把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性和抗干擾能力。另外,其體積小,對于強(qiáng)磁場環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。3. 制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有

10、極豐富的轉(zhuǎn)移指令、 I/O 口的邏輯操作以及位處理功能。單片機(jī)的邏輯控制功能及運行速度均高于同一檔次的微機(jī)。4. 低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。5.外部總線增加了2Circuit ) 及 SPI(SerialI C ( Inter-IntegratedPeripheral Interface)等串行總線方式,進(jìn)一步縮小了體積,簡化了結(jié)構(gòu)。6. 單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。1. 3 單片機(jī)的應(yīng)用由于單片機(jī)具有顯著的優(yōu)點,它已成為科技領(lǐng)域的有力工具,人類生活的得力助手。它的應(yīng)用遍及各個領(lǐng)域,主要表現(xiàn)在以下幾個方面:1. 單片機(jī)在智能儀表中的應(yīng)用2. 單

11、片機(jī)在機(jī)電一體化中的應(yīng)用3. 單片機(jī)在實時控制中的應(yīng)用4. 單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用5. 單片機(jī)在人類生活中的應(yīng)用單片機(jī)已成為計算機(jī)發(fā)展和應(yīng)用的一個重要方面,另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能通過單片機(jī)來實現(xiàn)了。這種用軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是對傳統(tǒng)控制技術(shù)的一次革命。A:由單片機(jī)組成控制器的結(jié)構(gòu)和特點:單片微型計算機(jī)是微型計算機(jī)發(fā)展中的一個重要分支,是把構(gòu)成一臺微型計算機(jī)的主要部件如中央處理器(CPU)、存儲器 (RAM/ROM)和各種功能 I/O 接口集成在一塊

12、芯片上的單芯片微型計算機(jī)(Single Chip Micro Computer),簡稱單片機(jī) . 由于它的結(jié)構(gòu)與指令功能都是按工業(yè)控制要求設(shè)計的, 且近年來單片機(jī)著力擴(kuò)展了各種控制功能如A/D、PWM等, 因此我們更多時候稱其為一個單片形態(tài)的微控制器 (Single Chip Micro Controller), 或直接稱其為微控制器 (Micro Controller) 。B:用單片機(jī)組成的微機(jī)控制系統(tǒng)具有以下特點:1. 受集成度限制 , 片內(nèi)存儲器容量較小 , 一般片內(nèi) ROM小于 4 8K 字節(jié) , 片內(nèi) RAM小于 256 字節(jié)。但可在外部進(jìn)行擴(kuò)展 , 如 MCS51 系列單片機(jī)的片外

13、可擦可編程只讀存儲器 (EPROM)、靜態(tài)隨機(jī)存儲器 (SRAM)可分別擴(kuò)展至 64K 字節(jié)。2. 可靠性高。單片機(jī)芯片本身是按工業(yè)控制環(huán)境要求設(shè)計的 , 其抗工業(yè)噪聲的能力優(yōu)于一般通用 CPU。程序指令及其常數(shù)、表格固化在 ROM中不易破壞。常用信號通道均在一個芯片內(nèi) , 故可靠性高。3. 易擴(kuò)展。片內(nèi)具有計算機(jī)正常運行所必須的部件 , 芯片外部有許多供擴(kuò)展用的總線及并行、串行輸入 / 輸出端口 , 很容易構(gòu)成各種規(guī)模的微機(jī)控制系統(tǒng)。4. 控制功能強(qiáng)。為了滿足工業(yè)控制要求 , 單片機(jī)的指令系統(tǒng)中有極豐富的條件分支轉(zhuǎn)移指令、 I/O 口的邏輯操作以及位處理功能。一般來說 , 單片機(jī)的邏輯控制功

14、能及運行速度均高于同一檔次的微處理器。5. 一般的單片機(jī)內(nèi)無監(jiān)控程序或系統(tǒng)管理軟件 , 軟件開發(fā)工作量大。但近年來已開始出現(xiàn)了片內(nèi)固化有 BASIC 解釋程序及 FROTH操作系統(tǒng)的單片機(jī) , 使單片機(jī)系統(tǒng)的開發(fā)提高了一個新水平。此外 , 單片機(jī)成本低、集成度高、控制功能多, 可靈活地組裝成各種智能控制裝置,并能有針對性設(shè)計成專用系統(tǒng), 解決從簡單到復(fù)雜的各種需要, 實現(xiàn)最佳的性價比。特別是單片機(jī)與傳統(tǒng)機(jī)械產(chǎn)品相結(jié)合, 使原有機(jī)械產(chǎn)品的結(jié)構(gòu)簡化、控制智能化。如數(shù)控機(jī)床就是典型實例。近年來, 單片機(jī)發(fā)展極快 , 其產(chǎn)量占微機(jī)產(chǎn)量的70%以上。目前,至少有 50 個系列 400 余種機(jī)型,性能和結(jié)

15、構(gòu)各不相同,INTEL 、MOTOROLA、ZILCG等公司都有系列單片微型計算機(jī)。國內(nèi)普及的幾乎都是INTEL 公司的產(chǎn)品。14 AT89C51 單片機(jī)簡介AT89C51 是美國ATMEL公司生產(chǎn)的低電壓,高性能的CMOS8位單片機(jī)片內(nèi)4Kbytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128bytes的隨機(jī)存儲器( RAM),器件采用ATMEL公司的高密度、非易失存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8 位中央處理器( CPU)和 Flash 存儲單元,功能強(qiáng)大。 AT89C51單片機(jī)可為你提供許多高性價的應(yīng)用場合,可靈活的應(yīng)用于各種控制領(lǐng)域。圖 1.1 單片機(jī) AT

16、89C51主要性能參數(shù):·與 MCS-51產(chǎn)品指令系統(tǒng)的全兼容· 4k 字節(jié)可重擦寫 Flash 閃速存儲器· 1000 次可擦寫周期·全靜態(tài)操作: 0Hz-24MHz·三級加密程序存儲器·128×8字節(jié)內(nèi)部 RAM·32 個可編程 I/O 口線·2個 16 位定時 / 計數(shù)器·6個中斷源·可編程串行UART通道·低功耗空閑和掉電模式功能特性描述:AT89C51提供以下標(biāo)準(zhǔn)功能: 4k 字節(jié) Flash 閃速存儲器, 128 字節(jié)內(nèi)部 RAM,32個 I/O 口線,兩個 16

17、 位定時 / 計數(shù)器,一個 5 向量中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)震蕩器及時鐘電路。同時, AT89C51可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件的可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時 / 計數(shù)器,竄行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止所有部件工作直到下一個硬件復(fù)位。( 1) AT89C51 引腳功能說明:·Vcc:電源電壓·GND:地·P0 口: PO口是一組 8 位漏極開路行雙向I/O 口,也既地址 / 數(shù)據(jù)總線復(fù)用口??勺鳛檩敵隹谑褂脮r,每位可吸收電流的方式驅(qū)動8 個 TTL

18、邏輯電路,對端口寫“1”可作為高阻抗輸入輸入端用。在訪問外部數(shù)據(jù)存儲器時,這組口線分時轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時, PO口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求接上拉電阻。·P1 口: P1 口是一個內(nèi)部上拉電阻的 8 位雙向 I/O 口, P1 的輸入緩沖級可驅(qū)動(吸收或輸出電流) 4 個 TTL 邏輯門電路。對端口寫“ 1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸出口。作輸入口時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時輸出一個電流( I )。 Flash 編程和程序校驗期間, P1 口接

19、收 8 位地址。·P2 口: P2 口是一個帶有內(nèi)部上拉電阻的8 位雙向 I/O 口, P2 的輸入緩沖極可以驅(qū)動(輸入或輸出電流)4 個 TTL 邏輯門電路。對端口“ 1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時和作為輸出口,作輸出口時,因為存在內(nèi)部上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部存儲器或1 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時, P2 口送出高 8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVXRI指令)時, P2 口線的內(nèi)容(也既特殊功能寄存器( SFR)區(qū)中R2 寄存器的內(nèi)容),在整個訪問期間不改變。Flash編

20、程或校驗時, P2亦接收高地址和其他控制信號。·P3 口: P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向 I/O 口, P1 的輸入緩沖級可驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電路。對P3 口寫入“ 1”時,它們被內(nèi)部上拉電阻拉高并可作為輸出端口。作輸出端口時,被外部拉低的P3 口將用上拉電阻輸出電流。 P3 口除可作為一般的I/O口線外,更重要的用途是它的第二功能,如表1.2 所示:P3口還接收一些用于Flas閃速存儲器編程和程序校驗的控制信號圖 1.2 AT89C51 方框圖·RST:復(fù)位輸出。當(dāng)震蕩器工作時,RST 引腳出現(xiàn)兩個機(jī)器周期以上高電平使機(jī)器復(fù)位。&#

21、183;ALE/ PROG當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié),即使不訪問外部字節(jié),ALE 仍時鐘震蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘脈沖或用于定時目的。要注意的是:每次訪問外部存儲器時將跳過一個 ALE脈沖。對 Flash 存儲器編程期間,該引腳還要輸入編程脈沖( PROG )。如有必要,可通過對特殊功能寄存器( SFR)區(qū)中的8EH單元的 D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX和 MOVC指令可激活。此外,此引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)該置ALE無效。· PSEN

22、:程序存入允許(PSEN )輸出的是外部程序存儲器的讀選通信號,當(dāng)表 1.3 AT89C51 端口AT89C51由外部程序取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,既輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN 信號不出現(xiàn)。·EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH), EA 端必須保持低電平(接地)。要注意的是:如果加密位 LB1 被編程,復(fù)位時內(nèi)部會鎖存 EA 端狀態(tài)。 Flash 存儲器編程時,該引腳加上 +12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用 12V 的編程電壓 Vpp。·

23、;XTAL1:震蕩器反向放大器及內(nèi)部時鐘的輸入端。·XAAL2:震蕩器反向放大器的輸出端。·時鐘震蕩器: AT89C51 中有一個構(gòu)成內(nèi)部震蕩器的高增益反向放大器,引腳XTAL1和 XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英或陶瓷震蕩器一起構(gòu)成自激震蕩器震蕩電路如圖。外接石英晶體(或陶瓷震蕩器)及電容 C1、C2 接在放大器的震蕩回路中構(gòu)成并聯(lián)震蕩電路。對外接電容C1、C2雖然沒有非常嚴(yán)格的要求,但電容的大小會輕微影響震蕩頻率的高低、震蕩工作的穩(wěn)定性、起震的難易程序及溫度穩(wěn)定性,如果使用石英晶體,推薦使用30pF±10pF,而如果

24、使用陶瓷諧振器建議選擇40pF±10pF。用戶還可以采用外部時鐘,采用外部時鐘如圖所示。在這種情況下,外部時鐘脈沖接到XTAL1端,既內(nèi)部時鐘發(fā)生器的輸入端, XTAL2懸空。圖 1.4內(nèi)部震蕩電路圖 1.5外部震蕩電路由于外部時鐘信號是通過一個2 分頻的觸發(fā)器后作為內(nèi)部時鐘信號的所以外部寄存器內(nèi)容寄存器內(nèi)容PC0000HTMOD00HACC00HTCOM00HB00HTH000HPSW00HTLO00HSP07HTH100H0DPTR0000HTH100HP1 P30FFHSCON00HIPxxx00000SBUF不定IE0xxx00000PCON0xxx00000表 1.6 AT

25、89C51 寄存器時鐘的占空比沒有特殊要求,但最小高電平持續(xù)的時間和最大低電平持續(xù)的時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。· Flash 閃速存儲器的編程:AT89C51單片機(jī)內(nèi)部有 4K 字節(jié)的 Flash PEROM,這個 Flash 存儲存儲陣列出廠時已處于擦除狀態(tài)(既所有存儲單元的內(nèi)容均為 FFH),用戶隨時可對其進(jìn)行編程。程序接收高電壓( +12V)或低電壓( Vcc)的允許編程信號。低電壓編程模式,適用與用戶在線編程系統(tǒng)。而高電平模式可與通用EPROM編程程序兼容。·編程方法:編程前需設(shè)置好地址、數(shù)據(jù)及控制信號,編程單元的地址就、加在P1口和P2口的P2.0 P2.3

26、( 11位地址范圍為0000H0FFFH),數(shù)據(jù)從P0口輸入,引腳P2.6、P2.7 和 P3.6 、P3.7 的電平設(shè)置見表。 PSEN為低電平, RST保持高電平, EA/Vp 引腳是編程電源的輸入端,按要求加上編程電壓, ALE/PROG引腳輸入編程脈沖(負(fù)脈沖)編程時可采用 420MHz的時鐘震蕩器 AT89C51的編程方法如下: 1.0 在地址線上加上要編程單元的地址信號。1. 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。2. 激活相應(yīng)的控制信號。3. 在高電壓編程時,將 EA/Vpp 端加上 +1V編程電壓。4. 每對 Flash 存儲陣列寫入一個字節(jié),加上一個 ALE/PROG編程脈沖。(

27、2) AT89C51 控制信號RST/VPD( 9 腳)復(fù)位信號時鐘電路工作后,在引腳上出現(xiàn)兩個機(jī)器周期的高電平,芯片內(nèi)部進(jìn)行初始復(fù)位,復(fù)位后片內(nèi)存儲器的狀態(tài)如表所示,P1P3 口輸出高電平,初始值 07H 寫入堆棧指針 SP、清 0 程序計數(shù)器 PC和其余特殊功能寄存器,但始終不影響片內(nèi) RAM狀態(tài),只要該引腳保持高電平, 89C51 將循環(huán)復(fù)位, RAT/VPD 從高電平到低電平單片機(jī)將從 0 號單元開始執(zhí)行程序,另外該引腳還具有復(fù)用功能,只要將 VPD接+5V 備用電源,一旦 Vcc 電位突然降低或斷電,能保護(hù)片內(nèi) RAM中的信息不丟失,恢復(fù)電后能正常工作。AT89C81通常采用上電自動

28、復(fù)位和開關(guān)手動復(fù)位,我們采用的是手動復(fù)位開關(guān)如圖所示:圖 1.7手動開關(guān)手動開關(guān)未按下之前,電容正極處于家電狀態(tài),當(dāng)按鍵按下去后,VCC與 GND導(dǎo)通,電容放電,從而實現(xiàn)放電。2 單片機(jī)的串行接口MCS-51 單片機(jī)內(nèi)部有一個全雙工的串行接收和發(fā)射緩沖器(SBUFF),這兩個在物理上獨立的接收發(fā)射器,即可以接收也可以發(fā)射數(shù)據(jù),但接收緩沖器只可以讀出不能寫入,而發(fā)送緩沖器只能寫入不能讀出,它們的地址是 99H。這個通信口即可以用于網(wǎng)絡(luò)通信,亦可以實現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在串行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可以方便的構(gòu)成標(biāo)準(zhǔn)的RS-232 接口。下面我們分別介紹。

29、2.1基本概念數(shù)據(jù)通信的傳輸方式:常用于數(shù)據(jù)通信的傳輸方式有單工、半雙工、全雙工和工方式。單工方式:數(shù)據(jù)僅按一個固定的方向傳送。因為這種傳輸方式的用途有限,常用于串行口的打印數(shù)據(jù)傳輸與簡單系統(tǒng)間的數(shù)據(jù)采集。雙工方式:數(shù)據(jù)可以實現(xiàn)雙向傳送,但不能同時進(jìn)行,實際的應(yīng)用采用某種協(xié)議實現(xiàn)收發(fā)開關(guān)轉(zhuǎn)換。全雙工方式:允許雙方同時進(jìn)行數(shù)據(jù)雙向傳送,但一般全雙工電路的線路和設(shè)備比較復(fù)雜。多工方式:以上三種傳輸方式都是同一線路傳輸一種頻率信號,為了充分的利用線路資源,可通過使用多路復(fù)用器或多路集線器,采用頻分、時分、或碼分復(fù)用技術(shù),即可實現(xiàn)在同一線路上資源共享功能,我們稱之為多工傳輸方式。串行通信的兩種通信形式

30、A. 異步通信在這種通信方式中,接收器和發(fā)射器有各自的時鐘,他們的工作是非同步的,異步通信用一幀來表示一個字符,其內(nèi)容如下:一個起始位,緊接著是若干個數(shù)據(jù)位,圖 是傳輸 45H 的數(shù)據(jù)格式。B. 同步通信同步通信格式中,發(fā)送器和接收器由同一個時鐘源控制,為了克服在異步傳輸中,每傳輸一幀字符都必須加上起始位和停止位,占用了傳輸時間,在要求傳送的數(shù)據(jù)量較大的C. 串行數(shù)據(jù)通信的傳輸速率:串行數(shù)據(jù)傳輸率有兩個概念,既美秒傳送的位數(shù)bps(Bit per second)和美秒符號數(shù) - 波特率( Band rate ), 在具有調(diào)治解調(diào)器的通信中,波特率與調(diào)治速率有關(guān)。2.2MCS-51的串行和控制寄

31、存器串行口和控制寄存器MCS-51單片機(jī)串行口專用寄存器結(jié)構(gòu)如圖所示。SBUF為串行口的收發(fā)緩沖器,它是一個可尋址的專用寄存器,其中包含了接收器和發(fā)射器寄存器,可以實現(xiàn)全雙工通信。但這兩個寄存器具有同一地址( 99H)。 MCS-51 的串行數(shù)據(jù)傳輸很簡單,只要向緩沖器寫入數(shù)據(jù)就可發(fā)送數(shù)據(jù)。而從接收緩沖器讀出數(shù)據(jù)既可接收數(shù)據(jù)。此外,接收緩沖器前還加上一級輸入移位寄存器, MCS-51 這種結(jié)構(gòu)的目的在于接收數(shù)據(jù)時避免發(fā)生重疊現(xiàn)象,文獻(xiàn)稱這種結(jié)構(gòu)為雙緩沖結(jié)構(gòu)。而發(fā)送數(shù)據(jù)就不需要這樣設(shè)計,因為發(fā)送時,CPU是主動的,不可能出現(xiàn)這種情況。A:串行通信寄存器在上一節(jié)我們已經(jīng)分析了 SCON控制寄存器,

32、它是一個可尋址的專用寄存器,用于串行數(shù)據(jù)通信的控制,單元地址是 98H,其結(jié)構(gòu)格式如下:1 寄存器 SCON結(jié)構(gòu)SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H表 2.1 SCON 寄存器結(jié)構(gòu)下面我們對個控制位功能介紹如下:(1)SM0、SM1:串行口工作方式控制位SMOSM1工作方式功能說明00方式 0移位寄存器方式(用于 I/O 擴(kuò)展)01方式 18位 UART,波特率可變( T1 溢出率 / n )10方式 29位 UART,波特率為 fosc/64 或 fosc/3211方式 39位 UART,波

33、特率可變( T1 溢出率 / n )(2)SM2:多機(jī)通信控制位多機(jī)通信是工作方式2 和方式 3,SM2位主要用于方式2 和方式 3。接收狀態(tài),當(dāng)串行口工作方式2 或 3,以及 SM2=1時,只有當(dāng)接收到第9 位數(shù)據(jù)( RB8)為 1 時,才把接收的前 8 位數(shù)據(jù)送入 SBUF,且置位 RI 發(fā)出中斷申請,否則會將收到的數(shù)據(jù)放棄。當(dāng) SM2=0時,只有在接收到有效停止位時才啟動 RI,若沒接收到有效停止位,則 RI 清“ 0”。在方式 0 中 SM2應(yīng)該為“ 0”。REN:允許接收控制位。由軟件置“1”時,允許接收;軟件置“0”時,不許接收。TB8:在方式 3 和方式 3 中要發(fā)送的第 9 位

34、數(shù)據(jù),需要時用軟件置位和清零。TB8:在方式 2 和方式 3 中是接收到的第9 位數(shù)據(jù)。在方式1 時,如 SM2=0, RB8接收到的停止位。在方式0 中,不使用 RB8。TI :發(fā)送中斷標(biāo)志。由硬件在方式 0 發(fā)送完第 8 位時置“ 1”,或在其它方式中串行發(fā)送停止位的開始時置“ 1”。必須由軟件清“ 0”。RI:接收中斷標(biāo)志。由硬件在方式0 串行發(fā)射第 8 位結(jié)束時置“ 1”B: 特殊功能寄存器 PCONPCON:主要是是CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,單元地址為87H其機(jī)構(gòu)格式如下表:PCOND7D6D5D4D3D2D1D0位符號SMODGF1GF0PDIDL表 1.2

35、特殊功能寄存器 PCON在 CHMOS型單片機(jī)中,除 SMOD位外其它位均為虛設(shè)的, SMOD是串行波特率倍增位,當(dāng) SMOD=1時串行口波特率加倍,系統(tǒng)復(fù)位默認(rèn)為 SMOD=0。C:中斷允許寄存器IE中斷允許寄存器這里重述一下對串行口有影響的位ES。ES 為串行中斷允許控制位, ES=1允許串行中斷, ES=0,禁止串行中斷。串行口工作方式串行口具有 4 種工作方式,我從應(yīng)用和畢業(yè)設(shè)計的角度,重點討論方式1 發(fā)送。串行口定義為方式1 時傳送 1 幀數(shù)據(jù)為 10 位,其中 1 位起始地址、 SMOD出率 )8 位數(shù)據(jù)位(T1 的溢符號EAESET1EX1ETOEX0位地址AFHAEHADHAC

36、HABHAAHA8HA8H表2.3中斷允許寄存器3. 串行通訊技術(shù)及硬件基本組成通常情況下,人們是通過外部設(shè)備使用計算機(jī)的,但是由于種種原因,外設(shè)往往不能與 CPU直接相連,它們之間的信息交換需要一個中間環(huán)節(jié)(或界面),我們稱之為接口電路。接口是 CPU與外界的連接部件(電路)。串行接口是計算機(jī)的一種接口標(biāo)準(zhǔn)。在實驗和工業(yè)應(yīng)用中,串口是常用的計算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道,同時,串行接口也可以用來實現(xiàn)短距離的雙機(jī)通信。串行通信具有連接簡單、使用靈活方便、數(shù)據(jù)傳遞可靠等優(yōu)點。3.1 硬件的基本組成 :單片機(jī) 89C52、 11.059M 晶震、 30pF 電容、 22uf/10V 電容、

37、 1K 電阻、 MAX232轉(zhuǎn)換器, DB9接口,按鍵。3.2 串行通信原理所謂“串行通信”是指外設(shè)和計算機(jī)間或者兩臺計算機(jī)之間使用了數(shù)據(jù)線、控制線和地線進(jìn)行連接,數(shù)據(jù)在數(shù)據(jù)線上一位一位地進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。在計算機(jī)系統(tǒng)中,每個字符一般使用一個 8 位二進(jìn)制代碼表示。在數(shù)據(jù)通信中,通常將待傳送的每個字符的二進(jìn)制代碼按照由低位到高位的順序依次發(fā)送的方式成為串行通信。圖 3.1串行通信的示意圖3.3 雙機(jī)通信連接方法對于 DB-9 串口, 3 線連接法只使用電纜中的3 條線,一條作為信號地線,一條作為發(fā)送線,一條作為接收線。在連接這種電纜時需要注意,電纜中的發(fā)送線和接收線

38、需要交叉,也就是說,一臺計算機(jī)的RS-232 發(fā)送引腳需要和另一臺計算機(jī)的RS-232 發(fā)送引腳相連,連接方法見圖3.2 所示。圖 3.2 硬件連接圖4. 軟件的設(shè)計和調(diào)整過程4.1程序流程圖程序流程圖是編寫軟件的重要前提,它是在圖表上直觀的體現(xiàn)擬設(shè)計的目的及過程。也是編譯的重要依據(jù),按照流程圖一步一步編寫程序,下面是我的流程圖。圖 4.1串口程序設(shè)計流程圖 4.2 程序設(shè)計流程4.2通信協(xié)議通信協(xié)議是單片機(jī)和PC 機(jī)之間通信不可缺少的部分,也是我此次畢業(yè)設(shè)計最重要的部分,包括下面幾方面的設(shè)置。串行口控制寄存器SCON的設(shè)置串行口控制寄存器的基本情況在前面已經(jīng)介紹,這里不再重復(fù)。根據(jù)我們所做的

39、內(nèi)容,我們采用了串行工作方式1,REN設(shè)置為“ 1”(允許接收),綜上所述我們設(shè)SCON的初始值為 50H,如下表所示:SM0SM1SM2RENTB8TB8TIRI01010000表 4.1串行口控制寄存器定時器的初始化設(shè)置在定時器為方式1 時,方式字為:CATEC/TM1MOT10010T0表 4.2定時計數(shù)器的初始化GATE:表示 INT 1不參與控制C/ T :選擇計數(shù) / 時鐘方式M1MO:選定定時器 1 工作方式 2所以定時器 TMOD初始值為 20H波特率計算方式 l 和方式方式 1 和方式3 的波特率3 的移位時鐘脈沖由定時器T1 的溢出率決定,故波特宰由定時器T1 的溢出率與S

40、MOD值同時決定,即:方式 1 和方式 3 的波特率 2SMOD/32·T1 溢出率其中,溢出率取決于計數(shù)速率和定時器的預(yù)置值。計數(shù)速率與TMOD寄存器中C T 的狀態(tài)有關(guān)。當(dāng)CT0 時,計數(shù)速率 fosc 2;當(dāng) CT1 時,計數(shù)速率取決于外部輸入時鐘頻率。當(dāng)定時器Tl作波特率發(fā)生器使用時,通常選用可自動裝入初值模式( 工作方式2) ,在工作方式2 中, TLl作為計數(shù)用,而自動裝入的初值放在THl中,設(shè)計數(shù)初值為 x,則每過“ 256 一 x”個機(jī)器周期,定時器T1 就會產(chǎn)生一次溢出。為了避免因溢出而引起中斷,此時應(yīng)禁止T1 中斷。這時溢出周期為:12/ fosc*(256-X)

41、溢出率為溢出周期的倒數(shù),所以,有:波特率 =2SMOD/12 * fosc/ 12*(256-X)此時,定時器 T1 在工作方式 2 時的初值為:X=256-fosc*(SMOD+1)/384* 波特率系統(tǒng)晶振頻率選為11 0592MHZ就是為了使初值為整數(shù),從而產(chǎn)生精確的波特率。如果串行通信選用很低的波特率,可將定時器 Tl 置于工作方式 0 或工作方式 1,但在這種情況下, T1 溢出時,需用中斷服務(wù)程序重裝初值。中斷響應(yīng)時間和執(zhí)行指令時間會使波特率產(chǎn)生一定的誤差,可用改變初值的辦法加以調(diào)整。已知 89C52單片機(jī)時鐘振蕩頻率為 11.059MHz,選用定時器 T1 工作方式 2 為波特率

42、發(fā)生器,波特率為 9600 波特,初值 X 就很好計算。設(shè)波特率控制位 SMOD=0,則有:X=256-11.059*1000000* (0+1) /384*9600=253=FDH所以,( TH1) =(TL1)=FDH4.3 程序演示本設(shè)計主要是通過89C52 單片機(jī)的串行通信端口TX( RC7)發(fā)送引腳, RX(RC6)接收引腳,手法信息,把下位機(jī)(單片機(jī))的信息通過RS232 總線傳輸給上位機(jī)(PC機(jī)),上位機(jī)借助串口調(diào)試軟件接手或發(fā)送信息給下位機(jī)。為了能夠在計算機(jī)端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個WINDOWS軟件進(jìn)行觀察,這里我們主要使用串口調(diào)試軟件做演示工具,所謂串口調(diào)試軟

43、件是指:1. 用于串口調(diào)試,支持常用的110-25600波特率,能設(shè)置端口參數(shù);2 能以字符或十六進(jìn)制收發(fā)數(shù)據(jù),真正支持中文字符的收發(fā);3. 支持文件數(shù)據(jù)的發(fā)送;4. 允許設(shè)置發(fā)送周期,自動發(fā)送數(shù)據(jù);5. 綠色軟件,不需安裝。在串口調(diào)試軟件上選擇COM1接口,并確保單片機(jī)上的RS232接口與 PC機(jī)的 COM1接口連接無誤。波特率選擇9600 波特檔,手動發(fā)送檔和16 進(jìn)制發(fā)送檔。在發(fā)送數(shù)據(jù)欄輸入DD開頭,后接 8 位數(shù)據(jù)位任意數(shù)字后,按發(fā)送鍵。觀察串口調(diào)試軟件的接收數(shù)據(jù)欄的回饋信息。因為程序屏蔽了高電位,仔細(xì)查看幾首數(shù)據(jù)欄的回饋信息與發(fā)送數(shù)據(jù)欄的地電位數(shù)據(jù)是否一致。如一致則表明演示成功??偨Y(jié)

44、我所做的是單片機(jī)通信協(xié)議設(shè)計,從開學(xué)初我就開始準(zhǔn)備。畢業(yè)設(shè)計完成了,達(dá)到了預(yù)期的目的。一開始拿到這個題目的時候,真不知道從哪下手,在老師的指導(dǎo)下,自己找資料、看書,總算完成了。通過這次的畢業(yè)設(shè)計,使我對單片機(jī)有了更深的認(rèn)識,從理論和實踐上都得到了很大的提高,所以這次任務(wù)的完成是我學(xué)到了很多東西。首先,豐富了自己的知識面,學(xué)到了以前沒能學(xué)通的東西,具體了解了怎樣去完成一個電路的設(shè)計:從流程圖、電路圖、焊接電路板、檢查電路板、仿真到燒片一整套東西。從畢業(yè)設(shè)計中,學(xué)到了單片機(jī) AT89C51的內(nèi)部結(jié)構(gòu)及其工作原理,了解了時鐘電路和控制電路的工作原理,鞏固了匯編語言的使用能力,提高了自己動手的能力,學(xué)

45、到了很多經(jīng)驗,并且提高了自己分析問題的能力和創(chuàng)新能力,得到了理論聯(lián)系實際的機(jī)會,做出了成果。使自己在硬件設(shè)計方面樹立了信心,為以后從事這方面的工作打好了基礎(chǔ),這也是這次畢業(yè)設(shè)計的最大收獲。在一開始接觸這個題目的時候,真的很茫然,不知道從哪開始下手,不知道單片機(jī)串行通信協(xié)議是干什么的?怎么才能做出來?用什么做?這些問題一個都不知道。后來在蔡老師的指導(dǎo)下,才知道我要怎么開始做。自己就開始找資料,了解單片機(jī)89C51、通信傳輸?shù)挠嘘P(guān)知識,學(xué)習(xí)時鐘電路、控制電路的設(shè)計原理,看不懂的時候就去問老師、同學(xué)。在這些都搞得比較明白后就開始畫設(shè)計流程圖和電路圖,最后用了很長時間才完成自己的通信程序設(shè)計,給老師看后,在老師的幫助下,改正了幾處有問題的地方,完成后就開始仿真。但是仿真的時候卻又遇到了麻煩,先是匯編語言的程序錯誤, Topice52 仿真軟件提示我的程序有問題,程序自身沒有通過檢驗。接著仔細(xì)根據(jù)提示檢查程序上的錯

溫馨提示

  • 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

提交評論