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

📄 main.lis

📁 AVR 红外接收源代码,对学习红外的人很有帮助
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0102 FA01              movw R30,R20
 0104 0081              ldd R16,z+0
 0106 E6DF              rcall _putchar
 0108                   .dbline 84
 0108 4F5F              subi R20,255  ; offset = 1
 010A 5F4F              sbci R21,255
 010C                   .dbline 85
 010C           L26:
 010C                   .dbline 81
 010C           ;       while (*s)
 010C FA01              movw R30,R20
 010E 2080              ldd R2,z+0
 0110 2220              tst R2
 0112 B9F7              brne L25
 0114                   .dbline 86
 0114           ;               {
 0114           ;               putchar(*s);
 0114           ;               s++;
 0114           ;               }       
 0114           ;     putchar(0x0a);//换行
 0114 0AE0              ldi R16,10
 0116 DEDF              rcall _putchar
 0118                   .dbline 87
 0118           ;       putchar(0x0d);//回车
 0118 0DE0              ldi R16,13
 011A DCDF              rcall _putchar
 011C                   .dbline -2
 011C           L24:
 011C 00D0              rcall pop_gset1
 011E                   .dbline 0 ; func end
 011E 0895              ret
 0120                   .dbsym r s 20 pc
 0120                   .dbend
 0120                   .dbfunc e uart_init _uart_init fV
                        .even
 0120           _uart_init::
 0120                   .dbline -1
 0120                   .dbline 91
 0120           ;       }       
 0120           ; /*                    UART初始化                              */      
 0120           ; void uart_init(void)
 0120           ; {
 0120                   .dbline 92
 0120           ;  UCSRB=(1<<RXEN)|(1<<TXEN);//允许发送和接收
 0120 88E1              ldi R24,24
 0122 8AB9              out 0xa,R24
 0124                   .dbline 93
 0124           ;  UBRRL=(fosc/16/(baud+1))%256;
 0124 84E3              ldi R24,52
 0126 89B9              out 0x9,R24
 0128                   .dbline 94
 0128           ;  UBRRH=(fosc/16/(baud+1))/256;
 0128 2224              clr R2
 012A 20BC              out 0x20,R2
 012C                   .dbline 95
 012C           ;  UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位停止位
 012C 86E8              ldi R24,134
 012E 80BD              out 0x20,R24
 0130                   .dbline -2
 0130           L28:
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbend
 0132                   .dbfunc e main _main fV
 0132           ;              i -> <dead>
                        .even
 0132           _main::
 0132                   .dbline -1
 0132                   .dbline 99
 0132           ; }
 0132           ; 
 0132           ; void main(void)
 0132           ; {
 0132                   .dbline 102
 0132           ;   unsigned char i;
 0132           ;  
 0132           ;   uart_init();
 0132 F6DF              rcall _uart_init
 0134                   .dbline 103
 0134           ;   init_infr();
 0134 00D0              rcall _init_infr
 0136 7BC0              rjmp L31
 0138           L30:
 0138                   .dbline 106
 0138           ;   
 0138           ;   while(1)
 0138           ;    {
 0138                   .dbline 107
 0138           ;      puts("请按键: ");
 0138 00E0              ldi R16,<L33
 013A 10E0              ldi R17,>L33
 013C CFDF              rcall _puts
 013E           L34:
 013E                   .dbline 109
 013E           L35:
 013E                   .dbline 109
 013E           ;        
 013E           ;     while(rece_flag==0);
 013E 20900000          lds R2,_rece_flag
 0142 2220              tst R2
 0144 E1F3              breq L34
 0146                   .dbline 111
 0146           ;       
 0146           ;         putchar(0x0a);//换行
 0146 0AE0              ldi R16,10
 0148 C5DF              rcall _putchar
 014A                   .dbline 112
 014A           ;         putchar(0x0d);//回车
 014A 0DE0              ldi R16,13
 014C C3DF              rcall _putchar
 014E                   .dbline 113
 014E           ;         puts("您输入的是:");
 014E 00E0              ldi R16,<L37
 0150 10E0              ldi R17,>L37
 0152 C4DF              rcall _puts
 0154                   .dbline 114
 0154           ;        if((infra_data[0]==infra_data[1])&&
 0154 20900100          lds R2,_infra_data+1
 0158 30900000          lds R3,_infra_data
 015C 3214              cp R3,R2
 015E 09F0              breq X4
 0160 61C0              rjmp L38
 0162           X4:
 0162 20900300          lds R2,_infra_data+3
 0166 2094              com R2
 0168 30900200          lds R3,_infra_data+2
 016C 3214              cp R3,R2
 016E 09F0              breq X5
 0170 59C0              rjmp L38
 0172           X5:
 0172                   .dbline 116
 0172           ;           (infra_data[2]==(~infra_data[3])))
 0172           ;               {
 0172                   .dbline 118
 0172           ;               //如果是有效数据
 0172           ;                switch(infra_data[2])
 0172 432D              mov R20,R3
 0174 5527              clr R21
 0176 4030              cpi R20,0
 0178 4507              cpc R20,R21
 017A 29F1              breq L47
 017C           X1:
 017C 4130              cpi R20,1
 017E E0E0              ldi R30,0
 0180 5E07              cpc R21,R30
 0182 21F1              breq L48
 0184 4230              cpi R20,2
 0186 E0E0              ldi R30,0
 0188 5E07              cpc R21,R30
 018A 19F1              breq L49
 018C 4330              cpi R20,3
 018E E0E0              ldi R30,0
 0190 5E07              cpc R21,R30
 0192 11F1              breq L50
 0194 4430              cpi R20,4
 0196 E0E0              ldi R30,0
 0198 5E07              cpc R21,R30
 019A 09F1              breq L51
 019C 4530              cpi R20,5
 019E E0E0              ldi R30,0
 01A0 5E07              cpc R21,R30
 01A2 01F1              breq L52
 01A4 4630              cpi R20,6
 01A6 E0E0              ldi R30,0
 01A8 5E07              cpc R21,R30
 01AA F9F0              breq L53
 01AC 4730              cpi R20,7
 01AE E0E0              ldi R30,0
 01B0 5E07              cpc R21,R30
 01B2 F1F0              breq L54
 01B4 4830              cpi R20,8
 01B6 E0E0              ldi R30,0
 01B8 5E07              cpc R21,R30
 01BA E9F0              breq L55
 01BC 4930              cpi R20,9
 01BE E0E0              ldi R30,0
 01C0 5E07              cpc R21,R30
 01C2 E1F0              breq L56
 01C4 1DC0              rjmp L44
 01C6           X2:
 01C6                   .dbline 119
 01C6           ;                 {
 01C6           L47:
 01C6                   .dbline 120
 01C6           ;                   case 0:putchar('1');
 01C6 01E3              ldi R16,49
 01C8 85DF              rcall _putchar
 01CA                   .dbline 121
 01CA           ;                              break; 
 01CA 1AC0              rjmp L44
 01CC           L48:
 01CC                   .dbline 122
 01CC           ;                   case 1:putchar('2');
 01CC 02E3              ldi R16,50
 01CE 82DF              rcall _putchar
 01D0                   .dbline 123
 01D0           ;                              break;     
 01D0 17C0              rjmp L44
 01D2           L49:
 01D2                   .dbline 124
 01D2           ;                   case 2:putchar('3');
 01D2 03E3              ldi R16,51
 01D4 7FDF              rcall _putchar
 01D6                   .dbline 125
 01D6           ;                              break; 
 01D6 14C0              rjmp L44
 01D8           L50:
 01D8                   .dbline 126
 01D8           ;                   case 3:putchar('4');
 01D8 04E3              ldi R16,52
 01DA 7CDF              rcall _putchar
 01DC                   .dbline 127
 01DC           ;                              break;     
 01DC 11C0              rjmp L44
 01DE           L51:
 01DE                   .dbline 128
 01DE           ;                   case 4:putchar('5');
 01DE 05E3              ldi R16,53
 01E0 79DF              rcall _putchar
 01E2                   .dbline 129
 01E2           ;                              break; 
 01E2 0EC0              rjmp L44
 01E4           L52:
 01E4                   .dbline 130
 01E4           ;                   case 5:putchar('6');
 01E4 06E3              ldi R16,54
 01E6 76DF              rcall _putchar
 01E8                   .dbline 131
 01E8           ;                              break;     
 01E8 0BC0              rjmp L44
 01EA           L53:
 01EA                   .dbline 132
 01EA           ;                   case 6:putchar('7');
 01EA 07E3              ldi R16,55
 01EC 73DF              rcall _putchar
 01EE                   .dbline 133
 01EE           ;                              break; 
 01EE 08C0              rjmp L44
 01F0           L54:
 01F0                   .dbline 134
 01F0           ;                   case 7:putchar('8');
 01F0 08E3              ldi R16,56
 01F2 70DF              rcall _putchar
 01F4                   .dbline 135
 01F4           ;                              break; 
 01F4 05C0              rjmp L44
 01F6           L55:
 01F6                   .dbline 136
 01F6           ;                       case 8:putchar('9');
 01F6 09E3              ldi R16,57
 01F8 6DDF              rcall _putchar
 01FA                   .dbline 137
 01FA           ;                              break; 
 01FA 02C0              rjmp L44
 01FC           L56:
 01FC                   .dbline 138
 01FC           ;                   case 9:putchar('0');
 01FC 00E3              ldi R16,48
 01FE 6ADF              rcall _putchar
 0200                   .dbline 139
 0200           ;                              break;     
 0200                   .dbline 140
 0200           ;                   default:break;   
 0200           L44:
 0200                   .dbline 142
 0200           ;                 }
 0200           ;                 putchar(0x0a);//换行
 0200 0AE0              ldi R16,10
 0202 68DF              rcall _putchar
 0204                   .dbline 143
 0204           ;             putchar(0x0d);//回车
 0204 0DE0              ldi R16,13
 0206 66DF              rcall _putchar
 0208                   .dbline 144
 0208           ;                 infra_data[0]=0;
 0208 2224              clr R2
 020A 20920000          sts _infra_data,R2
 020E                   .dbline 145
 020E           ;                 infra_data[1]=0;
 020E 20920100          sts _infra_data+1,R2
 0212                   .dbline 146
 0212           ;                 infra_data[2]=0;
 0212 20920200          sts _infra_data+2,R2
 0216                   .dbline 147
 0216           ;                 infra_data[3]=0;
 0216 20920300          sts _infra_data+3,R2
 021A                   .dbline 148
 021A           ;                 rece_flag=0;
 021A 20920000          sts _rece_flag,R2
 021E                   .dbline 149
 021E           ;                 GICR  = 0x80;//打开外部中断1
 021E 80E8              ldi R24,128
 0220 8BBF              out 0x3b,R24
 0222                   .dbline 150
 0222           ;               }
 0222 05C0              rjmp L39
 0224           L38:
 0224                   .dbline 152
 0224           ;               else
 0224           ;               {
 0224                   .dbline 154
 0224           ;               //如果不是有效数据
 0224           ;               rece_flag=0;
 0224 2224              clr R2
 0226 20920000          sts _rece_flag,R2
 022A                   .dbline 155
 022A           ;               GICR  = 0x80;//打开外部中断1
 022A 80E8              ldi R24,128
 022C 8BBF              out 0x3b,R24
 022E                   .dbline 156
 022E           ;         }  
 022E           L39:
 022E                   .dbline 161
 022E           L31:
 022E                   .dbline 105
 022E 84CF              rjmp L30
 0230           X3:
 0230                   .dbline -2
 0230           L29:
 0230                   .dbline 0 ; func end
 0230 0895              ret
 0232                   .dbsym l i 1 c
 0232                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\开发板\source\infrared\infrared_test\main.c
 0000           _uia_data::
 0000                   .blkb 5
 0005                   .dbsym e uia_data _uia_data A[5:5]c
                        .area data(ram, con, rel)
 0000                   .dbfile D:\开发板\source\infrared\infrared_test\main.c
 0000           L37:
 0000                   .blkb 13
                        .area idata
 0000 C4FACAE4C8EBB5C4CAC7A3BA00        .byte 196,250,202,228,200,235,181,196,202,199,163,186,0
                        .area data(ram, con, rel)
 000D                   .dbfile D:\开发板\source\infrared\infrared_test\main.c
 000D           L33:
 000D                   .blkb 10
                        .area idata
 000D C7EBB0B4BCFCA3BA2000      .byte 199,235,176,180,188,252,163,186,32,0
                        .area data(ram, con, rel)
 0017                   .dbfile D:\开发板\source\infrared\infrared_test\main.c

⌨️ 快捷键说明

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