标题: 汇编利用八位动态数码管显示两个按键之间的时间间隔 [打印本页]

作者: 布鲁克林章鱼哥    时间: 2024-11-28 23:56
标题: 汇编利用八位动态数码管显示两个按键之间的时间间隔
采用定时器和外部中断方式,按第一个键(K1)开始计时,按第二个键(K2)计时停止,此时在八位数码管上显示测量的时间间隔数值(单位:秒)。
接线如下
[attach]332566[/attach]
之前用一位静态数码管做了这个实验,想在这个基础上修改但是不知道怎么才能实现显示按下两个按键时间间隔
循环显示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 (274.63 KB, 下载次数: 0)

51hei.gif





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1