并行接口的擴展_第1頁
并行接口的擴展_第2頁
并行接口的擴展_第3頁
并行接口的擴展_第4頁
并行接口的擴展_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三講并行接口的擴展并行口的簡單擴展一、可編程并行接口芯片8155的擴展(1)8155的結(jié)構(gòu)及引腳8155的結(jié)構(gòu)8155256字節(jié)RAM三個可編程并行口PA口,8位PB口,8位PC口,6位14位二進制減法計數(shù)器8155芯片的內(nèi)部結(jié)構(gòu)256B靜態(tài)RAM

A

定時器B

C

口APA0~PA7口BPB0~PB7PC0~PC5口CIO/MAD0~AD7CEALERDWRRESET定時器輸入定時器輸出接單片機接外設接外設接外設8155引腳功能PC3PC4

PC5

IO/MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VssVccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155TIMERINRESETTIMEROUTAD0-AD7三態(tài)地址/數(shù)據(jù)線IO/M端口/存儲器選擇RD讀ALE地址鎖存允許寫WR選片CE定時器輸入TIMERIN定時器輸出TIMEROUTPA0-PA7A口端口線PB0-PB7B口端口線PC0-PC5C口端口線CECEPA0-PA7端口A的I/O線(8位,接外設)PB0-PB7端口B的I/O線(8位,接外設)PC0-PC5端口C的I/O線(6位,接外設)AD0-AD7三態(tài)地址/數(shù)據(jù)復用線(8位,一般接單片機P0口,CPU與8155之間的地址、數(shù)據(jù)、命令、狀態(tài)等信號都通過它來傳送)端口/存儲器選擇控制“0”選擇片內(nèi)RAM

“1”選擇片內(nèi)I/O口TIMERIN8155片內(nèi)定時器/計數(shù)器的計數(shù)脈沖輸入引腳TIMEROUT8155片內(nèi)定時器/計數(shù)器的計滿回零輸出引腳分別是對8155片內(nèi)的RAM或I/O口的的讀、寫控制信號ALE地址鎖存引腳選片RESET復位引腳IO/MRD、WRCECEI/O口地址----當IO/M為高電平時(1)8155的RAM和I/O口地址RAM地址----當IO/M為低電平時此時AD0-AD7上得到的地址值是指8155的某一RAM單元的地址,地址范圍是

00000000--11111111分別指向8155RAM的256個存儲單元。此時AD0-AD7(僅用到低三位AD2、AD1、AD0)上得到的地址值是指8155的某一I/O口的地址,具體端口地址分配是:(見下表)二、8155的工作原理AD7AD6AD5AD4AD3AD2AD1AD0I/O端口╳╳╳╳╳000命令/狀態(tài)口╳╳╳╳╳001A口╳╳╳╳╳010B口╳╳╳╳╳011C口╳╳╳╳╳100計數(shù)器低8位╳╳╳╳╳101計數(shù)器高6位8155的RAM和I/O口地址分配

(2)

8155的使用(分二種情況:片內(nèi)RAM的使用

各端口的使用)

8155內(nèi)RAM的使用:與一般外部數(shù)據(jù)存儲器的使用基本一樣,唯一區(qū)別是事先要使IO/M為低電平。8155各端口(包括定時器)的使用:

A、B、C各端口可工作于不同的工作方式,使用前要進行初始化(寫命令字到命令口)。8155命令字含義

PAPBPC1PC2IEAIEBTM1TM2PB、PA—A口、B口數(shù)據(jù)傳送方向0—輸入1—輸出00—C口輸入,A、B口基本I/O方式11—C口輸出,A、B口基本I/O方式01—PC3-PC5輸出,A口選通方式,B口基本I/O方式10—A、B口選通方式PC2、PC1—C口數(shù)據(jù)傳送方向及AB口工作方式IEA、IEB—A、B口中斷允許控制0—禁止1—允許TM1、TM2—定時器/計數(shù)器控制00空操作01停止定時器10記滿回零停止計數(shù)11啟動

8155狀態(tài)字格式

INTRX:中斷請求標志。INTRX=1,表示A或B口有中斷請求;INTRX=0,表示A或B口無中斷請求。

BFX:口緩沖器空/滿標志。BFX=1,表示口緩沖器已裝滿數(shù)據(jù),可由外設或單片機取走;BFX=0,表示口緩沖器為空,可以接受外設或單片機發(fā)送數(shù)據(jù)。

INTEX:口中斷允許/禁止標志。INTEX=1,表示允許口中斷;INTEX=0,表示禁止口中斷。

TIMER:計數(shù)器計滿標志。TIMER=1,表示計數(shù)器的原計數(shù)初值已計滿回零;TIMER=0,表示計數(shù)器尚未計滿。

TIMERINTEBBFBINTRBINTEABFAINTRA

8155內(nèi)部有一個14位減法計數(shù)器,計數(shù)脈沖來自其引腳“TIMERIN”,使用定時器前要先裝入“時間常數(shù)”----14位二進制數(shù)。其格式為:8155定時器/計數(shù)器

D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T0高6位計數(shù)值低8位計數(shù)值定時器方式M2M100單方波01連續(xù)方波單脈沖連續(xù)脈沖

3.擴展電路的連接舉例----接口電路非常簡單,基本上是相同信號對接。

80318155RESETRDWRALEP2.0P2.7P0.0P0.1P0.2P.03P0.4P0.5P0.6P0.7RESETRDWRALEIO/MCEAD0AD1AD2AD3AD4AD5AD6AD7口APA0~PA7口BPB0~PB7PC0~PC5口C三.8051單片機與8155的接口及應用

程序:

ORG 0000H

AJMP MAIN ORG 0030HMAIN:MOV DPTR,#7F00H ;指向命令字端口

MOV A,#02H ;A口為輸入,B口、C口為輸出

MOVX @DPTR,A ;送命令字

MOV DPTR,#7F01H ;指向A口地址

MOVX A,@DPTR ;讀入A口的數(shù)據(jù)

INC DPTR ;指向B口

MOVX @DPTR,A ;數(shù)據(jù)送入B口

AJMP MAIN END

【例1】A、B口基本輸入方式,計數(shù)器方波發(fā)生器,對80C31輸入脈沖進行24分頻(但需要注意8155的計數(shù)最高頻率約為4MHZ),初始化程序:

START:MOVDPTR,#7F04H;計數(shù)寄存器低8位

MOVA,#18H ;計數(shù)器初值#18H(24D)

MOVX@DPTR,A

;計數(shù)器寄存器低8位賦值

INCDPTR;指向計數(shù)器寄存器高6位及方式位

MOVA,#40H

;計數(shù)器為連續(xù)方波方式

MOVX@DPTR,A ;計數(shù)寄存器高6位賦值

MOVDPTR,#7F00H;命令寄存器

MOVA,#0C2H ;設命令字

MOVX@DPTR,A ;送命令字【例2】程序控制掃描方式—以8155擴展I/O口組成的行列式鍵盤為例+5V8155PA7PA6.....PA0PC0PC1PC2PC35.1K?╳4CEIO/MWRRDALEP0WRRDALEP2.7P2.080310123456789101112131415161718192021222324252627282930318155擴展I/O口組成的行列式鍵盤8155PA口地址7F01HPC口地址7F03H8155:PA口輸出列掃描信號

PC口輸入行狀態(tài)信號(1)判斷有無鍵按下PA口輸出00H

PC口輸入行狀態(tài)信號,若PC3~PC0≠1111,有鍵按下(2)去抖動延時5~10ms后再判斷有無鍵按下(3)再確認哪個鍵被按下及其鍵號8155的PA口依次輸出下列掃描字:PA7PA6PA5PA4PA3PA2PA1PA011111110FEH11111101FDH……011111117FH8155的PC口輸入行狀態(tài),可能為下列之一:PC5PC4PC3PC2PC1PC0

1110╳EH

╳1101╳DH

1011╳BH

0111╳7H則每個鍵的鍵值(列行組合)FE╳E、FD╳E、FB╳E、F7╳E、EF╳E、DE╳E、BF╳E、7F╳EFE╳D、FD╳D、FB╳D、F7╳D、EF╳D、DE╳D、BF╳D、7F╳DFE╳B、FD╳B、FB╳B、F7╳B、EF╳B、DE╳B、BF╳B、7F╳BFE╳7、FD╳7、FB╳7、F7╳7、EF╳7、DE╳7、BF╳7、7F╳7每個鍵的鍵號(自己安排)N=行首鍵號+列號(4)判斷按鍵是否抬起(以防止重復進行鍵處理)等待鍵釋放后再進行進一步處理。鍵掃描程序框圖ORG1000HKEY1:ACALLKS1;調(diào)用判斷有無鍵按下子程序JNZLK1;有鍵按下,轉(zhuǎn)去抖動AJMPKEY1;無鍵按下,返回LK1:ACALLTM12S;延時12msACALLKS1;再查有無鍵按下JNZLK2;確實有鍵按下,逐行掃描,確定具體鍵AJMPKEY1;無鍵按下,返回LK2:MOVR2,#0FEH;首列掃描字送R2

MOVR4,#00H;首列號R4LK4:MOVDPTR,#7F01H;首列掃描字送8155的PA口MOVA,R2;第一列掃描MOVX@DPTR,A;使第i列為0(R2中Di位為0)INCDPTRINCDPTR;指向8155的PC口MOVXA,@DPTR;讀入行狀態(tài)JBACC.0,LONE;0行無鍵按下,轉(zhuǎn)查1行LONE:JBACC.1,LTWO;1行無鍵按下,轉(zhuǎn)查2行MOVA,#00H;0行有鍵按下,行首鍵號#00H送AAJMPLKP;求鍵號LTWO:JBACC.2,LTHR;2行無鍵按下,轉(zhuǎn)查3行MOVA,#08H;1行有鍵按下,行首鍵號#08H送AAJMPLKP;求鍵號LTHR:JBACC.3,NEXT;3行無鍵按下,轉(zhuǎn)查下一列MOVA,#10H;2行有鍵按下,行首鍵號#10H送AAJMPLKP;求鍵號MOVA,#18H;3行有鍵按下,行首鍵號#18H送ALKP:ADDA,R4;求鍵號=行首鍵號+列號PUSHACC;鍵號入棧LK3:ACALLKS1;等待鍵釋放JNZLK3;未釋放,繼續(xù)等待POPACC;已釋放,鍵號送ARETNEXT:INCR4;指向下一列,列號加1MOVA,R2;判斷8列掃描完沒有JNBACC.7,KND;8列掃描完,返回RLA;沒掃描完,置下一列掃描字MOVR2,A;掃描字送AAJMPLK4;繼續(xù)下列掃描KND:AJMPKEY1;8列掃描

溫馨提示

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

評論

0/150

提交評論