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

📄 lcd.lis

📁 mega128的串口发送文件.可以发送0X55上位机使用串口调试工具就可以接收了.
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 01D8 80930100          sts _date+1,R24
 01DC                   .dbline 147
 01DC           ;    
 01DC           ;    for(k=0;k<2;k++)
 01DC 4427              clr R20
 01DE 13C0              xjmp L35
 01E0           L32:
 01E0                   .dbline 148
 01E0                   .dbline 149
 01E0 80E0              ldi R24,<_date
 01E2 90E0              ldi R25,>_date
 01E4 E42F              mov R30,R20
 01E6 FF27              clr R31
 01E8 E80F              add R30,R24
 01EA F91F              adc R31,R25
 01EC 2080              ldd R2,z+0
 01EE 2A82              std y+2,R2
 01F0 88E0              ldi R24,8
 01F2 849F              mul R24,R20
 01F4 802D              mov R24,R0
 01F6 8F70              andi R24,15
 01F8 8883              std y+0,R24
 01FA 242F              mov R18,R20
 01FC 2695              lsr R18
 01FE 205F              subi R18,240    ; addi 16
 0200 062F              mov R16,R22
 0202 7CDF              xcall _LCDSHOW
 0204                   .dbline 150
 0204           L33:
 0204                   .dbline 147
 0204 4395              inc R20
 0206           L35:
 0206                   .dbline 147
 0206 4230              cpi R20,2
 0208 58F3              brlo L32
 020A                   .dbline 151
 020A           ;            {
 020A           ;                    LCDSHOW( page, 0x10+k/2, (0x08*k)&0x0f, date[k]);  
 020A           ;               }
 020A           ;  SPCR = 0x54;         
 020A 84E5              ldi R24,84
 020C 8DB9              out 0xd,R24
 020E                   .dbline -2
 020E           L30:
 020E 2396              adiw R28,3
 0210 0E940000          xcall pop_gset2
 0214                   .dbline 0 ; func end
 0214 0895              ret
 0216                   .dbsym l i 4 c
 0216                   .dbsym l j 4 c
 0216                   .dbsym r k 20 c
 0216                   .dbsym r page 22 c
 0216                   .dbsym r data 20 c
 0216                   .dbend
 0216                   .dbfunc e LCD_init_initialize _LCD_init_initialize fV
                        .even
 0216           _LCD_init_initialize::
 0216 0E940000          xcall push_gset2
 021A                   .dbline -1
 021A                   .dbline 160
 021A           ; }
 021A           ; 
 021A           ; 
 021A           ; 
 021A           ; //-------------------------------------------------------------------------------
 021A           ; //LCD初始化
 021A           ; //-------------------------------------------------------------------------------
 021A           ; void LCD_init_initialize(void)
 021A           ;  {
 021A                   .dbline 161
 021A           ;       LCD_control&=~(1<<LCD_RST);      // reset the LCD module
 021A 9598              cbi 0x12,5
 021C                   .dbline 162
 021C           ;     delayms(5);
 021C 05E0              ldi R16,5
 021E 10E0              ldi R17,0
 0220 20E0              ldi R18,0
 0222 30E0              ldi R19,0
 0224 EDDE              xcall _delayms
 0226                   .dbline 164
 0226           ; 
 0226           ;       LCD_control|=1<<LCD_RST;
 0226 959A              sbi 0x12,5
 0228                   .dbline 165
 0228           ;     delayms(5);     // wait for the init routine to finish
 0228 05E0              ldi R16,5
 022A 10E0              ldi R17,0
 022C 20E0              ldi R18,0
 022E 30E0              ldi R19,0
 0230 E7DE              xcall _delayms
 0232                   .dbline 168
 0232           ; 
 0232           ; //  SdCmd(0xae);    // Display off **hardware reset default**
 0232           ;     SdCmd(0x48);    // Display Duty Ratio = 1/96
 0232 08E4              ldi R16,72
 0234 47DF              xcall _SdCmd
 0236                   .dbline 169
 0236           ;     SdCmd(0x60);    // (two byte instruction)
 0236 00E6              ldi R16,96
 0238 45DF              xcall _SdCmd
 023A                   .dbline 170
 023A           ;     SdCmd(0xa1);    // ADC = 1, reverse (flip x-direction)
 023A 01EA              ldi R16,161
 023C 43DF              xcall _SdCmd
 023E                   .dbline 171
 023E           ;     SdCmd(0xc8);    // SHL = 1, reverse (flip y-direction)
 023E 08EC              ldi R16,200
 0240 41DF              xcall _SdCmd
 0242                   .dbline 172
 0242           ;     SdCmd(0x44);    // COM0Reg = 16
 0242 04E4              ldi R16,68
 0244 3FDF              xcall _SdCmd
 0246                   .dbline 173
 0246           ;     SdCmd(0x10);    // (two byte instruction)
 0246 00E1              ldi R16,16
 0248 3DDF              xcall _SdCmd
 024A                   .dbline 174
 024A           ;     SdCmd(0x40);    // Display Start Line = 0
 024A 00E4              ldi R16,64
 024C 3BDF              xcall _SdCmd
 024E                   .dbline 175
 024E           ;     SdCmd(0x00);    // (two byte instruction)
 024E 0027              clr R16
 0250 39DF              xcall _SdCmd
 0252                   .dbline 176
 0252           ;     SdCmd(0xab);    // Osc on strat
 0252 0BEA              ldi R16,171
 0254 37DF              xcall _SdCmd
 0256                   .dbline 177
 0256           ;     SdCmd(0x66);    // DC-DC StepUp = 5x boosting
 0256 06E6              ldi R16,102
 0258 35DF              xcall _SdCmd
 025A                   .dbline 179
 025A           ; 
 025A           ;     SdCmd(0x27);    // 1+(Rb/Ra) = 7.2 (highest value)
 025A 07E2              ldi R16,39
 025C 33DF              xcall _SdCmd
 025E                   .dbline 180
 025E           ;     SdCmd(0x81);    // ElecVol = 32 (middle value)
 025E 01E8              ldi R16,129
 0260 31DF              xcall _SdCmd
 0262                   .dbline 181
 0262           ;     SdCmd(0x20);    // (two byte instruction)
 0262 00E2              ldi R16,32
 0264 2FDF              xcall _SdCmd
 0266                   .dbline 182
 0266           ;     SdCmd(0x54);    // LCD bias = 1/9 (adjusted for better control)
 0266 04E5              ldi R16,84
 0268 2DDF              xcall _SdCmd
 026A                   .dbline 186
 026A           ; //  SdCmd(0x4c);    // N-line inversion = frame inversion **hardware reset default**
 026A           ; //  SdCmd(0x00);    // (two byte instruction) **hardware reset default**
 026A           ; 
 026A           ;     SdCmd(0x93);    // FRC=4 PWM=15
 026A 03E9              ldi R16,147
 026C 2BDF              xcall _SdCmd
 026E                   .dbline 188
 026E           ; 
 026E           ;     SdCmd(0x88);    // white mode (two byte instruction)
 026E 08E8              ldi R16,136
 0270 29DF              xcall _SdCmd
 0272                   .dbline 189
 0272           ;     SdCmd(0x00);    // 1st Frame Pulse width = 00h
 0272 0027              clr R16
 0274 27DF              xcall _SdCmd
 0276                   .dbline 191
 0276           ;                     // 2nd Frame Pulse width = 00h
 0276           ;     SdCmd(0x89);    // white mode (two byte instruction)
 0276 09E8              ldi R16,137
 0278 25DF              xcall _SdCmd
 027A                   .dbline 192
 027A           ;     SdCmd(0x00);    // 3rd Frame Pulse width = 00h
 027A 0027              clr R16
 027C 23DF              xcall _SdCmd
 027E                   .dbline 195
 027E           ;                     // 4th Frame Pulse width = 00h
 027E           ; 
 027E           ;     SdCmd(0x8a);    // light gray mode (two byte instruction)
 027E 0AE8              ldi R16,138
 0280 21DF              xcall _SdCmd
 0282                   .dbline 196
 0282           ;     SdCmd(0x00);    // 1st Frame Pulse width = 08h
 0282 0027              clr R16
 0284 1FDF              xcall _SdCmd
 0286                   .dbline 198
 0286           ;                     // 2nd Frame Pulse width = 08h
 0286           ;     SdCmd(0x8b);    // white mode (two byte instruction)
 0286 0BE8              ldi R16,139
 0288 1DDF              xcall _SdCmd
 028A                   .dbline 199
 028A           ;     SdCmd(0x00);    // 3rd Frame Pulse width = 08h
 028A 0027              clr R16
 028C 1BDF              xcall _SdCmd
 028E                   .dbline 202
 028E           ;                     // 4th Frame Pulse width = 08h
 028E           ; 
 028E           ;     SdCmd(0x8c);    // dark gray mode (two byte instruction)
 028E 0CE8              ldi R16,140
 0290 19DF              xcall _SdCmd
 0292                   .dbline 203
 0292           ;     SdCmd(0xff);    // 1st Frame Pulse width = 0Bh
 0292 0FEF              ldi R16,255
 0294 17DF              xcall _SdCmd
 0296                   .dbline 205
 0296           ;                     // 2nd Frame Pulse width = 0Bh
 0296           ;     SdCmd(0x8d);    // white mode (two byte instruction)
 0296 0DE8              ldi R16,141
 0298 15DF              xcall _SdCmd
 029A                   .dbline 206
 029A           ;     SdCmd(0xff);    // 3rd Frame Pulse width = 0Bh
 029A 0FEF              ldi R16,255
 029C 13DF              xcall _SdCmd
 029E                   .dbline 209
 029E           ;                     // 4th Frame Pulse width = 0Bh
 029E           ; 
 029E           ;     SdCmd(0x8e);    // dark gray mode (two byte instruction)
 029E 0EE8              ldi R16,142
 02A0 11DF              xcall _SdCmd
 02A2                   .dbline 210
 02A2           ;     SdCmd(0xff);    // 1st Frame Pulse width = 0Eh (set to reduce crosstalk)
 02A2 0FEF              ldi R16,255
 02A4 0FDF              xcall _SdCmd
 02A6                   .dbline 212
 02A6           ;                     // 2nd Frame Pulse width = 0Eh (set to reduce crosstalk)
 02A6           ;     SdCmd(0x8f);    // white mode (two byte instruction)
 02A6 0FE8              ldi R16,143
 02A8 0DDF              xcall _SdCmd
 02AA                   .dbline 213
 02AA           ;     SdCmd(0xff);    // 3rd Frame Pulse width = 0Eh (set to reduce crosstalk)
 02AA 0FEF              ldi R16,255
 02AC 0BDF              xcall _SdCmd
 02AE                   .dbline 216
 02AE           ;                     // 4th Frame Pulse width = 0Eh (set to reduce crosstalk)
 02AE           ; 
 02AE           ;     SdCmd(0x2C);    // power ctl = DC-DC ON
 02AE 0CE2              ldi R16,44
 02B0 09DF              xcall _SdCmd
 02B2                   .dbline 217
 02B2           ;     delayms(1); 
 02B2 01E0              ldi R16,1
 02B4 10E0              ldi R17,0
 02B6 20E0              ldi R18,0
 02B8 30E0              ldi R19,0
 02BA A2DE              xcall _delayms
 02BC                   .dbline 218
 02BC           ;     SdCmd(0x2f);    // power ctl = Voltage Regulator ON
 02BC 0FE2              ldi R16,47
 02BE 02DF              xcall _SdCmd
 02C0                   .dbline 219
 02C0           ;     delayms(1);
 02C0 01E0              ldi R16,1
 02C2 10E0              ldi R17,0
 02C4 20E0              ldi R18,0
 02C6 30E0              ldi R19,0
 02C8 9BDE              xcall _delayms
 02CA                   .dbline 220
 02CA           ;     SdCmd(0x2f);    // power ctl = Voltage follower ON
 02CA 0FE2              ldi R16,47
 02CC FBDE              xcall _SdCmd
 02CE                   .dbline 221
 02CE           ;     delayms(1);
 02CE 01E0              ldi R16,1
 02D0 10E0              ldi R17,0
 02D2 20E0              ldi R18,0
 02D4 30E0              ldi R19,0
 02D6 94DE              xcall _delayms
 02D8                   .dbline 223
 02D8           ; 
 02D8           ;     SdCmd(0xaf);    // display ON
 02D8 0FEA              ldi R16,175
 02DA F4DE              xcall _SdCmd
 02DC                   .dbline -2
 02DC           L36:
 02DC 0E940000          xcall pop_gset2
 02E0                   .dbline 0 ; func end
 02E0 0895              ret
 02E2                   .dbend
 02E2                   .dbfunc e LCD_init _LCD_init fV
 02E2           ;            ret -> <dead>
 02E2           ;        csdbuff -> y+0
                        .even
 02E2           _LCD_init::
 02E2 6097              sbiw R28,16
 02E4                   .dbline -1
 02E4                   .dbline 227
 02E4           ;  }
 02E4           ; //------------------------------------------------------------------------------- 
 02E4           ; void LCD_init(void)                                                              //模块复位与初始化  
 02E4           ;  {   
 02E4                   .dbline 229
 02E4           ;     UINT8 csdbuff[16],ret;
 02E4           ;       SPCR = 0x50; 
 02E4 80E5              ldi R24,80
 02E6 8DB9              out 0xd,R24
 02E8                   .dbline 230
 02E8           ;       DDRD|=1<<LCD_CS;
 02E8 8E9A              sbi 0x11,6
 02EA                   .dbline 231
 02EA           ;       DDRD|=1<<LCD_RS;
 02EA 8C9A              sbi 0x11,4
 02EC                   .dbline 232
 02EC           ;       DDRD|=1<<LCD_RST;
 02EC 8D9A              sbi 0x11,5
 02EE                   .dbline 234
 02EE           ;       
 02EE           ;     LCD_init_initialize();                                                                       //LCD初始化 
 02EE 93DF              xcall _LCD_init_initialize
 02F0                   .dbline 235
 02F0           ;       SdPage();                                                                                          // 清屏
 02F0 45DF              xcall _SdPage
 02F2                   .dbline 236
 02F2           ;       SPCR = 0x54;
 02F2 84E5              ldi R24,84
 02F4 8DB9              out 0xd,R24
 02F6                   .dbline -2
 02F6           L37:
 02F6 6096              adiw R28,16
 02F8                   .dbline 0 ; func end
 02F8 0895              ret
 02FA                   .dbsym l ret 1 c
 02FA                   .dbsym l csdbuff 0 A[16:16]c
 02FA                   .dbend

⌨️ 快捷键说明

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