📄 main.lis
字号:
008E .dbend
008E .dbfunc e lcd_init _lcd_init fV
.even
008E _lcd_init::
008E .dbline -1
008E .dbline 65
008E ; }
008E ;
008E ; void lcd_init(void)
008E ; {
008E .dbline 66
008E ; DDRA=0xff;
008E 8FEF ldi R24,255
0090 8ABB out 0x1a,R24
0092 .dbline 67
0092 ; DDRC|=0x07;
0092 84B3 in R24,0x14
0094 8760 ori R24,7
0096 84BB out 0x14,R24
0098 .dbline 68
0098 ; lcd_wr_cmd(0x38);
0098 08E3 ldi R16,56
009A D5DF xcall _lcd_wr_cmd
009C .dbline 69
009C ; delay_us(300);
009C 0CE2 ldi R16,300
009E 11E0 ldi R17,1
00A0 AFDF xcall _delay_us
00A2 .dbline 70
00A2 ; lcd_wr_cmd(0x38);
00A2 08E3 ldi R16,56
00A4 D0DF xcall _lcd_wr_cmd
00A6 .dbline 71
00A6 ; lcd_wr_cmd(0x06);
00A6 06E0 ldi R16,6
00A8 CEDF xcall _lcd_wr_cmd
00AA .dbline 72
00AA ; lcd_wr_cmd(0x0c);
00AA 0CE0 ldi R16,12
00AC CCDF xcall _lcd_wr_cmd
00AE .dbline 73
00AE ; lcd_wr_cmd(0x01);
00AE 01E0 ldi R16,1
00B0 CADF xcall _lcd_wr_cmd
00B2 .dbline 74
00B2 ; delay_us(500);
00B2 04EF ldi R16,500
00B4 11E0 ldi R17,1
00B6 A4DF xcall _delay_us
00B8 .dbline 75
00B8 ; DDRA=0xff;
00B8 8FEF ldi R24,255
00BA 8ABB out 0x1a,R24
00BC .dbline 76
00BC ; DDRC|=0x07;
00BC 84B3 in R24,0x14
00BE 8760 ori R24,7
00C0 84BB out 0x14,R24
00C2 .dbline -2
00C2 L18:
00C2 .dbline 0 ; func end
00C2 0895 ret
00C4 .dbend
00C4 .dbfunc e lcd_wr_byte _lcd_wr_byte fV
00C4 ; date -> R20
00C4 ; addr -> R22
.even
00C4 _lcd_wr_byte::
00C4 0E940000 xcall push_gset2
00C8 422F mov R20,R18
00CA 602F mov R22,R16
00CC .dbline -1
00CC .dbline 80
00CC ; }
00CC ;
00CC ; void lcd_wr_byte(uint8 addr,uint8 date)
00CC ; {
00CC .dbline 81
00CC ; lcd_wr_cmd(0x80+addr);
00CC 062F mov R16,R22
00CE 0058 subi R16,128 ; addi 128
00D0 BADF xcall _lcd_wr_cmd
00D2 .dbline 82
00D2 ; lcd_wr_date(date);
00D2 042F mov R16,R20
00D4 CADF xcall _lcd_wr_date
00D6 .dbline 83
00D6 ; delay_us(100);
00D6 04E6 ldi R16,100
00D8 10E0 ldi R17,0
00DA 92DF xcall _delay_us
00DC .dbline -2
00DC L19:
00DC 0E940000 xcall pop_gset2
00E0 .dbline 0 ; func end
00E0 0895 ret
00E2 .dbsym r date 20 c
00E2 .dbsym r addr 22 c
00E2 .dbend
00E2 .dbfunc e lcd_wr_str _lcd_wr_str fV
00E2 ; i -> R20
00E2 ; len -> R22
00E2 ; str -> R10,R11
00E2 ; addr -> R12
.even
00E2 _lcd_wr_str::
00E2 0E940000 xcall push_gset4
00E6 5901 movw R10,R18
00E8 C02E mov R12,R16
00EA 6885 ldd R22,y+8
00EC .dbline -1
00EC .dbline 87
00EC ; }
00EC ;
00EC ; void lcd_wr_str(uint8 addr,uint8 str[],uint8 len)
00EC ; {
00EC .dbline 88
00EC ; uint8 i=0;
00EC 4427 clr R20
00EE .dbline 89
00EE ; lcd_wr_cmd(0x80+addr);
00EE 0C2D mov R16,R12
00F0 0058 subi R16,128 ; addi 128
00F2 A9DF xcall _lcd_wr_cmd
00F4 .dbline 90
00F4 ; for(i=0;i<len;i=i+1)
00F4 07C0 xjmp L24
00F6 L21:
00F6 .dbline 91
00F6 .dbline 92
00F6 E42F mov R30,R20
00F8 FF27 clr R31
00FA EA0D add R30,R10
00FC FB1D adc R31,R11
00FE 0081 ldd R16,z+0
0100 B4DF xcall _lcd_wr_date
0102 .dbline 95
0102 L22:
0102 .dbline 90
0102 4395 inc R20
0104 L24:
0104 .dbline 90
0104 4617 cp R20,R22
0106 B8F3 brlo L21
0108 .dbline -2
0108 L20:
0108 0E940000 xcall pop_gset4
010C .dbline 0 ; func end
010C 0895 ret
010E .dbsym r i 20 c
010E .dbsym r len 22 c
010E .dbsym r str 10 pc
010E .dbsym r addr 12 c
010E .dbend
.area lit(rom, con, rel)
0000 L26:
0000 68656C6C6F20776F72642100 .byte 'h,'e,'l,'l,'o,32,'w,'o,'r,'d,33,0
.area text(rom, con, rel)
010E .dbfile E:\avr\try\try3_162\main.c
010E .dbfunc e main _main fV
010E ; ss -> y+1
.even
010E _main::
010E 2D97 sbiw R28,13
0110 .dbline -1
0110 .dbline 100
0110 ; {
0110 ; lcd_wr_date(str[i]);
0110 ; //i=i+1;
0110 ; // str=str+1;
0110 ; }
0110 ;
0110 ; }
0110 ;
0110 ; void main(void)
0110 ; {
0110 .dbline 101
0110 ; uint8 ss[]="hello word!";
0110 80E0 ldi R24,<L26
0112 90E0 ldi R25,>L26
0114 FE01 movw R30,R28
0116 3196 adiw R30,1
0118 0CE0 ldi R16,12
011A 10E0 ldi R17,0
011C FA93 st -y,R31
011E EA93 st -y,R30
0120 9A93 st -y,R25
0122 8A93 st -y,R24
0124 0E940000 xcall asgncblk
0128 .dbline 102
0128 ; lcd_init();
0128 B2DF xcall _lcd_init
012A .dbline 103
012A ; lcd_wr_str(0x01,ss,12);
012A 8CE0 ldi R24,12
012C 8883 std y+0,R24
012E 9E01 movw R18,R28
0130 2F5F subi R18,255 ; offset = 1
0132 3F4F sbci R19,255
0134 01E0 ldi R16,1
0136 D5DF xcall _lcd_wr_str
0138 .dbline 104
0138 ; lcd_wr_byte(0x03,'a');
0138 21E6 ldi R18,97
013A 03E0 ldi R16,3
013C C3DF xcall _lcd_wr_byte
013E L27:
013E .dbline 105
013E L28:
013E .dbline 105
013E FFCF xjmp L27
0140 X2:
0140 .dbline -2
0140 L25:
0140 2D96 adiw R28,13
0142 .dbline 0 ; func end
0142 0895 ret
0144 .dbsym l ss 1 A[12:12]c
0144 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -