📄 ledtest.lis
字号:
035A ; for(j=0;j<240;j++)
035A 6627 clr R22
035C 04C0 xjmp L35
035E L32:
035E .dbline 258
035E .dbline 259
035E 0027 clr R16
0360 99DF xcall _SdData
0362 .dbline 260
0362 A9DF xcall _LCD_ChkBusy
0364 .dbline 261
0364 L33:
0364 .dbline 257
0364 6395 inc R22
0366 L35:
0366 .dbline 257
0366 603F cpi R22,240
0368 D0F3 brlo L32
036A .dbline 262
036A L29:
036A .dbline 255
036A 4395 inc R20
036C L31:
036C .dbline 255
036C 4832 cpi R20,40
036E A8F3 brlo L28
0370 .dbline 263
0370 ; {
0370 ; SdData(0x00);
0370 ; LCD_ChkBusy();
0370 ; }
0370 ; }
0370 ; asm(" sei "); //开户中断
0370 7894 sei
0372 .dbline -2
0372 L27:
0372 0E940000 xcall pop_gset2
0376 .dbline 0 ; func end
0376 0895 ret
0378 .dbsym r i 20 c
0378 .dbsym r j 22 c
0378 .dbend
0378 .dbfunc e ShowText _ShowText fV
0378 ; text -> R20,R21
0378 ; y -> R22
0378 ; x -> R10
.even
0378 _ShowText::
0378 0E940000 xcall push_gset3
037C 622F mov R22,R18
037E A02E mov R10,R16
0380 4E81 ldd R20,y+6
0382 5F81 ldd R21,y+7
0384 .dbline -1
0384 .dbline 267
0384 ; }
0384 ; //---------------------------------
0384 ; void ShowText(uchar x, uchar y,uchar *text)
0384 ; {
0384 .dbline 268
0384 ; SdCmd(0x00,0xCD);LCD_ChkBusy(); //send command normal power mode, Char mode display on, normal display
0384 2DEC ldi R18,205
0386 0027 clr R16
0388 5EDF xcall _SdCmd
038A .dbline 268
038A 95DF xcall _LCD_ChkBusy
038C .dbline 269
038C ; SdCmd(0x60,0x00+x);LCD_ChkBusy(); //set cursor X location to 0
038C 2A2D mov R18,R10
038E 00E6 ldi R16,96
0390 5ADF xcall _SdCmd
0392 .dbline 269
0392 91DF xcall _LCD_ChkBusy
0394 .dbline 270
0394 ; SdCmd(0x70,0x00+y);LCD_ChkBusy(); //set cursor Y location to 0
0394 262F mov R18,R22
0396 00E7 ldi R16,112
0398 56DF xcall _SdCmd
039A .dbline 270
039A 8DDF xcall _LCD_ChkBusy
039C 06C0 xjmp L38
039E L37:
039E .dbline 272
039E .dbline 273
039E FA01 movw R30,R20
03A0 0081 ldd R16,z+0
03A2 78DF xcall _SdData
03A4 .dbline 274
03A4 4F5F subi R20,255 ; offset = 1
03A6 5F4F sbci R21,255
03A8 .dbline 275
03A8 86DF xcall _LCD_ChkBusy
03AA .dbline 276
03AA L38:
03AA .dbline 271
03AA ; while(*text>0)
03AA 2224 clr R2
03AC FA01 movw R30,R20
03AE 3080 ldd R3,z+0
03B0 2314 cp R2,R3
03B2 A8F3 brlo L37
03B4 .dbline -2
03B4 L36:
03B4 0E940000 xcall pop_gset3
03B8 .dbline 0 ; func end
03B8 0895 ret
03BA .dbsym r text 20 pc
03BA .dbsym r y 22 c
03BA .dbsym r x 10 c
03BA .dbend
03BA .dbfunc e ShowNumber _ShowNumber fV
03BA ; showNum5 -> y+2
03BA ; showNum4 -> y+0
03BA ; showNum3 -> R10,R11
03BA ; showNum2 -> R12,R13
03BA ; showNum1 -> R14,R15
03BA ; i -> y+8
03BA ; showNum6 -> y+6
03BA ; number -> y+4
03BA ; number7 -> y+22
03BA ; n -> y+20
03BA ; y -> R10
03BA ; x -> R12
.even
03BA _ShowNumber::
03BA 0E940000 xcall push_gset5
03BE A22E mov R10,R18
03C0 C02E mov R12,R16
03C2 2A97 sbiw R28,10
03C4 .dbline -1
03C4 .dbline 282
03C4 ; {
03C4 ; SdData(*text);
03C4 ; text++;
03C4 ; LCD_ChkBusy();
03C4 ; }
03C4 ; }
03C4 ; //====================================
03C4 ; // 显示数字
03C4 ; //====================================
03C4 ; void ShowNumber(uchar x, uchar y,uint n, uint* number7)
03C4 ; {
03C4 .dbline 284
03C4 ; uint i, number, showNum1,showNum2,showNum3,showNum4,showNum5,showNum6;
03C4 ; SdCmd(0x00,0xCD);LCD_ChkBusy(); //send command normal power mode, Char mode display on, normal display
03C4 2DEC ldi R18,205
03C6 0027 clr R16
03C8 3EDF xcall _SdCmd
03CA .dbline 284
03CA 75DF xcall _LCD_ChkBusy
03CC .dbline 285
03CC ; SdCmd(0x60,0x00+x);LCD_ChkBusy(); //set cursor X location to 0
03CC 2C2D mov R18,R12
03CE 00E6 ldi R16,96
03D0 3ADF xcall _SdCmd
03D2 .dbline 285
03D2 71DF xcall _LCD_ChkBusy
03D4 .dbline 286
03D4 ; SdCmd(0x70,0x00+y);LCD_ChkBusy(); //set cursor Y location to 0
03D4 2A2D mov R18,R10
03D6 00E7 ldi R16,112
03D8 36DF xcall _SdCmd
03DA .dbline 286
03DA 6DDF xcall _LCD_ChkBusy
03DC .dbline 287
03DC ; for( i=0;i<n;i++ )
03DC 0024 clr R0
03DE 1124 clr R1
03E0 1986 std y+9,R1
03E2 0886 std y+8,R0
03E4 B6C0 xjmp L44
03E6 L41:
03E6 .dbline 288
03E6 ; {
03E6 .dbline 290
03E6 ;
03E6 ; number = *number7;
03E6 EE89 ldd R30,y+22
03E8 FF89 ldd R31,y+23
03EA 2080 ldd R2,z+0
03EC 3180 ldd R3,z+1
03EE 3D82 std y+5,R3
03F0 2C82 std y+4,R2
03F2 .dbline 291
03F2 ; number7++;
03F2 8E89 ldd R24,y+22
03F4 9F89 ldd R25,y+23
03F6 0296 adiw R24,2
03F8 9F8B std y+23,R25
03FA 8E8B std y+22,R24
03FC .dbline 292
03FC ; showNum1 = (number/100000);
03FC 40EA ldi R20,160
03FE 56E8 ldi R21,134
0400 61E0 ldi R22,1
0402 70E0 ldi R23,0
0404 2C80 ldd R2,y+4
0406 3D80 ldd R3,y+5
0408 4424 clr R4
040A 5524 clr R5
040C 7A93 st -y,R23
040E 6A93 st -y,R22
0410 5A93 st -y,R21
0412 4A93 st -y,R20
0414 8101 movw R16,R2
0416 9201 movw R18,R4
0418 0E940000 xcall div32s
041C 7801 movw R14,R16
041E .dbline 293
041E ; showNum2 = ((number%100000)/10000);
041E 40EA ldi R20,160
0420 56E8 ldi R21,134
0422 61E0 ldi R22,1
0424 70E0 ldi R23,0
0426 2C80 ldd R2,y+4
0428 3D80 ldd R3,y+5
042A 4424 clr R4
042C 5524 clr R5
042E 7A93 st -y,R23
0430 6A93 st -y,R22
0432 5A93 st -y,R21
0434 4A93 st -y,R20
0436 8101 movw R16,R2
0438 9201 movw R18,R4
043A 0E940000 xcall mod32s
043E 40E1 ldi R20,16
0440 57E2 ldi R21,39
0442 60E0 ldi R22,0
0444 70E0 ldi R23,0
0446 7A93 st -y,R23
0448 6A93 st -y,R22
044A 5A93 st -y,R21
044C 4A93 st -y,R20
044E 0E940000 xcall div32s
0452 6801 movw R12,R16
0454 .dbline 294
0454 ; showNum3 = ((number%10000)/1000);
0454 20E1 ldi R18,10000
0456 37E2 ldi R19,39
0458 0C81 ldd R16,y+4
045A 1D81 ldd R17,y+5
045C 0E940000 xcall mod16u
0460 28EE ldi R18,1000
0462 33E0 ldi R19,3
0464 0E940000 xcall div16u
0468 5801 movw R10,R16
046A .dbline 295
046A ; showNum4 = ((number%1000)/100);
046A 28EE ldi R18,1000
046C 33E0 ldi R19,3
046E 0C81 ldd R16,y+4
0470 1D81 ldd R17,y+5
0472 0E940000 xcall mod16u
0476 24E6 ldi R18,100
0478 30E0 ldi R19,0
047A 0E940000 xcall div16u
047E 1983 std y+1,R17
0480 0883 std y+0,R16
0482 .dbline 296
0482 ; showNum5 = ((number%100)/10);
0482 24E6 ldi R18,100
0484 30E0 ldi R19,0
0486 0C81 ldd R16,y+4
0488 1D81 ldd R17,y+5
048A 0E940000 xcall mod16u
048E 2AE0 ldi R18,10
0490 30E0 ldi R19,0
0492 0E940000 xcall div16u
0496 1B83 std y+3,R17
0498 0A83 std y+2,R16
049A .dbline 297
049A ; showNum6 = ((number%10)/1);
049A 2AE0 ldi R18,10
049C 30E0 ldi R19,0
049E 0C81 ldd R16,y+4
04A0 1D81 ldd R17,y+5
04A2 0E940000 xcall mod16u
04A6 1F83 std y+7,R17
04A8 0E83 std y+6,R16
04AA .dbline 299
04AA ;
04AA ; if(number>=100000)
04AA 40EA ldi R20,160
04AC 56E8 ldi R21,134
04AE 61E0 ldi R22,1
04B0 70E0 ldi R23,0
04B2 2C80 ldd R2,y+4
04B4 3D80 ldd R3,y+5
04B6 4424 clr R4
04B8 5524 clr R5
04BA 2416 cp R2,R20
04BC 3506 cpc R3,R21
04BE 4606 cpc R4,R22
04C0 5706 cpc R5,R23
04C2 34F0 brlt L45
04C4 .dbline 300
04C4 ; {
04C4 .dbline 301
04C4 ; showNum1+=48;
04C4 C701 movw R24,R14
04C6 C096 adiw R24,48
04C8 7C01 movw R14,R24
04CA .dbline 302
04CA ; SdData(showNum1);
04CA 082F mov R16,R24
04CC E3DE xcall _SdData
04CE .dbline 303
04CE ; LCD_ChkBusy();
04CE F3DE xcall _LCD_ChkBusy
04D0 .dbline 304
04D0 ; }
04D0 L45:
04D0 .dbline 305
04D0 ; if(number>=10000)
04D0 8C81 ldd R24,y+4
04D2 9D81 ldd R25,y+5
04D4 8031 cpi R24,16
04D6 E7E2 ldi R30,39
04D8 9E07 cpc R25,R30
04DA 30F0 brlo L47
04DC .dbline 306
04DC ; {
04DC .dbline 307
04DC ; showNum2+=48;
04DC C601 movw R24,R12
04DE C096 adiw R24,48
04E0 6C01 movw R12,R24
04E2 .dbline 308
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -