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

74922应用于键盘控制及六位数显示程序

发布时间:2020-05-28 发布时间:
|

74922应用于键盘控制及六位数显示程序

     org    00h               ;清除显示器存储器30H~35H
start:  MOV   r4,#06h

        MOV   r0,#30h
clear:  MOV   @r0,#00h
        inc  r0
        djnz r4,clear
l1:     jb   p1.4,keyin        ;检测74138的DA脚=1? DA=1表示有键按下
        call disp              ;调用显示子程序
        jmp  l1
keyin:  jb   p1.4,$            ;按键放开否?
        MOV   a,p1              ;是则读入74922的按键值
        anl  a,#0fh            ;取低4位(74922 A~D)
        MOV   dptr,#table       ;到table取码
        MOV c a,@a+dptr
        MOV   20h,a             ;暂存入(20H)
        xrl  a,#0ah            ;是否按"*"?是则清除屏幕
        jz   start
        MOV   a,20h
        xrl  a,#0bh            ;是否按"#"?是则清除屏幕
        jz   start
        MOV   a,20h             ;除"*"和"#"其余都为数字键
        xch  a,30h             ;现按键值存入(30H)
        xch  a,31h             ;旧(30H)值存入(31H)
        xch  a,32h             ;旧(31H)值存入(32H)
        xch  a,33h             ;旧(32H)值存入(33H)
        xch  a,34h             ;旧(33H)值存入(34H)
        xch  a,35h             ;旧(34H)值存入(35H)
        call disp              ;调用扫描子程序
        jmp  l1
disp:   MOV   a,35h             ;(35H)显示器D6地址
        add  a,#50h            ;D6数据值加上74138扫描值
        MOV   p0,A              ;显示D6
        call delay             ;扫描延时
        MOV   a,33h             ;(33h)显示器D4地址
        add  a,#30h            ;显示数据值加上74138扫描值
        MOV   p0,a              ;显示D4
        call delay             ;扫描延时
        MOV   a,32h             ;(32H)显示器D3地址
        add  a,#20h            ;D2数据值加上74138扫描值
        MOV   p0,a              ;显示D2
        call  delay             ;扫描延时
        MOV   a,30h             ;(30H)显示器D1扫描值
        add  a,#00h            ;D1数据值加上74138扫描值
        MOV   p0,a              ;显示D1
        call delay             ;扫描延时
        ret
delay:  MOV   r7,#06            ;显示器扫描时间3毫秒
d1:     MOV   r6,#248
        djnz r6,$
        djnz r7,D1
        ret
        org  300h
table:  db   01h,01h,03h,0ffh  ;键盘码
        db   04h,05h,06h,0ffh
        db   07h,08h,09h,0ffh
        db   0ah,00h,0bh,0ffh
        end


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

热门文章 更多
STM32 USB HID 键盘