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

📄 display.lis

📁 关于proteus的仿真实例
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0094           ;         CLEAR_LCD_CS1; //cs1=0
 0094 20901200          lds R2,_LCD_CS1_BIT
 0098 2094              com R2
 009A E0910A00          lds R30,_LCD_CS1_PORT
 009E F0910B00          lds R31,_LCD_CS1_PORT+1
 00A2 3080              ldd R3,z+0
 00A4 3220              and R3,R2
 00A6 3082              std z+0,R3
 00A8                   .dbline 80
 00A8           ;     } 
 00A8           L19:
 00A8                   .dbline 81
 00A8           ;     SET_LCD_CMD;
 00A8 20901400          lds R2,_LCD_DI_BIT
 00AC 2094              com R2
 00AE E0910E00          lds R30,_LCD_DI_PORT
 00B2 F0910F00          lds R31,_LCD_DI_PORT+1
 00B6 3080              ldd R3,z+0
 00B8 3220              and R3,R2
 00BA 3082              std z+0,R3
 00BC                   .dbline 82
 00BC           ;     *LCD_DIR_PORT = 0x00;
 00BC 2224              clr R2
 00BE E0910000          lds R30,_LCD_DIR_PORT
 00C2 F0910100          lds R31,_LCD_DIR_PORT+1
 00C6 2082              std z+0,R2
 00C8                   .dbline 83
 00C8           ;     *LCD_OP_PORT = 0xff;              
 00C8 8FEF              ldi R24,255
 00CA E0910400          lds R30,_LCD_OP_PORT
 00CE F0910500          lds R31,_LCD_OP_PORT+1
 00D2 8083              std z+0,R24
 00D4                   .dbline 84
 00D4           ;     SET_LCD_READ;
 00D4 20901300          lds R2,_LCD_RW_BIT
 00D8 E0910C00          lds R30,_LCD_RW_PORT
 00DC F0910D00          lds R31,_LCD_RW_PORT+1
 00E0 3080              ldd R3,z+0
 00E2 3228              or R3,R2
 00E4 3082              std z+0,R3
 00E6                   .dbline 85
 00E6           ;     SET_LCD_E;                                        
 00E6 20901000          lds R2,_LCD_EN_BIT
 00EA E0910600          lds R30,_LCD_EN_PORT
 00EE F0910700          lds R31,_LCD_EN_PORT+1
 00F2 3080              ldd R3,z+0
 00F4 3228              or R3,R2
 00F6 3082              std z+0,R3
 00F8                   .dbline 86
 00F8           ;     _NOP();   
 00F8 0000              nop
 00FA                   .dbline 87
 00FA           ;     _NOP();
 00FA 0000              nop
 00FC                   .dbline 88
 00FC           ;     _NOP();
 00FC 0000              nop
 00FE                   .dbline 89
 00FE           ;     _NOP();
 00FE 0000              nop
 0100 16C0              xjmp L21
 0102           L20:
 0102                   .dbline 91
 0102                   .dbline 92
 0102 20901000          lds R2,_LCD_EN_BIT
 0106 2094              com R2
 0108 E0910600          lds R30,_LCD_EN_PORT
 010C F0910700          lds R31,_LCD_EN_PORT+1
 0110 3080              ldd R3,z+0
 0112 3220              and R3,R2
 0114 3082              std z+0,R3
 0116                   .dbline 93
 0116 0000              nop
 0118                   .dbline 94
 0118 0000              nop
 011A                   .dbline 95
 011A 0000              nop
 011C                   .dbline 96
 011C 0000              nop
 011E                   .dbline 97
 011E 20901000          lds R2,_LCD_EN_BIT
 0122 3228              or R3,R2
 0124 3082              std z+0,R3
 0126                   .dbline 98
 0126 0000              nop
 0128                   .dbline 99
 0128 0000              nop
 012A                   .dbline 100
 012A 0000              nop
 012C                   .dbline 101
 012C 0000              nop
 012E                   .dbline 102
 012E           L21:
 012E                   .dbline 90
 012E           ;     while((*LCD_IP_PORT) & LCD_STATUS_BUSY)
 012E E0910200          lds R30,_LCD_IP_PORT
 0132 F0910300          lds R31,_LCD_IP_PORT+1
 0136 2080              ldd R2,z+0
 0138 27FC              sbrc R2,7
 013A E3CF              rjmp L20
 013C                   .dbline 103
 013C           ;     {
 013C           ;         CLEAR_LCD_E;                  
 013C           ;         _NOP();
 013C           ;         _NOP();
 013C           ;         _NOP();
 013C           ;         _NOP();
 013C           ;         SET_LCD_E;
 013C           ;         _NOP();
 013C           ;         _NOP();
 013C           ;         _NOP();
 013C           ;         _NOP();
 013C           ;     }
 013C           ;     CLEAR_LCD_E;
 013C 20901000          lds R2,_LCD_EN_BIT
 0140 2094              com R2
 0142 E0910600          lds R30,_LCD_EN_PORT
 0146 F0910700          lds R31,_LCD_EN_PORT+1
 014A 3080              ldd R3,z+0
 014C 3220              and R3,R2
 014E 3082              std z+0,R3
 0150                   .dbline 104
 0150           ;     SET_LCD_WRITE;
 0150 20901300          lds R2,_LCD_RW_BIT
 0154 2094              com R2
 0156 E0910C00          lds R30,_LCD_RW_PORT
 015A F0910D00          lds R31,_LCD_RW_PORT+1
 015E 3080              ldd R3,z+0
 0160 3220              and R3,R2
 0162 3082              std z+0,R3
 0164                   .dbline 105
 0164           ;     *LCD_OP_PORT = 0xff;
 0164 8FEF              ldi R24,255
 0166 E0910400          lds R30,_LCD_OP_PORT
 016A F0910500          lds R31,_LCD_OP_PORT+1
 016E 8083              std z+0,R24
 0170                   .dbline 106
 0170           ;     asm("sei");//)asm("sei");
 0170 7894              sei
 0172                   .dbline -2
 0172                   .dbline 107
 0172           ; }
 0172           L17:
 0172                   .dbline 0 ; func end
 0172 0895              ret
 0174                   .dbsym l status 1 c
 0174                   .dbsym r lr 16 c
 0174                   .dbend
 0174                   .dbfunc e write_LCD _write_LCD fV
 0174           ;           data -> y+4
 0174           ;             cd -> R20
 0174           ;             lr -> R22
                        .even
 0174           _write_LCD::
 0174 0E940000          xcall push_gset2
 0178 422F              mov R20,R18
 017A 602F              mov R22,R16
 017C                   .dbline -1
 017C                   .dbline 110
 017C           ; 
 017C           ; void write_LCD(unsigned char lr,unsigned char cd,unsigned char data) /*写入指令或数据*/
 017C           ; {     
 017C                   .dbline 111
 017C           ;     _CLI();//_CLI();
 017C F894              cli
 017E                   .dbline 112
 017E           ;     LCD_BUSY(lr);
 017E 062F              mov R16,R22
 0180 69DF              xcall _LCD_BUSY
 0182                   .dbline 113
 0182           ;     if(cd==CMD)
 0182 4423              tst R20
 0184 59F4              brne L24
 0186                   .dbline 114
 0186           ;     {
 0186                   .dbline 115
 0186           ;         SET_LCD_CMD;
 0186 20901400          lds R2,_LCD_DI_BIT
 018A 2094              com R2
 018C E0910E00          lds R30,_LCD_DI_PORT
 0190 F0910F00          lds R31,_LCD_DI_PORT+1
 0194 3080              ldd R3,z+0
 0196 3220              and R3,R2
 0198 3082              std z+0,R3
 019A                   .dbline 116
 019A           ;     }
 019A 09C0              xjmp L25
 019C           L24:
 019C                   .dbline 118
 019C           ;     else
 019C           ;     {
 019C                   .dbline 119
 019C           ;         SET_LCD_DATA;
 019C 20901400          lds R2,_LCD_DI_BIT
 01A0 E0910E00          lds R30,_LCD_DI_PORT
 01A4 F0910F00          lds R31,_LCD_DI_PORT+1
 01A8 3080              ldd R3,z+0
 01AA 3228              or R3,R2
 01AC 3082              std z+0,R3
 01AE                   .dbline 120
 01AE           ;     }
 01AE           L25:
 01AE                   .dbline 121
 01AE           ;     SET_LCD_WRITE; 
 01AE 20901300          lds R2,_LCD_RW_BIT
 01B2 2094              com R2
 01B4 E0910C00          lds R30,_LCD_RW_PORT
 01B8 F0910D00          lds R31,_LCD_RW_PORT+1
 01BC 3080              ldd R3,z+0
 01BE 3220              and R3,R2
 01C0 3082              std z+0,R3
 01C2                   .dbline 122
 01C2           ;     SET_LCD_E;
 01C2 20901000          lds R2,_LCD_EN_BIT
 01C6 E0910600          lds R30,_LCD_EN_PORT
 01CA F0910700          lds R31,_LCD_EN_PORT+1
 01CE 3080              ldd R3,z+0
 01D0 3228              or R3,R2
 01D2 3082              std z+0,R3
 01D4                   .dbline 123
 01D4           ;     *LCD_DIR_PORT = 0xff;
 01D4 8FEF              ldi R24,255
 01D6 E0910000          lds R30,_LCD_DIR_PORT
 01DA F0910100          lds R31,_LCD_DIR_PORT+1
 01DE 8083              std z+0,R24
 01E0                   .dbline 124
 01E0           ;     *LCD_OP_PORT = data;
 01E0 E0910400          lds R30,_LCD_OP_PORT
 01E4 F0910500          lds R31,_LCD_OP_PORT+1
 01E8 0C80              ldd R0,y+4
 01EA 0082              std z+0,R0
 01EC                   .dbline 125
 01EC           ;     _NOP();
 01EC 0000              nop
 01EE                   .dbline 126
 01EE           ;     _NOP();
 01EE 0000              nop
 01F0                   .dbline 127
 01F0           ;     _NOP();
 01F0 0000              nop
 01F2                   .dbline 128
 01F2           ;     _NOP();
 01F2 0000              nop
 01F4                   .dbline 129
 01F4           ;     CLEAR_LCD_E;
 01F4 2094              com R2
 01F6 E0910600          lds R30,_LCD_EN_PORT
 01FA F0910700          lds R31,_LCD_EN_PORT+1
 01FE 3080              ldd R3,z+0
 0200 3220              and R3,R2
 0202 3082              std z+0,R3
 0204                   .dbline 130
 0204           ;     *LCD_OP_PORT = 0xff;
 0204 E0910400          lds R30,_LCD_OP_PORT
 0208 F0910500          lds R31,_LCD_OP_PORT+1
 020C 8083              std z+0,R24
 020E                   .dbline 131
 020E           ;     _SEI();
 020E 7894              sei
 0210                   .dbline -2
 0210                   .dbline 132
 0210           ; }
 0210           L23:
 0210 0E940000          xcall pop_gset2
 0214                   .dbline 0 ; func end
 0214 0895              ret
 0216                   .dbsym l data 4 c
 0216                   .dbsym r cd 20 c
 0216                   .dbsym r lr 22 c
 0216                   .dbend
 0216                   .dbfunc e read_LCD _read_LCD fc
 0216           ;           data -> R20
 0216           ;             lr -> R22
                        .even
 0216           _read_LCD::
 0216 0E940000          xcall push_gset2
 021A 602F              mov R22,R16
 021C                   .dbline -1
 021C                   .dbline 134
 021C           ; unsigned char read_LCD(unsigned char lr)        /*  读显示数据 */
 021C           ; {
 021C                   .dbline 136
 021C           ;     unsigned char data;
 021C           ;     _CLI();
 021C F894              cli
 021E                   .dbline 137
 021E           ;     LCD_BUSY(lr);
 021E 062F              mov R16,R22
 0220 19DF              xcall _LCD_BUSY
 0222                   .dbline 138
 0222           ;     SET_LCD_DATA;
 0222 20901400          lds R2,_LCD_DI_BIT
 0226 E0910E00          lds R30,_LCD_DI_PORT
 022A F0910F00          lds R31,_LCD_DI_PORT+1
 022E 3080              ldd R3,z+0
 0230 3228              or R3,R2
 0232 3082              std z+0,R3
 0234                   .dbline 139
 0234           ;     *LCD_DIR_PORT = 0x00;
 0234 2224              clr R2
 0236 E0910000          lds R30,_LCD_DIR_PORT
 023A F0910100          lds R31,_LCD_DIR_PORT+1
 023E 2082              std z+0,R2
 0240                   .dbline 140
 0240           ;     *LCD_OP_PORT = 0xff;
 0240 8FEF              ldi R24,255
 0242 E0910400          lds R30,_LCD_OP_PORT
 0246 F0910500          lds R31,_LCD_OP_PORT+1
 024A 8083              std z+0,R24
 024C                   .dbline 141
 024C           ;     SET_LCD_READ;
 024C 20901300          lds R2,_LCD_RW_BIT
 0250 E0910C00          lds R30,_LCD_RW_PORT
 0254 F0910D00          lds R31,_LCD_RW_PORT+1
 0258 3080              ldd R3,z+0
 025A 3228              or R3,R2
 025C 3082              std z+0,R3
 025E                   .dbline 142
 025E           ;     SET_LCD_E;
 025E 20901000          lds R2,_LCD_EN_BIT
 0262 E0910600          lds R30,_LCD_EN_PORT
 0266 F0910700          lds R31,_LCD_EN_PORT+1
 026A 3080              ldd R3,z+0
 026C 3228              or R3,R2
 026E 3082              std z+0,R3
 0270                   .dbline 143
 0270           ;     _NOP();
 0270 0000              nop
 0272                   .dbline 144
 0272           ;     _NOP();
 0272 0000              nop

⌨️ 快捷键说明

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