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

📄 main.lis

📁 用isis构建的一个简单的仿真平台
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -