×
单片机 > 单片机程序设计 > 详情

51键盘显示程序

发布时间:2020-08-21 发布时间:
|
主程序:

start:
      call disp
      lcall keyscan
      cjne a,#0ffh,nex
      sjmp start
nex:
      mov 20h,a
      sjmp start
;显示函数,显示从20h开始的3个单元的内容
disp:
      mov r0,#20h
      mov r1,#1
      mov r2,#01
lop: 

      mov a,@r0

      lcall displ
      mov a,@r0
      lcall disph
      inc r0
      djnz r1,lop
      ret
disph:
     swap a
displ:
     anl a,#0fh
     mov dptr,#tab
     movc a,@a+dptr
     mov dptr,#pb
     movx @dptr,a
     mov a,r2
     mov dptr,#pa

     movx @dptr,a
     rl a
     mov r2,a
     lcall delay
     clr a
     movx @dptr,a
     ret  
  ;键盘扫描子程序
keyscan:
    mov a,#0
    mov dptr,#4f02
    movx @dptr,a
 
    lcall testkey
    jnz kn1
    sjmp fret
kn1:

    lcall getkey
    mov r7,a
    lcall aga
    cjne r2,#0FFH,fret
    lcall delay
    lcall getkey
    xrl a,r7
    jnz fret
wait:
    call testkey
    jnz wait
    mov a,r7
    ret
fret:
    mov a,#0FFH
    ret
 
;测试是否有键按下 
testkey:
    mov dptr,#4f01
    clr a
    movx @dptr,a
    mov dptr,#4f03
    movx a,@dptr
    cpl a
    anl a,#0fh
    ret
;延时

delay:
    mov r0,#0
    djnz r0,$
    ret

;取得按下键的键值
getkey:
    mov r5,#8
    mov r3,#0FEH
lop1: 

    mov dptr,#4f01H
    mov a,r3
    movx @dptr,a
 
    ;mov b,a
    rl a
    mov r3,a
    mov dptr,#4F03H
    movx a,@dptr
    anl a,#0fh
    cjne a,#0fh,nex1
aga: 

    djnz r5,lop1
    mov r2,#0ffh
    ret
nex1:
    mov r1,a
    mov a,#9
    subb a,r5
    rl a
    rl a
    mov r2,a
    mov a,r1
    mov r1,#4
    cpl a
lop2: 

    rrc a
    jc exit
    inc r2
    djnz r1,lop2
exit:
    mov a,r2
    mov dptr,#keytable
    movc a,@a+dptr
    ret
;键值表

keytable:
   DB     00H,04H,08H,0CH
   DB     10H,14H,18H,1CH
   DB     01H,05H,09H,0DH
   DB     11H,15H,19H,1DH
   DB     02H,06H,0AH,0EH
   DB     12H,16H,1AH,1EH
   DB     03H,07H,0BH,0FH
   DB     13H,17H,1BH,1FH 
 ;8段码表
tab:

关键字:51键盘  显示程序 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/2015/0309/article_18596.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多