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

📄 ledtest.lis

📁 使用atmel128对45db161读写程序加LM2009R大液晶显示
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -