📄 serial_lcd.lis
字号:
00C6 ; ** row 起始列 row1 图片列数
00C6 ; ** *bmp:图片字型码指针
00C6 ; ** 输 出:
00C6 ; **
00C6 ; ** 全局变量: 无
00C6 ; ** 调用模块: wr_lcd();
00C6 ; ** 说明:
00C6 ; ** 注意:
00C6 ; ********************************************************************************************************/
00C6 ;
00C6 ; void Lcd_drawbmp(const unsigned char *bmp)
00C6 ; {
00C6 .dbline 152
00C6 ; unsigned char i,j;
00C6 ; Lcd_clrbmp();
00C6 67D0 xcall _Lcd_clrbmp
00C8 .dbline 153
00C8 ; wr_lcd(Lcd_Set_Function_Basic+2,1);
00C8 21E0 ldi R18,1
00CA 02E3 ldi R16,50
00CC A5DF xcall _wr_lcd
00CE .dbline 154
00CE ; wr_lcd(Lcd_Set_Function_Extend,1);
00CE 21E0 ldi R18,1
00D0 04E3 ldi R16,52
00D2 A2DF xcall _wr_lcd
00D4 .dbline 155
00D4 ; for(i=0;i<32;i++)
00D4 4427 clr R20
00D6 27C0 xjmp L39
00D8 L36:
00D8 .dbline 156
00D8 ; {
00D8 .dbline 157
00D8 ; for(j=0;j<8;j++)
00D8 6627 clr R22
00DA 22C0 xjmp L43
00DC L40:
00DC .dbline 158
00DC .dbline 159
00DC 21E0 ldi R18,1
00DE 02E3 ldi R16,50
00E0 9BDF xcall _wr_lcd
00E2 .dbline 160
00E2 21E0 ldi R18,1
00E4 06E3 ldi R16,54
00E6 98DF xcall _wr_lcd
00E8 .dbline 162
00E8 21E0 ldi R18,1
00EA 042F mov R16,R20
00EC 0058 subi R16,128 ; addi 128
00EE 94DF xcall _wr_lcd
00F0 .dbline 163
00F0 21E0 ldi R18,1
00F2 062F mov R16,R22
00F4 0058 subi R16,128 ; addi 128
00F6 90DF xcall _wr_lcd
00F8 .dbline 165
00F8 21E0 ldi R18,1
00FA 02E3 ldi R16,50
00FC 8DDF xcall _wr_lcd
00FE .dbline 166
00FE 2227 clr R18
0100 1501 movw R2,R10
0102 C101 movw R24,R2
0104 0196 adiw R24,1
0106 5C01 movw R10,R24
0108 F101 movw R30,R2
010A 0491 lpm R16,Z
010C 85DF xcall _wr_lcd
010E .dbline 167
010E 2227 clr R18
0110 1501 movw R2,R10
0112 C101 movw R24,R2
0114 0196 adiw R24,1
0116 5C01 movw R10,R24
0118 F101 movw R30,R2
011A 0491 lpm R16,Z
011C 7DDF xcall _wr_lcd
011E .dbline 168
011E L41:
011E .dbline 157
011E 6395 inc R22
0120 L43:
0120 .dbline 157
0120 6830 cpi R22,8
0122 E0F2 brlo L40
0124 .dbline 169
0124 L37:
0124 .dbline 155
0124 4395 inc R20
0126 L39:
0126 .dbline 155
0126 4032 cpi R20,32
0128 08F4 brsh X1
012A D6CF xjmp L36
012C X1:
012C .dbline 170
012C ; {
012C ; wr_lcd(Lcd_Set_Function_Basic+2,1);
012C ; wr_lcd(Lcd_Set_Function_Extend+2,1);
012C ;
012C ; wr_lcd(0x80+i,1);
012C ; wr_lcd(0x80+j,1);
012C ;
012C ; wr_lcd(Lcd_Set_Function_Basic+2,1);
012C ; wr_lcd(*bmp++,0);
012C ; wr_lcd(*bmp++,0);
012C ; }
012C ; }
012C ; for(i=0;i<32;i++)
012C 4427 clr R20
012E 27C0 xjmp L47
0130 L44:
0130 .dbline 171
0130 ; {
0130 .dbline 172
0130 ; for(j=8;j<16;j++)
0130 68E0 ldi R22,8
0132 22C0 xjmp L51
0134 L48:
0134 .dbline 173
0134 .dbline 174
0134 21E0 ldi R18,1
0136 02E3 ldi R16,50
0138 6FDF xcall _wr_lcd
013A .dbline 175
013A 21E0 ldi R18,1
013C 06E3 ldi R16,54
013E 6CDF xcall _wr_lcd
0140 .dbline 177
0140 21E0 ldi R18,1
0142 042F mov R16,R20
0144 0058 subi R16,128 ; addi 128
0146 68DF xcall _wr_lcd
0148 .dbline 178
0148 21E0 ldi R18,1
014A 062F mov R16,R22
014C 0058 subi R16,128 ; addi 128
014E 64DF xcall _wr_lcd
0150 .dbline 180
0150 21E0 ldi R18,1
0152 02E3 ldi R16,50
0154 61DF xcall _wr_lcd
0156 .dbline 181
0156 2227 clr R18
0158 1501 movw R2,R10
015A C101 movw R24,R2
015C 0196 adiw R24,1
015E 5C01 movw R10,R24
0160 F101 movw R30,R2
0162 0491 lpm R16,Z
0164 59DF xcall _wr_lcd
0166 .dbline 182
0166 2227 clr R18
0168 1501 movw R2,R10
016A C101 movw R24,R2
016C 0196 adiw R24,1
016E 5C01 movw R10,R24
0170 F101 movw R30,R2
0172 0491 lpm R16,Z
0174 51DF xcall _wr_lcd
0176 .dbline 183
0176 L49:
0176 .dbline 172
0176 6395 inc R22
0178 L51:
0178 .dbline 172
0178 6031 cpi R22,16
017A E0F2 brlo L48
017C .dbline 184
017C L45:
017C .dbline 170
017C 4395 inc R20
017E L47:
017E .dbline 170
017E 4032 cpi R20,32
0180 08F4 brsh X2
0182 D6CF xjmp L44
0184 X2:
0184 .dbline 185
0184 ; {
0184 ; wr_lcd(Lcd_Set_Function_Basic+2,1);
0184 ; wr_lcd(Lcd_Set_Function_Extend+2,1);
0184 ;
0184 ; wr_lcd(0x80+i,1);
0184 ; wr_lcd(0x80+j,1);
0184 ;
0184 ; wr_lcd(Lcd_Set_Function_Basic+2,1);
0184 ; wr_lcd(*bmp++,0);
0184 ; wr_lcd(*bmp++,0);
0184 ; }
0184 ; }
0184 ; wr_lcd(0x36,1);
0184 21E0 ldi R18,1
0186 06E3 ldi R16,54
0188 47DF xcall _wr_lcd
018A .dbline 186
018A ; wr_lcd(Lcd_Set_Function_Basic,1); //30H--基本指令操作
018A 21E0 ldi R18,1
018C 00E3 ldi R16,48
018E 44DF xcall _wr_lcd
0190 .dbline -2
0190 L35:
0190 0E940000 xcall pop_gset3
0194 .dbline 0 ; func end
0194 0895 ret
0196 .dbsym r i 20 c
0196 .dbsym r j 22 c
0196 .dbsym r bmp 10 pkc
0196 .dbend
0196 .dbfunc e Lcd_clrbmp _Lcd_clrbmp fV
0196 ; i -> R20
0196 ; j -> R22
.even
0196 _Lcd_clrbmp::
0196 0E940000 xcall push_gset2
019A .dbline -1
019A .dbline 202
019A ; }
019A ;
019A ;
019A ;
019A ; /*********************************************************************************************************
019A ; ** 函数名称: void Lcd_clrbmp(void)
019A ; ** 功能描述: 清除bmp图片
019A ; ** 输 入:
019A ; ** 输 出:
019A ; ** 全局变量: 无
019A ; ** 调用模块: Lcd_scomm() Lcd_sdata()
019A ; ** 说明:
019A ; ** 注意:
019A ; ********************************************************************************************************/
019A ; void Lcd_clrbmp(void)
019A ; {
019A .dbline 205
019A ; unsigned char i,j;
019A ; // wr_lcd(Lcd_Clear,1);
019A ; wr_lcd(Lcd_Set_Function_Basic+2,1);
019A 21E0 ldi R18,1
019C 02E3 ldi R16,50
019E 3CDF xcall _wr_lcd
01A0 .dbline 206
01A0 ; wr_lcd(Lcd_Set_Function_Extend,1);
01A0 21E0 ldi R18,1
01A2 04E3 ldi R16,52
01A4 39DF xcall _wr_lcd
01A6 .dbline 207
01A6 ; for(i=0;i<32;i++)
01A6 4427 clr R20
01A8 1DC0 xjmp L56
01AA L53:
01AA .dbline 208
01AA ; {
01AA .dbline 209
01AA ; for(j=0;j<16;j++)
01AA 6627 clr R22
01AC 18C0 xjmp L60
01AE L57:
01AE .dbline 210
01AE .dbline 211
01AE 21E0 ldi R18,1
01B0 02E3 ldi R16,50
01B2 32DF xcall _wr_lcd
01B4 .dbline 212
01B4 21E0 ldi R18,1
01B6 06E3 ldi R16,54
01B8 2FDF xcall _wr_lcd
01BA .dbline 214
01BA 21E0 ldi R18,1
01BC 042F mov R16,R20
01BE 0058 subi R16,128 ; addi 128
01C0 2BDF xcall _wr_lcd
01C2 .dbline 215
01C2 21E0 ldi R18,1
01C4 062F mov R16,R22
01C6 0058 subi R16,128 ; addi 128
01C8 27DF xcall _wr_lcd
01CA .dbline 217
01CA 21E0 ldi R18,1
01CC 02E3 ldi R16,50
01CE 24DF xcall _wr_lcd
01D0 .dbline 218
01D0 2227 clr R18
01D2 0027 clr R16
01D4 21DF xcall _wr_lcd
01D6 .dbline 219
01D6 2227 clr R18
01D8 0027 clr R16
01DA 1EDF xcall _wr_lcd
01DC .dbline 220
01DC L58:
01DC .dbline 209
01DC 6395 inc R22
01DE L60:
01DE .dbline 209
01DE 6031 cpi R22,16
01E0 30F3 brlo L57
01E2 .dbline 221
01E2 L54:
01E2 .dbline 207
01E2 4395 inc R20
01E4 L56:
01E4 .dbline 207
01E4 4032 cpi R20,32
01E6 08F3 brlo L53
01E8 .dbline 222
01E8 ; {
01E8 ; wr_lcd(Lcd_Set_Function_Basic+2,1);
01E8 ; wr_lcd(Lcd_Set_Function_Extend+2,1);
01E8 ;
01E8 ; wr_lcd(0x80+i,1);
01E8 ; wr_lcd(0x80+j,1);
01E8 ;
01E8 ; wr_lcd(Lcd_Set_Function_Basic+2,1);
01E8 ; wr_lcd(0x00,0);
01E8 ; wr_lcd(0x00,0);
01E8 ; }
01E8 ; }
01E8 ; wr_lcd(0x36,1);
01E8 21E0 ldi R18,1
01EA 06E3 ldi R16,54
01EC 15DF xcall _wr_lcd
01EE .dbline 223
01EE ; wr_lcd(Lcd_Set_Function_Basic,1); //30H--基本指令操作
01EE 21E0 ldi R18,1
01F0 00E3 ldi R16,48
01F2 12DF xcall _wr_lcd
01F4 .dbline -2
01F4 L52:
01F4 0E940000 xcall pop_gset2
01F8 .dbline 0 ; func end
01F8 0895 ret
01FA .dbsym r i 20 c
01FA .dbsym r j 22 c
01FA .dbend
01FA .dbfunc e Lcd_lineclr _Lcd_lineclr fV
01FA ; i -> R20
01FA ; row -> R20
.even
01FA _Lcd_lineclr::
01FA 0E940000 xcall push_gset1
01FE 402F mov R20,R16
0200 .dbline -1
0200 .dbline 238
0200 ; }
0200 ;
0200 ;
0200 ; /*********************************************************************************************************
0200 ; ** 函数名称: Lcd_lineclr()
0200 ; ** 功能描述: 清除一行的显示
0200 ; ** 输 入: unsigned char row 要清除显示的行
0200 ; ** 输 出:
0200 ; ** 全局变量: 无
0200 ; ** 调用模块: 无
0200 ; ** 说明:
0200 ; ** 注意:
0200 ; *******************************************************************************************************/
0200 ; void Lcd_lineclr(unsigned char row)
0200 ; {
0200 .dbline 240
0200 ; unsigned char i;
0200 ; switch(row)
0200 5527 clr R21
0202 4130 cpi R20,1
0204 E0E0 ldi R30,0
0206 5E07 cpc R21,R30
0208 69F0 breq L65
020A 4230 cpi R20,2
020C E0E0 ldi R30,0
020E 5E07 cpc R21,R30
0210 A9F0 breq L70
0212 4330 cpi R20,3
0214 E0E0 ldi R30,0
0216 5E07 cpc R21,R30
0218 E9F0 breq L75
021A 4430 cpi R20,4
021C E0E0 ldi R30,0
021E 5E07 cpc R21,R30
0220 29F1 breq L80
0222 2FC0 xjmp L63
0224 X3:
0224 .dbline 241
0224 ; {
0224 L65:
0224 .dbline 243
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -