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

📄 ks0108.lis

📁 用avr控制的ks0108型128×64显示程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 007C 3228              or R3,R2
 007E 3082              std z+0,R3
 0080                   .dbline 88
 0080           ;     }
 0080 13C0              xjmp L19
 0082           L18:
 0082                   .dbline 90
 0082           ;     else
 0082           ;     {
 0082                   .dbline 91
 0082           ;         SET_LCD_CS2;   //cs2=1
 0082 20901400          lds R2,_LCD_CS2_BIT
 0086 E0910A00          lds R30,_LCD_CS2_PORT
 008A F0910B00          lds R31,_LCD_CS2_PORT+1
 008E 3080              ldd R3,z+0
 0090 3228              or R3,R2
 0092 3082              std z+0,R3
 0094                   .dbline 92
 0094           ;         CLEAR_LCD_CS1; //cs1=0
 0094 20901500          lds R2,_LCD_CS1_BIT
 0098 2094              com R2
 009A E0910C00          lds R30,_LCD_CS1_PORT
 009E F0910D00          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 93
 00A8           ;     } 
 00A8           L19:
 00A8                   .dbline 94
 00A8           ;     SET_LCD_CMD;
 00A8 20901700          lds R2,_LCD_DI_BIT
 00AC 2094              com R2
 00AE E0911000          lds R30,_LCD_DI_PORT
 00B2 F0911100          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 95
 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 96
 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 97
 00D4           ;     SET_LCD_READ;
 00D4 20901600          lds R2,_LCD_RW_BIT
 00D8 E0910E00          lds R30,_LCD_RW_PORT
 00DC F0910F00          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 98
 00E6           ;     SET_LCD_E;                                        
 00E6 20901300          lds R2,_LCD_EN_BIT
 00EA E0910800          lds R30,_LCD_EN_PORT
 00EE F0910900          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 99
 00F8           ;     asm("nop");       
 00F8 0000              nop
 00FA                   .dbline 100
 00FA           ;     asm("nop");
 00FA 0000              nop
 00FC                   .dbline 101
 00FC           ;     asm("nop");
 00FC 0000              nop
 00FE                   .dbline 102
 00FE           ;     asm("nop");
 00FE 0000              nop
 0100 1BC0              xjmp L21
 0102           L20:
 0102                   .dbline 104
 0102                   .dbline 105
 0102 20901300          lds R2,_LCD_EN_BIT
 0106 2094              com R2
 0108 E0910800          lds R30,_LCD_EN_PORT
 010C F0910900          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 106
 0116 0000              nop
 0118                   .dbline 107
 0118 0000              nop
 011A                   .dbline 108
 011A 0000              nop
 011C                   .dbline 109
 011C 0000              nop
 011E                   .dbline 110
 011E 20901300          lds R2,_LCD_EN_BIT
 0122 E0910800          lds R30,_LCD_EN_PORT
 0126 F0910900          lds R31,_LCD_EN_PORT+1
 012A 3080              ldd R3,z+0
 012C 3228              or R3,R2
 012E 3082              std z+0,R3
 0130                   .dbline 111
 0130 0000              nop
 0132                   .dbline 112
 0132 0000              nop
 0134                   .dbline 113
 0134 0000              nop
 0136                   .dbline 114
 0136 0000              nop
 0138                   .dbline 115
 0138           L21:
 0138                   .dbline 103
 0138           ;     while((*LCD_IP_PORT) & LCD_STATUS_BUSY)
 0138 E0910200          lds R30,_LCD_IP_PORT
 013C F0910300          lds R31,_LCD_IP_PORT+1
 0140 2080              ldd R2,z+0
 0142 27FC              sbrc R2,7
 0144 DECF              rjmp L20
 0146                   .dbline 116
 0146           ;     {
 0146           ;         CLEAR_LCD_E;                  
 0146           ;         asm("nop");
 0146           ;         asm("nop");
 0146           ;         asm("nop");
 0146           ;         asm("nop");
 0146           ;         SET_LCD_E;
 0146           ;         asm("nop");
 0146           ;         asm("nop");
 0146           ;         asm("nop");
 0146           ;         asm("nop");
 0146           ;     }
 0146           ;     CLEAR_LCD_E;
 0146 20901300          lds R2,_LCD_EN_BIT
 014A 2094              com R2
 014C E0910800          lds R30,_LCD_EN_PORT
 0150 F0910900          lds R31,_LCD_EN_PORT+1
 0154 3080              ldd R3,z+0
 0156 3220              and R3,R2
 0158 3082              std z+0,R3
 015A                   .dbline 117
 015A           ;     SET_LCD_WRITE;
 015A 20901600          lds R2,_LCD_RW_BIT
 015E 2094              com R2
 0160 E0910E00          lds R30,_LCD_RW_PORT
 0164 F0910F00          lds R31,_LCD_RW_PORT+1
 0168 3080              ldd R3,z+0
 016A 3220              and R3,R2
 016C 3082              std z+0,R3
 016E                   .dbline 118
 016E           ;     *LCD_OP_PORT = 0xff;
 016E 8FEF              ldi R24,255
 0170 E0910400          lds R30,_LCD_OP_PORT
 0174 F0910500          lds R31,_LCD_OP_PORT+1
 0178 8083              std z+0,R24
 017A                   .dbline 119
 017A           ;     asm("sei");//)asm("sei");
 017A 7894              sei
 017C                   .dbline -2
 017C           L17:
 017C                   .dbline 0 ; func end
 017C 0895              ret
 017E                   .dbsym r lr 16 c
 017E                   .dbend
 017E                   .dbfunc e write_LCD _write_LCD fV
 017E           ;           data -> y+4
 017E           ;             cd -> R20
 017E           ;             lr -> R22
                        .even
 017E           _write_LCD::
 017E 0E940000          xcall push_gset2
 0182 422F              mov R20,R18
 0184 602F              mov R22,R16
 0186                   .dbline -1
 0186                   .dbline 123
 0186           ; }
 0186           ; 
 0186           ; void write_LCD(unsigned char lr,unsigned char cd,unsigned char data) /*写入指令或数据*/
 0186           ; {     
 0186                   .dbline 124
 0186           ;     asm("cli");//)asm("cli");
 0186 F894              cli
 0188                   .dbline 125
 0188           ;     LCD_BUSY(lr);
 0188 062F              mov R16,R22
 018A 64DF              xcall _LCD_BUSY
 018C                   .dbline 126
 018C           ;     if(cd==CMD)
 018C 4423              tst R20
 018E 59F4              brne L24
 0190                   .dbline 127
 0190           ;     {
 0190                   .dbline 128
 0190           ;         SET_LCD_CMD;
 0190 20901700          lds R2,_LCD_DI_BIT
 0194 2094              com R2
 0196 E0911000          lds R30,_LCD_DI_PORT
 019A F0911100          lds R31,_LCD_DI_PORT+1
 019E 3080              ldd R3,z+0
 01A0 3220              and R3,R2
 01A2 3082              std z+0,R3
 01A4                   .dbline 129
 01A4           ;     }
 01A4 09C0              xjmp L25
 01A6           L24:
 01A6                   .dbline 131
 01A6           ;     else
 01A6           ;     {
 01A6                   .dbline 132
 01A6           ;         SET_LCD_DATA;
 01A6 20901700          lds R2,_LCD_DI_BIT
 01AA E0911000          lds R30,_LCD_DI_PORT
 01AE F0911100          lds R31,_LCD_DI_PORT+1
 01B2 3080              ldd R3,z+0
 01B4 3228              or R3,R2
 01B6 3082              std z+0,R3
 01B8                   .dbline 133
 01B8           ;     }
 01B8           L25:
 01B8                   .dbline 134
 01B8           ;     SET_LCD_WRITE; 
 01B8 20901600          lds R2,_LCD_RW_BIT
 01BC 2094              com R2
 01BE E0910E00          lds R30,_LCD_RW_PORT
 01C2 F0910F00          lds R31,_LCD_RW_PORT+1
 01C6 3080              ldd R3,z+0
 01C8 3220              and R3,R2
 01CA 3082              std z+0,R3
 01CC                   .dbline 135
 01CC           ;     SET_LCD_E;
 01CC 20901300          lds R2,_LCD_EN_BIT
 01D0 E0910800          lds R30,_LCD_EN_PORT
 01D4 F0910900          lds R31,_LCD_EN_PORT+1
 01D8 3080              ldd R3,z+0
 01DA 3228              or R3,R2
 01DC 3082              std z+0,R3
 01DE                   .dbline 136
 01DE           ;     *LCD_DIR_PORT = 0xff;
 01DE 8FEF              ldi R24,255
 01E0 E0910000          lds R30,_LCD_DIR_PORT
 01E4 F0910100          lds R31,_LCD_DIR_PORT+1
 01E8 8083              std z+0,R24
 01EA                   .dbline 137
 01EA           ;     *LCD_OP_PORT = data;
 01EA E0910400          lds R30,_LCD_OP_PORT
 01EE F0910500          lds R31,_LCD_OP_PORT+1
 01F2 0C80              ldd R0,y+4
 01F4 0082              std z+0,R0
 01F6                   .dbline 138
 01F6           ;     asm("nop");
 01F6 0000              nop
 01F8                   .dbline 139
 01F8           ;     asm("nop");
 01F8 0000              nop
 01FA                   .dbline 140
 01FA           ;     asm("nop");
 01FA 0000              nop
 01FC                   .dbline 141
 01FC           ;     asm("nop");
 01FC 0000              nop
 01FE                   .dbline 142
 01FE           ;     CLEAR_LCD_E;
 01FE 20901300          lds R2,_LCD_EN_BIT
 0202 2094              com R2
 0204 E0910800          lds R30,_LCD_EN_PORT
 0208 F0910900          lds R31,_LCD_EN_PORT+1
 020C 3080              ldd R3,z+0
 020E 3220              and R3,R2
 0210 3082              std z+0,R3
 0212                   .dbline 143
 0212           ;     *LCD_OP_PORT = 0xff;
 0212 E0910400          lds R30,_LCD_OP_PORT
 0216 F0910500          lds R31,_LCD_OP_PORT+1
 021A 8083              std z+0,R24
 021C                   .dbline 144
 021C           ;     asm("sei");
 021C 7894              sei
 021E                   .dbline -2
 021E           L23:
 021E 0E940000          xcall pop_gset2
 0222                   .dbline 0 ; func end
 0222 0895              ret
 0224                   .dbsym l data 4 c
 0224                   .dbsym r cd 20 c
 0224                   .dbsym r lr 22 c
 0224                   .dbend
 0224                   .dbfunc e read_LCD _read_LCD fc
 0224           ;           data -> R20
 0224           ;             lr -> R22
                        .even
 0224           _read_LCD::
 0224 0E940000          xcall push_gset2
 0228 602F              mov R22,R16
 022A                   .dbline -1
 022A                   .dbline 147
 022A           ; }
 022A           ; unsigned char read_LCD(unsigned char lr)        /*  读显示数据 */
 022A           ; {
 022A                   .dbline 149
 022A           ;     unsigned char data;
 022A           ;     asm("cli");
 022A F894              cli
 022C                   .dbline 150
 022C           ;     LCD_BUSY(lr);
 022C 062F              mov R16,R22
 022E 12DF              xcall _LCD_BUSY
 0230                   .dbline 151
 0230           ;     SET_LCD_DATA;
 0230 20901700          lds R2,_LCD_DI_BIT
 0234 E0911000          lds R30,_LCD_DI_PORT
 0238 F0911100          lds R31,_LCD_DI_PORT+1
 023C 3080              ldd R3,z+0
 023E 3228              or R3,R2
 0240 3082              std z+0,R3
 0242                   .dbline 152
 0242           ;     *LCD_DIR_PORT = 0x00;
 0242 2224              clr R2
 0244 E0910000          lds R30,_LCD_DIR_PORT
 0248 F0910100          lds R31,_LCD_DIR_PORT+1
 024C 2082              std z+0,R2
 024E                   .dbline 153
 024E           ;     *LCD_OP_PORT = 0xff;
 024E 8FEF              ldi R24,255
 0250 E0910400          lds R30,_LCD_OP_PORT
 0254 F0910500          lds R31,_LCD_OP_PORT+1
 0258 8083              std z+0,R24
 025A                   .dbline 154
 025A           ;     SET_LCD_READ;
 025A 20901600          lds R2,_LCD_RW_BIT
 025E E0910E00          lds R30,_LCD_RW_PORT
 0262 F0910F00          lds R31,_LCD_RW_PORT+1
 0266 3080              ldd R3,z+0
 0268 3228              or R3,R2

⌨️ 快捷键说明

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