并行串行接口51-2012_第1頁
并行串行接口51-2012_第2頁
并行串行接口51-2012_第3頁
并行串行接口51-2012_第4頁
并行串行接口51-2012_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第五節

I/O接口電路5-1 單片機并行接口PIO第六節 串行I/O接口SIO5-1 并行接口PIOPIO:并行I/O接口用于微型機與外部設備之間并行傳送數據。5-1-1 MCS-51的并行接口4個8位雙向并行IO接口:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7。多功能I/O接口,CPU按當前操作自動進行功能切換。片內接口寄存器在SFR中的映象地址:

1.I/O數據鎖存器:P0、P1、P2、P3、SBUF

2.I/O控制/狀態寄存器:

IE、IP、TCON、TMOD、SCON、PCON一.PIO接口內部結構:輸出鎖存器、輸出驅動器、輸入緩沖器及多路功能切換電路。 輸入從I/O引腳上輸入信號,讀信號使引腳信號通過下三態門進入內部總線。為保證可靠輸入,先寫入“1”

MOV P1,#0FFH ;使輸出驅動器截止

MOV A,P1 ;輸入二.PIO接口的三種操作

1.輸出鎖存:輸出將使數據寫入輸出鎖存器。輸出指令: MOV P1,A

MOV P1.0,C2.輸入三態:輸入從I/O引腳上輸入信號,讀信號打開,引腳信號通過下三態門進入內部總線。為保證可靠輸入,先寫入“1”

MOV P1,#0FFH ;使輸出驅動器截止

MOV A,P1 ;輸入3.讀-修改-寫:修改輸出鎖存器的內容。鎖存器中的數據通過上三態門進入內部總線,修改后再寫入到鎖存器中。讀-修改-寫指令:PIO為目的操作數的指令

ANLP1,A三.PIO的使用

1.P0口:并行雙向接口或系統總線DB0~7/AB0~72.P1口:稱為用戶I/O接口。對片內EPROM編程時,用作EPROM低8位地址信號線。 四.接口負載能力

P0驅動8個TTL電路,P1,P2,P3可驅動4個TTL電路3.P2口:雙向I/O接口或高8位地址總線AB8~15對讀寫片外存儲器后,引腳仍恢復輸出鎖存器的內容。

MOV P2,#20H MOV R0,#00 MOVXA,@R04.P3口:雙向并行接口和第二功能: 串行接口引腳:TXD、RXD

中斷輸入引腳:INT0、INT1

定時器輸入引腳:T0、T1

讀寫控制線:RD、WR

P1、P2和P3為準雙向口。五.應用舉例例:用4個發光二極管對應顯示4個開關的開合狀態。 如P1.0合則P1.4亮。MCS-51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01.無條件傳送方式:指示燈立即反映開關狀態。 ORG0000H AJMPMAIN ORG0100HMAIN:ORLA,#0FH MOVP1,A MOVA,P1 SWAPA MOVP1,A SJMPMAIN2.中斷傳送方式:

先設好開關狀態,然后發出中斷請求信號,改變指示燈亮滅狀態。 ORG 0000H AJMPMAIN ORG 0003H AJMPIOINT ORG 0100HMAIN:SETBIT0 SETBEX0 SETBEAHERE:SJMPHERE ORG 0500HIOINT:MOVA,#0FFH MOV P1,A MOV A,P1 SWAPA MOV P1,A RETIP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT0MCS-51K+5V第六節 串行I/O接口SIO一.串行通訊的基本方式(一).異步通訊以字符為傳送單位用起始位和停止位標識每個字符的開始和結束字符間隔不固定,只需字符傳送時同步。異步通訊常用格式:一個字符幀異步通訊的雙方需要兩項約定:1.字符格式一幀字符位數的規定:數據位,校驗位,起始位和停止位。2.波特率(位/秒)對傳送速率的規定例:要求每秒傳送120個字符,每幀為10位。解:B=120×10=1200波特 每位0.83ms(二).同步通訊以一串字符為一個傳送單位,字符間不加標識位,在一串字符開始用同步字符標識,硬件要求高,通訊雙方須嚴格同步。D4D0D1D2D3D5D6D7停止位起始位二.串行接口功能1.發送器:并串數據格式轉換,添加標識位和校驗位,一幀發送結束,設置結束標志,申請中斷。2.接收器:串并數據格式轉換,檢查錯誤,去掉標識位,保存有效數據,設置接收結束標志,申請中斷。3.控制器:接收編程命令和控制參數,設置工作方式:同步/異步、字符格式、波特率、校驗方式、數據位與同步時鐘比例等。三.串行數據傳送方向單工通訊:數據單向傳送。半雙工通訊:數據可分時雙向傳送。全雙工通訊:可同時進行發送和接收。發送器接收器發送器接收器接收器發送器接收器發送器發送器接收器

6-1 MCS-51串行接口

1個全雙工串行接口,可同時進行發送和接收。串行接口輸入/輸出引腳:TXD(P3.1)、RXD(P3.0)數據格式:按不同方式,一幀位數8/10/11發送/接收時,數據皆低位在前。一幀字符發送/接收結束,置位標志位(TI/RI)并申請SIO中斷。中斷控制:中斷允許位ES中斷入口:0023HD0D1D2D3D4D5D6D7停止位起始位D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D8停止位起始位D7一.串行接口控制1.數據緩沖器SBUF發送SBUF和接收SBUF共用一個地址99H 。 1)發送SBUF存放待發送的8位數據,寫入SBUF將同時 啟動發送。 發送指令:

MOV SBUF,A2)接收SBUF存放已接收成功的8位數據,供CPU讀取。 讀取串行口接收數據指令:

MOVA,SBUF一.串行接口控制1.數據緩沖器SBUF2.串行口控制/狀態寄存器SCON(98H)SM0,SM1:選擇串行口4種工作方式。SM2:多機控制位,用于多機通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8發送的第9位數據位,可用作校驗位和地址/數據標識位RB8:接收的第9位數據位或停止位TI:發送中斷標志,發送一幀結束,TI=1,必須軟件清零RI:接收中斷標志,接收一幀結束,RI=1,必須軟件清零SM0SM1SM2RENTB8RB8TIRISM0SM1方式0000111021133.節電控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,則不加倍。二.串行接口的工作方式

SM0,SM1選擇四種工作方式。(1)方式0:同步移位寄存器方式。用于擴展并行I/O接口。1.一幀8位,無起始位和停止位。2.RXD:數據輸入/輸出端。

TXD:同步脈沖輸出端,每個脈沖對應一個數據位。3.波特率B=fosc/12

如:fosc=12MHz, B=1MHz,每位數據占1s。4.發送過程:寫入SBUF,啟動發送,一幀發送結束,TI=1。

接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1。

發送時序寫入SBUFRXD輸出TXDTID0D1D2D3D4D5D6D7寫REN=1RI=0RXD輸入RI接收時序(a)(b)(2)方式1。8位數據異步通訊方式。1.一幀10位:8位數據位,1個起始位(0),1個停止位(1)。2.RXD:接收數據端。

TXD:發送數據端。3.波特率:用T1作為波特率發生器,B=(2SMOD/32)×T1溢出率。4.發送:寫入SBUF,同時啟動發送,一幀發送結束,TI=1。

接收:REN=1,允許接收。接收完一幀,使RI=1。寫入SBUF采樣(a)發送時序圖TXD數據輸出TID0D1D2D3D4D5D6D7停止位起始位RXD輸入數據(b)接收時序圖D0D1D2D3D4D5D6D7停止位起始位RI檢測負跳變當REN=1,CPU開始采樣RXD引腳負跳變信號,若出現負跳變,才進入數據接收狀態,先檢測起始位,若第一位為0,繼續接收其余位。數據采樣速率為波特率16倍頻,在數據位中間,用第7、8、9個脈沖采樣3次數據位,并3中取2保留采樣值。(3)方式2和方式39位數據異步通訊方式。1.一幀為11位:9位數據位,1個起始位(0),1個停止位(1)。 第9位數據位在TB8/RB8中,常用作校驗位和多機通訊標識位。2.RXD:接收數據端,TXD:發送數據端。3.波特率:方式2:B=(2SMOD/64)×fosc。

方式3:B=(2SMOD/32)×T1溢出率。4.發送:先裝入TB8,寫入SBUF并啟動發送,發送結束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1(或SM2=0),將接收數據裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數據,不置位RI。發送時序寫入SBUFTXD輸出TIRXD輸入接收時序RID0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7檢測負跳變(4)計算波特率方式0為固定波特率:B=fosc/12 方式2可選兩種波特率:B=(2SMOD/64)×fosc 方式1、3為可變波特率,用T1作波特率發生器。

B=(2SMOD/32)×T1溢出率T1為方式2的時間常數:X=28-t/T溢出時間:t=(28-X)T=(28-X)×12/foscT1溢出率=1/t=fosc/[12×(2n-X)]

波特率B=(2SMOD/32)×fosc/[12×(28-X)]串行口方式1、3,根據波特率選擇T1工作方式,計算時間常數。T1選方式2:TH1=X=28-fosc/12×2SMOD/(32×B)6-2 串行口的應用串行口初始化編程格式:

SIO:MOVSCON,#控制狀態字;寫方式字且TI=RI=0 (MOVPCON,#80H) ;波特率加倍

(MOVTMOD,#20H) ;T1作波特率發生器

(MOVTH1,#X) ;選定波特率

(MOVTL1,#X) (SETBTR1) (SETBEA) ;開串行口中斷

(SETBES)發送程序:先發送一個字符,等待TI=1后再發送下一個字符。1.查詢方式:TRAM: MOV A,@R0 ;取數據

MOV SBUF,A ;發送一個字符WAIT: JBC TI,NEXT ;等待發送結束

SJMP WAITNEXT: INC R0 ;準備下一次發送

SJMP TRAM2.中斷方式:

ORG 0023H ;串行口中斷入口

AJMPSINTMAIN: … ;初始化編程

TRAM: MOV A,@R0 ;取數據

MOV SBUF,A ;發送第一個字符

H: SJMP H ;其它工作

SINT: CLRTI ;中斷服務程序

INC R0 MOV A,@R0 ;取數據

MOV SBUF,A ;發送下一個字符

RETI接收程序:REN=1、RI=0等待接收,當RI=1,從SBUF讀取數據。1.查詢方式:WAIT: JBC RI,NEXT ;查詢等待

SJMP WAITNEXT: MOV A,SBUF ;讀取接收數據

MOV @R0,A ;保存數據

INC R0 ;準備下一次接收

SJMP WAIT2.中斷方式:

ORG 0023H AJMP RINTMAIN: … ;初始化編程

H: SJMP H ;其它任務

RINT: CLR RI ;清中斷標志

MOV A,SBUF ;讀取接收數據

MOV @R0,A ;保存數據

INC R0 RETI(一)串行口方式0用于擴展單片機的并行I/O接口。串行口實現:并行→串行的數據轉換74LS165/74LS164實現:串行→并行的數據轉換。(二)異步通訊程序舉例1.發送程序:將片內RAM50H起始單元的16個數由串行口發送。發送波特率為系統時鐘的32分頻,并進行奇偶校驗。MAINT:MOV SCON,#80H;串行口初始化

MOV PCON,#80H;波特率

SETB EA SETB ES ;開串行口中斷

MOV R0,#50H ;設數據指針

MOV R7,#10H ;數據長度LOOP: MOV A,@R0 ;取一個字符

MOV C,P ;加奇偶校驗

MOV TB8,C MOV SBUF,A ;啟動一次發送HERE: SJMP HERE ;CPU執行其它任務SM0SM1SM2RENTB8RB8TIRI

ORG 0023H ;串行口中斷入口 AJMP TRANI

TRANI: PUSH A ;保護現場

PUSH PSW CLR TI ;清發送結束標志

DJNZ R7,NEXT ;是否發送完?

CLR ES ;發送完,關閉串行口中斷 SJMP TEND NEXT: INC R0 ;未發送完,修改指針

MOV A,@R0 ;取下一個字符

MOV C,P ;加奇偶校驗

MOV TB8,C MOV SBUF,A ;發送一個字符

POP PSW ;恢復現場

POP A TEND: RETI ;中斷返回2.接收程序:串行輸入16個字符,存入片內RAM的50H起始單元,串行口波特率為2400(設晶振為11.0592MHz),。RECS: MOV SCON,#50H;串行口方式1允許接收 MOV TMOD,#20H;T1方式2定時 MOV TL1,#0F4H ;寫入T1時間常數 MOV TH1,#0F4H SETBTR1 ;啟動T1 MOV R0,#50H ;設數據指針 MOV R7,#10H ;接收數據長度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMPWAIT NEXT: MOV A,SBUF ;讀取接收字符 MOV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論