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

📄 3310_5110lcd.lis

📁 5110综合演示 变成结构 流程 头文件
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00F6           ;     p=s;
 00F6 4E89              ldd R20,y+22
 00F8 5F89              ldd R21,y+23
 00FA                   .dbline 137
 00FA           ;     LCD_set_XY(X,Y);                             //设置初始位置
 00FA 2C85              ldd R18,y+12
 00FC 0A85              ldd R16,y+10
 00FE B6DF              xcall _LCD_set_XY
 0100                   .dbline 139
 0100           ;     
 0100           ;     for (i=0;i<num;)
 0100 6627              clr R22
 0102 30C0              xjmp L21
 0104           L18:
 0104                   .dbline 140
 0104           ;       {
 0104                   .dbline 141
 0104           ;               for (n=0; n<ch_with*2; n++)              //写一个汉字
 0104 AA24              clr R10
 0106 21C0              xjmp L25
 0108           L22:
 0108                   .dbline 142
 0108           ;                 { 
 0108                   .dbline 143
 0108           ;                   if (n==ch_with)                      //写汉字的下半部分
 0108 0E84              ldd R0,y+14
 010A A014              cp R10,R0
 010C 79F4              brne L26
 010E                   .dbline 144
 010E           ;                     {
 010E                   .dbline 145
 010E           ;                       if (i==0) LCD_set_XY(X,Y+1);
 010E 6623              tst R22
 0110 29F4              brne L28
 0112                   .dbline 145
 0112 2C85              ldd R18,y+12
 0114 2F5F              subi R18,255    ; addi 1
 0116 0A85              ldd R16,y+10
 0118 A9DF              xcall _LCD_set_XY
 011A 08C0              xjmp L29
 011C           L28:
 011C                   .dbline 147
 011C           ;                       else
 011C           ;                          LCD_set_XY((X+(ch_with+row)*i),Y+1);
 011C 2C85              ldd R18,y+12
 011E 2F5F              subi R18,255    ; addi 1
 0120 2E84              ldd R2,y+14
 0122 2C0C              add R2,R12
 0124 269E              mul R2,R22
 0126 0A85              ldd R16,y+10
 0128 000D              add R16,R0
 012A A0DF              xcall _LCD_set_XY
 012C           L29:
 012C                   .dbline 148
 012C           ;               }
 012C           L26:
 012C                   .dbline 149
 012C 21E0              ldi R18,1
 012E 2E2C              mov R2,R14
 0130 260E              add R2,R22
 0132 88E1              ldi R24,24
 0134 829D              mul R24,R2
 0136 1001              movw R2,R0
 0138 240E              add R2,R20
 013A 351E              adc R3,R21
 013C EA2D              mov R30,R10
 013E FF27              clr R31
 0140 E20D              add R30,R2
 0142 F31D              adc R31,R3
 0144 0081              ldd R16,z+0
 0146 15D1              xcall _LCD_write_byte
 0148                   .dbline 150
 0148           L23:
 0148                   .dbline 141
 0148 A394              inc R10
 014A           L25:
 014A                   .dbline 141
 014A 82E0              ldi R24,2
 014C 0E84              ldd R0,y+14
 014E 809D              mul R24,R0
 0150 A014              cp R10,R0
 0152 D0F2              brlo L22
 0154                   .dbline 151
 0154 6395              inc R22
 0156                   .dbline 152
 0156 2C85              ldd R18,y+12
 0158 2E84              ldd R2,y+14
 015A 2C0C              add R2,R12
 015C 269E              mul R2,R22
 015E 0A85              ldd R16,y+10
 0160 000D              add R16,R0
 0162 84DF              xcall _LCD_set_XY
 0164                   .dbline 153
 0164           L19:
 0164                   .dbline 139
 0164           L21:
 0164                   .dbline 139
 0164 0888              ldd R0,y+16
 0166 6015              cp R22,R0
 0168 68F2              brlo L18
 016A                   .dbline -2
 016A           L17:
 016A 0E940000          xcall pop_gset5
 016E 2496              adiw R28,4
 0170                   .dbline 0 ; func end
 0170 0895              ret
 0172                   .dbsym r p 20 pA[24:24]c
 0172                   .dbsym r i 22 c
 0172                   .dbsym r n 10 c
 0172                   .dbsym l s 22 pA[24:24]c
 0172                   .dbsym r row 12 c
 0172                   .dbsym r line 14 c
 0172                   .dbsym l num 16 c
 0172                   .dbsym l ch_with 14 c
 0172                   .dbsym l Y 12 c
 0172                   .dbsym l X 10 c
 0172                   .dbend
                        .area lit(rom, con, rel)
 0228           L31:
 0228 00                .byte 0
 0229 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
 0265 00000000000000000000      .word 0,0,0,0,0
 026F 00000000000000000000      .word 0,0,0,0,0
 0279 000000            .byte 0,0,0
 027C           L32:
 027C 00                .byte 0
 027D 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
 02B9 00000000000000000000      .word 0,0,0,0,0
 02C3 00000000000000000000      .word 0,0,0,0,0
 02CD 000000            .byte 0,0,0
                        .area text(rom, con, rel)
 0172                   .dbfile D:\avrvi\democode\5110_综合演示\source\lib\3310_5110LCD.c
 0172                   .dbfunc e LCD_move_chinese_string _LCD_move_chinese_string fV
 0172           ;              p -> R20,R21
 0172           ;              i -> R22
 0172           ;              j -> R10
 0172           ;       buffer_l -> y+84
 0172           ;       buffer_h -> y+0
 0172           ;              n -> R12
 0172           ;              s -> y+184
 0172           ;              T -> R14
 0172           ;              Y -> y+180
 0172           ;              X -> y+178
                        .even
 0172           _LCD_move_chinese_string::
 0172 0E940000          xcall push_arg4
 0176 0E940000          xcall push_gset5
 017A EF97              sbiw R28,63
 017C EF97              sbiw R28,63
 017E AA97              sbiw R28,42  ; offset = 168
 0180 FE01              movw R30,R28
 0182 EA54              subi R30,74  ; addi 182
 0184 FF4F              sbci R31,255
 0186 E080              ldd R14,z+0
 0188                   .dbline -1
 0188                   .dbline 167
 0188           ;                   LCD_write_byte(*(*(p+(line+i))+n),1);
 0188           ;                 }
 0188           ;               i++;
 0188           ;               LCD_set_XY((X+(ch_with+row)*i),Y);
 0188           ;       }
 0188           ;   }
 0188           ; /*************************************************************************
 0188           ; ** 函数名称: LCD_move_chinese_string (unsigned char X, unsigned char Y, unsigned char T,unsigned char (*s)[24])
 0188           ; ** 功能描述: 汉字移动
 0188           ; ** 输 入: X、Y  :显示汉字的起始X、Y坐标;
 0188           ;            T     :移动速度;
 0188           ; ** 输出        : 
 0188           ; ** 全局变量: 无
 0188           ; ** 调用模块: 
 0188           ; ** 说明:
 0188           ; ** 注意:
 0188           ; **************************************************************************/
 0188           ; void LCD_move_chinese_string (unsigned char X, unsigned char Y, unsigned char T,unsigned char (*s)[24])
 0188           ;   {
 0188                   .dbline 168
 0188           ;     unsigned char i,n,j=0,(*p)[24];
 0188 AA24              clr R10
 018A                   .dbline 169
 018A           ;     unsigned char buffer_h[84]={0};
 018A 80E0              ldi R24,<L31
 018C 90E0              ldi R25,>L31
 018E FE01              movw R30,R28
 0190 04E5              ldi R16,84
 0192 10E0              ldi R17,0
 0194 FA93              st -y,R31
 0196 EA93              st -y,R30
 0198 9A93              st -y,R25
 019A 8A93              st -y,R24
 019C 0E940000          xcall asgncblk
 01A0                   .dbline 170
 01A0           ;     unsigned char buffer_l[84]={0};
 01A0 80E0              ldi R24,<L32
 01A2 90E0              ldi R25,>L32
 01A4 FE01              movw R30,R28
 01A6 EC5A              subi R30,172  ; offset = 84
 01A8 FF4F              sbci R31,255
 01AA 04E5              ldi R16,84
 01AC 10E0              ldi R17,0
 01AE FA93              st -y,R31
 01B0 EA93              st -y,R30
 01B2 9A93              st -y,R25
 01B4 8A93              st -y,R24
 01B6 0E940000          xcall asgncblk
 01BA                   .dbline 171
 01BA           ;     p=s;
 01BA FE01              movw R30,R28
 01BC E854              subi R30,72  ; addi 184
 01BE FF4F              sbci R31,255
 01C0 4081              ldd R20,z+0
 01C2 5181              ldd R21,z+1
 01C4                   .dbline 172
 01C4           ;     for (i=0; i<156; i++)
 01C4 6627              clr R22
 01C6 83C0              xjmp L36
 01C8           L33:
 01C8                   .dbline 173
 01C8           ;       {
 01C8                   .dbline 174
 01C8           ;         buffer_h[83] = *(*(p+(i/12))+j);
 01C8 1CE0              ldi R17,12
 01CA 062F              mov R16,R22
 01CC 0E940000          xcall div8u
 01D0 88E1              ldi R24,24
 01D2 809F              mul R24,R16
 01D4 1001              movw R2,R0
 01D6 240E              add R2,R20
 01D8 351E              adc R3,R21
 01DA EA2D              mov R30,R10
 01DC FF27              clr R31
 01DE E20D              add R30,R2
 01E0 F31D              adc R31,R3
 01E2 2080              ldd R2,z+0
 01E4 FE01              movw R30,R28
 01E6 ED5A              subi R30,173  ; addi 83
 01E8 FF4F              sbci R31,255
 01EA 2082              std z+0,R2
 01EC                   .dbline 175
 01EC           ;         buffer_l[83] = *(*(p+(i/12))+(j+12));
 01EC 1CE0              ldi R17,12
 01EE 062F              mov R16,R22
 01F0 0E940000          xcall div8u
 01F4 88E1              ldi R24,24
 01F6 809F              mul R24,R16
 01F8 1001              movw R2,R0
 01FA 240E              add R2,R20
 01FC 351E              adc R3,R21
 01FE EA2D              mov R30,R10
 0200 FF27              clr R31
 0202 3C96              adiw R30,12
 0204 E20D              add R30,R2
 0206 F31D              adc R31,R3
 0208 2080              ldd R2,z+0
 020A FE01              movw R30,R28
 020C E955              subi R30,89  ; addi 167
 020E FF4F              sbci R31,255
 0210 2082              std z+0,R2
 0212                   .dbline 176
 0212           ;               j++;
 0212 A394              inc R10
 0214                   .dbline 177
 0214           ;         if (j==12) j=0;
 0214 8A2D              mov R24,R10
 0216 8C30              cpi R24,12
 0218 09F4              brne L39
 021A                   .dbline 177
 021A AA24              clr R10
 021C           L39:
 021C                   .dbline 179
 021C           ;         
 021C           ;         for (n=0; n<83; n++)
 021C CC24              clr R12
 021E 1EC0              xjmp L44
 0220           L41:
 0220                   .dbline 180
 0220                   .dbline 181
 0220 CE01              movw R24,R28
 0222 0196              adiw R24,1
 0224 EC2D              mov R30,R12
 0226 FF27              clr R31
 0228 E80F              add R30,R24
 022A F91F              adc R31,R25
 022C 2080              ldd R2,z+0
 022E CE01              movw R24,R28
 0230 EC2D              mov R30,R12
 0232 FF27              clr R31
 0234 E80F              add R30,R24
 0236 F91F              adc R31,R25
 0238 2082              std z+0,R2
 023A                   .dbline 182
 023A CE01              movw R24,R28
 023C 8B5A              subi R24,171  ; offset = 85
 023E 9F4F              sbci R25,255
 0240 EC2D              mov R30,R12
 0242 FF27              clr R31
 0244 E80F              add R30,R24
 0246 F91F              adc R31,R25
 0248 2080              ldd R2,z+0
 024A CE01              movw R24,R28
 024C 8C5A              subi R24,172  ; offset = 84
 024E 9F4F              sbci R25,255
 0250 EC2D              mov R30,R12
 0252 FF27              clr R31
 0254 E80F              add R30,R24
 0256 F91F              adc R31,R25
 0258 2082              std z+0,R2
 025A                   .dbline 183
 025A           L42:
 025A                   .dbline 179
 025A C394              inc R12
 025C           L44:
 025C                   .dbline 179
 025C 8C2D              mov R24,R12
 025E 8335              cpi R24,83
 0260 F8F2              brlo L41
 0262                   .dbline 185
 0262           ;           { 
 0262           ;             buffer_h[n]=buffer_h[n+1];
 0262           ;             buffer_l[n]=buffer_l[n+1];
 0262           ;           } 
 0262           ;         
 0262           ;         LCD_set_XY(X,Y);
 0262 FE01              movw R30,R28
 0264 EC54              subi R30,76  ; addi 180

⌨️ 快捷键说明

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