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

📄 ylf240128a.lis

📁 自己编制的北京友力发公司的液晶显示模块驱动程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0098           ; 
 0098           ; void WriteCmd(uchar command) 
 0098           ; { 
 0098           L19:
 0098                   .dbline 286
 0098           L20:
 0098                   .dbline 286
 0098           ;    while ( (ReadSta()&0x03) !=0x03); 
 0098 E6DF              xcall _ReadSta
 009A 802F              mov R24,R16
 009C 8370              andi R24,3
 009E 8330              cpi R24,3
 00A0 D9F7              brne L19
 00A2                   .dbline 287
 00A2           ;    RD_SET; 
 00A2 DA9A              sbi 0x1b,2
 00A4                   .dbline 288
 00A4           ;    CD_SET; 
 00A4 A89A              sbi 0x15,0
 00A6                   .dbline 289
 00A6           ;    OUT_DIR; 
 00A6 D898              cbi 0x1b,0
 00A8                   .dbline 290
 00A8           ;    DDRB=0xFF; 
 00A8 8FEF              ldi R24,255
 00AA 87BB              out 0x17,R24
 00AC                   .dbline 291
 00AC           ;    PORTB=command; 
 00AC 48BB              out 0x18,R20
 00AE                   .dbline 293
 00AE           ; //   NOP();NOP();NOP();    
 00AE           ;    WR_CLR; 
 00AE DB98              cbi 0x1b,3
 00B0                   .dbline 294
 00B0           ;    NOP();NOP();NOP(); 
 00B0 0000              nop
 00B2                   .dbline 294
 00B2 0000              nop
 00B4                   .dbline 294
 00B4 0000              nop
 00B6                   .dbline 295
 00B6           ;    WR_SET; 
 00B6 DB9A              sbi 0x1b,3
 00B8                   .dbline 296
 00B8           ;    CD_CLR; 
 00B8 A898              cbi 0x15,0
 00BA                   .dbline -2
 00BA           L18:
 00BA 0E940000          xcall pop_gset1
 00BE                   .dbline 0 ; func end
 00BE 0895              ret
 00C0                   .dbsym r command 20 c
 00C0                   .dbend
 00C0                   .dbfunc e WriteData _WriteData fV
 00C0           ;           data -> R20
                        .even
 00C0           _WriteData::
 00C0 0E940000          xcall push_gset1
 00C4 402F              mov R20,R16
 00C6                   .dbline -1
 00C6                   .dbline 301
 00C6           ; 
 00C6           ; } 
 00C6           ; 
 00C6           ; void WriteData(uchar data) 
 00C6           ; { 
 00C6           L23:
 00C6                   .dbline 302
 00C6           L24:
 00C6                   .dbline 302
 00C6           ;    while ( (ReadSta()&0x03) !=0x03); 
 00C6 CFDF              xcall _ReadSta
 00C8 802F              mov R24,R16
 00CA 8370              andi R24,3
 00CC 8330              cpi R24,3
 00CE D9F7              brne L23
 00D0                   .dbline 303
 00D0           ;    RD_SET; 
 00D0 DA9A              sbi 0x1b,2
 00D2                   .dbline 304
 00D2           ;    CD_CLR; 
 00D2 A898              cbi 0x15,0
 00D4                   .dbline 305
 00D4           ;    OUT_DIR; 
 00D4 D898              cbi 0x1b,0
 00D6                   .dbline 306
 00D6           ;    DDRB=0xFF; 
 00D6 8FEF              ldi R24,255
 00D8 87BB              out 0x17,R24
 00DA                   .dbline 307
 00DA           ;    PORTB=data; 
 00DA 48BB              out 0x18,R20
 00DC                   .dbline 309
 00DC           ; //   NOP();NOP();NOP();    
 00DC           ;    WR_CLR; 
 00DC DB98              cbi 0x1b,3
 00DE                   .dbline 310
 00DE           ;    NOP();NOP();NOP(); 
 00DE 0000              nop
 00E0                   .dbline 310
 00E0 0000              nop
 00E2                   .dbline 310
 00E2 0000              nop
 00E4                   .dbline 311
 00E4           ;    WR_SET; 
 00E4 DB9A              sbi 0x1b,3
 00E6                   .dbline -2
 00E6           L22:
 00E6 0E940000          xcall pop_gset1
 00EA                   .dbline 0 ; func end
 00EA 0895              ret
 00EC                   .dbsym r data 20 c
 00EC                   .dbend
 00EC                   .dbfunc e WrTwoParCmd _WrTwoParCmd fV
 00EC           ;        command -> y+4
 00EC           ;           par2 -> R20
 00EC           ;           par1 -> R22
                        .even
 00EC           _WrTwoParCmd::
 00EC 0E940000          xcall push_gset2
 00F0 422F              mov R20,R18
 00F2 602F              mov R22,R16
 00F4                   .dbline -1
 00F4                   .dbline 314
 00F4           ; } 
 00F4           ; void WrTwoParCmd(uchar par1,uchar par2,uchar command) 
 00F4           ; { 
 00F4                   .dbline 315
 00F4           ;    WriteData(par1); 
 00F4 062F              mov R16,R22
 00F6 E4DF              xcall _WriteData
 00F8                   .dbline 316
 00F8           ;    WriteData(par2); 
 00F8 042F              mov R16,R20
 00FA E2DF              xcall _WriteData
 00FC                   .dbline 317
 00FC           ;    WriteCmd(command); 
 00FC 0C81              ldd R16,y+4
 00FE C9DF              xcall _WriteCmd
 0100                   .dbline -2
 0100           L26:
 0100 0E940000          xcall pop_gset2
 0104                   .dbline 0 ; func end
 0104 0895              ret
 0106                   .dbsym l command 4 c
 0106                   .dbsym r par2 20 c
 0106                   .dbsym r par1 22 c
 0106                   .dbend
 0106                   .dbfunc e WrOneParCmd _WrOneParCmd fV
 0106           ;        command -> R20
 0106           ;            par -> R22
                        .even
 0106           _WrOneParCmd::
 0106 0E940000          xcall push_gset2
 010A 422F              mov R20,R18
 010C 602F              mov R22,R16
 010E                   .dbline -1
 010E                   .dbline 320
 010E           ; } 
 010E           ; void WrOneParCmd(uchar par,uchar command) 
 010E           ; { 
 010E                   .dbline 321
 010E           ;    WriteData(par); 
 010E 062F              mov R16,R22
 0110 D7DF              xcall _WriteData
 0112                   .dbline 322
 0112           ;    WriteCmd(command); 
 0112 042F              mov R16,R20
 0114 BEDF              xcall _WriteCmd
 0116                   .dbline -2
 0116           L27:
 0116 0E940000          xcall pop_gset2
 011A                   .dbline 0 ; func end
 011A 0895              ret
 011C                   .dbsym r command 20 c
 011C                   .dbsym r par 22 c
 011C                   .dbend
 011C                   .dbfunc e ClrRam _ClrRam fV
 011C           ;              i -> R20,R21
 011C           ;           data -> R22,R23
                        .even
 011C           _ClrRam::
 011C 0E940000          xcall push_gset2
 0120 B801              movw R22,R16
 0122 2197              sbiw R28,1
 0124                   .dbline -1
 0124                   .dbline 326
 0124           ; } 
 0124           ; 
 0124           ; void ClrRam(uint data) 
 0124           ; { 
 0124                   .dbline 329
 0124           ;    uint i; 
 0124           ; 
 0124           ;    WrTwoParCmd(0x00,0x00,ADPSET); 
 0124 84E2              ldi R24,36
 0126 8883              std y+0,R24
 0128 2227              clr R18
 012A 0027              clr R16
 012C DFDF              xcall _WrTwoParCmd
 012E           L29:
 012E                   .dbline 331
 012E           L30:
 012E                   .dbline 331
 012E           ;  //  WrTwoParCmd(0x00,0x00,ADPSET);//No Repeat--False Code  
 012E           ;    while((ReadSta()&0x08)!=8); 
 012E 9BDF              xcall _ReadSta
 0130 802F              mov R24,R16
 0132 8870              andi R24,8
 0134 8830              cpi R24,8
 0136 D9F7              brne L29
 0138                   .dbline 332
 0138           ;    WriteCmd(AWRON);    
 0138 00EB              ldi R16,176
 013A ABDF              xcall _WriteCmd
 013C                   .dbline 333
 013C           ;    for(i=0;i<(LCDCOLUMN*LCDLINE);i++) 
 013C 4427              clr R20
 013E 5527              clr R21
 0140 04C0              xjmp L35
 0142           L32:
 0142                   .dbline 334
 0142 062F              mov R16,R22
 0144 BDDF              xcall _WriteData
 0146           L33:
 0146                   .dbline 333
 0146 4F5F              subi R20,255  ; offset = 1
 0148 5F4F              sbci R21,255
 014A           L35:
 014A                   .dbline 333
 014A 403E              cpi R20,224
 014C E1E0              ldi R30,1
 014E 5E07              cpc R21,R30
 0150 C0F3              brlo L32
 0152                   .dbline 335
 0152           ;       WriteData(data); 
 0152           ;    WriteCmd(AWROFF);    
 0152 02EB              ldi R16,178
 0154 9EDF              xcall _WriteCmd
 0156                   .dbline -2
 0156           L28:
 0156 2196              adiw R28,1
 0158 0E940000          xcall pop_gset2
 015C                   .dbline 0 ; func end
 015C 0895              ret
 015E                   .dbsym r i 20 i
 015E                   .dbsym r data 22 i
 015E                   .dbend
 015E                   .dbfunc e WrCGRAM _WrCGRAM fV
 015E           ;            len -> R20,R21
 015E           ;              j -> R22,R23
 015E           ;              i -> R10,R11
                        .even
 015E           _WrCGRAM::
 015E 0E940000          xcall push_gset3
 0162 2197              sbiw R28,1
 0164                   .dbline -1
 0164                   .dbline 340
 0164           ;        
 0164           ; } 
 0164           ; 
 0164           ; void WrCGRAM(void) 
 0164           ; { 
 0164                   .dbline 343
 0164           ;    uint i,j,len; 
 0164           ;        
 0164           ;    WrTwoParCmd(0x00,0x00,OFFSET); 
 0164 82E2              ldi R24,34
 0166 8883              std y+0,R24
 0168 2227              clr R18
 016A 0027              clr R16
 016C BFDF              xcall _WrTwoParCmd
 016E                   .dbline 344
 016E           ;    WrTwoParCmd(0x00,0x04,ADPSET); 
 016E 84E2              ldi R24,36
 0170 8883              std y+0,R24
 0172 24E0              ldi R18,4
 0174 0027              clr R16
 0176 BADF              xcall _WrTwoParCmd
 0178           L37:
 0178                   .dbline 345
 0178           L38:
 0178                   .dbline 345
 0178           ;    while((ReadSta()&0x08)!=8); 
 0178 76DF              xcall _ReadSta
 017A 802F              mov R24,R16
 017C 8870              andi R24,8
 017E 8830              cpi R24,8
 0180 D9F7              brne L37
 0182                   .dbline 346
 0182           ;    WriteCmd(AWRON); 
 0182 00EB              ldi R16,176
 0184 86DF              xcall _WriteCmd
 0186                   .dbline 347
 0186 AA24              clr R10
 0188 BB24              clr R11
 018A 1AC0              xjmp L43
 018C           L40:
 018C                   .dbline 347
 018C           ;    for(i=0;i<10;i++) {            //8*8 
 018C                   .dbline 348
 018C           ;       for(j=0;j<8;j++) 
 018C 6627              clr R22
 018E 7727              clr R23
 0190 10C0              xjmp L47
 0192           L44:
 0192                   .dbline 349
 0192 08E0              ldi R16,8
 0194 10E0              ldi R17,0
 0196 9501              movw R18,R10
 0198 0E940000          xcall empy16s
 019C F801              movw R30,R16
 019E E60F              add R30,R22
 01A0 F71F              adc R31,R23
 01A2 80E0              ldi R24,<_GrCode
 01A4 90E0              ldi R25,>_GrCode
 01A6 E80F              add R30,R24
 01A8 F91F              adc R31,R25
 01AA 0491              lpm R16,Z
 01AC 89DF              xcall _WriteData
 01AE           L45:
 01AE                   .dbline 348
 01AE 6F5F              subi R22,255  ; offset = 1
 01B0 7F4F              sbci R23,255
 01B2           L47:
 01B2                   .dbline 348

⌨️ 快捷键说明

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