1 / 11

计算机硬件技术基础( Ⅰ ) 硬件实验第四次

计算机硬件技术基础( Ⅰ ) 硬件实验第四次. 0. 4. 8. C. +5V. E. R0. J9-1. 1. 5. 9. D. D. R1. J9-2. 2. 6. A. E. B. R2. J9-3. 3. 7. B. F. 7. R3. J9-4. 7. B. D. E. 8255 输入口(列). J8-4. J8-3. J8-2. J8-1. 8255 输出口(行). L3. L2. L1. L0. 键盘接口实验. 4×4 键盘单元电路原理图. 0. 4. 8. C. +5V.

Download Presentation

计算机硬件技术基础( Ⅰ ) 硬件实验第四次

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机硬件技术基础(Ⅰ) 硬件实验第四次

  2. 0 4 8 C +5V E R0 J9-1 1 5 9 D D R1 J9-2 2 6 A E B R2 J9-3 3 7 B F 7 R3 J9-4 7 B D E 8255输入口(列) J8-4 J8-3 J8-2 J8-1 8255输出口(行) L3 L2 L1 L0 键盘接口实验 4×4键盘单元电路原理图

  3. 0 4 8 C +5V E R0 J9-1 1 5 9 D D R1 J9-2 2 6 A E B R2 J9-3 3 7 B F 7 R3 J9-4 7 B D E 8255输入口(列) J8-4 J8-3 J8-2 J8-1 8255输出口(行) L3 L2 L1 L0 键特征值=列值+行值

  4. LED2 的 位选信号 例:键盘接口电路图如下图所示,将所按下的键代号8、9、A、B显示在LED6上。A口:段控;B口:PB5位控,PB1行控;C口:列控(PC0~PC3) 8255 8 0 列 PC0 9 1 列 PC1 A 2 列 LED 的 段选信号 PA0~7 PC2 B 3 列 PC3 PB1 1 行 +5V LED6 的 位选信号 PB5 键盘的键识别:列计数法和列值比较法(对同一行上的键) 基本思想: 适用于判键的个数比较少且这些键在同一行线上的情况。不需逐行扫描来形成键特征值,再查键值表,从而得到键代号。而是直接通过对键所在行判断该行有无键按下,通过列计数得到键代号或直接比较键的列值。

  5. 某行线置0(送扫描码) 某行线置0(送扫描码) 读入列线状态 读入列线状态 N N 有键按下? 有键按下? Y Y 延时20ms,去抖动 延时20ms,去抖动 键释放 键释放 N N Y Y 延时20ms,去抖动 延时20ms,去抖动 查找列值的 0 位,是0? 比较某列的列值,是? Y N N Y 键代号计数器加1 取下一列列值 根据键代号进行键处理 根据列值,转相应键处理 列值比较法键识别流程图 列计数法 键识别流程图

  6. 4×4键盘键识别列计数法、列值比较法 (设8255的B、C口为行、列控制口) DATA SEGMENT TBL DW R0,R1,R2,R3 ;按某行的0~3列键跳转地址表 DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA ST: MOV AX,DATA MOV DS,AX MOV DX,20BH ;8255控制口 MOV AL,89H ;A,B口输出; C口输入 OUT DX,AL ;8255初始化 LP1: MOV AL,0FXH ;X=E、D、B、7(0~3行) MOV DX,209H ;B口:行控制口 OUT DX,AL ;所在行线清0

  7. MOV DX,20AH ;C口:列控制口 RD: IN AL,DX ;读列线 AND AL,0FH ;取低4位 CMP AL,0FH ;全1? JE RD ;该行未按键,继续读列线 MOV SI,0 ;跳转表偏移量初值 LP2: SHR AL,1 ;列值右移一位 JNC BRC ;是0,对应键按下 ADD SI,2 ;跳转表偏移量+2 JMP LP2 ;继续查找按键 BRC: JMP TBL[SI] ;跳转到相应分支 MOV AH,AL ;保存列值 CALL DE20MS ;按下键延时去抖动(20 mS左右) RLS: IN AL,DX AND AL,0FH CMP AL,0FH JNE RLS ;该按键未释放,继续读列线 MOV AL,AH CALL DL20MS ;释放键延时去抖动(20 mS左右)

  8. R0: … … ;按n行0列键处理代码 R1: … … ;按n行1列键处理代码 R2: … … ;按n行2列键处理代码 R3: … … ;按n行3列键处理代码 ; 分枝处理后或JMP LP1(继续判键)或结束程序 如判1行的键8、9、A、B: 则扫描码FXH=FDH 按8、9、A、B键分别执行分枝R0,R1,R2,R3 如果此行中某键不用,则直接在该分枝程序段中用一条指令JMP LP1即可,如9键不用: R1: JMP LP1 当某行有键按下时,可直接判列值,这时跳转表也可以不要了,设判A和B键: CMP AL,0BH ;A键列值(2列) JE R2 ;是,转按A键处理 CMP AL,07H ; B键列值(3列) JE R3 ;是,转按B键处理 JMP LP1 ;同一行其他键(8和9)转继续判键

  9. 实验内容(P165) • 按A键在8段显示器的LED6上显示字符F;按B键在微机屏幕上显示笑脸符(ASCII=2)。 • 按标准键盘回车键退出程序 • 可用BIOS中断和DOS中断实现: • LP: … LP: … • MOV AH,1 MOV AH,6 • INT 16H MOV DL,0FFH • JZ LP INT 21H • CMP AL,0DH JZ LP • JNE LP CMP AL,0DH • EXIT: … JNE LP • EXIT: … • 按8或9键退出程序 • 8、9键与A、B键同在第1行,参与判键,当列序号为0、1(列计数法)或列值为E、D(列值比较法)时程序结束。

  10. 4×4键盘与8段LED显示综合应用时特别要注意键盘的行控和8段LED显示器的位控是同一输出口,某行扫描(此时要求输出为0)与某位显示(此时要求输出为1)是矛盾的,编程时要注意协调,避免某位LED显示后又马上对该行进行扫描,而造成看不见该位的显示(往往在8段LED欲显示的字符后再加一段延时,在延时期间可按需要显示,延时完后若某行再作键识别行扫描时则对应的8段LED 则不显示)。如判8、9、A、B键,因同在第1行,其行扫描码为FDH(11111101B),FDH作为8段LED位控信号,LED2是不会显示的

  11. 结  束

More Related