串行通信接口_第1頁(yè)
串行通信接口_第2頁(yè)
串行通信接口_第3頁(yè)
串行通信接口_第4頁(yè)
串行通信接口_第5頁(yè)
已閱讀5頁(yè),還剩69頁(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)介

4.3串行通信接口4.3.1串行通信的基本知識(shí)1.并行通信與串行通信在實(shí)際應(yīng)用中,不但計(jì)算機(jī)與外部設(shè)備之間常常要進(jìn)行信息交換,而且計(jì)算機(jī)之間也需要交換信息,所有這些信息的交換均稱(chēng)為“通信”。

通信的基本方式分為并行通信和串行通信兩種。并行通信是構(gòu)成1組數(shù)據(jù)的各位同時(shí)進(jìn)行傳送,例如8位數(shù)據(jù)或16位數(shù)據(jù)并行傳送。其特點(diǎn)是傳輸速度快,但當(dāng)距離較遠(yuǎn)、位數(shù)又多時(shí)導(dǎo)致了通信線(xiàn)路復(fù)雜且成本高。串行通信是數(shù)據(jù)一位接一位地順序傳送。其特點(diǎn)是通信線(xiàn)路簡(jiǎn)單,只要一對(duì)傳輸線(xiàn)就可以實(shí)現(xiàn)通信(如電話(huà)線(xiàn)),從而大大地降低了成本,特別適用于遠(yuǎn)距離通信。缺點(diǎn)是傳送速度慢。圖4―10為以上兩種通信方式的示意圖。由圖4―10可知,假設(shè)并行傳送N位數(shù)據(jù)所需時(shí)間為T(mén),那么串行傳送的時(shí)間至少為NT,實(shí)際上總是大于NT的。

圖4―10通信的兩種基本方式(a)并行通信;(b)串行通信串行通信可分為異步傳送和同步傳送兩種基本方式。1)異步傳送方式異步傳送的特點(diǎn)是數(shù)據(jù)在線(xiàn)路上的傳送不連續(xù)。在傳送時(shí),數(shù)據(jù)是以一個(gè)字符為單位進(jìn)行傳送的。它用一個(gè)起始位表示字符的開(kāi)始,用停止位表示字符的結(jié)束。異步傳送的字符格式如圖4―11(a)所示。

一個(gè)字符由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位4個(gè)部分組成(一幀數(shù)據(jù))。起始位為0信號(hào)占1位;其后接著的就是數(shù)據(jù)位,它可以是5位、6位、7位或8位,傳送時(shí)低位在先、高位在后;再后面的1位為奇偶校驗(yàn)位,可要也可以不要;最后是停止位,它用信號(hào)1來(lái)表示字符的結(jié)束,可以是1位、1位半或2位。圖4―11串行異步傳送的字符格式(a)字符格式;(b)有空閑位的字符格式例如,采用串行異步通信方式傳送ASCII碼字符‘5’,規(guī)定為7位數(shù)據(jù)位,1位偶校驗(yàn)位,1位停止位,無(wú)空閑位。由于‘5’的ASCII碼為35H,其對(duì)應(yīng)7位數(shù)據(jù)位為0110101,如按低位在前、高位在后順序排列應(yīng)為1010110。前面加1位起始位,后面配上偶校驗(yàn)位1位0,最后面加1位停止位1,因此傳送的字符格式為0101011001,其對(duì)應(yīng)的波形如圖4―12所示。圖4―12傳送ASCII碼字符‘5’的波形圖在串行異步傳送中,CPU與外設(shè)之間事先必須約定(協(xié)議):①字符格式。雙方要事先約定字符的編碼形式、奇偶校驗(yàn)形式及起始位和停止位的規(guī)定。例如用ASCII碼通信,有效數(shù)據(jù)為7位,加1個(gè)奇偶校驗(yàn)位、1個(gè)起始位和1個(gè)停止位共10位。當(dāng)然停止位也可大于1位。②波特率(Baudrate)。波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進(jìn)制位數(shù),單位為位/秒。它與字符的傳送速率(字符/秒)之間存在如下關(guān)系:波特率=(位/字符)×(字符/秒)=位/秒要求發(fā)送端與接收端的波特率必須一致。例如,假設(shè)字符傳送的速率為120字符/秒,而每1個(gè)字符為10位,那么傳送的波特率為10位/字符×120字符/秒=1200位/秒=1200波特每1位二進(jìn)制位的傳送時(shí)間Td就是波特率的倒數(shù),例如上例中Td=1/1200=0.833ms2)同步傳送在異步傳送中,每1個(gè)字符都要用起始位和停止位作為字符開(kāi)始和結(jié)束的標(biāo)志,占用了一定的時(shí)間。為了提高傳送速度,有時(shí)就去掉這些標(biāo)志,而采用同步傳送,即1次傳送1組數(shù)據(jù)。在這1組數(shù)據(jù)的開(kāi)始處要用同步字符SYN來(lái)加以指示,如圖4―13所示。圖4――13同同步步傳送送2.數(shù)數(shù)據(jù)傳傳送方方向串行通通信的的數(shù)據(jù)據(jù)傳送送方向向有3種形形式。。(1)單工工方式式。如圖4―14(a)所示示,A端為為發(fā)送送站,B端端為接接收站站,數(shù)數(shù)據(jù)僅僅能從從A站站發(fā)至至B站站。(2)半雙雙工方方式。。如圖4―14(b)所示示,數(shù)數(shù)據(jù)既既可從從A站站發(fā)送送到B站,也可可以由由B站站發(fā)送送到A站。。不過(guò)過(guò)在同同一時(shí)時(shí)間只只能作作1個(gè)個(gè)方向向的傳傳送。。(3)全雙雙工方方式。。如圖4―14(c)所示示,每每個(gè)站站(A、B)既既可同同時(shí)發(fā)發(fā)送,也可可同時(shí)時(shí)接收收。圖5――14串行行通信信的三三種方方式(a)單工工方式式;(b)半雙雙工方方式;;(c)全全雙工工方式式單工方方式半雙方方式全雙工工方式式3.信信號(hào)的的調(diào)制制和解解調(diào)計(jì)算機(jī)機(jī)通信信是1種數(shù)數(shù)字信信號(hào)的的通信信,如如圖4―15所所示。。它要求求傳送送線(xiàn)的的頻帶帶很寬寬,而而在長(zhǎng)長(zhǎng)距離離通訊訊時(shí),通常常是利利用電電話(huà)線(xiàn)線(xiàn)來(lái)傳傳送的的,該該線(xiàn)不不可能能有這這樣寬寬的頻頻帶。。如果果用數(shù)數(shù)字信信號(hào)經(jīng)經(jīng)過(guò)傳傳送線(xiàn)線(xiàn)直接接通訊訊,信信號(hào)就就會(huì)畸畸變,如圖圖4――16所示示。圖4―15通訊信號(hào)示意圖圖5―16數(shù)字信號(hào)通過(guò)電話(huà)線(xiàn)傳送產(chǎn)生的畸變因此要要在發(fā)發(fā)送端端用調(diào)調(diào)制器器(Modulator)把把數(shù)字字信號(hào)號(hào)轉(zhuǎn)換換為模模擬信信號(hào),在接接收端端用解解調(diào)器器(Demodulator)檢檢測(cè)此此模擬擬信號(hào)號(hào),再再把它它轉(zhuǎn)換換成數(shù)數(shù)字信信號(hào),如圖圖4――17所示示。FSK(Fr圖4―17調(diào)制與解調(diào)示意圖圖4―18FSK調(diào)制法原理圖4.數(shù)數(shù)據(jù)終終端與與調(diào)制制器的的接口口調(diào)制后后的信信號(hào)與與數(shù)據(jù)據(jù)終端端連接接時(shí),經(jīng)常常使用用EIARS-232C接口口。它是是目前前最常常用的的1種種串行行通信信接口口。這這是1種有有25(或或9個(gè)個(gè))個(gè)個(gè)管腳腳的D型連連接器器,不但它它的每每一個(gè)個(gè)管腳腳的規(guī)規(guī)定是是標(biāo)準(zhǔn)準(zhǔn)的,而且且對(duì)各各種信信號(hào)的的電平平規(guī)定定也是是標(biāo)準(zhǔn)準(zhǔn)的,因而而便于于互相相連接接。其最基基本的的最常常用的的信號(hào)號(hào)規(guī)定定如圖圖4――19所示示。圖4―19RS-232C的引腳圖其次,標(biāo)準(zhǔn)準(zhǔn)的另另1個(gè)個(gè)重要要的含含義是是這些些信號(hào)號(hào)的電電氣性性能也也是標(biāo)標(biāo)準(zhǔn)的的。對(duì)對(duì)各種種信號(hào)號(hào)的規(guī)規(guī)定如如下::(1)在在TXD和和RXD線(xiàn)線(xiàn)上::MARK(即表表示為為1)=-3~-25VSPACE(即即表示示為0)=+3~+25V(2)在等等線(xiàn)線(xiàn)上::ON=+3~+25VOFF=-3~-25V圖4―20接收器和發(fā)送器電路4.3.251系列列單片片機(jī)的的串行行接口口51系系列單單片機(jī)機(jī)內(nèi)部部有1個(gè)功功能很很強(qiáng)的的全雙雙工串串行口口,可可同時(shí)時(shí)發(fā)送送和接接收數(shù)數(shù)據(jù)。。它有有4種種工作作方式式,可可供不不同場(chǎng)場(chǎng)合使使用。。波特特率可可由軟軟件設(shè)設(shè)置,通過(guò)過(guò)片內(nèi)內(nèi)的定定時(shí)器器/計(jì)計(jì)數(shù)器器產(chǎn)生生。接接收、、發(fā)送送均可可工作作在查查詢(xún)方方式或或中斷斷方式式,使使用十十分靈靈活。。MCS-51的串串行口口除了了用于于數(shù)據(jù)據(jù)通信信外,還可可以非非常方方便地地構(gòu)成成1個(gè)個(gè)或多多個(gè)并并行輸輸入/輸出出口,或作作串并并轉(zhuǎn)換換,用用來(lái)驅(qū)驅(qū)動(dòng)鍵鍵盤(pán)與與顯示示器。。圖4―2251單片機(jī)串行口的原理結(jié)構(gòu)圖1.串串行接接口的的特殊殊功能能寄存存器1)串串行行口數(shù)數(shù)據(jù)緩緩沖器器SBUF接收緩緩沖器器SBUF發(fā)送緩緩沖器器SBUFSBUF是是兩個(gè)個(gè)在物物理上上獨(dú)立立的接接收、、發(fā)送送緩沖沖器,可同同時(shí)發(fā)發(fā)送、、接收收數(shù)據(jù)據(jù)。兩兩個(gè)緩緩沖器器只用用一個(gè)個(gè)字節(jié)節(jié)地址址99H,可通通過(guò)指指令對(duì)對(duì)SBUF的讀讀寫(xiě)來(lái)來(lái)區(qū)別別是對(duì)對(duì)接收收緩沖沖器的的操作作還是是對(duì)發(fā)發(fā)送緩緩沖器器的操操作。。CPU寫(xiě)寫(xiě)SBUF,就就是寫(xiě)寫(xiě)發(fā)送送緩沖沖器;讀SBUF,就是是讀接接收緩緩沖器器。串串行口口對(duì)外外也有有兩條條獨(dú)立立的收收、發(fā)發(fā)信號(hào)號(hào)線(xiàn)RXD(P3.0)和TXD(P3.1),因因此可可以同同時(shí)發(fā)發(fā)送、、接收收數(shù)據(jù)據(jù),實(shí)實(shí)現(xiàn)全全雙工工傳送送。2)串串行行口控控制寄寄存器器SCONSCON寄寄存器器用來(lái)來(lái)控制制串行行口的的工作作方式式和狀狀態(tài),它可可以是是位尋尋址。。在復(fù)復(fù)位時(shí)時(shí)所有有位被被清0,字字地址址為98H。SCON的的格式式為RITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D0

SM0、SM1:串串行口口工作作方式式選擇擇位(具體體內(nèi)容容參閱閱工作作方式式一節(jié)節(jié))。。SM2:多多機(jī)通通信控控制位位。主主要用用于工工作方方式2和方方式3。在在方式式2和和方式式3中中,如如SM2=1,則接接收到到的第第9位位數(shù)據(jù)據(jù)(RB8)為為0時(shí)時(shí)不啟啟動(dòng)接接收中中斷標(biāo)標(biāo)志RI(即RI=0),并并且將將接收收到的的前8位數(shù)數(shù)據(jù)丟丟棄;RB8為為1時(shí)時(shí),才才將接接收到到的前前8位位數(shù)據(jù)據(jù)送入入SBUF,并并置位位RI產(chǎn)生生中斷斷請(qǐng)求求。當(dāng)當(dāng)SM2=0時(shí)時(shí),則則不論論第9位數(shù)數(shù)據(jù)為為0或或1,都將將前8位數(shù)數(shù)據(jù)裝裝入SBUF中中,并并產(chǎn)生生中斷斷請(qǐng)求求。在在方式式0時(shí)時(shí),SM2必須須為0。REN:允允許串行接接收控制位位。若REN=0,,則禁止接接收;若REN=1,則允許許接收。該該位由軟件件置位或復(fù)復(fù)位。TB8:發(fā)發(fā)送數(shù)據(jù)位位8。在方式2和和方式3時(shí)時(shí),TB8為所要發(fā)發(fā)送的第9位數(shù)據(jù)。。在多機(jī)通通信中,以以TB8位位的狀態(tài)表表示主機(jī)發(fā)發(fā)送的是地地址還是數(shù)數(shù)據(jù):TB8=0為為數(shù)據(jù),TB8=1為地址;也可用作作數(shù)據(jù)的奇奇偶校驗(yàn)位位。該位由由軟件置位位或復(fù)位。。RB8:接接收數(shù)據(jù)位位8。TI:發(fā)送送中斷標(biāo)志志位。在方式0時(shí)時(shí),當(dāng)發(fā)送送到的第8位結(jié)束后后,由內(nèi)部部硬件使TI置位,向CPU請(qǐng)求中斷斷。在其它它方式時(shí),在發(fā)送到到停止位開(kāi)開(kāi)始時(shí)由硬硬件置位TI,必須須在響應(yīng)中中斷后,由由軟件使其其復(fù)位。TI也可供供軟件查詢(xún)?cè)兪褂?。RI:接收收中斷標(biāo)志志位。在方式0時(shí)時(shí),當(dāng)接收收到的第8位結(jié)束后后,由內(nèi)部部硬件使RI置位,向CPU請(qǐng)求中斷斷。在其它它方式時(shí),接收到停停止位的中中間便由硬硬件置位RI,同樣樣,也必須須在響應(yīng)中中斷后,由由軟件使其其復(fù)位。RI也可供供軟件查詢(xún)?cè)兪褂谩?)特殊功功能寄存器器PCONPCON主主要是電源源控制而設(shè)設(shè)置的專(zhuān)用用寄存器,單元地址址為87H,不能位位尋址。其其內(nèi)容如下下:IDLPDGF0GF1SMODD7D6D5D4D3D2D1D0

PCON87H最高位SMOD為串串行口波特特率系數(shù)控控制位,當(dāng)當(dāng)SMOD=1時(shí),方式1、、2、3的的波特率加加倍。2.串行接接口的工作作方式串行口有4種工作方方式,它是是由SCON中的SM0、SM1來(lái)定義的,如表4――5所示。。表4―5串行口的工作方式1)方式0串行接口的的工作方式式0為8位位的同步移移位寄存器器方式,其其波特率是是固定的,為fosc(振蕩頻率率)的1/12。用于擴(kuò)展并并行I/O接口,一一幀8位,,無(wú)起始位位和停止位位。方式0發(fā)送送:數(shù)據(jù)從RXD引腳串串行輸出,TXD((P3.1)引腳輸輸出同步脈脈沖。當(dāng)1個(gè)數(shù)據(jù)寫(xiě)寫(xiě)入串行口口發(fā)送緩沖沖器時(shí),串串行口將8位數(shù)據(jù)以以fosc/12的固固定波特率率從RXD引腳輸出出,從低位位到高位。。發(fā)送完后后置中斷標(biāo)標(biāo)志TI為為1,呈中中斷請(qǐng)求狀狀態(tài),在再再次發(fā)送數(shù)數(shù)據(jù)之前,必須用軟軟件將TI清0。

發(fā)送時(shí)序?qū)懭隨BUFRXD輸出TXDTID0D1D2D3D4D5D6D7寫(xiě)REN=1RI=0RXD輸入RI接收時(shí)序(a)(b)圖4―23串行口方式0的發(fā)送、接收時(shí)序圖方式0接收收在滿(mǎn)足REN=1和和RI=0的條件下下,串行口口處于方式式0輸入。。此時(shí),RXD為數(shù)數(shù)據(jù)輸入端端,TXD為同步信信號(hào)輸出端端,接收器器也以fosc/12的波特特率采樣RXD引腳腳輸入的數(shù)數(shù)據(jù)信息。。當(dāng)接收器器接收完8位數(shù)據(jù)后后,置中斷斷標(biāo)志RI=1請(qǐng)求求中斷,在在再次接收收之前,必必須用軟件件將RI清清0。在方式0工工作時(shí),必必須使SCON寄存存器中的SM2位為為“0”。。方式0發(fā)發(fā)送或接收收完8位數(shù)數(shù)據(jù)后由硬硬件置位TI或RI中斷請(qǐng)求求標(biāo)志,CPU在響響應(yīng)中斷后后要用軟件件清除TI或RI標(biāo)標(biāo)志。若串串行口要作作為并行口口輸入輸出出擴(kuò)展,這這時(shí)必須設(shè)設(shè)置“串入入并出“或或”并入串串出”的移移位寄存器器來(lái)配合使使用(如CD4094或CD4014等)。例例如將串行行口作為并并行輸出口口使用時(shí),,可采用如如圖4―23、24所示的方方法。圖4―23一種串行轉(zhuǎn)換為并行的方法圖4―24一種串行轉(zhuǎn)換為并行的方法2)方式式1在方式1時(shí)時(shí),串行口口被設(shè)置為為波特率可可變的8位位異步通信信接口。方方式1發(fā)發(fā)送:串串行口以以方式1發(fā)發(fā)送時(shí),數(shù)數(shù)據(jù)位由TXD端輸輸出,發(fā)送送1幀信息息為10位位,其中1位起始位位、8位數(shù)數(shù)據(jù)位(先先低位后高高位)和一一個(gè)停止位位“1”。。CPU執(zhí)執(zhí)行1條數(shù)數(shù)據(jù)寫(xiě)入發(fā)發(fā)送緩沖器器SBUF的指令((如指令MOVSBUF,A),就啟動(dòng)發(fā)發(fā)送器發(fā)送送。當(dāng)發(fā)送送完數(shù)據(jù),就置中斷斷標(biāo)志TI為1。方方式1所傳傳送的波特特率取決于于定時(shí)器T1的溢出出率和特殊殊功能寄存存器PCON中SMOD的值值,即方式式1的波特特率=(2SMOD/32)××定時(shí)器T1的溢出出率。方式1接收收:數(shù)數(shù)據(jù)從RXD端輸入入。當(dāng)允許許輸入位REN置1后,接收收器便以波波特率的16倍速率率采樣RXD端電平平,當(dāng)采樣樣到1至0的跳變時(shí)時(shí),啟動(dòng)接接收器接收收,并復(fù)位位內(nèi)部的16分頻計(jì)計(jì)數(shù)器,以以實(shí)現(xiàn)同步步。計(jì)數(shù)器器的16個(gè)個(gè)狀態(tài)把1位時(shí)間等等分成16份,并在在第7、8、9個(gè)計(jì)計(jì)數(shù)狀態(tài)時(shí)時(shí),采樣RXD電平平。因此,,每一位的的數(shù)值采樣樣三次,至至少兩次相相同的值才才被確認(rèn)。。在起始位位,如果接接收到的值值不是0,,則起始位位無(wú)效,復(fù)復(fù)位接收電電路。在檢檢測(cè)到一個(gè)個(gè)1到0的的跳變時(shí),,再重新啟啟動(dòng)接收器器,如果接接收值為0,起始位位有效,則則開(kāi)始接收收本幀的其其余信息。。在RI=0的情況況下,接收收到停止位位為1時(shí)((或SM2=0),,將停止止位送入RB8,8位數(shù)據(jù)進(jìn)進(jìn)入接收緩緩沖器SBUF,并并置RI=1中斷標(biāo)標(biāo)志。在方式1的能將將接收的的數(shù)據(jù)送送入接收收數(shù)據(jù)緩緩沖器SBUF和RB8,且且置位RI的條條件是::(1)RI=0;(2)SM2=0或接接收到的的停止位位=1。。以上兩個(gè)個(gè)條件任任一條件件不滿(mǎn)足足,將不不可恢復(fù)復(fù)地丟失失所接收收到的這這一幀數(shù)數(shù)據(jù)。在同時(shí)滿(mǎn)滿(mǎn)足RI=0;SM2=0或或接收到到的停止止位=1兩個(gè)條條件時(shí),,接收數(shù)數(shù)據(jù)有效效,實(shí)現(xiàn)現(xiàn)裝載SBUF、RB8及RI置1。接收收一幀之之后,不不論上述述兩個(gè)條條件是否否滿(mǎn)足,,接收控制制器再次次采樣RXD的負(fù)跳變變,以便便接收下下一幀數(shù)數(shù)據(jù)。3)方式式2、3串串行口工工作在方方式2、、3時(shí),,為9位位異步通通信口,,發(fā)送、、接收一一幀信息息由11位組成成:即起起始位1位(0)、數(shù)數(shù)據(jù)8位位(低位位在先))、1位位可編程程位(第第9位))和1位位停止位位(1))。發(fā)送送時(shí),可可編程位位(TB8)可可設(shè)置0或1,,接收時(shí)時(shí),可編編程位送送入SCON中中的RB8。方式2、、3的區(qū)區(qū)別在于于:方式式2的波波特率為為fosc/32或fosc/64,即fosc/(64/2smod)。而方方式3的的波特率率可變。。附加的第第9位數(shù)數(shù)據(jù)為SCON中的TB8,它由軟軟件置位位或清0,可作作為多機(jī)機(jī)通信中中地址/數(shù)據(jù)信信息的標(biāo)標(biāo)志位,也可作作為數(shù)據(jù)據(jù)的奇偶偶校驗(yàn)位位。發(fā)送:CPU執(zhí)執(zhí)行一條條寫(xiě)入SBUF的指令令后,便便立即啟啟動(dòng)發(fā)送送器發(fā)送送,送完完一幀住住信息時(shí)時(shí),置中中斷標(biāo)志志TI=1。其其時(shí)序如如圖a所所示。。接收:與與方式1類(lèi)似。當(dāng)當(dāng)REN=1時(shí),CPU開(kāi)始不斷斷地對(duì)RXD采樣,采采樣速率率為波特特率的16倍,當(dāng)檢檢測(cè)到負(fù)負(fù)跳變后后啟動(dòng)接接收器,,位檢測(cè)測(cè)器對(duì)每每位采集集3個(gè)值,用用采3取2的方法來(lái)來(lái)確定每每位狀態(tài)態(tài)。當(dāng)采采至最后后一位時(shí)時(shí),將8位數(shù)據(jù)裝裝入SBUF,第9位數(shù)據(jù)裝裝入RB8并置RI=1。其時(shí)序序如圖b所示。同樣,方方式2、3中能將接收收的數(shù)據(jù)據(jù)送入接接收數(shù)據(jù)據(jù)緩沖器器SBUF和RB8,,且置位位RI的的條件是是:(1)RI=0;(2)SM2=0或接接收到的的第9位=1。3.串行行通信的的波特率率串行通信信的4種種工作方方式對(duì)應(yīng)應(yīng)著3種種波特率率。(1)對(duì)對(duì)于方式式0,波波特率是是固定的的,為單單片機(jī)時(shí)時(shí)鐘的十十二分之之一,即即fosc/12。。(2)對(duì)對(duì)于方式式2,波波特率有有兩種可可供選擇擇,即fosc/32和和fosc/64。。對(duì)應(yīng)于于以下公公式:(3)對(duì)對(duì)于方式式1和方方式3,波特率率都由定定時(shí)器T1的溢溢出率來(lái)來(lái)決定,對(duì)應(yīng)于于以下公公式:波特率=(2SMOD/32)×(定定時(shí)器T1的溢溢出率)而定時(shí)器器T1的的溢出率率則和所所采用的的定時(shí)器器工作方方式有關(guān)關(guān),并可可用以下下公式表表示:定時(shí)器T1的溢溢出率=fosc/(12×(2n-X))其中X為為定時(shí)器器T1的的計(jì)數(shù)初初值,n為定時(shí)時(shí)器T1的位數(shù)數(shù),對(duì)于于定時(shí)器器方式0,取n=13;對(duì)于于定時(shí)器器方式1,取n=16;對(duì)于于定時(shí)器器方式2、3,,取n=8。表4―6常常用波特特率和定定時(shí)器T1初值值4.4.2多多機(jī)通信信方式2、3中能將接收收的數(shù)據(jù)據(jù)送入接接收數(shù)據(jù)據(jù)緩沖器器SBUF和RB8,,且置位位RI的的條件是是:(1)RI=0;(2)SM2=0或((SM2=1和和接收到到的第9位=1。))利用這一一特點(diǎn)可可用于多多機(jī)通信信中多機(jī)通信信的過(guò)程程:系統(tǒng)初始始化時(shí),,將所有有從機(jī)的的SM2均置1,并處處于允許許串行口口(中斷))接收的狀狀態(tài)。對(duì)于主機(jī)機(jī):主機(jī)欲欲與某從從機(jī)通信信,先向向所有從從機(jī)發(fā)出出從機(jī)的的地址,接著才才發(fā)送命命令或數(shù)數(shù)據(jù)。在在主機(jī)發(fā)發(fā)送地址址時(shí),置置第9位位數(shù)據(jù)((TB8)為1,表示示主機(jī)發(fā)發(fā)送的是是地址幀幀;然后后將第9位數(shù)據(jù)據(jù)(RB8)清清0,再再發(fā)送命命令或數(shù)數(shù)據(jù)。對(duì)于從機(jī)機(jī):由于SM2=1,所所有將響響應(yīng)主機(jī)機(jī)發(fā)來(lái)的的第9位位數(shù)據(jù)((RB8)為1的地址址信息。。若從機(jī)機(jī)接收的的地址與與本從機(jī)機(jī)的地址址相同,,則地址址相同的的從機(jī)將將SM2置0,,繼續(xù)接接收主機(jī)機(jī)送來(lái)的的命令或或數(shù)據(jù)。。若從機(jī)機(jī)的地址址與主機(jī)機(jī)送來(lái)地地址不相相同,則則該從機(jī)機(jī)SM2繼續(xù)為為1,不不接收主主機(jī)送來(lái)來(lái)的命令令或數(shù)據(jù)據(jù)。4.4.3串串行通信信應(yīng)用舉舉例串行口方方式1和和方式3都是異異步通信信方式,方式1為8位位數(shù)據(jù)位位,方式式3為9位數(shù)據(jù)據(jù)位,兩兩種方式式的波特特率都是是受定時(shí)時(shí)器T1的溢出出率控制制。在用用方式1或方式式3實(shí)現(xiàn)現(xiàn)串行異異步通信信時(shí),初初始化程程序要設(shè)設(shè)定串行行口的工工作方式式,并對(duì)對(duì)定時(shí)器器T1實(shí)實(shí)現(xiàn)初始始化,即即設(shè)定定定時(shí)器方方式和定定時(shí)器初初值。此此外,還還要編寫(xiě)寫(xiě)發(fā)送子子程序和和接收子子程序。。例1:串串行口按按雙工方方式收發(fā)發(fā)ASCII碼碼字符,最高1位用來(lái)來(lái)作奇偶偶校驗(yàn)位位,采用用奇校驗(yàn)驗(yàn)方式,要求傳傳送的波波特率為為1200波特特。假設(shè)設(shè)發(fā)送緩緩沖區(qū)首首址為20H,長(zhǎng)度為為10H;接收收緩沖區(qū)區(qū)首址為為40H,時(shí)鐘鐘頻率fosc=6MHz,試試編寫(xiě)有有關(guān)的通通信程序序。解:7位位ASCII碼碼加1位位奇校驗(yàn)驗(yàn)共8位位數(shù)據(jù),故可采采用串行行口工作作方式1。51單片機(jī)機(jī)的奇偶偶校驗(yàn)位位P是當(dāng)當(dāng)累加器器A中““1”的的個(gè)數(shù)為為奇數(shù)時(shí)時(shí)P=1;為偶偶數(shù)時(shí)P=0。。如果直直接把P的值放放入ASCII碼的最最高位(奇偶校校驗(yàn)位),恰好好成了偶偶校驗(yàn),與要求求不符。。因此要要把P值值取反后后再放入入ASCII碼碼的最高高位,才才是要求求的奇校校驗(yàn)。定時(shí)器T1采用用工作方方式2,可以避避免計(jì)數(shù)數(shù)溢出后后用軟件件重裝定定時(shí)初值值。先計(jì)計(jì)算定時(shí)時(shí)器T1的初值值,取SMOD=0,可算出出:定定時(shí)器器T1的的溢出率率=波特特率×32/2SMOD=1200×32/20=38400然后:定定時(shí)器T1的溢溢出率=fosc/(12×(2n-X))可求出其其對(duì)應(yīng)的的計(jì)數(shù)初初值為X=2n-(fosc/T1的的溢出率率×12)=28-(6××106/38400×12)=243=0F3H(TH1)=0F3H,(TL1)=0F3H確定特殊功能能寄存器SCON的值::SM0、SM1=01時(shí)時(shí)為方式1,,在SM2=0和REN=1條件下下,允許接收收數(shù)據(jù),其余余各位均取0。則SCON=01010000B=50H圖4―24全全雙工串行行連接圖對(duì)于PCON:于SMOD=0,所以PCON=00H(同系系統(tǒng)復(fù)位以后后的狀態(tài),可可不賦值)。。對(duì)于TMOD:由于只用T1,且為定時(shí)時(shí)方式2,所所以TMOD=00100000B=20H主程序:MOVTMOD,##20H;定時(shí)時(shí)器T1設(shè)為為方式2MOVTL1,##0F3H;裝入定時(shí)時(shí)器初值MOVTH1,##0F3H;8位重裝裝值SETBTR1;啟啟動(dòng)定時(shí)器T1MOVSCON,#50H;串串行口設(shè)為方方式1;REN=1MOVR0,#20H;發(fā)送緩沖區(qū)區(qū)首址MOVR1,#40H;接接收緩沖區(qū)首首址SETBEA;開(kāi)中斷SETBES;允許許串行口中斷斷LCALLSOUT;先先輸出1個(gè)字字符SJMP$;等待中斷中斷服務(wù)程序序:ORG0023H;串行行中斷入口LJMPSBR1;轉(zhuǎn)至中中斷服務(wù)程序序…SBR1:JNBR1,SEND;不是接接收則轉(zhuǎn)LCALLSIN;是接收,則則調(diào)用接收子子程序SJMPNEXT;轉(zhuǎn)轉(zhuǎn)至統(tǒng)一出口口SEND:LCALLSOUT;是是發(fā)送,則調(diào)調(diào)用發(fā)送子程程序NEXT:RETI;中中斷返回發(fā)送子程序::SOUT:MOVA,@R0;取發(fā)發(fā)送數(shù)據(jù)到AMOVC,P;奇偶校驗(yàn)驗(yàn)位賦于CCPLC;奇校驗(yàn)MOVA.7,C;送入ASCII碼碼最高位中MOVSBUF,A;發(fā)送送數(shù)據(jù)INCR0;修修改發(fā)送數(shù)據(jù)據(jù)指針CJNER0,#30H,S01MOVR0,#20HS01:CLRTI;清清發(fā)送中斷標(biāo)標(biāo)志RET;返回回接收子程序::SIN:MOVA,SUBF;讀入入接收緩沖區(qū)區(qū)內(nèi)容MOVC,P;取出奇偶校校驗(yàn)位CPLC;奇校校驗(yàn)應(yīng)該為0ANLA,#7FH;刪去奇偶校校驗(yàn)位MOV@R1,A;存入接收收緩沖區(qū)INCR1;修改改接收緩沖區(qū)區(qū)指針CJNER1,#50H,S02S02:MOVR1,#40HCLRRI;清接接收中斷標(biāo)志志RET;返回例2:設(shè)有如如圖4―24所示的甲、、乙兩臺(tái)單片片機(jī),以工作作方式2、全全雙工串行通通信、每幀為為11位、可可程控的第9位數(shù)據(jù)位用用于奇偶校驗(yàn)驗(yàn)的補(bǔ)偶位((偶校驗(yàn))。。編出能實(shí)現(xiàn)現(xiàn)如下功能的的程序:甲機(jī)機(jī):每發(fā)送1幀信息,乙乙機(jī)對(duì)接收的的每幀數(shù)據(jù)進(jìn)進(jìn)行奇偶校驗(yàn)驗(yàn),若補(bǔ)偶正正確,則乙機(jī)機(jī)向甲機(jī)發(fā)出出“數(shù)據(jù)發(fā)送送正確”的信信息(例中以以00H作為為回答信號(hào)),甲機(jī)接收收到該回答信信號(hào)后再發(fā)送送下1字節(jié);若奇偶校驗(yàn)驗(yàn)錯(cuò),則乙機(jī)機(jī)發(fā)出“數(shù)據(jù)據(jù)發(fā)送不正確確”的信息(例中以AAH作為回答答信號(hào))給甲甲機(jī),要求甲甲機(jī)再次發(fā)送送原數(shù)據(jù),直直至發(fā)送正確確。甲機(jī)發(fā)送送128個(gè)字字節(jié)后就停止止發(fā)送。乙機(jī):接收甲甲機(jī)發(fā)送來(lái)的的數(shù)據(jù)并進(jìn)行行奇偶校驗(yàn),與此同時(shí)發(fā)發(fā)出相應(yīng)的回回答信息(即即00H或AAH),直直到接收完128個(gè)字節(jié)節(jié)為止。解:能實(shí)現(xiàn)上上述通信要求求的甲、乙機(jī)機(jī)的流程圖如如圖4―25所示。圖5―25雙雙工串行口應(yīng)應(yīng)答式通信流流程圖(a)甲機(jī)發(fā)發(fā)送流程圖;;(b)乙機(jī)發(fā)發(fā)送流程圖圖5―25雙雙工串行口應(yīng)應(yīng)答式通信流流程圖(a)甲機(jī)發(fā)發(fā)送流程圖;;(b)乙乙機(jī)發(fā)送流程程圖相應(yīng)的程序如如下:甲機(jī)主程序:ORG0000HLJMPMAINT;轉(zhuǎn)至主程序序入口處ORG0023H;串串行中斷入口口LJMPINTSE1;轉(zhuǎn)至中中斷服務(wù)程序序ORG0030HMAINT:MOVPCON,#00H;波特特率不加倍MOVSCON,#90H;置工作方方式2并允許許接收MOVDPTR,#ADDR1;置置數(shù)據(jù)塊指針針MOVR0,#80H;設(shè)置發(fā)送送字節(jié)數(shù)初值值SETBEA;CPU開(kāi)中斷SETBES;允許串串行口中斷MOVXA,@DPTR;取第1個(gè)個(gè)發(fā)送數(shù)據(jù)MOVC,P;奇偶偶標(biāo)志位送CMOVTB8,C;奇偶標(biāo)志位位送TB8MOVSUBF,A;發(fā)送送數(shù)據(jù)SJMP$;等待中中斷中

溫馨提示

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