📄 btm48.lis
字号:
00FA .dbline 94
00FA 0FE7 ldi R16,127
00FC 8EDF rcall _DAT
00FE .dbline 94
00FE 02EE ldi R16,226
0100 10E0 ldi R17,0
0102 C4DF rcall _del
0104 .dbline 94
0104 4098 cbi 0x8,0
0106 .dbline 94
0106 0FEF ldi R16,255
0108 88DF rcall _DAT
010A .dbline 94
010A 05E0 ldi R16,5
010C 10E0 ldi R17,0
010E BEDF rcall _del
0110 .dbline 94
0110 0CC0 rjmp L25
0112 L30:
0112 .dbline 95
0112 ; port_init();
0112 439A sbi 0x8,3
0114 .dbline 95
0114 0FE7 ldi R16,127
0116 81DF rcall _DAT
0118 .dbline 95
0118 02EE ldi R16,226
011A 10E0 ldi R17,0
011C B7DF rcall _del
011E .dbline 95
011E 4398 cbi 0x8,3
0120 .dbline 95
0120 0FEF ldi R16,255
0122 7BDF rcall _DAT
0124 .dbline 95
0124 05E0 ldi R16,5
0126 10E0 ldi R17,0
0128 B1DF rcall _del
012A .dbline 95
012A L24:
012A L25:
012A .dbline -2
012A L23:
012A 00D0 rcall pop_gset1
012C .dbline 0 ; func end
012C 0895 ret
012E .dbsym r dou 20 c
012E .dbend
012E .dbfunc e A _A fV
.even
012E _A::
012E .dbline -1
012E .dbline 100
012E ; watchdog_init();
012E ; adc_init();
012E ;
012E ; MCUCR = 0x00;
012E ; EICRA = 0x00; //extended ext ints
012E .dbline 101
012E ; EIMSK = 0x00;
012E 2A9A sbi 0x5,2
0130 .dbline 101
0130 80E0 ldi R24,<_shu
0132 90E0 ldi R25,>_shu
0134 E0910C00 lds R30,_tm
0138 FF27 clr R31
013A E80F add R30,R24
013C F91F adc R31,R25
013E 0081 ldd R16,z+0
0140 6CDF rcall _DAT
0142 .dbline 101
0142 04EB ldi R16,180
0144 10E0 ldi R17,0
0146 A2DF rcall _del
0148 .dbline 101
0148 2A98 cbi 0x5,2
014A .dbline 101
014A 0FEF ldi R16,255
014C 66DF rcall _DAT
014E .dbline 101
014E 05E0 ldi R16,5
0150 10E0 ldi R17,0
0152 9CDF rcall _del
0154 .dbline 101
0154 A895 wdr
0156 .dbline 102
0156 ;
0156 2B9A sbi 0x5,3
0158 .dbline 102
0158 80E0 ldi R24,<_shu
015A 90E0 ldi R25,>_shu
015C E0910D00 lds R30,_tm+1
0160 FF27 clr R31
0162 E80F add R30,R24
0164 F91F adc R31,R25
0166 0081 ldd R16,z+0
0168 58DF rcall _DAT
016A .dbline 102
016A 04EB ldi R16,180
016C 10E0 ldi R17,0
016E 8EDF rcall _del
0170 .dbline 102
0170 2B98 cbi 0x5,3
0172 .dbline 102
0172 0FEF ldi R16,255
0174 52DF rcall _DAT
0176 .dbline 102
0176 05E0 ldi R16,5
0178 10E0 ldi R17,0
017A 88DF rcall _del
017C .dbline 102
017C A895 wdr
017E .dbline 103
017E ; TIMSK0 = 0x00; //timer 0 interrupt sources
017E 409A sbi 0x8,0
0180 .dbline 103
0180 80E0 ldi R24,<_shu
0182 90E0 ldi R25,>_shu
0184 E0910E00 lds R30,_tm+2
0188 FF27 clr R31
018A E80F add R30,R24
018C F91F adc R31,R25
018E 0081 ldd R16,z+0
0190 44DF rcall _DAT
0192 .dbline 103
0192 04EB ldi R16,180
0194 10E0 ldi R17,0
0196 7ADF rcall _del
0198 .dbline 103
0198 4098 cbi 0x8,0
019A .dbline 103
019A 0FEF ldi R16,255
019C 3EDF rcall _DAT
019E .dbline 103
019E 05E0 ldi R16,5
01A0 10E0 ldi R17,0
01A2 74DF rcall _del
01A4 .dbline 103
01A4 A895 wdr
01A6 .dbline 104
01A6 ; TIMSK1 = 0x00; //timer 1 interrupt sources
01A6 439A sbi 0x8,3
01A8 .dbline 104
01A8 80E0 ldi R24,<_shu
01AA 90E0 ldi R25,>_shu
01AC E0910F00 lds R30,_tm+3
01B0 FF27 clr R31
01B2 E80F add R30,R24
01B4 F91F adc R31,R25
01B6 0081 ldd R16,z+0
01B8 30DF rcall _DAT
01BA .dbline 104
01BA 04EB ldi R16,180
01BC 10E0 ldi R17,0
01BE 66DF rcall _del
01C0 .dbline 104
01C0 4398 cbi 0x8,3
01C2 .dbline 104
01C2 0FEF ldi R16,255
01C4 2ADF rcall _DAT
01C6 .dbline 104
01C6 05E0 ldi R16,5
01C8 10E0 ldi R17,0
01CA 60DF rcall _del
01CC .dbline 104
01CC A895 wdr
01CE .dbline 105
01CE ; TIMSK2 = 0x00; //timer 2 interrupt sources
01CE 00912100 lds R16,_doudian
01D2 64DF rcall _dot
01D4 .dbline -2
01D4 L31:
01D4 .dbline 0 ; func end
01D4 0895 ret
01D6 .dbend
01D6 .dbfunc e bee _bee fV
01D6 ; j -> R20,R21
01D6 ; j1 -> R12,R13
01D6 ; spfreq -> R22,R23
01D6 ; k -> R14,R15
01D6 ; tone -> R20,R21
01D6 ; soundlong -> R10,R11
.even
01D6 _bee::
01D6 00D0 rcall push_gset5
01D8 A901 movw R20,R18
01DA 5801 movw R10,R16
01DC .dbline -1
01DC .dbline 109
01DC ;
01DC ; PCMSK0 = 0x00; //pin change mask 0
01DC ; PCMSK1 = 0x00; //pin change mask 1
01DC ; PCMSK2 = 0x00; //pin change mask 2
01DC .dbline 111
01DC ; PCICR = 0x00; //pin change enable
01DC ; PRR = 0x00; //power controller
01DC 08E9 ldi R16,15000
01DE 1AE3 ldi R17,58
01E0 9A01 movw R18,R20
01E2 00D0 rcall div16u
01E4 B801 movw R22,R16
01E6 7695 lsr R23
01E8 6795 ror R22
01EA .dbline 112
01EA ; SEI(); //re-enable interrupts
01EA 4427 clr R20
01EC 5527 clr R21
01EE 22C0 rjmp L39
01F0 L36:
01F0 .dbline 113
01F0 ; //all peripherals are now initialized
01F0 CC24 clr R12
01F2 DD24 clr R13
01F4 18C0 rjmp L43
01F6 L40:
01F6 .dbline 114
01F6 ; }
01F6 .dbline 115
01F6 ;
01F6 2E98 cbi 0x5,6
01F8 .dbline 116
01F8 EE24 clr R14
01FA FF24 clr R15
01FC 03C0 rjmp L47
01FE L44:
01FE .dbline 116
01FE L45:
01FE .dbline 116
01FE C701 movw R24,R14
0200 0196 adiw R24,1
0202 7C01 movw R14,R24
0204 L47:
0204 .dbline 116
0204 ;
0204 E616 cp R14,R22
0206 F706 cpc R15,R23
0208 D0F3 brlo L44
020A .dbline 117
020A ;
020A 2F9A sbi 0x5,7
020C .dbline 118
020C EE24 clr R14
020E FF24 clr R15
0210 03C0 rjmp L51
0212 L48:
0212 .dbline 118
0212 L49:
0212 .dbline 118
0212 C701 movw R24,R14
0214 0196 adiw R24,1
0216 7C01 movw R14,R24
0218 L51:
0218 .dbline 118
0218 E616 cp R14,R22
021A F706 cpc R15,R23
021C D0F3 brlo L48
021E .dbline 119
021E A895 wdr
0220 .dbline 120
0220 L41:
0220 .dbline 113
0220 C601 movw R24,R12
0222 0196 adiw R24,1
0224 6C01 movw R12,R24
0226 L43:
0226 .dbline 113
0226 C601 movw R24,R12
0228 8431 cpi R24,20
022A E0E0 ldi R30,0
022C 9E07 cpc R25,R30
022E 18F3 brlo L40
0230 L37:
0230 .dbline 112
0230 4F5F subi R20,255 ; offset = 1
0232 5F4F sbci R21,255
0234 L39:
0234 .dbline 112
0234 4A15 cp R20,R10
0236 5B05 cpc R21,R11
0238 D8F2 brlo L36
023A .dbline 121
023A ; void main(void)
023A ; {
023A ; unit n=11100;
023A ; uchar ii=0;
023A 2F9A sbi 0x5,7
023C .dbline -2
023C L35:
023C 00D0 rcall pop_gset5
023E .dbline 0 ; func end
023E 0895 ret
0240 .dbsym r j 20 i
0240 .dbsym r j1 12 i
0240 .dbsym r spfreq 22 i
0240 .dbsym r k 14 i
0240 .dbsym r tone 20 i
0240 .dbsym r soundlong 10 i
0240 .dbend
0240 .dbfunc e delay _delay fV
0240 ; i2 -> R20,R21
0240 ; n -> R22,R23
.even
0240 _delay::
0240 00D0 rcall push_gset2
0242 B801 movw R22,R16
0244 .dbline -1
0244 .dbline 127
0244 ; unit Counter,Rx,TH,Zb,TL;
0244 ;
0244 ; init_devices();
0244 ;
0244 ; //*测量占空比
0244 ; while(1)
0244 .dbline 128
0244 ; {
0244 4427 clr R20
0246 5527 clr R21
0248 04C0 rjmp L54
024A L53:
024A .dbline 130
024A .dbline 131
024A 71DF rcall _A
024C .dbline 131
024C 4F5F subi R20,255 ; offset = 1
024E 5F4F sbci R21,255
0250 .dbline 131
0250 A895 wdr
0252 .dbline 132
0252 L54:
0252 .dbline 129
0252 ; PORTB|=0X01;DDRB&=~0X01;
0252 4617 cp R20,R22
0254 5707 cpc R21,R23
0256 C8F3 brlo L53
0258 .dbline -2
0258 L52:
0258 00D0 rcall pop_gset2
025A .dbline 0 ; func end
025A 0895 ret
025C .dbsym r i2 20 i
025C .dbsym r n 22 i
025C .dbend
025C .dbfunc e show _show fV
025C ; i -> R20
025C ; dat -> R22,R23
025C ; n -> R10
.even
025C _show::
025C 00D0 rcall push_gset3
025E B901 movw R22,R18
0260 A02E mov R10,R16
0262 .dbline -1
0262 .dbline 137
0262 ; Counter=0;Rx=0;
0262 ; while(!TestIO);
0262 ; while(TestIO);
0262 ;
0262 ; TCNT1H = 0x00; TCNT1L = 0x00; TCCR1B = 0x02;
0262 ; while(!TestIO); //高电平时间
0262 ; TH=0xffff*Counter+TCNT1;
0262 ; while(TestIO);
0262 .dbline 139
0262 4427 clr R20
0264 11C0 rjmp L60
0266 L57:
0266 .dbline 139
0266 .dbline 140
0266 2AE0 ldi R18,10
0268 30E0 ldi R19,0
026A 8B01 movw R16,R22
026C 00D0 rcall mod16u
026E 80E0 ldi R24,<_tm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -