📄 main.lis
字号:
04AA ; if(Pump1Flag == 1)
04AA ; {
04AA ; if(Cyc1H== 0)
04AA ; {
04AA ; if((PPump1Num>0)||(Pump1Num==0))
04AA ; {
04AA ; PORTB |= (1 << PB4); //开启油泵1
04AA ; if (Pump1Num>0)
04AA ; PPump1Num--;
04AA ; OCR0B = TCNT0 + CPump1On;//定时油泵关闭
04AA ; Pump1Flag = 0;
04AA ; On1H = CPump1OnH;
04AA ; }
04AA ;
04AA ; }
04AA ; else //动作应该为关闭油泵1
04AA ; Cyc1H--;
04AA ; }
04AA ;
04AA ; else
04AA ; {
04AA ; if(On1H == 0)
04AA ; {
04AA ; PORTB &= ~(1 << PB4); //关闭油泵1
04AA ; OCR0B = TCNT0 + CPump1Cyc - CPump1On;
04AA ; Pump1Flag = 1;
04AA ; Cyc1H = CPump1CycH - CPump1OnH;
04AA ; }
04AA ; else //动作应该为关闭油泵1
04AA ; On1H--;
04AA ; }
04AA ; }
04AA ; */
04AA ; /*#pragma interrupt_handler timer0_compa_isr:iv_TIM0_COMPB
04AA ; void timer0_compa_isr(void)
04AA ; {
04AA ; //compare TCNT0=OCR0B
04AA ; if(Pump2Flag == 1) //动作应该为开启油泵2
04AA ; {
04AA ; if(Cyc2H== 0)
04AA ; {
04AA ; if((PPump2Num>0)||(Pump2Num==0))
04AA ; {
04AA ; PORTD |= (1 << PD4); //开启油泵2
04AA ; if(Pump2Num>0)
04AA ; PPump2Num--;
04AA ; //定时油泵关闭
04AA ; OCR0A = TCNT0 + CPump2On;
04AA ; Pump2Flag = 0;
04AA ; On2H = CPump2OnH;
04AA ; }
04AA ; }
04AA ; else
04AA ; Cyc2H--;
04AA ; }
04AA ;
04AA ; else //动作应该为关闭油泵
04AA ; {
04AA ; if(On2H == 0)
04AA ; {
04AA ; PORTD &= ~(1 << PD4);//关闭油泵
04AA ; //OCR0A = TCNT0 + 100;
04AA ; OCR0A = TCNT0 + CPump2Cyc - CPump2On;
04AA ; Pump2Flag = 1;
04AA ; Cyc2H = CPump2CycH - CPump2OnH;
04AA ; }
04AA ; else
04AA ; On2H--;
04AA ; }
04AA ; }*/
04AA ;
04AA ; #pragma interrupt_handler timer1_compa_isr:iv_TIM1_COMPA
04AA ; void timer1_compa_isr(void)
04AA ; {
04AA .dbline 117
04AA ; //compare occured TCNT1=OCR1A
04AA ; switch(ActFlag1)
04AA 00912800 lds R16,_ActFlag1
04AE 1127 clr R17
04B0 0030 cpi R16,0
04B2 0107 cpc R16,R17
04B4 31F0 breq L58
04B6 X23:
04B6 0130 cpi R16,1
04B8 E0E0 ldi R30,0
04BA 1E07 cpc R17,R30
04BC 09F4 brne X30
04BE 90C0 rjmp L68
04C0 X30:
04C0 X24:
04C0 ACC0 rjmp L56
04C2 L58:
04C2 .dbline 120
04C2 ; {
04C2 ; case 0:
04C2 ; {
04C2 .dbline 121
04C2 ; if(HighByte1 == 0)
04C2 20901600 lds R2,_HighByte1
04C6 2220 tst R2
04C8 09F0 breq X31
04CA 81C0 rjmp L59
04CC X31:
04CC X25:
04CC .dbline 122
04CC ; {
04CC .dbline 123
04CC ; if((SSpray1Num>0)||(Spray1Num==0))
04CC 80E0 ldi R24,0
04CE 90E0 ldi R25,0
04D0 A0E0 ldi R26,0
04D2 B0E0 ldi R27,0
04D4 40901E00 lds R4,_SSpray1Num+2
04D8 50901F00 lds R5,_SSpray1Num+2+1
04DC 20901C00 lds R2,_SSpray1Num
04E0 30901D00 lds R3,_SSpray1Num+1
04E4 2816 cp R2,R24
04E6 3906 cpc R3,R25
04E8 4A06 cpc R4,R26
04EA 5B06 cpc R5,R27
04EC 91F4 brne L63
04EE X26:
04EE 80E0 ldi R24,0
04F0 90E0 ldi R25,0
04F2 A0E0 ldi R26,0
04F4 B0E0 ldi R27,0
04F6 40900200 lds R4,_Spray1Num+2
04FA 50900300 lds R5,_Spray1Num+2+1
04FE 20900000 lds R2,_Spray1Num
0502 30900100 lds R3,_Spray1Num+1
0506 2816 cp R2,R24
0508 3906 cpc R3,R25
050A 4A06 cpc R4,R26
050C 5B06 cpc R5,R27
050E 09F0 breq X32
0510 84C0 rjmp L56
0512 X32:
0512 X27:
0512 L63:
0512 .dbline 126
0512 ; //喷油器控制引脚置高
0512 ; //Spray1Num--;
0512 ; {
0512 .dbline 127
0512 ; PORTB = PORTB |(1<<PB2);
0512 2A9A sbi 0x5,2
0514 .dbline 128
0514 ; PORTB = PORTB |(1<<PB3);
0514 2B9A sbi 0x5,3
0516 .dbline 129
0516 ; PORTB = PORTB |(1<<PB4);
0516 2C9A sbi 0x5,4
0518 .dbline 130
0518 ; PORTB = PORTB |(1<<PB1);
0518 299A sbi 0x5,1
051A .dbline 131
051A ; PORTD = PORTD |(1<<PD4);
051A 5C9A sbi 0xb,4
051C .dbline 132
051C ; PORTD = PORTD |(1<<PD5);
051C 5D9A sbi 0xb,5
051E .dbline 134
051E ;
051E ; OCR1A = TCNT1 + CSpray1On; //喷油器关定时
051E 20900800 lds R2,_CSpray1On
0522 30900900 lds R3,_CSpray1On+1
0526 40908400 lds R4,132
052A 50908500 lds R5,132+1
052E 420C add R4,R2
0530 531C adc R5,R3
0532 50928900 sts 136+1,R5
0536 40928800 sts 136,R4
053A .dbline 135
053A ; if (Spray1Num>0)
053A 80E0 ldi R24,0
053C 90E0 ldi R25,0
053E A0E0 ldi R26,0
0540 B0E0 ldi R27,0
0542 40900200 lds R4,_Spray1Num+2
0546 50900300 lds R5,_Spray1Num+2+1
054A 20900000 lds R2,_Spray1Num
054E 30900100 lds R3,_Spray1Num+1
0552 2816 cp R2,R24
0554 3906 cpc R3,R25
0556 4A06 cpc R4,R26
0558 5B06 cpc R5,R27
055A C1F0 breq L64
055C X28:
055C .dbline 136
055C ; SSpray1Num--;
055C 81E0 ldi R24,1
055E 90E0 ldi R25,0
0560 A0E0 ldi R26,0
0562 B0E0 ldi R27,0
0564 40901E00 lds R4,_SSpray1Num+2
0568 50901F00 lds R5,_SSpray1Num+2+1
056C 20901C00 lds R2,_SSpray1Num
0570 30901D00 lds R3,_SSpray1Num+1
0574 281A sub R2,R24
0576 390A sbc R3,R25
0578 4A0A sbc R4,R26
057A 5B0A sbc R5,R27
057C 30921D00 sts _SSpray1Num+1,R3
0580 20921C00 sts _SSpray1Num,R2
0584 50921F00 sts _SSpray1Num+2+1,R5
0588 40921E00 sts _SSpray1Num+2,R4
058C L64:
058C .dbline 137
058C ; if(Spray1Num <= 0)
058C 80E0 ldi R24,0
058E 90E0 ldi R25,0
0590 A0E0 ldi R26,0
0592 B0E0 ldi R27,0
0594 40900200 lds R4,_Spray1Num+2
0598 50900300 lds R5,_Spray1Num+2+1
059C 20900000 lds R2,_Spray1Num
05A0 30900100 lds R3,_Spray1Num+1
05A4 2816 cp R2,R24
05A6 3906 cpc R3,R25
05A8 4A06 cpc R4,R26
05AA 5B06 cpc R5,R27
05AC 61F4 brne L66
05AE X29:
05AE .dbline 138
05AE ; Spray1Num = 0;
05AE 80E0 ldi R24,0
05B0 90E0 ldi R25,0
05B2 A0E0 ldi R26,0
05B4 B0E0 ldi R27,0
05B6 90930100 sts _Spray1Num+1,R25
05BA 80930000 sts _Spray1Num,R24
05BE B0930300 sts _Spray1Num+2+1,R27
05C2 A0930200 sts _Spray1Num+2,R26
05C6 L66:
05C6 .dbline 140
05C6 ; //T1COMPA = OCR1A;
05C6 ; ActFlag1 = 1; //转换到下一动作
05C6 81E0 ldi R24,1
05C8 80932800 sts _ActFlag1,R24
05CC .dbline 141
05CC ; }
05CC .dbline 142
05CC ; }
05CC 26C0 rjmp L56
05CE L59:
05CE .dbline 144
05CE ; else
05CE ; {
05CE .dbline 145
05CE ; HighByte1 --;
05CE 80911600 lds R24,_HighByte1
05D2 8150 subi R24,1
05D4 80931600 sts _HighByte1,R24
05D8 .dbline 146
05D8 ; ActFlag1= 0; //转换到下一动作
05D8 2224 clr R2
05DA 20922800 sts _ActFlag1,R2
05DE .dbline 147
05DE ; }
05DE .dbline 148
05DE ; break;
05DE 1DC0 rjmp L56
05E0 L68:
05E0 .dbline 151
05E0 ; }
05E0 ; case 1:
05E0 ; {
05E0 .dbline 153
05E0 ;
05E0 ; PORTB = PORTB &~(1<<PB2);
05E0 2A98 cbi 0x5,2
05E2 .dbline 154
05E2 ; PORTB = PORTB &~(1<<PB3);
05E2 2B98 cbi 0x5,3
05E4 .dbline 155
05E4 ; PORTB = PORTB &~(1<<PB4);
05E4 2C98 cbi 0x5,4
05E6 .dbline 156
05E6 ; PORTB = PORTB &~(1<<PB1);
05E6 2998 cbi 0x5,1
05E8 .dbline 157
05E8 ; PORTD = PORTD &~(1<<PD4);
05E8 5C98 cbi 0xb,4
05EA .dbline 158
05EA ; PORTD = PORTD &~(1<<PD5);
05EA 5D98 cbi 0xb,5
05EC .dbline 160
05EC ; //if(HighByte1 == 0)
05EC ; {
05EC .dbline 161
05EC ; OCR1A = TCNT1 + ( unsigned int )CSpray1Cyc - CSpray1On ;
05EC 20900400 lds R2,_CSpray1Cyc
05F0 30900500 lds R3,_CSpray1Cyc+1
05F4 40908400 lds R4,132
05F8 50908500 lds R5,132+1
05FC 420C add R4,R2
05FE 531C adc R5,R3
0600 20900800 lds R2,_CSpray1On
0604 30900900 lds R3,_CSpray1On+1
0608 4218 sub R4,R2
060A 5308 sbc R5,R3
060C 50928900 sts 136+1,R5
0610 40928800 sts 136,R4
0614 .dbline 162
0614 ; ActFlag1= 0; //转换到下一动作
0614 2224 clr R2
0616 20922800 sts _ActFlag1,R2
061A .dbline 163
061A ; }
061A .dbline 169
061A ; // else
061A ; // {
061A ; // HighByte1 --;
061A ; // ActFlag1= 1; //转换到下一动作
061A ; // }
061A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -