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

📄 lcd.lis

📁 已经上传的YF-320240-3.5寸彩屏(可由单片机控制)的测试程序。主CPU为MEGA128
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02B4 242D              mov R18,R4
 02B6 8301              movw R16,R6
 02B8 0F93              push R16
 02BA 1F93              push R17
 02BC 2F93              push R18
 02BE 2EDF              xcall _Dis_Ascii_Big
 02C0 4F90              pop R4
 02C2 7F90              pop R7
 02C4 6F90              pop R6
 02C6                   .dbline 140
 02C6           ;                                         x+=16;
 02C6 C301              movw R24,R6
 02C8 4096              adiw R24,16
 02CA 3C01              movw R6,R24
 02CC                   .dbline 141
 02CC           ;                                         i++;
 02CC 6395              inc R22
 02CE                   .dbline 142
 02CE           ;                                         if(x>319)
 02CE 8FE3              ldi R24,319
 02D0 91E0              ldi R25,1
 02D2 8615              cp R24,R6
 02D4 9705              cpc R25,R7
 02D6 08F0              brlo X2
 02D8 88C0              xjmp L43
 02DA           X2:
 02DA                   .dbline 143
 02DA           ;                                         {
 02DA                   .dbline 144
 02DA           ;                                             y+=24;
 02DA 842D              mov R24,R4
 02DC 885E              subi R24,232    ; addi 24
 02DE 482E              mov R4,R24
 02E0                   .dbline 145
 02E0           ;                                                 x=0;
 02E0 6624              clr R6
 02E2 7724              clr R7
 02E4                   .dbline 146
 02E4           ;                                         }                     
 02E4                   .dbline 147
 02E4           ;                         }
 02E4 82C0              xjmp L43
 02E6           L44:
 02E6                   .dbline 149
 02E6           ;                                 else
 02E6           ;                                 {
 02E6                   .dbline 150
 02E6           ;                       Dis_Ascii(x,y,ptr[i],front,back);
 02E6 2C2C              mov R2,R12
 02E8 3324              clr R3
 02EA 3D82              std y+5,R3
 02EC 2C82              std y+4,R2
 02EE EA82              std y+2,R14
 02F0 E62F              mov R30,R22
 02F2 FF27              clr R31
 02F4 0888              ldd R0,y+16
 02F6 1988              ldd R1,y+17
 02F8 E00D              add R30,R0
 02FA F11D              adc R31,R1
 02FC 2080              ldd R2,z+0
 02FE 2882              std y+0,R2
 0300 242D              mov R18,R4
 0302 8301              movw R16,R6
 0304 0F93              push R16
 0306 1F93              push R17
 0308 2F93              push R18
 030A CDDE              xcall _Dis_Ascii
 030C 4F90              pop R4
 030E 7F90              pop R7
 0310 6F90              pop R6
 0312                   .dbline 151
 0312           ;                       x += 8;
 0312 C301              movw R24,R6
 0314 0896              adiw R24,8
 0316 3C01              movw R6,R24
 0318                   .dbline 152
 0318           ;                       i++;
 0318 6395              inc R22
 031A                   .dbline 153
 031A           ;                       if(x>319)
 031A 8FE3              ldi R24,319
 031C 91E0              ldi R25,1
 031E 8615              cp R24,R6
 0320 9705              cpc R25,R7
 0322 08F0              brlo X3
 0324 62C0              xjmp L43
 0326           X3:
 0326                   .dbline 154
 0326           ;                       {
 0326                   .dbline 155
 0326           ;                           y += 16;
 0326 842D              mov R24,R4
 0328 805F              subi R24,240    ; addi 16
 032A 482E              mov R4,R24
 032C                   .dbline 156
 032C           ;                           x = 0;
 032C 6624              clr R6
 032E 7724              clr R7
 0330                   .dbline 157
 0330           ;                       }
 0330                   .dbline 158
 0330           ;                                 }
 0330                   .dbline 159
 0330           ;              }
 0330 5CC0              xjmp L43
 0332           L42:
 0332                   .dbline 161
 0332           ;              else  //此字符为汉字
 0332           ;              {
 0332                   .dbline 162
 0332           ;                   for(dat=0;dat<MAX_HZ;dat++)
 0332 AA24              clr R10
 0334 BB24              clr R11
 0336 2EC0              xjmp L53
 0338           L50:
 0338                   .dbline 163
 0338           ;                   {
 0338                   .dbline 164
 0338           ;                       if(Cdotlib[dat].Index[0] == (unsigned char)ptr[i])
 0338 02E2              ldi R16,34
 033A 10E0              ldi R17,0
 033C 9501              movw R18,R10
 033E 0E940000          xcall empy16s
 0342 F801              movw R30,R16
 0344 80E0              ldi R24,<_Cdotlib
 0346 90E0              ldi R25,>_Cdotlib
 0348 E80F              add R30,R24
 034A F91F              adc R31,R25
 034C E691              elpm R30,Z
 034E A62F              mov R26,R22
 0350 BB27              clr R27
 0352 0888              ldd R0,y+16
 0354 1988              ldd R1,y+17
 0356 A00D              add R26,R0
 0358 B11D              adc R27,R1
 035A 2C90              ld R2,x
 035C E215              cp R30,R2
 035E B9F4              brne L54
 0360                   .dbline 165
 0360           ;                       {
 0360                   .dbline 166
 0360           ;                          if(Cdotlib[dat].Index[1] == (unsigned char)ptr[i+1])
 0360 02E2              ldi R16,34
 0362 10E0              ldi R17,0
 0364 9501              movw R18,R10
 0366 0E940000          xcall empy16s
 036A F801              movw R30,R16
 036C 80E0              ldi R24,<_Cdotlib+1
 036E 90E0              ldi R25,>_Cdotlib+1
 0370 E80F              add R30,R24
 0372 F91F              adc R31,R25
 0374 E691              elpm R30,Z
 0376 A62F              mov R26,R22
 0378 BB27              clr R27
 037A 0888              ldd R0,y+16
 037C 1988              ldd R1,y+17
 037E A00D              add R26,R0
 0380 B11D              adc R27,R1
 0382 1196              adiw R26,1
 0384 2C90              ld R2,x
 0386 E215              cp R30,R2
 0388 11F4              brne L56
 038A                   .dbline 167
 038A           ;                          {
 038A                   .dbline 168
 038A           ;                              i+=2;
 038A 6E5F              subi R22,254    ; addi 2
 038C                   .dbline 169
 038C           ;                              break;
 038C 09C0              xjmp L52
 038E           L56:
 038E                   .dbline 171
 038E           ;                          }
 038E           ;                       }
 038E           L54:
 038E                   .dbline 172
 038E           L51:
 038E                   .dbline 162
 038E C501              movw R24,R10
 0390 0196              adiw R24,1
 0392 5C01              movw R10,R24
 0394           L53:
 0394                   .dbline 162
 0394 C501              movw R24,R10
 0396 8A3A              cpi R24,170
 0398 E0E0              ldi R30,0
 039A 9E07              cpc R25,R30
 039C 08F4              brsh X4
 039E CCCF              xjmp L50
 03A0           X4:
 03A0           L52:
 03A0                   .dbline 173
 03A0           ;                   }
 03A0           ;                   if(dat >= MAX_HZ)//若字库不存在该字则显示空白
 03A0 C501              movw R24,R10
 03A2 8A3A              cpi R24,170
 03A4 E0E0              ldi R30,0
 03A6 9E07              cpc R25,R30
 03A8 18F0              brlo L59
 03AA                   .dbline 174
 03AA           ;                   {
 03AA                   .dbline 175
 03AA           ;                       i += 2;
 03AA 6E5F              subi R22,254    ; addi 2
 03AC                   .dbline 176
 03AC           ;                       dat = 0;
 03AC AA24              clr R10
 03AE BB24              clr R11
 03B0                   .dbline 177
 03B0           ;                   }
 03B0           L59:
 03B0                   .dbline 178
 03B0           ;                   Dis_Chinese(x,y,dat,front,back);
 03B0 2C2C              mov R2,R12
 03B2 3324              clr R3
 03B4 3D82              std y+5,R3
 03B6 2C82              std y+4,R2
 03B8 EA82              std y+2,R14
 03BA B982              std y+1,R11
 03BC A882              std y+0,R10
 03BE 242D              mov R18,R4
 03C0 8301              movw R16,R6
 03C2 0F93              push R16
 03C4 1F93              push R17
 03C6 2F93              push R18
 03C8 F5DE              xcall _Dis_Chinese
 03CA 4F90              pop R4
 03CC 7F90              pop R7
 03CE 6F90              pop R6
 03D0                   .dbline 179
 03D0           ;                   x += 16;
 03D0 C301              movw R24,R6
 03D2 4096              adiw R24,16
 03D4 3C01              movw R6,R24
 03D6                   .dbline 180
 03D6           ;                   if(x>319)
 03D6 8FE3              ldi R24,319
 03D8 91E0              ldi R25,1
 03DA 8615              cp R24,R6
 03DC 9705              cpc R25,R7
 03DE 28F4              brsh L61
 03E0                   .dbline 181
 03E0           ;                   {
 03E0                   .dbline 182
 03E0           ;                       y += 16;
 03E0 842D              mov R24,R4
 03E2 805F              subi R24,240    ; addi 16
 03E4 482E              mov R4,R24
 03E6                   .dbline 183
 03E6           ;                       x = 0;
 03E6 6624              clr R6
 03E8 7724              clr R7
 03EA                   .dbline 184
 03EA           ;                   }
 03EA           L61:
 03EA                   .dbline 185
 03EA           ;              }
 03EA           L43:
 03EA                   .dbline 186
 03EA           L40:
 03EA                   .dbline 132
 03EA 6417              cp R22,R20
 03EC 08F4              brsh X5
 03EE 4ACF              xjmp L39
 03F0           X5:
 03F0                   .dbline -2
 03F0           L35:
 03F0 2696              adiw R28,6
 03F2 0E940000          xcall pop_gset5
 03F6                   .dbline 0 ; func end
 03F6 0895              ret
 03F8                   .dbsym r uLen 20 c
 03F8                   .dbsym r i 22 c
 03F8                   .dbsym r dat 10 i
 03F8                   .dbsym r back 12 c
 03F8                   .dbsym r front 14 c
 03F8                   .dbsym l font 18 c
 03F8                   .dbsym l ptr 16 pc
 03F8                   .dbsym r y 4 c
 03F8                   .dbsym r x 6 i
 03F8                   .dbend
 03F8                   .dbfunc e Dis_Asc_1624 _Dis_Asc_1624 fV
 03F8           ;              i -> R20
 03F8           ;           uLen -> R22
 03F8           ;            dat -> R14,R15
 03F8           ;              k -> R12
 03F8           ;              j -> R10
 03F8           ;           back -> R8
 03F8           ;          front -> R6
 03F8           ;            ptr -> y+14
 03F8           ;              y -> y+12
 03F8           ;              x -> y+10
                        .even
 03F8           _Dis_Asc_1624::
 03F8 0E940000          xcall push_arg4
 03FC 0E940000          xcall push_gset5
 0400 6888              ldd R6,y+16
 0402 8A88              ldd R8,y+18
 0404                   .dbline -1
 0404                   .dbline 198
 0404           ;         }
 0404           ; }
 0404           ; /* 日期:2005.12.1
 0404           ;    编写者:赫树开
 0404           ;    功能:显示一个16X24的ASCII字符串
 0404           ;    参数: x 为起点x坐标
 0404           ;            y  为起点y坐标
 0404           ;                  ptr 为字符串内容
 0404           ;                  front 是字符前景色
 0404           ;                  back  是字符串背景色  
 0404           ;                  */
 0404           ; void Dis_Asc_1624(unsigned int x,unsigned char y,unsigned char *ptr,unsigned char front,unsigned char back)
 0404           ; {
 0404                   .dbline 199
 0404           ;         unsigned char uLen,i=0;
 0404 4427              clr R20
 0406                   .dbline 202
 0406           ;               unsigned char j,k;
 0406           ;         unsigned int  dat;
 0406           ;         uLen=0;
 0406 6627              clr R22
 0408 01C0              xjmp L65
 040A           L64:
 040A                   .dbline 203
 040A                   .dbline 203
 040A 6395              inc R22
 040C                   .dbline 203
 040C           L65:
 040C                   .dbline 203
 040C           ;           while ( (unsigned char)ptr[uLen] >= 0x10 ){uLen++;};        //探测字串长度
 040C E62F              mov R30,R22
 040E FF27              clr R31
 0410 0E84              ldd R0,y+14
 0412 1F84              ldd R1,y+15
 0414 E00D              add R30,R0
 0416 F11D              adc R31,R1
 0418 8081              ldd R24,z+0
 041A 8031              cpi R24,16
 041C B0F7              brsh L64
 041E                   .dbline 203
 041E                   .dbline 205

⌨️ 快捷键说明

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