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

📄 main.lis

📁 AVR 红外接收源代码,对学习红外的人很有帮助
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00E0                   .dbline -1
 00E0                   .dbline 68
 00E0           ; 
 00E0           ; /*                    字符串输出函数           */     
 00E0           ; int puts(char *s)
 00E0           ;       {
 00E0 05C0              rjmp L22
 00E2           L21:
 00E2                   .dbline 70
 00E2                   .dbline 71
 00E2 FA01              movw R30,R20
 00E4 0081              ldd R16,z+0
 00E6 F6DF              rcall _putchar
 00E8                   .dbline 72
 00E8 4F5F              subi R20,255  ; offset = 1
 00EA 5F4F              sbci R21,255
 00EC                   .dbline 73
 00EC           L22:
 00EC                   .dbline 69
 00EC           ;       while (*s)
 00EC FA01              movw R30,R20
 00EE 2080              ldd R2,z+0
 00F0 2220              tst R2
 00F2 B9F7              brne L21
 00F4                   .dbline 74
 00F4           ;               {
 00F4           ;               putchar(*s);
 00F4           ;               s++;
 00F4           ;               }       
 00F4           ;       return 1;
 00F4 01E0              ldi R16,1
 00F6 10E0              ldi R17,0
 00F8                   .dbline -2
 00F8           L20:
 00F8 00D0              rcall pop_gset1
 00FA                   .dbline 0 ; func end
 00FA 0895              ret
 00FC                   .dbsym r s 20 pc
 00FC                   .dbend
 00FC                   .dbfunc e puts_hh _puts_hh fV
 00FC           ;              s -> R20,R21
                        .even
 00FC           _puts_hh::
 00FC 00D0              rcall push_gset1
 00FE A801              movw R20,R16
 0100                   .dbline -1
 0100                   .dbline 78
 0100           ;       }
 0100           ; /*               含回车换行的字符串输出函数    */     
 0100           ; void puts_hh(char *s)
 0100           ;       {
 0100 05C0              rjmp L26
 0102           L25:
 0102                   .dbline 80
 0102                   .dbline 81
 0102 FA01              movw R30,R20
 0104 0081              ldd R16,z+0
 0106 E6DF              rcall _putchar
 0108                   .dbline 82
 0108 4F5F              subi R20,255  ; offset = 1
 010A 5F4F              sbci R21,255
 010C                   .dbline 83
 010C           L26:
 010C                   .dbline 79
 010C           ;       while (*s)
 010C FA01              movw R30,R20
 010E 2080              ldd R2,z+0
 0110 2220              tst R2
 0112 B9F7              brne L25
 0114                   .dbline 84
 0114           ;               {
 0114           ;               putchar(*s);
 0114           ;               s++;
 0114           ;               }       
 0114           ;     putchar(0x0a);//换行
 0114 0AE0              ldi R16,10
 0116 DEDF              rcall _putchar
 0118                   .dbline 85
 0118           ;       putchar(0x0d);//回车
 0118 0DE0              ldi R16,13
 011A DCDF              rcall _putchar
 011C                   .dbline -2
 011C                   .dbline 86
 011C           ;       }       
 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 89
 0120           ; /*                    UART初始化                              */      
 0120           ; void uart_init(void)
 0120           ; {
 0120                   .dbline 90
 0120           ;  UCSRB=(1<<RXEN)|(1<<TXEN);//允许发送和接收
 0120 88E1              ldi R24,24
 0122 8AB9              out 0xa,R24
 0124                   .dbline 91
 0124           ;  UBRRL=(fosc/16/(baud+1))%256;
 0124 84E3              ldi R24,52
 0126 89B9              out 0x9,R24
 0128                   .dbline 92
 0128           ;  UBRRH=(fosc/16/(baud+1))/256;
 0128 2224              clr R2
 012A 20BC              out 0x20,R2
 012C                   .dbline 93
 012C           ;  UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位停止位
 012C 86E8              ldi R24,134
 012E 80BD              out 0x20,R24
 0130                   .dbline -2
 0130                   .dbline 94
 0130           ; }
 0130           L28:
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbend
 0132                   .dbfunc e main _main fV
 0132           ;              p -> R22,R23
 0132           ;              i -> R20
                        .even
 0132           _main::
 0132                   .dbline -1
 0132                   .dbline 97
 0132           ; 
 0132           ; void main(void)
 0132           ; {
 0132                   .dbline 100
 0132           ;  
 0132           ;   unsigned char i,*p;
 0132           ;   uart_init();
 0132 F6DF              rcall _uart_init
 0134                   .dbline 101
 0134           ;   init_infr();
 0134 00D0              rcall _init_infr
 0136 44C0              rjmp L31
 0138           L30:
 0138                   .dbline 107
 0138           ;   
 0138           ;  
 0138           ;  
 0138           ;   
 0138           ;    while(1)
 0138           ;    {
 0138                   .dbline 108
 0138           ;                  delay_ms(2000);
 0138 00ED              ldi R16,2000
 013A 17E0              ldi R17,7
 013C 75DF              rcall _delay_ms
 013E                   .dbline 109
 013E           ;                  for(i=0;i<100;i++)
 013E 4427              clr R20
 0140 23C0              rjmp L36
 0142           L33:
 0142                   .dbline 110
 0142                   .dbline 111
 0142 82E0              ldi R24,2
 0144 849F              mul R24,R20
 0146 F001              movw R30,R0
 0148 80E0              ldi R24,<_counter_buffer
 014A 90E0              ldi R25,>_counter_buffer
 014C E80F              add R30,R24
 014E F91F              adc R31,R25
 0150 0081              ldd R16,z+0
 0152 1181              ldd R17,z+1
 0154 76DF              rcall _uint_asc
 0156 B801              movw R22,R16
 0158                   .dbline 112
 0158 FB01              movw R30,R22
 015A 0191              ld R16,Z+
 015C BF01              movw R22,R30
 015E BADF              rcall _putchar
 0160                   .dbline 113
 0160 FB01              movw R30,R22
 0162 0191              ld R16,Z+
 0164 BF01              movw R22,R30
 0166 B6DF              rcall _putchar
 0168                   .dbline 114
 0168 FB01              movw R30,R22
 016A 0191              ld R16,Z+
 016C BF01              movw R22,R30
 016E B2DF              rcall _putchar
 0170                   .dbline 115
 0170 FB01              movw R30,R22
 0172 0191              ld R16,Z+
 0174 BF01              movw R22,R30
 0176 AEDF              rcall _putchar
 0178                   .dbline 116
 0178 FB01              movw R30,R22
 017A 0191              ld R16,Z+
 017C BF01              movw R22,R30
 017E AADF              rcall _putchar
 0180                   .dbline 118
 0180 00E0              ldi R16,<L37
 0182 10E0              ldi R17,>L37
 0184 ABDF              rcall _puts
 0186                   .dbline 119
 0186           L34:
 0186                   .dbline 109
 0186 4395              inc R20
 0188           L36:
 0188                   .dbline 109
 0188 4436              cpi R20,100
 018A 08F4              brsh X2
 018C DACF              rjmp L33
 018E           X2:
 018E                   .dbline 120
 018E           ;                  {
 018E           ;                         p=uint_asc(counter_buffer[i]);
 018E           ;                         putchar(*p++);
 018E           ;                         putchar(*p++);
 018E           ;                         putchar(*p++);
 018E           ;                         putchar(*p++);
 018E           ;                         putchar(*p++);
 018E           ;   
 018E           ;                         puts("     ");
 018E           ;                       }
 018E           ;                       for(i=0;i<100;i++)
 018E 4427              clr R20
 0190 0CC0              rjmp L41
 0192           L38:
 0192                   .dbline 121
 0192 82E0              ldi R24,2
 0194 849F              mul R24,R20
 0196 F001              movw R30,R0
 0198 80E0              ldi R24,<_counter_buffer
 019A 90E0              ldi R25,>_counter_buffer
 019C E80F              add R30,R24
 019E F91F              adc R31,R25
 01A0 2224              clr R2
 01A2 3324              clr R3
 01A4 3182              std z+1,R3
 01A6 2082              std z+0,R2
 01A8           L39:
 01A8                   .dbline 120
 01A8 4395              inc R20
 01AA           L41:
 01AA                   .dbline 120
 01AA 4436              cpi R20,100
 01AC 90F3              brlo L38
 01AE                   .dbline 122
 01AE 2224              clr R2
 01B0 20920000          sts _n,R2
 01B4                   .dbline 123
 01B4 20920000          sts _flag_start,R2
 01B8                   .dbline 124
 01B8 2EBC              out 0x2e,R2
 01BA                   .dbline 125
 01BA 3324              clr R3
 01BC 3DBC              out 0x2d,R3
 01BE 2CBC              out 0x2c,R2
 01C0                   .dbline 127
 01C0           L31:
 01C0                   .dbline 106
 01C0 BBCF              rjmp L30
 01C2           X1:
 01C2                   .dbline -2
 01C2                   .dbline 128
 01C2           ;                       counter_buffer[i]=0;
 01C2           ;                       n=0;
 01C2           ;                       flag_start=0;
 01C2           ;                       TCCR1B=0;
 01C2           ;                       TCNT1=0;
 01C2           ;   
 01C2           ;  }
 01C2           ; }
 01C2           L29:
 01C2                   .dbline 0 ; func end
 01C2 0895              ret
 01C4                   .dbsym r p 22 pc
 01C4                   .dbsym r i 20 c
 01C4                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\avr\开发板\source\INFRARED\infrared_measure\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 E:\avr\开发板\source\INFRARED\infrared_measure\main.c
 0000           L37:
 0000                   .blkb 6
                        .area idata
 0000 202020202000      .byte 32,32,32,32,32,0
                        .area data(ram, con, rel)
 0006                   .dbfile E:\avr\开发板\source\INFRARED\infrared_measure\main.c

⌨️ 快捷键说明

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