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

📄 main.lis

📁 AVR单片机mega8上的lcm_12832液晶驱动程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0156           ;       temp |= 0x80;
 0156 4068              ori R20,128
 0158                   .dbline 153
 0158           ;       send_i(temp);
 0158 042F              mov R16,R20
 015A 96DF              rcall _send_i
 015C                   .dbline -2
 015C                   .dbline 154
 015C           ; }
 015C           L34:
 015C 00D0              rcall pop_gset2
 015E                   .dbline 0 ; func end
 015E 0895              ret
 0160                   .dbsym r temp 20 c
 0160                   .dbsym r posy 22 c
 0160                   .dbsym r posx 20 c
 0160                   .dbend
 0160                   .dbfunc e disponechar _disponechar fV
 0160           ;          wdata -> y+4
 0160           ;              y -> R22
 0160           ;              x -> R20
                        .even
 0160           _disponechar::
 0160 00D0              rcall push_gset2
 0162 622F              mov R22,R18
 0164 402F              mov R20,R16
 0166                   .dbline -1
 0166                   .dbline 159
 0166           ; 
 0166           ; /*=======================================================
 0166           ;  按指定位置显示数出一个字符
 0166           ; =======================================================*/
 0166           ; void disponechar(uchar x,uchar y,uchar wdata) {
 0166                   .dbline 161
 0166           ; 
 0166           ;       locateXY( x, y );                               // 定位显示地址
 0166 262F              mov R18,R22
 0168 042F              mov R16,R20
 016A EEDF              rcall _locateXY
 016C                   .dbline 162
 016C           ;       send_d( wdata );                        // 写字符
 016C 0C81              ldd R16,y+4
 016E 9EDF              rcall _send_d
 0170                   .dbline -2
 0170                   .dbline 163
 0170           ; }
 0170           L37:
 0170 00D0              rcall pop_gset2
 0172                   .dbline 0 ; func end
 0172 0895              ret
 0174                   .dbsym l wdata 4 c
 0174                   .dbsym r y 22 c
 0174                   .dbsym r x 20 c
 0174                   .dbend
 0174                   .dbfunc e eputstr _eputstr fV
 0174           ;              l -> R20
 0174           ;              i -> R22
 0174           ;            ptr -> R10,R11
 0174           ;              y -> R12
 0174           ;              x -> R14
                        .even
 0174           _eputstr::
 0174 00D0              rcall push_gset5
 0176 C22E              mov R12,R18
 0178 E02E              mov R14,R16
 017A 2197              sbiw R28,1
 017C AB84              ldd R10,y+11
 017E BC84              ldd R11,y+12
 0180                   .dbline -1
 0180                   .dbline 168
 0180           ; 
 0180           ; /*=======================================================
 0180           ;  显示字符串
 0180           ; =======================================================*/
 0180           ; void eputstr(uchar x,uchar y, uchar *ptr) {
 0180                   .dbline 169
 0180           ;     uchar i,l=0;
 0180 4427              clr R20
 0182 01C0              rjmp L40
 0184           L39:
 0184                   .dbline 170
 0184                   .dbline 170
 0184 4395              inc R20
 0186                   .dbline 170
 0186           L40:
 0186                   .dbline 170
 0186           ;       while (ptr[l] >31){l++;};
 0186 E42F              mov R30,R20
 0188 FF27              clr R31
 018A EA0D              add R30,R10
 018C FB1D              adc R31,R11
 018E 2080              ldd R2,z+0
 0190 8FE1              ldi R24,31
 0192 8215              cp R24,R2
 0194 B8F3              brlo L39
 0196                   .dbline 170
 0196                   .dbline 171
 0196 6627              clr R22
 0198 14C0              rjmp L45
 019A           L42:
 019A                   .dbline 171
 019A           ;       for (i=0;i<l;i++) {
 019A                   .dbline 172
 019A           ;               disponechar(x++,y,ptr[i]);
 019A E62F              mov R30,R22
 019C FF27              clr R31
 019E EA0D              add R30,R10
 01A0 FB1D              adc R31,R11
 01A2 2080              ldd R2,z+0
 01A4 2882              std y+0,R2
 01A6 2C2D              mov R18,R12
 01A8 2E2C              mov R2,R14
 01AA 822D              mov R24,R2
 01AC 8F5F              subi R24,255    ; addi 1
 01AE E82E              mov R14,R24
 01B0 022D              mov R16,R2
 01B2 D6DF              rcall _disponechar
 01B4                   .dbline 173
 01B4           ;               if ( x == 16 ){
 01B4 8E2D              mov R24,R14
 01B6 8031              cpi R24,16
 01B8 19F4              brne L46
 01BA                   .dbline 173
 01BA                   .dbline 174
 01BA           ;                       x = 0; y ^= 1;
 01BA EE24              clr R14
 01BC                   .dbline 174
 01BC 81E0              ldi R24,1
 01BE C826              eor R12,R24
 01C0                   .dbline 175
 01C0           ;               }
 01C0           L46:
 01C0                   .dbline 176
 01C0           L43:
 01C0                   .dbline 171
 01C0 6395              inc R22
 01C2           L45:
 01C2                   .dbline 171
 01C2 6417              cp R22,R20
 01C4 50F3              brlo L42
 01C6                   .dbline -2
 01C6                   .dbline 177
 01C6           ;       }
 01C6           ; }
 01C6           L38:
 01C6 2196              adiw R28,1
 01C8 00D0              rcall pop_gset5
 01CA                   .dbline 0 ; func end
 01CA 0895              ret
 01CC                   .dbsym r l 20 c
 01CC                   .dbsym r i 22 c
 01CC                   .dbsym r ptr 10 pc
 01CC                   .dbsym r y 12 c
 01CC                   .dbsym r x 14 c
 01CC                   .dbend
 01CC                   .dbfunc e main _main fV
                        .even
 01CC           _main::
 01CC 2297              sbiw R28,2
 01CE                   .dbline -1
 01CE                   .dbline 180
 01CE           ; 
 01CE           ; void main(void)
 01CE           ; {
 01CE                   .dbline 181
 01CE           ;    ledon();
 01CE 18DF              rcall _ledon
 01D0                   .dbline 182
 01D0           ;    lcd_init();
 01D0 8DDF              rcall _lcd_init
 01D2                   .dbline 183
 01D2           ;    delay(50);
 01D2 02E3              ldi R16,50
 01D4 10E0              ldi R17,0
 01D6 1DDF              rcall _delay
 01D8                   .dbline 184
 01D8           ;    eputstr(0,0,exampl);               // 上面一行显示一个预定字符串
 01D8 80E0              ldi R24,<_exampl
 01DA 90E0              ldi R25,>_exampl
 01DC 9983              std y+1,R25
 01DE 8883              std y+0,R24
 01E0 2227              clr R18
 01E2 0027              clr R16
 01E4 C7DF              rcall _eputstr
 01E6                   .dbline 185
 01E6           ;    eputstr(0,0,exampl2);
 01E6 80E0              ldi R24,<_exampl2
 01E8 90E0              ldi R25,>_exampl2
 01EA 9983              std y+1,R25
 01EC 8883              std y+0,R24
 01EE 2227              clr R18
 01F0 0027              clr R16
 01F2 C0DF              rcall _eputstr
 01F4                   .dbline 187
 01F4           ;    //putstring(0x80,exampl);
 01F4           ;    delayus(500000);
 01F4 40E2              ldi R20,32
 01F6 51EA              ldi R21,161
 01F8 67E0              ldi R22,7
 01FA 70E0              ldi R23,0
 01FC 042F              mov R16,R20
 01FE 2EDF              rcall _delayus
 0200                   .dbline 188
 0200           ;    delayus(500000);
 0200 40E2              ldi R20,32
 0202 51EA              ldi R21,161
 0204 67E0              ldi R22,7
 0206 70E0              ldi R23,0
 0208 042F              mov R16,R20
 020A 28DF              rcall _delayus
 020C                   .dbline 189
 020C           ;    delayus(500000);
 020C 40E2              ldi R20,32
 020E 51EA              ldi R21,161
 0210 67E0              ldi R22,7
 0212 70E0              ldi R23,0
 0214 042F              mov R16,R20
 0216 22DF              rcall _delayus
 0218                   .dbline 190
 0218           ;    delayus(500000);
 0218 40E2              ldi R20,32
 021A 51EA              ldi R21,161
 021C 67E0              ldi R22,7
 021E 70E0              ldi R23,0
 0220 042F              mov R16,R20
 0222 1CDF              rcall _delayus
 0224                   .dbline 191
 0224           ;    delayus(500000);
 0224 40E2              ldi R20,32
 0226 51EA              ldi R21,161
 0228 67E0              ldi R22,7
 022A 70E0              ldi R23,0
 022C 042F              mov R16,R20
 022E 16DF              rcall _delayus
 0230                   .dbline 192
 0230           ;    delayus(500000);
 0230 40E2              ldi R20,32
 0232 51EA              ldi R21,161
 0234 67E0              ldi R22,7
 0236 70E0              ldi R23,0
 0238 042F              mov R16,R20
 023A 10DF              rcall _delayus
 023C                   .dbline 193
 023C           ;    delayus(500000);
 023C 40E2              ldi R20,32
 023E 51EA              ldi R21,161
 0240 67E0              ldi R22,7
 0242 70E0              ldi R23,0
 0244 042F              mov R16,R20
 0246 0ADF              rcall _delayus
 0248                   .dbline 194
 0248           ;    delayus(500000);
 0248 40E2              ldi R20,32
 024A 51EA              ldi R21,161
 024C 67E0              ldi R22,7
 024E 70E0              ldi R23,0
 0250 042F              mov R16,R20
 0252 04DF              rcall _delayus
 0254                   .dbline 196
 0254           ; 
 0254           ;    ledoff();
 0254 DADE              rcall _ledoff
 0256                   .dbline 197
 0256           ;    DDRD = 0xff;
 0256 8FEF              ldi R24,255
 0258 81BB              out 0x11,R24
 025A                   .dbline 198
 025A           ;    PORTD = 0;
 025A 2224              clr R2
 025C 22BA              out 0x12,R2
 025E                   .dbline 199
 025E           ;    wait();
 025E 04DF              rcall _wait
 0260           L49:
 0260                   .dbline 200
 0260           L50:
 0260                   .dbline 200
 0260 FFCF              rjmp L49
 0262           X3:
 0262                   .dbline -2
 0262                   .dbline 201
 0262           ;    while(1);
 0262           ; }
 0262           L48:
 0262 2296              adiw R28,2
 0264                   .dbline 0 ; func end
 0264 0895              ret
 0266                   .dbend

⌨️ 快捷键说明

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