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

📄 lcd12232.lis

📁 用ICC-AVR编译器编译M16单片机适用的LCD12232液晶屏驱动程序.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0164           ;     E1_L
 0164 04E0              ldi R16,4
 0166 10E0              ldi R17,0
 0168 0E940000          xcall _BIT
 016C 1801              movw R2,R16
 016E 2094              com R2
 0170 3094              com R3
 0172 42B2              in R4,0x12
 0174 5524              clr R5
 0176 4220              and R4,R2
 0178 5320              and R5,R3
 017A 42BA              out 0x12,R4
 017C                   .dbline -2
 017C                   .dbline 69
 017C           ;       
 017C           ; }             
 017C           L7:
 017C 0E940000          xcall pop_gset2
 0180                   .dbline 0 ; func end
 0180 0895              ret
 0182                   .dbsym r status 22 c
 0182                   .dbsym r d 20 c
 0182                   .dbend
 0182                   .dbfunc e wcoder _wcoder fV
 0182           ;         status -> R22
 0182           ;              c -> R20
                        .even
 0182           _wcoder::
 0182 0E940000          xcall push_gset2
 0186 402F              mov R20,R16
 0188                   .dbline -1
 0188                   .dbline 71
 0188           ; void wcoder (uchar c)
 0188           ; {      uchar status;
 0188 30C0              xjmp L15
 018A           L14:
 018A                   .dbline 73
 018A           ;        
 018A           ;        while(1){
 018A                   .dbline 74
 018A           ;                         LCD_PCT=0X00;
 018A 2224              clr R2
 018C 24BA              out 0x14,R2
 018E                   .dbline 75
 018E           ;                         E2_H
 018E 05E0              ldi R16,5
 0190 10E0              ldi R17,0
 0192 0E940000          xcall _BIT
 0196 22B2              in R2,0x12
 0198 3324              clr R3
 019A 202A              or R2,R16
 019C 312A              or R3,R17
 019E 22BA              out 0x12,R2
 01A0                   .dbline 76
 01A0           ;                         A0_L
 01A0 07E0              ldi R16,7
 01A2 10E0              ldi R17,0
 01A4 0E940000          xcall _BIT
 01A8 1801              movw R2,R16
 01AA 2094              com R2
 01AC 3094              com R3
 01AE 42B2              in R4,0x12
 01B0 5524              clr R5
 01B2 4220              and R4,R2
 01B4 5320              and R5,R3
 01B6 42BA              out 0x12,R4
 01B8                   .dbline 77
 01B8           ;                         LCD_READ
 01B8 06E0              ldi R16,6
 01BA 10E0              ldi R17,0
 01BC 0E940000          xcall _BIT
 01C0 22B2              in R2,0x12
 01C2 3324              clr R3
 01C4 202A              or R2,R16
 01C6 312A              or R3,R17
 01C8 22BA              out 0x12,R2
 01CA                   .dbline 78
 01CA           ;                     E2_L
 01CA 05E0              ldi R16,5
 01CC 10E0              ldi R17,0
 01CE 0E940000          xcall _BIT
 01D2 1801              movw R2,R16
 01D4 2094              com R2
 01D6 3094              com R3
 01D8 42B2              in R4,0x12
 01DA 5524              clr R5
 01DC 4220              and R4,R2
 01DE 5320              and R5,R3
 01E0 42BA              out 0x12,R4
 01E2                   .dbline 79
 01E2           ;                         status=LCD_IN;
 01E2 63B3              in R22,0x13
 01E4                   .dbline 80
 01E4           ;                         status=status&0x80;
 01E4 6078              andi R22,128
 01E6                   .dbline 81
 01E6           ;                         if (status==0) 
 01E6 09F4              brne L17
 01E8                   .dbline 82
 01E8           ;                               { break;}
 01E8                   .dbline 82
 01E8 01C0              xjmp L16
 01EA           L17:
 01EA                   .dbline 83
 01EA           L15:
 01EA                   .dbline 73
 01EA CFCF              xjmp L14
 01EC           L16:
 01EC                   .dbline 84
 01EC           ;                       }
 01EC           ;       LCD_PCT=0XFF;
 01EC 8FEF              ldi R24,255
 01EE 84BB              out 0x14,R24
 01F0                   .dbline 85
 01F0           ;       E2_H
 01F0 05E0              ldi R16,5
 01F2 10E0              ldi R17,0
 01F4 0E940000          xcall _BIT
 01F8 22B2              in R2,0x12
 01FA 3324              clr R3
 01FC 202A              or R2,R16
 01FE 312A              or R3,R17
 0200 22BA              out 0x12,R2
 0202                   .dbline 86
 0202           ;       LCD_WRITE               
 0202 06E0              ldi R16,6
 0204 10E0              ldi R17,0
 0206 0E940000          xcall _BIT
 020A 1801              movw R2,R16
 020C 2094              com R2
 020E 3094              com R3
 0210 42B2              in R4,0x12
 0212 5524              clr R5
 0214 4220              and R4,R2
 0216 5320              and R5,R3
 0218 42BA              out 0x12,R4
 021A                   .dbline 87
 021A           ;       LCD_DATA=c;
 021A 45BB              out 0x15,R20
 021C                   .dbline 88
 021C           ;       E2_L
 021C 05E0              ldi R16,5
 021E 10E0              ldi R17,0
 0220 0E940000          xcall _BIT
 0224 1801              movw R2,R16
 0226 2094              com R2
 0228 3094              com R3
 022A 42B2              in R4,0x12
 022C 5524              clr R5
 022E 4220              and R4,R2
 0230 5320              and R5,R3
 0232 42BA              out 0x12,R4
 0234                   .dbline -2
 0234                   .dbline 90
 0234           ;       
 0234           ; }                     
 0234           L13:
 0234 0E940000          xcall pop_gset2
 0238                   .dbline 0 ; func end
 0238 0895              ret
 023A                   .dbsym r status 22 c
 023A                   .dbsym r c 20 c
 023A                   .dbend
 023A                   .dbfunc e wdatar _wdatar fV
 023A           ;         status -> R22
 023A           ;              d -> R20
                        .even
 023A           _wdatar::
 023A 0E940000          xcall push_gset2
 023E 402F              mov R20,R16
 0240                   .dbline -1
 0240                   .dbline 92
 0240           ; void wdatar (uchar d)
 0240           ; {      uchar status;
 0240 30C0              xjmp L21
 0242           L20:
 0242                   .dbline 94
 0242           ;        
 0242           ;        while(1){ LCD_PCT=0X00;
 0242                   .dbline 94
 0242 2224              clr R2
 0244 24BA              out 0x14,R2
 0246                   .dbline 95
 0246           ;                         E2_H
 0246 05E0              ldi R16,5
 0248 10E0              ldi R17,0
 024A 0E940000          xcall _BIT
 024E 22B2              in R2,0x12
 0250 3324              clr R3
 0252 202A              or R2,R16
 0254 312A              or R3,R17
 0256 22BA              out 0x12,R2
 0258                   .dbline 96
 0258           ;                         A0_L
 0258 07E0              ldi R16,7
 025A 10E0              ldi R17,0
 025C 0E940000          xcall _BIT
 0260 1801              movw R2,R16
 0262 2094              com R2
 0264 3094              com R3
 0266 42B2              in R4,0x12
 0268 5524              clr R5
 026A 4220              and R4,R2
 026C 5320              and R5,R3
 026E 42BA              out 0x12,R4
 0270                   .dbline 97
 0270           ;                         LCD_READ
 0270 06E0              ldi R16,6
 0272 10E0              ldi R17,0
 0274 0E940000          xcall _BIT
 0278 22B2              in R2,0x12
 027A 3324              clr R3
 027C 202A              or R2,R16
 027E 312A              or R3,R17
 0280 22BA              out 0x12,R2
 0282                   .dbline 98
 0282           ;                     E2_L
 0282 05E0              ldi R16,5
 0284 10E0              ldi R17,0
 0286 0E940000          xcall _BIT
 028A 1801              movw R2,R16
 028C 2094              com R2
 028E 3094              com R3
 0290 42B2              in R4,0x12
 0292 5524              clr R5
 0294 4220              and R4,R2
 0296 5320              and R5,R3
 0298 42BA              out 0x12,R4
 029A                   .dbline 99
 029A           ;                         status=LCD_IN;
 029A 63B3              in R22,0x13
 029C                   .dbline 100
 029C           ;                         status=status&0x80;
 029C 6078              andi R22,128
 029E                   .dbline 101
 029E           ;                       if (status==0) break;
 029E 09F4              brne L23
 02A0                   .dbline 101
 02A0 01C0              xjmp L22
 02A2           L23:
 02A2                   .dbline 102
 02A2           L21:
 02A2                   .dbline 94
 02A2 CFCF              xjmp L20
 02A4           L22:
 02A4                   .dbline 103
 02A4           ;                       }       
 02A4           ;       LCD_PCT=0XFF;
 02A4 8FEF              ldi R24,255
 02A6 84BB              out 0x14,R24
 02A8                   .dbline 104
 02A8           ;       E2_H
 02A8 05E0              ldi R16,5
 02AA 10E0              ldi R17,0
 02AC 0E940000          xcall _BIT
 02B0 22B2              in R2,0x12
 02B2 3324              clr R3
 02B4 202A              or R2,R16
 02B6 312A              or R3,R17
 02B8 22BA              out 0x12,R2
 02BA                   .dbline 105
 02BA           ;       A0_H
 02BA 07E0              ldi R16,7
 02BC 10E0              ldi R17,0
 02BE 0E940000          xcall _BIT
 02C2 22B2              in R2,0x12
 02C4 3324              clr R3
 02C6 202A              or R2,R16
 02C8 312A              or R3,R17
 02CA 22BA              out 0x12,R2
 02CC                   .dbline 106
 02CC           ;       LCD_WRITE
 02CC 06E0              ldi R16,6
 02CE 10E0              ldi R17,0
 02D0 0E940000          xcall _BIT
 02D4 1801              movw R2,R16
 02D6 2094              com R2
 02D8 3094              com R3
 02DA 42B2              in R4,0x12
 02DC 5524              clr R5
 02DE 4220              and R4,R2
 02E0 5320              and R5,R3
 02E2 42BA              out 0x12,R4
 02E4                   .dbline 107
 02E4           ;       LCD_DATA=d;
 02E4 45BB              out 0x15,R20
 02E6                   .dbline 108
 02E6           ;     E2_L
 02E6 05E0              ldi R16,5
 02E8 10E0              ldi R17,0
 02EA 0E940000          xcall _BIT
 02EE 1801              movw R2,R16
 02F0 2094              com R2
 02F2 3094              com R3
 02F4 42B2              in R4,0x12
 02F6 5524              clr R5
 02F8 4220              and R4,R2
 02FA 5320              and R5,R3
 02FC 42BA              out 0x12,R4
 02FE                   .dbline -2
 02FE                   .dbline 110
 02FE           ;       
 02FE           ; }             
 02FE           L19:
 02FE 0E940000          xcall pop_gset2
 0302                   .dbline 0 ; func end
 0302 0895              ret
 0304                   .dbsym r status 22 c
 0304                   .dbsym r d 20 c
 0304                   .dbend
 0304                   .dbfunc e clear _clear fV
 0304           ;           page -> R20
 0304           ;            col -> R22
 0304           ;         symbol -> R10
                        .even
 0304           _clear::
 0304 0E940000          xcall push_gset3
 0308 A02E              mov R10,R16
 030A                   .dbline -1
 030A                   .dbline 114
 030A           ; 
 030A           ; 
 030A           ; void clear(uchar symbol)
 030A           ; {
 030A                   .dbline 115
 030A           ; uchar page=0x00;
 030A 4427              clr R20
 030C                   .dbline 116
 030C           ; uchar col=0x00;
 030C 6627              clr R22
 030E                   .dbline 117
 030E           ;        for (page=0x00;page<0x04;page++)
 030E 0DC0              xjmp L29
 0310           L26:
 0310                   .dbline 118
 0310           ;        {
 0310                   .dbline 120
 0310           ;        
 0310           ;                wcodel(prepage+page);
 0310 042F              mov R16,R20
 0312 0854              subi R16,72    ; addi 184
 0314 75DE              xcall _wcodel
 0316                   .dbline 122
 0316           ;                
 0316           ;                for (col=0x00;col<0x61;col++)
 0316 6627              clr R22
 0318 05C0              xjmp L33
 031A           L30:
 031A                   .dbline 123
 031A                   .dbline 124
 031A 062F              mov R16,R22

⌨️ 快捷键说明

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