單片機課程設(shè)計基于232協(xié)議的串口通信技術(shù)_第1頁
單片機課程設(shè)計基于232協(xié)議的串口通信技術(shù)_第2頁
單片機課程設(shè)計基于232協(xié)議的串口通信技術(shù)_第3頁
單片機課程設(shè)計基于232協(xié)議的串口通信技術(shù)_第4頁
單片機課程設(shè)計基于232協(xié)議的串口通信技術(shù)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄0. 引言21. 總體方案設(shè)計32. 硬件電路的設(shè)計32.1 單片機介紹32.2 時鐘控制電路42.3 電源電路42.4 復(fù)位電路52.5 電平轉(zhuǎn)換電路設(shè)計62.6 數(shù)碼管顯示電路72.7 串行口介紹82.7.1 串行口基本結(jié)構(gòu)82.7.2串行通訊的方式82.8 整體電路設(shè)計103 軟件設(shè)計103.1串行通信的實現(xiàn)103.2流程框圖114.聯(lián)合調(diào)試124.1 硬件調(diào)試124.2 軟件調(diào)試125. 實訓(xùn)心得12參考文獻14附錄i 原理圖15附錄ii 源程序15摘要:隨著計算機技術(shù)特別是單片機技術(shù)的發(fā)展,單片機的應(yīng)用領(lǐng)域越來越廣泛,單片機在工業(yè)控制、數(shù)據(jù)采集以及儀器儀表自動化等許多領(lǐng)域都起著

2、十分重要的作用。但在實際應(yīng)用中,在要求響應(yīng)速度快、實時性強、控制量多的應(yīng)用場合,單個單片機往往難以勝任,這時使用多個單片機接合pc機組成分布式系統(tǒng)是一個比較好的解決方案。這樣,單片機的數(shù)據(jù)通信技術(shù)就變得十分重要。串口通信是指數(shù)據(jù)一位一位地按順序傳送。串口通信通過串口來實現(xiàn)。在全雙工的串口通信中,僅需要一根發(fā)送線和一根接收線,串口通信可大大節(jié)省傳送線路的成本,但數(shù)據(jù)傳送速度慢。因此,串口通信適合于遠距離通信。關(guān)鍵字:單片機、pc機、串口、通信0. 引言在各種單片機應(yīng)用系統(tǒng)的設(shè)計中,如智能儀器儀表、各類手持設(shè)備、gps接收器等,常常遇到計算機與外界的信息交換,即通訊。通信的基本方式可分為并行通信與

3、串行通信兩種。rs-232是串行數(shù)據(jù)接口標準,最初都是由電子工業(yè)協(xié)會(eia)制訂并發(fā)布的,rs-232在1962年發(fā)布,命名為eia-232-e,作為工業(yè)標準,以保證不同廠家產(chǎn)品之間的兼容。rs-422由rs-232發(fā)展而來,它是為彌補rs-232之不足而提出的。為改進rs-232通信距離短、速率低的缺點,rs-422定義了一種平衡通信接口,將傳輸速率提高到10mb/s,傳輸距離延長到4000英尺(速率低于100kb/s時),并允許在一條平衡總線上連接最多10個接收器。rs-232、rs-422與rs-485標準只對接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自

4、己的高層通信協(xié)議。因此在視頻界的應(yīng)用,許多廠家都建立了一套高層通信協(xié)議,或公開或廠家獨家使用。如錄像機廠家中的sony與松下對錄像機的rs-422控制協(xié)議是有差異的,視頻服務(wù)器上的控制協(xié)議則更多了,如louth、odetis協(xié)議是公開的,而prolink則是基于profile上的。 目前,在許多單片機應(yīng)用系統(tǒng)中,上、下位機分工明確,作為下位機核心器件的單片機往往只負責(zé)數(shù)據(jù)的采集和通信,而上位機通常以基于圖形界面的windows系統(tǒng)為操作平臺,為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,如在測控系統(tǒng)中使用sql server數(shù)據(jù)庫。1. 總體方案設(shè)計pc機與單片機之間可以由rs-232c、接口相連

5、,在pc機系統(tǒng)內(nèi)部裝有異步通信適配器,利用它可以實現(xiàn)異步串行通信。該適配器的核心元件是可編程的intel 8250芯片,它使pc機有能力與其他具有標準的rs-232c接口的計算機或設(shè)備進行通信。而51單片機本身具有一個全雙工的串行口,因此只要配以電平換換的驅(qū)動電路、隔離電路就可以組成一個簡單的通信接口。同樣,pc機和單片機之間的通信也分為雙機通行與多機通信。數(shù)據(jù)通信的硬件上采用3線制,將單片機和pc串口的3個引腳(txd、rxd、gnd)分別連在一起,即將pc機和單片機的發(fā)送數(shù)據(jù)線txd與接收數(shù)據(jù)線rxd交叉連接,兩者的地線gnd直接相連,而其他信號線如握手信號線均不用,采用軟件握手的方式。這

6、樣既可以實現(xiàn)預(yù)定的任務(wù)又可以簡化電路設(shè)計。 pc機和單片機最簡單的連接時零調(diào)制三線經(jīng)濟系。這是進行全雙工通信所必需的最少線路,因為51單片機輸入、輸出電平為ttl電平,但由于單片機的ttl邏輯電平和rs-232的電氣特性完全不同,rs-232的邏輯0電平規(guī)定為+5+15v之間,邏輯1電平為-5-15v之間,因此在將pc機和單片機的txd和rxd交叉連接時必須進行電平轉(zhuǎn)換,這里我選用的是max232電平轉(zhuǎn)換芯片。其原理框圖為圖 1 rxdtxdgndrs-232ctin toutrout ringnd txd rvd gnd 圖1串口通信原理圖2. 硬件電路的設(shè)計2.1 單片機介紹標準型89系列

7、單片機是與mcs-51系列單片機兼容的。在內(nèi)部含有4kb或8kb可重復(fù)編程的flash存儲器,可進行1000次擦寫操作。全靜態(tài)工作為0-33mhz,有3級程序存儲器加密鎖定,內(nèi)含有128-256字節(jié)的ram、32條可編程的i/o端口、2-3個16位定時器/計數(shù)器,6-8級中斷,此外有通用串行接口、低電壓空閑模式及掉電模式。at89c51相當(dāng)于將8051中的4kb rom換成相應(yīng)數(shù)量的flash存儲器,其余結(jié)構(gòu)、供電電壓、引腳數(shù)量及封裝均相同,使用時可直接替換。at89c51在內(nèi)部采用40條引腳的雙列直插式封裝,引腳排列如圖2所示:圖2 at89c51芯片引腳2.2 時鐘控制電路時鐘是單片機的心

8、臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定性。at89c51時鐘產(chǎn)生方式通常有兩種:一是內(nèi)部時鐘方式,二是外部時鐘方式。由于外部時鐘方式是把外部已有的時鐘信號引入到單片機內(nèi),此種方式常用于多片89c51單片機同時工作,以便于單片機的同步。并且高低脈沖電平持續(xù)時間應(yīng)不短于20ns,否則工作不穩(wěn)定。因此,我們不選用這種時鐘方式。 在本次設(shè)計當(dāng)中我們選用的是:內(nèi)部時鐘方式,利用單片機的引腳18(xtal2)和引腳19 (xtal1)外接晶振及電容,與片內(nèi)可以構(gòu)成振蕩器的反向放大器一起組成工作主

9、頻電路,如圖3.1所示。at89c51的工作頻率取決于晶振y1的頻率。采用晶振的目的是可以提高工作頻率的穩(wěn)定性。圖41中的c2、c3的作用是穩(wěn)定頻率和快速起振,電容值一般在530pf 圖3 時鐘電路圖典型值為30pf,我們?nèi)?1.0592mhz。在設(shè)計電路板的時候應(yīng)使c2、c3和y1盡量靠近單片機芯片,以減少分布電容所引起對振蕩電路的影響。2.3 電源電路在本次設(shè)計當(dāng)中我們采用雙電源供電的方式。一種是電源電路采用912v電壓經(jīng)過穩(wěn)壓三極管lm7805和其外圍電路組成穩(wěn)定5v電壓的輸出。 二是采用具有usb接口供電。在我們身邊非常容易找到usb接口的充電器。使電壓穩(wěn)定。圖4電源穩(wěn)壓部分由于我們在

10、大一的時候焊接凌陽61板,對61板有初步的了解,知道其電源部分的穩(wěn)壓設(shè)計較好輸出穩(wěn)定,故我們采用它的電路形式,只需將其中的穩(wěn)壓管換為lm7805即可。而usb接口供電不需要設(shè)計它的輸出是一個比較穩(wěn)定的5v電壓,我們只需購買一個usb頭和一根usb線即可。其電路如圖35所示.具有電源指示燈。2.4 復(fù)位電路當(dāng)在at89c51單片機的rest引腳引入高電平并保持2個機器周期時,單片機內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機就處于循環(huán)復(fù)位狀態(tài))。在實際的應(yīng)用當(dāng)中復(fù)位操作有兩種形式:一種是上電復(fù)位,另一種是按鍵復(fù)位電路。上電復(fù)位電路如圖51 所示。求接通電源后,單片機自動實現(xiàn)復(fù)位操作,上電的

11、瞬間rest引腳獲得高電平,隨著電容的充電,rest引腳的高電平將逐漸下降。rest引腳的高電平只要維持足夠的時間(2個機器周期),單片機就可以進行復(fù)位操作。按鍵復(fù)位電路如下圖52所示。按鍵復(fù)位電路可以隨時通過按鍵來發(fā)出復(fù)位信號。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的k鍵,此時電源vcc經(jīng)電阻r1、r2分壓,在reset端產(chǎn)生一個復(fù)位高電平。這對系統(tǒng)的可控性是很有幫助的。圖51 上電復(fù)位電路 圖52按鍵復(fù)位電路 圖53 復(fù)位電路通過比較這兩種方式的優(yōu)缺點我們最后選擇上電與按鍵均有效的復(fù)位電路的形式。其電路結(jié)構(gòu)如上圖53所示。其中電容電阻的大小是根據(jù)工程經(jīng)驗計算得到的,它們的取值大小

12、隨時鐘頻率的不同而變化,要根據(jù)具體情況取得合適的值,否則應(yīng)用現(xiàn)場干擾極為嚴重,影響正常的復(fù)位工作。 2.5 電平轉(zhuǎn)換電路設(shè)計和其他的單片機器件一樣,作為單片機的標準外圍電路,串口的電平轉(zhuǎn)換也有專用的芯片,但也可以使用三極管自行調(diào)整電平匹配。本次設(shè)計我主要采用專用芯片進行電平轉(zhuǎn)換的方法。目前較為廣泛的是使用集成電路轉(zhuǎn)換器件,如mc1488、sn75150芯片可完成ttl電平到eia電平的轉(zhuǎn)換,而mc1489、sn75154可實現(xiàn)eia電平到ttl電平的轉(zhuǎn)換。max232芯片可完成ttl和rs-232c的雙向電平轉(zhuǎn)換。在這里我采用的芯片是max232。如圖6圖6 電平轉(zhuǎn)換芯片max232 在電氣特

13、性上rs-232c采用負邏輯,要求高、低兩信號間有較大的幅度,標準規(guī)定為:邏輯1:-5-15v ,邏輯0:+5+15v 。而單片機的信號電平與ttl電平兼容,邏輯1大于+2.4v,邏輯0為0.4v以下。很顯然,rs-232c信號電平與ttl電平不匹配,為了實現(xiàn)兩者的連接,必須進行電平轉(zhuǎn)換。max232c為單一+5v供電,內(nèi)置自升壓電平轉(zhuǎn)換電路,一個芯片能同時完成發(fā)送轉(zhuǎn)換和接收轉(zhuǎn)換的雙重功能。max232 的引腳主要為5個部分:(1)外接電容:有5個外接電容、進行電壓匹配和電源去耦。(2)ttl的輸入:電路ttl電平的輸入引腳11和10引腳,連接單片機的txd輸出端口。(3)ttl的輸出:電路t

14、tl電平的輸出引腳12和9引腳,連接單片機的rxd輸出端口。(4)rs-232的輸入:兩路rs-232電平的輸入引腳13和8引腳,連接rs-232的txd的輸出端口。(5)rs-232的輸出:兩路rs-232電平的輸出引腳14和7引腳,連接rs-232的rxd的輸出端口。通過max232的ttl和rs-232 的輸入/輸出端口,自動地調(diào)節(jié)了單片機串口的ttl電平信號和rs-232的串行通信信號的電平匹配。電平轉(zhuǎn)換芯片與單片機的連接電路如下:地址分配和連接:只列出和系統(tǒng)相關(guān)的、關(guān)鍵部分的單片機與各個模塊管腳的連接和相關(guān)的地址分配。max232的11引腳:max232 的ttl電平輸入引腳,連接單

15、片機的txd,ttl串口輸入信號。max232的12引腳:max232的ttl電平輸出引腳,連接單片機的rxd、ttl串口輸入信號。max232的14引腳:max232 的rs-232電平輸出引腳,連接rs-232的rxd,rs-232的串口輸入信號。max232的13引腳:max232 的rs-232電平輸入引腳,連接rs-232的txd,rs-232的串口輸出信號。max232和單片機串口連接的電路如圖7。圖7 max232和單片機串口連接電路圖2.6 數(shù)碼管顯示電路2.7 串行口介紹2.7.1 串行口基本結(jié)構(gòu)單片機的串行口的功能是與外部器件進行串行數(shù)據(jù)通信。串行口電路也稱為通用異步收發(fā)器

16、(uart)。從原理上說,一個uart包括發(fā)送器電路、接收器電路和控制電路。8051單片機的uart已集成在其中,構(gòu)成一個全雙工串口,全雙工通信是指同時可以作雙向通信,兩個即可同時發(fā)送、接收,又可同時接收、發(fā)送。其示意圖如圖3所示。這個口即可以實現(xiàn)串行異步通信,也可以作為同步移位寄存器使用。發(fā)送接收 發(fā)送 接收 全雙工通信圖3 全雙工通信示意圖8051的串行口通過引腳rxd(p3.0串行口數(shù)據(jù)接收端)和引腳txd(p3.1串行口數(shù)據(jù)發(fā)送端)與外部設(shè)備進行串行通信。其中共有兩個串口雙緩沖寄存器(sbuf),一個是發(fā)送寄存器,一個是接收寄存器,以便8051能以全雙工方式進行通信。串行發(fā)送時,從片內(nèi)

17、總線向發(fā)送sbuf寫入數(shù)據(jù);串行接收時,從接收sbuf向片內(nèi)總線讀出數(shù)據(jù)。它們都是可尋址的寄存器,但因為發(fā)送與接收不能同時進行,所以給這兩個寄存器賦一同一地址99h。在接收方式下,串行數(shù)據(jù)通過引腳rxd進入,由于在接收寄存器之前還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤,即在下一幀數(shù)據(jù)來時,前一幀數(shù)據(jù)還沒有走。在發(fā)送方式下口,串行數(shù)據(jù)通過引腳txd發(fā)出。與接收數(shù)據(jù)情況不同,發(fā)送數(shù)據(jù)時,由于cpu是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路就不需要雙緩沖結(jié)構(gòu),這樣可以提高數(shù)據(jù)發(fā)送速度2.7.2串行通訊的方式異步通訊:它用一個起始位表示字符的開始,用停止位表

18、示字符的結(jié)束。同步通訊:在同步通訊中,每個字符要用起始位和停止位作為字符開始和結(jié)束的標志,占用了時間;所以在數(shù)據(jù)塊傳遞時,為了提高速度,常去掉這些標志,采用同步傳送。由于數(shù)據(jù)塊傳遞開始要用同步字符來指示,同時要求由時鐘來實現(xiàn)發(fā)送端與接收端之間的同步,故硬件較復(fù)雜。通訊方向:在串行通訊中,把通訊接口只能發(fā)送或接收的單向傳送方法叫單工傳送;而把數(shù)據(jù)在甲乙兩機之間的雙向傳遞,稱之為雙工傳送。在雙工傳送方式中又分為半雙工傳送和全雙工傳送。半雙工傳送是兩機之間不能同時進行發(fā)送和接收,任一時該,只能發(fā)或者只能收信息。串行口的工作方式:8051 單片機的全雙工串行口可編程為 4 種工作方式,現(xiàn)分述如下: 方

19、式 0:為移位寄存器輸入/輸出方式。可外接移位寄存器以擴展 i/o 口,也可以外接同步輸入/輸出設(shè)備。8 位串行數(shù)據(jù)者是從 rxd 輸入或輸出,txd 用來輸出同步脈沖。輸出串行數(shù)據(jù)從 rxd 引腳輸出,txd 引腳輸出移位脈沖。cpu 將數(shù)據(jù)寫入發(fā)送寄存器時,立即啟動發(fā)送,將 8 位數(shù)據(jù)以 fos/12 的固定波特率從 rxd 輸出,低位在前,高位在后。發(fā)送完一幀數(shù)據(jù)后,發(fā)送中斷標志 ti由硬件置位。輸入當(dāng)串行口以方式 0 接收時,先置位允許接收控制位 ren。此時,rxd 為串行數(shù)據(jù)輸入端,txd 仍為同步脈沖移位輸出端。當(dāng)(ri)=0 和(ren)=1 同時滿足時,開始接收。當(dāng)接收到第

20、8 位數(shù)據(jù)時,將數(shù)據(jù)移入接收寄存器,并由硬件置位 ri。方式 1:為波特率可變的 10 位異步通訊接口方式。發(fā)送或接收一幀信息,包括 1 個起始位 0,8 個數(shù)據(jù)位和1 個停止位 1。輸出當(dāng) cpu 執(zhí)行一條指令將數(shù)據(jù)寫入發(fā)送緩沖 sbuf 時,就啟動發(fā)送。串行數(shù)據(jù)從 txd 引腳輸出,發(fā)送完一幀數(shù)據(jù)后,就由硬件置位 ti。輸入在(ren)=1 時,串行口采樣 rxd 引腳,當(dāng)采樣到 1 至 0 的跳變時,確認是開始位 0,就開始接收一幀數(shù)據(jù)。只有當(dāng)(ri)=0 且停止位為 1 或者(sm2)=0 時,停止位才進入 rb8,8 位數(shù)據(jù)才能進入接收寄存器,并由硬件置位中斷標志 ri;否則信息丟失

21、。所以在方式 1 接收時,應(yīng)先用軟件清零 ri 和 sm2 標志。方式 2: 為固定波特率的 11 位 uart 方式。它比方式 1 增加了一位可程控為 1 或 0 的第 9 位數(shù)據(jù)。輸出發(fā)送的串行數(shù)據(jù)由 txd 端輸出一幀信息為 11 位,附加的第 9 位來自 scon 寄存器的 tb8 位,用軟件置位或復(fù)位。它可作為多機通訊中地址/數(shù)據(jù)信息的標志位,也可以作為數(shù)據(jù)的奇偶校驗位。當(dāng) cpu 執(zhí)行一條數(shù)據(jù)寫入 subf 的指令時,就啟動發(fā)送器發(fā)送。發(fā)送一幀信息后,置位中斷標志 ti。輸入在(ren)=1 時,串行口采樣 rxd 引腳,當(dāng)采樣到 1 至 0 的跳變時,確認是開始位 0,就開始接收

22、一幀數(shù)據(jù)。在接收到附加的第 9 位數(shù)據(jù)后,當(dāng)(ri)=0 或者(sm2)=0 時,第 9 位數(shù)據(jù)才進入 rb8,8 位數(shù)據(jù)才能進入接收寄存器,并由硬件置位中斷標志 ri;否則信息丟失。且不置位 ri。再過一位時間后,不管上述條件是否滿足,接收電路即行復(fù)位,并重新檢測 rxd 上從 1 到 0 的跳變。方式 3: 為波特率可變的 11 位 uart 方式。除波特率外,其余與方式 2 相同。波特率選擇:如前所述,在串行通訊中,收發(fā)雙方的數(shù)據(jù)傳送率(波特率)要有一定的約定。在 8051 串行口的四種工作方式中,方式 0 和 2 的波特率是固定的,而方式 1 和 3 的波特率是可變的,由定時器 t1

23、的溢出率控制。2.8 整體電路設(shè)計 pc機和單片機最簡單的連接時零調(diào)制三線經(jīng)濟系。這是進行全雙工通信所必需的最少線路,因為51單片機輸入、輸出電平為ttl電平,但由于單片機的ttl邏輯電平和rs-232的電氣特性完全不同,rs-232的邏輯0電平規(guī)定為+5+15v之間,邏輯1電平為-5-15v之間,因此在將pc機和單片機的txd和rxd交叉連接時必須進行電平轉(zhuǎn)換,這里我選用的是max232電平轉(zhuǎn)換芯片。將pc機鍵盤的輸入發(fā)送給單片機,單片機收到pc機發(fā)來的數(shù)據(jù)后,會送統(tǒng)一數(shù)據(jù)給pc機。并在屏幕中顯示出來。只要屏幕中顯示出來的字符與所鍵入的字符相同,說明二者之間的通信正常??偞型ㄐ艌D為圖6所示

24、 圖6 串行通信電路圖3 軟件設(shè)計將pc機鍵盤的輸入發(fā)送給單片機,單片機收到pc機發(fā)來的數(shù)據(jù)后,會送統(tǒng)一數(shù)據(jù)給pc機。并在屏幕中顯示出來。只要屏幕中顯示出來的字符與所鍵入的字符相同,說明二者之間的通信正常。3.1串行通信的實現(xiàn)(1)串行口工作于方式3;用定時器1產(chǎn)生9600bit/s的波特率,工作于方式2。(3)通信協(xié)議:pc機首先發(fā)送數(shù)據(jù),單片機接收到之后返回一個相同數(shù)據(jù)到pc機表示通信正常。(4)通信過程使用第九位發(fā)送奇偶校驗位。(5)從機接收到一個數(shù)據(jù)后,立即進行奇偶校驗,若數(shù)據(jù)沒有錯誤,則返回00h,否則返回ffh。(6)主機發(fā)送一個數(shù)據(jù)后,等待從機返回數(shù)據(jù);若為00h,則繼續(xù)發(fā)送下一

25、個數(shù)據(jù),若為ffh,則重新發(fā)送數(shù)據(jù)。3.2流程框圖(1) 51單片機通過中斷方式接收pc機發(fā)送數(shù)據(jù),并回送。其程序流程圖,如圖7所示:是否接受pc機發(fā)送數(shù)據(jù)?程序初始化接受pc機發(fā)送數(shù)據(jù)n回發(fā)數(shù)據(jù)給pc機是否發(fā)送完成?n清除標志位開始yy結(jié)束 圖7發(fā)送端程序流程圖4.聯(lián)合調(diào)試4.1 硬件調(diào)試在制版過程中,出現(xiàn)以下幾點問題:1.電源指示等不亮分析:一、是否有漏焊,虛焊原因造成;二、led燈接反,導(dǎo)致不亮或led燈燒壞;三、電源沒有供電;調(diào)試:首先,對焊接點進行檢查,再將led用萬用表測量正負極是否接反,這幾項通過檢查都沒問題,因此我判斷是usb供電源有問題,用萬用表測量是usb的供電管腳在pcb

26、上vcc與gnd接反,導(dǎo)致供電不上led燈不亮。2.數(shù)碼管顯示不亮分析:一、單片機是否工作,軟件設(shè)計是否正確;二、三極管驅(qū)動是否按接正確,時候正常驅(qū)動;三、p0口與數(shù)碼管相連接,是否接有上拉電阻;調(diào)試:首先我對單片機是否工作進行檢查,我通過串口將hex文件燒入進去,發(fā)現(xiàn)能正常燒入,證明單片機工作正常。 然后,我檢查三極管的是三個管腳是否接錯,發(fā)現(xiàn)我e級和c級接反了,所以我們將其更改過來,單數(shù)碼管還是沒亮。最后,我考慮上拉電阻的問題 將p0口接了一個10k的排阻作為上拉電阻,這樣使得數(shù)碼管亮了。4.2 軟件調(diào)試1.pc機上顯示的字符不是發(fā)送的數(shù)分析:我沒有掌握好pc機和單片機的數(shù)值關(guān)系,沒有進行

27、ascll碼與十六進制之間的轉(zhuǎn)換。調(diào)試:在軟件程序設(shè)計中,將單片機發(fā)送的數(shù)據(jù)都將其轉(zhuǎn)換為ascll碼值再發(fā)送給pc機,同理,將pc機傳送來的數(shù)據(jù)都進制十六進制轉(zhuǎn)換再經(jīng)過查表送給數(shù)碼管顯示。5. 實訓(xùn)心得單片機與pc機串行通信系統(tǒng)的設(shè)計告一段落,該系統(tǒng)的開發(fā)是一項非常有價值的項目。本論文以單片機系統(tǒng)設(shè)計方法作為全文的組織線索,開發(fā)一個單片機系統(tǒng)是需要按照規(guī)范的系統(tǒng)設(shè)計方法嚴謹?shù)倪M行的。為了開發(fā)通信系統(tǒng),選擇8051單片機,必須掌握單片機控制系統(tǒng)硬件電路的設(shè)計,如復(fù)位電路和時鐘電路等的設(shè)計,另外對匯編語言的靈活運用是少不了的,如單片機中斷、定時器和串行口的匯編語言編程,而對單片機的串口知識深刻的理

28、解下,確定以定時器t1的工作方式2作為波特率發(fā)生器是一個關(guān)鍵的,計算機方面,首先是 rs-232c接口,rs-232c接口是最為常用的、應(yīng)用最為廣泛的串行接口標準,大量的集成設(shè)備、工業(yè)產(chǎn)品都提供了rs-232c接口,因此單片機應(yīng)用系統(tǒng)的設(shè)計中,rs-232c通信設(shè)計是十分重要的。51兼容單片機通常都自帶一個標準uart端口,這個端口用過電平轉(zhuǎn)換電路就可以構(gòu)成一個標準的rs-232c接口,并且與計算機的接口相匹配,運用rs-232c連接的最簡單形式:3線制,將單片機與pc機進行硬件連接。其中由于單片機系統(tǒng)使用的是ttl電平,單片機中的串口輸出的信號也是如此,但是串行通信中使用的rs-232c通信

29、協(xié)議,二者的電平并不相同,在和單片機進行通信時,還需要有一定的外圍電路的配合,使得單片機的通信電平和標準的串行通信協(xié)議相匹配。這一點用max232芯片進行處理。以上所形成的通信系統(tǒng)的原理方案 ,便是本系統(tǒng)的硬件電路的設(shè)計依據(jù)。接著到了系統(tǒng)軟件的設(shè)計部分,一個完整的單片機系統(tǒng)只有硬件還不能工作,必須有軟件來控制整個系統(tǒng)的運行,pc機部分的串口通信軟件開發(fā),采用的是vb的mscomm控件來實現(xiàn)串行通信,這一部分,我編制出了利用文本框接受和發(fā)送數(shù)據(jù)的界面,其中對如何接受單片機發(fā)送的16進制代碼和向單片機發(fā)送數(shù)據(jù),是我做的不足的地方,采用的編程方法是正確的,但只形成了基本框架,不足的是不能很好的對收發(fā)

30、數(shù)據(jù)進行代碼處理,而這一部分,我認為應(yīng)該單獨作為一個課題進行研究。開發(fā)出強大的串口通信軟件,鑒于vb是一種弱字符語言,可以考慮用vc+等語言來開發(fā),目的是使傳輸?shù)臄?shù)據(jù)不受任何限制,使通信系統(tǒng)更容易實現(xiàn)。而單片機的匯編程序方面,我一方面編寫出了單片機自動發(fā)送和按鍵發(fā)送數(shù)據(jù)的程序,另一方面編寫出了單片機查詢接受數(shù)據(jù)和中斷接受數(shù)據(jù)的程序,并在at89c51單片機試驗開發(fā)板上進行了測試,都達到了很好的效果,這也是讓我滿意的一部分。最后,在硬軟件設(shè)計完畢后,最重要的一步是對系統(tǒng)的調(diào)試,而對于可能出現(xiàn)的問題,需要從軟件和硬件兩個方面進行考慮,這一階段需要大量的測試程序?qū)ο到y(tǒng)等各個部分進行分別的測試,才能找

31、到問題的所在,并進行針對性地修改和完善,而最終目的是使軟件和硬件能夠很好的配合,完成預(yù)定的功能,再在實際的環(huán)境中對開發(fā)出來的系統(tǒng)進行考驗,并隨時對產(chǎn)生的問題進行處理,我認為這一步很費工夫,也存在著許多困難,但開發(fā)出成功的單片機系統(tǒng),這一步是必經(jīng)階段,只有在這一階段,多摸索,多探索,才能使自己的能力有所突破與提高。隨著我一步一步做我的論文和設(shè)計,我才發(fā)現(xiàn)自己能力的不足與知識的貧乏,這是需要在后續(xù)的學(xué)習(xí)中,持續(xù)積累與拼搏的。參考文獻1 高海生,單片機應(yīng)用技術(shù)大全,19962 張毅剛,劉杰.mcs51單片機原理及應(yīng)用.哈爾濱: 哈爾濱工業(yè)大學(xué)出版社,2004.63 何立民.單片機應(yīng)用技術(shù)選編.北京:

32、 北京航天航空大學(xué)出版,2002.54 張軍,梅麗鳳.單片機原理接口技術(shù).北京交通大學(xué)出版社,2006.55 張婧武,周靈彬.單片機系統(tǒng)的proteus設(shè)計與仿真.北京: 電工出版社,2007.4附錄i 原理圖附錄ii 源程序org 0000hajmpstartorg 0023hljmp againorg 0030hstart:mov dptr,#tabmov scon,#0f0h ;設(shè)定串行方式;9位異步,允許接收,工作在方式3mov tmod,#20h ;設(shè)定計數(shù)器1為模式2orl pcon,#10h ;波特率加倍mov th1,#0fdh ;設(shè)定波特率為9600mov tl1,#0fdh

33、setbtr1 ;計數(shù)器開始計數(shù)setb easetb es ;啟動串口mov 60h,#00h ;數(shù)碼管顯示內(nèi)容mov 61h,#00hmov 62h,#00hmov 63h,#00hmov 64h,#01h ;確認發(fā)送多少位mov 68h,#00hmov 69h,#00hmov 70h,#00hmov r1,#60h ;取顯示內(nèi)容;-主程序-loop: acall display ;調(diào)用顯示 jb p1.0 ,en1 ;判斷加acall delayjb p1.0,en1n1:acall display jnb p1.0,n1cjne r1,#0fh,enn ;是否等于fen1: jb p1

34、.1 ,en2 ;判斷減acall delayjb p1.1,en2n2: acall displayjnb p1.1,n2cjne r1,#00h,enn1 ;是否等于0en2: jb p1.2 ,en3 ;數(shù)碼管選位acall delayjb p1.2,en3n3:acall displayjnb p1.2,n3inc r1inc 64h;確定發(fā)送多少位mov a,64hcjne a,#05h,nnmov 64h,#01hnn:cjne r1,#64h,n;判斷是否超出數(shù)碼管位數(shù)mov r1,#60hn:jmp en3enn:inc r1;加1 sjmpen3enn1:dec r1;減1 en3: jb p1.3,en4 ;發(fā)送鍵acall delayjb p1.3,en4n4:acall display jnb p1.3,n4acall loop1 ;調(diào)用發(fā)送程序en4: sjmp loop;-發(fā)送程序-loop1: clres ;關(guān)串口中斷 mov 68h,64h ;保存發(fā)送的位數(shù) mov 69h,r1 ;保存r1的值 mov r1,#60hm1: mov a,r1 ;從第一個數(shù)(60h里面的值)開始發(fā)送 acall sub1 ;調(diào)用發(fā)送轉(zhuǎn)換程序 movsb

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論