📄 serial_lcd.lis
字号:
0224 ; case 1:
0224 ; {
0224 .dbline 244
0224 ; wr_lcd(Lcd_Set_Ddram,1);
0224 21E0 ldi R18,1
0226 00E8 ldi R16,128
0228 F7DE xcall _wr_lcd
022A .dbline 245
022A 4427 clr R20
022C 04C0 xjmp L69
022E L66:
022E .dbline 245
022E 2227 clr R18
0230 00E2 ldi R16,32
0232 F2DE xcall _wr_lcd
0234 L67:
0234 .dbline 245
0234 4395 inc R20
0236 L69:
0236 .dbline 245
0236 ; for(i=0;i<16;i++) wr_lcd(' ',0);
0236 4031 cpi R20,16
0238 D0F3 brlo L66
023A .dbline 246
023A ; break;
023A 23C0 xjmp L63
023C L70:
023C .dbline 249
023C ; }
023C ; case 2:
023C ; {
023C .dbline 250
023C ; wr_lcd(Lcd_Set_Ddram+0x10,1);
023C 21E0 ldi R18,1
023E 00E9 ldi R16,144
0240 EBDE xcall _wr_lcd
0242 .dbline 251
0242 4427 clr R20
0244 04C0 xjmp L74
0246 L71:
0246 .dbline 251
0246 2227 clr R18
0248 00E2 ldi R16,32
024A E6DE xcall _wr_lcd
024C L72:
024C .dbline 251
024C 4395 inc R20
024E L74:
024E .dbline 251
024E ; for(i=0;i<16;i++) wr_lcd(' ',0);
024E 4031 cpi R20,16
0250 D0F3 brlo L71
0252 .dbline 252
0252 ; break;
0252 17C0 xjmp L63
0254 L75:
0254 .dbline 255
0254 ; }
0254 ; case 3:
0254 ; {
0254 .dbline 256
0254 ; wr_lcd(Lcd_Set_Ddram+0x08,1);
0254 21E0 ldi R18,1
0256 08E8 ldi R16,136
0258 DFDE xcall _wr_lcd
025A .dbline 257
025A 4427 clr R20
025C 04C0 xjmp L79
025E L76:
025E .dbline 257
025E 2227 clr R18
0260 00E2 ldi R16,32
0262 DADE xcall _wr_lcd
0264 L77:
0264 .dbline 257
0264 4395 inc R20
0266 L79:
0266 .dbline 257
0266 ; for(i=0;i<16;i++) wr_lcd(' ',0);
0266 4031 cpi R20,16
0268 D0F3 brlo L76
026A .dbline 258
026A ; break;
026A 0BC0 xjmp L63
026C L80:
026C .dbline 261
026C ; }
026C ; case 4:
026C ; {
026C .dbline 262
026C ; wr_lcd(Lcd_Set_Ddram+0x18,1);
026C 21E0 ldi R18,1
026E 08E9 ldi R16,152
0270 D3DE xcall _wr_lcd
0272 .dbline 263
0272 4427 clr R20
0274 04C0 xjmp L84
0276 L81:
0276 .dbline 263
0276 2227 clr R18
0278 00E2 ldi R16,32
027A CEDE xcall _wr_lcd
027C L82:
027C .dbline 263
027C 4395 inc R20
027E L84:
027E .dbline 263
027E 4031 cpi R20,16
0280 D0F3 brlo L81
0282 .dbline 264
0282 .dbline 267
0282 L63:
0282 .dbline -2
0282 L61:
0282 0E940000 xcall pop_gset1
0286 .dbline 0 ; func end
0286 0895 ret
0288 .dbsym r i 20 c
0288 .dbsym r row 20 c
0288 .dbend
0288 .dbfunc e Lcd_linedisp _Lcd_linedisp fV
0288 ; i -> R22
0288 ; row -> R22
0288 ; p -> R20,R21
.even
0288 _Lcd_linedisp::
0288 0E940000 xcall push_gset2
028C 622F mov R22,R18
028E A801 movw R20,R16
0290 .dbline -1
0290 .dbline 284
0290 ; for(i=0;i<16;i++) wr_lcd(' ',0);
0290 ; break;
0290 ; }
0290 ;
0290 ; default: break;
0290 ; }
0290 ; }
0290 ;
0290 ;
0290 ; /*********************************************************************************************************
0290 ; ** 函数名称: void Lcd_linedisp(unsigned char *p,unsigned char row)
0290 ; ** 功能描述: 在一行中显示
0290 ; ** 输 入: unsigned char row 要清除显示的行
0290 ; ** 输 出:
0290 ; ** 全局变量: 无
0290 ; ** 调用模块: 无
0290 ; ** 说明:
0290 ; ** 注意:
0290 ; *******************************************************************************************************/
0290 ;
0290 ; void Lcd_linedisp(unsigned char *p,unsigned char row)
0290 ; {
0290 .dbline 286
0290 ; unsigned char i;
0290 ; switch(row)
0290 7727 clr R23
0292 6130 cpi R22,1
0294 E0E0 ldi R30,0
0296 7E07 cpc R23,R30
0298 71F0 breq L89
029A 6230 cpi R22,2
029C E0E0 ldi R30,0
029E 7E07 cpc R23,R30
02A0 E1F0 breq L94
02A2 6330 cpi R22,3
02A4 E0E0 ldi R30,0
02A6 7E07 cpc R23,R30
02A8 51F1 breq L99
02AA 6430 cpi R22,4
02AC E0E0 ldi R30,0
02AE 7E07 cpc R23,R30
02B0 09F4 brne X5
02B2 37C0 xjmp L104
02B4 X5:
02B4 47C0 xjmp L86
02B6 X4:
02B6 .dbline 287
02B6 ; {
02B6 L89:
02B6 .dbline 289
02B6 ; case 1:
02B6 ; {
02B6 .dbline 290
02B6 ; Lcd_lineclr(1);
02B6 01E0 ldi R16,1
02B8 A0DF xcall _Lcd_lineclr
02BA .dbline 291
02BA ; wr_lcd(Lcd_Set_Ddram,1);
02BA 21E0 ldi R18,1
02BC 00E8 ldi R16,128
02BE ACDE xcall _wr_lcd
02C0 .dbline 292
02C0 6627 clr R22
02C2 08C0 xjmp L93
02C4 L90:
02C4 .dbline 292
02C4 2227 clr R18
02C6 E62F mov R30,R22
02C8 FF27 clr R31
02CA E40F add R30,R20
02CC F51F adc R31,R21
02CE 0081 ldd R16,z+0
02D0 A3DE xcall _wr_lcd
02D2 L91:
02D2 .dbline 292
02D2 6395 inc R22
02D4 L93:
02D4 .dbline 292
02D4 ; for(i=0;i<16;i++) wr_lcd(p[i],0);
02D4 6031 cpi R22,16
02D6 B0F3 brlo L90
02D8 .dbline 293
02D8 ; break;
02D8 35C0 xjmp L87
02DA L94:
02DA .dbline 296
02DA ; }
02DA ; case 2:
02DA ; {
02DA .dbline 297
02DA ; Lcd_lineclr(2);
02DA 02E0 ldi R16,2
02DC 8EDF xcall _Lcd_lineclr
02DE .dbline 298
02DE ; wr_lcd(Lcd_Set_Ddram+0x10,1);
02DE 21E0 ldi R18,1
02E0 00E9 ldi R16,144
02E2 9ADE xcall _wr_lcd
02E4 .dbline 299
02E4 6627 clr R22
02E6 08C0 xjmp L98
02E8 L95:
02E8 .dbline 299
02E8 2227 clr R18
02EA E62F mov R30,R22
02EC FF27 clr R31
02EE E40F add R30,R20
02F0 F51F adc R31,R21
02F2 0081 ldd R16,z+0
02F4 91DE xcall _wr_lcd
02F6 L96:
02F6 .dbline 299
02F6 6395 inc R22
02F8 L98:
02F8 .dbline 299
02F8 ; for(i=0;i<16;i++) wr_lcd(p[i],0);
02F8 6031 cpi R22,16
02FA B0F3 brlo L95
02FC .dbline 300
02FC ; break;
02FC 23C0 xjmp L87
02FE L99:
02FE .dbline 303
02FE ; }
02FE ; case 3:
02FE ; {
02FE .dbline 304
02FE ; Lcd_lineclr(3);
02FE 03E0 ldi R16,3
0300 7CDF xcall _Lcd_lineclr
0302 .dbline 305
0302 ; wr_lcd(Lcd_Set_Ddram+0x08,1);
0302 21E0 ldi R18,1
0304 08E8 ldi R16,136
0306 88DE xcall _wr_lcd
0308 .dbline 306
0308 6627 clr R22
030A 08C0 xjmp L103
030C L100:
030C .dbline 306
030C 2227 clr R18
030E E62F mov R30,R22
0310 FF27 clr R31
0312 E40F add R30,R20
0314 F51F adc R31,R21
0316 0081 ldd R16,z+0
0318 7FDE xcall _wr_lcd
031A L101:
031A .dbline 306
031A 6395 inc R22
031C L103:
031C .dbline 306
031C ; for(i=0;i<16;i++) wr_lcd(p[i],0);
031C 6031 cpi R22,16
031E B0F3 brlo L100
0320 .dbline 307
0320 ; break;
0320 11C0 xjmp L87
0322 L104:
0322 .dbline 310
0322 ; }
0322 ; case 4:
0322 ; {
0322 .dbline 311
0322 ; Lcd_lineclr(4);
0322 04E0 ldi R16,4
0324 6ADF xcall _Lcd_lineclr
0326 .dbline 312
0326 ; wr_lcd(Lcd_Set_Ddram+0x18,1);
0326 21E0 ldi R18,1
0328 08E9 ldi R16,152
032A 76DE xcall _wr_lcd
032C .dbline 313
032C 6627 clr R22
032E 08C0 xjmp L108
0330 L105:
0330 .dbline 313
0330 2227 clr R18
0332 E62F mov R30,R22
0334 FF27 clr R31
0336 E40F add R30,R20
0338 F51F adc R31,R21
033A 0081 ldd R16,z+0
033C 6DDE xcall _wr_lcd
033E L106:
033E .dbline 313
033E 6395 inc R22
0340 L108:
0340 .dbline 313
0340 ; for(i=0;i<16;i++) wr_lcd(p[i],0);
0340 6031 cpi R22,16
0342 B0F3 brlo L105
0344 .dbline 314
0344 ; break;
0344 L86:
0344 L87:
0344 .dbline -2
0344 L85:
0344 0E940000 xcall pop_gset2
0348 .dbline 0 ; func end
0348 0895 ret
034A .dbsym r i 22 c
034A .dbsym r row 22 c
034A .dbsym r p 20 pc
034A .dbend
034A .dbfunc e Lcd_backwhite _Lcd_backwhite fV
034A ; line -> R20
.even
034A _Lcd_backwhite::
034A 0E940000 xcall push_gset1
034E 402F mov R20,R16
0350 .dbline -1
0350 .dbline 331
0350 ; }
0350 ; }
0350 ; }
0350 ;
0350 ;
0350 ; /*********************************************************************************************************
0350 ; ** 函数名称: void Lcd_backwhite(unsigned char line)
0350 ; ** 功能描述: 反白显示
0350 ; ** 输 入: unsigned char row 要反白显示的行 row=0,1行3行反白显示 row=1,二行四行反白显示
0350 ; ** 输 出:
0350 ; ** 全局变量: 无
0350 ; ** 调用模块: 无
0350 ; ** 说明:
0350 ; ** 注意:
0350 ; *******************************************************************************************************/
0350 ; void Lcd_backwhite(unsigned char line)
0350 ; {
0350 .dbline 332
0350 ; wr_lcd(Lcd_Set_Function_Extend,1);
0350 21E0 ldi R18,1
0352 04E3 ldi R16,52
0354 61DE xcall _wr_lcd
0356 .dbline 333
0356 ; wr_lcd(Lcd_Back_White+line,1);
0356 21E0 ldi R18,1
0358 042F mov R16,R20
035A 0C5F subi R16,252 ; addi 4
035C 5DDE xcall _wr_lcd
035E .dbline 334
035E ; wr_lcd(Lcd_Set_Function_Basic,1);
035E 21E0 ldi R18,1
0360 00E3 ldi R16,48
0362 5ADE xcall _wr_lcd
0364 .dbline -2
0364 L109:
0364 0E940000 xcall pop_gset1
0368 .dbline 0 ; func end
0368 0895 ret
036A .dbsym r line 20 c
036A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -