📄 main.lis
字号:
02EA 08EE ldi R16,1000
02EC 13E0 ldi R17,3
02EE 00D0 rcall empy16s
02F0 C801 movw R24,R16
02F2 8257 subi R24,114
02F4 9140 sbci R25,1
02F6 90930F00 sts _CPump1Cyc+1,R25
02FA 80930E00 sts _CPump1Cyc,R24
02FE .dbline 194
02FE ; CPump1CycH = (CPump1Cyc >> 8);
02FE 1C01 movw R2,R24
0300 232C mov R2,R3
0302 3324 clr R3
0304 30921100 sts _CPump1CycH+1,R3
0308 20921000 sts _CPump1CycH,R2
030C .dbline 195
030C ; CSpray1On = (unsigned int)(tSpray1On * 100 );
030C 84E6 ldi R24,100
030E 0A80 ldd R0,y+2
0310 809D mul R24,R0
0312 10920900 sts _CSpray1On+1,R1
0316 00920800 sts _CSpray1On,R0
031A .dbline 196
031A ; CSpray1Cyc = (unsigned long )tSpray1Cyc * 1000 ;
031A 2B80 ldd R2,y+3
031C 3C80 ldd R3,y+4
031E 4424 clr R4
0320 5524 clr R5
0322 48EE ldi R20,232
0324 53E0 ldi R21,3
0326 60E0 ldi R22,0
0328 70E0 ldi R23,0
032A 5A92 st -y,R5
032C 4A92 st -y,R4
032E 3A92 st -y,R3
0330 2A92 st -y,R2
0332 8A01 movw R16,R20
0334 9B01 movw R18,R22
0336 00D0 rcall empy32u
0338 10930500 sts _CSpray1Cyc+1,R17
033C 00930400 sts _CSpray1Cyc,R16
0340 30930700 sts _CSpray1Cyc+2+1,R19
0344 20930600 sts _CSpray1Cyc+2,R18
0348 .dbline 197
0348 ; CPump1On = tPump1On * 1000;
0348 2A2D mov R18,R10
034A 3327 clr R19
034C 08EE ldi R16,1000
034E 13E0 ldi R17,3
0350 00D0 rcall empy16s
0352 10931300 sts _CPump1On+1,R17
0356 00931200 sts _CPump1On,R16
035A .dbline 198
035A ; CPump1OnH = (CPump1On >> 8);
035A 1801 movw R2,R16
035C 232C mov R2,R3
035E 3324 clr R3
0360 30921500 sts _CPump1OnH+1,R3
0364 20921400 sts _CPump1OnH,R2
0368 .dbline 200
0368 ;
0368 ; Spray2Num = (int)spray2NumL + ((int)spray2NumH << 8);
0368 2E2C mov R2,R14
036A 3324 clr R3
036C 322C mov R3,R2
036E 2224 clr R2
0370 4C2C mov R4,R12
0372 5524 clr R5
0374 420C add R4,R2
0376 531C adc R5,R3
0378 1201 movw R2,R4
037A 4424 clr R4
037C 37FC sbrc R3,7
037E 4094 com R4
0380 5524 clr R5
0382 47FC sbrc R4,7
0384 5094 com R5
0386 30922B00 sts _Spray2Num+1,R3
038A 20922A00 sts _Spray2Num,R2
038E 50922D00 sts _Spray2Num+2+1,R5
0392 40922C00 sts _Spray2Num+2,R4
0396 .dbline 201
0396 ; Pump2Num = Spray2Num;
0396 30923500 sts _Pump2Num+1,R3
039A 20923400 sts _Pump2Num,R2
039E 50923700 sts _Pump2Num+2+1,R5
03A2 40923600 sts _Pump2Num+2,R4
03A6 .dbline 202
03A6 ; PPump2Num = Pump2Num;
03A6 40903600 lds R4,_Pump2Num+2
03AA 50903700 lds R5,_Pump2Num+2+1
03AE 20903400 lds R2,_Pump2Num
03B2 30903500 lds R3,_Pump2Num+1
03B6 30924300 sts _PPump2Num+1,R3
03BA 20924200 sts _PPump2Num,R2
03BE 50924500 sts _PPump2Num+2+1,R5
03C2 40924400 sts _PPump2Num+2,R4
03C6 .dbline 203
03C6 ; SSpray2Num = Spray2Num;
03C6 40902C00 lds R4,_Spray2Num+2
03CA 50902D00 lds R5,_Spray2Num+2+1
03CE 20902A00 lds R2,_Spray2Num
03D2 30902B00 lds R3,_Spray2Num+1
03D6 30924700 sts _SSpray2Num+1,R3
03DA 20924600 sts _SSpray2Num,R2
03DE 50924900 sts _SSpray2Num+2+1,R5
03E2 40924800 sts _SSpray2Num+2,R4
03E6 .dbline 215
03E6 ; //Pump2Num = Pump1Num;
03E6 ; //CPump2Cyc = tPump2Cyc * 1000 -350;
03E6 ; //CPump2Cyc = CPump1Cyc;
03E6 ; //CPump2CycH = (CPump2Cyc >> 8);
03E6 ; //CPump2CycH =CPump1CycH ;
03E6 ; //CSpray2On = (unsigned int)(tSpray2On * 100 );
03E6 ; //CSpray2Cyc = (unsigned long )tSpray2Cyc * 1000 ;
03E6 ; //CPump2On = tPump2On * 1000 -200;
03E6 ; //CPump2On = CPump1On;
03E6 ; //CPump2OnH = (CPump2On >> 8);
03E6 ; //CPump2OnH = CPump1OnH;
03E6 ; HighByte1 = (unsigned char )(CSpray1Cyc >> 16);
03E6 40900600 lds R4,_CSpray1Cyc+2
03EA 50900700 lds R5,_CSpray1Cyc+2+1
03EE 20900400 lds R2,_CSpray1Cyc
03F2 30900500 lds R3,_CSpray1Cyc+1
03F6 1201 movw R2,R4
03F8 4424 clr R4
03FA 5524 clr R5
03FC 20921600 sts _HighByte1,R2
0400 .dbline 216
0400 ; HighByte2 = (unsigned char )(CSpray2Cyc >> 16);
0400 40903000 lds R4,_CSpray2Cyc+2
0404 50903100 lds R5,_CSpray2Cyc+2+1
0408 20902E00 lds R2,_CSpray2Cyc
040C 30902F00 lds R3,_CSpray2Cyc+1
0410 1201 movw R2,R4
0412 4424 clr R4
0414 5524 clr R5
0416 20924000 sts _HighByte2,R2
041A .dbline 219
041A ;
041A ;
041A ; CLI(); //禁止中断,保证以下发送的两字节连续
041A F894 cli
041C .dbline 220
041C ; putchar(REVSUCCEED); //回传接收成功标志
041C 0CEF ldi R16,252
041E CADE rcall _putchar
0420 .dbline 221
0420 ; putchar(REVSUCCEED); //回传接收成功标志
0420 0CEF ldi R16,252
0422 C8DE rcall _putchar
0424 .dbline 223
0424 ;
0424 ; if(IisOn)
0424 0880 ldd R0,y+0
0426 0020 tst R0
0428 09F0 breq L50
042A X21:
042A .dbline 224
042A ; SEI();
042A 7894 sei
042C L50:
042C .dbline 225
042C ; }
042C L47:
042C .dbline 226
042C ; FlashRxBuf();
042C E9DD rcall _FlashRxBuf
042E .dbline -2
042E L43:
042E .dbline 0 ; func end
042E 2796 adiw R28,7
0430 00C0 rjmp pop_xgsetF0FC
0432 .dbsym r spray2NumH 14 c
0432 .dbsym r spray2NumL 12 c
0432 .dbsym l spray1NumH 6 c
0432 .dbsym l spray1NumL 5 c
0432 .dbsym r tPump1On 10 c
0432 .dbsym l tSpray1Cyc 3 i
0432 .dbsym l tSpray1On 2 c
0432 .dbsym l tPump1Cyc 1 c
0432 .dbsym l IisOn 0 c
0432 .dbend
0432 .dbfile C:\DOCUME~1\Administrator\桌面\程序\油泵油嘴实验台\可用\油泵油~2\timer1.c
0432 .dbfunc e timer0_init _timer0_init fV
.even
0432 _timer0_init::
0432 .dbline -1
0432 .dbline 12
0432 ; #include <iom88v.h>
0432 ; #include <macros.h>
0432 ; #include <uart.h>
0432 ; #include <timer1.h>
0432 ;
0432 ;
0432 ; //TIMER0 initialize - prescale:8
0432 ; // WGM: Normal
0432 ; // desired value: 1Hz
0432 ; // actual value: 1953.125Hz (99.9%)
0432 ; void timer0_init(void)
0432 ; {
0432 .dbline 13
0432 ; TCCR0B = 0x00; //stop
0432 2224 clr R2
0434 25BC out 0x25,R2
0436 .dbline 14
0436 ; TCNT0 = 0x00; //set count
0436 26BC out 0x26,R2
0438 .dbline 15
0438 ; TCCR0A = 0x00;
0438 24BC out 0x24,R2
043A .dbline 16
043A ; TCCR0B = 0x02; //start timer
043A 82E0 ldi R24,2
043C 85BD out 0x25,R24
043E .dbline 17
043E ; OCR0B = 0x60;
043E 80E6 ldi R24,96
0440 88BD out 0x28,R24
0442 .dbline 18
0442 ; OCR0A = 0x03;
0442 83E0 ldi R24,3
0444 87BD out 0x27,R24
0446 .dbline -2
0446 L52:
0446 .dbline 0 ; func end
0446 0895 ret
0448 .dbend
0448 .dbfunc e timer1_init _timer1_init fV
.even
0448 _timer1_init::
0448 .dbline -1
0448 .dbline 26
0448 ; }
0448 ;
0448 ; //TIMER1 initialize - prescale:8
0448 ; // WGM: 0) Normal, TOP=0xFFFF
0448 ; // desired value: 1MHz
0448 ; // actual value: Out of range
0448 ; void timer1_init(void)
0448 ; {
0448 .dbline 27
0448 ; TCCR1B = 0x00; //stop
0448 2224 clr R2
044A 20928100 sts 129,R2
044E .dbline 28
044E ; TCNT1H = 0x00 /*INVALID SETTING*/; //setup
044E 20928500 sts 133,R2
0452 .dbline 29
0452 ; TCNT1L = 0x00 /*INVALID SETTING*/;
0452 20928400 sts 132,R2
0456 .dbline 30
0456 ; OCR1AH = 0x00 /*INVALID SETTING*/;
0456 20928900 sts 137,R2
045A .dbline 31
045A ; OCR1AL = 0x20 /*INVALID SETTING*/;
045A 80E2 ldi R24,32
045C 80938800 sts 136,R24
0460 .dbline 32
0460 ; OCR1BH = 0x02 /*INVALID SETTING*/;
0460 82E0 ldi R24,2
0462 80938B00 sts 139,R24
0466 .dbline 33
0466 ; OCR1BL = 0xFF /*INVALID SETTING*/;
0466 8FEF ldi R24,255
0468 80938A00 sts 138,R24
046C .dbline 34
046C ; ICR1H = 0x00 /*INVALID SETTING*/;
046C 20928700 sts 135,R2
0470 .dbline 35
0470 ; ICR1L = 0x00 /*INVALID SETTING*/;
0470 20928600 sts 134,R2
0474 .dbline 36
0474 ; TCCR1A = 0x00;
0474 20928000 sts 128,R2
0478 .dbline 37
0478 ; TCCR1B = 0x02; //start Timer
0478 82E0 ldi R24,2
047A 80938100 sts 129,R24
047E .dbline -2
047E L53:
047E .dbline 0 ; func end
047E 0895 ret
0480 .dbend
.area vector(rom, abs)
.org 22
0016 40C2 rjmp _timer1_compa_isr
.area text(rom, con, rel)
0480 .dbfile C:\DOCUME~1\Administrator\桌面\程序\油泵油嘴实验台\可用\油泵油~2\timer1.c
0480 .dbfunc e timer1_compa_isr _timer1_compa_isr fV
.even
0480 _timer1_compa_isr::
0480 0A92 st -y,R0
0482 1A92 st -y,R1
0484 2A92 st -y,R2
0486 3A92 st -y,R3
0488 4A92 st -y,R4
048A 5A92 st -y,R5
048C 8A92 st -y,R8
048E 9A92 st -y,R9
0490 0A93 st -y,R16
0492 1A93 st -y,R17
0494 2A93 st -y,R18
0496 3A93 st -y,R19
0498 8A93 st -y,R24
049A 9A93 st -y,R25
049C AA93 st -y,R26
049E BA93 st -y,R27
04A0 EA93 st -y,R30
04A2 0FB6 in R0,0x3f
04A4 0A92 st -y,R0
04A6 AA92 st -y,R10
04A8 BA92 st -y,R11
04AA .dbline -1
04AA .dbline 115
04AA ; }
04AA ; /*#pragma interrupt_handler timer0_compb_isr:iv_TIM0_COMPA
04AA ; void timer0_compb_isr(void) ///wy修改
04AA ; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -