📄 251.lst
字号:
04FC C00D RJMP 0x050A
(0511) LCDContent[12-i] = 10;//Hide
04FD 2C2A MOV R2,R10
04FE 2433 CLR R3
04FF E0EC LDI R30,0xC
0500 E0F0 LDI R31,0
0501 19E2 SUB R30,R2
0502 09F3 SBC R31,R3
0503 EE82 LDI R24,0xE2
0504 E090 LDI R25,0
0505 0FE8 ADD R30,R24
0506 1FF9 ADC R31,R25
0507 E08A LDI R24,0xA
0508 8380 STD Z+0,R24
0509 94A3 INC R10
050A E083 LDI R24,3
050B 158A CP R24,R10
050C F780 BCC 0x04FD
050D 9628 ADIW R28,0x8
050E D4B0 RCALL pop_gset3
050F 9508 RET
(0512)
(0513) }
(0514)
(0515) void MileageSaving()
(0516) {
(0517) EEPROM_write( 0x00, *((char*)&mileage+0) );
_MileageSaving:
0510 EBE7 LDI R30,0xB7
0511 E0F0 LDI R31,0
0512 8120 LDD R18,Z+0
0513 2700 CLR R16
0514 2711 CLR R17
0515 DC06 RCALL _EEPROM_write
(0518) EEPROM_write( 0x01, *((char*)&mileage+1) );
0516 912000B8 LDS R18,mileage+1
0518 E001 LDI R16,1
0519 E010 LDI R17,0
051A DC01 RCALL _EEPROM_write
(0519) EEPROM_write( 0x02, *((char*)&mileage+2) );
051B 912000B9 LDS R18,mileage+2
051D E002 LDI R16,2
051E E010 LDI R17,0
051F DBFC RCALL _EEPROM_write
(0520) EEPROM_write( 0x03, *((char*)&mileage+3) );
0520 912000BA LDS R18,mileage+3
0522 E003 LDI R16,3
0523 E010 LDI R17,0
0524 DBF7 RCALL _EEPROM_write
(0521) EEPROM_write( 0x04, *((char*)&MileageCurrent+0) );
0525 EBEB LDI R30,0xBB
0526 E0F0 LDI R31,0
0527 8120 LDD R18,Z+0
0528 E004 LDI R16,4
0529 E010 LDI R17,0
052A DBF1 RCALL _EEPROM_write
(0522) EEPROM_write( 0x05, *((char*)&MileageCurrent+1) );
052B 912000BC LDS R18,MileageCurrent+1
052D E005 LDI R16,5
052E E010 LDI R17,0
052F DBEC RCALL _EEPROM_write
(0523) EEPROM_write( 0x06, *((char*)&MileageCurrent+2) );
0530 912000BD LDS R18,MileageCurrent+2
0532 E006 LDI R16,6
0533 E010 LDI R17,0
0534 DBE7 RCALL _EEPROM_write
(0524) EEPROM_write( 0x07, *((char*)&MileageCurrent+3) );
0535 912000BE LDS R18,MileageCurrent+3
0537 E007 LDI R16,7
0538 E010 LDI R17,0
0539 DBE2 RCALL _EEPROM_write
(0525) MileageSaveBlocked = 1;
053A E081 LDI R24,1
053B 9380006F STS MileageSaveBlocked,R24
053D 9508 RET
_MileageLoding:
053E D48C RCALL push_gset2
(0526) }
(0527)
(0528) void MileageLoding()
(0529) {
(0530) mileage = 0;
053F E040 LDI R20,0
0540 E050 LDI R21,0
0541 E060 LDI R22,0
0542 E070 LDI R23,0
0543 935000B8 STS mileage+1,R21
0545 934000B7 STS mileage,R20
0547 937000BA STS mileage+3,R23
0549 936000B9 STS mileage+2,R22
(0531) MileageCurrent = 0;
054B E040 LDI R20,0
054C E050 LDI R21,0
054D E060 LDI R22,0
054E E070 LDI R23,0
054F 935000BC STS MileageCurrent+1,R21
0551 934000BB STS MileageCurrent,R20
0553 937000BE STS MileageCurrent+3,R23
0555 936000BD STS MileageCurrent+2,R22
(0532) *((char*)&mileage+0) = EEPROM_read( 0x00 );
0557 2700 CLR R16
0558 2711 CLR R17
0559 DBCC RCALL _EEPROM_read
055A EBE7 LDI R30,0xB7
055B E0F0 LDI R31,0
055C 8300 STD Z+0,R16
(0533) *((char*)&mileage+1) = EEPROM_read( 0x01 );
055D E001 LDI R16,1
055E E010 LDI R17,0
055F DBC6 RCALL _EEPROM_read
0560 930000B8 STS mileage+1,R16
(0534) *((char*)&mileage+2) = EEPROM_read( 0x02 );
0562 E002 LDI R16,2
0563 E010 LDI R17,0
0564 DBC1 RCALL _EEPROM_read
0565 930000B9 STS mileage+2,R16
(0535) *((char*)&mileage+3) = EEPROM_read( 0x03 );
0567 E003 LDI R16,3
0568 E010 LDI R17,0
0569 DBBC RCALL _EEPROM_read
056A 930000BA STS mileage+3,R16
(0536) *((char*)&MileageCurrent+0) = EEPROM_read( 0x04 );
056C E004 LDI R16,4
056D E010 LDI R17,0
056E DBB7 RCALL _EEPROM_read
056F EBEB LDI R30,0xBB
0570 E0F0 LDI R31,0
0571 8300 STD Z+0,R16
(0537) *((char*)&MileageCurrent+1) = EEPROM_read( 0x05 );
0572 E005 LDI R16,5
0573 E010 LDI R17,0
0574 DBB1 RCALL _EEPROM_read
0575 930000BC STS MileageCurrent+1,R16
(0538) *((char*)&MileageCurrent+2) = EEPROM_read( 0x06 );
0577 E006 LDI R16,6
0578 E010 LDI R17,0
0579 DBAC RCALL _EEPROM_read
057A 930000BD STS MileageCurrent+2,R16
(0539) *((char*)&MileageCurrent+3) = EEPROM_read( 0x07 );
057C E007 LDI R16,7
057D E010 LDI R17,0
057E DBA7 RCALL _EEPROM_read
057F 930000BE STS MileageCurrent+3,R16
(0540) MileageSaveBlocked = 1;
0581 E081 LDI R24,1
0582 9380006F STS MileageSaveBlocked,R24
0584 D438 RCALL pop_gset2
0585 9508 RET
_KeyMileageCurrentClear:
i --> R10
0586 D442 RCALL push_gset3
(0541) }
(0542)
(0543) void KeyMileageCurrentClear(void)
(0544) {
(0545) int i;
(0546) //1.PORTD7=Input+PullUp
(0547) PORTD |= BIT(7);
0587 9A97 SBI 0x12,7
(0548) for(i=0;i<100;i++)
0588 24AA CLR R10
0589 24BB CLR R11
(0549) delay();
058A DB49 RCALL _delay
058B 01C5 MOVW R24,R10
058C 9601 ADIW R24,1
058D 015C MOVW R10,R24
058E 3684 CPI R24,0x64
058F E0E0 LDI R30,0
0590 079E CPC R25,R30
0591 F3C4 BLT 0x058A
(0550) DDRD &= ~BIT(7);
0592 988F CBI 0x11,7
(0551) for(i=0;i<100;i++)
0593 24AA CLR R10
0594 24BB CLR R11
(0552) delay();
0595 DB3E RCALL _delay
0596 01C5 MOVW R24,R10
0597 9601 ADIW R24,1
0598 015C MOVW R10,R24
0599 3684 CPI R24,0x64
059A E0E0 LDI R30,0
059B 079E CPC R25,R30
059C F3C4 BLT 0x0595
(0553) //2. Read
(0554) if (!(PIND & BIT(7)))
059D 9987 SBIC 0x10,7
059E C03A RJMP 0x05D9
(0555) {
(0556) MileageCurrent = 0;
059F E040 LDI R20,0
05A0 E050 LDI R21,0
05A1 E060 LDI R22,0
05A2 E070 LDI R23,0
05A3 935000BC STS MileageCurrent+1,R21
05A5 934000BB STS MileageCurrent,R20
05A7 937000BE STS MileageCurrent+3,R23
05A9 936000BD STS MileageCurrent+2,R22
(0557) mileage /=10;
05AB E04A LDI R20,0xA
05AC E050 LDI R21,0
05AD E060 LDI R22,0
05AE E070 LDI R23,0
05AF 904000B9 LDS R4,mileage+2
05B1 905000BA LDS R5,mileage+3
05B3 902000B7 LDS R2,mileage
05B5 903000B8 LDS R3,mileage+1
05B7 937A ST R23,-Y
05B8 936A ST R22,-Y
05B9 935A ST R21,-Y
05BA 934A ST R20,-Y
05BB 0181 MOVW R16,R2
05BC 0192 MOVW R18,R4
05BD D352 RCALL div32u
05BE 931000B8 STS mileage+1,R17
05C0 930000B7 STS mileage,R16
05C2 933000BA STS mileage+3,R19
05C4 932000B9 STS mileage+2,R18
(0558) mileage *=10;
05C6 E04A LDI R20,0xA
05C7 E050 LDI R21,0
05C8 E060 LDI R22,0
05C9 E070 LDI R23,0
05CA 933A ST R19,-Y
05CB 932A ST R18,-Y
05CC 931A ST R17,-Y
05CD 930A ST R16,-Y
05CE 018A MOVW R16,R20
05CF 019B MOVW R18,R22
05D0 D3C0 RCALL empy32s
05D1 931000B8 STS mileage+1,R17
05D3 930000B7 STS mileage,R16
05D5 933000BA STS mileage+3,R19
05D7 932000B9 STS mileage+2,R18
(0559) }
(0560) //3.PORTD7=Output0
(0561) PORTD &=~BIT(7);
05D9 9897 CBI 0x12,7
(0562) DDRD |=BIT(7);
05DA 9A8F SBI 0x11,7
05DB D3E3 RCALL pop_gset3
05DC 9508 RET
_AlarmCalculate:
i --> R10
05DD D3EB RCALL push_gset3
(0563) }
(0564)
(0565) void AlarmCalculate(void)
(0566) {
(0567) uchar i;
(0568) if(VoltageRefreshed[0])
05DE 90200099 LDS R2,VoltageRefreshed
05E0 2022 TST R2
05E1 F0D9 BEQ 0x05FD
(0569) if(Voltage[0]<ThresholdOil)
05E2 91800081 LDS R24,Voltage
05E4 91900082 LDS R25,Voltage+1
05E6 3A86 CPI R24,0xA6
05E7 E0E0 LDI R30,0
05E8 079E CPC R25,R30
05E9 F450 BCC 0x05F4
(0570) ParallelOutputCmd |= BIT(AlarmLedOil);
05EA 918000EF LDS R24,ParallelOutputCmd
05EC 919000F0 LDS R25,ParallelOutputCmd+1
05EE 6280 ORI R24,0x20
05EF 939000F0 STS ParallelOutputCmd+1,R25
05F1 938000EF STS ParallelOutputCmd,R24
05F3 C009 RJMP 0x05FD
(0571) else
(0572) ParallelOutputCmd &= ~BIT(AlarmLedOil);
05F4 918000EF LDS R24,ParallelOutputCmd
05F6 919000F0 LDS R25,ParallelOutputCmd+1
05F8 7D8F ANDI R24,0xDF
05F9 939000F0 STS ParallelOutputCmd+1,R25
05FB 938000EF STS ParallelOutputCmd,R24
(0573) if(VoltageRefreshed[1])
05FD 9020009A LDS R2,VoltageRefreshed+1
05FF 2022 TST R2
0600 F0D9 BEQ 0x061C
(0574) if(Voltage[1]<ThresholdTemp)
0601 91800083 LDS R24,Voltage+2
0603 91900084 LDS R25,Voltage+3
0605 3B8A CPI R24,0xBA
0606 E0E0 LDI R30,0
0607 079E CPC R25,R30
0608 F450 BCC 0x0613
(0575) ParallelOutputCmd |= BIT(AlarmLedTemp);
0609 918000EF LDS R24,ParallelOutputCmd
060B 919000F0 LDS R25,ParallelOutputCmd+1
060D 6880 ORI R24,0x80
060E 939000F0 STS ParallelOutputCmd+1,R25
0610 938000EF STS ParallelOutputCmd,R24
0612 C009 RJMP 0x061C
(0576) else
(0577) ParallelOutputCmd &= ~BIT(AlarmLedTemp);
0613 918000EF LDS R24,ParallelOutputCmd
0615 919000F0 LDS R25,ParallelOutputCmd+1
0617 778F ANDI R24,0x7F
0618 939000F0 STS ParallelOutputCmd+1,R25
061A 938000EF STS ParallelOutputCmd,R24
(0578) if(VoltageRefreshed[2])
061C 9020009B LDS R2,VoltageRefreshed+2
061E 2022 TST R2
061F F0D9 BEQ 0x063B
(0579) if(Voltage[2]<ThresholdOilP)
0620 91800085 LDS R24,0x85
0622 91900086 LDS R25,0x86
0624 3981 CPI R24,0x91
0625 E0E0 LDI R30,0
0626 079E CPC R25,R30
0627 F450 BCC 0x0632
(0580) ParallelOutputCmd |= BIT(AlarmLedOilP);
0628 918000EF LDS R24,ParallelOutputCmd
062A 919000F0 LDS R25,ParallelOutputCmd+1
062C 6480 ORI R24,0x40
062D 939000F0 STS ParallelOutputCmd+1,R25
062F 938000EF STS ParallelOutputCmd,R24
0631 C009 RJMP 0x063B
(0581) else
(0582) ParallelOutputCmd &= ~BIT(AlarmLedOilP);
0632 918000EF LDS R24,ParallelOutputCmd
0634 919000F0 LDS R25,ParallelOutputCmd+1
0636 7B8F ANDI R24,0xBF
0637 939000F0 STS ParallelOutputCmd+1,R25
0639 938000EF STS ParallelOutputCmd,R24
(0583) if(VoltageRefreshed[3])
063B 9020009C LDS R2,VoltageRefreshed+3
063D 2022 TST R2
063E F0D9 BEQ 0x065A
(0584) if(Voltage[3]<ThresholdAir)
063F 91800087 LDS R24,0x87
0641 91900088 LDS R25,0x88
0643 3583 CPI R24,0x53
0644 E0E1 LDI R30,1
0645 079E CPC R25,R30
0646 F450 BCC 0x0651
(0585) ParallelOutputCmd |= BIT(AlarmLedAir1);
0647 918000EF LDS R24,ParallelOutputCmd
0649 919000F0 LDS R25,ParallelOutputCmd+1
064B 6091 ORI R25,1
064C 939000F0 STS ParallelOutputCmd+1,R25
064E 938000EF STS ParallelOutputCmd,R24
0650 C009 RJMP 0x065A
(0586) else
(0587) ParallelOutputCmd &= ~BIT(AlarmLedAir1);
0651 918000EF LDS R24,ParallelOutputCmd
0653 919000F0 LDS R25,ParallelOutputCmd+1
0655 7F9E ANDI R25,0xFE
0656 939000F0 STS ParallelOutputCmd+1,R25
0658 938000EF STS ParallelOutputCmd,R24
(0588) if(VoltageRefreshed[4])
065A 9020009D LDS R2,0x9D
065C 2022 TST R2
065D F0D9 BEQ 0x0679
(0589) if(Voltage[4]<ThresholdAir)
065E 91800089 LDS R24,0x89
0660 9190008A LDS R25,0x8A
0662 3583 CPI R24,0x53
0663 E0E1 LDI R30,1
0664 079E CPC R25,R30
0665 F450 BCC 0x0670
(0590) ParallelOutputCmd |= BIT(AlarmLedAir2);
0666 918000EF LDS R24,ParallelOutputCmd
0668 919000F0 LDS R25,ParallelOutputCmd+1
066A 6092 ORI R25,2
066B 939000F0 STS ParallelOutputCmd+1,R25
066D 938000EF STS ParallelOutputCmd,R24
066F C009 RJMP 0x0679
(0591) else
(0592) ParallelOutputCmd &= ~BIT(AlarmLedAir2);
0670 918000EF LDS R24,ParallelOutputCmd
0672 919000F0 LDS R25,ParallelOutputCmd+1
0674 7F9D ANDI R25,0xFD
0675 939000F0 STS ParallelOutputCmd+1,R25
0677 938000EF STS ParallelOutputCmd,R24
(0593) if(VoltageRefreshed[5])
0679 9020009E LDS R2,0x9E
067B 2022 TST R2
067C F0D9 BEQ 0x0698
(0594) if(Voltage[5]<ThresholdVoltL)
067D 9180008B LDS R24,0x8B
067F 9190008C LDS R25,0x8C
0681 328C CPI R24,0x2C
0682 E0E1 LDI R30,1
0683 079E CPC R25,R30
0684 F450 BCC 0x068F
(0595) ParallelOutputCmd |= BIT(AlarmLedVoltL);
0685 918000EF LDS R24,ParallelOutputCmd
0687 919000F0 LDS R25,ParallelOutputCmd+1
0689 6094 ORI R25,4
068A 939000F0 STS ParallelOutputCmd+1,R25
068C 938000EF STS ParallelOutputCmd,R24
068E C009 RJMP 0x0698
(0596) else
(0597) ParallelOutputCmd &= ~BIT(AlarmLedVoltL);
068F 918000EF LDS R24,ParallelOutputCmd
0691 919000F0 LDS R25,ParallelOutputCmd+1
0693 7F9B ANDI R25,0xFB
0694 939000F0 STS ParallelOutputCmd+1,R25
0696 938000EF STS ParallelOutputCmd,R24
(0598) if(VoltageRefreshed[5])
0698 9020009E LDS R2,0x9E
069A 2022 TST R2
069B F0E1 BEQ 0x06B8
(0599) if(Voltage[5]>ThresholdVoltH)
069C EC82 LDI R24,0xC2
069D E091 LDI R25,1
069E 9020008B LDS R2,0x8B
06A0 9030008C LDS R3,0x8C
06A2 1582 CP R24,R2
06A3 0593 CPC R25,R3
06A4 F450 BCC 0x06AF
(0600) ParallelOutputCmd |= BIT(AlarmLedVoltH);
06A5 918000EF LDS R24,P
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -