⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scankey.asm

📁 是一个单片机键盘扫描程序
💻 ASM
字号:
   #include ht48c10.inc
;------------------------------------------------------------------------------------------------------data
            data  .section  'data'           ;数据段
            temp  db  ?                   ; 暂时数据寄存器
            disp   db  ?                  ; 键值显示寄存器
            count1 db  ?                   ; 延时计数指针
            mask  db  ?                   ; 屏蔽寄存器
           matrix  db  ?                   ; 键盘阵列寄存器
            temp1  db ?
            temp2  db ?
;------------------------------------------------------------------------------------------------------code
         code     .section   at  0 'code'     ;程序段
                   org 00h                 ; ISR 地址初始
                    jmp       start
             start:                         ; 程序开始
                   clr     pbc             ; 设置PB口为输出口
                   mov    a,   0f0h   ;(1)  ; 设置PA高4位为输入口                       
                                           ; 设置PA低四位为输出口
                   mov    pac,  a          ;
                   clr      pa              ; 清PA 口
                   set      pb              ; 清PB 口
         keyloop:                           ; 键扫描循环
                  mov    a,  0feh     ;(2) ;扫描第一行是否被按下
                  mov   matrix,   a        ; 将第一行的代码送matrix
                  mov   pa,      a        ; 输出扫描码到PA 口
                  mov   a,       pa       ; 读入PA口 的状态到ACC
                  xor  a,      0feh      ;屏蔽高四位,取出键所在的列
                   sz    acc               ; 第一行是否有键按下
                  jmp   get_key            ;有键按下跳到读键值
                  mov    a,     0fdh   ;(2) ; 扫描第二行是否被按下
                  mov    matrix,  a       ; 将第二行的代码送matrix
                  mov    pa,     a       ;
                  mov    a,     pa       ;
                  xor     a,     0fdh     ;
                  sz      acc ;
                  jmp    get_key         ;
                  mov  a,      0fbh  ;(2) ; 扫描第三行是否被按下
                  mov matrix,   a         ; 将第三行的代码送matrix     
                  mov   pa,    a         ;
                  mov   a,    pa         ;
                  xor    a,   0fbh        ;
                  sz       acc           ; 
                  jmp   get_key          ;
                  mov  a,   0f7h   ;(2)    ; 扫描第四行是否被按下
                  mov  matrix,  a         ; 将第三行的代码送matrix
                  mov     pa,  a         ;
                  mov    a,    pa        ;
                   xor     a,   0f7h       ;
                 sz     acc               ;
                 jmp     get_key          ;
                 jmp     keyloop          ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -