⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noname1.asm

📁 51单片机的“两个数码管加减一”演示程序。
💻 ASM
字号:
key1 bit p3.0
key2 bit p3.1
led1 equ p0    ;赋值
led2 equ p2
;==================================================================
org 0000h
jmp main
org 0030h            ;程序开始执行的位置
main:mov a,#00h
     mov r0,#0
     mov r4,#0
     mov p3,#0ffh
     mov led1,#0c0h   ;初始化显示"0"
     mov  led2,#0c0h  ;初始化显示"0"
     jmp k0           ;转到判断加减法程序
;===============================================================
k0:
     jb key1,l0  ;加法键判断,
     jmp k1      ;按下去则转到加法程序

;================================================================
k1:  inc r0
     cjne r0,#10,k2 ;判断加法个位,小于9转到加法个位继续加
     mov r0,#0      ;加法个位超过9则r0清零
     jmp  k3        ;转到加法十位

;=============================================================
k2:   mov a,r0
      mov dptr,#tab
      movc a,@a+dptr
      mov led2,a     ;加法个位程序
      jnb key1,$     ;等待键放开
      jmp k0         ;加完则返回判断加减法键
;===============================================================
l0: mov r2,#255
l1: mov r1,#255
    djnz r1,$
    djnz r2,l1   ;延时程序
    jnb key2,d0  ;减法键判断,按下去则转到减法程序
    jmp k0       ;返回判断加减法键
;===============================================================
k3: inc r4
    cjne r4,#11,k4  ;判断十位是否是"9",不是则可继续加
    mov r4,#0       ;十位是"9",则r4清零
    jmp main        ;十位是"9",则返回主程序清零,进行新一轮加法
k4: mov led2,#0c0h
    mov a,r4
    mov dptr,#tab
    movc a,@a+dptr
    mov led1,a      ;加法十位的程序
    jnb key1,$      ;等待键放开
    jmp l0          ;加完返回判断加减法键
;===============================================================
d0:cjne r0,#0,d1    ;判断减法各位是否为零,不是零则可继续往下减
   jmp d2           ;减法个位为零则转到十位去减
;===============================================================
d1:dec r0
   mov a,r0
   mov dptr,#tab
   movc a,@a+dptr
   mov led2,a        ;减法个位程序
   jnb key2,$        ;等待键放开
   jmp k0            ;减完返回判断加减法键
;================================================================
d2:cjne r4,#0,d3    ;减法十位不为零则可继续减
   jmp main         ;减法十位为零则转到主程序

d3:dec r4
   mov led2,#90h    ;减法个位为零,减去1后变"9"
   mov r0,#9        ;r0赋值"9",以便下一轮的个位减
   mov a,r4
   mov dptr,#tab
   movc a,@a+dptr
   mov led1,a      ;减法十位程序
   jnb key2,$      ;等待键放开
   jmp k0          ;减完返回判断加减法键
;==============================================================
tab:  db 0c0h,0f9h,0a4h,0b0h,99h
      db 92h,82h,0f8h,80h,90h,0c0h   ;0~9数型表
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -