📄 coding.lis
字号:
0110 20920000 sts _ms,R2
0114 01C0 rjmp L26
0116 L25:
0116 .dbline 83
0116 ; while(ms<3) PORTB=PORTB|0x01;
0116 C09A sbi 0x18,0
0118 L26:
0118 .dbline 83
0118 80910000 lds R24,_ms
011C 90910100 lds R25,_ms+1
0120 8330 cpi R24,3
0122 E0E0 ldi R30,0
0124 9E07 cpc R25,R30
0126 B8F3 brlo L25
0128 X5:
0128 .dbline -2
0128 L21:
0128 .dbline 0 ; func end
0128 0895 ret
012A .dbend
012A .dbfunc e signal_init _signal_init fV
.even
012A _signal_init::
012A .dbline -1
012A .dbline 88
012A ;
012A ; }
012A ;
012A ; void signal_init(void)
012A ; {
012A .dbline 89
012A ; ms=0;
012A 2224 clr R2
012C 3324 clr R3
012E 30920100 sts _ms+1,R3
0132 20920000 sts _ms,R2
0136 03C0 rjmp L30
0138 L29:
0138 .dbline 90
0138 ; while(ms<4) PORTB=PORTB&0xfe;
0138 88B3 in R24,0x18
013A 8E7F andi R24,254
013C 88BB out 0x18,R24
013E L30:
013E .dbline 90
013E 80910000 lds R24,_ms
0142 90910100 lds R25,_ms+1
0146 8430 cpi R24,4
0148 E0E0 ldi R30,0
014A 9E07 cpc R25,R30
014C A8F3 brlo L29
014E X6:
014E .dbline 91
014E ; ms=0;
014E 2224 clr R2
0150 3324 clr R3
0152 30920100 sts _ms+1,R3
0156 20920000 sts _ms,R2
015A 01C0 rjmp L33
015C L32:
015C .dbline 92
015C ; while(ms<4) PORTB=PORTB|0x01;
015C C09A sbi 0x18,0
015E L33:
015E .dbline 92
015E 80910000 lds R24,_ms
0162 90910100 lds R25,_ms+1
0166 8430 cpi R24,4
0168 E0E0 ldi R30,0
016A 9E07 cpc R25,R30
016C B8F3 brlo L32
016E X7:
016E .dbline -2
016E L28:
016E .dbline 0 ; func end
016E 0895 ret
0170 .dbend
0170 .dbfunc e signal_end _signal_end fV
.even
0170 _signal_end::
0170 .dbline -1
0170 .dbline 97
0170 ;
0170 ; }
0170 ;
0170 ; void signal_end(void)
0170 ; { ms=0;
0170 .dbline 97
0170 2224 clr R2
0172 3324 clr R3
0174 30920100 sts _ms+1,R3
0178 20920000 sts _ms,R2
017C 03C0 rjmp L37
017E L36:
017E .dbline 98
017E ; while(ms==0) PORTB=PORTB&0xfe;
017E 88B3 in R24,0x18
0180 8E7F andi R24,254
0182 88BB out 0x18,R24
0184 L37:
0184 .dbline 98
0184 20900000 lds R2,_ms
0188 30900100 lds R3,_ms+1
018C 2220 tst R2
018E 11F4 brne X8
0190 3320 tst R3
0192 A9F3 breq L36
0194 X8:
0194 .dbline 100
0194 ;
0194 ; PORTB=PORTB|0x01;
0194 C09A sbi 0x18,0
0196 .dbline -2
0196 L35:
0196 .dbline 0 ; func end
0196 0895 ret
0198 .dbend
0198 .dbfunc e coding _coding fV
0198 ; m -> R20
0198 ; j -> R20
0198 ; i -> R22
0198 ; num -> R10
.even
0198 _coding::
0198 00D0 rcall push_xgsetF00C
019A A02E mov R10,R16
019C .dbline -1
019C .dbline 104
019C ; }
019C ;
019C ; void coding(unsigned char num)
019C ; { unsigned char i,j,m;
019C .dbline 105
019C ; for(j=0;j<6;j++)
019C 4427 clr R20
019E 02C0 rjmp L43
01A0 L40:
01A0 .dbline 106
01A0 ; {
01A0 .dbline 107
01A0 ; signal_init();
01A0 C4DF rcall _signal_init
01A2 .dbline 108
01A2 ; }
01A2 L41:
01A2 .dbline 105
01A2 4395 inc R20
01A4 L43:
01A4 .dbline 105
01A4 4630 cpi R20,6
01A6 E0F3 brlo L40
01A8 X9:
01A8 .dbline 110
01A8 ;
01A8 ; for(m=0;m<1;m++)
01A8 4427 clr R20
01AA 15C0 rjmp L47
01AC L44:
01AC .dbline 111
01AC ; {
01AC .dbline 113
01AC ;
01AC ; signal_0();
01AC 78DF rcall _signal_0
01AE .dbline 114
01AE ; signal_1();
01AE 9ADF rcall _signal_1
01B0 .dbline 115
01B0 ; signal_0();
01B0 76DF rcall _signal_0
01B2 .dbline 116
01B2 ; signal_1();
01B2 98DF rcall _signal_1
01B4 .dbline 118
01B4 ;
01B4 ; for(i=0;i<8;i++)
01B4 6627 clr R22
01B6 0AC0 rjmp L51
01B8 L48:
01B8 .dbline 119
01B8 ; {
01B8 .dbline 121
01B8 ;
01B8 ; if( ( num&(0x01<<i) )!=0)
01B8 01E0 ldi R16,1
01BA 162F mov R17,R22
01BC 00D0 rcall lsl8
01BE 2A2C mov R2,R10
01C0 2022 and R2,R16
01C2 11F0 breq L52
01C4 X10:
01C4 .dbline 122
01C4 ; signal_1();
01C4 8FDF rcall _signal_1
01C6 01C0 rjmp L53
01C8 L52:
01C8 .dbline 124
01C8 ; else
01C8 ; signal_0();
01C8 6ADF rcall _signal_0
01CA L53:
01CA .dbline 126
01CA ;
01CA ; }
01CA L49:
01CA .dbline 118
01CA 6395 inc R22
01CC L51:
01CC .dbline 118
01CC 6830 cpi R22,8
01CE A0F3 brlo L48
01D0 X11:
01D0 .dbline 127
01D0 ; signal_init();
01D0 ACDF rcall _signal_init
01D2 .dbline 128
01D2 ; signal_init();
01D2 ABDF rcall _signal_init
01D4 .dbline 129
01D4 ; }
01D4 L45:
01D4 .dbline 110
01D4 4395 inc R20
01D6 L47:
01D6 .dbline 110
01D6 4130 cpi R20,1
01D8 48F3 brlo L44
01DA X12:
01DA .dbline 131
01DA ;
01DA ; signal_end();
01DA CADF rcall _signal_end
01DC .dbline -2
01DC L39:
01DC .dbline 0 ; func end
01DC 00C0 rjmp pop_xgsetF00C
01DE .dbsym r m 20 c
01DE .dbsym r j 20 c
01DE .dbsym r i 22 c
01DE .dbsym r num 10 c
01DE .dbend
01DE .dbfunc e main _main fV
01DE ; code -> <dead>
01DE ; t -> R20,R21
.even
01DE _main::
01DE .dbline -1
01DE .dbline 135
01DE ; }
01DE ; //
01DE ; void main(void)
01DE ; {unsigned code;
01DE .dbline 136
01DE ; unsigned t=0;
01DE 4427 clr R20
01E0 5527 clr R21
01E2 .dbline 137
01E2 ; init_devices();
01E2 53DF rcall _init_devices
01E4 .dbline 138
01E4 ; DDRD=0x00;
01E4 2224 clr R2
01E6 21BA out 0x11,R2
01E8 .dbline 139
01E8 ; PORTD=0x01;
01E8 81E0 ldi R24,1
01EA 82BB out 0x12,R24
01EC 0DC0 rjmp L56
01EE L55:
01EE .dbline 144
01EE ;
01EE ; //insert your functional code here...
01EE ;
01EE ; while(1)
01EE ; {
01EE .dbline 153
01EE ;
01EE ; /*
01EE ;
01EE ; while(PIND!=0x01) ;
01EE ; while(PIND==0x01) coding(0x11);
01EE ; coding(0xff);
01EE ; delay(2000);
01EE ; */
01EE ; t++;
01EE 4F5F subi R20,255 ; offset = 1
01F0 5F4F sbci R21,255
01F2 .dbline 154
01F2 ; if(t==0xff) t=0;
01F2 4F3F cpi R20,255
01F4 E0E0 ldi R30,0
01F6 5E07 cpc R21,R30
01F8 11F4 brne L58
01FA X13:
01FA .dbline 154
01FA 4427 clr R20
01FC 5527 clr R21
01FE L58:
01FE .dbline 155
01FE ; coding(t);
01FE 042F mov R16,R20
0200 CBDF rcall _coding
0202 .dbline 156
0202 ; delay(50000);
0202 00E5 ldi R16,50000
0204 13EC ldi R17,195
0206 FCDE rcall _delay
0208 .dbline 160
0208 ;
0208 ;
0208 ;
0208 ; }
0208 L56:
0208 .dbline 143
0208 F2CF rjmp L55
020A X14:
020A .dbline -2
020A L54:
020A .dbline 0 ; func end
020A 0895 ret
020C .dbsym l code 1 i
020C .dbsym r t 20 i
020C .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\MYDOCU~1\电子\08电信节\coding_and_decode改进\coding.c
0000 _ms::
0000 .blkb 2
0002 .dbsym e ms _ms i
0002 ;
0002 ;
0002 ;
0002 ; }
0002 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -