📄 biaotoum48.lst
字号:
(0105) TIMSK2 = 0x00; //timer 2 interrupt sources
02D3 92200070 STS 0x70,R2
(0106)
(0107) PCMSK0 = 0x00; //pin change mask 0
02D5 9220006B STS 0x6B,R2
(0108) PCMSK1 = 0x00; //pin change mask 1
02D7 9220006C STS 0x6C,R2
(0109) PCMSK2 = 0x00; //pin change mask 2
02D9 9220006D STS 0x6D,R2
(0110) PCICR = 0x00; //pin change enable
02DB 92200068 STS 0x68,R2
(0111) PRR = 0x00; //power controller
02DD 92200064 STS 0x64,R2
(0112) SEI(); //re-enable interrupts
02DF 9478 BSET 7
02E0 9508 RET
(0113) //all peripherals are now initialized
(0114) }
(0115)
(0116)
(0117)
(0118) void main(void)
(0119) {
(0120) unit n=11100;
_main:
Zb --> Y+1
ii --> R20
n --> R20
TL --> R20
TH --> R20
Rx --> R10
Counter --> R22
02E1 E54C LDI R20,0x5C
02E2 E25B LDI R21,0x2B
(0121) uchar ii=0;
02E3 2744 CLR R20
(0122) unit Counter,Rx,TH,Zb,TL;
(0123)
(0124) init_devices();
02E4 DFE1 RCALL _init_devices
02E5 C044 RJMP 0x032A
(0125)
(0126) //*测量占空比
(0127) while(1)
(0128) {
(0129) PORTB|=0X01;DDRB&=~0X01;
02E6 9A28 SBI 0x05,0
02E7 9820 CBI 0x04,0
(0130) Counter=0;Rx=0;
02E8 2766 CLR R22
02E9 2777 CLR R23
02EA 24AA CLR R10
02EB 24BB CLR R11
(0131) while(!TestIO);
02EC B183 IN R24,0x03
02ED 7081 ANDI R24,1
02EE 3081 CPI R24,1
02EF F7E1 BNE 0x02EC
(0132) while(TestIO);
02F0 B023 IN R2,0x03
02F1 2433 CLR R3
02F2 FC20 SBRC R2,0
02F3 CFFC RJMP 0x02F0
(0133)
(0134) TCNT1H = 0x00; TCNT1L = 0x00; TCCR1B = 0x02;
02F4 2422 CLR R2
02F5 92200085 STS 0x85,R2
02F7 92200084 STS 0x84,R2
02F9 E082 LDI R24,2
02FA 93800081 STS 0x81,R24
(0135) while(!TestIO); //高电平时间
02FC B183 IN R24,0x03
02FD 7081 ANDI R24,1
02FE 3081 CPI R24,1
02FF F7E1 BNE 0x02FC
(0136) TH=0xffff*Counter+TCNT1;
0300 EF0F LDI R16,0xFF
0301 EF1F LDI R17,0xFF
0302 019B MOVW R18,R22
0303 D0C5 RCALL empy16s
0304 01A8 MOVW R20,R16
0305 90200084 LDS R2,0x84
0307 90300085 LDS R3,0x85
0309 0D42 ADD R20,R2
030A 1D53 ADC R21,R3
(0137) while(TestIO);
030B B023 IN R2,0x03
030C 2433 CLR R3
030D FC20 SBRC R2,0
030E CFFC RJMP 0x030B
(0138) while(!TestIO);
030F B183 IN R24,0x03
0310 7081 ANDI R24,1
0311 3081 CPI R24,1
0312 F7E1 BNE 0x030F
(0139) TCNT1H = 0x00; TCNT1L = 0x00; TCCR1B = 0x02;
0313 2422 CLR R2
0314 92200085 STS 0x85,R2
0316 92200084 STS 0x84,R2
0318 E082 LDI R24,2
0319 93800081 STS 0x81,R24
(0140) while(TestIO); //di电平时间
031B B023 IN R2,0x03
031C 2433 CLR R3
031D FC20 SBRC R2,0
031E CFFC RJMP 0x031B
(0141) TL=0xffff*Counter+TCNT1;
031F EF0F LDI R16,0xFF
0320 EF1F LDI R17,0xFF
0321 019B MOVW R18,R22
0322 D0A6 RCALL empy16s
0323 01A8 MOVW R20,R16
0324 90200084 LDS R2,0x84
0326 90300085 LDS R3,0x85
0328 0D42 ADD R20,R2
0329 1D53 ADC R21,R3
032A CFBB RJMP 0x02E6
(0142) }
(0143)
(0144) /*测量高电平时间
(0145) while(1)
(0146) {
(0147) PORTB|=0X01;
(0148) DDRB&=~0X01;
(0149) Counter=0; //高电平时间
(0150) while(!TestIO);
(0151) while(TestIO);
(0152) TCNT1H = 0x00; TCNT1L = 0x00; TCCR1B = 0x02;
(0153) while(!TestIO);
(0154) TCCR1B = 0x00;
(0155) Counter=0xffff*Counter+TCNT1H*0xff+TCNT1L;
(0156) if(Counter<9999)show4(Counter) ;
(0157) }
(0158) //*测量电压
(0159) while(1)
(0160) {
(0161) dat=0;
(0162) delay1(100);
(0163) dat=cw1(7);
(0164) Rx=dat*(5000/1024);
(0165) show41(Rx,1) ;
(0166) }
(0167)
(0168) /*测量温度
(0169) while(1)
(0170) {
(0171) delay(100);
(0172) dat=cw1(5);
(0173) Rx=((1024-dat)*R*100)/dat;
(0174) show4( PT100(Rx)) ;
(0175) }
(0176) */
(0177)
(0178) while(1)
(0179) {
(0180)
(0181) delay(10);
032B E00A LDI R16,0xA
032C E010 LDI R17,0
032D DE48 RCALL _delay
(0182) show4(PT100(cw1(5)),1);
FILE: <library>
032E E005 LDI R16,5
032F DF81 RCALL _cw1
0330 2722 CLR R18
0331 2733 CLR R19
0332 DEB9 RCALL _PT100
0333 E021 LDI R18,1
0334 DE83 RCALL _show4
0335 CFF5 RJMP 0x032B
0336 9508 RET
push_arg4:
0337 933A ST R19,-Y
0338 932A ST R18,-Y
push_arg2:
0339 931A ST R17,-Y
033A 930A ST R16,-Y
033B 9508 RET
mod16u:
033C 9468 BSET 6
033D C001 RJMP xdiv16u
div16u:
033E 94E8 BCLR 6
xdiv16u:
033F 92EA ST R14,-Y
0340 92FA ST R15,-Y
0341 938A ST R24,-Y
0342 24EE CLR R14
0343 24FF CLR R15
0344 E180 LDI R24,0x10
0345 0F00 LSL R16
0346 1F11 ROL R17
0347 1CEE ROL R14
0348 1CFF ROL R15
0349 16E2 CP R14,R18
034A 06F3 CPC R15,R19
034B F018 BCS 0x034F
034C 1AE2 SUB R14,R18
034D 0AF3 SBC R15,R19
034E 9503 INC R16
034F 958A DEC R24
0350 F7A1 BNE 0x0345
0351 F416 BRTC 0x0354
0352 2D0E MOV R16,R14
0353 2D1F MOV R17,R15
0354 9189 LD R24,Y+
0355 90F9 LD R15,Y+
0356 90E9 LD R14,Y+
0357 9508 RET
div32u:
0358 94E8 BCLR 6
0359 C001 RJMP 0x035B
mod32u:
035A 9468 BSET 6
035B D02F RCALL long_div_prolog
035C 24CC CLR R12
035D C008 RJMP 0x0366
div32s:
035E 94E8 BCLR 6
035F C001 RJMP 0x0361
mod32s:
0360 9468 BSET 6
0361 D029 RCALL long_div_prolog
0362 FD37 SBRC R19,7
0363 D053 RCALL neg_R16_R19
0364 FDB7 SBRC R27,7
0365 D05A RCALL neg_R24_R27
0366 2477 CLR R7
0367 2488 CLR R8
0368 2499 CLR R9
0369 24AA CLR R10
036A 24BB CLR R11
036B D041 RCALL tst_R16_R19
036C F0C1 BEQ 0x0385
036D D044 RCALL tst_R24_R27
036E F0B1 BEQ 0x0385
036F E2E8 LDI R30,0x28
0370 0F00 LSL R16
0371 1F11 ROL R17
0372 1F22 ROL R18
0373 1F33 ROL R19
0374 1C77 ROL R7
0375 1C88 ROL R8
0376 1C99 ROL R9
0377 1CAA ROL R10
0378 1CBB ROL R11
0379 1688 CP R8,R24
037A 0699 CPC R9,R25
037B 06AA CPC R10,R26
037C 06BB CPC R11,R27
037D F028 BCS 0x0383
037E 1A88 SUB R8,R24
037F 0A99 SBC R9,R25
0380 0AAA SBC R10,R26
0381 0ABB SBC R11,R27
0382 9503 INC R16
0383 95EA DEC R30
0384 F759 BNE 0x0370
0385 F426 BRTC 0x038A
0386 2D08 MOV R16,R8
0387 2D19 MOV R17,R9
0388 2D2A MOV R18,R10
0389 2D3B MOV R19,R11
038A C013 RJMP long_div_epilog
long_div_prolog:
038B 927A ST R7,-Y
038C 928A ST R8,-Y
038D 929A ST R9,-Y
038E 92AA ST R10,-Y
038F 92BA ST R11,-Y
0390 92CA ST R12,-Y
0391 93EA ST R30,-Y
0392 938A ST R24,-Y
0393 939A ST R25,-Y
0394 93AA ST R26,-Y
0395 93BA ST R27,-Y
0396 858B LDD R24,Y+11
0397 859C LDD R25,Y+12
0398 85AD LDD R26,Y+13
0399 85BE LDD R27,Y+14
039A 2EC3 MOV R12,R19
039B F00E BRTS 0x039D
039C 26CB EOR R12,R27
039D 9508 RET
long_div_epilog:
039E FCC7 SBRC R12,7
039F D017 RCALL neg_R16_R19
03A0 91B9 LD R27,Y+
03A1 91A9 LD R26,Y+
03A2 9199 LD R25,Y+
03A3 9189 LD R24,Y+
03A4 91E9 LD R30,Y+
03A5 90C9 LD R12,Y+
03A6 90B9 LD R11,Y+
03A7 90A9 LD R10,Y+
03A8 9099 LD R9,Y+
03A9 9089 LD R8,Y+
03AA 9079 LD R7,Y+
03AB 9624 ADIW R28,4
03AC 9508 RET
tst_R16_R19:
03AD 2FE0 MOV R30,R16
03AE 2BE1 OR R30,R17
03AF 2BE2 OR R30,R18
03B0 2BE3 OR R30,R19
03B1 9508 RET
tst_R24_R27:
03B2 2FE8 MOV R30,R24
03B3 2BE9 OR R30,R25
03B4 2BEA OR R30,R26
03B5 2BEB OR R30,R27
03B6 9508 RET
neg_R16_R19:
03B7 9500 COM R16
03B8 9510 COM R17
03B9 9520 COM R18
03BA 9530 COM R19
03BB 5F0F SUBI R16,0xFF
03BC 4F1F SBCI R17,0xFF
03BD 4F2F SBCI R18,0xFF
03BE 4F3F SBCI R19,0xFF
03BF 9508 RET
neg_R24_R27:
03C0 9580 COM R24
03C1 9590 COM R25
03C2 95A0 COM R26
03C3 95B0 COM R27
03C4 5F8F SUBI R24,0xFF
03C5 4F9F SBCI R25,0xFF
03C6 4FAF SBCI R26,0xFF
03C7 4FBF SBCI R27,0xFF
03C8 9508 RET
empy16s:
03C9 920A ST R0,-Y
03CA 921A ST R1,-Y
03CB 938A ST R24,-Y
03CC 939A ST R25,-Y
03CD 9F02 MUL R16,R18
03CE 01C0 MOVW R24,R0
03CF 9F12 MUL R17,R18
03D0 0D90 ADD R25,R0
03D1 9F03 MUL R16,R19
03D2 0D90 ADD R25,R0
03D3 018C MOVW R16,R24
03D4 9199 LD R25,Y+
03D5 9189 LD R24,Y+
03D6 9019 LD R1,Y+
03D7 9009 LD R0,Y+
03D8 9508 RET
empy32u:
empy32s:
03D9 D052 RCALL long_prolog
03DA 927F PUSH R7
03DB D069 RCALL tstzero1
03DC F131 BEQ 0x0403
03DD 2477 CLR R7
03DE D06C RCALL tstzero2
03DF F419 BNE 0x03E3
03E0 018C MOVW R16,R24
03E1 019D MOVW R18,R26
03E2 C020 RJMP 0x0403
03E3 9F08 MUL R16,R24
03E4 2CB0 MOV R11,R0
03E5 2CA1 MOV R10,R1
03E6 9F28 MUL R18,R24
03E7 2C90 MOV R9,R0
03E8 2C81 MOV R8,R1
03E9 9F18 MUL R17,R24
03EA 0CA0 ADD R10,R0
03EB 1C91 ADC R9,R1
03EC 1C87 ADC R8,R7
03ED 9F09 MUL R16,R25
03EE 0CA0 ADD R10,R0
03EF 1C91 ADC R9,R1
03F0 1C87 ADC R8,R7
03F1 9F19 MUL R17,R25
03F2 0C90 ADD R9,R0
03F3 1C81 ADC R8,R1
03F4 9F0A MUL R16,R26
03F5 0C90 ADD R9,R0
03F6 1C81 ADC R8,R1
03F7 9F38 MUL R19,R24
03F8 0C80 ADD R8,R0
03F9 9F29 MUL R18,R25
03FA 0C80 ADD R8,R0
03FB 9F1A MUL R17,R26
03FC 0C80 ADD R8,R0
03FD 9F0B MUL R16,R27
03FE 0C80 ADD R8,R0
03FF 2D0B MOV R16,R11
0400 2D1A MOV R17,R10
0401 2D29 MOV R18,R9
0402 2D38 MOV R19,R8
0403 907F POP R7
0404 C035 RJMP long_epilog
pop_gset2:
0405 E0E2 LDI R30,2
0406 C012 RJMP pop
pop_gset3:
0407 E0E4 LDI R30,4
0408 C010 RJMP pop
pop_gset4:
0409 E0E8 LDI R30,0x8
040A C00E RJMP pop
pop_gset5:
040B 27EE CLR R30
040C C00C RJMP pop
push_gset5:
040D 92FA ST R15,-Y
040E 92EA ST R14,-Y
push_gset4:
040F 92DA ST R13,-Y
0410 92CA ST R12,-Y
push_gset3:
0411 92BA ST R11,-Y
0412 92AA ST R10,-Y
push_gset2:
0413 937A ST R23,-Y
0414 936A ST R22,-Y
push_gset1:
0415 935A ST R21,-Y
0416 934A ST R20,-Y
0417 9508 RET
pop_gset1:
0418 E0E1 LDI R30,1
pop:
0419 9149 LD R20,Y+
041A 9159 LD R21,Y+
041B FDE0 SBRC R30,0
041C 9508 RET
041D 9169 LD R22,Y+
041E 9179 LD R23,Y+
041F FDE1 SBRC R30,1
0420 9508 RET
0421 90A9 LD R10,Y+
0422 90B9 LD R11,Y+
0423 FDE2 SBRC R30,2
0424 9508 RET
0425 90C9 LD R12,Y+
0426 90D9 LD R13,Y+
0427 FDE3 SBRC R30,3
0428 9508 RET
0429 90E9 LD R14,Y+
042A 90F9 LD R15,Y+
042B 9508 RET
long_prolog:
042C 928A ST R8,-Y
042D 929A ST R9,-Y
042E 92AA ST R10,-Y
042F 92BA ST R11,-Y
0430 93EA ST R30,-Y
0431 938A ST R24,-Y
0432 939A ST R25,-Y
0433 93AA ST R26,-Y
0434 93BA ST R27,-Y
0435 8589 LDD R24,Y+9
0436 859A LDD R25,Y+10
0437 85AB LDD R26,Y+11
0438 85BC LDD R27,Y+12
0439 9508 RET
long_epilog:
043A 91B9 LD R27,Y+
043B 91A9 LD R26,Y+
043C 9199 LD R25,Y+
043D 9189 LD R24,Y+
043E 91E9 LD R30,Y+
043F 90B9 LD R11,Y+
0440 90A9 LD R10,Y+
0441 9099 LD R9,Y+
0442 9089 LD R8,Y+
0443 9624 ADIW R28,4
0444 9508 RET
tstzero1:
0445 27EE CLR R30
0446 2BE0 OR R30,R16
0447 2BE1 OR R30,R17
0448 2BE2 OR R30,R18
0449 2BE3 OR R30,R19
044A 9508 RET
tstzero2:
044B 27EE CLR R30
044C 2BE8 OR R30,R24
044D 2BE9 OR R30,R25
044E 2BEA OR R30,R26
044F 2BEB OR R30,R27
0450 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -