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

📄 lcd.lis

📁 atmega169 lcd 程序用于驱动lcd
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00DE           ;                       //j=j<<n;                       
 00DE           ;                       m=j&0x000f;
 00DE B501              movw R22,R10
 00E0 6F70              andi R22,15
 00E2 7070              andi R23,0
 00E4                   .dbline 109
 00E4           ;                       LCDDR0=m;
 00E4 6093EC00          sts 236,R22
 00E8                   .dbline 110
 00E8           ;                       m=(j>>4)&0x000f;
 00E8 B501              movw R22,R10
 00EA 7695              lsr R23
 00EC 6795              ror R22
 00EE 7695              lsr R23
 00F0 6795              ror R22
 00F2 7695              lsr R23
 00F4 6795              ror R22
 00F6 7695              lsr R23
 00F8 6795              ror R22
 00FA 6F70              andi R22,15
 00FC 7070              andi R23,0
 00FE                   .dbline 111
 00FE           ;                       LCDDR5=m; 
 00FE 6093F100          sts 241,R22
 0102                   .dbline 112
 0102           ;                       m=(j>>8)&0x000f;
 0102 B501              movw R22,R10
 0104 672F              mov R22,R23
 0106 7727              clr R23
 0108 6F70              andi R22,15
 010A 7070              andi R23,0
 010C                   .dbline 113
 010C           ;                       LCDDR10=m;
 010C 6093F600          sts 246,R22
 0110                   .dbline 114
 0110           ;                       m=(j>>12)&0x000f;
 0110 2CE0              ldi R18,12
 0112 30E0              ldi R19,0
 0114 8501              movw R16,R10
 0116 0E940000          xcall lsr16
 011A B801              movw R22,R16
 011C 6F70              andi R22,15
 011E 7070              andi R23,0
 0120                   .dbline 115
 0120           ;                       LCDDR15=m;
 0120 6093FB00          sts 251,R22
 0124                   .dbline 118
 0124           ;                       
 0124           ;                       
 0124           ;                       j=LCD_character_table[i];               //左2位
 0124 02E0              ldi R16,2
 0126 10E0              ldi R17,0
 0128 9A01              movw R18,R20
 012A 0E940000          xcall empy16s
 012E F801              movw R30,R16
 0130 80E0              ldi R24,<_LCD_character_table
 0132 90E0              ldi R25,>_LCD_character_table
 0134 E80F              add R30,R24
 0136 F91F              adc R31,R25
 0138 A590              lpm R10,Z+
 013A B490              lpm R11,Z
 013C                   .dbline 119
 013C           ;                       j=j<<2;                 
 013C AA0C              lsl R10
 013E BB1C              rol R11
 0140 AA0C              lsl R10
 0142 BB1C              rol R11
 0144                   .dbline 120
 0144           ;                       m=j&0x000f;
 0144 B501              movw R22,R10
 0146 6F70              andi R22,15
 0148 7070              andi R23,0
 014A                   .dbline 121
 014A           ;                       LCDDR0|=m;
 014A 2090EC00          lds R2,236
 014E 3324              clr R3
 0150 262A              or R2,R22
 0152 372A              or R3,R23
 0154 2092EC00          sts 236,R2
 0158                   .dbline 122
 0158           ;                       m=(j>>4)&0x000f;
 0158 B501              movw R22,R10
 015A 7695              lsr R23
 015C 6795              ror R22
 015E 7695              lsr R23
 0160 6795              ror R22
 0162 7695              lsr R23
 0164 6795              ror R22
 0166 7695              lsr R23
 0168 6795              ror R22
 016A 6F70              andi R22,15
 016C 7070              andi R23,0
 016E                   .dbline 123
 016E           ;                       LCDDR5|=m; 
 016E 2090F100          lds R2,241
 0172 3324              clr R3
 0174 262A              or R2,R22
 0176 372A              or R3,R23
 0178 2092F100          sts 241,R2
 017C                   .dbline 124
 017C           ;                       m=(j>>8)&0x000f;
 017C B501              movw R22,R10
 017E 672F              mov R22,R23
 0180 7727              clr R23
 0182 6F70              andi R22,15
 0184 7070              andi R23,0
 0186                   .dbline 125
 0186           ;                       LCDDR10|=m;
 0186 2090F600          lds R2,246
 018A 3324              clr R3
 018C 262A              or R2,R22
 018E 372A              or R3,R23
 0190 2092F600          sts 246,R2
 0194                   .dbline 126
 0194           ;                       m=(j>>12)&0x000f;
 0194 2CE0              ldi R18,12
 0196 30E0              ldi R19,0
 0198 8501              movw R16,R10
 019A 0E940000          xcall lsr16
 019E B801              movw R22,R16
 01A0 6F70              andi R22,15
 01A2 7070              andi R23,0
 01A4                   .dbline 127
 01A4           ;                       LCDDR15|=m;
 01A4 2090FB00          lds R2,251
 01A8 3324              clr R3
 01AA 262A              or R2,R22
 01AC 372A              or R3,R23
 01AE 2092FB00          sts 251,R2
 01B2                   .dbline 129
 01B2           ;                       
 01B2           ;                       m=LCDDR0<<2;                     //左3位
 01B2 6091EC00          lds R22,236
 01B6 7727              clr R23
 01B8 660F              lsl R22
 01BA 771F              rol R23
 01BC 660F              lsl R22
 01BE 771F              rol R23
 01C0                   .dbline 130
 01C0           ;                       LCDDR0|=m;
 01C0 2090EC00          lds R2,236
 01C4 3324              clr R3
 01C6 262A              or R2,R22
 01C8 372A              or R3,R23
 01CA 2092EC00          sts 236,R2
 01CE                   .dbline 131
 01CE           ;                       m=LCDDR5<<2;
 01CE 6091F100          lds R22,241
 01D2 7727              clr R23
 01D4 660F              lsl R22
 01D6 771F              rol R23
 01D8 660F              lsl R22
 01DA 771F              rol R23
 01DC                   .dbline 132
 01DC           ;                       LCDDR5|=m;
 01DC 2090F100          lds R2,241
 01E0 3324              clr R3
 01E2 262A              or R2,R22
 01E4 372A              or R3,R23
 01E6 2092F100          sts 241,R2
 01EA                   .dbline 133
 01EA           ;                       m=LCDDR10<<2;
 01EA 6091F600          lds R22,246
 01EE 7727              clr R23
 01F0 660F              lsl R22
 01F2 771F              rol R23
 01F4 660F              lsl R22
 01F6 771F              rol R23
 01F8                   .dbline 134
 01F8           ;                       LCDDR10|=m;
 01F8 2090F600          lds R2,246
 01FC 3324              clr R3
 01FE 262A              or R2,R22
 0200 372A              or R3,R23
 0202 2092F600          sts 246,R2
 0206                   .dbline 135
 0206           ;                       m=LCDDR15<<2;
 0206 6091FB00          lds R22,251
 020A 7727              clr R23
 020C 660F              lsl R22
 020E 771F              rol R23
 0210 660F              lsl R22
 0212 771F              rol R23
 0214                   .dbline 136
 0214           ;                       LCDDR15|=m;
 0214 2090FB00          lds R2,251
 0218 3324              clr R3
 021A 262A              or R2,R22
 021C 372A              or R3,R23
 021E 2092FB00          sts 251,R2
 0222                   .dbline 138
 0222           ;                       
 0222           ;                       m=LCDDR0<<2;                        //左4位
 0222 6091EC00          lds R22,236
 0226 7727              clr R23
 0228 660F              lsl R22
 022A 771F              rol R23
 022C 660F              lsl R22
 022E 771F              rol R23
 0230                   .dbline 139
 0230           ;                       LCDDR0|=m;
 0230 2090EC00          lds R2,236
 0234 3324              clr R3
 0236 262A              or R2,R22
 0238 372A              or R3,R23
 023A 2092EC00          sts 236,R2
 023E                   .dbline 140
 023E           ;                       m=LCDDR5<<2;
 023E 6091F100          lds R22,241
 0242 7727              clr R23
 0244 660F              lsl R22
 0246 771F              rol R23
 0248 660F              lsl R22
 024A 771F              rol R23
 024C                   .dbline 141
 024C           ;                       LCDDR5|=m;
 024C 2090F100          lds R2,241
 0250 3324              clr R3
 0252 262A              or R2,R22
 0254 372A              or R3,R23
 0256 2092F100          sts 241,R2
 025A                   .dbline 142
 025A           ;                       m=LCDDR10<<2;
 025A 6091F600          lds R22,246
 025E 7727              clr R23
 0260 660F              lsl R22
 0262 771F              rol R23
 0264 660F              lsl R22
 0266 771F              rol R23
 0268                   .dbline 143
 0268           ;                       LCDDR10|=m;
 0268 2090F600          lds R2,246
 026C 3324              clr R3
 026E 262A              or R2,R22
 0270 372A              or R3,R23
 0272 2092F600          sts 246,R2
 0276                   .dbline 144
 0276           ;                       m=LCDDR15<<2;
 0276 6091FB00          lds R22,251
 027A 7727              clr R23
 027C 660F              lsl R22
 027E 771F              rol R23
 0280 660F              lsl R22
 0282 771F              rol R23
 0284                   .dbline 145
 0284           ;                       LCDDR15|=m;
 0284 2090FB00          lds R2,251
 0288 3324              clr R3
 028A 262A              or R2,R22
 028C 372A              or R3,R23
 028E 2092FB00          sts 251,R2
 0292                   .dbline 149
 0292           ;                       
 0292           ;                       
 0292           ;                       
 0292           ;                       j=LCD_character_table[i];                       //左5位         
 0292 02E0              ldi R16,2
 0294 10E0              ldi R17,0
 0296 9A01              movw R18,R20
 0298 0E940000          xcall empy16s
 029C F801              movw R30,R16
 029E 80E0              ldi R24,<_LCD_character_table
 02A0 90E0              ldi R25,>_LCD_character_table
 02A2 E80F              add R30,R24
 02A4 F91F              adc R31,R25
 02A6 A590              lpm R10,Z+
 02A8 B490              lpm R11,Z
 02AA                   .dbline 150
 02AA           ;                       m=j&0x000f;
 02AA B501              movw R22,R10
 02AC 6F70              andi R22,15
 02AE 7070              andi R23,0
 02B0                   .dbline 151
 02B0           ;                       LCDDR1=m;
 02B0 6093ED00          sts 237,R22
 02B4                   .dbline 152
 02B4           ;                       m=(j>>4)&0x000f;
 02B4 B501              movw R22,R10
 02B6 7695              lsr R23
 02B8 6795              ror R22
 02BA 7695              lsr R23
 02BC 6795              ror R22
 02BE 7695              lsr R23
 02C0 6795              ror R22
 02C2 7695              lsr R23
 02C4 6795              ror R22
 02C6 6F70              andi R22,15
 02C8 7070              andi R23,0
 02CA                   .dbline 153
 02CA           ;                       LCDDR6=m; 
 02CA 6093F200          sts 242,R22
 02CE                   .dbline 154
 02CE           ;                       m=(j>>8)&0x000f;
 02CE B501              movw R22,R10
 02D0 672F              mov R22,R23
 02D2 7727              clr R23
 02D4 6F70              andi R22,15
 02D6 7070              andi R23,0
 02D8                   .dbline 155
 02D8           ;                       LCDDR11=m;
 02D8 6093F700          sts 247,R22
 02DC                   .dbline 156
 02DC           ;                       m=(j>>12)&0x000f;
 02DC 2CE0              ldi R18,12
 02DE 30E0              ldi R19,0
 02E0 8501              movw R16,R10
 02E2 0E940000          xcall lsr16
 02E6 B801              movw R22,R16
 02E8 6F70              andi R22,15
 02EA 7070              andi R23,0
 02EC                   .dbline 157
 02EC           ;                       LCDDR16=m;
 02EC 6093FC00          sts 252,R22
 02F0                   .dbline 159
 02F0           ;                       
 02F0           ;                       j=LCD_character_table[i];          //左6位
 02F0 02E0              ldi R16,2
 02F2 10E0              ldi R17,0
 02F4 9A01              movw R18,R20
 02F6 0E940000          xcall empy16s
 02FA F801              movw R30,R16
 02FC 80E0              ldi R24,<_LCD_character_table
 02FE 90E0              ldi R25,>_LCD_character_table
 0300 E80F              add R30,R24
 0302 F91F              adc R31,R25
 0304 A590              lpm R10,Z+
 0306 B490              lpm R11,Z
 0308                   .dbline 160
 0308           ;                       m=j&0x000f;

⌨️ 快捷键说明

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