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