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

📄 serial_lcd.lis

📁 一个有关st7920控制器的测试程序和驱动程序的12864LCD的例程
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -