串行接口數(shù)碼管顯示電路.doc_第1頁
串行接口數(shù)碼管顯示電路.doc_第2頁
串行接口數(shù)碼管顯示電路.doc_第3頁
串行接口數(shù)碼管顯示電路.doc_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1MCS51芯片的串行輸入/輸出口1.1 串行輸入/輸出口概述計算機與它的外圍設(shè)備之間的基本通信模式有兩種:并行通信模式和串行通信模式。采用并行通信模式時,例如通過并行輸入/輸出口P1控制交通燈,所有數(shù)據(jù)位同時通過并行輸入/輸出口進行傳送。并行通信模式的優(yōu)點是數(shù)據(jù)傳送速度快,所有的數(shù)據(jù)位同時傳輸;缺點是電路復(fù)雜,一個并行的數(shù)據(jù)有多少位,就需要多少條傳輸線。采用串行通信模式時,所有的數(shù)據(jù)位按一定的順序、通過一條傳輸線逐個地進行傳送。串行通信模式的優(yōu)點是電路簡單,僅需要一條傳輸線;缺點是數(shù)據(jù)傳送速度慢。串行通信模式又可以再分為兩種模式:同步通信模式和異步通信模式。AT89S51單片機提供同步通信模式和異步通信模式兩種串行通信模式。異步通信模式工作在UART(Universal Asynchronous Receiver and Transmitter),可以同時進行數(shù)據(jù)的發(fā)送和接收。AT89S51單片機串行通信的接收部分具有緩沖能力,即已經(jīng)接收到的第一個字節(jié)在被讀取之前就可以開始接收第二個字節(jié)。但是應(yīng)當(dāng)注意,如果第二個字節(jié)完成接收,而第一個字節(jié)仍沒有被讀取,一個字節(jié)的數(shù)據(jù)將被丟失。串行輸入/輸出具有獨立的發(fā)送和接收緩沖寄存器,它們共同被稱作為串行數(shù)據(jù)緩沖寄存器(SBUF),并占用特殊功能寄存器的同一個地址(99H)。發(fā)送緩沖寄存器只能寫入不能讀出,接收緩沖寄存器只能讀出不能寫入,因此它們的區(qū)分可以通過指令來實現(xiàn)。串行輸入/輸出的數(shù)據(jù)使用管腳RXD(管腳10)和管腳TXD(管腳11)可以同時接收和發(fā)送數(shù)據(jù)。管腳RXD和管腳TXD也就是管腳P3.0和管腳P3.1,這里它們被按P3口的第二功能來使用。1.2 串行輸入/輸出口的工作方式AT89S51串行口的工作可以被分為4種工作方式。這4種工作方式的簡述如下: 工作方式0串行口工作方式0為同步移位寄存器方式。在這種方式下,串行數(shù)據(jù)的發(fā)送和接收都是通過管腳RXD進行,管腳TXD用來傳送同步移位脈沖。串行數(shù)據(jù)一幀的數(shù)據(jù)位數(shù)為8位,傳輸時低位在前,高位在后。數(shù)據(jù)傳輸?shù)牟ㄌ芈适枪潭ǖ?,為單片機時鐘頻率的1/12。如果單片機的時鐘頻率為12MHz,則數(shù)據(jù)傳輸?shù)牟ㄌ芈适?MB。串行口工作方式0的數(shù)據(jù)傳輸波特率不受電源控制寄存器(PCON)中SMOD位的影響。本章將介紹利用串行口工作方式0實現(xiàn)數(shù)碼管的顯示。 工作方式1串行口工作方式1為異步通信(UART)方式。串行數(shù)據(jù)一幀的數(shù)據(jù)位數(shù)為10位:1位起始位(它的值為0)、8位數(shù)據(jù)位和1位停止位(它的值為1)。數(shù)據(jù)位傳輸時低位在前,高位在后。串行數(shù)據(jù)的發(fā)送通過管腳TXD進行;串行數(shù)據(jù)的接收通過管腳RXD進行。數(shù)據(jù)傳輸?shù)牟ㄌ芈适强勺兊?。在接收時,數(shù)據(jù)幀中的停止位進入串行口控制寄存器(SCON)的位RB8。 工作方式2串行口工作方式2為異步通信(UART)方式。串行數(shù)據(jù)一幀的數(shù)據(jù)位數(shù)為11位,1位起始位(它的值為0),8位數(shù)據(jù)位,1位可編程位和1位停止位(它的值為1)。數(shù)據(jù)位傳輸時低位在前,高位在后,緊接著是可編程位。串行數(shù)據(jù)的發(fā)送通過管腳TXD進行;串行數(shù)據(jù)的接收通過管腳RXD進行。數(shù)據(jù)傳輸?shù)牟ㄌ芈适枪潭ǖ?,是單片機的時鐘頻率的1/32或者1/64。具體工作在那一種波特率由電源控制寄存器(PCON)中SMOD位的內(nèi)容決定,當(dāng)SMOD位被置1,波特率是單片機時鐘頻率的1/32;當(dāng)SMOD位被清0,波特率是單片機時鐘頻率的1/64。在發(fā)送時,數(shù)據(jù)幀中可編程位的值取決于串行口控制寄存器(SCON)的位TB8。例如把程序狀態(tài)字(PSW)的位P的值送入TB8可以實現(xiàn)數(shù)據(jù)傳輸?shù)钠媾夹r灐T诮邮諘r,數(shù)據(jù)幀中的可編程位送入串行口控制寄存器(SCON)的位RB8,停止位這時被丟棄。 工作方式3串行口工作方式3除數(shù)據(jù)傳輸?shù)牟ㄌ芈适强勺兊囊酝?,其它與工作方式2相同1.3 串行輸入/輸出口工作控制寄存器控制串行輸入/輸出口工作的控制寄存器有2個:串行口控制寄存器(SCON)和電源控制寄存器(PCON)。 串行口控制寄存器(SCON)串行口控制寄存器(SCON)在特殊功能寄存器中的字節(jié)地址為98H,它即可以進行字節(jié)尋址,也可以進行位尋址。這個寄存器的格式如表1所示。表1 串行口控制寄存器(PCON)的格式表D7D6D5D4D3D2D1D0PCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998復(fù)位值00000000在表1中,每一位的具體功能如下。SM0和SM1:串行口工作方式控制位,工作方式的功能說明如表2所示。表2 串行口的工作方式SM0SM1工作方式功能說明000同步移位寄存器方式0118位異步通信(UART)方式,波特率可變1029位異步通信(UART)方式,波特率為focs/64或者focs/321139位異步通信(UART)方式,波特率可變 表中focs為單片機的時鐘頻率SM2:串行口工作方式2和3的多機通信控制位。REN:串行接收使能控制位。TB8:串行口工作方式2和3時被發(fā)送的第9位數(shù)據(jù)。RB8:串行口工作方式2和3時被接收的第9位數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志位。RI:接收中斷標(biāo)志位。 電源控制寄存器(PCON)電源控制寄存器(PCON)在特殊功能寄存器中的字節(jié)地址為87H,它沒有位尋址功能,只能進行字節(jié)尋址。這個寄存器的格式如表3所示。表3 電源控制寄存器PCON的格式表D7D6D5D4D3D2D1D0PCONSMODGF1GF0PDIDL復(fù)位值0XXX0000電源控制寄存器PCON中僅有D7位,SMOD,在串行輸入/輸出口的控制中被應(yīng)用,它被用來控制串行通信的波特率。SMOD為1時的波特率是它為0時的2倍。2基于串行輸入/輸出口的數(shù)碼管電路前面在并行輸入/輸出口的應(yīng)用中分別介紹了使用P1口實現(xiàn)交通燈的控制和數(shù)碼管的顯示。如果希望同時實現(xiàn)交通燈的控制和數(shù)碼管的顯示,那么僅使用P1口則是不夠的,這時需要使用更多的輸出端口。如前所述,AT89S51芯片向用戶提供的并行輸入/輸出口是有限的,因此必須想辦法進行擴展。應(yīng)用串行口工作方式0的同步移位寄存器方式是擴展輸入/輸出能力的一種方法。串行口工作方式0的輸出時序圖如圖1所示。圖1 串行口工作方式0的輸出時序圖當(dāng)向串行數(shù)據(jù)緩沖寄存器SBUF寫入一個數(shù)據(jù),在管腳RXD和管腳TXD將自動產(chǎn)生如圖1所示的信號。管腳RXD輸出數(shù)據(jù),管腳TXD輸出同步移位時鐘。同步移位時鐘的周期等于單片機的工作周期,因此輸出一個字節(jié)的數(shù)據(jù)需要8個單片機的工作周期。串行口輸出一個字節(jié)的數(shù)據(jù)需要8個單片機的工作周期這點在編程時應(yīng)該注意,不能連續(xù)地編寫2條向串行數(shù)據(jù)緩沖寄存器(SBUF)寫入數(shù)據(jù)的指令。因為如果第一個數(shù)據(jù)還沒有被全部發(fā)送出去,這時向串行數(shù)據(jù)緩沖寄存器(SBUF)再寫入一個數(shù)據(jù),新寫入的數(shù)據(jù)將覆蓋沒有完成發(fā)送的第一個數(shù)據(jù)的剩余內(nèi)容,導(dǎo)致數(shù)據(jù)傳輸錯誤。管腳RXD的輸出數(shù)據(jù)不能直接送入數(shù)碼管,這是因為串行數(shù)據(jù)通過一條線輸出,而數(shù)碼管的工作則同時需要8個輸入信號。使用8位移位寄存器(串行輸入,并行輸出)74LS164可以把圖1所示的串行信號轉(zhuǎn)換成數(shù)碼管所需要的并行信號以滿足數(shù)碼管的需要。74LS164的功能表如表4所示。表4 74LS164的功能表輸 入輸 出MR CLK DSA DSBQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q70 0 0 0 0 0 0 0 01 0 Q00 Q10 Q20 Q30 Q40 Q50 Q60 Q701 1 1 1 Q00 Q10 Q20 Q30 Q40 Q50 Q601 0 0 Q00 Q10 Q20 Q30 Q40 Q50 Q601 0 0 Q00 Q10 Q20 Q30 Q40 Q50 Q60應(yīng)用串行口工作方式0和74LS164的數(shù)碼管的顯示電路如圖2所示。對比基于串行輸出口的數(shù)碼管電路和基于并行輸出口的數(shù)碼管電路,這里電路的硬件開銷并沒有增加,74LS164在這里完成了串/并轉(zhuǎn)換和電流放大雙重任務(wù)。圖2 基于串行輸出口的數(shù)碼管的顯示電路執(zhí)行指令: SBUF=0x3f;可以輸出共陰極數(shù)碼管字符“0”的顯示代碼。顯示代碼以圖1所示的時序從單片機輸出。首先顯示代碼的最低位數(shù)據(jù)從AT89S51的管腳RXD送到74LS164的管腳DSA和DSB,接著同步移位脈沖從AT89S51的管腳TXD送到74LS164的管腳CLK,在同步移位脈沖上升沿的作用下,顯示代碼的最低位數(shù)據(jù)被移入74164的管腳Q0。第2個同步移位脈沖的上升沿接著把代碼的最低位數(shù)據(jù)移入74164的管腳Q1,把跟著最低位的數(shù)據(jù)移入74LS164的管腳Q0。依次類推,8個同步移位脈沖完成把整個顯示代碼移入74LS164的輸出管腳,其中最低位在管腳Q7,最高位在管腳Q0。串/并轉(zhuǎn)換的整個過程需要8個單片機機器周期。如果單片機的時鐘頻率為12MHz,該過程需要8us。在轉(zhuǎn)換過程的8us中,數(shù)碼管的顯示是不斷變化的錯誤顯示,但是這個時間很短,我們的眼睛分辨不出這個變化。實際上圖2所示的基于串行輸出口的數(shù)碼管電路和基于并行輸出口的數(shù)碼管電路的工作區(qū)別是分辨不出來的。在向P1口傳送顯示代碼編寫的字符顯示程序的基礎(chǔ)上,把程序中的直接地址P1換成直接地址SBUF就可以用于圖2所示電路顯示字符。3數(shù)碼管應(yīng)用的進一步討論3. 1 多位數(shù)據(jù)的顯示圖2所示的基于串行輸出口的數(shù)碼管電路都只能支持一個數(shù)碼管的顯示,即一次只能顯示一位數(shù)據(jù)。如果需要顯示多位數(shù)據(jù),例如希望數(shù)據(jù)能從00HFFH順序循環(huán)地顯示,圖2所示的電路必須進行改進。改進后的數(shù)碼管的顯示電路如圖3所示。圖3 基于串行輸出口的2位數(shù)碼管顯示電路在圖3所示的電路中,使用了2個74LS164來驅(qū)動2個數(shù)碼管。依次類推,采用串行傳輸方式,微控制器可以啟動多個數(shù)碼管。從單片機TXD管腳來的同步移位信號同時加到2個74LS164的管腳CLK,從單片機RXD管腳來的串行數(shù)據(jù)信號加到第一個74LS164的串行數(shù)據(jù)輸入口,

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論