📄 echo.lst
字号:
0366 E02A LDI R18,0xA
0367 E001 LDI R16,1
0368 DF2C RCALL _LCD_Cursor
(0071) LCD_DisplayCharacter(ASCII_T[1]); //10BIT
0369 91000098 LDS R16,0x98
036B DF03 RCALL _LCD_DisplayCharacter
(0072) LCD_Cursor(1,11);
036C E02B LDI R18,0xB
036D E001 LDI R16,1
036E DF26 RCALL _LCD_Cursor
(0073) LCD_DisplayCharacter(ASCII_T[2]); //1BIT
036F 91000099 LDS R16,0x99
0371 DEFD RCALL _LCD_DisplayCharacter
(0074) LCD_Cursor(1,12);
0372 E02C LDI R18,0xC
0373 E001 LDI R16,1
0374 DF20 RCALL _LCD_Cursor
(0075) LCD_DisplayCharacter('.');// . BIT
0375 E20E LDI R16,0x2E
0376 DEF8 RCALL _LCD_DisplayCharacter
(0076) LCD_Cursor(1,13);
0377 E02D LDI R18,0xD
0378 E001 LDI R16,1
0379 DF1B RCALL _LCD_Cursor
(0077) LCD_DisplayCharacter(ASCII_T[0]);//0.1BIT
037A 91000097 LDS R16,0x97
037C DEF2 RCALL _LCD_DisplayCharacter
(0078) LCD_Cursor(1,14);
037D E02E LDI R18,0xE
037E E001 LDI R16,1
037F DF15 RCALL _LCD_Cursor
(0079) LCD_DisplayCharacter('`'); //UNIT
0380 E600 LDI R16,0x60
0381 DEED RCALL _LCD_DisplayCharacter
(0080) LCD_DisplayCharacter('C'); //UNIT
0382 E403 LDI R16,0x43
(0081) }
0383 CEEB RJMP _LCD_DisplayCharacter
_main:
0384 9722 SBIW R28,2
(0082)
(0083) void main(void)
(0084) { //initial and the picture of starting work
(0085) init_devices();
0385 DF5C RCALL _init_devices
(0086) LCD_DisplayString(1,2,"NOW");
0386 EA8F LDI R24,0xAF
0387 E090 LDI R25,0
0388 8399 STD Y+1,R25
0389 8388 STD Y+0,R24
038A E022 LDI R18,2
038B E001 LDI R16,1
038C DEF9 RCALL _LCD_DisplayString
(0087) LCD_DisplayString(2,1," ULTRASONIC ");
038D EA81 LDI R24,0xA1
038E 940E0498 CALL 0x498
0390 E002 LDI R16,2
0391 DEF4 RCALL _LCD_DisplayString
(0088) display_temprature();
0392 DF5A RCALL _display_temprature
(0089) delay_nms(3000);
0393 EB08 LDI R16,0xB8
0394 E01B LDI R17,0xB
0395 DDB6 RCALL _delay_nms
(0090) ClearLine(2);
0396 E002 LDI R16,2
0397 DF2F RCALL _ClearLine
0398 C017 RJMP 0x03B0
(0091) while(1)
(0092) {
(0093) display_temprature();
0399 DF53 RCALL _display_temprature
(0094)
(0095) LCD_DisplayString(1,1,"40KHz");
039A E98B LDI R24,0x9B
039B 940E0498 CALL 0x498
039D E001 LDI R16,1
039E DEE7 RCALL _LCD_DisplayString
(0096) TIMSK = 0x00; //delay for voiding self noise
039F 2422 CLR R2
03A0 BE29 OUT 0x39,R2
(0097) pwm_40KHz(16);
03A1 E100 LDI R16,0x10
03A2 E010 LDI R17,0
03A3 D00F RCALL _pwm_40KHz
(0098) timer1_start();
03A4 DD7F RCALL _timer1_start
(0099) pwm_20KHz(8);
03A5 E008 LDI R16,0x8
03A6 E010 LDI R17,0
03A7 D02F RCALL _pwm_20KHz
(0100) delay_nms(5);//lenth shoud far more than 1m for self noise
03A8 E005 LDI R16,5
03A9 E010 LDI R17,0
03AA DDA1 RCALL _delay_nms
(0101) TIMSK = 0x24; //OVR(0x04)+ICP(0x20) interrupt sources
03AB E284 LDI R24,0x24
03AC BF89 OUT 0x39,R24
(0102) delay_nms(200);// one frush per second
03AD EC08 LDI R16,0xC8
03AE E010 LDI R17,0
03AF DD9C RCALL _delay_nms
03B0 CFE8 RJMP 0x0399
(0103) }
(0104) }
03B1 9622 ADIW R28,2
03B2 9508 RET
_pwm_40KHz:
i --> R20
n --> R16
03B3 D065 RCALL push_gset1
FILE: D:\NEW\ECHO\pwm.c
(0001) #define PWM_C
(0002) #include "includes.h"
(0003)
(0004) void pwm_40KHz( unsigned char n)
(0005) {
(0006) unsigned char i;
(0007) for( ;n>0;n--)
03B4 C00B RJMP 0x03C0
(0008) {
(0009) PORTB=0xff;
03B5 EF8F LDI R24,0xFF
03B6 BB88 OUT 0x18,R24
(0010) for(i=5;i>0;i--)
03B7 E045 LDI R20,5
03B8 940E046A CALL <created procedures>
(0011) {
(0012) asm("nop");
(0013) }
(0014) PORTB=0xfE;
03BA EF8E LDI R24,0xFE
03BB BB88 OUT 0x18,R24
(0015) for(i=5;i>0;i--)
03BC E045 LDI R20,5
03BD 940E046A CALL <created procedures>
03BF 950A DEC R16
03C0 2422 CLR R2
03C1 1620 CP R2,R16
03C2 F390 BCS 0x03B5
(0016) {
(0017) asm("nop");
(0018) }
(0019) }
(0020) }
03C3 D058 RCALL pop_gset1
03C4 9508 RET
_pwm_30KHz:
i --> R20
n --> R16
03C5 D053 RCALL push_gset1
(0021) void pwm_30KHz( unsigned char n)
(0022) {
(0023) unsigned char i;
(0024) for( ;n>0;n--)
03C6 C00B RJMP 0x03D2
(0025) {
(0026) PORTB=0xff;
03C7 EF8F LDI R24,0xFF
03C8 BB88 OUT 0x18,R24
(0027) for(i=8;i>0;i--)
03C9 E048 LDI R20,0x8
03CA 940E046A CALL <created procedures>
(0028) {
(0029) asm("nop");
(0030) }
(0031) PORTB=0xfE;
03CC EF8E LDI R24,0xFE
03CD BB88 OUT 0x18,R24
(0032) for(i=8;i>0;i--)
03CE E048 LDI R20,0x8
03CF 940E046A CALL <created procedures>
03D1 950A DEC R16
03D2 2422 CLR R2
03D3 1620 CP R2,R16
03D4 F390 BCS 0x03C7
(0033) {
(0034) asm("nop");
(0035) }
(0036) }
(0037) }
03D5 D046 RCALL pop_gset1
03D6 9508 RET
_pwm_20KHz:
i --> R20
n --> R16
03D7 D041 RCALL push_gset1
(0038) void pwm_20KHz( unsigned char n)
(0039) {
(0040) unsigned char i;
(0041) for( ;n>0;n--)
03D8 C00B RJMP 0x03E4
(0042) {
(0043) PORTB=0xff;
03D9 EF8F LDI R24,0xFF
03DA BB88 OUT 0x18,R24
(0044) for(i=12;i>0;i--)
03DB E04C LDI R20,0xC
03DC 940E046A CALL <created procedures>
(0045) {
(0046) asm("nop");
(0047) }
(0048) PORTB=0xfE;
03DE EF8E LDI R24,0xFE
03DF BB88 OUT 0x18,R24
(0049) for(i=12;i>0;i--)
03E0 E04C LDI R20,0xC
03E1 940E046A CALL <created procedures>
03E3 950A DEC R16
03E4 2422 CLR R2
03E5 1620 CP R2,R16
03E6 F390 BCS 0x03D9
(0050) {
(0051) asm("nop");
(0052) }
(0053) }
(0054) }
FILE: <library>
03E7 D034 RCALL pop_gset1
03E8 9508 RET
mod16u:
03E9 9468 BSET 6
03EA C001 RJMP xdiv16u
div16u:
03EB 94E8 BCLR 6
xdiv16u:
03EC 92EA ST R14,-Y
03ED 92FA ST R15,-Y
03EE 938A ST R24,-Y
03EF 24EE CLR R14
03F0 24FF CLR R15
03F1 E180 LDI R24,0x10
03F2 0F00 LSL R16
03F3 1F11 ROL R17
03F4 1CEE ROL R14
03F5 1CFF ROL R15
03F6 16E2 CP R14,R18
03F7 06F3 CPC R15,R19
03F8 F018 BCS 0x03FC
03F9 1AE2 SUB R14,R18
03FA 0AF3 SBC R15,R19
03FB 9503 INC R16
03FC 958A DEC R24
03FD F7A1 BNE 0x03F2
03FE F416 BRTC 0x0401
03FF 2D0E MOV R16,R14
0400 2D1F MOV R17,R15
0401 9189 LD R24,Y+
0402 90F9 LD R15,Y+
0403 90E9 LD R14,Y+
0404 9508 RET
empy16s:
0405 920A ST R0,-Y
0406 921A ST R1,-Y
0407 938A ST R24,-Y
0408 939A ST R25,-Y
0409 9F02 MUL R16,R18
040A 01C0 MOVW R24,R0
040B 9F12 MUL R17,R18
040C 0D90 ADD R25,R0
040D 9F03 MUL R16,R19
040E 0D90 ADD R25,R0
040F 018C MOVW R16,R24
0410 9199 LD R25,Y+
0411 9189 LD R24,Y+
0412 9019 LD R1,Y+
0413 9009 LD R0,Y+
0414 9508 RET
pop_gset2:
0415 E0E2 LDI R30,2
0416 C006 RJMP pop
pop_gset3:
0417 E0E4 LDI R30,4
0418 C004 RJMP pop
push_gset1:
0419 935A ST R21,-Y
041A 934A ST R20,-Y
041B 9508 RET
pop_gset1:
041C E0E1 LDI R30,1
pop:
041D 9149 LD R20,Y+
041E 9159 LD R21,Y+
041F FDE0 SBRC R30,0
0420 9508 RET
0421 9169 LD R22,Y+
0422 9179 LD R23,Y+
0423 FDE1 SBRC R30,1
0424 9508 RET
0425 90A9 LD R10,Y+
0426 90B9 LD R11,Y+
0427 FDE2 SBRC R30,2
0428 9508 RET
0429 90C9 LD R12,Y+
042A 90D9 LD R13,Y+
042B FDE3 SBRC R30,3
042C 9508 RET
042D 90E9 LD R14,Y+
042E 90F9 LD R15,Y+
042F 9508 RET
push_gset2:
0430 937A ST R23,-Y
0431 936A ST R22,-Y
0432 CFE6 RJMP push_gset1
push_gset3:
0433 92BA ST R11,-Y
0434 92AA ST R10,-Y
0435 CFFA RJMP push_gset2
push_lset:
0436 93FA ST R31,-Y
0437 93EA ST R30,-Y
0438 93BA ST R27,-Y
0439 93AA ST R26,-Y
043A 939A ST R25,-Y
043B 938A ST R24,-Y
043C 933A ST R19,-Y
043D 932A ST R18,-Y
043E 931A ST R17,-Y
043F 930A ST R16,-Y
0440 929A ST R9,-Y
0441 928A ST R8,-Y
0442 927A ST R7,-Y
0443 926A ST R6,-Y
0444 925A ST R5,-Y
0445 924A ST R4,-Y
0446 923A ST R3,-Y
0447 922A ST R2,-Y
0448 921A ST R1,-Y
0449 920A ST R0,-Y
044A B60F IN R0,0x3F
044B 920A ST R0,-Y
044C 9508 RET
pop_lset:
044D 9009 LD R0,Y+
044E BE0F OUT 0x3F,R0
044F 9009 LD R0,Y+
0450 9019 LD R1,Y+
0451 9029 LD R2,Y+
0452 9039 LD R3,Y+
0453 9049 LD R4,Y+
0454 9059 LD R5,Y+
0455 9069 LD R6,Y+
0456 9079 LD R7,Y+
0457 9089 LD R8,Y+
0458 9099 LD R9,Y+
0459 9109 LD R16,Y+
045A 9119 LD R17,Y+
045B 9129 LD R18,Y+
045C 9139 LD R19,Y+
045D 9189 LD R24,Y+
045E 9199 LD R25,Y+
045F 91A9 LD R26,Y+
0460 91B9 LD R27,Y+
0461 91E9 LD R30,Y+
0462 91F9 LD R31,Y+
0463 9508 RET
lsr8:
0464 2311 TST R17
0465 F019 BEQ 0x0469
0466 9506 LSR R16
0467 951A DEC R17
0468 CFFB RJMP lsr8
0469 9508 RET
<created procedures>:
046A C002 RJMP 0x046D
046B 0000 NOP
046C 954A DEC R20
046D 2422 CLR R2
046E 1624 CP R2,R20
046F F3D8 BCS 0x046B
0470 9508 RET
0471 9ADA SBI 0x1B,2
0472 0000 NOP
0473 0000 NOP
0474 98DA CBI 0x1B,2
0475 9508 RET
0476 9436 LSR R3
0477 9427 ROR R2
0478 9436 LSR R3
0479 9427 ROR R2
047A 9436 LSR R3
047B 9427 ROR R2
047C 923000BD STS _temprature+1,R3
047E 922000BC STS _temprature,R2
0480 0191 MOVW R18,R2
0481 E005 LDI R16,5
0482 E010 LDI R17,0
0483 9508 RET
0484 931000BD STS _temprature+1,R17
0486 930000BC STS _temprature,R16
0488 9508 RET
0489 EF8F LDI R24,0xFF
048A BB8A OUT 0x1A,R24
048B B34B IN R20,0x1B
048C 7048 ANDI R20,0x8
048D 2F86 MOV R24,R22
048E 7F80 ANDI R24,0xF0
048F 2B84 OR R24,R20
0490 BB8B OUT 0x1B,R24
0491 98D9 CBI 0x1B,1
0492 9508 RET
0493 910000BC LDS R16,_temprature
0495 911000BD LDS R17,_temprature+1
0497 9508 RET
0498 E090 LDI R25,0
0499 8399 STD Y+1,R25
049A 8388 STD Y+0,R24
049B E021 LDI R18,1
049C 9508 RET
049D EC8F LDI R24,0xCF
049E BD8D OUT 0x2D,R24
049F E28C LDI R24,0x2C
04A0 BD8C OUT 0x2C,R24
04A1 9508 RET
04A2 931000B4 STS _capt_timer1+1,R17
04A4 930000B3 STS _capt_timer1,R16
04A6 9508 RET
04A7 910000B3 LDS R16,_capt_timer1
04A9 911000B4 LDS R17,_capt_timer1+1
04AB 9508 RET
04AC 2EA2 MOV R10,R18
04AD 2F60 MOV R22,R16
04AE 814E LDD R20,Y+6
04AF 815F LDD R21,Y+7
04B0 2D2A MOV R18,R10
04B1 2F06 MOV R16,R22
04B2 9508 RET
04B3 912000BC LDS R18,_temprature
04B5 913000BD LDS R19,_temprature+1
04B7 E006 LDI R16,6
04B8 E010 LDI R17,0
04B9 9508 RET
04BA 2F86 MOV R24,R22
04BB 708F ANDI R24,0xF
04BC 9582 SWAP R24
04BD 2B84 OR R24,R20
04BE BB8B OUT 0x1B,R24
04BF 98D9 CBI 0x1B,1
04C0 9508 RET
04C1 2F01 MOV R16,R17
04C2 2711 CLR R17
04C3 700F ANDI R16,0xF
04C4 7010 ANDI R17,0
04C5 9508 RET
04C6 923000B4 STS _capt_timer1+1,R3
04C8 922000B3 STS _capt_timer1,R2
04CA 9508 RET
04CB 939000BD STS _temprature+1,R25
04CD 938000BC STS _temprature,R24
04CF 9508 RET
04D0 939000BA STS _speed+1,R25
04D2 938000B9 STS _speed,R24
04D4 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -