📄 attest.lst
字号:
(0281) void ShowNumber(uchar x, uchar y,uint n, uint* number7)
(0282) {
(0283) uint i, number, showNum1,showNum2,showNum3,showNum4,showNum5,showNum6;
(0284) SdCmd(0x00,0xCD);LCD_ChkBusy(); //send command normal power mode, Char mode display on, normal display
04A6 EC2D LDI R18,0xCD
04A7 2700 CLR R16
04A8 DF3E RCALL _SdCmd
04A9 DF75 RCALL _LCD_ChkBusy
(0285) SdCmd(0x60,0x00+x);LCD_ChkBusy(); //set cursor X location to 0
04AA 2D2C MOV R18,R12
04AB E600 LDI R16,0x60
04AC DF3A RCALL _SdCmd
04AD DF71 RCALL _LCD_ChkBusy
(0286) SdCmd(0x70,0x00+y);LCD_ChkBusy(); //set cursor Y location to 0
04AE 2D2A MOV R18,R10
04AF E700 LDI R16,0x70
04B0 DF36 RCALL _SdCmd
04B1 DF6D RCALL _LCD_ChkBusy
(0287) for( i=0;i<n;i++ )
04B2 2400 CLR R0
04B3 2411 CLR R1
04B4 8619 STD Y+9,R1
04B5 8608 STD Y+8,R0
04B6 C0B6 RJMP 0x056D
(0288) {
(0289)
(0290) number = *number7;
04B7 89EE LDD R30,Y+22
04B8 89FF LDD R31,Y+23
04B9 8020 LDD R2,Z+0
04BA 8031 LDD R3,Z+1
04BB 823D STD Y+5,R3
04BC 822C STD Y+4,R2
(0291) number7++;
04BD 898E LDD R24,Y+22
04BE 899F LDD R25,Y+23
04BF 9602 ADIW R24,2
04C0 8B9F STD Y+23,R25
04C1 8B8E STD Y+22,R24
(0292) showNum1 = (number/100000);
04C2 EA40 LDI R20,0xA0
04C3 E856 LDI R21,0x86
04C4 E061 LDI R22,1
04C5 E070 LDI R23,0
04C6 802C LDD R2,Y+4
04C7 803D LDD R3,Y+5
04C8 2444 CLR R4
04C9 2455 CLR R5
04CA 937A ST R23,-Y
04CB 936A ST R22,-Y
04CC 935A ST R21,-Y
04CD 934A ST R20,-Y
04CE 0181 MOVW R16,R2
04CF 0192 MOVW R18,R4
04D0 940E05CC CALL div32s
04D2 0178 MOVW R14,R16
(0293) showNum2 = ((number%100000)/10000);
04D3 EA40 LDI R20,0xA0
04D4 E856 LDI R21,0x86
04D5 E061 LDI R22,1
04D6 E070 LDI R23,0
04D7 802C LDD R2,Y+4
04D8 803D LDD R3,Y+5
04D9 2444 CLR R4
04DA 2455 CLR R5
04DB 937A ST R23,-Y
04DC 936A ST R22,-Y
04DD 935A ST R21,-Y
04DE 934A ST R20,-Y
04DF 0181 MOVW R16,R2
04E0 0192 MOVW R18,R4
04E1 940E05CE CALL mod32s
04E3 E140 LDI R20,0x10
04E4 E257 LDI R21,0x27
04E5 E060 LDI R22,0
04E6 E070 LDI R23,0
04E7 937A ST R23,-Y
04E8 936A ST R22,-Y
04E9 935A ST R21,-Y
04EA 934A ST R20,-Y
04EB 940E05CC CALL div32s
04ED 0168 MOVW R12,R16
(0294) showNum3 = ((number%10000)/1000);
04EE E120 LDI R18,0x10
04EF E237 LDI R19,0x27
04F0 810C LDD R16,Y+4
04F1 811D LDD R17,Y+5
04F2 940E05AA CALL mod16u
04F4 EE28 LDI R18,0xE8
04F5 E033 LDI R19,3
04F6 940E05AC CALL div16u
04F8 0158 MOVW R10,R16
(0295) showNum4 = ((number%1000)/100);
04F9 EE28 LDI R18,0xE8
04FA E033 LDI R19,3
04FB 810C LDD R16,Y+4
04FC 811D LDD R17,Y+5
04FD 940E05AA CALL mod16u
04FF E624 LDI R18,0x64
0500 E030 LDI R19,0
0501 940E05AC CALL div16u
0503 8319 STD Y+1,R17
0504 8308 STD Y+0,R16
(0296) showNum5 = ((number%100)/10);
0505 E624 LDI R18,0x64
0506 E030 LDI R19,0
0507 810C LDD R16,Y+4
0508 811D LDD R17,Y+5
0509 940E05AA CALL mod16u
050B E02A LDI R18,0xA
050C E030 LDI R19,0
050D 940E05AC CALL div16u
050F 831B STD Y+3,R17
0510 830A STD Y+2,R16
(0297) showNum6 = ((number%10)/1);
0511 E02A LDI R18,0xA
0512 E030 LDI R19,0
0513 810C LDD R16,Y+4
0514 811D LDD R17,Y+5
0515 940E05AA CALL mod16u
0517 831F STD Y+7,R17
0518 830E STD Y+6,R16
(0298)
(0299) if(number>=100000)
0519 EA40 LDI R20,0xA0
051A E856 LDI R21,0x86
051B E061 LDI R22,1
051C E070 LDI R23,0
051D 802C LDD R2,Y+4
051E 803D LDD R3,Y+5
051F 2444 CLR R4
0520 2455 CLR R5
0521 1624 CP R2,R20
0522 0635 CPC R3,R21
0523 0646 CPC R4,R22
0524 0657 CPC R5,R23
0525 F034 BLT 0x052C
(0300) {
(0301) showNum1+=48;
0526 01C7 MOVW R24,R14
0527 96C0 ADIW R24,0x30
0528 017C MOVW R14,R24
(0302) SdData(showNum1);
0529 2F08 MOV R16,R24
052A DEE3 RCALL _SdData
(0303) LCD_ChkBusy();
052B DEF3 RCALL _LCD_ChkBusy
(0304) }
(0305) if(number>=10000)
052C 818C LDD R24,Y+4
052D 819D LDD R25,Y+5
052E 3180 CPI R24,0x10
052F E2E7 LDI R30,0x27
0530 079E CPC R25,R30
0531 F030 BCS 0x0538
(0306) {
(0307) showNum2+=48;
0532 01C6 MOVW R24,R12
0533 96C0 ADIW R24,0x30
0534 016C MOVW R12,R24
(0308) SdData(showNum2);
0535 2F08 MOV R16,R24
0536 DED7 RCALL _SdData
(0309) LCD_ChkBusy();
0537 DEE7 RCALL _LCD_ChkBusy
(0310) }
(0311) if(number>=1000)
0538 818C LDD R24,Y+4
0539 819D LDD R25,Y+5
053A 3E88 CPI R24,0xE8
053B E0E3 LDI R30,3
053C 079E CPC R25,R30
053D F030 BCS 0x0544
(0312) {
(0313) showNum3+=48;
053E 01C5 MOVW R24,R10
053F 96C0 ADIW R24,0x30
0540 015C MOVW R10,R24
(0314) SdData(showNum3);
0541 2F08 MOV R16,R24
0542 DECB RCALL _SdData
(0315) LCD_ChkBusy();
0543 DEDB RCALL _LCD_ChkBusy
(0316) }
(0317) if(number>=100)
0544 818C LDD R24,Y+4
0545 819D LDD R25,Y+5
0546 3684 CPI R24,0x64
0547 E0E0 LDI R30,0
0548 079E CPC R25,R30
0549 F040 BCS 0x0552
(0318) {
(0319) showNum4+=48;
054A 8188 LDD R24,Y+0
054B 8199 LDD R25,Y+1
054C 96C0 ADIW R24,0x30
054D 8399 STD Y+1,R25
054E 8388 STD Y+0,R24
(0320) SdData(showNum4);
054F 2F08 MOV R16,R24
0550 DEBD RCALL _SdData
(0321) LCD_ChkBusy();
0551 DECD RCALL _LCD_ChkBusy
(0322) }
(0323) if(number>=10)
0552 818C LDD R24,Y+4
0553 819D LDD R25,Y+5
0554 308A CPI R24,0xA
0555 E0E0 LDI R30,0
0556 079E CPC R25,R30
0557 F040 BCS 0x0560
(0324) {
(0325) showNum5+=48;
0558 818A LDD R24,Y+2
0559 819B LDD R25,Y+3
055A 96C0 ADIW R24,0x30
055B 839B STD Y+3,R25
055C 838A STD Y+2,R24
(0326) SdData(showNum5);
055D 2F08 MOV R16,R24
055E DEAF RCALL _SdData
(0327) LCD_ChkBusy();
055F DEBF RCALL _LCD_ChkBusy
(0328) }
(0329) showNum6+=48;
0560 818E LDD R24,Y+6
0561 819F LDD R25,Y+7
0562 96C0 ADIW R24,0x30
0563 839F STD Y+7,R25
0564 838E STD Y+6,R24
(0330) SdData(showNum6);
0565 018C MOVW R16,R24
0566 DEA7 RCALL _SdData
(0331) LCD_ChkBusy();
0567 DEB7 RCALL _LCD_ChkBusy
0568 8588 LDD R24,Y+8
0569 8599 LDD R25,Y+9
056A 9601 ADIW R24,1
056B 8799 STD Y+9,R25
056C 8788 STD Y+8,R24
056D 8408 LDD R0,Y+8
056E 8419 LDD R1,Y+9
056F 890C LDD R16,Y+20
0570 891D LDD R17,Y+21
0571 1600 CP R0,R16
0572 0611 CPC R1,R17
0573 F408 BCC 0x0575
0574 CF42 RJMP 0x04B7
0575 962A ADIW R28,0xA
0576 940E064D CALL pop_gset5
0578 9508 RET
(0332) }
(0333) }
(0334) //==================================
(0335) //-----------------------------------
(0336) void delay_1us(void)
(0337) {
(0338) asm("nop");
_delay_1us:
0579 0000 NOP
(0339) asm("nop");
057A 0000 NOP
(0340) asm("nop");
057B 0000 NOP
(0341) asm("nop");
057C 0000 NOP
(0342) asm("nop");
057D 0000 NOP
(0343) asm("nop");
057E 0000 NOP
(0344) asm("nop");
057F 0000 NOP
(0345) asm("nop");
0580 0000 NOP
0581 9508 RET
(0346) }
(0347) void delay_1ms(void)
(0348) {
(0349) unsigned int i;
(0350) for(i=1; i<(unsigned int)(8*143-2); i++)
_delay_1ms:
i --> R16
0582 E001 LDI R16,1
0583 E010 LDI R17,0
0584 C002 RJMP 0x0587
0585 5F0F SUBI R16,0xFF
0586 4F1F SBCI R17,0xFF
0587 3706 CPI R16,0x76
0588 E0E4 LDI R30,4
0589 071E CPC R17,R30
058A F3D0 BCS 0x0585
058B 9508 RET
_delay_ms:
i --> R20
n --> R22
058C 940E0667 CALL push_gset2
058E 01B8 MOVW R22,R16
(0351) ;
(0352) }
(0353)
(0354) void delay_ms(unsigned int n)
(0355) {
(0356) unsigned int i;
(0357) for(i=0; i<n; i++)
058F 2744 CLR R20
0590 2755 CLR R21
0591 C003 RJMP 0x0595
(0358) delay_1ms();
0592 DFEF RCALL _delay_1ms
0593 5F4F SUBI R20,0xFF
0594 4F5F SBCI R21,0xFF
0595 1746 CP R20,R22
0596 0757 CPC R21,R23
0597 F3D0 BCS 0x0592
0598 940E0647 CALL pop_gset2
059A 9508 RET
_delay_us:
i --> R20
n --> R22
059B 940E0667 CALL push_gset2
059D 01B8 MOVW R22,R16
(0359) }
(0360) void delay_us(unsigned int n)
(0361) {
(0362) unsigned int i;
(0363) for(i=0; i<n; i++)
059E 2744 CLR R20
059F 2755 CLR R21
05A0 C003 RJMP 0x05A4
(0364) delay_1us();
FILE: <library>
05A1 DFD7 RCALL _delay_1us
05A2 5F4F SUBI R20,0xFF
05A3 4F5F SBCI R21,0xFF
05A4 1746 CP R20,R22
05A5 0757 CPC R21,R23
05A6 F3D0 BCS 0x05A1
05A7 940E0647 CALL pop_gset2
05A9 9508 RET
mod16u:
05AA 9468 BSET 6
05AB C001 RJMP xdiv16u
div16u:
05AC 94E8 BCLR 6
xdiv16u:
05AD 92EA ST R14,-Y
05AE 92FA ST R15,-Y
05AF 938A ST R24,-Y
05B0 24EE CLR R14
05B1 24FF CLR R15
05B2 E180 LDI R24,0x10
05B3 0F00 LSL R16
05B4 1F11 ROL R17
05B5 1CEE ROL R14
05B6 1CFF ROL R15
05B7 16E2 CP R14,R18
05B8 06F3 CPC R15,R19
05B9 F018 BCS 0x05BD
05BA 1AE2 SUB R14,R18
05BB 0AF3 SBC R15,R19
05BC 9503 INC R16
05BD 958A DEC R24
05BE F7A1 BNE 0x05B3
05BF F416 BRTC 0x05C2
05C0 2D0E MOV R16,R14
05C1 2D1F MOV R17,R15
05C2 9189 LD R24,Y+
05C3 90F9 LD R15,Y+
05C4 90E9 LD R14,Y+
05C5 9508 RET
div32u:
05C6 94E8 BCLR 6
05C7 C001 RJMP 0x05C9
mod32u:
05C8 9468 BSET 6
05C9 D02F RCALL long_div_prolog
05CA 24CC CLR R12
05CB C008 RJMP 0x05D4
div32s:
05CC 94E8 BCLR 6
05CD C001 RJMP 0x05CF
mod32s:
05CE 9468 BSET 6
05CF D029 RCALL long_div_prolog
05D0 FD37 SBRC R19,7
05D1 D053 RCALL neg_R16_R19
05D2 FDB7 SBRC R27,7
05D3 D05A RCALL neg_R24_R27
05D4 2477 CLR R7
05D5 2488 CLR R8
05D6 2499 CLR R9
05D7 24AA CLR R10
05D8 24BB CLR R11
05D9 D041 RCALL tst_R16_R19
05DA F0C1 BEQ 0x05F3
05DB D044 RCALL tst_R24_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -