(畢業(yè)論文)基于單片機(jī)的串口通訊設(shè)計(jì)_第1頁(yè)
(畢業(yè)論文)基于單片機(jī)的串口通訊設(shè)計(jì)_第2頁(yè)
(畢業(yè)論文)基于單片機(jī)的串口通訊設(shè)計(jì)_第3頁(yè)
(畢業(yè)論文)基于單片機(jī)的串口通訊設(shè)計(jì)_第4頁(yè)
(畢業(yè)論文)基于單片機(jī)的串口通訊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 工程訓(xùn)練設(shè)計(jì)報(bào)告題目:基于單片機(jī)的串口通訊設(shè)計(jì)學(xué) 院計(jì)算機(jī)與信息科學(xué)學(xué)院專(zhuān) 業(yè) 自動(dòng)化 組長(zhǎng) 組 員 指導(dǎo)教師 成 績(jī)?nèi)?期2013年8月25日摘要:本文設(shè)計(jì)的是基于單片機(jī)串口通訊的發(fā)送和接收。本系統(tǒng)的設(shè)計(jì)主要是以?xún)蓚€(gè)at89c51單片機(jī)為核心部分,進(jìn)行數(shù)據(jù)發(fā)送和接收的控制。該系統(tǒng)采用兩個(gè)max232芯片進(jìn)行電平的轉(zhuǎn)換,同時(shí)用lcd顯示發(fā)送和接收的相應(yīng)的數(shù)據(jù),在實(shí)際應(yīng)用中很方便。并且能實(shí)現(xiàn)用鍵盤(pán)控制數(shù)據(jù)發(fā)送和接收的啟動(dòng)和停止。關(guān)鍵詞:串口通訊,at89c51單片機(jī),lcd顯示,鍵盤(pán)控制abstract: in this paper, the design is based on single

2、 chip computer serial communication to send and receive. the design of this system is mainly based on two at89c51 as the core part, send and receive data control. the system uses two max232 chip level transformation, at the same time with the lcd display to send and receive the corresponding data, i

3、s very convenient in practical application. and can realize the keyboard to control the sending and receiving data to start and stop.key words:a serial port communication, at89c51 single-chip microcomputer, lcd display, keyboard control目錄前言21、串口通訊簡(jiǎn)介22、總體方案設(shè)計(jì)23、硬件電路設(shè)計(jì)23.1單片機(jī)主機(jī)系統(tǒng)電路設(shè)計(jì)23.2max232電路設(shè)計(jì)23.3

4、lcd電路設(shè)計(jì)23.4單片機(jī)與max232連接電路的設(shè)計(jì)24、軟件設(shè)計(jì)24.1 主程序設(shè)計(jì)24.2 鍵盤(pán)程序設(shè)計(jì)24.3 發(fā)送和接收程序24.4 lcd顯示程序設(shè)計(jì)25、系統(tǒng)調(diào)試與通信25.1 軟件調(diào)試25.2 硬件調(diào)試25.3 軟件、硬件連接調(diào)試26、總結(jié)體會(huì)27、源程序2前言單片機(jī)行業(yè)已經(jīng)有了很久的歷史,隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展,單片機(jī)行業(yè)更加迅速的發(fā)展起來(lái)。不論在工業(yè)還是民也上都有很好的發(fā)展和應(yīng)用,得到大家很好的認(rèn)可和高度的評(píng)價(jià)。單片機(jī)的通信接口是各臺(tái)儀表之間或儀表與計(jì)算機(jī)之間進(jìn)行信息交換和傳輸?shù)穆?lián)絡(luò)裝置。主要有五種類(lèi)型,串行通信接口、并行通信接口、usb接口、現(xiàn)場(chǎng)總線(xiàn)接口以及以太

5、網(wǎng)接口。串行通信按同步方式可分為異步通信和同步通信兩種基本通信方式。它是在數(shù)字化的基礎(chǔ)上用微處理器裝備起來(lái),是計(jì)算機(jī)技術(shù)與電子儀器相結(jié)合的產(chǎn)物。它具有數(shù)據(jù)存儲(chǔ)、運(yùn)算、邏輯判斷能力,能根據(jù)被測(cè)參數(shù)的變化自選量程,可自動(dòng)校正,自動(dòng)補(bǔ)償,自尋故障等,可以做一些需要人類(lèi)的智慧才能完成的工作,既具備了一定的智能,故稱(chēng)為智能儀器。人們習(xí)慣將這種內(nèi)含微型計(jì)算機(jī)并帶有g(shù)p-ib等通信接口的電子儀器稱(chēng)為智能儀器。本課程設(shè)計(jì)就是利用兩片單片機(jī)實(shí)現(xiàn)串口通訊數(shù)據(jù)的發(fā)送和接收,該系統(tǒng)可采用max232進(jìn)行串口通訊數(shù)據(jù)傳送??捎胠cd顯示發(fā)送的相應(yīng)據(jù)??捎面I盤(pán)控制數(shù)據(jù)發(fā)送的啟動(dòng)和停止。1、 串口通訊簡(jiǎn)介串口通信最重要的參

6、數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配: a,波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是4800hz。這意味著串口通信在數(shù)據(jù)線(xiàn)上的采樣率為4800hz。通常電話(huà)線(xiàn)的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是gpib設(shè)備的通信。 b,數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的

7、數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(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é),包括開(kāi)始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。 c,停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線(xiàn)上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的

8、位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。 d,奇偶校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒(méi)有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。 串行通信接口的基本任務(wù):(1)實(shí)現(xiàn)

9、數(shù)據(jù)格式化:因?yàn)閬?lái)自cpu的是普通的并行數(shù)據(jù),所以,接口電路應(yīng)具有實(shí)現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化的任務(wù)。在異步通信方式下,接口自動(dòng)生成起止式的幀數(shù)據(jù)格式。在面向字符的同步方式下,接口要在待傳送的數(shù)據(jù)塊前加上同步字符。(2)進(jìn)行串并轉(zhuǎn)換:串行傳送,數(shù)據(jù)是一位一位串行傳送的,而計(jì)算機(jī)處理數(shù)據(jù)是并行數(shù)據(jù)。所以當(dāng)數(shù)據(jù)由計(jì)算機(jī)送至數(shù)據(jù)發(fā)送器時(shí),首先把串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)才能送入計(jì)算機(jī)處理。因此串并轉(zhuǎn)換是串行接口電路的重要任務(wù)。(3)控制數(shù)據(jù)傳輸速率:串行通信接口電路應(yīng)具有對(duì)數(shù)據(jù)傳輸速率波特率進(jìn)行選擇和控制的能力。(4)進(jìn)行錯(cuò)誤檢測(cè):在發(fā)送時(shí)接口電路對(duì)傳送的字符數(shù)據(jù)自動(dòng)生成奇偶校驗(yàn)位或其他校驗(yàn)碼。在接

10、收時(shí),接口電路檢查字符的奇偶校驗(yàn)或其他校驗(yàn)碼,確定是否發(fā)生傳送錯(cuò)誤。(5)進(jìn)行ttl與eia電平轉(zhuǎn)換:cpu和終端均采用ttl電平及正邏輯,它們與eia采用的電平及負(fù)邏輯不兼容,需在接口電路中進(jìn)行轉(zhuǎn)換。(6)提供eia-rs-232c接口標(biāo)準(zhǔn)所要求的信號(hào)線(xiàn):遠(yuǎn)距離通信采用modem時(shí),需要9根信號(hào)線(xiàn);近距離零modem方式,只需要3根信號(hào)線(xiàn)。這些信號(hào)線(xiàn)由接口電路提供,以便與modem或終端進(jìn)行聯(lián)絡(luò)與控制。串行通信接口電路的組成:為了完成上述串行接口的任務(wù),串行通信接口電路一般由可編程的串行接口芯片、波特率發(fā)生器、eia與ttl電平轉(zhuǎn)換器以及地址譯碼電路組成。其中,串行接口芯片,隨著大規(guī)模繼承電

11、路技術(shù)的發(fā)展,通用的同步(usrt)和異步(uart)接口芯片種類(lèi)越來(lái)越多,如下表所示。它們的基本功能是類(lèi)似的,都能實(shí)現(xiàn)上面提出的串行通信接口基本任務(wù)的大部分工作,且都是可編程的。串行通信分類(lèi):在串行通信中,數(shù)據(jù)是在兩個(gè)站之間傳送的。按照數(shù)據(jù)傳送方向,串行通信可分為三種制式。1. 單工制式(simplex)單工制式是指甲乙雙方通信只能單向傳送數(shù)據(jù)。單工制式如圖1所示:圖1 單工制式2. 半雙工制式(half duplex) 半雙工制式是指通信雙方都具有發(fā)送器和接收器,雙方既可發(fā)送也可接收,但接收和發(fā)送不能同時(shí)進(jìn)行,即發(fā)送時(shí)就不能接收,接收時(shí)就不能發(fā)送。半雙工制式如圖2所示。圖2 半雙工制式3.

12、 全雙工制式全雙工制式是指通信雙方均設(shè)有發(fā)送器和接收器,并且將信道劃分為發(fā)送信道和接收信道,兩端數(shù)據(jù)允許同時(shí)收發(fā),因此通信效率比前兩種高。全雙工制式如圖3所示:圖3全雙工制式2、 總體方案設(shè)計(jì)本次課程設(shè)計(jì)的整個(gè)電路是采用兩個(gè)at89c51單片機(jī)芯片控制兩個(gè)分電路,實(shí)現(xiàn)串口數(shù)據(jù)的發(fā)送和接收兩個(gè)功能。其中單片機(jī)的p1口為數(shù)據(jù)采集口,其中p1.0p1.2接lcd的rs、rw、和e引腳,p1.3p1.5接鍵盤(pán),然后和另一個(gè)單片機(jī)相連,實(shí)現(xiàn)單片機(jī)與lcd之間的數(shù)據(jù)傳遞和顯示。p2口接lcd的d0到d7引腳,實(shí)現(xiàn)了8位數(shù)顯,然后p3口的輸入和輸出引腳接max232的輸出和輸入引腳,另一個(gè)單片機(jī)的接法與此類(lèi)

13、似,便可以實(shí)現(xiàn)串口通訊的功能。串口通訊的設(shè)計(jì)原理框圖如4所示:?jiǎn)纹瑱C(jī)單片機(jī)lcd 顯示lcd 顯示max232max232按鍵1按鍵2按鍵3按鍵圖4 串口通訊的設(shè)計(jì)原理框圖3、 硬件電路設(shè)計(jì)3.1 單片機(jī)主機(jī)系統(tǒng)電路設(shè)計(jì)時(shí)鐘電路:89c51單片機(jī)的時(shí)鐘信號(hào)通常有內(nèi)部振蕩和外部振蕩方式。在引腳xtal1和xtal2外接晶體振蕩器,就夠成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6mhz、12mhz或24mhz(晶體可在1.2mhz12mhz之間任選,電容c1和c2的典型值在20pf100pf之間選擇),本設(shè)計(jì)中選用12m

14、hz。電容器c9、c10起穩(wěn)定振蕩頻率、快速起振的作用,電容設(shè)定為30pf。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定。外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi),這種方式適用于用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持一致。復(fù)位電路:本系統(tǒng)的復(fù)位電路是采用按鍵復(fù)位的電路,復(fù)位輸入引腳ret為at89c51提供了初始化的手段。當(dāng)89c51的ale及psen兩引腳輸出高電平,ret引腳高電平到時(shí),單片機(jī)復(fù)位。按下按鈕,則直接把+5v加到了ret端從而復(fù)位稱(chēng)為手動(dòng)復(fù)位。復(fù)位后,p0到p3并行i/o口全為高電平,其它寄存器全部清零,只有sbuf寄存器狀態(tài)不確定。89c51單片機(jī)內(nèi)部有p0、p1、p2、p3四個(gè)8位雙向

15、i/o口:p0口具有雙重功能:可以作為輸入/輸出用,外接輸入/輸出設(shè)備;在有外接存儲(chǔ)器和i/o接口時(shí)常作為低8位地址/數(shù)據(jù)總線(xiàn),即低8位地址與數(shù)據(jù)線(xiàn)分時(shí)使用p0口。此時(shí)低8位地址由ale信號(hào)的下跳沿使它鎖存到外部地址鎖存器中,而后,p0口出現(xiàn)數(shù)據(jù)信息。p1口具有單一接口功能,p1口每一位都能作為可編程的輸入或輸出口線(xiàn)。p2口具有雙重功能:作為輸入口或輸出口使用,外接輸入/輸出設(shè)備;在有外接存儲(chǔ)器i/o接口時(shí),作為系統(tǒng)的地址總線(xiàn)。輸出高位地址,與p0口低8位地址一起組成16位地址總線(xiàn)。p3口為雙重功能口:可以作為輸入/輸出口,外接輸入/輸出設(shè)備;作為第二功能。 單片機(jī)主機(jī)系統(tǒng)原理圖如圖5所示:圖

16、5 單片機(jī)主機(jī)系統(tǒng)原理圖3.2 max232電路設(shè)計(jì)max232芯片是美信公司專(zhuān)門(mén)為電腦的rs-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。引腳介紹:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給rs-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(r1in)、12腳(r1out)、11腳(t1in)、14腳(t1out)為第一數(shù)據(jù)通道。 8腳(r2in)、9腳(r2out)、10腳(t2in)、7腳(t2out)為第二數(shù)據(jù)通道。 ttl/c

17、mos數(shù)據(jù)從t1in、t2in輸入轉(zhuǎn)換成rs-232數(shù)據(jù)從t1out、t2out送到電腦db9插頭;db9插頭的rs-232數(shù)據(jù)從r1in、r2in輸入轉(zhuǎn)換成ttl/cmos數(shù)據(jù)后從r1out、r2out輸出。第三部分是供電。15腳gnd、16腳vcc(+5v)。max232電路的設(shè)計(jì)原理圖如圖6:圖6 max232電路的設(shè)計(jì)原理圖如圖兩個(gè)max232的連接圖7:圖7 max232連接原理圖3.3 lcd電路設(shè)計(jì)顯示電路要求采用液晶顯示器liquid crystal display,簡(jiǎn)稱(chēng)lcd,它是利用液晶的光電效應(yīng)特點(diǎn)制成的顯示產(chǎn)品。hd44780控制器由兩個(gè)8位寄存器、指令寄存器(ir)和

18、數(shù)據(jù)寄存器(dr)、忙標(biāo)志(bf)、顯示數(shù)據(jù)ram(ddram)、字符發(fā)生器rom(cgrom)、字符發(fā)生器ram(cgram)、地址計(jì)數(shù)器(ac)構(gòu)成。ir用于寄存指令碼,只能寫(xiě)入不能讀出;dr用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫(xiě)入ddram和cgram,或者暫存從ddram和cgram讀出的數(shù)據(jù)。bf為1時(shí),液晶模塊處于內(nèi)部處理模式,不響應(yīng)外部操作指令和接受數(shù)據(jù)。ddram 用來(lái)存儲(chǔ)顯示的字符,能存儲(chǔ)80個(gè)字符碼。cgrom由8位字符碼生成5*7點(diǎn)陣字符160種和5*10點(diǎn)陣字符32種。cgram是為用戶(hù)編寫(xiě)特殊字符留用的,它的容量?jī)H64字節(jié)、可以自定義8個(gè)5*7點(diǎn)陣字符或者4個(gè)5*10點(diǎn)陣

19、字符。ac可以存儲(chǔ)ddram和cgram的地址,如果地址碼隨指令寫(xiě)入ir,則ir自動(dòng)把地址碼裝入ac,同時(shí)選擇ddram或者cgram單元。lm016l的各引腳功能為:d0d7(三態(tài))為數(shù)據(jù)總線(xiàn);e為使能信號(hào)端;rs(輸入)為數(shù)據(jù)/指令信號(hào)端,rs=1為數(shù)據(jù)信號(hào),rs=0為指令信號(hào);rw(輸入)為讀/寫(xiě)數(shù)據(jù)模式端,rw=1為讀,rw=0為寫(xiě)。通過(guò)對(duì)hd44780寫(xiě)入控制指令,使hd44780產(chǎn)生顯示驅(qū)動(dòng)信號(hào)來(lái)驅(qū)動(dòng)lm016l。hd44780的控制指令主要有:清除顯示(clear display)、地址歸位(return home)、輸入模式設(shè)定(entry mode set)、顯示開(kāi)/關(guān)控制(

20、display on/off control)、功能設(shè)定(function set)、設(shè)定 cgram 的地址(set cgram address)、設(shè)定ddram 的地址(set ddram address)、寫(xiě) ddram/cgram(write date to ddram/cgram)、讀忙標(biāo)志和地址(read busy flagand address)以及從ddram 和cgram 中讀數(shù)據(jù)(read date from ddram/cgram)。lcd數(shù)碼管的d0到d7接單片機(jī)的p2口, lcd的rs、rw、和e引腳分別接單片機(jī)的p1.0p1.2口。即可實(shí)現(xiàn)數(shù)碼管與單片機(jī)之間的數(shù)據(jù)傳

21、送,lcd電路的設(shè)計(jì)如下圖8:圖8 lcd顯示電路原理圖3.4 單片機(jī)與max232連接電路的設(shè)計(jì)單片機(jī)和和max232之間相互連接就是ttl電平標(biāo)準(zhǔn)和rs-232-c標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換。為使計(jì)算機(jī)、電話(huà)以及其他通信設(shè)備互相溝通,現(xiàn)在,已經(jīng)對(duì)串行通信建立了幾個(gè)一致的概念和標(biāo)準(zhǔn),這些概念和標(biāo)準(zhǔn)屬于三個(gè)方面:傳輸率,電特性,信號(hào)名稱(chēng)和接口標(biāo)準(zhǔn)。1、傳輸率:所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。國(guó)際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列,標(biāo)準(zhǔn)波特率也是最常用的波特率,標(biāo)準(zhǔn)波特率系列為110、300、600、1200、4800、9600和19200。大多數(shù)crt終端都能夠按110到9600范圍中的任

22、何一種波特率工作。打印機(jī)由于機(jī)械速度比較慢而使傳輸波特率受到限制,所以,一般的串行打印機(jī)工作在110波特率,點(diǎn)針式打印機(jī)由于其內(nèi)部有較大的行緩沖區(qū),所以可以按高達(dá)2400波特的速度接收打印信息。大多數(shù)接口的接收波特率和發(fā)送波特率可以分別設(shè)置,而且,可以通過(guò)編程來(lái)指定。2、rs-232-c標(biāo)準(zhǔn):rs-232-c標(biāo)準(zhǔn)對(duì)兩個(gè)方面作了規(guī)定,即信號(hào)電平標(biāo)準(zhǔn)和控制信號(hào)線(xiàn)的定義。rs-232c采用負(fù)邏輯規(guī)定邏輯電平,信號(hào)電平與通常的ttl電平也不兼容,rs-232-c將-5v-15v規(guī)定為“1”,+5v+15v規(guī)定為“0”。ttl標(biāo)準(zhǔn)和rs-232-c標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換如圖9:圖9 ttl標(biāo)準(zhǔn)和rs-232

23、-c標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換單片機(jī)與max232連接圖如圖10圖10 單片機(jī)與max232連接原理圖4、 軟件設(shè)計(jì)4.1 主程序設(shè)計(jì)主程序流程圖如圖11:開(kāi) 始是否有鍵按下調(diào)用延遲哪鍵按下調(diào)用延遲lcd顯示結(jié)束nyyn圖11 主程序流程圖 整個(gè)主程序采用模塊化的思想來(lái)設(shè)計(jì),其中主要有按鍵識(shí)別,lcd顯示,發(fā)送和接收等幾大模塊構(gòu)成,來(lái)完成整個(gè)串口通訊的功能。4.2 鍵盤(pán)程序設(shè)計(jì)鍵盤(pán)程序部分主要完成鍵輸入和顯示的功能。當(dāng)沒(méi)有鍵按下時(shí)主程序一直執(zhí)行鍵掃描工作,當(dāng)有鍵按下時(shí),先執(zhí)行延遲消抖程序,然后在確認(rèn)是否有鍵按下。若確實(shí)有鍵按下,計(jì)算出鍵值后顯示執(zhí)行顯示程序。鍵盤(pán)掃描的流程圖見(jiàn)圖12所示:開(kāi)始有鍵閉合嗎

24、?消除抖動(dòng)確實(shí)有鍵按下計(jì)算鍵位閉合鍵釋放了嗎?執(zhí)行鍵操作返回調(diào)用顯示子程序ynynn圖12 鍵盤(pán)掃描流程圖4.3 發(fā)送和接收程序在主程序中,tmod=0x20:設(shè)置定時(shí)器1為工作方式2,th1=0xfd:設(shè)置串口波特率,tl1=0xfd:設(shè)置串口波特率,tr1=1:打開(kāi)定時(shí)器1,ren=1:將允許接受位置一,sm0=0:設(shè)置串行口工作方式,sm1=1:設(shè)置串行口工作方式ea=1:打開(kāi)總中斷,es=1:打開(kāi)串行口中斷。發(fā)送程序流程圖如圖13:開(kāi)始打開(kāi)發(fā)送控制p1.0寫(xiě)sbuft1=1?發(fā)送完畢?延時(shí)t秒關(guān)閉發(fā)送控制p1.0結(jié)束nn圖13 發(fā)送程序流程圖接收程序流程圖如圖14開(kāi)始p1.0處于結(jié)束讀

25、sbuft1=1?接收完畢?延時(shí)t秒結(jié)束nn圖14 接收程序流程圖4.4 lcd顯示程序設(shè)計(jì)本次課設(shè)采用lcd進(jìn)行顯示,首先進(jìn)行鍵盤(pán)控制,由發(fā)送端的三個(gè)鍵,加一,減一和鎖鍵改變數(shù)據(jù)的狀態(tài),然后進(jìn)行鍵盤(pán)的識(shí)別,再調(diào)用延時(shí),通過(guò)中斷的的方法可以顯示發(fā)送端所發(fā)送的數(shù)據(jù)和接收端所接收的數(shù)據(jù),如圖15所示:開(kāi)始鍵盤(pán)控制程序識(shí)別按鍵軟件延時(shí)lcd顯示圖15 顯示流程圖5、 系統(tǒng)調(diào)試與通信系統(tǒng)的硬件、軟件獨(dú)調(diào)和系統(tǒng)調(diào)試是系統(tǒng)最后的步驟也是系統(tǒng)特別重要的環(huán)節(jié),因?yàn)樵O(shè)計(jì)和開(kāi)發(fā)出的系統(tǒng)是否成功,功能是否完善只有在這里才能顯現(xiàn)出來(lái)。所以為了保證設(shè)計(jì)系統(tǒng)能夠正常工作,必須對(duì)軟件和硬件部分的每一個(gè)部分進(jìn)行調(diào)試和分析。5

26、.1 軟件調(diào)試軟件問(wèn)題是調(diào)試中遇到問(wèn)題最多的,此系統(tǒng)中出現(xiàn)過(guò)的問(wèn)題有以下幾處:1、鍵盤(pán)中斷處理程序中中斷入口后,沒(méi)有關(guān)掉外部中斷,出現(xiàn)鍵值讀取不正確,不能正確操作鍵盤(pán)。解決方法,在中斷入口處關(guān)掉外中斷,并在出口時(shí)再開(kāi)外中斷。2、鍵盤(pán)掃描前沒(méi)有軟件延時(shí)消抖,出現(xiàn)鍵值讀取不準(zhǔn)確。解決方法,在鍵盤(pán)中斷入口后在鍵值掃描前軟件延時(shí)1ms,消去鍵盤(pán)抖動(dòng)所帶來(lái)的誤操作。3、程序中有個(gè)別地方將“=”與“=”混淆,造成結(jié)果不準(zhǔn)確,解決辦法,仔細(xì)查找,將混淆出更正。再把到計(jì)時(shí)設(shè)定時(shí)子程序加進(jìn)來(lái),看是否能通過(guò)菜單正確調(diào)用,返回。能否修改到計(jì)時(shí)。整個(gè)調(diào)試完畢。5.2 硬件調(diào)試硬件的測(cè)試首先是檢查電路的邏輯線(xiàn)路是否正確

27、,如果正確再檢查原理圖的線(xiàn)路連接是否正確,電路的布局安排是否合理等等。經(jīng)過(guò)進(jìn)行精心的檢查的連線(xiàn),本設(shè)計(jì)的硬件仿真圖運(yùn)行正確無(wú)誤。5.3 軟件、硬件連接調(diào)試本設(shè)計(jì)軟件采用的是keil,硬件采用的是proteus軟件實(shí)現(xiàn)仿真和電路圖設(shè)計(jì)和,proteus軟件與keil軟件聯(lián)合使用,實(shí)現(xiàn)設(shè)計(jì)要求。在keil軟件中創(chuàng)建新文件,輸入所編寫(xiě)的c語(yǔ)言程序并保存,在編譯源程序無(wú)誤后,會(huì)產(chǎn)出相應(yīng)的”.hex”文件;將所生成的”.hex”文件加載到已繪制好的proteus原理圖中,使proteus與keil真正連接起來(lái),實(shí)現(xiàn)聯(lián)合調(diào)試。調(diào)試結(jié)果如圖16所示:圖16 仿真效果圖6、 總結(jié)體會(huì)本課程設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)

28、一個(gè)以?xún)善?9c51單片機(jī)為核心的串口通訊系統(tǒng)。從確定課設(shè)題目,到查閱質(zhì)料確定總體方案設(shè)計(jì),硬件電路仿真的設(shè)計(jì),硬件電路的優(yōu)化,軟件的設(shè)計(jì),軟件的優(yōu)化,檢驗(yàn)仿真電路,調(diào)試軟件程序,到最后的軟硬件聯(lián)調(diào),都是我努力去完成的。在最后的仿真電路圖中達(dá)到了我想要的結(jié)果,并且對(duì)串口通訊有了更一步的認(rèn)識(shí)。對(duì)單片機(jī)也有了更加深刻的了解。對(duì)以后很好的應(yīng)用單片機(jī)打下了深刻的基礎(chǔ)。本次課設(shè)主要設(shè)計(jì)的是單片機(jī)與單片機(jī)之間的通信,即雙機(jī)通信。但是設(shè)計(jì)的比較簡(jiǎn)單,如果進(jìn)一步的設(shè)計(jì),可以有以下兩種改進(jìn)方案:1 可以使發(fā)送的數(shù)據(jù)多樣化,不止停留在數(shù)字的發(fā)送,可以使字母或者其他形式的數(shù)據(jù)。2 可以進(jìn)行多機(jī)通訊,突破兩片單片機(jī)之

29、間的通訊,還可以研究單片機(jī)與pc機(jī)之間的通信??偠灾敬萎厴I(yè)設(shè)計(jì)我收獲頗多。不僅學(xué)會(huì)了兩款新的軟件protues和keil c51,也了解了單片機(jī)的一些工作原理及常見(jiàn)的用途。最重要的,本次設(shè)計(jì)教會(huì)了我一種解決問(wèn)題的方法,這對(duì)我以后的工作及學(xué)習(xí)絕對(duì)是大有幫助。最后,在此對(duì)所有幫助過(guò)我的老師和同學(xué)再次表示真摯的感謝。7、 源程序串口發(fā)送程序:#include#define uint unsigned int#define uchar unsigned charuchar a=150;uchar b=0;sbit rs=p12;sbit rw=p11;sbit e=p10;sbit inc=p1

30、3;sbit dec=p14;sbit con=p15;code uchar table=0,1,2,3,4,5,6,7,8,9;/*延時(shí)子程序*void delay(uinti)uint j;for(;i0;i-)for(j=0;j=15) xpos=0;ypos=1;/異或運(yùn)算 void display(uchardat)writechar(7,1,tabledat%10);dat/=10;writechar(6,1,tabledat%10);dat/=10;writechar(5,1,tabledat%10);/*主程序子程序*void main(void) tmod=0x20;/設(shè)置定時(shí)器1為工作方式2 th1=0xfd;/*設(shè)置串口波特率 tl1=0xfd;/*設(shè)置串口波特率 tr1=1;/*打開(kāi)定時(shí)器1 /ren=1;/*將允許接受位置一 sm0=0;/*設(shè)置串行口工作方式 sm1=1;/*設(shè)置串行口工作方式 /ea=1;/*打開(kāi)總中斷 /es=1;/*打開(kāi)串行口中斷l(xiāng)cdrset(); /p0=0xf0;writestring(0,1,sent:);while(1) display(a);if(inc=0)delay(10);if(inc=0)while(!inc);a+;if(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論