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

📄 lcd.lis

📁 自制MP3程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0246                   .dbline 164
 0246           ;   {
 0246                   .dbline 165
 0246           ;     buffer_h[83] = china_char[i/12][j];
 0246 1CE0              ldi R17,12
 0248 042F              mov R16,R20
 024A 0E940000          xcall div8u
 024E 88E1              ldi R24,24
 0250 809F              mul R24,R16
 0252 1001              movw R2,R0
 0254 80E0              ldi R24,<_china_char
 0256 90E0              ldi R25,>_china_char
 0258 280E              add R2,R24
 025A 391E              adc R3,R25
 025C E62F              mov R30,R22
 025E FF27              clr R31
 0260 E20D              add R30,R2
 0262 F31D              adc R31,R3
 0264 E491              lpm R30,Z
 0266 DE01              movw R26,R28
 0268 AD5A              subi R26,173  ; addi 83
 026A BF4F              sbci R27,255
 026C EC93              st x,R30
 026E                   .dbline 166
 026E           ;     buffer_l[83] = china_char[i/12][j+12];
 026E 1CE0              ldi R17,12
 0270 042F              mov R16,R20
 0272 0E940000          xcall div8u
 0276 88E1              ldi R24,24
 0278 809F              mul R24,R16
 027A 1001              movw R2,R0
 027C 80E0              ldi R24,<_china_char
 027E 90E0              ldi R25,>_china_char
 0280 280E              add R2,R24
 0282 391E              adc R3,R25
 0284 E62F              mov R30,R22
 0286 FF27              clr R31
 0288 3C96              adiw R30,12
 028A E20D              add R30,R2
 028C F31D              adc R31,R3
 028E E491              lpm R30,Z
 0290 DE01              movw R26,R28
 0292 A955              subi R26,89  ; addi 167
 0294 BF4F              sbci R27,255
 0296 EC93              st x,R30
 0298                   .dbline 167
 0298           ;     j++;
 0298 6395              inc R22
 029A                   .dbline 168
 029A           ;     if (j==12) 
 029A 6C30              cpi R22,12
 029C 09F4              brne L45
 029E                   .dbline 169
 029E           ;         j=0;
 029E 6627              clr R22
 02A0           L45:
 02A0                   .dbline 170
 02A0           ;     for (n=0; n<83; n++)
 02A0 AA24              clr R10
 02A2 1EC0              xjmp L50
 02A4           L47:
 02A4                   .dbline 171
 02A4                   .dbline 172
 02A4 CE01              movw R24,R28
 02A6 0196              adiw R24,1
 02A8 EA2D              mov R30,R10
 02AA FF27              clr R31
 02AC E80F              add R30,R24
 02AE F91F              adc R31,R25
 02B0 2080              ldd R2,z+0
 02B2 CE01              movw R24,R28
 02B4 EA2D              mov R30,R10
 02B6 FF27              clr R31
 02B8 E80F              add R30,R24
 02BA F91F              adc R31,R25
 02BC 2082              std z+0,R2
 02BE                   .dbline 173
 02BE CE01              movw R24,R28
 02C0 8B5A              subi R24,171  ; offset = 85
 02C2 9F4F              sbci R25,255
 02C4 EA2D              mov R30,R10
 02C6 FF27              clr R31
 02C8 E80F              add R30,R24
 02CA F91F              adc R31,R25
 02CC 2080              ldd R2,z+0
 02CE CE01              movw R24,R28
 02D0 8C5A              subi R24,172  ; offset = 84
 02D2 9F4F              sbci R25,255
 02D4 EA2D              mov R30,R10
 02D6 FF27              clr R31
 02D8 E80F              add R30,R24
 02DA F91F              adc R31,R25
 02DC 2082              std z+0,R2
 02DE                   .dbline 174
 02DE           L48:
 02DE                   .dbline 170
 02DE A394              inc R10
 02E0           L50:
 02E0                   .dbline 170
 02E0 8A2D              mov R24,R10
 02E2 8335              cpi R24,83
 02E4 F8F2              brlo L47
 02E6                   .dbline 175
 02E6           ;     { 
 02E6           ;       buffer_h[n]=buffer_h[n+1];
 02E6           ;       buffer_l[n]=buffer_l[n+1];
 02E6           ;     } 
 02E6           ;     LCD_set_XY(X,Y);
 02E6 2E2D              mov R18,R14
 02E8 FE01              movw R30,R28
 02EA EE54              subi R30,78  ; addi 178
 02EC FF4F              sbci R31,255
 02EE 0081              ldd R16,z+0
 02F0 FFDE              xcall _LCD_set_XY
 02F2                   .dbline 176
 02F2           ;     for (n=0; n<83; n++)
 02F2 AA24              clr R10
 02F4 09C0              xjmp L56
 02F6           L53:
 02F6                   .dbline 177
 02F6                   .dbline 178
 02F6 21E0              ldi R18,1
 02F8 CE01              movw R24,R28
 02FA EA2D              mov R30,R10
 02FC FF27              clr R31
 02FE E80F              add R30,R24
 0300 F91F              adc R31,R25
 0302 0081              ldd R16,z+0
 0304 7DDE              xcall _LCD_write_byte
 0306                   .dbline 179
 0306           L54:
 0306                   .dbline 176
 0306 A394              inc R10
 0308           L56:
 0308                   .dbline 176
 0308 8A2D              mov R24,R10
 030A 8335              cpi R24,83
 030C A0F3              brlo L53
 030E                   .dbline 180
 030E           ;     { 
 030E           ;       LCD_write_byte(buffer_h[n],1);
 030E           ;     } 
 030E           ;     LCD_set_XY(X,Y+1); 
 030E 2E2D              mov R18,R14
 0310 2F5F              subi R18,255    ; addi 1
 0312 FE01              movw R30,R28
 0314 EE54              subi R30,78  ; addi 178
 0316 FF4F              sbci R31,255
 0318 0081              ldd R16,z+0
 031A EADE              xcall _LCD_set_XY
 031C                   .dbline 181
 031C           ;     for (n=0; n<83; n++)
 031C AA24              clr R10
 031E 0BC0              xjmp L60
 0320           L57:
 0320                   .dbline 182
 0320                   .dbline 183
 0320 21E0              ldi R18,1
 0322 CE01              movw R24,R28
 0324 8C5A              subi R24,172  ; offset = 84
 0326 9F4F              sbci R25,255
 0328 EA2D              mov R30,R10
 032A FF27              clr R31
 032C E80F              add R30,R24
 032E F91F              adc R31,R25
 0330 0081              ldd R16,z+0
 0332 66DE              xcall _LCD_write_byte
 0334                   .dbline 184
 0334           L58:
 0334                   .dbline 181
 0334 A394              inc R10
 0336           L60:
 0336                   .dbline 181
 0336 8A2D              mov R24,R10
 0338 8335              cpi R24,83
 033A 90F3              brlo L57
 033C                   .dbline 185
 033C 0C2D              mov R16,R12
 033E 1127              clr R17
 0340 0E940000          xcall _delay_nms
 0344                   .dbline 186
 0344           L40:
 0344                   .dbline 163
 0344 4395              inc R20
 0346           L42:
 0346                   .dbline 163
 0346 4039              cpi R20,144
 0348 08F4              brsh X1
 034A 7DCF              xjmp L39
 034C           X1:
 034C                   .dbline -2
 034C           L36:
 034C EF96              adiw R28,63
 034E EF96              adiw R28,63
 0350 AA96              adiw R28,42  ; offset = 168
 0352 0E940000          xcall pop_gset5
 0356 2496              adiw R28,4
 0358                   .dbline 0 ; func end
 0358 0895              ret
 035A                   .dbsym r i 20 c
 035A                   .dbsym r j 22 c
 035A                   .dbsym l buffer_l 84 A[84:84]c
 035A                   .dbsym l buffer_h 0 A[84:84]c
 035A                   .dbsym r n 10 c
 035A                   .dbsym r T 12 c
 035A                   .dbsym r Y 14 c
 035A                   .dbsym l X 178 c
 035A                   .dbend
 035A                   .dbfunc e LCD_draw_map _LCD_draw_map fV
 035A           ;            row -> R20
 035A           ;              n -> R22,R23
 035A           ;              i -> R14,R15
 035A           ;          Pix_y -> y+18
 035A           ;          Pix_x -> R10
 035A           ;            map -> R12,R13
 035A           ;              Y -> y+12
 035A           ;              X -> y+10
                        .even
 035A           _LCD_draw_map::
 035A 0E940000          xcall push_arg4
 035E 0E940000          xcall push_gset5
 0362 CE84              ldd R12,y+14
 0364 DF84              ldd R13,y+15
 0366 A888              ldd R10,y+16
 0368                   .dbline -1
 0368                   .dbline 200
 0368           ;     { 
 0368           ;       LCD_write_byte(buffer_l[n],1);
 0368           ;     } 
 0368           ;     delay_nms(T);
 0368           ;   }
 0368           ; }
 0368           ; 
 0368           ; /*-----------------------------------------------------------------------
 0368           ; LCD_draw_map: 位图绘制函数
 0368           ; 输入参数:X、Y:位图绘制的起始X、Y坐标;
 0368           ; *map:位图点阵数据;
 0368           ; Pix_x:位图像素(长)
 0368           ; Pix_y:位图像素(宽)
 0368           ; 编写日期:2004-8-13
 0368           ; 最后修改日期:2006-10-23 
 0368           ; -----------------------------------------------------------------------*/
 0368           ; void LCD_draw_map(unsigned char X,unsigned char Y,unsigned char *map,
 0368           ; unsigned char Pix_x,unsigned char Pix_y)
 0368           ; {
 0368                   .dbline 203
 0368           ;   unsigned int i,n;
 0368           ;   unsigned char row;
 0368           ;   if (Pix_y%8==0) 
 0368 18E0              ldi R17,8
 036A 0A89              ldd R16,y+18
 036C 0E940000          xcall mod8u
 0370 0023              tst R16
 0372 29F4              brne L62
 0374                   .dbline 204
 0374           ;     row=Pix_y/8;//计算位图所占行数
 0374 4A89              ldd R20,y+18
 0376 4695              lsr R20
 0378 4695              lsr R20
 037A 4695              lsr R20
 037C 05C0              xjmp L63
 037E           L62:
 037E                   .dbline 206
 037E           ;   else
 037E           ;     row=Pix_y/8+1;
 037E 4A89              ldd R20,y+18
 0380 4695              lsr R20
 0382 4695              lsr R20
 0384 4695              lsr R20
 0386 4F5F              subi R20,255    ; addi 1
 0388           L63:
 0388                   .dbline 207
 0388           ;   for (n=0;n<row;n++)
 0388 6627              clr R22
 038A 7727              clr R23
 038C 25C0              xjmp L67
 038E           L64:
 038E                   .dbline 208
 038E           ;   {
 038E                   .dbline 209
 038E           ;     LCD_set_XY(X,Y);
 038E 2C85              ldd R18,y+12
 0390 0A85              ldd R16,y+10
 0392 AEDE              xcall _LCD_set_XY
 0394                   .dbline 210
 0394           ;     for(i=0; i<Pix_x; i++)
 0394 EE24              clr R14
 0396 FF24              clr R15
 0398 15C0              xjmp L71
 039A           L68:
 039A                   .dbline 211
 039A                   .dbline 212
 039A 21E0              ldi R18,1
 039C 2A2C              mov R2,R10
 039E 3324              clr R3
 03A0 2F93              push R18
 03A2 3F93              push R19
 03A4 9101              movw R18,R2
 03A6 8B01              movw R16,R22
 03A8 0E940000          xcall empy16s
 03AC 3F91              pop R19
 03AE 2F91              pop R18
 03B0 F701              movw R30,R14
 03B2 E00F              add R30,R16
 03B4 F11F              adc R31,R17
 03B6 EC0D              add R30,R12
 03B8 FD1D              adc R31,R13
 03BA 0081              ldd R16,z+0
 03BC 21DE              xcall _LCD_write_byte
 03BE                   .dbline 213
 03BE           L69:
 03BE                   .dbline 210
 03BE C701              movw R24,R14
 03C0 0196              adiw R24,1
 03C2 7C01              movw R14,R24
 03C4           L71:
 03C4                   .dbline 210
 03C4 2A2C              mov R2,R10
 03C6 3324              clr R3
 03C8 E214              cp R14,R2
 03CA F304              cpc R15,R3
 03CC 30F3              brlo L68
 03CE                   .dbline 214
 03CE 0C84              ldd R0,y+12
 03D0 0394              inc R0
 03D2 0C86              std y+12,R0
 03D4                   .dbline 215
 03D4           L65:
 03D4                   .dbline 207
 03D4 6F5F              subi R22,255  ; offset = 1
 03D6 7F4F              sbci R23,255
 03D8           L67:
 03D8                   .dbline 207
 03D8 242E              mov R2,R20
 03DA 3324              clr R3
 03DC 6215              cp R22,R2
 03DE 7305              cpc R23,R3
 03E0 B0F2              brlo L64
 03E2                   .dbline -2
 03E2           L61:
 03E2 0E940000          xcall pop_gset5
 03E6 2496              adiw R28,4
 03E8                   .dbline 0 ; func end
 03E8 0895              ret
 03EA                   .dbsym r row 20 c
 03EA                   .dbsym r n 22 i
 03EA                   .dbsym r i 14 i
 03EA                   .dbsym l Pix_y 18 c
 03EA                   .dbsym r Pix_x 10 c
 03EA                   .dbsym r map 12 pc
 03EA                   .dbsym l Y 12 c
 03EA                   .dbsym l X 10 c
 03EA                   .dbend

⌨️ 快捷键说明

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