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

📄 nokia_5110.lis

📁 好啊,欢迎大家都来下在,很游泳的问张哦.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0126           ; void LCD_write_chinese_string(unsigned char X, unsigned char Y, 
 0126           ;                    unsigned char ch_with,unsigned char num,
 0126           ;                    unsigned char line,unsigned char row)
 0126           ;   {
 0126                   .dbline 162
 0126           ;     unsigned char i,n;
 0126           ;     
 0126           ;     LCD_set_XY(X,Y);                             //设置初始位置
 0126 2C85              ldd R18,y+12
 0128 0A85              ldd R16,y+10
 012A BFDF              rcall _LCD_set_XY
 012C                   .dbline 164
 012C           ;     
 012C           ;     for (i=0;i<num;)
 012C 4427              clr R20
 012E 32C0              rjmp L36
 0130           L33:
 0130                   .dbline 165
 0130           ;       {
 0130                   .dbline 166
 0130           ;               for (n=0; n<ch_with*2; n++)              //写一个汉字
 0130 EE24              clr R14
 0132 23C0              rjmp L40
 0134           L37:
 0134                   .dbline 167
 0134           ;                 { 
 0134                   .dbline 168
 0134           ;                   if (n==ch_with)                      //写汉字的下半部分
 0134 0E84              ldd R0,y+14
 0136 E014              cp R14,R0
 0138 79F4              brne L41
 013A                   .dbline 169
 013A           ;                     {
 013A                   .dbline 170
 013A           ;                       if (i==0) LCD_set_XY(X,Y+1);
 013A 4423              tst R20
 013C 29F4              brne L43
 013E                   .dbline 170
 013E 2C85              ldd R18,y+12
 0140 2F5F              subi R18,255    ; addi 1
 0142 0A85              ldd R16,y+10
 0144 B2DF              rcall _LCD_set_XY
 0146 08C0              rjmp L44
 0148           L43:
 0148                   .dbline 172
 0148           ;                       else
 0148           ;                          LCD_set_XY((X+(ch_with+row)*i),Y+1);
 0148 2C85              ldd R18,y+12
 014A 2F5F              subi R18,255    ; addi 1
 014C 2E84              ldd R2,y+14
 014E 2A0C              add R2,R10
 0150 249E              mul R2,R20
 0152 0A85              ldd R16,y+10
 0154 000D              add R16,R0
 0156 A9DF              rcall _LCD_set_XY
 0158           L44:
 0158                   .dbline 173
 0158           ;               }
 0158           L41:
 0158                   .dbline 174
 0158 21E0              ldi R18,1
 015A 2C2C              mov R2,R12
 015C 240E              add R2,R20
 015E 88E1              ldi R24,24
 0160 829D              mul R24,R2
 0162 1001              movw R2,R0
 0164 80E0              ldi R24,<_write_chinese
 0166 90E0              ldi R25,>_write_chinese
 0168 280E              add R2,R24
 016A 391E              adc R3,R25
 016C EE2D              mov R30,R14
 016E FF27              clr R31
 0170 E20D              add R30,R2
 0172 F31D              adc R31,R3
 0174 0491              lpm R16,Z
 0176 00D1              rcall _LCD_write_byte
 0178                   .dbline 175
 0178           L38:
 0178                   .dbline 166
 0178 E394              inc R14
 017A           L40:
 017A                   .dbline 166
 017A 82E0              ldi R24,2
 017C 0E84              ldd R0,y+14
 017E 809D              mul R24,R0
 0180 E014              cp R14,R0
 0182 C0F2              brlo L37
 0184                   .dbline 176
 0184 4395              inc R20
 0186                   .dbline 177
 0186 2C85              ldd R18,y+12
 0188 2E84              ldd R2,y+14
 018A 2A0C              add R2,R10
 018C 249E              mul R2,R20
 018E 0A85              ldd R16,y+10
 0190 000D              add R16,R0
 0192 8BDF              rcall _LCD_set_XY
 0194                   .dbline 178
 0194           L34:
 0194                   .dbline 164
 0194           L36:
 0194                   .dbline 164
 0194 4617              cp R20,R22
 0196 08F4              brsh X0
 0198 CBCF              rjmp L33
 019A           X0:
 019A                   .dbline -2
 019A                   .dbline 179
 019A           ;                   LCD_write_byte(write_chinese[line+i][n],1);
 019A           ;                 }
 019A           ;               i++;
 019A           ;               LCD_set_XY((X+(ch_with+row)*i),Y);
 019A           ;       }
 019A           ;   }
 019A           L32:
 019A 00D0              rcall pop_gset5
 019C 2496              adiw R28,4
 019E                   .dbline 0 ; func end
 019E 0895              ret
 01A0                   .dbsym r i 20 c
 01A0                   .dbsym r n 14 c
 01A0                   .dbsym r row 10 c
 01A0                   .dbsym r line 12 c
 01A0                   .dbsym r num 22 c
 01A0                   .dbsym l ch_with 14 c
 01A0                   .dbsym l Y 12 c
 01A0                   .dbsym l X 10 c
 01A0                   .dbend
                        .area lit(rom, con, rel)
 03F0           L46:
 03F0 00                .byte 0
 03F1 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 042D 00000000000000000000      .word 0,0,0,0,0
 0437 00000000000000000000      .word 0,0,0,0,0
 0441 000000            .byte 0,0,0
 0444           L47:
 0444 00                .byte 0
 0445 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 0481 00000000000000000000      .word 0,0,0,0,0
 048B 00000000000000000000      .word 0,0,0,0,0
 0495 000000            .byte 0,0,0
                        .area text(rom, con, rel)
 01A0                   .dbfile E:\Study\AVR\nokia5110\nokia_5110.c
 01A0                   .dbfunc e chinese_string _chinese_string fV
 01A0           ;              i -> R20
 01A0           ;              j -> R22
 01A0           ;       buffer_l -> y+84
 01A0           ;       buffer_h -> y+0
 01A0           ;              n -> R10
 01A0           ;              T -> R12
 01A0           ;              Y -> R14
 01A0           ;              X -> y+178
                        .even
 01A0           _chinese_string::
 01A0 00D0              rcall push_arg4
 01A2 00D0              rcall push_gset5
 01A4 E22E              mov R14,R18
 01A6 EF97              sbiw R28,63
 01A8 EF97              sbiw R28,63
 01AA AA97              sbiw R28,42  ; offset = 168
 01AC FE01              movw R30,R28
 01AE EA54              subi R30,74  ; addi 182
 01B0 FF4F              sbci R31,255
 01B2 C080              ldd R12,z+0
 01B4                   .dbline -1
 01B4                   .dbline 191
 01B4           ;   
 01B4           ; /*-----------------------------------------------------------------------
 01B4           ; LCD_move_chinese_string: 汉字移动
 01B4           ; 
 01B4           ; 输入参数:X、Y    :显示汉字的起始X、Y坐标;
 01B4           ;           T       :移动速度;
 01B4           ; 
 01B4           ; 编写日期          :2004-8-13 
 01B4           ; 最后修改日期      :2004-8-13 
 01B4           ; -----------------------------------------------------------------------*/                        
 01B4           ; void chinese_string (unsigned char X, unsigned char Y, unsigned char T)
 01B4           ;   {
 01B4                   .dbline 192
 01B4           ;     unsigned char i,n,j=0;
 01B4 6627              clr R22
 01B6                   .dbline 193
 01B6           ;     unsigned char buffer_h[84]={0};
 01B6 80E0              ldi R24,<L46
 01B8 90E0              ldi R25,>L46
 01BA FE01              movw R30,R28
 01BC 04E5              ldi R16,84
 01BE 10E0              ldi R17,0
 01C0 FA93              st -y,R31
 01C2 EA93              st -y,R30
 01C4 9A93              st -y,R25
 01C6 8A93              st -y,R24
 01C8 00D0              rcall asgncblk
 01CA                   .dbline 194
 01CA           ;     unsigned char buffer_l[84]={0};
 01CA 80E0              ldi R24,<L47
 01CC 90E0              ldi R25,>L47
 01CE FE01              movw R30,R28
 01D0 EC5A              subi R30,172  ; offset = 84
 01D2 FF4F              sbci R31,255
 01D4 04E5              ldi R16,84
 01D6 10E0              ldi R17,0
 01D8 FA93              st -y,R31
 01DA EA93              st -y,R30
 01DC 9A93              st -y,R25
 01DE 8A93              st -y,R24
 01E0 00D0              rcall asgncblk
 01E2                   .dbline 196
 01E2           ;       
 01E2           ;     for (i=0; i<156; i++)
 01E2 4427              clr R20
 01E4 7DC0              rjmp L51
 01E6           L48:
 01E6                   .dbline 197
 01E6           ;       {
 01E6                   .dbline 198
 01E6           ;         buffer_h[83] = move_chinese_string[i/12][j];
 01E6 1CE0              ldi R17,12
 01E8 042F              mov R16,R20
 01EA 00D0              rcall div8u
 01EC 88E1              ldi R24,24
 01EE 809F              mul R24,R16
 01F0 1001              movw R2,R0
 01F2 80E0              ldi R24,<_move_chinese_string
 01F4 90E0              ldi R25,>_move_chinese_string
 01F6 280E              add R2,R24
 01F8 391E              adc R3,R25
 01FA E62F              mov R30,R22
 01FC FF27              clr R31
 01FE E20D              add R30,R2
 0200 F31D              adc R31,R3
 0202 E491              lpm R30,Z
 0204 DE01              movw R26,R28
 0206 AD5A              subi R26,173  ; addi 83
 0208 BF4F              sbci R27,255
 020A EC93              st x,R30
 020C                   .dbline 199
 020C           ;         buffer_l[83] = move_chinese_string[i/12][j+12];
 020C 1CE0              ldi R17,12
 020E 042F              mov R16,R20
 0210 00D0              rcall div8u
 0212 88E1              ldi R24,24
 0214 809F              mul R24,R16
 0216 1001              movw R2,R0
 0218 80E0              ldi R24,<_move_chinese_string
 021A 90E0              ldi R25,>_move_chinese_string
 021C 280E              add R2,R24
 021E 391E              adc R3,R25
 0220 E62F              mov R30,R22
 0222 FF27              clr R31
 0224 3C96              adiw R30,12
 0226 E20D              add R30,R2
 0228 F31D              adc R31,R3
 022A E491              lpm R30,Z
 022C DE01              movw R26,R28
 022E A955              subi R26,89  ; addi 167
 0230 BF4F              sbci R27,255
 0232 EC93              st x,R30
 0234                   .dbline 200
 0234           ;         j++;
 0234 6395              inc R22
 0236                   .dbline 201
 0236           ;         if (j==12) j=0;
 0236 6C30              cpi R22,12
 0238 09F4              brne L54
 023A                   .dbline 201
 023A 6627              clr R22
 023C           L54:
 023C                   .dbline 203
 023C           ;         
 023C           ;         for (n=0; n<83; n++)
 023C AA24              clr R10
 023E 1EC0              rjmp L59
 0240           L56:
 0240                   .dbline 204
 0240                   .dbline 205
 0240 CE01              movw R24,R28
 0242 0196              adiw R24,1
 0244 EA2D              mov R30,R10
 0246 FF27              clr R31
 0248 E80F              add R30,R24
 024A F91F              adc R31,R25
 024C 2080              ldd R2,z+0
 024E CE01              movw R24,R28
 0250 EA2D              mov R30,R10
 0252 FF27              clr R31
 0254 E80F              add R30,R24
 0256 F91F              adc R31,R25
 0258 2082              std z+0,R2
 025A                   .dbline 206
 025A CE01              movw R24,R28
 025C 8B5A              subi R24,171  ; offset = 85
 025E 9F4F              sbci R25,255
 0260 EA2D              mov R30,R10
 0262 FF27              clr R31
 0264 E80F              add R30,R24
 0266 F91F              adc R31,R25
 0268 2080              ldd R2,z+0
 026A CE01              movw R24,R28
 026C 8C5A              subi R24,172  ; offset = 84
 026E 9F4F              sbci R25,255
 0270 EA2D              mov R30,R10
 0272 FF27              clr R31
 0274 E80F              add R30,R24
 0276 F91F              adc R31,R25
 0278 2082              std z+0,R2
 027A                   .dbline 207
 027A           L57:
 027A                   .dbline 203
 027A A394              inc R10
 027C           L59:
 027C                   .dbline 203
 027C 8A2D              mov R24,R10
 027E 8335              cpi R24,83
 0280 F8F2              brlo L56
 0282                   .dbline 209
 0282           ;           { 
 0282           ;             buffer_h[n]=buffer_h[n+1];
 0282           ;             buffer_l[n]=buffer_l[n+1];
 0282           ;           } 
 0282           ;         
 0282           ;         LCD_set_XY(X,Y);
 0282 2E2D              mov R18,R14
 0284 FE01              movw R30,R28
 0286 EE54              subi R30,78  ; addi 178
 0288 FF4F              sbci R31,255
 028A 0081              ldd R16,z+0
 028C 0EDF              rcall _LCD_set_XY
 028E                   .dbline 210
 028E           ;         for (n=0; n<83; n++)
 028E AA24              clr R10
 0290 09C0              rjmp L65
 0292           L62:
 0292                   .dbline 211

⌨️ 快捷键说明

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