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

📄 计算器一位相加.asm

📁 课程设计计算器
💻 ASM
字号:
      ORG 00H
      LJMP MAIN
      ORG 30H 
 
MAIN:MOV p0,#0   ;给数码管初显示
      
S:   MOV R0,#20H  ;保存数据用
     
START: 
      MOV P3,#0FEH ;判断第一行是否有键按下
      MOV R2,#4    ;R2控制行
      MOV A,#0 
L2:   JNB P3.7 ,L1
      INC A
      JNB P3.6, L1
      INC A
      JNB P3.5, L1
      INC A
      JNB P3.4, L1
      DJNZ R2,L3 ; 是否倒带最后一行
      LJMP START ;到最后一行,重新转到第一行判断是否有键按下
      
L3:   INC A      ; 判断下一行是否有键按下
      MOV R7,A
      MOV A,P3
      RL A
      MOV P3,A 
      MOV A,R7
      LJMP L2 
      
L1:   CJNE A,#10,GO
JIA : MOV 21H,#1  ; 符号位用1表示加
      INC R0
      LJMP START 
GO:   JNC FUHAO ; A > 10 跳到 FUHAO
      MOV @R0,A 
      INC R0
      MOV DPTR,#TAB
      MOVC A,@A+DPTR
      MOV P0,A
      LJMP START 
 
TAB :DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH 

FUHAO:CJNE A,#11,EQUAL ; A=11,标志为减法运算
 JIAN:MOV 21H,#0   ;  符号位用 0 表示减
     INC R0
     LJMP START 
     


EQUAL:MOV A,21H ;  按下等于号后执行加减法
    CJNE A,#0,JIA1
JIAN1:CLR C   ;  减法运算
      MOV A,20H
      SUBB A,22H
      MOV DPTR,#TAB
      MOVC A,@A+DPTR
      MOV P0,A
      LJMP S 
JIA1:MOV A,20H ;  加法运算
     ADD A,22H
     ADD A,#1
     MOV DPTR,#TAB
     MOVC A,@A+DPTR
     MOV P0,A
     LJMP S 
 
 
      
DEL :MOV R7,#02H
 KKK:MOV R6,#0FFH
     DJNZ R6,$
     DJNZ R7,KKK
     RET 
 
END

⌨️ 快捷键说明

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