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

📄 1.lis

📁 这是个lcd12864液晶的串行驱动程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0098 2224              clr R2
 009A 2ABA              out 0x1a,R2
 009C                   .dbline 170
 009C           ;    PORTA=0x00; 
 009C 2BBA              out 0x1b,R2
 009E           L14:
 009E                   .dbline 172
 009E           ;    do 
 009E           ;    { EN_H; 
 009E                   .dbline 172
 009E C09A              sbi 0x18,0
 00A0                   .dbline 173
 00A0           ;      Lstate  = PINA; 
 00A0 49B3              in R20,0x19
 00A2                   .dbline 174
 00A2           ;      EN_L;   
 00A2 C098              cbi 0x18,0
 00A4                   .dbline 175
 00A4           L15:
 00A4                   .dbline 175
 00A4           ;    }while(Lstate & 0x80); 
 00A4 47FD              sbrc R20,7
 00A6 FBCF              rjmp L14
 00A8                   .dbline 176
 00A8           ;    DDRA=0xff; 
 00A8 8FEF              ldi R24,255
 00AA 8ABB              out 0x1a,R24
 00AC                   .dbline 177
 00AC           ;    DI_H; 
 00AC C29A              sbi 0x18,2
 00AE                   .dbline 178
 00AE           ;    RW_L; 
 00AE C198              cbi 0x18,1
 00B0                   .dbline 179
 00B0           ;    DATA     = Rdat; 
 00B0 0BBB              out 0x1b,R16
 00B2                   .dbline 180
 00B2           ;    EN_H; 
 00B2 C09A              sbi 0x18,0
 00B4                   .dbline 181
 00B4           ;    EN_L; 
 00B4 C098              cbi 0x18,0
 00B6                   .dbline -2
 00B6           L13:
 00B6 0E940000          xcall pop_gset1
 00BA                   .dbline 0 ; func end
 00BA 0895              ret
 00BC                   .dbsym r Lstate 20 c
 00BC                   .dbsym r Rdat 16 c
 00BC                   .dbend
 00BC                   .dbfunc e LCD_INT _LCD_INT fV
                        .even
 00BC           _LCD_INT::
 00BC                   .dbline -1
 00BC                   .dbline 187
 00BC           ; } 
 00BC           ; //----------------------------------------------------------------------------- 
 00BC           ; // LCD:Iniatlize(DIlcdsplay). 
 00BC           ; //----------------------------------------------------------------------------- 
 00BC           ; void LCD_INT(void) 
 00BC           ; { 
 00BC                   .dbline 188
 00BC           ;    Wleft_Cmad(0xc0);                 // Left  display start line; 
 00BC 00EC              ldi R16,192
 00BE A0DF              xcall _Wleft_Cmad
 00C0                   .dbline 189
 00C0           ;    Wrigt_Cmad(0xc0);                 // Right display start line; 
 00C0 00EC              ldi R16,192
 00C2 CDDF              xcall _Wrigt_Cmad
 00C4                   .dbline 190
 00C4           ;    Wleft_Cmad(0x3f);                 // Left  display On; 
 00C4 0FE3              ldi R16,63
 00C6 9CDF              xcall _Wleft_Cmad
 00C8                   .dbline 191
 00C8           ;    Wrigt_Cmad(0x3f);                 // Right display On;  
 00C8 0FE3              ldi R16,63
 00CA C9DF              xcall _Wrigt_Cmad
 00CC                   .dbline -2
 00CC           L17:
 00CC                   .dbline 0 ; func end
 00CC 0895              ret
 00CE                   .dbend
 00CE                   .dbfunc e LCD_CLR _LCD_CLR fV
 00CE           ;        adrPage -> R20
 00CE           ;         adrLaw -> R22
                        .even
 00CE           _LCD_CLR::
 00CE 0E940000          xcall push_gset2
 00D2                   .dbline -1
 00D2                   .dbline 197
 00D2           ; } 
 00D2           ; //----------------------------------------------------------------------------- 
 00D2           ; // LCD:Clear picture. 
 00D2           ; //----------------------------------------------------------------------------- 
 00D2           ; void LCD_CLR(void) 
 00D2           ; { 
 00D2                   .dbline 199
 00D2           ;    unsigned char adrPage,adrLaw; 
 00D2           ;    for(adrPage = 0; adrPage < 8; adrPage++) 
 00D2 4427              clr R20
 00D4 14C0              xjmp L22
 00D6           L19:
 00D6                   .dbline 200
 00D6           ;    {  Wleft_Cmad(adrPage | 0xb8); 
 00D6                   .dbline 200
 00D6 042F              mov R16,R20
 00D8 086B              ori R16,184
 00DA 92DF              xcall _Wleft_Cmad
 00DC                   .dbline 201
 00DC           ;       Wrigt_Cmad(adrPage | 0xb8); 
 00DC 042F              mov R16,R20
 00DE 086B              ori R16,184
 00E0 BEDF              xcall _Wrigt_Cmad
 00E2                   .dbline 202
 00E2           ;       Wleft_Cmad(0x40); 
 00E2 00E4              ldi R16,64
 00E4 8DDF              xcall _Wleft_Cmad
 00E6                   .dbline 203
 00E6           ;       Wrigt_Cmad(0x40); 
 00E6 00E4              ldi R16,64
 00E8 BADF              xcall _Wrigt_Cmad
 00EA                   .dbline 204
 00EA           ;       for(adrLaw = 0; adrLaw < 64; adrLaw++) 
 00EA 6627              clr R22
 00EC 05C0              xjmp L26
 00EE           L23:
 00EE                   .dbline 205
 00EE                   .dbline 205
 00EE 0027              clr R16
 00F0 9EDF              xcall _Wleft_Data
 00F2                   .dbline 206
 00F2 0027              clr R16
 00F4 CBDF              xcall _Wrigt_Data
 00F6                   .dbline 207
 00F6           L24:
 00F6                   .dbline 204
 00F6 6395              inc R22
 00F8           L26:
 00F8                   .dbline 204
 00F8 6034              cpi R22,64
 00FA C8F3              brlo L23
 00FC                   .dbline 208
 00FC           L20:
 00FC                   .dbline 199
 00FC 4395              inc R20
 00FE           L22:
 00FE                   .dbline 199
 00FE 4830              cpi R20,8
 0100 50F3              brlo L19
 0102                   .dbline -2
 0102           L18:
 0102 0E940000          xcall pop_gset2
 0106                   .dbline 0 ; func end
 0106 0895              ret
 0108                   .dbsym r adrPage 20 c
 0108                   .dbsym r adrLaw 22 c
 0108                   .dbend
 0108                   .dbfunc e WriteHZ _WriteHZ fV
 0108           ;              i -> R20
 0108           ;           left -> R22
 0108           ;              j -> R14
 0108           ;           dptr -> R10,R11
 0108           ;         ColSum -> R12
 0108           ;      adrColumn -> y+12
 0108           ;        adrPage -> y+10
 0108           ;          XH_HZ -> R20
                        .even
 0108           _WriteHZ::
 0108 3A93              st -y,r19
 010A 2A93              st -y,r18
 010C 0E940000          xcall push_gset5
 0110 402F              mov R20,R16
 0112 CE84              ldd R12,y+14
 0114                   .dbline -1
 0114                   .dbline 214
 0114           ;       {   Wleft_Data(0x00); 
 0114           ;           Wrigt_Data(0x00); 
 0114           ;       } 
 0114           ;    } 
 0114           ; } 
 0114           ; //----------------------------------------------------------------------------- 
 0114           ; // LCD:DIlcdsplay Chinese. 
 0114           ; //----------------------------------------------------------------------------- 
 0114           ; void WriteHZ(uchar XH_HZ,uchar adrPage,int adrColumn,uchar ColSum) 
 0114           ; { 
 0114                   .dbline 216
 0114           ;    unsigned int  dptr;               // dptr_adderss for HZ code. 
 0114           ;    unsigned char left=0, i, j; 
 0114 6627              clr R22
 0116                   .dbline 217
 0116           ;    dptr = XH_HZ * 32; 
 0116 80E2              ldi R24,32
 0118 849F              mul R24,R20
 011A 5001              movw R10,R0
 011C                   .dbline 218
 011C           ;    if((adrColumn-64) >= 0) left = 0;   // left = 0:for right. 
 011C 8C85              ldd R24,y+12
 011E 9D85              ldd R25,y+13
 0120 8054              subi R24,64
 0122 9040              sbci R25,0
 0124 8030              cpi R24,0
 0126 E0E0              ldi R30,0
 0128 9E07              cpc R25,R30
 012A 0CF0              brlt L28
 012C                   .dbline 218
 012C 09C0              xjmp L29
 012E           L28:
 012E                   .dbline 219
 012E           ;    else if((adrColumn-64) < 0)  left = 1;   // left = 1:for left. 
 012E 8C85              ldd R24,y+12
 0130 9D85              ldd R25,y+13
 0132 8054              subi R24,64
 0134 9040              sbci R25,0
 0136 8030              cpi R24,0
 0138 E0E0              ldi R30,0
 013A 9E07              cpc R25,R30
 013C 0CF4              brge L30
 013E                   .dbline 219
 013E 61E0              ldi R22,1
 0140           L30:
 0140           L29:
 0140                   .dbline 220
 0140           ;    for(i=0; i<2; i++) 
 0140 4427              clr R20
 0142 34C0              xjmp L35
 0144           L32:
 0144                   .dbline 221
 0144           ;    { 
 0144                   .dbline 222
 0144           ;       if(left == 0) 
 0144 6623              tst R22
 0146 B1F4              brne L36
 0148                   .dbline 223
 0148           ;           { Wrigt_Cmad(adrPage | 0xb8);  
 0148                   .dbline 223
 0148 0A85              ldd R16,y+10
 014A 086B              ori R16,184
 014C 88DF              xcall _Wrigt_Cmad
 014E                   .dbline 224
 014E           ;             Wrigt_Cmad(adrColumn | 0x40); 
 014E 0C85              ldd R16,y+12
 0150 1D85              ldd R17,y+13
 0152 0064              ori R16,64
 0154 84DF              xcall _Wrigt_Cmad
 0156                   .dbline 225
 0156           ;             for(j=0; j< ColSum; j++)     
 0156 EE24              clr R14
 0158 0BC0              xjmp L41
 015A           L38:
 015A                   .dbline 226
 015A                   .dbline 227
 015A 80E0              ldi R24,<_HZK
 015C 90E0              ldi R25,>_HZK
 015E F501              movw R30,R10
 0160 E80F              add R30,R24
 0162 F91F              adc R31,R25
 0164 0491              lpm R16,Z
 0166 92DF              xcall _Wrigt_Data
 0168                   .dbline 228
 0168 C501              movw R24,R10
 016A 0196              adiw R24,1
 016C 5C01              movw R10,R24
 016E                   .dbline 229
 016E           L39:
 016E                   .dbline 225
 016E E394              inc R14
 0170           L41:
 0170                   .dbline 225
 0170 EC14              cp R14,R12
 0172 98F3              brlo L38
 0174                   .dbline 230
 0174           ;           { 
 0174           ;              Wrigt_Data(HZK[dptr]); 
 0174           ;              dptr = dptr + 1;     
 0174           ;           } 
 0174           ;       } 
 0174           L36:
 0174                   .dbline 231
 0174           ;       if(left == 1) 
 0174 6130              cpi R22,1
 0176 B1F4              brne L42
 0178                   .dbline 232
 0178           ;           {          Wleft_Cmad(adrPage | 0xb8); 
 0178                   .dbline 232
 0178 0A85              ldd R16,y+10
 017A 086B              ori R16,184
 017C 41DF              xcall _Wleft_Cmad
 017E                   .dbline 233
 017E           ;           Wleft_Cmad(adrColumn | 0x40); 
 017E 0C85              ldd R16,y+12
 0180 1D85              ldd R17,y+13
 0182 0064              ori R16,64
 0184 3DDF              xcall _Wleft_Cmad
 0186                   .dbline 234
 0186 EE24              clr R14
 0188 0BC0              xjmp L47
 018A           L44:
 018A                   .dbline 234
 018A                   .dbline 235
 018A 80E0              ldi R24,<_HZK
 018C 90E0              ldi R25,>_HZK
 018E F501              movw R30,R10
 0190 E80F              add R30,R24
 0192 F91F              adc R31,R25
 0194 0491              lpm R16,Z
 0196 4BDF              xcall _Wleft_Data
 0198                   .dbline 236
 0198 C501              movw R24,R10
 019A 0196              adiw R24,1
 019C 5C01              movw R10,R24
 019E                   .dbline 236
 019E           L45:
 019E                   .dbline 234
 019E E394              inc R14
 01A0           L47:
 01A0                   .dbline 234
 01A0           ;           for(j=0; j< ColSum; j++)    { 
 01A0 EC14              cp R14,R12
 01A2 98F3              brlo L44
 01A4                   .dbline 237
 01A4           ;              Wleft_Data(HZK[dptr]); 
 01A4           ;              dptr = dptr + 1;    } 
 01A4           ;       } 
 01A4           L42:
 01A4                   .dbline 238
 01A4 0A84              ldd R0,y+10
 01A6 0394              inc R0
 01A8 0A86              std y+10,R0
 01AA                   .dbline 239
 01AA           L33:
 01AA                   .dbline 220
 01AA 4395              inc R20
 01AC           L35:
 01AC                   .dbline 220
 01AC 4230              cpi R20,2
 01AE 08F4              brsh X0
 01B0 C9CF              xjmp L32
 01B2           X0:
 01B2                   .dbline -2
 01B2           L27:
 01B2 0E940000          xcall pop_gset5
 01B6 2296              adiw R28,2
 01B8                   .dbline 0 ; func end
 01B8 0895              ret
 01BA                   .dbsym r i 20 c
 01BA                   .dbsym r left 22 c
 01BA                   .dbsym r j 14 c
 01BA                   .dbsym r dptr 10 i
 01BA                   .dbsym r ColSum 12 c
 01BA                   .dbsym l adrColumn 12 I
 01BA                   .dbsym l adrPage 10 c
 01BA                   .dbsym r XH_HZ 20 c
 01BA                   .dbend
 01BA                   .dbfunc e WriteDG _WriteDG fV
 01BA           ;              i -> R20
 01BA           ;           left -> R22
 01BA           ;              j -> R14
 01BA           ;           dptr -> R10,R11
 01BA           ;      adrColumn -> R12,R13
 01BA           ;        adrPage -> y+10
 01BA           ;         XH_Dig -> R20
                        .even
 01BA           _WriteDG::
 01BA 3A93              st -y,r19
 01BC 2A93              st -y,r18
 01BE 0E940000          xcall push_gset5
 01C2 402F              mov R20,R16
 01C4 CC84              ldd R12,y+12
 01C6 DD84              ldd R13,y+13
 01C8                   .dbline -1
 01C8                   .dbline 245
 01C8           ;           adrPage = adrPage + 1; 
 01C8           ;    } 
 01C8           ; } 

⌨️ 快捷键说明

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