📄 lcd.lis
字号:
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 + -