📄 main.lis
字号:
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 + -