找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 888|回复: 0
收起左侧

汇编利用八位动态数码管显示两个按键之间的时间间隔

[复制链接]
ID:1135835 发表于 2024-11-28 23:56 | 显示全部楼层 |阅读模式
采用定时器和外部中断方式,按第一个键(K1)开始计时,按第二个键(K2)计时停止,此时在八位数码管上显示测量的时间间隔数值(单位:秒)。
接线如下

之前用一位静态数码管做了这个实验,想在这个基础上修改但是不知道怎么才能实现显示按下两个按键时间间隔
循环显示0到9(两个外部中断,两个按键控制开始和暂停)
TAB:  DB   0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H    ;定义了一个数组
UP0:  
    MOV R7,#10                        ;等下用来记录循环了次数,因为0-9有10个数,所以赋值为10
    MOV R2,#00H                        ;用来存储偏移量
    MOV DPTR,#TAB                ;将数组的首地址用DPTR来记录
UP:
    MOV   A,R2           ;将当前偏移量赋值给变量A
    MOVC  A,@A+DPTR                ;MOVC A,@A+DPTR是读取地址为A+DPTR存储单元的内容。
    MOV   P2,A                        ;读取到的数组内容赋值给P2引脚
    LCALL  DELAY1000MS    ;LCALL的意思是调用,调用DELAY1000MS
    INC     R2                        ;inc代表加一(偏移量加一)
    DJNZ   R7,UP        ;将R7减一,非0则跳转到UP,为0则执行下一句(可以执行10次)
    SJMP    UP0         ;SJMP是跳转的意思,跳转到UP0的位置
DELAY1000MS:                        ;这里往下是延时函数的部分,可以理解为执行完下面这这语句用时1秒
        PUSH 30H
        PUSH 31H
        PUSH 32H
        MOV 30H,#8
        MOV 31H,#1
        MOV 32H,#236
NEXT:
        DJNZ 32H,NEXT
        DJNZ 31H,NEXT
        DJNZ 30H,NEXT
        POP 32H
        POP 31H
        POP 30H
        RET
END
51hei.gif

评分

参与人数 1黑币 +30 收起 理由
wpppmlah + 30 赞一个!

查看全部评分

回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表