键盘按键与数码管显示_第1页
键盘按键与数码管显示_第2页
键盘按键与数码管显示_第3页
键盘按键与数码管显示_第4页
键盘按键与数码管显示_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 键盘按键与数码管显示 学生预习实验目的:熟悉星研集成开发环境,掌握微机接口程序编写调试的基本方法。掌握矩阵式键盘的工作原理及识别键盘按键的方法。掌握8段数码管显示数字或字符的工作原理和它的使用方法。掌握用8255扫描键盘及用8255刷新数码管显示的方法。实验要求:在(2行*8列)小键盘上任意按下某个按键,该键的键值将同时显示在8个数码管上。按键松开时显示上一次的按键值。实验器材:电脑一台,微机原理与接口实验箱一台,连接导线若干。实验原理:8255控制键盘和数码管工作的相关原理图:CS:片选信号,低电平有效; A0、A1:地址信号。JP24:PC口(键盘行); JP20: PB口(键盘列

2、);JP23:PA口; JP16:数码管段码JP17:数码管位选A:按键的列线(PB口控制)B:数码管段码(PA口控制)C:数码管位码(PB口控制)D:按键的行线(PC0、PC1控制) (2行*8列)小键盘:实验箱上2行*8列小键盘上当某个按键被按下时,该键所在行的行线值为0、所在列的列线值也为0。根据这个特点结合上述原理图采用“列扫描法”可以识别出当前被按下的按键。8个数码管:实验箱上8个8段数码管。每个数码管有8个笔段,按逆时针方向依次称为a段-dp段,8个段接收来自外部的一个8位二进制数(D7D0),并且笔段a 对应数据位D0.笔段dp 对应数据位D7 ,数码管共阳,段码端接收低电平相应

3、的笔段点亮,段码端接收的数据决定了数码管显示的具体内容。数码管的位码控制GND端,当它接收低电平时该数码管会被选中有效工作:即这时只要段码端有有效的数据数码管就会显示数据。8255各端口的分工:8255的A口工作在方式0输出状态控制数码管的段码;B端口工作在方式0输出状态控制数码管的位码,并且同时控制键盘列线的扫描;C端口工作在方式0输入状态,其中的PC0、PC1控制键盘的第一、第二行行值的读入。硬件连线:8255:D3区:8255片选CS、A0、A1 连接 A3区: 系统CS1、A0 、A1;D3区:PC0、PC1 连接 F5区:KL1、KL2 (控制键盘2行);D3区:JP20(PB0-P

4、B7)、 (A口)B=JP16(SEGA-SEGP)、(B口)C=JP17(DIG0-DIG7) 连接 F5区:A=JP37(1-8)(键盘列线)、 B(JP36)(段码)、 C(JP35)(位码) 程序编制流程图:程序编制的流程图请参考实验指导书P12开发环境:阅读“星研集成开发环境的使用”文档,了解接口程序开发调试的一般流程。要求做好实验预习,明确实验目的和要求,理解实验原理,编写好可调试程序。.MODEL TINY.DATASEGTAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,0H,0C6H,40H,86H,8EH;LED灯

5、编码KEYCODE DW 0FE02H,0FD02H,0FB02H,0F702H,0EF02H,0DF02H,0BF02H,7F02H,0FE01H,0FD01H,0FB01H,0F701H,0EF01H,0DF01H,0BF01H,7F01H;键盘列行码A EQU 270H;8255各控制端口地址B EQU 271HC EQU 272HCON EQU 273HCOUNT DW 1;延时程序参数.STACK 100.CODESTART:MOV AX,DATAMOV DS,AXMOV DX,CON;设置8255工作方式A,B端输出,PC0,PC1输入,方式0MOV AL,81HOUT DX,AL

6、WAITE:CALL SCANKEY;扫描件键盘子程序CMP AX,-1JZ WAITECALL TRANSLATE;列行码转化为LED灯编码子程序CALL LED_DISP;LED显示程序JMP WAITEMOV AX,4C00HINT 21HSCANKEY PROCPUSH CXPUSH DXMOV DX,B;MOV AL,0FH 经过测试去掉此步骤,在其它实验设备上可以完整显示;OUT DX,AL 硬件设备有错,这两句用以在错误的硬件电路上完整的显示结果MOV AL,0OUT DX,AL;列输出全“0”MOV DX,CIN AL,DX;读取行端口AND AL,03HCMP AL,3H;检

7、测列信息是否全“1”,判断有无按键JZ NO_KEY;无按键时,转移后返回“-1”;延时20msCALL DELAYIN AL,DX;读取行端口AND AL,03HCMP AL,3H;检测列信息是否全“1”,判断有无按键JZ NO_KEY;无按键时,转移后返回“-1”MOV AH,0FEHMOV CX,8NEXT:MOV AL,AHROL AH,1MOV DX,BOUT DX,ALMOV DX,CIN AL,DX;读取行码AND AL,03HCMP AL,3HLOOPZ NEXTJZ NO_KEY;没有按键,转以后返回“-1”ROR AH,1;AX存放形成的列行码JMP EXITNO_KEY:

8、MOV AX,-1EXIT:POP DXPOP CXRETSCANKEY ENDPTRANSLATE PROCPUSH CXPUSH SIPUSH DIMOV CX,16LEA SI,SEGTAB-1LEA DI,KEYCODE-2SCANTAB:INC SIINC DIINC DICMP AX,DILOOPNZ SCANTABJNZ QUITMOV DL,SI;得到要显示的段码QUIT:POP DIPOP SIPOP CXRETTRANSLATE ENDPLED_DISP PROCPUSH BXPUSH AXMOV BL,DLMOV AL,0FFH;每次调用显示子程序先关闭一次显示MOV DX,BOUT DX,ALMOV AL,BLMOV DX,AOUT DX,ALMOV AL,0H;显示所有位,实际上在本程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论