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

📄 bb.7简化的程序.txt

📁 this formality is four number calculter,it is I play the host in person.
💻 TXT
字号:
ORG  0000H
LJMP MAIN
ORG 0100H
MAIN:      MOV R1,#40H
MAIN1:     SETB P3.3 ;送数并显示
SETB P3.4
SETB P3.5
CLR P3.6
MOV R0,#50H
LCALL XS
SETB P3.3
SETB P3.4
CLR P3.5
SETB P3.6
INC R0
LCALL XS
SETB P3.3
CLR P3.4
SETB P3.5
SETB P3.6
INC R0
LCALL XS
CLR P3.3
SETB P3.4
SETB P3.5
SETB P3.6
INC R0
LCALL XS
DELAY1:   MOV P1,#11101111B ;扫描
 MOV A,P1
 ANL A,#0FH
 ORL A,#11100000B
 CPL A
 CJNE A,#00010000B,JJ
DELAY2:   MOV P1,#11011111B
 MOV A,P1
 ANL A,#0FH
 ORL A,#11010000B
 CPL A  
 CJNE A,#00100000B,JJ
DELAY3:   MOV P1,#10111111B
       MOV A,P1
      ANL A,#0FH
      ORL A,#10110000B
CPL A 
CJNE A,#01000000B,JJ
DELAY4:  MOV P1,#01111111B
     MOV A,P1
     ANL A,#0FH
     ORL A,#01110000B
     CPL A
     CJNE A,#10000000B,JJ
     LJMP MAIN1
JJ:        LCALL YS2;按键去抖
CJNE A,#10000001B,TT1;除
LJMP TT6
TT1:      CJNE A,#01000001B,TT2;乘
LJMP TT6
TT2:      CJNE A,#00100001B,TT3;减
LJMP TT6	
TT3:      CJNE A,#00010001B,TT4;加
LJMP TT6
TT4:      CJNE A,#00011000B,TT5;清零
LJMP CLL
TT5:      CJNE A,#00010010B,KEY1;等于
LJMP CLLL 
TT6:      MOV R4,A
MOV R2,#99;判断按键赋值时的入口地址的标志
MOV R1,#42H
TT7:      LJMP MAIN1
KEY1:    MOV B,A;扫描0-9的数字值
MOV DPTR,#TABLE 
MOV R3,#0FFH
KEY2:    INC R3 
MOV A,R3
MOVC A,@A+DPTR 
CJNE A,B,KEY3 ;判键码,求顺序码 
MOV A,R3;存并显示键值
MOV @R1,A
CJNE R2,#99,CC
MOV 50H,42H;被运算数存值
MOV 51H,#0
INC R1
CJNE R1,#44H,DD;执行两位的运算
MOV 51H,42H
MOV 50H,43H
MOV R1,#42H;两位输入结束自己重新输入
DD:       MOV 62H,50H
MOV 63H,51H
LCALL YS1
LJMP MAIN1
CC:        MOV 50H,40H;运算数存值
MOV 51H,#0
INC R1
CJNE R1,#42H,BB
MOV 51H,40H
MOV 50H,41H
MOV R1,#40H;两位输入结束自己重新输入
BB:       MOV 60H,50H
MOV 61H,51H
LCALL YS1
LJMP MAIN1
KEY3:    CJNE A,#82H,KEY2;判是否查完 
LJMP MAIN1
CLL:
CJNE R2,#99,EE;判断是结果清零还是输入清零
MOV R1,#42H
LJMP FF
EE:       MOV R1,#40H
FF:       MOV 52H,#0
MOV 53H,#0
MOV 50H,#0
MOV 51H,#0
LJMP MAIN1
;*******等于后的程序运算处理***********
CLLL:    MOV R2,#0
MOV A,R4
CJNE A,#10000001B,TT11;除
MOV B,#10;将两位数的除数十进制数送到78H
MOV B,#10
MOV A,61H
MUL AB ;将两位数的除数十进制化
ADD A,60H
MOV 78H,A;将除数暂存在78
MOV B,#10;
MOV A,63H
MUL AB;将两位数的被除数十进制化
ADD A,62H
MOV 79H,A;将被除数暂存在78
MOV A,78H
MOV B,79H
DIV AB ;进行除法运算
MOV B,#10
DIV AB ;将结果分成两位
MOV 50H,B;将结果分成的结果送去显示
MOV 51H,A;高位
LCALL LIANYS
TT11: CJNE A,#01000001B,TT22;乘
MOV A,60H
MOV B,62H
MUL AB
MOV B,#10
DIV AB;分离出个位和十位
MOV 70H,B;个位数据暂存地址
MOV 71H,A;十位数据暂存地址
MOV A,61H
MOV B,62H
MUL AB;十位和个位相乘
MOV B,#10
DIV AB;分离出十位和百位
MOV 72H,B;十位数据暂存地址
MOV 73H,A;百位数据暂存地址
MOV A,60H
MOV B,63H
MUL AB;个位和被乘数的十位相乘
MOV B,#10
DIV AB ;分离相乘结果
MOV 74H,B;十位数据暂存地址
MOV 75H,A;百位数据暂存地址
MOV A,61H
MOV B,63H
MUL AB ;十位和被乘数的十位相乘
MOV B,#10
DIV AB ;分离相乘结果
MOV 76H,B;百位数据暂存地址
MOV 50H,70H ;将个位送出
MOV A,71H  ; 将暂存的十位进行累加
ADD A,72H
ADD A,74H
MOV B,#10
DIV AB;分离相加结果
MOV 51H,B ; 得到十位
ADD A,73H;将暂存的百位进行累加
ADD A,75H
ADD A,76H
MOV B,#10
DIV AB ;分离百位相加结果
MOV 52H,B ;将百位送出
ADD A,77H;累加千位
MOV 53H,A ;将千位送出
LCALL LIANYS
TT22:     CJNE A,#00100001B,TT33;减
XM:      MOV A,60H
ADD A,#10;借位
SUBB A,62H;个位相减
MOV B,#10
DIV AB;分离出个位和十位
MOV 50H,B;存个位
ADD A,61H;存十位并与减数的十位相加作下一个的减数
ADD A,#10
DEC A
SUBB A,63H;十位相减
MOV B,#10
DIV AB;分离出十位
MOV 51H,B
CJNE A,#0, LIANYS;如果为负从新运算
MOV B,60H
MOV 60H,62H
MOV 62H,B
MOV B,61H
MOV 61H,63H
MOV 63H,B
MOV 53H,#10;53H显示为负 
LJMP XM
TT33:     CJNE A,#00010001B,TT44;加
MOV   A,60H
ADD   A,62H;个位相加
MOV  B,#10
DIV   AB;分离出个位和十位
MOV  50H,B;存个位
MOV  51H,A;存十位
MOV    A,61H
ADD    A,63H
ADD    A,51H;十位相加
MOV    B,#10
DIV     AB;分离出十位和百位
MOV    51H,B
MOV    52H,A
MOV    53H,#0
LCALL  LIANYS;实现连加运算

TT44:     LJMP MAIN1

XS:       MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
LCALL YS
RET
LIANYS:  LCALL YS1
MOV 60H,50H
MOV 61H,51H
LJMP MAIN1
RET
YS1:      MOV R5,#20
D2:       LCALL YS
          DJNZ R5,D2
          RET
YS2:      MOV R5,#26
D3:       MOV R7,#66
LCALL YS
DJNZ R7,$
DJNZ R5,D3
RET
YS:      MOV R6,#36
D1:      MOV R7,#66
         DJNZ R7, $
         DJNZ R6,D1
         RET
TAB:
DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,02H;0-9及负号对应的段码表
TABLE: 
DB 14H,28H,24H,22H,48H,44H,42H,88H,84H,82H;按键对应的码值
END

⌨️ 快捷键说明

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