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

📄 display.lis

📁 关于proteus的仿真实例
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -