📄 key_display.src
字号:
MOV n?1455,R4
; t=(int)(n*10);
; SOURCE LINE # 284
CLR A
MOV R7,A
MOV R6,A
MOV R5,#020H
MOV R4,#041H
MOV R3,n?1455+03H
MOV R2,n?1455+02H
MOV R1,n?1455+01H
MOV R0,n?1455
LCALL ?C?FPMUL
LCALL ?C?CASTF
MOV t?1459,R7
; n=n*10-t;
; SOURCE LINE # 285
CLR A
MOV R7,A
MOV R6,A
MOV R5,#020H
MOV R4,#041H
MOV R3,n?1455+03H
MOV R2,n?1455+02H
MOV R1,n?1455+01H
MOV R0,n?1455
LCALL ?C?FPMUL
MOV A,R4
PUSH ACC
MOV A,R5
PUSH ACC
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
MOV R4,t?1459
MOV A,R4
LCALL ?C?FCASTC
XCH A,R0
MOV A,R4
XCH A,R0
XCH A,R1
MOV A,R5
XCH A,R1
XCH A,R2
MOV A,R6
XCH A,R2
XCH A,R3
MOV A,R7
XCH A,R3
POP ACC
MOV R7,A
POP ACC
MOV R6,A
POP ACC
MOV R5,A
POP ACC
MOV R4,A
LCALL ?C?FPSUB
MOV n?1455+03H,R7
MOV n?1455+02H,R6
MOV n?1455+01H,R5
MOV n?1455,R4
; t=abs(t);
; SOURCE LINE # 286
MOV R7,t?1459
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
LCALL _abs
MOV t?1459,R7
; if( (int)( n*10 )>=5 || (int) ( n * 10 ) <=-5 ) t++;
; SOURCE LINE # 287
CLR A
MOV R7,A
MOV R6,A
MOV R5,#020H
MOV R4,#041H
MOV R3,n?1455+03H
MOV R2,n?1455+02H
MOV R1,n?1455+01H
MOV R0,n?1455
LCALL ?C?FPMUL
LCALL ?C?CASTF
CLR C
MOV A,R7
SUBB A,#05H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0062
MOV A,R7
SUBB A,#0FBH
MOV A,R6
XRL A,#080H
SUBB A,#07FH
JNC ?C0061
?C0062:
INC t?1459
?C0061:
; CH452_Write(CH452_DIG0|t);
; SOURCE LINE # 288
MOV R7,t?1459
MOV A,R7
RLC A
SUBB A,ACC
ORL A,#08H
MOV R6,A
LJMP _CH452_Write
; END OF _BCDdisplay_l
; //}
; }
; /***********在数码管上4-7显示数字(包括小数点和负数)*****************/
; void BCDdisplay_h(float n)
RSEG ?PR?_BCDdisplay_h?KEY_DISPLAY
_BCDdisplay_h:
USING 0
; SOURCE LINE # 292
MOV n?1560+03H,R7
MOV n?1560+02H,R6
MOV n?1560+01H,R5
MOV n?1560,R4
; {
; SOURCE LINE # 293
; signed int x;
; signed char a[4],b,t;
; x=abs((int)n);
; SOURCE LINE # 296
LCALL ?C?CASTF
LCALL _abs
MOV x?1561,R6
MOV x?1561+01H,R7
; for(t=4;t<8;t++)
; SOURCE LINE # 297
MOV t?1564,#04H
?C0064:
; CH452_Write((CH452_DIG0+ (t<<8))|16);
; SOURCE LINE # 298
MOV R7,t?1564
LCALL L?0093
INC t?1564
CLR C
MOV A,t?1564
XRL A,#080H
SUBB A,#088H
JC ?C0064
?C0065:
; //if( ( n < 0.00000001 ) || ( n > -0.00000001 ) ) CH452_Write((CH452_DIG4));
; //else
; //{
; for(t=0;t<4;t++)
; SOURCE LINE # 302
CLR A
MOV t?1564,A
?C0067:
; {
; SOURCE LINE # 303
; a[t]=x%10;
; SOURCE LINE # 304
MOV R6,x?1561
MOV R7,x?1561+01H
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?SIDIV
MOV A,#LOW (a?1562)
ADD A,t?1564
MOV R0,A
XCH A,@R0
MOV A,R5
XCH A,@R0
; x=x/10;
; SOURCE LINE # 305
MOV R6,x?1561
MOV R7,x?1561+01H
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?SIDIV
MOV x?1561,R6
MOV x?1561+01H,R7
; if(a[t]) b=t;
; SOURCE LINE # 306
MOV A,#LOW (a?1562)
ADD A,t?1564
MOV R0,A
MOV A,@R0
JZ ?C0069
MOV b?1563,t?1564
; }
; SOURCE LINE # 307
?C0069:
INC t?1564
MOV A,t?1564
CJNE A,#04H,?C0067
?C0068:
;
; x=abs((int)n);
; SOURCE LINE # 309
MOV R7,n?1560+03H
MOV R6,n?1560+02H
MOV R5,n?1560+01H
MOV R4,n?1560
LCALL ?C?CASTF
LCALL _abs
MOV x?1561,R6
MOV x?1561+01H,R7
; if(x-(int)n)
; SOURCE LINE # 310
MOV R7,n?1560+03H
MOV R6,n?1560+02H
MOV R5,n?1560+01H
MOV R4,n?1560
LCALL ?C?CASTF
CLR C
MOV A,x?1561+01H
SUBB A,R7
MOV R7,A
MOV A,x?1561
SUBB A,R6
ORL A,R7
JZ ?C0071
; {
; SOURCE LINE # 311
; x=b+5;x<<=8;
; SOURCE LINE # 312
MOV R7,b?1563
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,R7
ADD A,#05H
MOV x?1561+01H,A
CLR A
ADDC A,R6
MOV x?1561,A
MOV A,x?1561+01H
MOV x?1561+01H,#00H
MOV x?1561,A
; CH452_Write((CH452_DIG1+x)|18);
; SOURCE LINE # 313
CLR A
ADD A,x?1561+01H
MOV R7,A
MOV A,x?1561
ADDC A,#09H
MOV R6,A
MOV A,R7
ORL A,#012H
MOV R7,A
LCALL _CH452_Write
; DELAY_1US;
; SOURCE LINE # 314
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 315
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 316
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 317
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 318
NOP
NOP
; }
; SOURCE LINE # 319
?C0071:
; for(t=0;t<=b;t++)
; SOURCE LINE # 320
CLR A
MOV t?1564,A
?C0072:
SETB C
MOV A,b?1563
XRL A,#080H
MOV R0,A
MOV A,t?1564
XRL A,#080H
SUBB A,R0
JNC ?C0073
; {
; SOURCE LINE # 321
; x=t;x<<=8;
; SOURCE LINE # 322
MOV R7,t?1564
MOV A,R7
RLC A
SUBB A,ACC
MOV x?1561,A
MOV x?1561+01H,R7
MOV A,x?1561+01H
MOV x?1561+01H,#00H
MOV x?1561,A
; CH452_Write((CH452_DIG5+x)|a[t]);
; SOURCE LINE # 323
MOV A,#LOW (a?1562)
ADD A,R7
MOV R0,A
MOV A,@R0
MOV R7,A
RLC A
SUBB A,ACC
MOV R6,A
CLR A
ADD A,x?1561+01H
MOV R5,A
MOV A,x?1561
ADDC A,#0DH
ORL A,R6
MOV R6,A
MOV A,R5
ORL A,R7
MOV R7,A
LCALL _CH452_Write
; DELAY_1US;
; SOURCE LINE # 324
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 325
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 326
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 327
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 328
NOP
NOP
;
; }
; SOURCE LINE # 330
INC t?1564
SJMP ?C0072
?C0073:
;
; CH452_Write(0x1fd);//写小数点
; SOURCE LINE # 332
MOV R7,#0FDH
MOV R6,#01H
LCALL _CH452_Write
; n=(n-(int)n);
; SOURCE LINE # 333
MOV R7,n?1560+03H
MOV R6,n?1560+02H
MOV R5,n?1560+01H
MOV R4,n?1560
MOV A,R4
PUSH ACC
MOV A,R5
PUSH ACC
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
LCALL ?C?CASTF
XCH A,R5
MOV A,R7
XCH A,R5
XCH A,R4
MOV A,R6
XCH A,R4
MOV A,R4
LCALL ?C?FCASTI
XCH A,R0
MOV A,R4
XCH A,R0
XCH A,R1
MOV A,R5
XCH A,R1
XCH A,R2
MOV A,R6
XCH A,R2
XCH A,R3
MOV A,R7
XCH A,R3
POP ACC
MOV R7,A
POP ACC
MOV R6,A
POP ACC
MOV R5,A
POP ACC
MOV R4,A
LCALL ?C?FPSUB
MOV n?1560+03H,R7
MOV n?1560+02H,R6
MOV n?1560+01H,R5
MOV n?1560,R4
; t=(int)(n*10);
; SOURCE LINE # 334
CLR A
MOV R7,A
MOV R6,A
MOV R5,#020H
MOV R4,#041H
MOV R3,n?1560+03H
MOV R2,n?1560+02H
MOV R1,n?1560+01H
MOV R0,n?1560
LCALL ?C?FPMUL
LCALL ?C?CASTF
MOV t?1564,R7
; n=n*10-t;
; SOURCE LINE # 335
CLR A
MOV R7,A
MOV R6,A
MOV R5,#020H
MOV R4,#041H
MOV R3,n?1560+03H
MOV R2,n?1560+02H
MOV R1,n?1560+01H
MOV R0,n?1560
LCALL ?C?FPMUL
MOV A,R4
PUSH ACC
MOV A,R5
PUSH ACC
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
MOV R4,t?1564
MOV A,R4
LCALL ?C?FCASTC
XCH A,R0
MOV A,R4
XCH A,R0
XCH A,R1
MOV A,R5
XCH A,R1
XCH A,R2
MOV A,R6
XCH A,R2
XCH A,R3
MOV A,R7
XCH A,R3
POP ACC
MOV R7,A
POP ACC
MOV R6,A
POP ACC
MOV R5,A
POP ACC
MOV R4,A
LCALL ?C?FPSUB
MOV n?1560+03H,R7
MOV n?1560+02H,R6
MOV n?1560+01H,R5
MOV n?1560,R4
; t=abs(t);
; SOURCE LINE # 336
MOV R7,t?1564
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
LCALL _abs
MOV t?1564,R7
; if( (int)( n*10 )>=5 || (int) ( n * 10 ) <=-5 ) t++;
; SOURCE LINE # 337
CLR A
MOV R7,A
MOV R6,A
MOV R5,#020H
MOV R4,#041H
MOV R3,n?1560+03H
MOV R2,n?1560+02H
MOV R1,n?1560+01H
MOV R0,n?1560
LCALL ?C?FPMUL
LCALL ?C?CASTF
CLR C
MOV A,R7
SUBB A,#05H
MOV A,R6
XRL A,#080H
SUBB A,#080H
JNC ?C0076
MOV A,R7
SUBB A,#0FBH
MOV A,R6
XRL A,#080H
SUBB A,#07FH
JNC ?C0075
?C0076:
INC t?1564
?C0075:
; CH452_Write(CH452_DIG4|t);
; SOURCE LINE # 338
MOV R7,t?1564
MOV A,R7
RLC A
SUBB A,ACC
ORL A,#0CH
MOV R6,A
LJMP _CH452_Write
; END OF _BCDdisplay_h
; //}
; }
;
; /***********显示(包括数)******************/
; void BCDdisplay1(uint n)
RSEG ?PR?_BCDdisplay1?KEY_DISPLAY
_BCDdisplay1:
USING 0
; SOURCE LINE # 343
;---- Variable 'b?1669' assigned to Register 'R3' ----
;---- Variable 'n?1665' assigned to Register 'DPTR' ----
MOV DPL,R7
MOV DPH,R6
; { uint x;
; SOURCE LINE # 344
; uchar a[8],t,b;
; x=n;
; SOURCE LINE # 346
MOV x?1666,DPH
MOV x?1666+01H,DPL
; //CH452_Write(CH452_RESET);
; CH452_Write(CH452_SYSON2);//打开键盘显示
; SOURCE LINE # 348
MOV R7,#03H
MOV R6,#04H
LCALL _CH452_Write
; CH452_Write(CH452_BCD); // BCD译码,8个数码管
; SOURCE LINE # 349
MOV R7,#080H
MOV R6,#05H
LCALL _CH452_Write
; for(t=0;t<8;t++)
; SOURCE LINE # 350
;---- Variable 't?1668' assigned to Register 'R2' ----
CLR A
MOV R2,A
?C0078:
; CH452_Write((CH452_DIG0+ (t<<8))|16);
; SOURCE LINE # 351
MOV A,R2
LCALL L?0094
INC R2
CJNE R2,#08H,?C0078
?C0079:
; if(n==0) CH452_Write((CH452_DIG0));
; SOURCE LINE # 352
MOV A,DPL
ORL A,DPH
JNZ ?C0081
MOV R7,A
MOV R6,#08H
LJMP _CH452_Write
?C0081:
; else
; {
; SOURCE LINE # 354
; for(t=0;t<8;t++)
; SOURCE LINE # 355
CLR A
MOV R2,A
?C0083:
; { a[t]=x%10;
; SOURCE LINE # 356
MOV R6,x?1666
MOV R7,x?1666+01H
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV A,#LOW (a?1667)
ADD A,R2
MOV R0,A
XCH A,@R0
MOV A,R5
XCH A,@R0
; x=x/10;
; SOURCE LINE # 357
MOV R6,x?1666
MOV R7,x?1666+01H
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV x?1666,R6
MOV x?1666+01H,R7
; if(a[t]) b=t;
; SOURCE LINE # 358
MOV A,#LOW (a?1667)
ADD A,R2
MOV R0,A
MOV A,@R0
JZ ?C0085
XCH A,R3
MOV A,R2
XCH A,R3
; }
; SOURCE LINE # 359
?C0085:
INC R2
CJNE R2,#08H,?C0083
?C0084:
;
; for(t=0;t<=b;t++)
; SOURCE LINE # 361
CLR A
MOV R2,A
?C0087:
MOV A,R2
SETB C
SUBB A,R3
JNC ?C0090
; {
; SOURCE LINE # 362
; x=t;x<<=8;
; SOURCE LINE # 363
MOV A,R2
MOV x?1666,#00H
MOV x?1666+01H,A
MOV x?1666+01H,#00H
MOV x?1666,A
; CH452_Write((CH452_DIG0+x)|a[t]);
; SOURCE LINE # 364
MOV A,#LOW (a?1667)
ADD A,R2
MOV R0,A
MOV A,@R0
MOV R7,A
CLR A
ADD A,x?1666+01H
MOV R5,A
MOV A,x?1666
ADDC A,#08H
MOV R6,A
MOV A,R5
ORL A,R7
MOV R7,A
LCALL _CH452_Write
; DELAY_1US;
; SOURCE LINE # 365
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 366
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 367
NOP
NOP
; DELAY_1US;
; SOURCE LINE # 368
NOP
NOP
; DELAY_1US;}
; SOURCE LINE # 369
NOP
NOP
INC R2
SJMP ?C0087
; }
; SOURCE LINE # 370
; } ; SOURCE LINE # 371
?C0090:
RET
; END OF _BCDdisplay1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -