找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1367|回复: 0
打印 上一主题 下一主题
收起左侧

设计代码

[复制链接]
跳转到指定楼层
楼主
ID:242349 发表于 2017-10-24 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
scan_code EQU 30H
          ORG 0000H
                  JMP start
                  ORG 0030H
start:   
          MOV P0,#0FFH ;初始化p0口,使输出无显示
loop:                                    ; 循环调用read—key获取键盘信息,若键盘按下,
         CALL read_key        ; 则用R7返回键值信息
         CJNE R7,#0FFH,next         ; 若R7返回值不为0xff,则调用显示函数
                  JMP loop
next:                                             ;显示程序
          MOV A,R7
                  MOV DPTR,#disp_code
                 MOVC A,@A+DPTR
                  MOV P0,A
                  JMP loop
read_key:
          MOV scan_code,#7FH
                  MOV P1,#0FH
                  MOV A,P1
                  MOV R7,#0FFH
                 CJNE A,#0FH,wait_key   ;键盘按下则p1的值会改变
                  JMP end_key
wait_key:
         CALL delay_10ms        ;延时10ms,若p1口仍右键按下,则跳到scan—key
                  MOV A,P1
                  MOV R7,#0FFH
                  MOV R6,#4
                 CJNE A,#0FH,scan_key
                  JMP end_key
scan_key:
          MOV P1,scan_code       ;将0x7f循环右移并赋给P1
                  MOV A,P1
                 CJNE A,scan_code,get_key;p1的值改变则确定出其行数
                   RR A
                  MOV scan_code,A
                 DJNZ R6,scan_key
                  JMP end_key
get_key:
   ;       MOV P1,#0FH
        ;          MOV R1,P1
        ;         CJNE R1,#0FH,$
                  MOV R7,#4
get_key0:
          JNB ACC.0,add_r6;移位循环判断最低位,为0则确定其列数
                   RR A
                 DJNZ R7,get_key0
                  MOV R7,#0FFH
                  JMP end_key
add_r6:
          DEC R6        ;从第0个键盘数起,数满(R6-1)*4个键盘,再加上第R6行
                  MOV A,R6      ;的列数R7-1,便得第几个键盘按下
                  MOV B,#4
                  MUL AB
                  DEC R7
                  ADD A,R7
                  MOV R7,A
end_key:
          RET
delay_10ms:
          MOV R7,#10
delay0:
          MOV R6,#0FAH
delay1:
          NOP                    ;   1us
                  NOP                        ;  1us
……………………

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表