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

📄 lcd.lis

📁 基于AVR实验平台下ATMega128芯片实习作业
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 017E           L39:
 017E FB01              movw R30,R22
 0180 2080              ldd R2,z+0
 0182 2220              tst R2
 0184 F1F6              brne L38
 0186           ; {lcd_w(0xf7);
 0186           ;  delay_nms(2);}
 0186           ; }
 0186           ; for(i=0;i<118;i++)
 0186 CC24              clr R12
 0188 DD24              clr R13
 018A 08C0              xjmp L48
 018C           L45:
 018C 07EF              ldi R16,247
 018E 5EDF              xcall _lcd_w
 0190 02E0              ldi R16,2
 0192 10E0              ldi R17,0
 0194 4CDF              xcall _delay_nms
 0196           L46:
 0196 C601              movw R24,R12
 0198 0196              adiw R24,1
 019A 6C01              movw R12,R24
 019C           L48:
 019C C601              movw R24,R12
 019E 8637              cpi R24,118
 01A0 E0E0              ldi R30,0
 01A2 9E07              cpc R25,R30
 01A4 98F3              brlo L45
 01A6           L37:
 01A6 0E940000          xcall pop_gset4
 01AA                   .dbline 0 ; func end
 01AA 0895              ret
 01AC           ;             ch -> R20,R21
 01AC           ;              y -> R22
 01AC           ;              x -> R10
                        .even
 01AC           _lcd_putse::
 01AC 0E940000          xcall push_gset3
 01B0 622F              mov R22,R18
 01B2 A02E              mov R10,R16
 01B4 4E81              ldd R20,y+6
 01B6 5F81              ldd R21,y+7
 01B8           ; {lcd_w(0xf7);
 01B8           ;  delay_nms(2);}
 01B8           ; 
 01B8           ; 
 01B8           ; }
 01B8           ; 
 01B8           ; void lcd_putse(unsigned char x,unsigned char y,unsigned char *ch)
 01B8           ; {
 01B8           ; x+=4;
 01B8 8A2D              mov R24,R10
 01BA 8C5F              subi R24,252    ; addi 4
 01BC A82E              mov R10,R24
 01BE 13C0              xjmp L51
 01C0           L50:
 01C0           ; while (*ch!=0)
 01C0           ; {
 01C0           ; lcd_w(0xf1);
 01C0 01EF              ldi R16,241
 01C2 44DF              xcall _lcd_w
 01C4           ; lcd_w(x);
 01C4 0A2D              mov R16,R10
 01C6 42DF              xcall _lcd_w
 01C8           ; lcd_w(y);
 01C8 062F              mov R16,R22
 01CA 40DF              xcall _lcd_w
 01CC           ; lcd_w(*ch);
 01CC FA01              movw R30,R20
 01CE 0081              ldd R16,z+0
 01D0 3DDF              xcall _lcd_w
 01D2           ; ch++;
 01D2 4F5F              subi R20,255  ; offset = 1
 01D4 5F4F              sbci R21,255
 01D6           ; if (x>=19)
 01D6 8A2D              mov R24,R10
 01D8 8331              cpi R24,19
 01DA 20F0              brlo L53
 01DC           ; {
 01DC           ; x=4;
 01DC 84E0              ldi R24,4
 01DE A82E              mov R10,R24
 01E0           ; y+=8;
 01E0 685F              subi R22,248    ; addi 8
 01E2           ; }
 01E2 01C0              xjmp L54
 01E4           L53:
 01E4           ; else 
 01E4           ; x++;
 01E4 A394              inc R10
 01E6           L54:
 01E6           L51:
 01E6 FA01              movw R30,R20
 01E8 2080              ldd R2,z+0
 01EA 2220              tst R2
 01EC 49F7              brne L50
 01EE           L49:
 01EE 0E940000          xcall pop_gset3
 01F2                   .dbline 0 ; func end
 01F2 0895              ret
 01F4           ;              i -> <dead>
 01F4           ;             ch -> R22,R23
 01F4           ;              y -> R10
 01F4           ;              x -> R20
                        .even
 01F4           _lcd_putsf::
 01F4 0E940000          xcall push_gset3
 01F8 A22E              mov R10,R18
 01FA 402F              mov R20,R16
 01FC 6E81              ldd R22,y+6
 01FE 7F81              ldd R23,y+7
 0200           ; }
 0200           ; }
 0200           ; void lcd_putsf(unsigned char x,unsigned char y,unsigned char *ch)
 0200           ; { unsigned  int i;
 0200           ; x+=2;
 0200 4E5F              subi R20,254    ; addi 2
 0202 1BC0              xjmp L57
 0204           L56:
 0204           ; while (*ch!=0)
 0204           ; {
 0204           ; lcd_w(0xf0);
 0204 00EF              ldi R16,240
 0206 22DF              xcall _lcd_w
 0208           ; lcd_w(x);
 0208 042F              mov R16,R20
 020A 20DF              xcall _lcd_w
 020C           ; lcd_w(y);
 020C 0A2D              mov R16,R10
 020E 1EDF              xcall _lcd_w
 0210           ; lcd_w(*ch-0xa0);
 0210 FB01              movw R30,R22
 0212 0081              ldd R16,z+0
 0214 005A              subi R16,160
 0216 1ADF              xcall _lcd_w
 0218           ; ch++;
 0218 6F5F              subi R22,255  ; offset = 1
 021A 7F4F              sbci R23,255
 021C           ; lcd_w(*ch-0xa0);
 021C FB01              movw R30,R22
 021E 0081              ldd R16,z+0
 0220 005A              subi R16,160
 0222 14DF              xcall _lcd_w
 0224           ; ch++;
 0224 6F5F              subi R22,255  ; offset = 1
 0226 7F4F              sbci R23,255
 0228           ; delay_nms(2);
 0228 02E0              ldi R16,2
 022A 10E0              ldi R17,0
 022C 00DF              xcall _delay_nms
 022E           ; if (x>=0x09)
 022E 4930              cpi R20,9
 0230 18F0              brlo L59
 0232           ; {
 0232           ; x=2;
 0232 42E0              ldi R20,2
 0234           ; y+=1;
 0234 A394              inc R10
 0236           ; }
 0236 01C0              xjmp L60
 0238           L59:
 0238           ; else 
 0238           ; x++;
 0238 4395              inc R20
 023A           L60:
 023A           L57:
 023A FB01              movw R30,R22
 023C 2080              ldd R2,z+0
 023E 2220              tst R2
 0240 09F7              brne L56
 0242           L55:
 0242 0E940000          xcall pop_gset3
 0246                   .dbline 0 ; func end
 0246 0895              ret
                        .area data(ram, con, rel)
 0000           _a::
 0000                   .blkb 2
                        .area idata
 0000 5765              .byte 'W,'e
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 6C63              .byte 'l,'c
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 6F6D              .byte 'o,'m
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 2074              .byte 32,'t
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 6F20              .byte 'o,32
                        .area data(ram, con, rel)
 000A                   .blkb 2
                        .area idata
 000A 4265              .byte 'B,'e
                        .area data(ram, con, rel)
 000C                   .blkb 2
                        .area idata
 000C 696A              .byte 'i,'j
                        .area data(ram, con, rel)
 000E                   .blkb 2
                        .area idata
 000E 696E              .byte 'i,'n
                        .area data(ram, con, rel)
 0010           _b::
 0010                   .blkb 2
                        .area idata
 0010 4F6E              .byte 'O,'n
                        .area data(ram, con, rel)
 0012                   .blkb 2
                        .area idata
 0012 6520              .byte 'e,32
                        .area data(ram, con, rel)
 0014                   .blkb 2
                        .area idata
 0014 576F              .byte 'W,'o
                        .area data(ram, con, rel)
 0016                   .blkb 2
                        .area idata
 0016 726C              .byte 'r,'l
                        .area data(ram, con, rel)
 0018                   .blkb 2
                        .area idata
 0018 6420              .byte 'd,32
                        .area data(ram, con, rel)
 001A                   .blkb 2
                        .area idata
 001A 4F6E              .byte 'O,'n
                        .area data(ram, con, rel)
 001C                   .blkb 2
                        .area idata
 001C 6520              .byte 'e,32
                        .area data(ram, con, rel)
 001E                   .blkb 2
                        .area idata
 001E 4472              .byte 'D,'r
                        .area data(ram, con, rel)
 0020                   .blkb 2
                        .area idata
 0020 6561              .byte 'e,'a
                        .area data(ram, con, rel)
 0022                   .blkb 2
                        .area idata
 0022 6D00              .byte 'm,0
                        .area data(ram, con, rel)
                        .area text(rom, con, rel)
                ;              j -> R20,R21
                        .even
 0248           _main::
 0248 2297              sbiw R28,2
 024A           ; }
 024A           ; }
 024A           ; 
 024A           ; #endif
 024A           ; 
 024A           ; unsigned char a[]={87,101,108,99,111,109,32,116,111,32,66,101,105,106,105,110};
 024A           ; unsigned char b[]={79,110,101,32,87,111,114,108,100,32,79,110,
 024A           ; 101,32,68,114,101,97,109,0};
 024A           ; void main(void)
 024A           ; {while(1)
 024A 3BC0              xjmp L63
 024C           L62:
 024C           ;  {
 024C           ;   int j;
 024C           ;   lcd_init();
 024C 12DF              xcall _lcd_init
 024E           ;   lcd_clear();
 024E 29DF              xcall _lcd_clear
 0250           ;   lcd_putsc(7,0,"北京欢迎你"); //右移动
 0250 80E0              ldi R24,<L65
 0252 90E0              ldi R25,>L65
 0254 9983              std y+1,R25
 0256 8883              std y+0,R24
 0258 2227              clr R18
 025A 07E0              ldi R16,7
 025C 25DF              xcall _lcd_putsc
 025E           ;   lcd_putsm(55,10,b);
 025E 80E0              ldi R24,<_b
 0260 90E0              ldi R25,>_b
 0262 9983              std y+1,R25
 0264 8883              std y+0,R24
 0266 2AE0              ldi R18,10
 0268 07E3              ldi R16,55
 026A 63DF              xcall _lcd_putsm
 026C           ;   delay_nms(100);
 026C 04E6              ldi R16,100
 026E 10E0              ldi R17,0
 0270 DEDE              xcall _delay_nms
 0272           ;   for(j=0;j<2;j++)
 0272 4427              clr R20
 0274 5527              clr R21
 0276           L66:
 0276 80E0              ldi R24,<L65
 0278 90E0              ldi R25,>L65
 027A 9983              std y+1,R25
 027C 8883              std y+0,R24
 027E 21E0              ldi R18,1
 0280 01E0              ldi R16,1
 0282 B8DF              xcall _lcd_putsf
 0284 04E1              ldi R16,20
 0286 10E0              ldi R17,0
 0288 D2DE              xcall _delay_nms
 028A 04EF              ldi R16,244
 028C DFDE              xcall _lcd_w
 028E 04E1              ldi R16,20
 0290 10E0              ldi R17,0
 0292 CDDE              xcall _delay_nms
 0294           L67:
 0294 4F5F              subi R20,255  ; offset = 1
 0296 5F4F              sbci R21,255
 0298 4230              cpi R20,2
 029A E0E0              ldi R30,0
 029C 5E07              cpc R21,R30
 029E 5CF3              brlt L66
 02A0 80E0              ldi R24,<L65
 02A2 90E0              ldi R25,>L65
 02A4 9983              std y+1,R25
 02A6 8883              std y+0,R24
 02A8 21E0              ldi R18,1
 02AA 01E0              ldi R16,1
 02AC A3DF              xcall _lcd_putsf
 02AE 80E0              ldi R24,<_b
 02B0 90E0              ldi R25,>_b
 02B2 9983              std y+1,R25
 02B4 8883              std y+0,R24
 02B6 23E2              ldi R18,35
 02B8 0027              clr R16
 02BA 78DF              xcall _lcd_putse
 02BC 06E9              ldi R16,150
 02BE 10E0              ldi R17,0
 02C0 B6DE              xcall _delay_nms
 02C2           L63:
 02C2 C4CF              xjmp L62
 02C4           X1:
 02C4           L61:
 02C4 2296              adiw R28,2
 02C6                   .dbline 0 ; func end
 02C6 0895              ret
                        .area data(ram, con, rel)
 0024           L65:
 0024                   .blkb 11
                        .area idata
 0024 B1B1BEA9BBB6D3ADC4E300    .byte 177,177,190,169,187,182,211,173,196,227,0
                        .area data(ram, con, rel)

⌨️ 快捷键说明

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