您当前的位置:五五电子网电子知识单片机-工控设备51单片机4键六位数显示程序 正文
4键六位数显示程序

4键六位数显示程序

点击数:7374 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   51单片机

4键六位数显示程序

        org  00h
start:  MOV   r4,#06h
        MOV   r0,#30h
clear:  MOV   @r0,#00h
        inc  r0
        djnz r4,clear
l1:     MOV   r3,#0f7h           ;扫描初值(P13=0)
        MOV   r1,#00h            ;取码指针
l2:     MOV   a,r3               ;开始扫描
        MOV   p1,a               ;将扫描值输入至P1
        MOV   a,p1               ;读入P1值,判断是否有键按下?
        MOV   r4,a               ;存入R4,以判断是否开放
        setb c                  ;C=1
        rrc  a                  ;扫描下一行(P13~P10)
        MOV   r3,a               ;存回扫描寄存器
        jc   l2                 ;C=1?是则P10尚未扫描到
        jmp  l1                 ;C=0则4行已扫描完毕
keyin:  MOV   r7,#60             ;消除抖动
d2:     MOV   r6,#248
        djnz r6,$
        djnz r7,d2
d3:     MOV   a,p1              ;读入P1值
        xrl  a,r4              ;与上次读入值作比较
        jz   d3                ;ACC=0则相等,表示按钮未放
        MOV   a,r1              ;按钮已放开,取码指针载入累加器
        MOV   dptr,#table       ;数据指针指到TABLE
        MOV c a,@a+dptr         ;至TABLE取码
        xch  a,30h             ;旧(30H)值存入(31H)
        xch  a,31h             ;旧(31H)值存入(32H)
        xch  a,32h             ;旧(32H)值存入(33H)
        xch  a,33h             ;旧(33H)值存入(34H)
        xch  a,34h             ;旧(34H)值存入(35H)
        call disp              ;调用显示子程序
        jmp  l1
disp:   MOV   a,35h
add     a,#50h                 ;D6数据值加上74138扫描值
        MOV   p0,a              ;显示D6
        call delay             ;扫描延时
        MOV   a,34h    
        add  a,#40h            ;显示数据值加上74138扫描值
        MOV   p0,a              ;显示D5
        call delay             ;扫描延时
        MOV   a,33h        
        add  a,#30h            ;D4数据值加上74138扫描值
        MOV   p0,a              ;显示D4
        call delay             ;扫描延时
        MOV   a,32h            
        add  a,#20h            ;D3数据值上加上74138
        MOV   p0,a              ;显示D3
        call delay             ;扫描延时
        MOV   a,30h      
        add  a,#00h            ;D1数据值加上74138扫描值
        MOV   p0,a              ;显示D1
        call delay             ;扫描延时
delay:  MOV   r7,#06            ;显示器扫描时间
d1:     MOV   r6,#248           ;
        djnz r6,$              ;
        djnz r7,d1             ;
        ret
        org  300h
table:  db     0ch,08h,04h,00h   ;
        db     0dh,09h,05h,01h   ;
        db     0eh,0ah,06h,02h   ;
        db     0fh,0bh,07h,03h   ;
        end




本文关键字:程序  51单片机单片机-工控设备 - 51单片机

上一篇:ADC0832转换程序

《4键六位数显示程序》相关文章>>>