MCS-51数字信号输入输出接口电路题库.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DB 11H ; 扫描码为8,即PB2与PC0交叉点对应“#” DB 09H ; 扫描码为9,即PB2与PC1交叉点对应数字键“9” DB 06H ; 扫描码为10,即PB2与PC2交叉点对应数字键“6” DB 03H ; 扫描码为11,即PB2与PC3交叉点对应数字键“3” ? DB 12H ; 扫描码为12,即PB3与PC0交叉点对应“←” DB 16H ; 扫描码为13,即PB3与PC1交叉点对应“ESC” DB 0DH ; 扫描码为14,即PB3与PC2交叉点对应数字键“D” DB 0AH ; 扫描码为15,即PB3与PC3交叉点对应数字键“A” DB 14H ; 扫描码为16,即PB4与PC0交叉点对应“↓” DB 15H ; 扫描码为17,即PB4与PC1交叉点对应“↑” DB 0EH ; 扫描码为18,即PB4与PC2交叉点对应数字键“E” DB 0BH ; 扫描码为19,即PB4与PC3交叉点对应数字键“B” DB 13H ; 扫描码为20,即PB5与PC0交叉点对应“→” DB 17H ; 扫描码为21,即PB5与PC1交叉点对应“Enter” DB 0FH ; 扫描码为22,即PB5与PC2交叉点对应数字键“F” DB 0CH ; 扫描码为23,即PB5与PC3交叉点对应数字键“C” 3. 中断方式 图7-23 采用中断扫描方式的键盘接口电路 根据图中键盘按键排列规则,中断扫描方式参考程序如下(键值存放在30H单元中,无效按键时30H为AA): ORG 0000H LJMP MAIN ORG 0013H LJMP INT1 ? ORG 0100H MAIN: ; 外中断的初始化 CLR IT1 ; 采用低电平触发 SETB PX1 ; 一般将外中断 优先级置为高,以便 通过键盘干预系统运行 SETB EX1 ; 允许 中断 ? ; 主程序中键盘电路的初始化命令 MOV P1, #0FH ; P1.7~P1.4输出低电平,将P1.3~ P1.0锁存器置为高电平,以便作为 ; 输入引脚使用 SETB EA ; 开中断 MOV SP, #5FH ; 初始化堆栈指针 ? ; 外中断 的服务程序(即键盘扫描程序) PROC INT1 INT1: PUSH PSW PUSH Acc SETB RS0 SETB RS0 LCALL DELAY10 ; 延迟10 ms,等待按键稳定闭合 MOV A, P1 ; 读P1口 ANL A, #0FH ; 屏蔽高4位 XRL A, #0FH JZ EXIT ; 如果延迟10 ms后,P1.3~P1.0引脚为高, 属于无效 ; 按键,退出 ; 送扫描码,确定哪一按键被按下 MOV R2, ; 从P1.4引脚开始扫描,作扫描码,这 ; 样通过循环左移即可使P1.4~P1.7引脚输出低电平, ; 同时送P1口时又能使P1.3~P1.0输出高电平 MOV R3, #00H ; 初始化扫描次数 LOOP: MOV P1, R2 ; 扫描送P1口 MOV A, P1 ; 读P1口引脚 ; 分析P1.3~P1.0引脚状态 CPL A ; 由于P1.3~P1.0中被按下为低电平,取反后为高 ANL A, #0FH ; 屏蔽高4位。A=01H,表示P1.0引脚被按下; ; ?A=02H,表示P1.1引脚被按下;A=04H,表示P1.2 ; 引脚被按下;A=08H,表示P1.3引脚被按下 ; A=00,表示对应列无按键。此外表示两键同时被按下 JNB P, NEXT ; 当有两个按键被按下(这种可能性存在)时,A中必然 ; 有偶数个“1”,奇偶标志P为0(包括无按键) JNB Acc.0, K1 MOV R4, #00H ; ?P1.0引脚被按下,R4=00 SJMP SETNO K1: JNB Acc.1, K2 MOV R4, #01H ; ?P1.1引脚被按下,R4=01 SJMP SETNO K2: JNB Acc.2, K3 MOV R4, #02H ; ?P1.2引脚被按下,R4=02 SJMP SETNO K3: JNB Acc.3, NEXT ; 本列无按键,退出 MOV R4, #03H ; ?P1.3引脚被按下,R4=03 SETNO: ; 计算按键值 MOV A, R3 ; 扫描次数送A RL A RL A ; 扫描

文档评论(0)

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

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

1亿VIP精品文档

相关文档