📄 display.lis
字号:
0274 .dbline 145
0274 ; _NOP();
0274 0000 nop
0276 .dbline 146
0276 ; _NOP();
0276 0000 nop
0278 .dbline 147
0278 ; data=*LCD_IP_PORT;
0278 E0910200 lds R30,_LCD_IP_PORT
027C F0910300 lds R31,_LCD_IP_PORT+1
0280 4081 ldd R20,z+0
0282 .dbline 148
0282 ; CLEAR_LCD_E;
0282 2094 com R2
0284 E0910600 lds R30,_LCD_EN_PORT
0288 F0910700 lds R31,_LCD_EN_PORT+1
028C 3080 ldd R3,z+0
028E 3220 and R3,R2
0290 3082 std z+0,R3
0292 .dbline 149
0292 ; SET_LCD_WRITE;
0292 20901300 lds R2,_LCD_RW_BIT
0296 2094 com R2
0298 E0910C00 lds R30,_LCD_RW_PORT
029C F0910D00 lds R31,_LCD_RW_PORT+1
02A0 3080 ldd R3,z+0
02A2 3220 and R3,R2
02A4 3082 std z+0,R3
02A6 .dbline 150
02A6 ; LCD_BUSY(lr);
02A6 062F mov R16,R22
02A8 D5DE xcall _LCD_BUSY
02AA .dbline 151
02AA ; SET_LCD_DATA;
02AA 20901400 lds R2,_LCD_DI_BIT
02AE E0910E00 lds R30,_LCD_DI_PORT
02B2 F0910F00 lds R31,_LCD_DI_PORT+1
02B6 3080 ldd R3,z+0
02B8 3228 or R3,R2
02BA 3082 std z+0,R3
02BC .dbline 152
02BC ; *LCD_DIR_PORT = 0x00;
02BC 2224 clr R2
02BE E0910000 lds R30,_LCD_DIR_PORT
02C2 F0910100 lds R31,_LCD_DIR_PORT+1
02C6 2082 std z+0,R2
02C8 .dbline 153
02C8 ; *LCD_OP_PORT = 0xff;
02C8 8FEF ldi R24,255
02CA E0910400 lds R30,_LCD_OP_PORT
02CE F0910500 lds R31,_LCD_OP_PORT+1
02D2 8083 std z+0,R24
02D4 .dbline 154
02D4 ; SET_LCD_READ;
02D4 20901300 lds R2,_LCD_RW_BIT
02D8 E0910C00 lds R30,_LCD_RW_PORT
02DC F0910D00 lds R31,_LCD_RW_PORT+1
02E0 3080 ldd R3,z+0
02E2 3228 or R3,R2
02E4 3082 std z+0,R3
02E6 .dbline 155
02E6 ; SET_LCD_E;
02E6 20901000 lds R2,_LCD_EN_BIT
02EA E0910600 lds R30,_LCD_EN_PORT
02EE F0910700 lds R31,_LCD_EN_PORT+1
02F2 3080 ldd R3,z+0
02F4 3228 or R3,R2
02F6 3082 std z+0,R3
02F8 .dbline 156
02F8 ; _NOP();
02F8 0000 nop
02FA .dbline 157
02FA ; _NOP();
02FA 0000 nop
02FC .dbline 158
02FC ; _NOP();
02FC 0000 nop
02FE .dbline 159
02FE ; _NOP();
02FE 0000 nop
0300 .dbline 160
0300 ; data=*LCD_IP_PORT;
0300 E0910200 lds R30,_LCD_IP_PORT
0304 F0910300 lds R31,_LCD_IP_PORT+1
0308 4081 ldd R20,z+0
030A .dbline 161
030A ; CLEAR_LCD_E;
030A 2094 com R2
030C E0910600 lds R30,_LCD_EN_PORT
0310 F0910700 lds R31,_LCD_EN_PORT+1
0314 3080 ldd R3,z+0
0316 3220 and R3,R2
0318 3082 std z+0,R3
031A .dbline 162
031A ; SET_LCD_WRITE;
031A 20901300 lds R2,_LCD_RW_BIT
031E 2094 com R2
0320 E0910C00 lds R30,_LCD_RW_PORT
0324 F0910D00 lds R31,_LCD_RW_PORT+1
0328 3080 ldd R3,z+0
032A 3220 and R3,R2
032C 3082 std z+0,R3
032E .dbline 164
032E ;
032E ; _SEI();
032E 7894 sei
0330 .dbline 165
0330 ; return data;
0330 042F mov R16,R20
0332 .dbline -2
0332 L26:
0332 0E940000 xcall pop_gset2
0336 .dbline 0 ; func end
0336 0895 ret
0338 .dbsym r data 20 c
0338 .dbsym r lr 22 c
0338 .dbend
0338 .dbfunc e set_start_line_L _set_start_line_L fV
0338 ; line -> R20
.even
0338 _set_start_line_L::
0338 0E940000 xcall push_gset1
033C 402F mov R20,R16
033E 2197 sbiw R28,1
0340 .dbline -1
0340 .dbline 169
0340 ; }
0340 ;
0340 ; void set_start_line_L(unsigned char line) /*设置显示起始行*/ //0-63
0340 ; {
0340 .dbline 170
0340 ; write_LCD(LEFT,CMD,0xc0|line);
0340 842F mov R24,R20
0342 806C ori R24,192
0344 8883 std y+0,R24
0346 2227 clr R18
0348 0027 clr R16
034A 14DF xcall _write_LCD
034C .dbline -2
034C .dbline 171
034C ; }
034C L27:
034C 2196 adiw R28,1
034E 0E940000 xcall pop_gset1
0352 .dbline 0 ; func end
0352 0895 ret
0354 .dbsym r line 20 c
0354 .dbend
0354 .dbfunc e set_start_line_R _set_start_line_R fV
0354 ; line -> R20
.even
0354 _set_start_line_R::
0354 0E940000 xcall push_gset1
0358 402F mov R20,R16
035A 2197 sbiw R28,1
035C .dbline -1
035C .dbline 174
035C ;
035C ; void set_start_line_R(unsigned char line) /*设置显示起始行*/ //0-63
035C ; {
035C .dbline 175
035C ; write_LCD(RIGHT,CMD,0xc0|line);
035C 842F mov R24,R20
035E 806C ori R24,192
0360 8883 std y+0,R24
0362 2227 clr R18
0364 01E0 ldi R16,1
0366 06DF xcall _write_LCD
0368 .dbline -2
0368 .dbline 176
0368 ; }
0368 L28:
0368 2196 adiw R28,1
036A 0E940000 xcall pop_gset1
036E .dbline 0 ; func end
036E 0895 ret
0370 .dbsym r line 20 c
0370 .dbend
0370 .dbfunc e set_page_L _set_page_L fV
0370 ; page -> R20
.even
0370 _set_page_L::
0370 0E940000 xcall push_gset1
0374 402F mov R20,R16
0376 2197 sbiw R28,1
0378 .dbline -1
0378 .dbline 179
0378 ;
0378 ; void set_page_L(unsigned char page) /*设置X地址 设置页*/ //0-7
0378 ; {
0378 .dbline 180
0378 ; write_LCD(LEFT,CMD,0xb8|page);
0378 842F mov R24,R20
037A 886B ori R24,184
037C 8883 std y+0,R24
037E 2227 clr R18
0380 0027 clr R16
0382 F8DE xcall _write_LCD
0384 .dbline -2
0384 .dbline 181
0384 ; }
0384 L29:
0384 2196 adiw R28,1
0386 0E940000 xcall pop_gset1
038A .dbline 0 ; func end
038A 0895 ret
038C .dbsym r page 20 c
038C .dbend
038C .dbfunc e set_page_R _set_page_R fV
038C ; page -> R20
.even
038C _set_page_R::
038C 0E940000 xcall push_gset1
0390 402F mov R20,R16
0392 2197 sbiw R28,1
0394 .dbline -1
0394 .dbline 183
0394 ; void set_page_R(unsigned char page) /*设置X地址 设置页*/ //0-7
0394 ; {
0394 .dbline 184
0394 ; write_LCD(RIGHT,CMD,0xb8|page);
0394 842F mov R24,R20
0396 886B ori R24,184
0398 8883 std y+0,R24
039A 2227 clr R18
039C 01E0 ldi R16,1
039E EADE xcall _write_LCD
03A0 .dbline -2
03A0 .dbline 185
03A0 ; }
03A0 L30:
03A0 2196 adiw R28,1
03A2 0E940000 xcall pop_gset1
03A6 .dbline 0 ; func end
03A6 0895 ret
03A8 .dbsym r page 20 c
03A8 .dbend
03A8 .dbfunc e set_col_addr_L _set_col_addr_L fV
03A8 ; col -> R20
.even
03A8 _set_col_addr_L::
03A8 0E940000 xcall push_gset1
03AC 402F mov R20,R16
03AE 2197 sbiw R28,1
03B0 .dbline -1
03B0 .dbline 188
03B0 ;
03B0 ; void set_col_addr_L(unsigned char col) /*设置Y地址*/ //0-63
03B0 ; {
03B0 .dbline 189
03B0 ; write_LCD(LEFT,CMD,0x40|col);
03B0 842F mov R24,R20
03B2 8064 ori R24,64
03B4 8883 std y+0,R24
03B6 2227 clr R18
03B8 0027 clr R16
03BA DCDE xcall _write_LCD
03BC .dbline -2
03BC .dbline 190
03BC ; }
03BC L31:
03BC 2196 adiw R28,1
03BE 0E940000 xcall pop_gset1
03C2 .dbline 0 ; func end
03C2 0895 ret
03C4 .dbsym r col 20 c
03C4 .dbend
03C4 .dbfunc e set_col_addr_R _set_col_addr_R fV
03C4 ; col -> R20
.even
03C4 _set_col_addr_R::
03C4 0E940000 xcall push_gset1
03C8 402F mov R20,R16
03CA 2197 sbiw R28,1
03CC .dbline -1
03CC .dbline 193
03CC ;
03CC ; void set_col_addr_R(unsigned char col) /*设置Y地址*/ //0-63
03CC ; {
03CC .dbline 194
03CC ; write_LCD(RIGHT,CMD,0x40|col);
03CC 842F mov R24,R20
03CE 8064 ori R24,64
03D0 8883 std y+0,R24
03D2 2227 clr R18
03D4 01E0 ldi R16,1
03D6 CEDE xcall _write_LCD
03D8 .dbline -2
03D8 .dbline 195
03D8 ; }
03D8 L32:
03D8 2196 adiw R28,1
03DA 0E940000 xcall pop_gset1
03DE .dbline 0 ; func end
03DE 0895 ret
03E0 .dbsym r col 20 c
03E0 .dbend
03E0 .dbfunc e init_lcd _init_lcd fV
.even
03E0 _init_lcd::
03E0 2197 sbiw R28,1
03E2 .dbline -1
03E2 .dbline 198
03E2 ;
03E2 ; void init_lcd(void) /*初始化函数*/
03E2 ; {
03E2 .dbline 199
03E2 ; set_start_line_L(0); /*显示起始行为0*/
03E2 0027 clr R16
03E4 A9DF xcall _set_start_line_L
03E6 .dbline 200
03E6 ; set_start_line_R(0); /*显示起始行为0*/
03E6 0027 clr R16
03E8 B5DF xcall _set_start_line_R
03EA .dbline 201
03EA ; write_LCD(LEFT,CMD,DISPLAY_ON); /* 开显示 */
03EA 8FE3 ldi R24,63
03EC 8883 std y+0,R24
03EE 2227 clr R18
03F0 0027 clr R16
03F2 C0DE xcall _write_LCD
03F4 .dbline 202
03F4 ; write_LCD(RIGHT,CMD,DISPLAY_ON); /* 开显示 */
03F4 8FE3 ldi R24,63
03F6 8883 std y+0,R24
03F8 2227 clr R18
03FA 01E0 ldi R16,1
03FC BBDE xcall _write_LCD
03FE .dbline -2
03FE .dbline 203
03FE ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -