8255鍵盤掃描與LED數碼管顯示_第1頁
8255鍵盤掃描與LED數碼管顯示_第2頁
8255鍵盤掃描與LED數碼管顯示_第3頁
8255鍵盤掃描與LED數碼管顯示_第4頁
8255鍵盤掃描與LED數碼管顯示_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、一、復習8255及端口的尋址方式實驗1 8255鍵盤掃描與LED數碼管顯示實驗8255功能特性 三個獨立的8位并行輸入/輸出端口,各端口均 具有數據輸入、輸出能力;三種工作方式:0基本、1選通、2雙向;可通過編程設置各端口的工作方式和數據傳送 方向(入/出/雙向)。1.數導線(21根)2.下次實驗時間是第7周注意:1.8255相關知識圖9.9 8285編程結構8255的內部結構C下半部PAPBPC 8255外部引腳 連接系統端的引線:D0D7RESETA0A1CSRDWRCS:片選RD:讀控制WR:寫控制RESET:復位A1, A0:端口選擇A1 A0選擇0 0端口A0 1端口B1 0端口C1

2、 1控制寄存器D0D7:數據線分別對應PA、PB、PC三個8位輸入/輸出端口D0D7RESETA0A1CSRDWRPAPBPC三個端口可通過編程分別指 定為輸入或輸出口。連接外設端的引線:PA0PA7PB0PB7PC0PC7 8255外部引腳 8255的初始化8255工作前必須初始化,初始化時需設置:工作方式數據傳送方向PC口各數據線的狀態(必要時)通過向8255的控制口寫入控制字實現:方式控制字*用于控制8255各端口的工作方式和數據傳輸方向位控字控制PC端口在方式0(輸出)時每一根輸出線的狀態方式0:基本輸入/輸出方式方式1:選通方式方式2:雙向方式(僅A口)輸入輸出置0(低電平)置1(高

3、電平)8255工作方式控制字格式對20H端口的訪問格式:直接尋址IN AL,20H ;從地址為20H的端口輸入一個字節到ALOUT 20H,AL ;將AL的內容輸出到地址為20H的端口對200H端口的訪問格式:間接尋址MOV DX,200H ;將端口地址送DX寄存器IN AL,DX ;從地址為200H的端口輸入一個字節到ALOUT DX,AL ;將AL的內容輸出到地址為200H的端口2.端口尋址方式編程1:把8255工作方式設定為:A口指定為方式0,輸入,C口為輸出;B口指定為方式0,輸出;設8255控制字寄存器端口地址為04a6H。分析:根據題目得工作方式命令代碼是10010000B或90H

4、。初始化程序段為:mov dx,04a6h;控制寄存器地址mov ax,90h;設置為A口輸入,;B口輸出,C輸出out dx,ax ;8255初始化共陰極:公共端接低電平“L”發光段接高電平“H”共陽極:公共端接高電平“H”發光段接低電平“L”分類:h小數點*3. LED數碼管abcdefg+5V共陰極的情況下定義字形碼:FECDBA9876543210 二、鍵盤工作原理及鍵的識別方式鍵盤的結構1 .鍵盤的工作原理PC0PC1PC22 .鍵的識別行掃描1 2 3掌握8255的編程原理及使用方法三、實驗目的用8255擴展掃描3X8行列式鍵盤,由一位LED數碼管顯示。1、設計出8255與8086

5、接口對應硬件電路,并完成相應的連接;2、調試對應8255、鍵盤、及數碼管硬件接口電路及相應接口軟件3、當用鍵盤輸入時在數碼管上顯示相應值;4、完成習題的內容。四、實驗內容五、實驗設備 MUT型實驗箱、8086CPU模塊。六、8255與8086及8255與鍵盤的電路連接DB地址譯碼器D0D7WRRDA1A0CS8255PAPBPCIOWIORA2A1D0D7A15A19系統總線 RL10RL17(列選擇線) LED-ALED-DP (段控)KA10KA12(行選擇線) LED1(位控) 電源電路復位鍵3*8鍵盤 8255并行接口 CPU板座LED數碼管顯示屏RL10RL17LED1 LED6LE

6、D-ALED-DPKA10KA12跳線冒七、實驗步驟1、實驗接線CS0 CS8255(地址為04A0H);PA0PA7(輸入)RL10RL17(列選擇線);PB0PB7(輸出)發光二極管LED-ALED-DP ;PC0PC2(輸出)KA10KA12(行選擇線)PC3(輸出)LED1 2、編程并全速或單步運行。3、全速運行時按動鍵盤,觀察數碼管的變化。4、編寫實驗報告。本實驗中8255的地址分配如下:端口A 04A0H端口B 04A2H端口C 04A4H控制口 04A6H八、實驗程序流程圖采用行掃描法檢測九 、編寫實驗報告 包括實驗預習內容,實驗目的,實驗內容,實驗步驟和正確的程序代碼 。注意:

7、 1、編程前先在E盤目錄下建一個文件夾,并取一個英名名字,即名字中不能有漢字和數字。編完程序將其存于該目錄下。 3、做完實驗將實驗箱右上角的CPU板卸下,再關實驗箱。 2、做實驗之前先取下跳線冒。十、實驗程序assume cs:codecode segment org 100hstart: mov dx,04a6h;控制寄存器地址 mov ax,90h;設置為A口輸入,;B口輸出,C輸出 out dx,ax ;8255初始化check0: ; check0檢測是否有健被按下 mov ax,00h ;C口的PC0、PC1、PC2作為行選擇線 mov dx,04a4h ;C口地址 out dx,a

8、x ; 寫入C口內容00H,即令所有行為低電平 mov dx,04a0h ;A口地址 in ax,dx ;讀入A口的內容 cmp al,0ffh ;判定是否有列線為低電平 je check0 ;沒有,無閉合鍵,則循環等待 mov cx,05ffh ;延遲常數,可以修改來改變延時時間 delay: loop delay;有,則延遲清除抖動,當cx=0時則停止該 循環本實驗中8255的地址分配如下:端口A 04A0H端口B 04A2H端口C 04A4H控制口 04A6H; 行掃描鍵盤和列掃描鍵盤,確定被按鍵的行值和列值 mov cl,3 ;行數 mov ah,0 mov al, 0fbh ; 0f

9、bh=1111 1011Bcontin: push ax ;將ax的內容(0fbh)入棧保存 mov dx,04a4h ;C口地址 out dx,al ;寫入C口內容0fbh=1111 1011B,即將第三行置為低電平 mov dx,04a0h ;A口地址 in al,dx ;讀入A口的內容 mov ah,al ;將A口的內容送入ah cmp ah,0ffh ;判斷是否有列線為低電平 jne next ;比較結果不等于0則轉移,即有列線為低電平 pop ax ; 比較結果等于0,即沒有列線為低電平,(ax)=00fbh ror al,1 ; fbh(1111 1011B)循環右移,(al)=1

10、111 1101檢測下一行 loop contin ;循環掃描下一行,確定行 jmp check0 ;若所有行都沒有被按下,則返回check0重新檢測next: mov ch,cl ;保存行值至ch mov cl,7 ;列值從0開始編號0-7begin0: shl ah,1 ; ah為A口的內容,邏輯左移1位,末位補0 jnc goon ;無進位則轉移,即可確定列 loop begin0 ;繼續循環,確定列 jmp check0 goon: ;計算顯示碼在discode中的位置:(行數-1)*8 +列值 mov bl, cl ;保存列值至BL dec ch ;行數減1 mov cl,3 shl

11、 ch, cl ;左移三位即相當于減1之后的行數*8 add bl, ch ;確定顯示碼在discode表中的偏移量, 即(行數-1)*8+列值 mov bh,0 mov cx,bx ;顯示碼在discode表中的偏移量送CX display:;顯示輸出mov si, offset discode add si, cx ;顯示碼偏移地址 mov dx,04a4h ;C口地址 mov al,0fh out dx,al ;寫入C口內容,使位控(LED1)有效 mov al,si ; 取被按鍵的顯示字形碼送入al mov dx,04a2h ;B口地址 out dx,al ; 將顯示字形碼送B口輸出顯示 nop nop j

溫馨提示

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

評論

0/150

提交評論