畢業(yè)論文-帶串口通信的單片機(jī)人機(jī)界面軟件設(shè)計(jì)(共43頁(yè))_第1頁(yè)
畢業(yè)論文-帶串口通信的單片機(jī)人機(jī)界面軟件設(shè)計(jì)(共43頁(yè))_第2頁(yè)
畢業(yè)論文-帶串口通信的單片機(jī)人機(jī)界面軟件設(shè)計(jì)(共43頁(yè))_第3頁(yè)
畢業(yè)論文-帶串口通信的單片機(jī)人機(jī)界面軟件設(shè)計(jì)(共43頁(yè))_第4頁(yè)
畢業(yè)論文-帶串口通信的單片機(jī)人機(jī)界面軟件設(shè)計(jì)(共43頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩46頁(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、PAGE 中國(guó)計(jì)量學(xué)院畢業(yè)設(shè)計(jì)(論文) 本科畢業(yè)設(shè)計(jì)(shj)(論文)帶串口通信(tng xn)的單片機(jī)人機(jī)界面軟件設(shè)計(jì)The Design of Single-chip Serial Communication with the Man-machine Interface 中國(guó)(zhn u)計(jì)量學(xué)院2009 年 6月鄭 重 聲 明本人呈交的畢業(yè)設(shè)計(jì)論文,是在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,所有數(shù)據(jù)、圖片資料真實(shí)可靠。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本學(xué)位論文的研究成果不包含他人享有(xingyu)著作權(quán)的內(nèi)容。對(duì)本論文所涉及的研究工作做出貢獻(xiàn)的其他個(gè)人和集體,均已在文中以明

2、確的方式標(biāo)明。本學(xué)位論文的知識(shí)產(chǎn)權(quán)歸屬于培養(yǎng)單位。學(xué)生(xu sheng)簽名: 日期(rq): 分類號(hào): TN919 密 級(jí): 公開(gngki) UDC: 71 學(xué)校(xuxio)代碼: 10356 中國(guó)(zhn u)計(jì)量學(xué)院 本科畢業(yè)設(shè)計(jì)(論文) 帶串口通信的單片機(jī)人機(jī)界面軟件設(shè)計(jì)The Design of Single-chip Serial Communication with the Man-machine Interface 2009 年 6 月致 謝 PAGE IV帶串口通信(tng xn)的單片機(jī)人機(jī)界面軟件設(shè)計(jì)摘要(zhiyo):隨著(su zhe)科技的發(fā)展,現(xiàn)代化的生產(chǎn)

3、對(duì)智能化的要求越來(lái)越高,如何迅速獲取現(xiàn)場(chǎng)數(shù)據(jù)以便及時(shí)對(duì)生產(chǎn)過(guò)程進(jìn)行調(diào)控。在隨著數(shù)控編程軟件的普及,串口通信重要的重要性越來(lái)越突出。因?yàn)閿?shù)控編程軟件生成的程序很長(zhǎng),用手工的方法輸進(jìn)系統(tǒng)里又慢又累,還容易出錯(cuò),所以用戶大多會(huì)使用串口將其傳送進(jìn)系統(tǒng)里。單片機(jī)在人們生產(chǎn)和生活中的應(yīng)用越來(lái)越廣泛,在進(jìn)行較長(zhǎng)距離數(shù)據(jù)通信或要求用有限硬件資源進(jìn)行數(shù)據(jù)交換時(shí),都要用到串行接口,串行接口是MCS8051 單片機(jī)開發(fā)應(yīng)用中不可缺少的一部分。本文介紹了單片機(jī)與PC機(jī)之間的串口通信,以及延伸出多機(jī)間的通信,利用手動(dòng)鍵盤輸入,LED七段顯示管顯示輸入的數(shù)字,然后通過(guò)串口通信把數(shù)據(jù)傳輸?shù)絇C機(jī)。本文還深入探討了多機(jī)間的通

4、信,對(duì)串口通信深入的了解。通過(guò)C語(yǔ)言的進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)串口通信的功能。在串口傳輸設(shè)計(jì)中,為了防止傳輸錯(cuò)誤,如果傳輸不成功,實(shí)現(xiàn)數(shù)字抖動(dòng),若傳輸成功,將值轉(zhuǎn)化為十進(jìn)制輸顯示在PC機(jī)。關(guān)鍵字:串口通信, 多機(jī)通信,鍵盤輸入顯示,單片機(jī)設(shè)計(jì)中圖分類號(hào):TN919The Design of Single-chip serial communication with the man-machine interfaceAbstract: With the development of science and technology, the modernization of production has

5、an increasingly demanding for intelligent. How to have an access to field data and to control the production process become very important. Now, with the popularity of NC programming software, the importance of serial communication has become increasingly prominent. As the procedure of NC programmin

6、g software is very long, the method of manually entered into the system are slow and tired, and also error-prone, therefore, most users will use the serial port to transfer into the system. Single-chip production has applied more and more widely in daily life. When the data exchanges take place in a

7、 longer distance data communication or request for use of limited hardware resources, serial interface must be used which is also core part of a single-chip MCS8051 development and application. This paper will give an introduction of serial communication between single-chip and PC single-chip machin

8、es, as well as the extension of a multi-machine communication, the use of manual keyboard input and LED Seven Segment display. All these show that the number of input through the serial communication to transmit data to PC machine. This paper also discusses the multi-depth communication and multi-se

9、rial communication to gain a better understanding. Serial communications functions are displayed by the C programming language. In the serial transmission design, if the transmission fails, there will be a digital jitter, in order to prevent transmission errors, while the transmission succeeds, nume

10、rical will be transferred into a decimal value displaying in the PC-lose.Keywords: serial communications, multi-machine communications, keyboard display, single-chip designClassification: TN919目 次摘要(zhiyo)I目次(mc)III TOC o 1-1 h z t 標(biāo)題(biot) 2,1 HYPERLINK l _Toc200892586 1緒論 PAGEREF _Toc200892586 h 1

11、 HYPERLINK l _Toc200892587 1.1引言 PAGEREF _Toc200892587 h 1 HYPERLINK l _Toc200892588 1.251單片機(jī)概述概述 PAGEREF _Toc200892588 h 1 HYPERLINK l _Toc200892589 2帶串口多機(jī)通信概述2 HYPERLINK l _Toc200892590 2.1串口通信概述2 HYPERLINK l _Toc200892590 2.1.1串口通信的概述2 HYPERLINK l _Toc200892590 2.1.2串口通信的研究3 HYPERLINK l _Toc20089

12、2591 2.2多機(jī)通信的原理4 HYPERLINK l _Toc200892592 3串口通信模塊設(shè)計(jì)6 HYPERLINK l _Toc200892593 3.1引言6 HYPERLINK l _Toc200892594 3.2串口通信的基本原理和設(shè)計(jì)方法6 HYPERLINK l _Toc200892590 3.2.1串口通信的基本原理6 HYPERLINK l _Toc200892590 3.2.2串口通信的設(shè)計(jì)方法9 HYPERLINK l _Toc200892595 4多機(jī)通信模塊設(shè)計(jì)15 HYPERLINK l _Toc200892596 4.1引言 PAGEREF _Toc20

13、0892596 h 15 HYPERLINK l _Toc200892597 4.2 多機(jī)通信程序設(shè)計(jì)的研究 PAGEREF _Toc200892597 h 15 HYPERLINK l _Toc200892590 4.2.1多機(jī)通信的程序設(shè)計(jì)15 HYPERLINK l _Toc200892590 4.2.2調(diào)試方法18 HYPERLINK l _Toc200892596 5結(jié)論21 HYPERLINK l _Toc200892598 參考文獻(xiàn)24 HYPERLINK l _Toc200892596 附錄26 HYPERLINK l _Toc200892599 作者簡(jiǎn)歷34 HYPERLIN

14、K l _Toc200892600 學(xué)位論文數(shù)據(jù)集35中國(guó)計(jì)量學(xué)院畢業(yè)設(shè)計(jì)(論文)PAGE 43緒論(xln) 引言(ynyn)串口是計(jì)算機(jī)上一種非常通用設(shè)備通信的協(xié)議(不要與通用串行總線Universal Serial Bus或者USB混淆)。大多數(shù)計(jì)算機(jī)包含兩個(gè)(lin )基于RS232的串口。串口同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議。同時(shí),串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)1。串口通信的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定

15、義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。 1.2 51單片機(jī)概述MCS-51 系列單片機(jī)的存儲(chǔ)器從類型上可分為數(shù)據(jù)存儲(chǔ)器(RAM)和程序存儲(chǔ)器(ROM);從連接上可分為片內(nèi)和片外數(shù)據(jù)存儲(chǔ)器以及片內(nèi)和片外程序存儲(chǔ)器。片外存儲(chǔ)器是外接的專用存儲(chǔ)器芯片,MCS-51 單片機(jī)只提供地址和命令,單片機(jī)需要通過(guò)三總線才能與片外存儲(chǔ)器聯(lián)機(jī)工作2。MCS8051 單片機(jī)串行口采用異步通信方式, 該方式是以字為單位來(lái)傳送數(shù)據(jù)的。每一字由起始位、數(shù)據(jù)位、奇偶驗(yàn)證位、停止位等構(gòu)成, 稱為一幀。在該格式中, 一個(gè)字由起始位開始、停止位結(jié)

16、束。串行口在發(fā)送指令時(shí), 首先要求發(fā)送端有效, 并從串行口TXD 端發(fā)送一起始位指令, 單片機(jī)的存儲(chǔ)單元DA TA端有效, 使存儲(chǔ)單元SBU F 中數(shù)據(jù)送至TXD, 再過(guò)1位, 產(chǎn)生第一個(gè)數(shù)據(jù), 使SBU F 數(shù)據(jù)右移一位, 并從左端補(bǔ)進(jìn)。待零檢測(cè)器檢測(cè)到當(dāng)前數(shù)據(jù)為零時(shí), 發(fā)出通知申請(qǐng)中斷。2 帶串口多機(jī)通信(tng xn)概述2.1 串口通信(tng xn)概述(i sh)2.1.1串口通信的概述典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。串口通信最重要的參數(shù)是波特率

17、、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配3: (1)波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率協(xié)議需要9600波特率,。這意味著串口通信在數(shù)據(jù)線上的采樣率為9600Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信。 (2)數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信

18、息。比如,標(biāo)準(zhǔn)的ASCII碼是0127(7位)。擴(kuò)展的ASCII碼是0255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。(3)停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。 (4)奇偶校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式

19、:偶、奇、高和低。當(dāng)然沒(méi)有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。2.1.2 串口通信(tng xn)的研究(ynji)在PC機(jī)與單片機(jī)構(gòu)成的上下位機(jī)系統(tǒng)中,經(jīng)常采用由單片機(jī)及其外圍(wiwi)電路構(gòu)成的下位機(jī)進(jìn)行數(shù)據(jù)采集,然后利用基本三線制的RS232串行口通信將數(shù)據(jù)傳送給PC機(jī),由PC機(jī)進(jìn)行數(shù)據(jù)的進(jìn)一步處理。圖2.1為其系統(tǒng)原理圖。RAM微機(jī)串口RXDTXDGDN80C51RXDTXDGDNPC機(jī)顯示MAX232RXDTXDGDN 圖2.1 系統(tǒng)原理圖程序采用C語(yǔ)言編寫,主要完成定時(shí)數(shù)據(jù)采集及數(shù)據(jù)發(fā)送工作,

20、其中定時(shí)采樣的中斷頻率由定時(shí)器0的常數(shù)自動(dòng)裝載8 b計(jì)數(shù)器方式產(chǎn)生;波特率由定時(shí)器1的方式1產(chǎn)生;信號(hào)可以隨意選擇一常數(shù),如果單片機(jī)接收到的數(shù)據(jù)等于此常數(shù),則表示按鍵成功,否則重新接受按鍵數(shù)據(jù)。圖2.2所示為程序框圖。圖2.2為程序(chngx)框圖2.2 多機(jī)通信(tng xn)的原理(yunl) 數(shù)據(jù)通信的傳輸方式 常用于數(shù)據(jù)通信的傳輸方式有單工、半雙工、全雙工和多工方式4。 單工方式:數(shù)據(jù)僅按一個(gè)固定方向傳送。因而這種傳輸方式的用途有限,常用于串行口的打印數(shù)據(jù)傳輸與簡(jiǎn)單系統(tǒng)間的數(shù)據(jù)采集。 半雙工方式:數(shù)據(jù)可實(shí)現(xiàn)雙向傳送,但不能同時(shí)進(jìn)行,實(shí)際的應(yīng)用采用某種協(xié)議實(shí)現(xiàn)收/發(fā)開關(guān)轉(zhuǎn)換。 全雙工方

21、式:允許雙方同時(shí)進(jìn)行數(shù)據(jù)雙向傳送,但一般全雙工傳輸方式的線路和設(shè)備較復(fù)雜。多工方式:以上三種傳輸方式都是用同一線路傳輸一種頻率信號(hào),為了充分地利用線路資源,可通過(guò)使用多路復(fù)用器或多路集線器,采用頻分、時(shí)分或碼分復(fù)用技術(shù),即可實(shí)現(xiàn)在同一線路上資源共享功能,我們稱之為多工傳輸方式。(2)串行數(shù)據(jù)通信兩種形式(xngsh)異步通信(tng xn) 在這種通信方式中,接收器和發(fā)送器有各自的時(shí)鐘,它們的工作是非同步的,異步通信用一幀來(lái)表示一個(gè)字符,其內(nèi)容如下:一個(gè)起始(q sh)位,僅接著是若干個(gè)數(shù)據(jù)位。 同步通信 同步通信格式中,為了克服在異步通信中,每傳輸一幀字符都必須加上起始位和停止位,占用了傳輸

22、時(shí)間,在要求傳送數(shù)據(jù)量較大的場(chǎng)合,速度就慢得多。同步傳輸方式去掉了這些起始位和停止位,只在傳輸數(shù)據(jù)塊時(shí)先送出一個(gè)同步頭(字符)標(biāo)志即可。同步傳輸方式比異步傳輸方式速度快,這是它的優(yōu)勢(shì)。但同步傳輸方式也有其缺點(diǎn),即它必須要用一個(gè)時(shí)鐘來(lái)協(xié)調(diào)收發(fā)器的工作,所以它的設(shè)備也較復(fù)雜。 (3)多機(jī)通信多機(jī)通信中,單片機(jī)串口通過(guò)MAX232傳輸?shù)絇C機(jī)上,每次傳輸數(shù)據(jù)必須確定PC機(jī)的地址位,然后PC機(jī)接收數(shù)據(jù)。所以,在多機(jī)通信中,必須設(shè)定好每臺(tái)PC機(jī)的地址位,通過(guò)不同的地址位傳輸?shù)讲煌腜C機(jī)上。主機(jī)來(lái)控制從機(jī),并與它們通信。如圖2.3所示為多機(jī)通信原理圖,從機(jī) 4 單片機(jī)RXDTXDGDN從機(jī) 3 單片機(jī)R

23、XDTXDGDN從機(jī) 2 單片機(jī)RXDTXDGDN從機(jī) 1 單片機(jī)RXDTXDGDN單片機(jī) 主機(jī) TXDRXDGDN圖2.3為多機(jī)傳輸(chun sh)原理圖3串口通信(tng xn)模塊設(shè)計(jì)(shj)3.1引言在單片機(jī)系統(tǒng)中,串口(UART,通用異步收發(fā)接口)是一個(gè)非常重要的組成部分。通常使用單片機(jī)串口通過(guò)MAX232電平轉(zhuǎn)換芯片與上位機(jī)連接,以進(jìn)行上位機(jī)與下位機(jī)的數(shù)據(jù)交換、參數(shù)設(shè)置、組成網(wǎng)絡(luò)以及各種外部設(shè)備的連接等。MAX232串行接口總線具有成本低、簡(jiǎn)單可靠、容易使用等特點(diǎn),串口通信仍然是很好的選擇,有著廣闊的使用前景5。 8051單片機(jī)串行接口是一個(gè)可編程的全雙工串行通信接口。它可用作

24、異步通信方式(fngsh)(UART),與串行傳送信息的外部設(shè)備相連接,或用于通過(guò)標(biāo)準(zhǔn)異步通信協(xié)議進(jìn)行全雙工的8051多機(jī)系統(tǒng)也能通過(guò)同步方式,使用TTL或CMOS移位寄存器來(lái)擴(kuò)充I/O口6。8051單片機(jī)通過(guò)管腳RXD(P3.0,串行數(shù)據(jù)接收端)和管腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通信。SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會(huì)出現(xiàn)沖突(chngt),因?yàn)樗鼈儍蓚€(gè)一個(gè)只能被CPU讀出數(shù)據(jù),一個(gè)只能被CPU寫入數(shù)據(jù)7。3.2 串口通信的基本原理和設(shè)計(jì)(shj)方法3.2.1串口通信的基本原理 (1) 串行口的工作方式 8051單片機(jī)的全雙

25、工串行口可編程為4種工作方式,現(xiàn)分述如下8:方式0為移位寄存器輸入/輸出方式??赏饨右莆患拇嫫饕詳U(kuò)展I/O口,也能外接同步輸入/輸出設(shè)備。8位串行數(shù)據(jù)者是從RXD輸入或輸出,TXD用來(lái)輸出同步數(shù)據(jù)3。 輸出 串行數(shù)據(jù)從RXD管腳輸出,TXD管腳輸出數(shù)據(jù)。CPU將數(shù)據(jù)寫入發(fā)送寄存器時(shí),立即啟動(dòng)發(fā)送,將8位數(shù)據(jù)以fos/12的固定波特率從RXD輸出,低位在前,高位在后。發(fā)送完一幀數(shù)據(jù)后,發(fā)送中斷標(biāo)志TI由硬件置位。 輸入 當(dāng)串行口以方式0接收時(shí),先置位允許接收控制位REN。此時(shí),RXD為串行數(shù)據(jù)輸入端,TXD仍為同步數(shù)據(jù)輸出端。當(dāng)(RI)=0和(REN)=1同時(shí)滿足時(shí),開始接收。當(dāng)接收到第8位數(shù)據(jù)

26、時(shí),將數(shù)據(jù)移入接收寄存器,并由硬件置位RI。 = 1 * GB3 方式1為波特率可變的10位異步通信接口方式。發(fā)送或接收一幀信息,包括1個(gè)起始位0,8個(gè)數(shù)據(jù)位和1個(gè)停止位1。 輸出 當(dāng)CPU執(zhí)行一條指令將數(shù)據(jù)寫入發(fā)送緩沖SBUF時(shí),就啟動(dòng)發(fā)送。串行數(shù)據(jù)從TXD管腳輸出,發(fā)送完一幀數(shù)據(jù)后,就由硬件置位TI。 輸入 在(REN)=1時(shí),串行口采樣RXD管腳,當(dāng)采樣到1至0的跳變時(shí),確認(rèn)是開始位0,就開始接收一幀數(shù)據(jù)。只有當(dāng)(RI)=0且停止位為1或者(SM2)=0時(shí),停止位才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;不然信息丟失。所以在方式1接收時(shí),應(yīng)先清零RI和SM2標(biāo)志

27、。 = 2 * GB3 方式(fngsh)2為固定波特率的11位UART方式(fngsh)。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)。輸出: 發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位,附加的第9位來(lái)自SCON寄存器的TB8位,用軟件置位或復(fù)位。它可作為多機(jī)通信中地址(dzh)/數(shù)據(jù)信息的標(biāo)志位,也能作為數(shù)據(jù)的奇偶校驗(yàn)位。當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫入SUBF的指令時(shí),就啟動(dòng)發(fā)送器發(fā)送。發(fā)送一幀信息后,置位中斷標(biāo)志TI。 輸入: 在(REN)=1時(shí),串行口采樣RXD管腳,當(dāng)采樣到1至0的跳變時(shí),確認(rèn)是開始位0,就開始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng)(RI)=0或者(SM2)=0時(shí)

28、,第9位數(shù)據(jù)才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;不然信息丟失。且不置位RI。再過(guò)一位時(shí)間后,不管上述條件時(shí)否滿足,接收電路即行復(fù)位,并重新檢測(cè)RXD上從1到0的跳變。 = 3 * GB3 方式3為波特率可變的11位UART方式。除波特率外,其余與方式2相同。(2) 波特率選擇 如前所述,在串行通信中,收發(fā)雙方的數(shù)據(jù)傳送率(波特率)要有一定的約定。在8051串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時(shí)器T1的溢出率控制。方式0 方式0的波特率固定為主振頻率的1/12。方式2 方式2的波特率由PCON中的選擇位SMOD來(lái)決

29、定,可由下式表示:波特率=2的SMOD次方除以64再乘一個(gè)fosc,也就是當(dāng)SMOD=1時(shí),波特率為1/32fosc,當(dāng)SMOD=0時(shí),波特率為1/64fosc。方式1和方式39定時(shí)器T1作為波特率發(fā)生器,其公式如下:波特率=定時(shí)器T1溢出率 (3.1)T1溢出率= T1計(jì)數(shù)率/產(chǎn)生溢出所需的周期數(shù) (3.2) 式中T1計(jì)數(shù)率取決于它工作在定時(shí)器狀態(tài)還是計(jì)數(shù)器狀態(tài)。當(dāng)工作于定時(shí)器狀態(tài)時(shí),T1計(jì)數(shù)率為fosc/12;當(dāng)工作于計(jì)數(shù)器狀態(tài)時(shí),T1計(jì)數(shù)率為外部輸入頻率,此頻率應(yīng)小于fosc/24。產(chǎn)生溢出所需周期與定時(shí)器T1的工作方式、T1的預(yù)置值有關(guān)10。定時(shí)器T1工作(gngzu)于方式0:溢出所

30、需周期數(shù)=8192-x (3.3)定時(shí)器T1工作于方式(fngsh)1:溢出所需周期數(shù)=65536-x (3.4)定時(shí)器T1工作于方式(fngsh)2:溢出所需周期數(shù)=256-x (3.5)因?yàn)榉绞?為自動(dòng)重裝入初值的8位定時(shí)器/計(jì)數(shù)器模式,所以用它來(lái)做波特率發(fā)生器最恰當(dāng)。當(dāng)時(shí)鐘頻率選用11.0592MHZ時(shí),取易獲得標(biāo)準(zhǔn)的波特率,所以很多單片機(jī)系統(tǒng)選用這個(gè)看起來(lái)“怪”的晶體震蕩器就是這個(gè)道理6。表3.1列出了定時(shí)器T1工作于方式2常用波特率及初值11常用波特率Fosc(MHZ)SMODTH1初值1920011.05921FDH960011.05920FDH480011.05920FAH240

31、011.05920F4h120011.05920E8h(3 ) PC 機(jī)串行通信的原理系統(tǒng)中PC機(jī)使用COM1 、COM2 兩個(gè)串行通信端口,串行端口的本質(zhì)功能是作為CPU 和串行設(shè)備間的編碼轉(zhuǎn)換器,當(dāng)數(shù)據(jù)從CPU 經(jīng)過(guò)串行端口送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換位字節(jié)數(shù)據(jù)。PC 串行通信指直接對(duì)串行通信端口的UART(PC 機(jī)的通用異步收發(fā)器,也叫做異步通信適配器,是PC 機(jī)用于異步通信的接口) 進(jìn)行編程實(shí)現(xiàn)的通信。利用C語(yǔ)言進(jìn)行異步通信編程,其實(shí)質(zhì)是對(duì)UART 內(nèi)部寄存器的讀出或?qū)懭氩僮?。PC 機(jī)每個(gè)MAX232中有10 個(gè)可編程的單字節(jié)寄存器,可用于控制、監(jiān)視操

32、作串行端口,COM1 的寄存器地址為3F8H - 3FEH ,COM2中的寄存器地址為2F8H - 2FEH。10 個(gè)寄存器由7 個(gè)地址訪問(wèn),其中5 個(gè)寄存器的訪問(wèn)條件是先設(shè)置3FB H 線路控制寄存器的最高位為“1”,該位也稱為DLAB 狀態(tài)位。在通信前,必須要對(duì)串行通信口進(jìn)行初始化,即設(shè)置通信參數(shù)。初始化主要包括設(shè)定傳輸波特率,確定數(shù)據(jù)傳輸幀格式等。(4 ) C語(yǔ)言中斷處理程序中斷是一種特殊(tsh)的指令,它停止當(dāng)前正在(zhngzi)執(zhí)行的程序,把系統(tǒng)當(dāng)前的狀態(tài)保留(boli)在堆棧中,然后轉(zhuǎn)移到由中斷號(hào)所指定的中斷服務(wù)程序,當(dāng)中斷服務(wù)程序執(zhí)行完后,在回到原先的被中斷的程序中繼續(xù)執(zhí)行。

33、中斷技術(shù)的采用,實(shí)現(xiàn)了快速CPU 與慢速外設(shè)的并行工作, 從而提高了計(jì)算機(jī)的工作效率。C 語(yǔ)言作為最靠近匯編語(yǔ)言的高級(jí)語(yǔ)言,已充分表現(xiàn)出其直接高效地調(diào)度計(jì)算機(jī)硬件資源的優(yōu)越性。用C 語(yǔ)言進(jìn)行用戶中斷服務(wù)程序的設(shè)計(jì)時(shí),通常應(yīng)包括編寫中斷服務(wù)程序、安裝中斷服務(wù)程序和激活中斷服務(wù)程序三個(gè)方面的工作。3.2.2 串口通信的設(shè)計(jì)方法(1)波特率選擇 波特率(Boud Rate)就是在串口通信中每秒能夠發(fā)送的位數(shù)(bits/second)。MSC-51串行端口在四種工作模式下有不同的波特率計(jì)算方法。其中,模式0和模式2波特率計(jì)算很簡(jiǎn)單,模式1和模式3的波特率選擇相同,故在此僅以工作模式1為例來(lái)說(shuō)明串口通信

34、波特率的選擇12。在串行端口工作于模式1,其波特率將由計(jì)時(shí)/計(jì)數(shù)器1來(lái)產(chǎn)生,通常設(shè)置定時(shí)器工作于模式2(自動(dòng)再加模式)。在此模式下波特率計(jì)算公式為8:波特率=(1+SMOD)*晶振頻率/(384*(256-TH1) (3.6)其中,SMOD寄存器PCON的第7位,稱為波特率倍增位; TH1定時(shí)器的重載值。 在選擇波特率的時(shí)候需要考慮兩點(diǎn):首先,系統(tǒng)需要的通信速率。這要根據(jù)系統(tǒng)的運(yùn)作特點(diǎn),確定通信的頻率范圍。然后考慮通信時(shí)鐘誤差。使用同一晶振頻率在選擇不同的通信速率時(shí)通信時(shí)鐘誤差會(huì)有很大差別。為了通信的穩(wěn)定,我們應(yīng)該盡量選擇時(shí)鐘誤差最小的頻率進(jìn)行通信。下面舉例說(shuō)明波特率選擇過(guò)程13:假設(shè)系統(tǒng)要求

35、的通信頻率在20000bit/s以下,晶振頻率為12MHz,設(shè)置SMOD=1(即波特率倍增)。則 TH1=256-62500/波特率 (3.7)根據(jù)波特率取值表,我們知道可以選取的波特率有:1200,2400,4800,9600,19200。列計(jì)數(shù)器重載值,通信誤差如下表:表3.2通信(tng xn)誤差表14 因此(ync),在通信中,本次(bn c)設(shè)計(jì)選用波特率為9600。(2)通信協(xié)議的使用 通信協(xié)議是通信設(shè)備在通信前的約定10。單片機(jī)、計(jì)算機(jī)有了協(xié)議這種約定,通信雙方才能明白對(duì)方的意圖,以進(jìn)行下一步動(dòng)作。假定我們需要在PC機(jī)與單片機(jī)之間進(jìn)行通信,在雙方程式設(shè)計(jì)過(guò)程中,有如下約定15:

36、0 xA1:?jiǎn)纹瑱C(jī)讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);0 xA2:?jiǎn)纹瑱C(jī)從PC機(jī)接收一段控制數(shù)據(jù);0 xA3:?jiǎn)纹瑱C(jī)操作成功信息。在系統(tǒng)工作過(guò)程中,單片機(jī)接收到PC機(jī)數(shù)據(jù)信息后,便查找協(xié)議,完成相應(yīng)的操作。當(dāng)單片機(jī)接收到0 xA1時(shí),讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);當(dāng)單片機(jī)接收到0 xA2時(shí),單片機(jī)等待從PC機(jī)接收一段控制數(shù)據(jù);當(dāng)PC機(jī)接收到0 xA3時(shí),就表明單片機(jī)操作已經(jīng)成功。(3)硬件連接51單片機(jī)有一個(gè)全雙工的串行通訊口,所以單片機(jī)和計(jì)算機(jī)之間可以方便地進(jìn)行串口通信,行串行通信時(shí)要滿足一定的條件,計(jì)算機(jī)的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須

37、有一個(gè)電平轉(zhuǎn)換電路,采用了專用芯片MAX232進(jìn)行轉(zhuǎn)換12。我們采用了三線制連接串口,也就是說(shuō)和計(jì)算機(jī)的10針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡(jiǎn)單的連接方法,電路如下圖所示,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連接16。 圖3.1使用(shyng)MAX232串口通信電路圖串口通訊的硬件電路如上圖所示為了能夠在計(jì)算機(jī)端看到單片機(jī)發(fā)出的數(shù)據(jù),這里利用如下(rxi)圖標(biāo)的一個(gè)計(jì)算機(jī)串口調(diào)試軟件來(lái)觀察17。圖3.2 串口調(diào)試(dio sh)助手窗口(1) SBUF數(shù)據(jù)緩沖寄存器這是一個(gè)可以直接尋

38、址的串行口專用寄存器。實(shí)際上SBUF包含了兩個(gè)獨(dú)立的寄存器,一個(gè)是發(fā)送寄存,另一個(gè)是接收寄存器,但它們都共同使用同一個(gè)尋址地址99H。CPU在讀SBUF時(shí)會(huì)指到接收寄存器,在寫時(shí)會(huì)指到發(fā)送寄存器,而且接收寄存器是雙緩沖寄存器,這樣可以避免接收中斷沒(méi)有及時(shí)的被響應(yīng),數(shù)據(jù)沒(méi)有被取走,下一幀數(shù)據(jù)已到來(lái),而造成的數(shù)據(jù)重疊問(wèn)題。發(fā)送器則不需要用到雙緩沖,一般情況下我們?cè)趯懓l(fā)送程序時(shí)也不必用到發(fā)送中斷去外理發(fā)送數(shù)據(jù)18。(2) SCON串行口控制(kngzh)寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會(huì)引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的尋址地址是98H,是一個(gè)可以位

39、尋址的寄存器,作用就是監(jiān)視和控制51芯片串行口的工作狀態(tài)。51芯片的串口可以工作在幾個(gè)不同的工作模式下,其工作模式的設(shè)置就是使用SCON寄存器。它的各個(gè)位的具體(jt)定義如下19: 表3.3串行口控制(kngzh)寄存器SCON(MSB)(LSB)SM0SM1SM2RENTB8RB8TIRISM0、SM1為串行口工作模式設(shè)置位,這樣兩位可以對(duì)應(yīng)進(jìn)行四種模式的設(shè)置。 表3.4串行口工作模式設(shè)置SM0SM1模式功能波特率000同步移位寄存器fosc/120118位UART可變1029位UARTfosc/32或fosc/641139位UART可變 在這里只說(shuō)明最常用的模式1,其它的模式也就一一略過(guò)

40、。表中的fosc代表振蕩器的頻率,也就是晶振的頻率。SM2在模式2、模式3中為多機(jī)通信使能位。在模式0中要求該位為0。 REM為允許接收位,REM置1時(shí)串口允許接收,置0時(shí)禁止接收。REM是由軟件置位或清零。如果在一個(gè)電路中接收和發(fā)送引腳P3.0,P3.1都和上位機(jī)相連,在軟件上有串口中斷處理程序,當(dāng)要求在處理某個(gè)子程序時(shí)不允許串口被上位機(jī)來(lái)的控制字符產(chǎn)生中斷,那么可以在這個(gè)子程序的開始處加入REM=0來(lái)禁止接收,在子程序結(jié)束處加入REM=1再次打開串口接收。 TB8發(fā)送數(shù)據(jù)位8,在模式2和3是要發(fā)送的第9位。該位可以用軟件根據(jù)需要置位或清除(qngch),通常這位在通信協(xié)議中做奇偶位,在多處

41、理機(jī)通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。 RB8接收數(shù)據(jù)位8,在模式2和3是已接收數(shù)據(jù)的第9位。該位可能是奇偶位,地址(dzh)/數(shù)據(jù)標(biāo)識(shí)位。在模式0中,RB8為保留位沒(méi)有被使用。在模式1中,當(dāng)SM2=0,RB8是已接收數(shù)據(jù)的停止位。 TI發(fā)送中斷標(biāo)識(shí)位。在模式0,發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置位。其它模式中則是在發(fā)送停止(tngzh)位之初,由硬件置位。TI置位后,申請(qǐng)中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,TI都必須由軟件來(lái)清除,也就是說(shuō)在數(shù)據(jù)寫入到SBUF后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時(shí)TI=1,表明發(fā)送已完成,TI不會(huì)由硬件清除,所以這時(shí)必須用軟件對(duì)其清

42、零。 RI接收中斷標(biāo)識(shí)位。在模式0,接收第8位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。RI=1,申請(qǐng)中斷,要求CPU取走數(shù)據(jù)。但在模式1中,SM2=1時(shí),當(dāng)未收到有效的停止位,則不會(huì)對(duì)RI置位。同樣RI也必須要靠軟件清除。(3)波特率在使用串口做通信時(shí),一個(gè)很重要的參數(shù)就是波特率,只有上下位機(jī)的波特率一樣時(shí)才可以進(jìn)行正常通信。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。波特率是指每秒傳輸?shù)淖止?jié)數(shù),如標(biāo)準(zhǔn)9600會(huì)被誤認(rèn)為每秒種可以傳送9600個(gè)字節(jié),而實(shí)際上它是指每秒可以傳送9600個(gè)二進(jìn)位,而一個(gè)字節(jié)要8個(gè)二進(jìn)位,如用串口模式1來(lái)傳輸那么加上起始位和停止位,每個(gè)數(shù)

43、據(jù)字節(jié)就要占用10個(gè)二進(jìn)位,9600波特率用模式1傳輸時(shí),每秒傳輸?shù)淖止?jié)數(shù)是960010960字節(jié)。51芯片的串口工作模式0的波特率是固定的,為fosc/12,以一個(gè)12M的晶振來(lái)計(jì)算,那么它的波特率可以達(dá)到1M。模式2的波特率是固定在fosc/64或fosc/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率為focs/64,SMOD為1,波特率為focs/32。模式1和模式3的波特率是可變的,取決于定時(shí)器1或2(52芯片)的溢出速率??梢杂靡韵碌墓饺ビ?jì)算20。波特率(2SMOD32)定時(shí)器1溢出速率 (3.8) 上式中如設(shè)置了PCON寄存器中的SMOD位為1時(shí)

44、就可以把波特率提升2倍。通常會(huì)使用定時(shí)器1工作在定時(shí)器工作模式2下,這時(shí)定時(shí)值中的TL1做為計(jì)數(shù),TH1做為自動(dòng)重裝值,這個(gè)定時(shí)模式下,定時(shí)器溢出后,TH1的值會(huì)自動(dòng)裝載到TL1,再次開始計(jì)數(shù),這樣可以不用軟件去干預(yù),使得定時(shí)更準(zhǔn)確。在這個(gè)定時(shí)模式2下定時(shí)器1溢出速率的計(jì)算公式如下:溢出速率(sl)(計(jì)數(shù)速率)/(256TH1) (3.9) 上式中的“計(jì)數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在51芯片中定時(shí)器啟動(dòng)后會(huì)在每一個(gè)機(jī)器周期使定時(shí)寄存器TH的值增加(zngji)一,一個(gè)機(jī)器周期等于十二個(gè)振蕩周期,所以可以得知51芯片的計(jì)數(shù)速率為晶體振蕩器頻率的1/12,一個(gè)12M的晶振用在51芯片上,

45、那么(n me)51的計(jì)數(shù)速率就為1M。通常用11.0592M晶體是為了得到標(biāo)準(zhǔn)的無(wú)誤差的波特率。如果要得到9600的波特率,晶振為11.0592M和12M,定時(shí)器1為模式2,SMOD設(shè)為1,分別看看那所要求的TH1為何值。代入公式(3.8) (3.9)得:11.0592M9600(232)(11.0592M/12)/(256-TH1) TH125012M9600(232)(12M/12)/(256-TH1)TH1249.49 上面的計(jì)算可以看出使用12M晶體的時(shí)候計(jì)算出來(lái)的TH1不為整數(shù),而TH1的值只能取整數(shù),這樣它就會(huì)有一定的誤差存在不能產(chǎn)生精確的9600波特率。當(dāng)然一定的誤差是可以在使

46、用中被接受的,就算使用11.0592M的晶體振蕩器也會(huì)因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對(duì)波特率的影響是十分之小的,可以忽略不計(jì)。4 多機(jī)通信(tng xn)模塊設(shè)計(jì)(shj)4.1引言(ynyn) MCS-51單片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個(gè)在物理上獨(dú)立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99H。這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的MA

47、X-232接口21。4.2多機(jī)通信程序設(shè)計(jì)的研究4.2.1多機(jī)通信程序設(shè)計(jì)根據(jù)課題要求,利用C語(yǔ)言編寫程序?qū)崿F(xiàn)功能。如下為設(shè)計(jì)流程圖: 圖4.1 多機(jī)通信(tng xn)程序設(shè)計(jì)流程圖程序設(shè)計(jì)(chn x sh j)實(shí)現(xiàn)(shxin)數(shù)據(jù)232異步發(fā)送delay(); while(1) led_display(); /數(shù)碼管顯示 delay(); scan_key(); /掃描 delay(); if(flag_key=1) flag_key=0; ES=0; TI=0; SBUF=(0 x30+ram1); /目的轉(zhuǎn)換為ascii 碼 while(TI=0) nop(); TI=0; fla

48、g_send=1; /置高一次發(fā)送(f sn)標(biāo)記 ES=1; /允許(ynx)接收中斷 delay3(1); /延 串口接收中斷(zhngdun)函數(shù) void serial () interrupt 4 using 3 unsigned char ch; /局部變量聲明 if(RI) RI = 0 ; ch=(SBUF-0X30); if (ch=ram1) flag_send=0; /發(fā)送成功,清除一次發(fā)送標(biāo)記 flag_b_dark=0;/清除點(diǎn)閃,保證退出時(shí)候?yàn)榱痢?如果接收成功,清除點(diǎn)閃,保證退出時(shí)候?yàn)榱?,反之,則實(shí)現(xiàn)點(diǎn)閃。一對(duì)多機(jī)通信設(shè)計(jì)實(shí)現(xiàn) 類似的,實(shí)現(xiàn)了一對(duì)一通信,對(duì)應(yīng)的一對(duì)

49、多機(jī)通信也就不難了。最主要的區(qū)別是,當(dāng)實(shí)現(xiàn)通信時(shí),對(duì)應(yīng)PC機(jī)的地址通信,每臺(tái)PC機(jī)設(shè)好不同的地址,然后傳輸數(shù)據(jù)。在波特率選擇上,因?yàn)椴ㄌ芈试酱?,傳輸速度越快,但是?duì)應(yīng)速度提高,波特率誤差就越大??紤]到一對(duì)多機(jī)通信,數(shù)據(jù)較大,為了提高傳輸速度,綜合考慮誤差,所以選擇波特率為9600。 如圖所示4.2為一對(duì)多機(jī)通信原理框圖,等待數(shù)據(jù)發(fā)送,當(dāng)有數(shù)據(jù)發(fā)送出去,串口中斷接收,并對(duì)應(yīng)(duyng)地址,給PC機(jī)發(fā)送,從而實(shí)現(xiàn)一對(duì)多機(jī)數(shù)據(jù)通信等待發(fā)送數(shù)據(jù)主機(jī)從機(jī) n.串口中斷接收實(shí)現(xiàn)232異步發(fā)送從機(jī)1.圖4.2 一對(duì)(y du)多機(jī)通信流程圖4.2.2調(diào)試(dio sh)方法(1) 調(diào)試前的準(zhǔn)備工作 硬件

50、。1臺(tái)普通計(jì)算機(jī)(需要帶有2個(gè)標(biāo)準(zhǔn)串口)和根串口線(兩頭都是母頭,連線關(guān)系如圖1所示)和一個(gè)實(shí)驗(yàn)電路板。 串口軟件通用的串口軟件(串口調(diào)試助手),主要用來(lái)收發(fā)數(shù)據(jù)。(2) 基本調(diào)試命令介紹這個(gè)串口調(diào)試方法主要是增強(qiáng)了軟件的仿真能力,可以利用軟件仿真更多的單片機(jī)功能。在這些功能中,其中有一個(gè)很重要的功能就是利用計(jì)算機(jī)的串口來(lái)模擬單片機(jī)的串口。首先要介紹仿真時(shí)需要使用的兩個(gè)命令:ASSIGN和MODE。 ASSIGN命令將單片機(jī)的串口綁定到計(jì)算機(jī)的串口。其中:計(jì)算機(jī)的串口,可以是COM1、COM2、COM3或COM4;而inreg和outreg代表單片機(jī)的串口。對(duì)于只有一個(gè)串口的普通單片機(jī),即SI

51、N和SOUT;對(duì)于有兩個(gè)或者多個(gè)串口的單片機(jī),即SnIN和SnOUT(n=0,1,即單片機(jī)的串口號(hào))。圖4.2串口連線(lin xin)示意圖 MODE命令(mng lng)設(shè)置(shzh)被綁定計(jì)算機(jī)串口的參數(shù)?;臼褂梅绞綖椋篗ODE COMx baudrate, parity, databits, stopbits其中: COMx(x = 1,2,)代表計(jì)算機(jī)的串口號(hào);baudrate代表串口的波特率;parity代表校驗(yàn)方式;databits代表數(shù)據(jù)位長(zhǎng)度;stopbits代表停止位長(zhǎng)度。使用以上兩個(gè)命令,就能夠?qū)⒂?jì)算機(jī)的串口模擬成單片機(jī)的串口了。在進(jìn)行軟件仿真時(shí),所有發(fā)送到被綁定的計(jì)

52、算機(jī)串口上的數(shù)據(jù)都會(huì)轉(zhuǎn)發(fā)到Keil模擬的單片機(jī)串口上,用戶程序可以通過(guò)中斷處理程序或查詢方式接收到這些數(shù)據(jù);同樣,單片機(jī)程序中發(fā)送到單片機(jī)串口上的數(shù)據(jù)也會(huì)通過(guò)被綁定的計(jì)算機(jī)串口發(fā)送出來(lái),可以被其他軟件所接收。利用這個(gè)特點(diǎn),就可以方便地仿真、調(diào)試單片機(jī)的串口部分程序。要注意的是,這兩個(gè)命令需要一起使用。 仿真步驟首先,用串口線將計(jì)算機(jī)的串口與實(shí)驗(yàn)板連接起來(lái)。這兩個(gè)串口一個(gè)用來(lái)模擬單片機(jī)串口,另一個(gè)給調(diào)試程序使用。其次,編寫好用戶程序,并編譯通過(guò)。然后,設(shè)置工程文件(Project)的相關(guān)參數(shù),如圖2和圖3所示。主要是選擇軟件仿真模式(Use Simulator)以及晶振參數(shù)。 HYPERLINK

53、 /bluebasket/pic/item/dae79409e23a4e92d0581bd0.jpg t _blank 圖4.3 仿真(fn zhn)參數(shù)設(shè)置為了不必每次進(jìn)入仿真(fn zhn)狀態(tài)后,都需要輸入串口參數(shù)設(shè)置命令,可以建立一個(gè)初始化文件。初始化文件是一個(gè)普通的文本文件,內(nèi)容就是仿真時(shí)需要的命令,按照順序一行輸入一條。如圖2所示,建立了一個(gè)初始化文件。這樣,當(dāng)每次進(jìn)入仿真調(diào)試狀態(tài)時(shí),軟件(run jin)就會(huì)自動(dòng)載入內(nèi)容進(jìn)行初始化。圖4.4 晶振參數(shù)設(shè)置為了正確仿真串口,在軟件仿真調(diào)試時(shí),還需要設(shè)置實(shí)際使用的晶振頻率。這個(gè)參數(shù)非常重要,直接影響通信的波特率,參數(shù)的單位是MHz。設(shè)

54、置好參數(shù)后,就可以進(jìn)行仿真了。單擊工具欄的圖標(biāo)按此在新窗口瀏覽圖片進(jìn)入Debug(仿真調(diào)試)狀態(tài)。然后設(shè)置斷點(diǎn),一般是在關(guān)鍵地方或與串口相關(guān)聯(lián)的地方設(shè)置。再單擊圖標(biāo)運(yùn)行(Run)用戶程序,使用戶程序運(yùn)轉(zhuǎn)起來(lái)(不然是接收不到串口數(shù)據(jù)的)。這時(shí)再使用串口調(diào)試軟件或用戶調(diào)試軟件,發(fā)送通信命令或者數(shù)據(jù)包,看用戶程序是否進(jìn)入斷點(diǎn),以及相關(guān)的變量是否正確。還可以有意發(fā)送帶有錯(cuò)誤數(shù)據(jù)的數(shù)據(jù)包,以觀察用戶程序的異常處理部分是否正常。一旦發(fā)現(xiàn)程序中的錯(cuò)誤,可以馬上停止仿真調(diào)試,立即修改代碼,然后再次重復(fù)上面的步驟進(jìn)行仿真。因?yàn)椴恍枰c用戶目標(biāo)板聯(lián)機(jī),也不用下載代碼到用戶板上,所以速度非常高。以上這些步驟和使用硬

55、件仿真器的基本一樣,只不過(guò)現(xiàn)在使用的是軟件仿真。需要注意的是:仿真時(shí)單片機(jī)串口實(shí)際的波特率由MODE命令來(lái)指定,單片機(jī)程序中的TMOD、SCON等參數(shù)是不影響(yngxing)串口仿真狀態(tài)的(也就是說(shuō)這些參數(shù)不影響仿真的波特率,即使它們是錯(cuò)誤的)。但是中斷的使能位(如ES、EA等)還是起作用的,如果ES或EA被禁止,那么就不會(huì)進(jìn)入串口中斷。五 結(jié)論(jiln) 本次(bn c)課題主要研究的是單片機(jī)鍵盤輸入和多機(jī)通信模塊,利用C語(yǔ)言實(shí)現(xiàn)單片機(jī)顯示和串口通信傳輸,同時(shí)深入多機(jī)通信的進(jìn)行理論的研究,深刻理解多機(jī)通信在現(xiàn)實(shí)生活中的應(yīng)用。本次畢業(yè)設(shè)計(jì)利用實(shí)驗(yàn)板和PC進(jìn)行串口通信。通過(guò)對(duì)該系統(tǒng)的開發(fā),熟

56、悉單片機(jī)系統(tǒng),并能掌握鍵盤輸入和顯示方面的基礎(chǔ)編程工作,在導(dǎo)師的引導(dǎo)下,掌握許多單片機(jī)開發(fā)知識(shí),為以后的工作打下堅(jiān)實(shí)的基礎(chǔ)。圖5.1為手動(dòng)鍵盤輸入的結(jié)果,圖5.2為實(shí)驗(yàn)板連接RS232到PC機(jī)進(jìn)行通信,圖5.3為手動(dòng)按鍵傳輸?shù)絇C機(jī)的結(jié)果。圖5.1為手動(dòng)鍵盤輸入的結(jié)果(ji gu)如圖5.1所示,當(dāng)每次鍵盤輸入的數(shù)值,通過(guò)(tnggu)單片機(jī)顯示,如果出錯(cuò)或者顯示不成功,則顯示出點(diǎn)閃,回到最初狀態(tài),等待鍵盤輸入。顯示(xinsh)的數(shù)值1為手動(dòng)輸入的結(jié)果。圖5.2為實(shí)驗(yàn)板連接RS232到PC機(jī)進(jìn)行(jnxng)通信如圖5.2所示,通過(guò)連接(linji)232串口,把鍵盤輸入的值,傳輸?shù)絇C機(jī)。

57、將手動(dòng)輸入的1通過(guò)(tnggu)232傳輸?shù)絇C機(jī)。圖5.3為手動(dòng)按鍵(n jin)傳輸?shù)絇C機(jī)的結(jié)果如圖5.3所示,利用串口調(diào)試(dio sh)助手,把傳來(lái)的值在PC機(jī)上顯示(xinsh)出來(lái)。若顯示正確,并反饋到單片機(jī),消除點(diǎn)閃。軟件顯示的1為鍵盤輸入的數(shù)據(jù)通過(guò)232到PC機(jī)的結(jié)果。參考文獻(xiàn)1 P roak is J G,M ano lak isD G. D igital Signal P rocessing. New York: Macm illan, 1992.M.Luise and R. Reggiannini. Carrier Frequency Acquisition and T

58、racking for OFDM SystemsA. IEEE Trans. Commun. 1996,44:. 150-159.2 Altera Corporation. Nios software developers handbookZ. Sanfrancisco,USA:Altera Corporation, 2004.168-1893 黃智偉,朱衛(wèi)華. 433MHz 單片射頻nRF401 收發(fā)(shuf)芯片 J . 世界(shji)電子元件,2001 ,29-404 馬玉春,宋瀚濤. 串行通信協(xié)議的研究(ynji)及應(yīng)用 J . 計(jì)算機(jī)應(yīng)用研究, 2004, 04 (2) : 22

59、8 - 230 5 李妮. 多串口通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) J . 艦船電子工程, 2005 (06) : 70 - 73. 6 Fortuna L, FrascaM. Alessandro Rizzo. Chaotic pulse position modulation to imp rove theefficiency of sonar sensors J . IEEE Transactions on Instrumentation and Measurement, 2003, (52) : 1809 - 1814.7 HYPERLINK /asp/vipsearch.asp?Query=%D0

60、%ED%D2%CB%C9%EA&Type=A 許宜申, HYPERLINK /asp/vipsearch.asp?Query=%D6%EC%D0%C0%BB%AA&Type=A 朱欣華, 基于VC60的PC機(jī)與單片機(jī)之間的串行通信 J .江蘇蘇州215006 2 HYPERLINK /asp/vipsearch.asp?Query=%B6%AB%C4%CF%B4%F3%D1%A7%D2%C7%C6%F7%BF%C6%D1%A7%D3%EB%B9%A4%B3%CC%CF%B5&Type=S 東南大學(xué)儀器科學(xué)與工程系,江蘇南京210096 2008,56-778 HYPERLINK /asp/vi

溫馨提示

  • 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)論