首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
4键六位数显示程序
来源:本站整理  作者:佚名  2011-02-05 21:46:04



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

关键词:

·上一文章:ADC0832转换程序
·下一文章:78e51_HT1621_LCD显示程序

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:20,488.28000 毫秒