第8章:LED和KEY接口控制(lyz)(v1.0)总汇.ppt

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章:LED和KEY接口控制;微机的基本接口技术;8.1 小型键盘的接口技术与识别按键的软件方法 8.1.1 键盘矩阵及接口电路 1、采用行扫描法实现的键盘接口电路;4X4键盘矩阵如下图所示;用锁存器连接的4X4键盘矩阵如下图所示;2、采用反转法实现的键盘接口电路;8.1.2 扫描方式及程序实现;下面是程序流程图;行扫描法键盘扫描程序如下: MOV AL,0 MOV DX,PORTL OUT DX,AL ;所有的行线都输出低电平 MOV DX,PORTR IN AL,DX ;读取列值 CMP AL,FFH JZ DISP ;判是否有键按下,无键按下,转显示程序 CALL DELAY ;有键按下,调用延时程序,消除抖动 MOV CL,FEH ;第0行的扫描送CL MOV DX,PORTL A1: MOV AL,CL MOV BL,CL ;用BL保存当前的扫描值 OUT DX,AL ;输出当前的行扫描值 ROL CL,1 ;CL左移一位,指向下一行 MOV DX,PORTR IN AL,DX ??读取列值 CMP AL,FFH ;判断扫描的那行有无键按下 JZ A1 ;无键按下,转A1 MOV CL,4 SHL BL,CL AND AL,0FH ;屏蔽掉高四位 OR BL,AL ;BL中为组合扫描码,其中高四位为行扫描码, ;低四位为列扫描码。;2、行反转法及程序实现 (1)先对8255进行初始化设置,将行线的A端口设置为输出方式, 接列线的B端口设置为输入方式。 (2)重新对8255进行初始化设置,将第一步传送的方向反过来, 接行线的A端口设置为输入方式,接列线的B端口设置为输 出方式。;;行反转法的程序如下: MOV AL,方式字 MOV DX,PORT OUT DX,AL ;A端口为输出,B端口为输入 A1: MOV AL,0 MOV DX,PORTA OUT DX,AL ;A端口输出全为0 MOV DX,PORTB IN AL,DX ;读取列值 CMP AL,0FFH ;看是否有键闭合 JZ A1 ;无键转A1 MOV BL,AL ;保留列值至BL中 CALL DELAY MOV AL,方式字 MOV DX,PORT OUT DX,AL ;A端口作输入,B端口作输出 MOV AL,BL MOV DX,PORTB OUT DX,AL ;将读取的列值输出到B端口 MOV DX,PORTA IN AL,DX ;读取行值 MOV AH,BL ;将原列值送AH,在AX中,AH存列值,AL存行值。 DELAY:………;8.2多位七段LED数码显示器及接口;a; 显示 dp g f e d c b a 七段 数字 代码 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 1 1 0 06H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 1 6DH 6 0 1 1 1 1 1 0 1 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 9 0 1 1 0 1 1 1 1 6FH a 0 1 1 1 0 1 1 1 77H b 0 1 1 1 1 1 0 0 7CH c 0 0 1 1 1 0 0 1 39H d 0 1 0 1 1 1 1 0 5EH E 0 1 1 1 1 0 0 1 79H F 0 1 1 1 0 0 0 1 71H P 0 1 1 1 0 0 1 1 73H;利用一位LED实现循环显示0~F的程序段如下: LEDCODE DB 3FH,06H,5BH,…,79H,71H ;共阴极接法的段码 MOV BX,OFFSET LEDCODE ;BX指向显示代码表 L0: MOV CX,10H ;显示16个字符 MOV AL,0 ;首先显示第一个字符 L; PUSH AX XLAT LEDCODE ;(AL)←((DS)X16+(BX)+(AL)) OUT PORT,AL ;送锁存器并显示 MOV DX,0FFFFH DELAY:DEC DX JNZ DELAY ;延时等待 POP AX INC AL ;修改显示值 LOOP L ;循环到下一个字符 JMP L0 ;又从0开始;3. 多位

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档