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

📄 infrared_test.lis

📁 AVR 红外接收源代码,对学习红外的人很有帮助
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0194           ;  if(t0_counter>3)
 0194 83E0              ldi R24,3
 0196 20900100          lds R2,_t0_counter
 019A 8215              cp R24,R2
 019C 08F0              brlo X0
 019E C9C0              rjmp L22
 01A0           X0:
 01A0                   .dbline 117
 01A0           ;  {
 01A0                   .dbline 119
 01A0           ;   
 01A0           ;   GICR  = 0x00;          //关掉外部中断1
 01A0 2224              clr R2
 01A2 2BBE              out 0x3b,R2
 01A4                   .dbline 120
 01A4           ;   TCCR0=0;               //关掉T0
 01A4 23BE              out 0x33,R2
 01A6                   .dbline 121
 01A6           ;   TCNT0=0;
 01A6 22BE              out 0x32,R2
 01A8                   .dbline 122
 01A8           ;   TCCR1B=0;               //关闭定时器 T1
 01A8 2EBC              out 0x2e,R2
 01AA                   .dbline 123
 01AA           ;   TCNT1=0;                //定时器T1 清0
 01AA 3324              clr R3
 01AC 3DBC              out 0x2d,R3
 01AE 2CBC              out 0x2c,R2
 01B0                   .dbline 125
 01B0           ;   
 01B0           ;   t0_counter=0;
 01B0 20920100          sts _t0_counter,R2
 01B4                   .dbline 127
 01B4           ;   
 01B4           ;  if((counter_buffer[1]>4000)&&(counter_buffer[1]<5000)&&
 01B4 80EA              ldi R24,4000
 01B6 9FE0              ldi R25,15
 01B8 20900600          lds R2,_counter_buffer+2
 01BC 30900700          lds R3,_counter_buffer+2+1
 01C0 8215              cp R24,R2
 01C2 9305              cpc R25,R3
 01C4 08F0              brlo X1
 01C6 98C0              rjmp L24
 01C8           X1:
 01C8 C101              movw R24,R2
 01CA 8838              cpi R24,136
 01CC E3E1              ldi R30,19
 01CE 9E07              cpc R25,R30
 01D0 08F0              brlo X2
 01D2 92C0              rjmp L24
 01D4           X2:
 01D4 80E9              ldi R24,400
 01D6 91E0              ldi R25,1
 01D8 20908800          lds R2,_counter_buffer+132
 01DC 30908900          lds R3,_counter_buffer+132+1
 01E0 8215              cp R24,R2
 01E2 9305              cpc R25,R3
 01E4 08F0              brlo X3
 01E6 88C0              rjmp L24
 01E8           X3:
 01E8 C101              movw R24,R2
 01EA 8C3B              cpi R24,188
 01EC E2E0              ldi R30,2
 01EE 9E07              cpc R25,R30
 01F0 08F0              brlo X4
 01F2 82C0              rjmp L24
 01F4           X4:
 01F4                   .dbline 129
 01F4           ;     (counter_buffer[66]>400)&&(counter_buffer[66]<700))
 01F4           ;     {
 01F4                   .dbline 131
 01F4           ;       //如果是有效数据
 01F4           ;          rece_flag=1;
 01F4 81E0              ldi R24,1
 01F6 80939A00          sts _rece_flag,R24
 01FA                   .dbline 132
 01FA           ;        for(i=3;i<66;i+=2)
 01FA 03E0              ldi R16,3
 01FC 5EC0              rjmp L33
 01FE           L30:
 01FE                   .dbline 133
 01FE           ;       {
 01FE                   .dbline 134
 01FE           ;           if(counter_buffer[i]>800)
 01FE 82E0              ldi R24,2
 0200 809F              mul R24,R16
 0202 F001              movw R30,R0
 0204 80E0              ldi R24,<_counter_buffer
 0206 90E0              ldi R25,>_counter_buffer
 0208 E80F              add R30,R24
 020A F91F              adc R31,R25
 020C 2080              ldd R2,z+0
 020E 3180              ldd R3,z+1
 0210 80E2              ldi R24,800
 0212 93E0              ldi R25,3
 0214 8215              cp R24,R2
 0216 9305              cpc R25,R3
 0218 80F5              brsh L34
 021A                   .dbline 135
 021A           ;            {
 021A                   .dbline 136
 021A           ;              if(i<18)
 021A 0231              cpi R16,18
 021C 50F4              brsh L36
 021E                   .dbline 137
 021E           ;                  {
 021E                   .dbline 138
 021E           ;                    infra_data[0]>>=1;
 021E 20909B00          lds R2,_infra_data
 0222 2694              lsr R2
 0224 20929B00          sts _infra_data,R2
 0228                   .dbline 139
 0228           ;                    infra_data[0]|=0x80;
 0228 822D              mov R24,R2
 022A 8068              ori R24,128
 022C 80939B00          sts _infra_data,R24
 0230                   .dbline 140
 0230           ;              }
 0230 43C0              rjmp L35
 0232           L36:
 0232                   .dbline 141
 0232           ;                  else if(i<34)
 0232 0232              cpi R16,34
 0234 50F4              brsh L38
 0236                   .dbline 142
 0236           ;                  {
 0236                   .dbline 143
 0236           ;                    infra_data[1]>>=1;
 0236 20909C00          lds R2,_infra_data+1
 023A 2694              lsr R2
 023C 20929C00          sts _infra_data+1,R2
 0240                   .dbline 144
 0240           ;                    infra_data[1]|=0x80;
 0240 822D              mov R24,R2
 0242 8068              ori R24,128
 0244 80939C00          sts _infra_data+1,R24
 0248                   .dbline 145
 0248           ;              }
 0248 37C0              rjmp L35
 024A           L38:
 024A                   .dbline 146
 024A           ;                  else if(i<50)
 024A 0233              cpi R16,50
 024C 50F4              brsh L42
 024E                   .dbline 147
 024E           ;                  {
 024E                   .dbline 148
 024E           ;                    infra_data[2]>>=1;
 024E 20909D00          lds R2,_infra_data+2
 0252 2694              lsr R2
 0254 20929D00          sts _infra_data+2,R2
 0258                   .dbline 149
 0258           ;                    infra_data[2]|=0x80;
 0258 822D              mov R24,R2
 025A 8068              ori R24,128
 025C 80939D00          sts _infra_data+2,R24
 0260                   .dbline 150
 0260           ;              }
 0260 2BC0              rjmp L35
 0262           L42:
 0262                   .dbline 151
 0262           ;                  else if(i<66)
 0262 0234              cpi R16,66
 0264 48F5              brsh L35
 0266                   .dbline 152
 0266           ;                  {
 0266                   .dbline 153
 0266           ;                    infra_data[3]>>=1;
 0266 20909E00          lds R2,_infra_data+3
 026A 2694              lsr R2
 026C 20929E00          sts _infra_data+3,R2
 0270                   .dbline 154
 0270           ;                    infra_data[3]|=0x80;
 0270 822D              mov R24,R2
 0272 8068              ori R24,128
 0274 80939E00          sts _infra_data+3,R24
 0278                   .dbline 155
 0278           ;              }
 0278                   .dbline 156
 0278           ;            }  
 0278 1FC0              rjmp L35
 027A           L34:
 027A                   .dbline 158
 027A           ;               else
 027A           ;                {
 027A                   .dbline 159
 027A           ;               if(i<18)
 027A 0231              cpi R16,18
 027C 30F4              brsh L50
 027E                   .dbline 160
 027E           ;                       {
 027E                   .dbline 161
 027E           ;                        infra_data[0]>>=1;
 027E 20909B00          lds R2,_infra_data
 0282 2694              lsr R2
 0284 20929B00          sts _infra_data,R2
 0288                   .dbline 162
 0288           ;                       }
 0288 17C0              rjmp L51
 028A           L50:
 028A                   .dbline 163
 028A           ;                       else if(i<34)
 028A 0232              cpi R16,34
 028C 30F4              brsh L52
 028E                   .dbline 164
 028E           ;                       {
 028E                   .dbline 165
 028E           ;                        infra_data[1]>>=1;
 028E 20909C00          lds R2,_infra_data+1
 0292 2694              lsr R2
 0294 20929C00          sts _infra_data+1,R2
 0298                   .dbline 166
 0298           ;                       }
 0298 0FC0              rjmp L53
 029A           L52:
 029A                   .dbline 167
 029A           ;                   else if(i<50)
 029A 0233              cpi R16,50
 029C 30F4              brsh L55
 029E                   .dbline 168
 029E           ;                       {
 029E                   .dbline 169
 029E           ;                    infra_data[2]>>=1;
 029E 20909D00          lds R2,_infra_data+2
 02A2 2694              lsr R2
 02A4 20929D00          sts _infra_data+2,R2
 02A8                   .dbline 170
 02A8           ;                       }
 02A8 07C0              rjmp L56
 02AA           L55:
 02AA                   .dbline 171
 02AA           ;                   else if(i<66)
 02AA 0234              cpi R16,66
 02AC 28F4              brsh L58
 02AE                   .dbline 172
 02AE           ;                   {
 02AE                   .dbline 173
 02AE           ;                    infra_data[3]>>=1;
 02AE 20909E00          lds R2,_infra_data+3
 02B2 2694              lsr R2
 02B4 20929E00          sts _infra_data+3,R2
 02B8                   .dbline 174
 02B8           ;                   }
 02B8           L58:
 02B8           L56:
 02B8           L53:
 02B8           L51:
 02B8                   .dbline 175
 02B8           ;             } 
 02B8           L35:
 02B8                   .dbline 176
 02B8           L31:
 02B8                   .dbline 132
 02B8 0E5F              subi R16,254    ; addi 2
 02BA           L33:
 02BA                   .dbline 132
 02BA 0234              cpi R16,66
 02BC 08F4              brsh X5
 02BE 9FCF              rjmp L30
 02C0           X5:
 02C0                   .dbline 177
 02C0           ;         }
 02C0           ;         for(i=0;i<buffer_max;i++)
 02C0 0027              clr R16
 02C2 0CC0              rjmp L64
 02C4           L61:
 02C4                   .dbline 178
 02C4 82E0              ldi R24,2
 02C6 809F              mul R24,R16
 02C8 F001              movw R30,R0
 02CA 80E0              ldi R24,<_counter_buffer
 02CC 90E0              ldi R25,>_counter_buffer
 02CE E80F              add R30,R24
 02D0 F91F              adc R31,R25
 02D2 2224              clr R2
 02D4 3324              clr R3
 02D6 3182              std z+1,R3
 02D8 2082              std z+0,R2
 02DA           L62:
 02DA                   .dbline 177
 02DA 0395              inc R16
 02DC           L64:
 02DC                   .dbline 177
 02DC 0B34              cpi R16,75
 02DE 90F3              brlo L61
 02E0                   .dbline 179
 02E0           ;         counter_buffer[i]=0;
 02E0           ;         rece_data_count=0;
 02E0 2224              clr R2
 02E2 20920200          sts _rece_data_count,R2
 02E6                   .dbline 180
 02E6           ;         flag_start=0;
 02E6 20920300          sts _flag_start,R2
 02EA                   .dbline 181
 02EA           ;         TCCR1B=0;
 02EA 2EBC              out 0x2e,R2
 02EC                   .dbline 182
 02EC           ;         TCNT1=0;
 02EC 3324              clr R3
 02EE 3DBC              out 0x2d,R3
 02F0 2CBC              out 0x2c,R2
 02F2                   .dbline 183
 02F2           ;         flag_t0=0;
 02F2 20920000          sts _flag_t0,R2
 02F6                   .dbline 184
 02F6           ;         return;
 02F6 1DC0              rjmp L21
 02F8           L24:
 02F8                   .dbline 190
 02F8           ;        
 02F8           ;     }
 02F8           ;       
 02F8           ;       //如果不是有效数据
 02F8           ;        
 02F8           ;         for(i=0;i<buffer_max;i++)
 02F8 0027              clr R16
 02FA 0CC0              rjmp L68
 02FC           L65:
 02FC                   .dbline 191
 02FC 82E0              ldi R24,2
 02FE 809F              mul R24,R16
 0300 F001              movw R30,R0
 0302 80E0              ldi R24,<_counter_buffer
 0304 90E0              ldi R25,>_counter_buffer
 0306 E80F              add R30,R24
 0308 F91F              adc R31,R25
 030A 2224              clr R2
 030C 3324              clr R3
 030E 3182              std z+1,R3
 0310 2082              std z+0,R2
 0312           L66:
 0312                   .dbline 190
 0312 0395              inc R16
 0314           L68:
 0314                   .dbline 190
 0314 0B34              cpi R16,75
 0316 90F3              brlo L65
 0318                   .dbline 192
 0318 2224              clr R2
 031A 20920200          sts _rece_data_count,R2
 031E                   .dbline 193
 031E 20920300          sts _flag_start,R2
 0322                   .dbline 194
 0322 2EBC              out 0x2e,R2
 0324                   .dbline 195
 0324 3324              clr R3
 0326 3DBC              out 0x2d,R3
 0328 2CBC              out 0x2c,R2
 032A                   .dbline 196
 032A 20920000          sts _flag_t0,R2
 032E                   .dbline 197
 032E 80E8              ldi R24,128
 0330 8BBF              out 0x3b,R24
 0332                   .dbline 199
 0332           L22:
 0332                   .dbline -2
 0332           L21:
 0332 0990              ld R0,y+
 0334 0FBE              out 0x3f,R0
 0336 F991              ld R31,y+
 0338 E991              ld R30,y+
 033A 9991              ld R25,y+
 033C 8991              ld R24,y+
 033E 1991              ld R17,y+
 0340 0991              ld R16,y+
 0342 3990              ld R3,y+
 0344 2990              ld R2,y+
 0346 1990              ld R1,y+
 0348 0990              ld R0,y+
 034A                   .dbline 0 ; func end
 034A 1895              reti
 034C                   .dbsym r i 16 c
 034C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\开发板\source\infrared\infrared_test\infrared_test.c
 0000           _flag_t0::
 0000                   .blkb 1
 0001                   .dbsym e flag_t0 _flag_t0 c
 0001           _t0_counter::
 0001                   .blkb 1
 0002                   .dbsym e t0_counter _t0_counter c
 0002           _rece_data_count::
 0002                   .blkb 1
 0003                   .dbsym e rece_data_count _rece_data_count c
 0003           _flag_start::
 0003                   .blkb 1
 0004                   .dbsym e flag_start _flag_start c
 0004           _counter_buffer::
 0004                   .blkb 150
 009A                   .dbsym e counter_buffer _counter_buffer A[150:75]i
 009A           _rece_flag::
 009A                   .blkb 1
 009B                   .dbsym e rece_flag _rece_flag c
 009B           _infra_data::
 009B                   .blkb 4
 009F                   .dbsym e infra_data _infra_data A[4:4]c

⌨️ 快捷键说明

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