微機介面實驗二 鍵盤顯示控制實驗(翻轉法實現)

2021-10-11 09:25:30 字數 2916 閱讀 3763

掌握8255a控制鍵盤及顯示電路的基本功能及程式設計方法。

掌握一般鍵盤和顯示電路的工作原理。

設定8255a的c口鍵盤輸入,a口為數碼管段碼輸出。

翻轉法的原理其實很簡單:首先行線全部輸出為0,然後查詢哪一列輸入為0;然後翻轉,列線全部輸出為0,查詢哪一行輸入為0;找到行號和列號後,簡單計算就能得到按下字元的序號。

stack segment stack

db 200

dup(0)

stack ends

data segment

aport equ 288h

cport equ 28ah

ctrl equ 28bh

codes db 3fh,

06h,

5bh,

4fh,

66h,

6dh,

7dh,

07h,

7fh,

6fh,

77h,

7ch,

39h,

5eh,

79h,

71h ;0~

9, a~f

data ends

code segment

assume cs:code,ds:data,ss:stack

delay macro ;延時巨集

local loop_delay

local flag

push cx

push bx

xor bx, bx

flag:mov cx,

0ffffh

loop_delay:loop loop_delay

inc bx

cmp bx,

10 jnz flag

pop bx

pop cx

endm

main:mov ax,data ;

0出1入

mov ds,ax

mov ax, stack

mov ss, ax

mov al,

10001000b ;a口方式0輸出,c口高四位輸入,列輸入,c口低四位輸出,行輸出

mov dx, ctrl

out dx, al

mov al,

0 mov dx, cport

out dx, al ;行輸出為0

xor bx, bx

no_key:mov dx, cport

in al, dx ;檢查輸入列訊號(c口高四位)

and al,

0f0h

cmp al,

0f0h ;高四位全為1,即列訊號全為1,無鍵按下

jz no_key

delay ;延時消除抖動

mov dx, cport

in al, dx ;逐列檢查,看哪一列輸入為0

shr al,

1 shr al,

1 shr al,

1 shr al,

1;c口高四位列輸入訊號移至低四位

xor bl, bl ;依次查詢四列哪一列為0

mov cx,

4 loop1:shr al,

1;將最低位傳至cf

jnc loop2 ;cf為0表示bl列輸入為0

inc bl

loop loop1

loop2:mov al,

10000001b ;a口方式0輸出,c口高四位輸出,列輸出,c口低四位輸入,行輸入

mov dx, ctrl

out dx, al

xor al, al

mov dx, cport

out dx, al ;列輸出全部為0,查詢哪一行輸入為0

mov dx, cport

in al, dx

and al,

0fh

cmp al,

0fh ;低四位全為1,即行輸入全為1,表示有鍵按錯

jz error

mov bh,

0;否則有行輸入為0,迴圈找到行號

mov cx,

4 loop3:shr al,

1;低位傳送至cf

jnc loop4 ;有一行為0,找到行輸入序號為bh

inc bh

loop loop3

loop4:shl bh,

1;計算4

*bh+bl,表示鍵號

shl bh,

1 add bh, bl ;dh為鍵號(0-

15)mov al,

01h mov dx, cport

out dx, al

mov bl, bh

xor bh, bh

mov di, bx

mov al, codes[di]

;輸出顯示

mov dx, aport

out dx, al

delay

error:mov ah,

4ch int

21hcode ends

end main

微機介面實驗 數碼管顯示程式詳解

本次講解的針對的是共陰極數碼管,先把原理圖和 放上來 數碼管裡共8個led,由於說明了給定的是共陰極數碼管,即陰極是接在一起的,通過原理圖下方的7407驅動器接在了x1 x6,陽極分別通過1k電阻上拉。所以當x1 x6接8255的io口時,可以通過io口輸出低電平,將陰極拉低。同時8個段選a dp也...

南郵微機介面彙編實驗2

第二次實驗,名稱 使用者登陸驗證程式的設計 實驗要求 1 執行程式後,介面首先出現自己的學號,例如 b18060701 2 在學號下方輸入登入密碼,密碼長度不超過30個字元。密碼內容不能顯示在螢幕上,要求用字元 替代。3 驗證輸入密碼與事先設定的密碼是否相同,如果密碼正確,給出提示 ok 程式結束 ...

可程式設計控制 微機介面及微機應用綜合實驗台

zn plc3可程式設計控制 微機介面及微機應用綜合實驗台 一 概述 plc可程式設計控制器及微機介面及微機應用綜合實驗裝置是,做到一機多用 資源共享 便於管理。這一嶄新的系統實現了專業基礎課 模擬 數位電路 專業課 微機原理 課程設計和畢業設計 微機應用 的三合一,真正做到了一機多用,大大節省實驗...