模塊七通信系統(tǒng)的設(shè)計(jì)_第1頁
模塊七通信系統(tǒng)的設(shè)計(jì)_第2頁
模塊七通信系統(tǒng)的設(shè)計(jì)_第3頁
模塊七通信系統(tǒng)的設(shè)計(jì)_第4頁
模塊七通信系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、模塊七通信系統(tǒng)的設(shè)計(jì)本章主要介紹單片機(jī)串行通信系統(tǒng)的概念及應(yīng)用。串行通信功能模塊對(duì)于單片機(jī)的應(yīng) 用具有重要的作用和地位,我們從單片機(jī)串行口的控制使用方法,典型應(yīng)用系統(tǒng)秒表 的設(shè)計(jì)制作,單片機(jī)與計(jì)算機(jī)串行口通信以及多機(jī)串口通信等方面闡述,從而達(dá)到掌握串 口的控制和應(yīng)用的基本方法?!窘虒W(xué)聚焦】知識(shí)目標(biāo):1、了解單片機(jī)的串行口通信基礎(chǔ)2、掌握單片機(jī)的串行通信的過程3、掌握串行口的控制方式技能目標(biāo):1、能夠熟悉單片機(jī)的串行口的結(jié)構(gòu)2、能夠掌握串行口的工作方式3、能掌握多個(gè)單片機(jī)間的串行通信方式【課時(shí)建議】8課時(shí)教學(xué)重點(diǎn):單片機(jī)的串行口通信基礎(chǔ)教學(xué)難點(diǎn):單片機(jī)的串行口的結(jié)構(gòu)和工作方式【課堂隨筆】項(xiàng)目7.

2、 1串行通信基礎(chǔ)知識(shí)在有悠久歷史的中國,通信的起源至少nj以追溯到周朝。眾所周知,中國歷史上有周幽王烽火戲諸 侯的故事。這個(gè)故事就是古代應(yīng)用光通信的見證,它證明光通信在中國的應(yīng)用至少可以追溯到公元前800 年,這在世界上也是領(lǐng)先的。烽火是非常原始的通信,而且是最簡單的二進(jìn)制數(shù)字通信。它利用有或無 光信號(hào)表示有或無“敵情”。圖航天衛(wèi)星測(cè)控系統(tǒng)示意圖2012年6月18 fi下午,神舟九號(hào)飛船與天宮一號(hào)空間站完成自動(dòng)交會(huì)對(duì)接,我們通過安裝在飛船 上的攝像機(jī)等設(shè)備,欣賞到從太空眺望地球的美景,聽到航天員與地而指揮員的對(duì)話,看到航天員在飛 船內(nèi)的“空翻”表演,這一切則要依靠非常重要的測(cè)控與通信系統(tǒng)。我們

3、從屮可以歸納通信的幾個(gè)要素:(1)兩個(gè)或兩個(gè)以上的通信主體(信源和信宿)。(2)可用的通信媒介(信道)。(3)達(dá)成一致的通信語言(通信協(xié)議)。從單片機(jī)的角度來看,因?yàn)閍t89c51系列單片機(jī)具有串行口的通信機(jī)制,以單片機(jī)或計(jì)算機(jī)作為 通信的主體,以串行信道作為通信的媒介,以單片機(jī)串口的邏輯電平、數(shù)據(jù)格式、數(shù)據(jù)傳輸波特率等作 為通信的協(xié)議基礎(chǔ),單片機(jī)也就具有了多系統(tǒng)信息傳遞,協(xié)同工作的能力,這也就為單片機(jī)的多系統(tǒng)控 制和應(yīng)用打開了嶄新的天地。7.1.1串行口的結(jié)構(gòu)對(duì)于單片機(jī),它跟通用計(jì)算機(jī)一樣,具有串行通信的結(jié)構(gòu),也就是通用的界步接收器/發(fā)送器uart。 在串行傳送屮,數(shù)據(jù)是-位一位按順序進(jìn)行的

4、,而計(jì)算機(jī)內(nèi)部的數(shù)據(jù)是并行的。因此當(dāng)計(jì)算機(jī)向外發(fā)送 數(shù)據(jù)時(shí),必須將并行的數(shù)據(jù)轉(zhuǎn)換為串行的數(shù)據(jù)再行傳送。反z, 乂必須將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸入 計(jì)算機(jī)中。上述并一串或串一并的轉(zhuǎn)換既可用軟件實(shí)現(xiàn),也可用硬件實(shí)現(xiàn)。但由于用軟件實(shí)現(xiàn)會(huì)使 cpu的負(fù)擔(dān)增加,降低了其利用率,故目前往往用硬件辦法完成這種轉(zhuǎn)換。在小行數(shù)據(jù)傳輸吋,分為界步(asynchronous)和同步(synchronous)兩種方式。at89c51單片機(jī)的串彳亍 口釆用的是界步傳輸方式,每次串行口通信吋只發(fā)送或接收1個(gè)字節(jié)的數(shù)據(jù)。通用的界步接收器/發(fā)送器, 簡稱uart(universal asynchronous receiver

5、/transmitter),正是這個(gè)uart結(jié)構(gòu)實(shí)現(xiàn)了單片機(jī)少外界的全 雙工界步數(shù)據(jù)通信,它是串行接口的核心部件,現(xiàn)介紹如下:圖7-2硬件uart電路硬件uart電路如圖72所示,它既能發(fā)送,由并行一串行輸出,又能接受,由串行一并行輸入。 對(duì)每一方來說都是一個(gè)雙緩沖器結(jié)構(gòu)。當(dāng)uart接收數(shù)據(jù)時(shí),串行數(shù)據(jù)先經(jīng)1乂。端(receiver data) 進(jìn)入移位寄存器,再經(jīng)移位寄存器輸出并行數(shù)據(jù)到緩沖器,最示通過數(shù)據(jù)總線送到cpu;當(dāng)uart發(fā) 送信息時(shí),先由cpu經(jīng)數(shù)據(jù)總線將并行數(shù)據(jù)送給緩沖器,再由并行緩沖器送給移位寄存器,最后逐位 由txd (transmitterdata)端輸出。所有這些工作都

6、是在時(shí)鐘信號(hào)和其它控制信號(hào)作用下完成的。為了檢測(cè)傳送中可能發(fā)生的錯(cuò)誤,uart在發(fā)送時(shí)會(huì)檢查每個(gè)要傳送的字符中的“1”的個(gè)數(shù)。自 動(dòng)在奇偶校驗(yàn)位上添“1”或“0”,使得“1”的總和(包括奇偶校驗(yàn)位)在偶校驗(yàn)時(shí)為偶數(shù)。奇校驗(yàn)中 為奇數(shù)。uart在接收時(shí)會(huì)檢杳字符中的每一位(包括奇偶校驗(yàn)位)計(jì)其“1”的總和是否符合要求, 以確定是否發(fā)生傳送錯(cuò)課。在uart中設(shè)置有岀錯(cuò)標(biāo)志,一般有以下三種:(1) 奇偶錯(cuò)誤(parity error);(2) 幀錯(cuò)謀(frame eror),表示字符格式不符合規(guī)定;(3) 溢出(丟失)錯(cuò)誤(overrun enor)o一旦傳送屮出現(xiàn)上述錯(cuò)謀,會(huì)發(fā)出岀錯(cuò)信息。uart

7、是用外部時(shí)鐘的方法與數(shù)據(jù)進(jìn)行同步的。外部的時(shí)鐘周期tc和數(shù)據(jù)中每一位數(shù)據(jù)所占的時(shí) 間td有如下關(guān)系:其中k=16或64若k=16,在每一個(gè)時(shí)鐘脈沖的上升沿采樣接收數(shù)據(jù)線,當(dāng)發(fā)現(xiàn)了笫一個(gè)“0”(即起始位的開始), 以后乂連續(xù)采樣8個(gè)“0”,則確定它為起始位(不是干擾信號(hào)),然后開始讀出接收數(shù)據(jù)的每個(gè)數(shù)位值, 如圖73所示。停止位或空閑位起始位(td - ictc )數(shù)據(jù)攝低位/oh接收輸入(110波特) '1 1 0 000 00000連續(xù)讀出九個(gè)“0"_ 從此開始j下降沿指出下一個(gè)字符的開始圖73外部時(shí)鐘與接收數(shù)據(jù)的起始位同步由于每個(gè)數(shù)據(jù)位時(shí)間td為外部時(shí)鐘的16倍,所以每1

8、6個(gè)外部時(shí)鐘脈沖讀一次數(shù)據(jù)位。如圖7-4 所示。從圖中看出,取樣時(shí)間正好在數(shù)據(jù)位時(shí)間的中間時(shí)刻,這就避開了信號(hào)在上升或下降時(shí)可能產(chǎn)牛 的不穩(wěn)定狀態(tài),保證了采樣數(shù)值的正確。8tc-9tc第二數(shù)據(jù)位 第一數(shù)據(jù)位 起始位亠停止位 第九數(shù)據(jù)位 第八數(shù)s位0/10/10/10/10/10/10/10/100/116tc32tcqxl6tc=48tc,4x 16tc=64tc5xl6tc=80tc6xl6tc=96tc7:xl6tc=112tc8xl6tc=128tc9:xl6tc=144tc10xl6tc=160tc圖7-4 uart接收數(shù)據(jù)的讀數(shù)時(shí)刻7.1.2串行通信的過程作為通信的數(shù)據(jù)傳輸端口,單片

9、機(jī)的串行i完成了通信的數(shù)據(jù)發(fā)送與接收。人多數(shù)單片機(jī)都提供了 專門用于通信的端口。如at89c51單片機(jī)的p3.0和p3.1除作為一般i/o 口外,還分別在串行通信中充 當(dāng)接收口(rxd)和發(fā)送li(txd),如圖7-5所示。圖7-5 at89c51單片機(jī)的串行口rxd 口和txd 口可以分別買現(xiàn)串行通信的數(shù)據(jù)接收和發(fā)送,為了清楚地認(rèn)識(shí)at89c51單片機(jī)旳串 行通信過程,我們將通過以下兩個(gè)范例分別講解如何利用單片機(jī)的rxd 口和txd 口來接收和發(fā)送數(shù)據(jù)。一、串行發(fā)送數(shù)據(jù)在流水燈的項(xiàng)目設(shè)計(jì)屮,我們可以把i/o 口輸岀的顯示數(shù)據(jù)歸納在一個(gè)矩陣中,如圖76所示。矩 陣屮的每一行就是某一時(shí)刻i/o

10、口(例如po m )的狀態(tài),1代表高電平,0代表低電平。矩陣中一行8 個(gè)位的顯示數(shù)據(jù)同時(shí)從p0 口輸出,這就是典型的并行通信方式。那串行方式是什么樣子的?很簡單,即把數(shù)據(jù)按位逐一從單片機(jī)的 例如原本的并行數(shù)據(jù)11111110被逐位地從txd 口發(fā)送出去。'11i111j111111110111110111110111110111110111110111110111111p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1圖7七從并行數(shù)據(jù)到串行數(shù)據(jù)在txd 口和8支發(fā)光二極管z間使用一個(gè)移位寄存器將串行數(shù)據(jù)組合成并行數(shù)據(jù)后就可以正常顯示了,如圖77所示是利用at89c51

11、單片機(jī)串行通信口構(gòu)成的流水燈系統(tǒng)電路圖,該電路使用了單片機(jī)的串行通信口 rxd和txdovccqu1r2-r947)0x8d1畔91810u241w111213一 987h12j314j5r14.7101y j454.7® -y20l3119eatpxtal1xtal2psrp3.0exd ps.itct) p3.2drro pssfrn p3.4i0p35t1p1.0 pl.lp12p1.3p1.4p15n10sip1.6nhs0p1jsckgndab gnd muat89c51vaadopqo adlpql ad2.pq2 ad3pq3 ad4pq4 ad5.pq5 ad6pq6

12、ad7.pq7a8p20a9p21a1op22a11p23a12/p24a13p25 a14p26 a15p27psena1eppsgp3.6 歴p17to4)222g¥275圖7-7單片機(jī)串行口構(gòu)成的流水燈系統(tǒng)電路圖集成電路u2是一個(gè)“8位串入/并出移位寄存器”,型號(hào)為74164。所謂串入/并出即輸入74164的是 串行數(shù)據(jù),而輸出的是并行數(shù)據(jù)。74164的第1、2管腳a和b是串行數(shù)據(jù)輸入口,與單片機(jī)的rxd相 連。有人也許會(huì)問rxd不是單片機(jī)的串行接收口嗎?為什么使用的不是txd 口來向74164發(fā)送數(shù)據(jù)? 其實(shí)at89c51單片機(jī)的rxd和txd并不是絕對(duì)的接收和發(fā)送口,它們會(huì)

13、因工作方式的不同具有不同 的功能,這一點(diǎn)在下一個(gè)知識(shí)點(diǎn)將會(huì)講解到。74164的第9管腳是清0端頁瓦,低電平使能。山于這個(gè)實(shí)例只在系統(tǒng)上電時(shí)需要移位寄存器清 0,所以將clr端與一個(gè)山電阻r1和電容c4構(gòu)成的復(fù)位電路相連。74164的第8管腳是移位寄存器的時(shí)鐘信號(hào)輸入端,它與單片機(jī)的txd相連,至于為什么這么做也 能在下一個(gè)知識(shí)點(diǎn)屮找到答案。最示,74164的并行輸出端qa£h與8支發(fā)光二極管相連,向它們輸 出并行的顯示數(shù)據(jù)。通過對(duì)系統(tǒng)電路的簡單分析示,我們可以從程序屮更具體地學(xué)習(xí)單片機(jī)如何發(fā)送串行數(shù)據(jù)。如程序 71所示,其中陰影部分的指令是與串行口控制有關(guān)。程序從數(shù)據(jù)表table +

14、獲取顯示數(shù)據(jù)載入acc 屮,如果不是結(jié)束碼88h,就通過send:程序段屮的指令“movsbuf, a”將acc屮的顯示數(shù)據(jù)載 入串行口緩沖區(qū)sbuf屮。一旦sbuf屮被載入數(shù)據(jù),單片機(jī)就會(huì)自動(dòng)將數(shù)據(jù)從串行口發(fā)送。如果數(shù)據(jù) 發(fā)送完成,標(biāo)志位ti會(huì)被置1,于是指令“jbcti, next”判斷發(fā)送完成悄況。程序71:顯示數(shù)據(jù)的串行發(fā)送(對(duì)應(yīng)圖77)orgoohstart:movscon,#ooh;設(shè)置串行口工作在方式0下,發(fā)送數(shù)據(jù)movdptr,#table;dptr指向數(shù)據(jù)表table的表頭loop:clra;acc 清 0movca,a+dptr;將數(shù)據(jù)表屮的數(shù)據(jù)載入acc中cjnea,#8

15、8h,send;遇到結(jié)束碼88h則結(jié)束jmpstart;循環(huán)send:movsbuf,a ;將數(shù)據(jù)載入串行口緩沖區(qū)sbuf寄存器,|'|動(dòng)被發(fā)送check:jbcti,next;發(fā)送完成標(biāo)志位ti=1,跳轉(zhuǎn)到nextjmpcheck;否則循環(huán)等待next:calldelay;調(diào)延時(shí)了程序incdptr;dptr自增1,指向數(shù)據(jù)表中的下一個(gè)數(shù)據(jù)jmploop;跳回loop,向串行口載入新數(shù)據(jù)delay:movr3,#20;延時(shí)了程序di:movr4,#20d2:movr5,#248djnzr5,$djnzr4,d2table:dbofeh, ofdh, ofbh, 0f7h;顯示數(shù)據(jù)表;

16、左移dbofeh, ofdh, ofbh, 0f7hdbofeh, ofdh, ofbh, 0f7h;右移dbofeh, ofdh, ofbh, 0f7hdb88h;結(jié)束碼enddjnzretr3q1程序71屮的流水燈使用單片機(jī)的串行口發(fā)送顯示數(shù)據(jù),這種做法一是節(jié)約了單片機(jī)的i/o 口資源, 二是只使用兩根數(shù)據(jù)線就可以實(shí)現(xiàn)8支發(fā)光二極管的控制,在遠(yuǎn)距離數(shù)據(jù)傳送屮可節(jié)約導(dǎo)線的成木。通過以上這個(gè)例了,我們對(duì)單片機(jī)串行發(fā)送數(shù)據(jù)的過程有了初步的認(rèn)識(shí),接著再講解單片機(jī)接收串 行數(shù)據(jù)的過程。二、串行接收數(shù)據(jù)單片機(jī)串行口接收并行數(shù)據(jù)時(shí),一般也需要一個(gè)轉(zhuǎn)換芯片將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。在如圖7-8 所示的例了

17、屮,我們使用8位并行裝載移位寄存器74166,把dip開關(guān)s1產(chǎn)生的由8個(gè)不同電平信號(hào) 構(gòu)成的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。74166的第15管腳s/l是移位/載入控制端,當(dāng)單片機(jī)的p3.2 口向其輸入一個(gè)低電平時(shí),74166就 將dip開關(guān)s1產(chǎn)生的并行數(shù)據(jù)讀入并進(jìn)行串行轉(zhuǎn)換。程序7-2實(shí)現(xiàn)的功能是從串行口接收轉(zhuǎn)換示的串行 數(shù)據(jù),然示再變成并行數(shù)據(jù)從p0 口輸出,最終實(shí)現(xiàn)8支發(fā)光二極管的狀態(tài)與dip開關(guān)s1的狀態(tài)和關(guān), 即如果s1某一位為低電平,則對(duì)應(yīng)位的發(fā)光二極管被點(diǎn)亮。程序72屮帶陰影的指令與串行口操作有 關(guān),詳細(xì)的知識(shí)將在接下來的知識(shí)點(diǎn)中介紹。vccvcco3119r4r14.10vcci1

18、615141312"tt"109svdip88sl voc aj clkdh、clkdnf4ls166n16vsabcdefgh匚zl y1c2 t ldmz g20jf vcco-l |10uf?10 if" 1t" 4f "tv"kppxtauxtai2 rstp3.0ikdp3.1txdp3.2ntop33nh p34td p35t11亍m丁r20p1.0 pl.lpl.2pl.3pl.4p1.5nds p1.6mso p1.7xkgndat89c51vccadopoo adipo 1 aebp02 ae8p03 advp04

19、adspod ad5p06 ad7/po.7asp20 朋p21a1op22 a1lp23 a12p24 a1sp2j aup2.6 a15p2.7psenaleogp3.6歴p3.7to4039吏37s32212224-25"zsz丁1617z z rl-psde 4700x8rn圖78串行口用于接收并行數(shù)據(jù)的系統(tǒng)電路 程序7-2:顯示數(shù)據(jù)的串行接收(對(duì)應(yīng)圖7-8)orgoohstart:movscon,# 1 oh;設(shè)置串行口工作在方式0下,接收數(shù)據(jù)enable:clrp3.2;使能74166進(jìn)行并行數(shù)據(jù)裝載與轉(zhuǎn)換nop;空指令,耗時(shí)間,等待74166操作完成nopnopnops

20、etbp3.2;恢復(fù)p3.2電平,準(zhǔn)備下一次轉(zhuǎn)換check:jbcredisplay;接收完畢ri=1,跳轉(zhuǎn)到顯示display段jmpcheck;如果沒有接收完畢循環(huán)等待display:mova,sbuf;將串行口緩沖區(qū)sbuf數(shù)據(jù)載入accmovpo, a;從卩0 口輸出顯示calldelay;調(diào)延時(shí)了程序jmpstart;循環(huán)delay:movr3,#20;延時(shí)了程序di:movr4,#20d2:movr5,#248djnzr5,$djnzr4,d2djnzr3,d1retend7.1.3串行口的控制小行口作為單片機(jī)的內(nèi)部功能模塊,少定吋/計(jì)數(shù)器一樣通過相應(yīng)的特殊功能寄存器控制。例如程序

21、 7-1和程序7-2中對(duì)scon寄存器的操作決定了串行口的工作方式和模式。我們?cè)谶@個(gè)知識(shí)模塊中將具體了解如何使用scon寄存器來控制e行口工作。一、串行口緩沖區(qū)sbuf在小行口結(jié)構(gòu)知識(shí)點(diǎn)小我么已經(jīng)知道串行口的數(shù)據(jù)發(fā)送和接收都是通過串行口的緩沖器進(jìn)行的,在 串行通信過程這個(gè)知識(shí)點(diǎn)小,通過程序7-1和程序7-2我們也了解到用串行口緩沖區(qū)sbuf進(jìn)行發(fā)送接 收的指令。sbuf這是一個(gè)1個(gè)字節(jié)長度的寄存器,位于特殊功能寄存器區(qū)的99h上。在發(fā)送數(shù)據(jù)時(shí), 只要把數(shù)據(jù)載入sbuf屮,uart就會(huì)h動(dòng)地將數(shù)據(jù)從串行口發(fā)送出去。類似地,在接收數(shù)據(jù)時(shí),sbuf 寄存器保持著從單片機(jī)串行口接收的數(shù)據(jù),以供程序讀取

22、。所以,往sbuf中載入數(shù)據(jù)就口動(dòng)發(fā)送;接收的數(shù)據(jù)保存在sbuf屮供讀取。二、串行口控制寄存器scon串行口控制寄存器scon是一個(gè)1個(gè)字節(jié)長度的寄存器,位于特殊功能寄存器區(qū)的98h,是控制單 片機(jī)串行通信的重要寄存器,可對(duì)其進(jìn)行位尋址。scon各位的名稱和功能如圖79所示。scon 復(fù)位值:0000 000076543210fe/sm0sm1sm2rentb8rb8tirife/sm0誤幀位/串行口方式0位。sm1 串行口方式1位。sm2多單片機(jī)通信使能位。清0屏蔽多單片機(jī)通信功能;置1使能多單片機(jī)在方式2和3,最終在方式1下的通信功能。該位應(yīng)該在方式0時(shí)清0。ren接收使能位。清0時(shí)關(guān)閉串

23、行口的數(shù)據(jù)接收;置1時(shí)使能串行口的數(shù)據(jù)接收。tb8 不常用rb8 不常用ti發(fā)送中斷標(biāo)志位。清0以確認(rèn)中斷;方式0下第9位發(fā)送完后,或在其他方式下在停止位開始時(shí),都由硬件置1該位。ri接收中斷標(biāo)志位。清0以確認(rèn)中斷;方式0下第9位接收完后,該位由喚件置lo圖7-9 scon各位的名稱和功能 fe/sm0位與sm1位設(shè)置串行口工作方式。這兩位設(shè)置的是串行口的工作方式,不同 工作方式下數(shù)據(jù)幀冇所不同; sm2多單片機(jī)通信使能位。該位可以控制使能多個(gè)單片機(jī)z間的通信; ren接收使能位。當(dāng)ren位置1時(shí),單片機(jī)可以從串行口接收數(shù)據(jù),如果ren清0, 則接收功能被關(guān)閉。該位與scon其他位一樣可以進(jìn)行

24、位尋址,所以置1和清0可分別由 指令 “setb scon.4” 和 “clrscon.4” 完成; ti發(fā)送中斷標(biāo)志位。ti與ri 一樣都是串行通信中重要的標(biāo)志位。當(dāng)單片機(jī)完成sbuf 中的數(shù)據(jù)發(fā)送后,該位由碾件置1,以利于程序判斷數(shù)據(jù)發(fā)送的完成情況。 ri接收中斷標(biāo)志位。粗略的描述是當(dāng)單片機(jī)從串行口接收完數(shù)據(jù)后該位被硬件置1, 以利于我們判斷數(shù)據(jù)接收的完成情況。通過串行口控制知識(shí)點(diǎn)的介紹,我們對(duì)uart的控制冇了初步的認(rèn)識(shí),雖然還很模糊?,F(xiàn)在可以再 回頭看程序71和程序72中帶陰影的指令,結(jié)合這里的描述,看看程序是如何設(shè)置串行口工作方式、 操作串行口緩沖區(qū)sbuf、判斷標(biāo)志位ti或ri的。

25、7.1.4串行口的工作方式及波特率設(shè)置at89c51系列單片機(jī)的串行口由scon寄存器屮的sm0和sm1位設(shè)證工作在4種不同方式下,如 下表所示。這里介紹4種方式的具體內(nèi)容,并結(jié)合后面兒節(jié)的實(shí)例來理解和運(yùn)用。表71串行口工作方式sm0sml工作 方式特點(diǎn)00方式移位寄存器方式,用于i/o 口擴(kuò)展001方式18位uart,波特率可變10方式29位uart,波特率為時(shí)鐘頻率/32 或/6411方式39位uart,波特率可變以上兒種方式中,方式1使用的較多。該方式下,數(shù)據(jù)幀山8位數(shù)據(jù)、1個(gè)停止位和1個(gè)開始位組 成。這種方式與計(jì)算機(jī)的串行口方式兼容,這就使得在這種方式下單片機(jī)與計(jì)算機(jī)可以進(jìn)行串行口通信

26、。 更重要的是,方式1下,波特率可以通過單片機(jī)的timcrl來改變,這就使得單片機(jī)與計(jì)算機(jī)進(jìn)行串行 通信中的數(shù)據(jù)傳輸速率得到很好的控制。由于異步傳輸時(shí)每一次只傳輸1個(gè)字節(jié)的數(shù)據(jù),所以衡量串行口傳輸速度的方法就是看它每秒傳輸 多少個(gè)字節(jié)的數(shù)據(jù),例如串行口 1秒傳輸1024個(gè)字節(jié),則數(shù)據(jù)傳輸率為1024bps,即lkbpso單位bps 代表“字節(jié)/秒” (bytes per second)o更小的單位的是bps,即“位/秒” (bits per second)o注意區(qū)分大小 字的字母b和bo除了以上兩個(gè)單位,另一個(gè)廣泛使用的描述數(shù)據(jù)傳輸率的單位是波特(baud),波特率則用來描述數(shù) 據(jù)傳輸率。這個(gè)

27、單位來自計(jì)算機(jī)的調(diào)制解調(diào)器(modem)o波特的定義是:傳輸數(shù)據(jù)中每秒信號(hào)的變化量。嚴(yán)格來說,波特與bps并不總是相等,這是因?yàn)橛?時(shí)單個(gè)信號(hào)的改變是通過多位數(shù)據(jù)實(shí)現(xiàn)的,但在木書單片機(jī)中,可以簡單地把波特與bps看成相等,即 1波特(bd)等于1位/秒(bps):lbd=lbpsat89c51單片機(jī)的uart在傳輸數(shù)據(jù)時(shí),可被設(shè)置不同的波特率,以達(dá)到不同的傳輸速率。我們將 會(huì)具體結(jié)合每種工作方式討論如何通過指令設(shè)置波特率。一、方式0該工作方式下,uart實(shí)際上是一個(gè)同步移位寄存器,該方式下只發(fā)送或接收8位數(shù)據(jù)。注意,此 時(shí)數(shù)據(jù)由單片機(jī)的rxd管腳發(fā)送或接收,而txd作為發(fā)送或接收的移位脈沖。發(fā)

28、送或接收數(shù)據(jù)時(shí),低 位數(shù)據(jù)在前,高位數(shù)據(jù)在后。方式0下scon屮的sm2應(yīng)設(shè)為0, tb8位無用。其波特率是固定的,為系統(tǒng)晶振頻率的1/12。 即:(7-1)波特率=也振鑿12例如晶振頻率=12mhz,則波特率=120( = i(mhz)。 方式0下發(fā)送(程序7-1 )o將要發(fā)送的8位數(shù)據(jù)載入sbuf, uart自動(dòng)將sbuf中的數(shù)據(jù)轉(zhuǎn)換 成8位串行數(shù)據(jù),并以晶振頻率/12作為波特率從rxd發(fā)送出去。當(dāng)數(shù)據(jù)發(fā)送完成后,ti會(huì)被置1。這 時(shí),可用指令“jbc ti,check"來檢測(cè)ti并將其清除為0。方式0下發(fā)送時(shí)序如圖79(a)所示。 方式0下接收(程序7-2)o在uart接收串行

29、數(shù)據(jù)z前需要設(shè)scon中的ri=0、ren=10 uart 就會(huì)啟動(dòng)接收過程,此時(shí)rxd為數(shù)據(jù)接收端,txd仍然為移位脈沖輸出。當(dāng)1個(gè)字節(jié)的數(shù)據(jù)接收完畢后,uart將其載入sbuf,同時(shí)ri被置1??捎弥噶睢癹bc ri,loop”來檢測(cè)并清除ri為0。方式 0下接收時(shí)序如圖79(b)所示。rxd (數(shù)據(jù)txd (移位脈| | | | | | | | 發(fā)送中斷標(biāo)志位ti(a)方式0下發(fā)送時(shí)序 接收中斷標(biāo)志位莎rxd < 數(shù)據(jù)捋云dl x d2 x d3 x d4 x d5 x d6txd移位脈沖)(b)方式0下接收時(shí)序圖7-9方式0下發(fā)送和接收時(shí)序二、方式1該方式下,uart作為異步通信

30、口,每一幀發(fā)送或接收10位數(shù)據(jù),這10個(gè)位分別是1個(gè)起始位“0”、 8個(gè)數(shù)據(jù)位和1個(gè)停止位“1”。單片機(jī)的txd為發(fā)送管腳,rxd為接收管腳。該方式下通信的波特率是可變的,一般由timer 1工作在方式2下,通過載入th1和tl1的計(jì)數(shù) 初始值來設(shè)置波特率。timer t.作在方式2下,是一個(gè)8位自動(dòng)重新裝載的定時(shí)器,裝載時(shí)需要向th1、 tl1同時(shí)裝載相同的計(jì)數(shù)初始值。單片機(jī)會(huì)自動(dòng)根據(jù)timer 1的設(shè)置情況使uart t作在特定的波特率 下。方式1下波特率和th1 (tl1)屮載入計(jì)數(shù)初始值之間的關(guān)系如公式(7-2)所示:2smod132晶振頻率12x256-(th1)(7-2)其屮,th

31、1是timed寄存器,smod1是電源控制寄存器pcon屮的位7,如圖710所示。當(dāng)串行 口工作在方式1、2、3時(shí),并且使用的是timer 1來設(shè)置波特率,貝u如果smod1=0為單倍波特率,而 smodh則為雙倍波特率。以下是smodi在pcon中的位置。76543210smod1smodo保留pofgf1gf0pdidl圖7-10smod1在pcon中的位置例如使用單倍波特率,smod1=0,晶振頻率=11.0592mhz,向th1中載入f3h,即th 1=243,則 波特率為:、汁時(shí)如 2sm0d,晶振頻率2°11.0592xi063212 x 256 (th1) 32 12

32、x 256-(243)由于在方式1卜波特率與載入th1(=tl1)的計(jì)數(shù)初始值和晶振頻率有關(guān),乂由于計(jì)數(shù)初始值是一個(gè)整數(shù),但公式(72)的計(jì)算并不總能得到整數(shù)的波特率,而在單片機(jī)與計(jì)算機(jī)進(jìn)行串行口通信時(shí),計(jì)算機(jī)端一般只設(shè)定整數(shù)值的波特率,這樣造成了單片機(jī)與計(jì)算機(jī)的通信波特率不金然相等,導(dǎo)致傳輸錯(cuò)誤的發(fā)生。所以為了保證數(shù)據(jù)傳輸?shù)恼_性,在表72屮給出了一些常用的波特率與晶振頻率、smod1位、th1(=tl1)的計(jì)數(shù)初始值的關(guān)系,以供以后應(yīng)用中宜接使用。方式1與方式3下的波特率計(jì)算公式相同,所以表7-2適用于方式1和方式3屮。表7-2方式1和方式3下波特率與th1(=tl1)的計(jì)數(shù)初始值波特率晶

33、振頻率(mhz )smod1 位timer 1工作在方式2下 載入th1 (=tl1)的 計(jì)數(shù)初始值6001200cch12001210f6h24001200f3h48001210f3h120011.059200e8h240011.059200f4h480011.059200fah960011.059200fdh1920011.059210fdh 方式1下發(fā)送:uart以方式1發(fā)送時(shí),數(shù)據(jù)由txd端送出。向sbuf載入數(shù)據(jù)后即h動(dòng)發(fā)送。 發(fā)送完一幀數(shù)據(jù)后,發(fā)送屮斷標(biāo)志位ti=1,可用“jbcti, check”來檢測(cè)ti位并將其清除為0。 方式1下接收:uart接收串行數(shù)據(jù)之前需將scon屮的

34、ren位置1, uart就會(huì)啟動(dòng)接收過 程。rxd為數(shù)據(jù)接收端。接收完1幀數(shù)據(jù)后,ri位被置1,可用“jbri, check”來檢測(cè)ri位以判 斷接收完成情況。三、方式2該方式下uart為一個(gè)9位界步通信口,每一幀共發(fā)送或接收11位數(shù)據(jù)。這11位數(shù)據(jù)由1個(gè)起始 位“0”、8個(gè)數(shù)據(jù)、笫9位數(shù)據(jù)(tb8位,位于scon內(nèi))和1個(gè)停止位“1”組成。方式2下的波特 率為品振頻率的1/32或1/64,這取決于pcon中的smod1的設(shè)置,計(jì)算公式為:qsmodi波特率=x品振頻率64 uart以方式2發(fā)送吋,數(shù)據(jù)山txd端送出,數(shù)據(jù)中的第9位數(shù)據(jù)從scon中的tb8位取得(可 用指令“movtb8, b

35、it"向tb8位載入數(shù)據(jù))。向sbuf載入數(shù)據(jù)后即自動(dòng)發(fā)送。發(fā)送完一幀數(shù)據(jù)后, 發(fā)送中斷標(biāo) 志位ti=1,可用指令“jbcti, check”來檢測(cè)ti并將其清除為0。 在uart接收串行數(shù)據(jù)之前需要設(shè)scon中的ren=1« uart就會(huì)啟動(dòng)接收過程。rxd為數(shù)據(jù) 接收端,數(shù)據(jù)中的第9位載入scon中的rb8位上。接收完1幀數(shù)據(jù)后,ri位被置1,可用指令“jb ri, check”來檢測(cè)ri位以判斷接收完成情況。四、方式3該方式與方式2的發(fā)送/接收過程和uart功能幾乎完全一樣,只是方式3的波特率可變,與方式1 具有相同的計(jì)算公式,在實(shí)際應(yīng)用屮,可以參考下表來選擇晶振和設(shè)

36、置計(jì)數(shù)初始值。從上面對(duì)4種方式的分析知道,除方式0傾向于用在擴(kuò)展i/o 口外,方式1和3具有靈活設(shè)置波特 率的特點(diǎn),所以在應(yīng)用中可以“偏愛地”使用。至于說smod1決定了是單倍還是雙倍波特率,可通過 簡單的mov指令完成。7.1.5串行口的協(xié)議因?yàn)閱纹瑱C(jī)串行口在傳輸數(shù)據(jù)時(shí)是異步數(shù)據(jù)傳送方式,在異步傳送屮,每一個(gè)字符要用起始位和停 止位作為字符開始和結(jié)束的標(biāo)志,它是以字符為單位一個(gè)個(gè)地發(fā)送和接收的。異步傳送時(shí),每個(gè)字符的纟r成格式如下:首先是一位起始位表示字符的開始;示而緊跟著的是字符 的數(shù)據(jù)字,數(shù)據(jù)字可以是5、6、7或8位數(shù)據(jù),在數(shù)據(jù)字屮可根據(jù)需要加入奇偶校驗(yàn)位;最后是停止位, 其長度可以是一

37、位,一位半或兩位。所以,串行傳送的數(shù)據(jù)字加上成幀信號(hào)的起始位和停止位就形成一 個(gè)字符串行傳送的幀。起始位用邏輯“0”低電平表示,停止位用邏輯“1”高電平表示。圖7-11(a)所示 為數(shù)據(jù)字為7位的ascii碼,第8位是奇偶校驗(yàn)位。加上起始位、停止位,一個(gè)字符由10位組成。這 樣加上成幀信號(hào)后,字符便可以一個(gè)接一個(gè)地傳送了。在異步傳送屮,字符間隔不固定,在停止位后可以加空閑位,空閑位用高電平表示,用于等待傳送。 這樣,接收和發(fā)送可以隨時(shí)地或間斷地進(jìn)行,而不受時(shí)間的限制。圖7-11(b)為有空閑位的情況。在異步數(shù)據(jù)傳送屮,cpu與外圍設(shè)備之間先必須約好兩項(xiàng)事宜:第一、字符格式。雙方要約好字符的編碼

38、形式.奇偶校驗(yàn)形式、以及起始位和停止位的規(guī)定;位位(a)空閑位符字個(gè)起始位據(jù) 數(shù) 位 7停止位 奇偶校驗(yàn)起始位o lj1111o低高位位(b)圖711異步通信的數(shù)據(jù)格式第二、波特率(baud rate)。波特率是衡量數(shù)據(jù)傳送速率的指標(biāo),它要求發(fā)送方和接收方都要以相同 的數(shù)據(jù)傳送速率工作。假設(shè)數(shù)據(jù)傳送的速率是120字符/秒,而每一個(gè)字符假如為10位,則英傳送的波特率為:10位/字符x 120字符/秒=1200位/秒=1200波特(二進(jìn)制電平時(shí))簡而言z,傳送采用二進(jìn)制電平時(shí),“波特”就是每秒傳送多少位。1200波特,就意味著每秒可以 傳送1200位。而每一位的傳送時(shí)間td就是波特率的倒數(shù),如上例

39、小,則為:應(yīng)注意,波特率和有效數(shù)據(jù)位的傳送速率并不一致。例如,上述10位中,真止有效的數(shù)據(jù)位只有7 位。所以,有效數(shù)據(jù)位的傳送速率只有7x 120=840 位/秒此外,波特率也是衡量傳輸通道頻寬的一個(gè)指標(biāo)。異步通信的傳送速率在509600波特之間,常用于計(jì)算機(jī)到crt顯示器和字符打印機(jī)之間的通信、 肓通電報(bào)、以及無線電通訊的數(shù)據(jù)發(fā)送等。項(xiàng)目7. 2應(yīng)用項(xiàng)目七簡易秒表的制作7.2.1串行口擴(kuò)展并行i/o 口單片機(jī)并行i/o 口數(shù)量總是有限的,有時(shí)并行口需做其他更重要的用途,一般也不會(huì)用數(shù)量眾多的 并行i/o 口專門用來驅(qū)動(dòng)顯示電路,能否用89c51的串行通信口加上少量i/o擴(kuò)展芯片川于顯示電路呢

40、? 答案是肯定的。at89c51的串行通信口是一個(gè)功能強(qiáng)人的通信口,而且是相當(dāng)好川的通信口,用于顯示驅(qū)動(dòng)電路再 合適不過了。串口工作方式0是移位寄存器的工作方式,這也就為我們把申口用來擴(kuò)展并行i/o 口捉供 了方法。卜面我們就根據(jù)這種需要設(shè)計(jì)一個(gè)用兩個(gè)串行通信口線加上兩根普通i/o 口,設(shè)計(jì)一個(gè)4位led顯 示電路。當(dāng)然只要再加上兩根i/o 口線即可輕易實(shí)現(xiàn)8位led的顯示電路。圖7-7中單片機(jī)串行口送出 數(shù)據(jù)擴(kuò)展成并行i/o 口用于顯示流水燈的電路己經(jīng)為我們捉供了范例。本項(xiàng)目將結(jié)合秒表系統(tǒng)功能,把 擴(kuò)展的i/o 口用于顯示七段數(shù)碼管。7.2.2秒表電路制作分析本節(jié)展現(xiàn)的系統(tǒng)是一個(gè)計(jì)時(shí)用的秒表

41、,為了使問題簡單一些,它的功能被設(shè)計(jì)為兩位七段數(shù)碼管在 開機(jī)時(shí)顯示“00”,并在系統(tǒng)中添加一個(gè)按鈕開關(guān)。當(dāng)?shù)谝淮伟聪掳粹o開關(guān)后秒表開始計(jì)時(shí),第2次按 下后計(jì)時(shí)停止,第3次按下后兩個(gè)數(shù)碼管清0,并回到一開始的計(jì)時(shí)狀態(tài)。由于只設(shè)計(jì)了兩位七段數(shù)碼 管,所以該秒表最大計(jì)時(shí)99秒。在系統(tǒng)功能實(shí)現(xiàn)上,結(jié)合前面知識(shí)點(diǎn)涉及的串行口擴(kuò)展并行i/o 口方法,我們把單片機(jī)送給七段數(shù) 碼管顯示的計(jì)數(shù)數(shù)字用單片機(jī)的串行口送出,利用74ls164串并移位寄存器,轉(zhuǎn)換成并行數(shù)據(jù)再送給數(shù) 碼管顯示,在數(shù)碼管顯示的控制上,我們利用bcd-7seg解碼驅(qū)動(dòng)器74ls47來處理單片機(jī)送出來的秒 表計(jì)時(shí)值的bcd編碼。這樣單片機(jī)只耍

42、完成秒表的時(shí)間單位,也就是1秒,這樣的時(shí)間單位的定時(shí), 然后每1秒計(jì)時(shí)值加1,在按鍵的控制下,把計(jì)時(shí)值通過串口移位發(fā)送出去就可以了。以下為串口移位寄存擴(kuò)展并行i/o 口來處理計(jì)時(shí)值的碩件電路圖:r410k>xtal1p0ivad0xtal2p0 1/ad1 p0 2/ad2 p0.3z如 3r$tp0.4zad4 p0.5xad5 po.od6 p0 7/ad7p$enp2.gp2.1 伽p2.2/a10p2.3/a11alep2 4/a12p2.5/a13p1.0 pi 1p1.2p2.6/a14p2.7/a15p3 0/rxd p3 1/txd p3.2/int0pi.3p3.5/i

43、nttp1.4a 1p3.4/fd p3.5/t1p3.6 碩r 1.0 piep1.7p3.7 閩5u1111亠j:上35343381213-<=127一1l31:亠丄 45一丄士u28atlj > <7106 5 4r54.7k-宀c2 寧 4.7uf74164u4v46va aqapupcqc0qdbi/rboqerbiqfltqgu374ls47r&-r19 470m2-11aqabqbcqcdqdbi/rboqerbiqfltqg4l$4713圖7-12秒表系統(tǒng)電路圖從圖712可以看出,按鍵被設(shè)計(jì)與pl0 口相連,通過r4連到電源止極,p1.0 口低電平表示

44、按鍵 被按下。單片機(jī)串口 rxd作為數(shù)據(jù)發(fā)送端口連接到74ls164的輸入端,在txd送出的移位脈沖控制 下,74164完成串併轉(zhuǎn)換,送給u3、u4兩個(gè)74ls47的輸入端的就是一個(gè)字節(jié)的并行數(shù)據(jù)。74ls47把 并行輸入的bcd編碼計(jì)時(shí)值解碼后送到數(shù)碼管ag字段顯示相應(yīng)的數(shù)字。7.2.3編制程序流程圖在硬件系統(tǒng)設(shè)計(jì)的基礎(chǔ)上,我們開始軟件程序的編寫。首先,軟件在實(shí)現(xiàn)系統(tǒng)功能上把主程序主耍 丿ij來查詢按鍵的狀態(tài),在定時(shí)屮斷子程序里完成計(jì)時(shí)值數(shù)據(jù)的處理和送顯。如圖7-13為系統(tǒng)軟件主程 序流程圖。在主程序中,初始化階段完成串口工作方式的設(shè)置、開定時(shí)器屮斷、設(shè)直送顯計(jì)數(shù)器的初始值以及 送顯“00”

45、的工作,然后笫1次按鍵按下后程序開啟定時(shí)屮斷,此時(shí)每次定時(shí)時(shí)間到都會(huì)執(zhí)行定時(shí)屮斷 子程序;而相對(duì)簡單的是,第2次按鍵按下只要原地等待第3次按鍵動(dòng)作,第3次按鍵按卜-后直接返回 程序開始處。開始初始化、串口送數(shù)碼管顯 "00"、開中斷等開啟定時(shí)按下停止定時(shí)圖7-13秒表主程序流程圖在定吋中斷子程序中主要是在定吋1秒時(shí)間到的情況下,完成計(jì)時(shí)值調(diào)整并顯示的工作。中斷子程 序流程圖如圖7-14所示。進(jìn)入中斷更新定時(shí)值串口送顯計(jì)時(shí)值恢復(fù)定時(shí)器初始值返回reti圖714秒表定時(shí)中斷了程序流程圖在以上程序流程圖的基礎(chǔ)上,對(duì)源程序進(jìn)行編寫,編寫的時(shí)候耍注意在處理按鍵時(shí),判斷有按鍵按 卜時(shí)耍

46、進(jìn)行消除開關(guān)抖動(dòng),以防止誤操作的發(fā)生,其中消抖要編寫一個(gè)延時(shí)子程序,當(dāng)判斷有按鍵按卜-后,延時(shí)30ms然后仍然是按鍵按下的狀態(tài)才判定按鍵按下成立,直到按鍵被松開示才去處理按鍵按下 對(duì)應(yīng)的程序功能。7.2.4電路調(diào)試電子電路調(diào)試技術(shù)包括調(diào)整和測(cè)試兩部分。調(diào)整主要是對(duì)電路參數(shù)的調(diào)整,如對(duì)電阻、電容和電感 等,以及機(jī)械部分進(jìn)行調(diào)整,使電路達(dá)到預(yù)定的功能和性能耍求;測(cè)試主耍是對(duì)電路的各項(xiàng)技術(shù)指標(biāo)和 功能進(jìn)行測(cè)量與試驗(yàn),并設(shè)計(jì)的性能指標(biāo)進(jìn)行比較,以確定電路是否合格。電路測(cè)試是電路調(diào)整的依 據(jù),又是檢驗(yàn)結(jié)論的判斷依據(jù)。實(shí)際上,電子產(chǎn)品的調(diào)整和測(cè)試是同吋進(jìn)行的,要經(jīng)過反復(fù)的調(diào)整和測(cè) 試,產(chǎn)品的性能才能達(dá)到預(yù)

47、期的口標(biāo)。對(duì)丁單片機(jī)電路調(diào)試不僅僅具有以上兩方面硬件的調(diào)試問題,還有很重要的是軟件的調(diào)試和系統(tǒng)軟硬件聯(lián)調(diào)。在軟件調(diào)試過程中,可以利用keil vision軟件的調(diào)試功能,其中本項(xiàng)冃的按鍵動(dòng)作可以用軟 件屮peripherals菜單項(xiàng)的i/o port一portl子菜單項(xiàng)調(diào)出parallel portl對(duì)話框,如圖7-15所示,在這個(gè)選 項(xiàng)卡上可以直接單擊p1.0對(duì)應(yīng)的端口兩次,可以來模擬p1.0 口上連接的按鍵動(dòng)作。parallel port 1serial channelport 1p1: |0xffpins: |0xff1 bits 0mode: 18-bit shift register

48、 二sc0n:baudrateirq|廠 sm0d17 tibaudrate: 12750000廠sh r t餌8- bit var. baudrate9- bit fix. baudrate9-bit var. baudrate圖 7-15 parallel portl 對(duì)話框圖 7-16 serial channel 對(duì)話框?qū)τ趩纹瑱C(jī)的串口,我們也町以在軟件調(diào)試時(shí)調(diào)出peripherals菜單項(xiàng)的serial子菜單項(xiàng)調(diào)出serial channel對(duì)話框,如圖7-16所示。并l,在mode選項(xiàng)屮選擇8位的移位寄存器方式即8-bit shift register, 其他不變,其中baudra

49、te表示在系統(tǒng)時(shí)鐘下串口數(shù)據(jù)的波特率。仿真吋,設(shè)置的斷點(diǎn)可以在進(jìn)入定時(shí)中斷子程序并且達(dá)到了 1秒?yún)奸g的定吋z后,因?yàn)檫@樣可以看 到軟件處理計(jì)吋值的過程,并且串口送出更新z后的計(jì)吋值的過程也可以在serial channel選項(xiàng)卡的 sbuf寄存器小看到,每次串口發(fā)送數(shù)據(jù)完成之后,ti標(biāo)志位會(huì)被置1。在硬件電路和軟件編程仿真都完成后,我們可以在proteus軟件小進(jìn)行軟碩件聯(lián)調(diào)。如圖717所示, 在單片機(jī)at89c51的屬性編輯對(duì)話program file項(xiàng)選取編譯牛成的.hex源文件,在clock frequency 項(xiàng)設(shè)置單片機(jī)品振頻率為12mhzo岡元件標(biāo)注:iud隱藏:r確定元件型號(hào):|

50、at89c51隱赫:r幫助pcb package:dil40j數(shù)據(jù)program file:|實(shí)例:秒表stopwatch匕top膠旦| hide allj隗藏引腳clock frequency:|12mhzhide alljadvanced properties:9取消| simulate program fetches no | hide allother properties:avr當(dāng)前元件不參與仿冥 廠當(dāng)前元件不用于pcb制版 廠使用文本方式編輯所有厘性r附加層次模塊 廠隱藏元件共同引腳圖7-17 proteus軟件的單片機(jī)屬性編輯對(duì)話框設(shè)置好軟件源程序示,在proteus軟件左下角點(diǎn)

51、選開始仿真按鈕,則單片機(jī)軟硬件系統(tǒng)聯(lián)調(diào)開始仿 真,按下按鈕觀察數(shù)碼管顯示悄況,根據(jù)仿真情況對(duì)軟硬件做修改和調(diào)整。在以上調(diào)試的基礎(chǔ)上,我們可以把軟件源程序下載到單片機(jī)實(shí)驗(yàn)板上,配合實(shí)際硬件一起驗(yàn)證系統(tǒng) 設(shè)計(jì)想過的實(shí)現(xiàn)。項(xiàng)目73單片機(jī)與pc機(jī)通信7.3.1 rs-232c總線標(biāo)準(zhǔn)的結(jié)構(gòu)單片機(jī)能與別的單片機(jī)進(jìn)行串行通信,也能和普通計(jì)算機(jī)通過rs-232標(biāo)準(zhǔn)的串口進(jìn)行通信。這是 單片機(jī)一個(gè)極大的特點(diǎn),使得它在通信與控制領(lǐng)域得到廣泛的應(yīng)用。什么是標(biāo)準(zhǔn)?最簡單的例子就是電源插座和插頭是依據(jù)一定的標(biāo)準(zhǔn)主產(chǎn)出來的,它們具有-定的尺 寸和規(guī)格,這使得用電器能在一定范圍內(nèi)順利地供電。例如,在廣東順徳買一個(gè)豆?jié){機(jī)到

52、了北京仍可以 使川,是因?yàn)閲鴥?nèi)的插座和插頭執(zhí)行標(biāo)準(zhǔn)是一樣的,不存在插頭插不進(jìn)插廉的情況。但在國內(nèi)買的電器就不能在英國直接使用了,因?yàn)橛碾娫床迨汉筒孱^執(zhí)行的是bs 1363標(biāo)準(zhǔn), 如圖所示。這里bs 1363就是一個(gè)標(biāo)準(zhǔn)的名字,它定義了英國、愛爾蘭和一些英屬殖民地國家的家 川交流電源插座和插頭的規(guī)格。有了這個(gè)標(biāo)準(zhǔn),這些地區(qū)的電器使用和插廉插頭的牛產(chǎn)才能達(dá)成一致。圖718英國的電源插頭和插座所以標(biāo)準(zhǔn)定義為一個(gè)群體相互之間使用某種事物達(dá)到某種目的的方法。我們討論的rs-232標(biāo)準(zhǔn), 是一種在數(shù)據(jù)終端設(shè)備(dte)與數(shù)據(jù)運(yùn)載設(shè)備(dce)之間進(jìn)行串行二進(jìn)制數(shù)據(jù)交換的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)主要應(yīng) 用于計(jì)算機(jī)端

53、口中。rs-232只是眾多標(biāo)準(zhǔn)的一種。rs-232 中 rs 是 “retma standard” 的首字母縮寫,retma(radio-elcctronics and television manufactures association,無線也 電了、電視設(shè)備制造商協(xié)會(huì))是rs-232標(biāo)準(zhǔn)的發(fā)布者?,F(xiàn)在retma 已經(jīng)發(fā)展成為eia(elcctronic industries alliance,電子工業(yè)聯(lián)合會(huì))。所以rs-232標(biāo)準(zhǔn)與eia-232標(biāo)準(zhǔn)是 相同的。由于rs-232標(biāo)準(zhǔn)早在1960年就已經(jīng)被制訂,而那時(shí)ttl邏輯電路還沒冇降生,所以它規(guī)定的邏 輯電平比較奇怪,與今天的ttl電平不兼容。ttl邏輯中邏輯1和邏輯0的電平分別為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論