;--------------------------------------------------------
; File Created by SDCC : free open source ISO C Compiler 
; Version 4.4.0 #14620 (MINGW64)
;--------------------------------------------------------
	.module SaveEEPROM
	.optsdcc -mmcs51 --model-large
	
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl _T_COM
	.globl _t_display
	.globl _DisplayScan
	.globl _Send_595
	.globl _main
	.globl _P_HC595_SRCLK
	.globl _P_HC595_RCLK
	.globl _P_HC595_SER
	.globl _P77
	.globl _P76
	.globl _P75
	.globl _P74
	.globl _P73
	.globl _P72
	.globl _P71
	.globl _P70
	.globl _P67
	.globl _P66
	.globl _P65
	.globl _P64
	.globl _P63
	.globl _P62
	.globl _P61
	.globl _P60
	.globl _P
	.globl _F1
	.globl _OV
	.globl _RS0
	.globl _RS1
	.globl _F0
	.globl _AC
	.globl _CY
	.globl _P57
	.globl _P56
	.globl _P55
	.globl _P54
	.globl _P53
	.globl _P52
	.globl _P51
	.globl _P50
	.globl _P47
	.globl _P46
	.globl _P45
	.globl _P44
	.globl _P43
	.globl _P42
	.globl _P41
	.globl _P40
	.globl _PX0
	.globl _PT0
	.globl _PX1
	.globl _PT1
	.globl _PS
	.globl _PADC
	.globl _PLVD
	.globl _PPCA
	.globl _RXD
	.globl _TXD
	.globl _INT0
	.globl _INT1
	.globl _T0
	.globl _T1
	.globl _WR
	.globl _RD
	.globl _P37
	.globl _P36
	.globl _P35
	.globl _P34
	.globl _P33
	.globl _P32
	.globl _P31
	.globl _P30
	.globl _EX0
	.globl _ET0
	.globl _EX1
	.globl _ET1
	.globl _ES
	.globl _EADC
	.globl _ELVD
	.globl _EA
	.globl _P27
	.globl _P26
	.globl _P25
	.globl _P24
	.globl _P23
	.globl _P22
	.globl _P21
	.globl _P20
	.globl _RI
	.globl _TI
	.globl _RB8
	.globl _TB8
	.globl _REN
	.globl _SM2
	.globl _SM1
	.globl _SM0
	.globl _P17
	.globl _P16
	.globl _P15
	.globl _P14
	.globl _P13
	.globl _P12
	.globl _P11
	.globl _P10
	.globl _IT0
	.globl _IE0
	.globl _IT1
	.globl _IE1
	.globl _TR0
	.globl _TF0
	.globl _TR1
	.globl _TF1
	.globl _P07
	.globl _P06
	.globl _P05
	.globl _P04
	.globl _P03
	.globl _P02
	.globl _P01
	.globl _P00
	.globl _RSTCFG
	.globl _S4BUF
	.globl _S4CON
	.globl _USBADR
	.globl _P7
	.globl _IAP_ADDRE
	.globl _IAP_TPS
	.globl _USBCON
	.globl _B
	.globl _AUXINTIF
	.globl _IP3H
	.globl _DMAIR
	.globl _USBDAT
	.globl _MXAX
	.globl _CKCON
	.globl _WTST
	.globl _P6
	.globl _CMPCR2
	.globl _CMPCR1
	.globl _DPS
	.globl _P7M0
	.globl _P7M1
	.globl _ACC
	.globl _IP3
	.globl _ADCCFG
	.globl _T4T3M
	.globl _USBCLK
	.globl _TL2
	.globl _TH2
	.globl _TL3
	.globl _TH3
	.globl _TL4
	.globl _TH4
	.globl _PSW1
	.globl _PSW
	.globl _SPDAT
	.globl _SPCTL
	.globl _SPSTAT
	.globl _P6M0
	.globl _P6M1
	.globl _P5M0
	.globl _P5M1
	.globl _P5
	.globl _IAP_CONTR
	.globl _IAP_TRIG
	.globl _IAP_CMD
	.globl _IAP_ADDRL
	.globl _IAP_ADDRH
	.globl _IAP_DATA
	.globl _WDT_CONTR
	.globl _P4
	.globl _P_SW4
	.globl _ADC_RESL
	.globl _ADC_RES
	.globl _ADC_CONTR
	.globl _P_SW3
	.globl _P_SW2
	.globl _SADEN
	.globl _IP
	.globl _IPH
	.globl _IP2H
	.globl _IP2
	.globl _P4M0
	.globl _P4M1
	.globl _P3M0
	.globl _P3M1
	.globl _P3
	.globl _IE2
	.globl _TA
	.globl _S3BUF
	.globl _S3CON
	.globl _WKTCH
	.globl _WKTCL
	.globl _SADDR
	.globl _IE
	.globl _VRTRIM
	.globl _P_SW1
	.globl _BUS_SPEED
	.globl _P2
	.globl _IRTRIM
	.globl _LIRTRIM
	.globl _IRCBAND
	.globl _S2BUF
	.globl _S2CON
	.globl _SBUF
	.globl _SCON
	.globl _AUXR2
	.globl _P2M0
	.globl _P2M1
	.globl _P0M0
	.globl _P0M1
	.globl _P1M0
	.globl _P1M1
	.globl _P1
	.globl _INTCLKO
	.globl _AUXR
	.globl _TH1
	.globl _TH0
	.globl _TL1
	.globl _TL0
	.globl _TMOD
	.globl _TCON
	.globl _PCON
	.globl _SPH
	.globl _DPXL
	.globl _DPH
	.globl _DPL
	.globl _SP
	.globl _P0
	.globl _EEPROM_write_n_PARM_3
	.globl _EEPROM_write_n_PARM_2
	.globl _EEPROM_read_n_PARM_3
	.globl _EEPROM_read_n_PARM_2
	.globl _tmp
	.globl _Temp_cnt
	.globl _Test_cnt
	.globl _msecond
	.globl _display_index
	.globl _LED8
	.globl _LowVolFlag
	.globl _B_1ms
	.globl _CMP_Isr
	.globl _CMP_config
	.globl _Display
	.globl _DisableEEPROM
	.globl _EEPROM_read_n
	.globl _EEPROM_SectorErase
	.globl _EEPROM_write_n
	.globl _timer0
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
	.area RSEG    (ABS,DATA)
	.org 0x0000
G$P0$0_0$0 == 0x0080
_P0	=	0x0080
G$SP$0_0$0 == 0x0081
_SP	=	0x0081
G$DPL$0_0$0 == 0x0082
_DPL	=	0x0082
G$DPH$0_0$0 == 0x0083
_DPH	=	0x0083
G$DPXL$0_0$0 == 0x0084
_DPXL	=	0x0084
G$SPH$0_0$0 == 0x0085
_SPH	=	0x0085
G$PCON$0_0$0 == 0x0087
_PCON	=	0x0087
G$TCON$0_0$0 == 0x0088
_TCON	=	0x0088
G$TMOD$0_0$0 == 0x0089
_TMOD	=	0x0089
G$TL0$0_0$0 == 0x008a
_TL0	=	0x008a
G$TL1$0_0$0 == 0x008b
_TL1	=	0x008b
G$TH0$0_0$0 == 0x008c
_TH0	=	0x008c
G$TH1$0_0$0 == 0x008d
_TH1	=	0x008d
G$AUXR$0_0$0 == 0x008e
_AUXR	=	0x008e
G$INTCLKO$0_0$0 == 0x008f
_INTCLKO	=	0x008f
G$P1$0_0$0 == 0x0090
_P1	=	0x0090
G$P1M1$0_0$0 == 0x0091
_P1M1	=	0x0091
G$P1M0$0_0$0 == 0x0092
_P1M0	=	0x0092
G$P0M1$0_0$0 == 0x0093
_P0M1	=	0x0093
G$P0M0$0_0$0 == 0x0094
_P0M0	=	0x0094
G$P2M1$0_0$0 == 0x0095
_P2M1	=	0x0095
G$P2M0$0_0$0 == 0x0096
_P2M0	=	0x0096
G$AUXR2$0_0$0 == 0x0097
_AUXR2	=	0x0097
G$SCON$0_0$0 == 0x0098
_SCON	=	0x0098
G$SBUF$0_0$0 == 0x0099
_SBUF	=	0x0099
G$S2CON$0_0$0 == 0x009a
_S2CON	=	0x009a
G$S2BUF$0_0$0 == 0x009b
_S2BUF	=	0x009b
G$IRCBAND$0_0$0 == 0x009d
_IRCBAND	=	0x009d
G$LIRTRIM$0_0$0 == 0x009e
_LIRTRIM	=	0x009e
G$IRTRIM$0_0$0 == 0x009f
_IRTRIM	=	0x009f
G$P2$0_0$0 == 0x00a0
_P2	=	0x00a0
G$BUS_SPEED$0_0$0 == 0x00a1
_BUS_SPEED	=	0x00a1
G$P_SW1$0_0$0 == 0x00a2
_P_SW1	=	0x00a2
G$VRTRIM$0_0$0 == 0x00a6
_VRTRIM	=	0x00a6
G$IE$0_0$0 == 0x00a8
_IE	=	0x00a8
G$SADDR$0_0$0 == 0x00a9
_SADDR	=	0x00a9
G$WKTCL$0_0$0 == 0x00aa
_WKTCL	=	0x00aa
G$WKTCH$0_0$0 == 0x00ab
_WKTCH	=	0x00ab
G$S3CON$0_0$0 == 0x00ac
_S3CON	=	0x00ac
G$S3BUF$0_0$0 == 0x00ad
_S3BUF	=	0x00ad
G$TA$0_0$0 == 0x00ae
_TA	=	0x00ae
G$IE2$0_0$0 == 0x00af
_IE2	=	0x00af
G$P3$0_0$0 == 0x00b0
_P3	=	0x00b0
G$P3M1$0_0$0 == 0x00b1
_P3M1	=	0x00b1
G$P3M0$0_0$0 == 0x00b2
_P3M0	=	0x00b2
G$P4M1$0_0$0 == 0x00b3
_P4M1	=	0x00b3
G$P4M0$0_0$0 == 0x00b4
_P4M0	=	0x00b4
G$IP2$0_0$0 == 0x00b5
_IP2	=	0x00b5
G$IP2H$0_0$0 == 0x00b6
_IP2H	=	0x00b6
G$IPH$0_0$0 == 0x00b7
_IPH	=	0x00b7
G$IP$0_0$0 == 0x00b8
_IP	=	0x00b8
G$SADEN$0_0$0 == 0x00b9
_SADEN	=	0x00b9
G$P_SW2$0_0$0 == 0x00ba
_P_SW2	=	0x00ba
G$P_SW3$0_0$0 == 0x00bb
_P_SW3	=	0x00bb
G$ADC_CONTR$0_0$0 == 0x00bc
_ADC_CONTR	=	0x00bc
G$ADC_RES$0_0$0 == 0x00bd
_ADC_RES	=	0x00bd
G$ADC_RESL$0_0$0 == 0x00be
_ADC_RESL	=	0x00be
G$P_SW4$0_0$0 == 0x00bf
_P_SW4	=	0x00bf
G$P4$0_0$0 == 0x00c0
_P4	=	0x00c0
G$WDT_CONTR$0_0$0 == 0x00c1
_WDT_CONTR	=	0x00c1
G$IAP_DATA$0_0$0 == 0x00c2
_IAP_DATA	=	0x00c2
G$IAP_ADDRH$0_0$0 == 0x00c3
_IAP_ADDRH	=	0x00c3
G$IAP_ADDRL$0_0$0 == 0x00c4
_IAP_ADDRL	=	0x00c4
G$IAP_CMD$0_0$0 == 0x00c5
_IAP_CMD	=	0x00c5
G$IAP_TRIG$0_0$0 == 0x00c6
_IAP_TRIG	=	0x00c6
G$IAP_CONTR$0_0$0 == 0x00c7
_IAP_CONTR	=	0x00c7
G$P5$0_0$0 == 0x00c8
_P5	=	0x00c8
G$P5M1$0_0$0 == 0x00c9
_P5M1	=	0x00c9
G$P5M0$0_0$0 == 0x00ca
_P5M0	=	0x00ca
G$P6M1$0_0$0 == 0x00cb
_P6M1	=	0x00cb
G$P6M0$0_0$0 == 0x00cc
_P6M0	=	0x00cc
G$SPSTAT$0_0$0 == 0x00cd
_SPSTAT	=	0x00cd
G$SPCTL$0_0$0 == 0x00ce
_SPCTL	=	0x00ce
G$SPDAT$0_0$0 == 0x00cf
_SPDAT	=	0x00cf
G$PSW$0_0$0 == 0x00d0
_PSW	=	0x00d0
G$PSW1$0_0$0 == 0x00d1
_PSW1	=	0x00d1
G$TH4$0_0$0 == 0x00d2
_TH4	=	0x00d2
G$TL4$0_0$0 == 0x00d3
_TL4	=	0x00d3
G$TH3$0_0$0 == 0x00d4
_TH3	=	0x00d4
G$TL3$0_0$0 == 0x00d5
_TL3	=	0x00d5
G$TH2$0_0$0 == 0x00d6
_TH2	=	0x00d6
G$TL2$0_0$0 == 0x00d7
_TL2	=	0x00d7
G$USBCLK$0_0$0 == 0x00dc
_USBCLK	=	0x00dc
G$T4T3M$0_0$0 == 0x00dd
_T4T3M	=	0x00dd
G$ADCCFG$0_0$0 == 0x00de
_ADCCFG	=	0x00de
G$IP3$0_0$0 == 0x00df
_IP3	=	0x00df
G$ACC$0_0$0 == 0x00e0
_ACC	=	0x00e0
G$P7M1$0_0$0 == 0x00e1
_P7M1	=	0x00e1
G$P7M0$0_0$0 == 0x00e2
_P7M0	=	0x00e2
G$DPS$0_0$0 == 0x00e3
_DPS	=	0x00e3
G$CMPCR1$0_0$0 == 0x00e6
_CMPCR1	=	0x00e6
G$CMPCR2$0_0$0 == 0x00e7
_CMPCR2	=	0x00e7
G$P6$0_0$0 == 0x00e8
_P6	=	0x00e8
G$WTST$0_0$0 == 0x00e9
_WTST	=	0x00e9
G$CKCON$0_0$0 == 0x00ea
_CKCON	=	0x00ea
G$MXAX$0_0$0 == 0x00eb
_MXAX	=	0x00eb
G$USBDAT$0_0$0 == 0x00ec
_USBDAT	=	0x00ec
G$DMAIR$0_0$0 == 0x00ed
_DMAIR	=	0x00ed
G$IP3H$0_0$0 == 0x00ee
_IP3H	=	0x00ee
G$AUXINTIF$0_0$0 == 0x00ef
_AUXINTIF	=	0x00ef
G$B$0_0$0 == 0x00f0
_B	=	0x00f0
G$USBCON$0_0$0 == 0x00f4
_USBCON	=	0x00f4
G$IAP_TPS$0_0$0 == 0x00f5
_IAP_TPS	=	0x00f5
G$IAP_ADDRE$0_0$0 == 0x00f6
_IAP_ADDRE	=	0x00f6
G$P7$0_0$0 == 0x00f8
_P7	=	0x00f8
G$USBADR$0_0$0 == 0x00fc
_USBADR	=	0x00fc
G$S4CON$0_0$0 == 0x00fd
_S4CON	=	0x00fd
G$S4BUF$0_0$0 == 0x00fe
_S4BUF	=	0x00fe
G$RSTCFG$0_0$0 == 0x00ff
_RSTCFG	=	0x00ff
;--------------------------------------------------------
; special function bits
;--------------------------------------------------------
	.area RSEG    (ABS,DATA)
	.org 0x0000
G$P00$0_0$0 == 0x0080
_P00	=	0x0080
G$P01$0_0$0 == 0x0081
_P01	=	0x0081
G$P02$0_0$0 == 0x0082
_P02	=	0x0082
G$P03$0_0$0 == 0x0083
_P03	=	0x0083
G$P04$0_0$0 == 0x0084
_P04	=	0x0084
G$P05$0_0$0 == 0x0085
_P05	=	0x0085
G$P06$0_0$0 == 0x0086
_P06	=	0x0086
G$P07$0_0$0 == 0x0087
_P07	=	0x0087
G$TF1$0_0$0 == 0x008f
_TF1	=	0x008f
G$TR1$0_0$0 == 0x008e
_TR1	=	0x008e
G$TF0$0_0$0 == 0x008d
_TF0	=	0x008d
G$TR0$0_0$0 == 0x008c
_TR0	=	0x008c
G$IE1$0_0$0 == 0x008b
_IE1	=	0x008b
G$IT1$0_0$0 == 0x008a
_IT1	=	0x008a
G$IE0$0_0$0 == 0x0089
_IE0	=	0x0089
G$IT0$0_0$0 == 0x0088
_IT0	=	0x0088
G$P10$0_0$0 == 0x0090
_P10	=	0x0090
G$P11$0_0$0 == 0x0091
_P11	=	0x0091
G$P12$0_0$0 == 0x0092
_P12	=	0x0092
G$P13$0_0$0 == 0x0093
_P13	=	0x0093
G$P14$0_0$0 == 0x0094
_P14	=	0x0094
G$P15$0_0$0 == 0x0095
_P15	=	0x0095
G$P16$0_0$0 == 0x0096
_P16	=	0x0096
G$P17$0_0$0 == 0x0097
_P17	=	0x0097
G$SM0$0_0$0 == 0x009f
_SM0	=	0x009f
G$SM1$0_0$0 == 0x009e
_SM1	=	0x009e
G$SM2$0_0$0 == 0x009d
_SM2	=	0x009d
G$REN$0_0$0 == 0x009c
_REN	=	0x009c
G$TB8$0_0$0 == 0x009b
_TB8	=	0x009b
G$RB8$0_0$0 == 0x009a
_RB8	=	0x009a
G$TI$0_0$0 == 0x0099
_TI	=	0x0099
G$RI$0_0$0 == 0x0098
_RI	=	0x0098
G$P20$0_0$0 == 0x00a0
_P20	=	0x00a0
G$P21$0_0$0 == 0x00a1
_P21	=	0x00a1
G$P22$0_0$0 == 0x00a2
_P22	=	0x00a2
G$P23$0_0$0 == 0x00a3
_P23	=	0x00a3
G$P24$0_0$0 == 0x00a4
_P24	=	0x00a4
G$P25$0_0$0 == 0x00a5
_P25	=	0x00a5
G$P26$0_0$0 == 0x00a6
_P26	=	0x00a6
G$P27$0_0$0 == 0x00a7
_P27	=	0x00a7
G$EA$0_0$0 == 0x00af
_EA	=	0x00af
G$ELVD$0_0$0 == 0x00ae
_ELVD	=	0x00ae
G$EADC$0_0$0 == 0x00ad
_EADC	=	0x00ad
G$ES$0_0$0 == 0x00ac
_ES	=	0x00ac
G$ET1$0_0$0 == 0x00ab
_ET1	=	0x00ab
G$EX1$0_0$0 == 0x00aa
_EX1	=	0x00aa
G$ET0$0_0$0 == 0x00a9
_ET0	=	0x00a9
G$EX0$0_0$0 == 0x00a8
_EX0	=	0x00a8
G$P30$0_0$0 == 0x00b0
_P30	=	0x00b0
G$P31$0_0$0 == 0x00b1
_P31	=	0x00b1
G$P32$0_0$0 == 0x00b2
_P32	=	0x00b2
G$P33$0_0$0 == 0x00b3
_P33	=	0x00b3
G$P34$0_0$0 == 0x00b4
_P34	=	0x00b4
G$P35$0_0$0 == 0x00b5
_P35	=	0x00b5
G$P36$0_0$0 == 0x00b6
_P36	=	0x00b6
G$P37$0_0$0 == 0x00b7
_P37	=	0x00b7
G$RD$0_0$0 == 0x00b7
_RD	=	0x00b7
G$WR$0_0$0 == 0x00b6
_WR	=	0x00b6
G$T1$0_0$0 == 0x00b5
_T1	=	0x00b5
G$T0$0_0$0 == 0x00b4
_T0	=	0x00b4
G$INT1$0_0$0 == 0x00b3
_INT1	=	0x00b3
G$INT0$0_0$0 == 0x00b2
_INT0	=	0x00b2
G$TXD$0_0$0 == 0x00b1
_TXD	=	0x00b1
G$RXD$0_0$0 == 0x00b0
_RXD	=	0x00b0
G$PPCA$0_0$0 == 0x00bf
_PPCA	=	0x00bf
G$PLVD$0_0$0 == 0x00be
_PLVD	=	0x00be
G$PADC$0_0$0 == 0x00bd
_PADC	=	0x00bd
G$PS$0_0$0 == 0x00bc
_PS	=	0x00bc
G$PT1$0_0$0 == 0x00bb
_PT1	=	0x00bb
G$PX1$0_0$0 == 0x00ba
_PX1	=	0x00ba
G$PT0$0_0$0 == 0x00b9
_PT0	=	0x00b9
G$PX0$0_0$0 == 0x00b8
_PX0	=	0x00b8
G$P40$0_0$0 == 0x00c0
_P40	=	0x00c0
G$P41$0_0$0 == 0x00c1
_P41	=	0x00c1
G$P42$0_0$0 == 0x00c2
_P42	=	0x00c2
G$P43$0_0$0 == 0x00c3
_P43	=	0x00c3
G$P44$0_0$0 == 0x00c4
_P44	=	0x00c4
G$P45$0_0$0 == 0x00c5
_P45	=	0x00c5
G$P46$0_0$0 == 0x00c6
_P46	=	0x00c6
G$P47$0_0$0 == 0x00c7
_P47	=	0x00c7
G$P50$0_0$0 == 0x00c8
_P50	=	0x00c8
G$P51$0_0$0 == 0x00c9
_P51	=	0x00c9
G$P52$0_0$0 == 0x00ca
_P52	=	0x00ca
G$P53$0_0$0 == 0x00cb
_P53	=	0x00cb
G$P54$0_0$0 == 0x00cc
_P54	=	0x00cc
G$P55$0_0$0 == 0x00cd
_P55	=	0x00cd
G$P56$0_0$0 == 0x00ce
_P56	=	0x00ce
G$P57$0_0$0 == 0x00cf
_P57	=	0x00cf
G$CY$0_0$0 == 0x00d7
_CY	=	0x00d7
G$AC$0_0$0 == 0x00d6
_AC	=	0x00d6
G$F0$0_0$0 == 0x00d5
_F0	=	0x00d5
G$RS1$0_0$0 == 0x00d4
_RS1	=	0x00d4
G$RS0$0_0$0 == 0x00d3
_RS0	=	0x00d3
G$OV$0_0$0 == 0x00d2
_OV	=	0x00d2
G$F1$0_0$0 == 0x00d1
_F1	=	0x00d1
G$P$0_0$0 == 0x00d0
_P	=	0x00d0
G$P60$0_0$0 == 0x00e8
_P60	=	0x00e8
G$P61$0_0$0 == 0x00e9
_P61	=	0x00e9
G$P62$0_0$0 == 0x00ea
_P62	=	0x00ea
G$P63$0_0$0 == 0x00eb
_P63	=	0x00eb
G$P64$0_0$0 == 0x00ec
_P64	=	0x00ec
G$P65$0_0$0 == 0x00ed
_P65	=	0x00ed
G$P66$0_0$0 == 0x00ee
_P66	=	0x00ee
G$P67$0_0$0 == 0x00ef
_P67	=	0x00ef
G$P70$0_0$0 == 0x00f8
_P70	=	0x00f8
G$P71$0_0$0 == 0x00f9
_P71	=	0x00f9
G$P72$0_0$0 == 0x00fa
_P72	=	0x00fa
G$P73$0_0$0 == 0x00fb
_P73	=	0x00fb
G$P74$0_0$0 == 0x00fc
_P74	=	0x00fc
G$P75$0_0$0 == 0x00fd
_P75	=	0x00fd
G$P76$0_0$0 == 0x00fe
_P76	=	0x00fe
G$P77$0_0$0 == 0x00ff
_P77	=	0x00ff
G$P_HC595_SER$0_0$0 == 0x00b4
_P_HC595_SER	=	0x00b4
G$P_HC595_RCLK$0_0$0 == 0x00b5
_P_HC595_RCLK	=	0x00b5
G$P_HC595_SRCLK$0_0$0 == 0x00b2
_P_HC595_SRCLK	=	0x00b2
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
	.area REG_BANK_0	(REL,OVR,DATA)
	.ds 8
;--------------------------------------------------------
; overlayable bit register bank
;--------------------------------------------------------
	.area BIT_BANK	(REL,OVR,DATA)
bits:
	.ds 1
	b0 = bits[0]
	b1 = bits[1]
	b2 = bits[2]
	b3 = bits[3]
	b4 = bits[4]
	b5 = bits[5]
	b6 = bits[6]
	b7 = bits[7]
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
	.area DSEG    (DATA)
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
;--------------------------------------------------------
; Stack segment in internal ram
;--------------------------------------------------------
	.area SSEG
__start__stack:
	.ds	1

;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
	.area ISEG    (DATA)
;--------------------------------------------------------
; absolute internal ram data
;--------------------------------------------------------
	.area IABS    (ABS,DATA)
	.area IABS    (ABS,DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
	.area BSEG    (BIT)
G$B_1ms$0_0$0==.
_B_1ms::
	.ds 1
G$LowVolFlag$0_0$0==.
_LowVolFlag::
	.ds 1
;--------------------------------------------------------
; paged external ram data
;--------------------------------------------------------
	.area PSEG    (PAG,XDATA)
;--------------------------------------------------------
; uninitialized external ram data
;--------------------------------------------------------
	.area XSEG    (XDATA)
G$LED8$0_0$0==.
_LED8::
	.ds 8
G$display_index$0_0$0==.
_display_index::
	.ds 1
G$msecond$0_0$0==.
_msecond::
	.ds 2
G$Test_cnt$0_0$0==.
_Test_cnt::
	.ds 2
G$Temp_cnt$0_0$0==.
_Temp_cnt::
	.ds 2
G$tmp$0_0$0==.
_tmp::
	.ds 2
LSaveEEPROM.CMP_Isr$i$1_0$10==.
_CMP_Isr_i_10000_10:
	.ds 1
LSaveEEPROM.main$i$1_0$20==.
_main_i_10000_20:
	.ds 1
LSaveEEPROM.Display$i$1_0$31==.
_Display_i_10000_31:
	.ds 1
LSaveEEPROM.EEPROM_read_n$DataAddress$1_0$36==.
_EEPROM_read_n_PARM_2:
	.ds 3
LSaveEEPROM.EEPROM_read_n$number$1_0$36==.
_EEPROM_read_n_PARM_3:
	.ds 2
LSaveEEPROM.EEPROM_read_n$EE_address$1_0$36==.
_EEPROM_read_n_EE_address_10000_36:
	.ds 4
LSaveEEPROM.EEPROM_SectorErase$EE_address$1_0$39==.
_EEPROM_SectorErase_EE_address_10000_39:
	.ds 4
LSaveEEPROM.EEPROM_write_n$DataAddress$1_0$41==.
_EEPROM_write_n_PARM_2:
	.ds 3
LSaveEEPROM.EEPROM_write_n$number$1_0$41==.
_EEPROM_write_n_PARM_3:
	.ds 2
LSaveEEPROM.EEPROM_write_n$EE_address$1_0$41==.
_EEPROM_write_n_EE_address_10000_41:
	.ds 4
LSaveEEPROM.Send_595$dat$1_0$44==.
_Send_595_dat_10000_44:
	.ds 1
LSaveEEPROM.Send_595$i$1_0$45==.
_Send_595_i_10000_45:
	.ds 1
;--------------------------------------------------------
; absolute external ram data
;--------------------------------------------------------
	.area XABS    (ABS,XDATA)
;--------------------------------------------------------
; initialized external ram data
;--------------------------------------------------------
	.area XISEG   (XDATA)
	.area HOME    (CODE)
	.area GSINIT0 (CODE)
	.area GSINIT1 (CODE)
	.area GSINIT2 (CODE)
	.area GSINIT3 (CODE)
	.area GSINIT4 (CODE)
	.area GSINIT5 (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area CSEG    (CODE)
;--------------------------------------------------------
; interrupt vector
;--------------------------------------------------------
	.area HOME    (CODE)
__interrupt_vect:
	ljmp	__sdcc_gsinit_startup
	reti
	.ds	7
	ljmp	_timer0
	.ds	5
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	ljmp	_CMP_Isr
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area HOME    (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area GSINIT  (CODE)
	.globl __sdcc_gsinit_startup
	.globl __sdcc_program_startup
	.globl __start__stack
	.globl __mcs51_genXINIT
	.globl __mcs51_genXRAMCLEAR
	.globl __mcs51_genRAMCLEAR
	.area GSFINAL (CODE)
	ljmp	__sdcc_program_startup
;--------------------------------------------------------
; Home
;--------------------------------------------------------
	.area HOME    (CODE)
	.area HOME    (CODE)
__sdcc_program_startup:
	ljmp	_main
;	return from main will return to caller
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG    (CODE)
;------------------------------------------------------------
;Allocation info for local variables in function 'CMP_Isr'
;------------------------------------------------------------
;i                         Allocated with name '_CMP_Isr_i_10000_10'
;------------------------------------------------------------
	G$CMP_Isr$0$0 ==.
	C$SaveEEPROM.c$101$0_0$10 ==.
;	SaveEEPROM.c:101: INTERRUPT(CMP_Isr,CMP_VECTOR)
;	-----------------------------------------
;	 function CMP_Isr
;	-----------------------------------------
_CMP_Isr:
	ar7 = 0x07
	ar6 = 0x06
	ar5 = 0x05
	ar4 = 0x04
	ar3 = 0x03
	ar2 = 0x02
	ar1 = 0x01
	ar0 = 0x00
	push	bits
	push	acc
	push	b
	push	dpl
	push	dph
	push	(0+7)
	push	(0+6)
	push	(0+5)
	push	(0+4)
	push	(0+3)
	push	(0+2)
	push	(0+1)
	push	(0+0)
	push	psw
	mov	psw,#0x00
	C$SaveEEPROM.c$105$1_0$10 ==.
;	SaveEEPROM.c:105: CMPCR1&=~CMPIF;//清中断标志
	anl	_CMPCR1,#0xbf
	C$SaveEEPROM.c$106$1_0$10 ==.
;	SaveEEPROM.c:106: P42 = (CMPCR1 & CMPRES);       //中断方式读取比较器比较结果
	mov	a,_CMPCR1
	anl	a,#0x01
	mov	r7,a
;	assignBit
	mov	a,r7
	add	a,#0xff
	mov	_P42,c
	C$SaveEEPROM.c$108$1_0$10 ==.
;	SaveEEPROM.c:108: if(CMPCR1 & CMPRES)
	mov	r7,_CMPCR1
	mov	a,r7
	jb	acc.0,00167$
	ljmp	00113$
00167$:
	C$SaveEEPROM.c$110$2_0$11 ==.
;	SaveEEPROM.c:110: if(LowVolFlag)
	jb	_LowVolFlag,00168$
	ljmp	00117$
00168$:
	C$SaveEEPROM.c$112$3_0$12 ==.
;	SaveEEPROM.c:112: LowVolFlag = 0;    //清除低电压标志
;	assignBit
	clr	_LowVolFlag
	C$SaveEEPROM.c$113$3_0$12 ==.
;	SaveEEPROM.c:113: if(Test_cnt != Temp_cnt)
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#_Temp_cnt
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	mov	a,r6
	cjne	a,ar4,00169$
	mov	a,r7
	cjne	a,ar5,00169$
	ljmp	00117$
00169$:
	C$SaveEEPROM.c$115$4_0$13 ==.
;	SaveEEPROM.c:115: EEPROM_read_n(EE_ADDRESS,tmp,2);        //读出2字节
	mov	dptr,#_EEPROM_read_n_PARM_2
	mov	a,#_tmp
	movx	@dptr,a
	mov	a,#(_tmp >> 8)
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dptr,#_EEPROM_read_n_PARM_3
	mov	a,#0x02
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, #0x00
	mov	dph, #0x00
	mov	b,a
	lcall	_EEPROM_read_n
	C$SaveEEPROM.c$116$4_0$13 ==.
;	SaveEEPROM.c:116: Test_cnt = ((u16)tmp[0] << 8) + tmp[1]; //秒计数
	mov	dptr,#_tmp
	movx	a,@dptr
	mov	r7,a
	mov	r6,#0x00
	mov	ar6,r7
	mov	r7,#0x00
	mov	dptr,#(_tmp + 0x0001)
	movx	a,@dptr
	mov	r5,a
	mov	r4,#0x00
	mov	a,r5
	add	a, r7
	mov	r7,a
	mov	a,r4
	addc	a, r6
	mov	r6,a
	mov	dptr,#_Test_cnt
	mov	a,r7
	movx	@dptr,a
	mov	a,r6
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$117$4_0$13 ==.
;	SaveEEPROM.c:117: if(Test_cnt > 10000)    Test_cnt = 0;   //秒计数范围为0~10000
	clr	c
	mov	a,#0x10
	subb	a,r7
	mov	a,#0x27
	subb	a,r6
	jc	00170$
	ljmp	00102$
00170$:
	mov	dptr,#_Test_cnt
	mov	a,#0x00
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
00102$:
	C$SaveEEPROM.c$118$4_0$13 ==.
;	SaveEEPROM.c:118: Temp_cnt = Test_cnt;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#_Temp_cnt
	mov	a,r6
	movx	@dptr,a
	mov	a,r7
	inc	dptr
	movx	@dptr,a
	ljmp	00117$
00113$:
	C$SaveEEPROM.c$124$2_0$14 ==.
;	SaveEEPROM.c:124: P_HC595_SER = 0;
;	assignBit
	clr	_P_HC595_SER
	C$SaveEEPROM.c$125$3_0$15 ==.
;	SaveEEPROM.c:125: for(i=0; i<16; i++)     //先关闭显示，省电
	mov	dptr,#_CMP_Isr_i_10000_10
	mov	a,#0x00
	movx	@dptr,a
00115$:
	C$SaveEEPROM.c$127$4_0$16 ==.
;	SaveEEPROM.c:127: P_HC595_SRCLK = 1;
;	assignBit
	setb	_P_HC595_SRCLK
	C$SaveEEPROM.c$128$4_0$16 ==.
;	SaveEEPROM.c:128: P_HC595_SRCLK = 0;
;	assignBit
	clr	_P_HC595_SRCLK
	C$SaveEEPROM.c$125$3_0$15 ==.
;	SaveEEPROM.c:125: for(i=0; i<16; i++)     //先关闭显示，省电
	mov	dptr,#_CMP_Isr_i_10000_10
	movx	a,@dptr
	add	a, #0x01
	movx	@dptr,a
	movx	a,@dptr
	mov	r7,a
	cjne	r7,#0x10,00171$
00171$:
	jnc	00172$
	ljmp	00115$
00172$:
	C$SaveEEPROM.c$130$2_0$14 ==.
;	SaveEEPROM.c:130: P_HC595_RCLK = 1;
;	assignBit
	setb	_P_HC595_RCLK
	C$SaveEEPROM.c$131$2_0$14 ==.
;	SaveEEPROM.c:131: P_HC595_RCLK = 0;       //锁存输出数据
;	assignBit
	clr	_P_HC595_RCLK
	C$SaveEEPROM.c$133$2_0$14 ==.
;	SaveEEPROM.c:133: if(!LowVolFlag)
	jnb	_LowVolFlag,00173$
	ljmp	00117$
00173$:
	C$SaveEEPROM.c$135$3_0$17 ==.
;	SaveEEPROM.c:135: LowVolFlag = 1;    //设置低电压标志
;	assignBit
	setb	_LowVolFlag
	C$SaveEEPROM.c$136$3_0$17 ==.
;	SaveEEPROM.c:136: if(Test_cnt != Temp_cnt)
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#_Temp_cnt
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	mov	a,r6
	cjne	a,ar4,00174$
	mov	a,r7
	cjne	a,ar5,00174$
	ljmp	00117$
00174$:
	C$SaveEEPROM.c$138$4_0$18 ==.
;	SaveEEPROM.c:138: Temp_cnt = Test_cnt;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#_Temp_cnt
	mov	a,r6
	movx	@dptr,a
	mov	a,r7
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$139$4_0$18 ==.
;	SaveEEPROM.c:139: EEPROM_SectorErase(EE_ADDRESS); //擦除扇区
	mov	dpl, #0x00
	mov	dph, #0x00
	mov	b, #0x00
	clr	a
	lcall	_EEPROM_SectorErase
	C$SaveEEPROM.c$140$4_0$18 ==.
;	SaveEEPROM.c:140: tmp[0] = (u8)(Temp_cnt >> 8);
	mov	dptr,#_Temp_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	ar6,r7
	mov	dptr,#_tmp
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$141$4_0$18 ==.
;	SaveEEPROM.c:141: tmp[1] = (u8)Temp_cnt;
	mov	dptr,#_Temp_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#(_tmp + 0x0001)
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$142$4_0$18 ==.
;	SaveEEPROM.c:142: EEPROM_write_n(EE_ADDRESS,tmp,2);
	mov	dptr,#_EEPROM_write_n_PARM_2
	mov	a,#_tmp
	movx	@dptr,a
	mov	a,#(_tmp >> 8)
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dptr,#_EEPROM_write_n_PARM_3
	mov	a,#0x02
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, #0x00
	mov	dph, #0x00
	mov	b,a
	lcall	_EEPROM_write_n
00117$:
	C$SaveEEPROM.c$146$1_0$10 ==.
;	SaveEEPROM.c:146: }
	pop	psw
	pop	(0+0)
	pop	(0+1)
	pop	(0+2)
	pop	(0+3)
	pop	(0+4)
	pop	(0+5)
	pop	(0+6)
	pop	(0+7)
	pop	dph
	pop	dpl
	pop	b
	pop	acc
	pop	bits
	C$SaveEEPROM.c$146$1_0$10 ==.
	XG$CMP_Isr$0$0 ==.
	reti
;------------------------------------------------------------
;Allocation info for local variables in function 'main'
;------------------------------------------------------------
;i                         Allocated with name '_main_i_10000_20'
;------------------------------------------------------------
	G$main$0$0 ==.
	C$SaveEEPROM.c$149$1_0$20 ==.
;	SaveEEPROM.c:149: void main(void)
;	-----------------------------------------
;	 function main
;	-----------------------------------------
_main:
	C$SaveEEPROM.c$153$1_0$20 ==.
;	SaveEEPROM.c:153: WTST = 0;  //设置程序指令延时参数，赋值为0可将CPU执行指令的速度设置为最快
	mov	_WTST,#0x00
	C$SaveEEPROM.c$154$1_0$20 ==.
;	SaveEEPROM.c:154: EAXSFR(); //扩展寄存器(XFR)访问使能
	orl	_P_SW2,#0x80
	C$SaveEEPROM.c$155$1_0$20 ==.
;	SaveEEPROM.c:155: CKCON = 0; //提高访问XRAM速度
	mov	_CKCON,#0x00
	C$SaveEEPROM.c$157$1_0$20 ==.
;	SaveEEPROM.c:157: P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
	mov	_P0M1,#0x00
	mov	_P0M0,#0x00
	C$SaveEEPROM.c$158$1_0$20 ==.
;	SaveEEPROM.c:158: P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
	mov	_P1M1,#0x00
	mov	_P1M0,#0x00
	C$SaveEEPROM.c$159$1_0$20 ==.
;	SaveEEPROM.c:159: P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
	mov	_P2M1,#0x00
	mov	_P2M0,#0x00
	C$SaveEEPROM.c$160$1_0$20 ==.
;	SaveEEPROM.c:160: P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
	mov	_P3M1,#0x00
	mov	_P3M0,#0x00
	C$SaveEEPROM.c$161$1_0$20 ==.
;	SaveEEPROM.c:161: P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
	mov	_P4M1,#0x00
	mov	_P4M0,#0x00
	C$SaveEEPROM.c$162$1_0$20 ==.
;	SaveEEPROM.c:162: P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
	mov	_P5M1,#0x00
	mov	_P5M0,#0x00
	C$SaveEEPROM.c$163$1_0$20 ==.
;	SaveEEPROM.c:163: P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
	mov	_P6M1,#0x00
	mov	_P6M0,#0x00
	C$SaveEEPROM.c$164$1_0$20 ==.
;	SaveEEPROM.c:164: P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
	mov	_P7M1,#0x00
	mov	_P7M0,#0x00
	C$SaveEEPROM.c$166$1_0$20 ==.
;	SaveEEPROM.c:166: display_index = 0;
	mov	dptr,#_display_index
	mov	a,#0x00
	movx	@dptr,a
	C$SaveEEPROM.c$167$2_0$21 ==.
;	SaveEEPROM.c:167: for(i=0; i<8; i++)  LED8[i] = DIS_BLACK;    //全部消隐
	mov	dptr,#_main_i_10000_20
	movx	@dptr,a
00117$:
	mov	dptr,#_main_i_10000_20
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a, #_LED8
	mov	dpl,a
	mov	a,#0x00
	addc	a, #(_LED8 >> 8)
	mov	dph,a
	mov	a,#0x10
	movx	@dptr,a
	mov	dptr,#_main_i_10000_20
	mov	a,r7
	inc	a
	movx	@dptr,a
	movx	a,@dptr
	mov	r7,a
	cjne	r7,#0x08,00189$
00189$:
	jnc	00190$
	ljmp	00117$
00190$:
	C$SaveEEPROM.c$169$1_0$20 ==.
;	SaveEEPROM.c:169: AUXR = 0x80;    //Timer0 set as 1T, 16 bits timer auto-reload, 
	mov	_AUXR,#0x80
	C$SaveEEPROM.c$170$1_0$20 ==.
;	SaveEEPROM.c:170: TH0 = (u8)(Timer0_Reload / 256);
	mov	_TH0,#0xa2
	C$SaveEEPROM.c$171$1_0$20 ==.
;	SaveEEPROM.c:171: TL0 = (u8)(Timer0_Reload % 256);
	mov	_TL0,#0x40
	C$SaveEEPROM.c$172$1_0$20 ==.
;	SaveEEPROM.c:172: ET0 = 1;    //Timer0 interrupt enable
;	assignBit
	setb	_ET0
	C$SaveEEPROM.c$173$1_0$20 ==.
;	SaveEEPROM.c:173: TR0 = 1;    //Tiner0 run
;	assignBit
	setb	_TR0
	C$SaveEEPROM.c$175$1_0$20 ==.
;	SaveEEPROM.c:175: CMP_config();
	lcall	_CMP_config
	C$SaveEEPROM.c$176$1_0$20 ==.
;	SaveEEPROM.c:176: EA = 1;     //打开总中断
;	assignBit
	setb	_EA
	C$SaveEEPROM.c$178$2_0$22 ==.
;	SaveEEPROM.c:178: for(msecond=0; msecond < 200; ) //延时200ms
	mov	dptr,#_msecond
	mov	a,#0x00
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
00119$:
	C$SaveEEPROM.c$180$3_0$23 ==.
;	SaveEEPROM.c:180: if(B_1ms)   //1ms到
	jb	_B_1ms,00191$
	ljmp	00120$
00191$:
	C$SaveEEPROM.c$182$4_0$24 ==.
;	SaveEEPROM.c:182: B_1ms = 0;
;	assignBit
	clr	_B_1ms
	C$SaveEEPROM.c$183$4_0$24 ==.
;	SaveEEPROM.c:183: msecond ++;
	mov	dptr,#_msecond
	movx	a,@dptr
	add	a, #0x01
	movx	@dptr,a
	inc	dptr
	movx	a,@dptr
	addc	a, #0x00
	movx	@dptr,a
00120$:
	C$SaveEEPROM.c$178$2_0$22 ==.
;	SaveEEPROM.c:178: for(msecond=0; msecond < 200; ) //延时200ms
	mov	dptr,#_msecond
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	clr	c
	mov	a,r6
	subb	a,#0xc8
	mov	a,r7
	subb	a,#0x00
	jnc	00192$
	ljmp	00119$
00192$:
	C$SaveEEPROM.c$187$1_0$20 ==.
;	SaveEEPROM.c:187: EEPROM_read_n(EE_ADDRESS,tmp,2);        //读出2字节
	mov	dptr,#_EEPROM_read_n_PARM_2
	mov	a,#_tmp
	movx	@dptr,a
	mov	a,#(_tmp >> 8)
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dptr,#_EEPROM_read_n_PARM_3
	mov	a,#0x02
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, #0x00
	mov	dph, #0x00
	mov	b,a
	lcall	_EEPROM_read_n
	C$SaveEEPROM.c$188$1_0$20 ==.
;	SaveEEPROM.c:188: Test_cnt = ((u16)tmp[0] << 8) + tmp[1]; //秒计数
	mov	dptr,#_tmp
	movx	a,@dptr
	mov	r7,a
	mov	r6,#0x00
	mov	ar6,r7
	mov	r7,#0x00
	mov	dptr,#(_tmp + 0x0001)
	movx	a,@dptr
	mov	r5,a
	mov	r4,#0x00
	mov	a,r5
	add	a, r7
	mov	r7,a
	mov	a,r4
	addc	a, r6
	mov	r6,a
	mov	dptr,#_Test_cnt
	mov	a,r7
	movx	@dptr,a
	mov	a,r6
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$189$1_0$20 ==.
;	SaveEEPROM.c:189: if(Test_cnt > 10000)    Test_cnt = 0;   //秒计数范围为0~10000
	clr	c
	mov	a,#0x10
	subb	a,r7
	mov	a,#0x27
	subb	a,r6
	jc	00193$
	ljmp	00106$
00193$:
	mov	dptr,#_Test_cnt
	mov	a,#0x00
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
00106$:
	C$SaveEEPROM.c$191$1_0$20 ==.
;	SaveEEPROM.c:191: Display();      //显示秒计数
	lcall	_Display
	C$SaveEEPROM.c$193$1_0$20 ==.
;	SaveEEPROM.c:193: while(1)
00115$:
	C$SaveEEPROM.c$195$2_0$25 ==.
;	SaveEEPROM.c:195: if((B_1ms) && (LowVolFlag == 0))   //1ms到，低电压时不工作
	jb	_B_1ms,00194$
	ljmp	00115$
00194$:
	jnb	_LowVolFlag,00195$
	ljmp	00115$
00195$:
	C$SaveEEPROM.c$197$3_0$26 ==.
;	SaveEEPROM.c:197: B_1ms = 0;
;	assignBit
	clr	_B_1ms
	C$SaveEEPROM.c$198$3_0$26 ==.
;	SaveEEPROM.c:198: if(++msecond >= 1000)   //1秒到
	mov	dptr,#_msecond
	movx	a,@dptr
	add	a, #0x01
	movx	@dptr,a
	inc	dptr
	movx	a,@dptr
	addc	a, #0x00
	movx	@dptr,a
	mov	dptr,#_msecond
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	clr	c
	mov	a,r6
	subb	a,#0xe8
	mov	a,r7
	subb	a,#0x03
	jnc	00196$
	ljmp	00115$
00196$:
	C$SaveEEPROM.c$200$4_0$27 ==.
;	SaveEEPROM.c:200: msecond = 0;        //清1000ms计数
	mov	dptr,#_msecond
	mov	a,#0x00
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$201$4_0$27 ==.
;	SaveEEPROM.c:201: Test_cnt++;         //秒计数+1
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	add	a, #0x01
	movx	@dptr,a
	inc	dptr
	movx	a,@dptr
	addc	a, #0x00
	movx	@dptr,a
	C$SaveEEPROM.c$202$4_0$27 ==.
;	SaveEEPROM.c:202: if(Test_cnt > 10000)    Test_cnt = 0;   //秒计数范围为0~10000
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	clr	c
	mov	a,#0x10
	subb	a,r6
	mov	a,#0x27
	subb	a,r7
	jc	00197$
	ljmp	00108$
00197$:
	mov	dptr,#_Test_cnt
	mov	a,#0x00
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
00108$:
	C$SaveEEPROM.c$203$4_0$27 ==.
;	SaveEEPROM.c:203: Display();          //显示秒计数
	lcall	_Display
	ljmp	00115$
00121$:
	C$SaveEEPROM.c$207$1_0$20 ==.
;	SaveEEPROM.c:207: }
	C$SaveEEPROM.c$207$1_0$20 ==.
	XG$main$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'CMP_config'
;------------------------------------------------------------
	G$CMP_config$0$0 ==.
	C$SaveEEPROM.c$216$1_0$29 ==.
;	SaveEEPROM.c:216: void CMP_config(void)
;	-----------------------------------------
;	 function CMP_config
;	-----------------------------------------
_CMP_config:
	C$SaveEEPROM.c$218$1_0$29 ==.
;	SaveEEPROM.c:218: CMPEXCFG = 0x00;
	mov	dptr,#0xfeae
	mov	a,#0x00
	movx	@dptr,a
	C$SaveEEPROM.c$222$1_0$29 ==.
;	SaveEEPROM.c:222: CMPEXCFG |= 0x04;       //内部1.19V参考电压为CMP-输入脚
	movx	a,@dptr
	mov	r7,a
	orl	ar7,#0x04
	mov	dptr,#0xfeae
	mov	a,r7
	movx	@dptr,a
	C$SaveEEPROM.c$224$1_0$29 ==.
;	SaveEEPROM.c:224: CMPEXCFG&=~0x03;//P4.6为CMP+输入脚
	movx	a,@dptr
	mov	r7,a
	anl	ar7,#0xfc
	mov	dptr,#0xfeae
	mov	a,r7
	movx	@dptr,a
	C$SaveEEPROM.c$229$1_0$29 ==.
;	SaveEEPROM.c:229: CMPCR2 = 0x00;
	mov	_CMPCR2,#0x00
	C$SaveEEPROM.c$230$1_0$29 ==.
;	SaveEEPROM.c:230: CMPCR2&=~INVCMPO;//比较器正向输出
	anl	_CMPCR2,#0x7f
	C$SaveEEPROM.c$232$1_0$29 ==.
;	SaveEEPROM.c:232: CMPCR2&=~DISFLT;//使能0.1us滤波
	anl	_CMPCR2,#0xbf
	C$SaveEEPROM.c$235$1_0$29 ==.
;	SaveEEPROM.c:235: CMPCR2 |= 0x10;         //比较器结果经过16个去抖时钟后输出
	orl	_CMPCR2,#0x10
	C$SaveEEPROM.c$237$1_0$29 ==.
;	SaveEEPROM.c:237: CMPCR1 = 0x00;
	mov	_CMPCR1,#0x00
	C$SaveEEPROM.c$239$1_0$29 ==.
;	SaveEEPROM.c:239: CMPCR1 |= CMPPIE;                //使能比较器上升沿中断
	orl	_CMPCR1,#0x20
	C$SaveEEPROM.c$241$1_0$29 ==.
;	SaveEEPROM.c:241: CMPCR1 |= CMPNIE;                //使能比较器下降沿中断
	orl	_CMPCR1,#0x10
	C$SaveEEPROM.c$244$1_0$29 ==.
;	SaveEEPROM.c:244: CMPCR1 |= CMPOE;              //使能比较器输出
	orl	_CMPCR1,#0x02
	C$SaveEEPROM.c$246$1_0$29 ==.
;	SaveEEPROM.c:246: P_SW2&=~CMPO_S;//选择P4.5作为比较器输出脚
	anl	_P_SW2,#0xf7
	C$SaveEEPROM.c$248$1_0$29 ==.
;	SaveEEPROM.c:248: CMPCR1 |= CMPEN;              //使能比较器模块
	orl	_CMPCR1,#0x80
00101$:
	C$SaveEEPROM.c$249$1_0$29 ==.
;	SaveEEPROM.c:249: }
	C$SaveEEPROM.c$249$1_0$29 ==.
	XG$CMP_config$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'Display'
;------------------------------------------------------------
;i                         Allocated with name '_Display_i_10000_31'
;------------------------------------------------------------
	G$Display$0$0 ==.
	C$SaveEEPROM.c$252$1_0$31 ==.
;	SaveEEPROM.c:252: void Display(void)
;	-----------------------------------------
;	 function Display
;	-----------------------------------------
_Display:
	C$SaveEEPROM.c$256$1_0$31 ==.
;	SaveEEPROM.c:256: LED8[3] = Test_cnt / 10000;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#__divuint_PARM_2
	mov	a,#0x10
	movx	@dptr,a
	mov	a,#0x27
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__divuint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#(_LED8 + 0x0003)
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$257$1_0$31 ==.
;	SaveEEPROM.c:257: LED8[4] = (Test_cnt % 10000) / 1000;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#__moduint_PARM_2
	mov	a,#0x10
	movx	@dptr,a
	mov	a,#0x27
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__moduint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#__divuint_PARM_2
	mov	a,#0xe8
	movx	@dptr,a
	mov	a,#0x03
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__divuint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#(_LED8 + 0x0004)
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$258$1_0$31 ==.
;	SaveEEPROM.c:258: LED8[5] = (Test_cnt % 1000) / 100;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#__moduint_PARM_2
	mov	a,#0xe8
	movx	@dptr,a
	mov	a,#0x03
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__moduint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#__divuint_PARM_2
	mov	a,#0x64
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__divuint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#(_LED8 + 0x0005)
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$259$1_0$31 ==.
;	SaveEEPROM.c:259: LED8[6] = (Test_cnt % 100) / 10;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#__moduint_PARM_2
	mov	a,#0x64
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__moduint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#__divuint_PARM_2
	mov	a,#0x0a
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__divuint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#(_LED8 + 0x0006)
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$260$1_0$31 ==.
;	SaveEEPROM.c:260: LED8[7] = Test_cnt % 10;
	mov	dptr,#_Test_cnt
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	dptr,#__moduint_PARM_2
	mov	a,#0x0a
	movx	@dptr,a
	mov	a,#0x00
	inc	dptr
	movx	@dptr,a
	mov	dpl, r6
	mov	dph, r7
	lcall	__moduint
	mov	r6, dpl
	mov	r7, dph
	mov	dptr,#(_LED8 + 0x0007)
	mov	a,r6
	movx	@dptr,a
	C$SaveEEPROM.c$262$2_0$32 ==.
;	SaveEEPROM.c:262: for(i=3; i<7; i++)  //消无效0
	mov	dptr,#_Display_i_10000_31
	mov	a,#0x03
	movx	@dptr,a
00104$:
	C$SaveEEPROM.c$264$3_0$33 ==.
;	SaveEEPROM.c:264: if(LED8[i] > 0) break;
	mov	dptr,#_Display_i_10000_31
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a, #_LED8
	mov	r7,a
	mov	a,#0x00
	addc	a, #(_LED8 >> 8)
	mov	r6,a
	mov	dpl,r7
	mov	dph,r6
	movx	a,@dptr
	jz	00120$
	ljmp	00106$
00120$:
	C$SaveEEPROM.c$265$3_0$33 ==.
;	SaveEEPROM.c:265: LED8[i] = DIS_BLACK;
	mov	dptr,#_Display_i_10000_31
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a, #_LED8
	mov	dpl,a
	mov	a,#0x00
	addc	a, #(_LED8 >> 8)
	mov	dph,a
	mov	a,#0x10
	movx	@dptr,a
	C$SaveEEPROM.c$262$2_0$32 ==.
;	SaveEEPROM.c:262: for(i=3; i<7; i++)  //消无效0
	mov	dptr,#_Display_i_10000_31
	mov	a,r7
	inc	a
	movx	@dptr,a
	movx	a,@dptr
	mov	r7,a
	cjne	r7,#0x07,00121$
00121$:
	jnc	00122$
	ljmp	00104$
00122$:
00106$:
	C$SaveEEPROM.c$267$2_0$31 ==.
;	SaveEEPROM.c:267: }
	C$SaveEEPROM.c$267$2_0$31 ==.
	XG$Display$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'DisableEEPROM'
;------------------------------------------------------------
	G$DisableEEPROM$0$0 ==.
	C$SaveEEPROM.c$276$2_0$35 ==.
;	SaveEEPROM.c:276: void DisableEEPROM(void)
;	-----------------------------------------
;	 function DisableEEPROM
;	-----------------------------------------
_DisableEEPROM:
	C$SaveEEPROM.c$278$1_0$35 ==.
;	SaveEEPROM.c:278: IAP_CONTR = 0;          //关闭 IAP 功能
	mov	_IAP_CONTR,#0x00
	C$SaveEEPROM.c$279$1_0$35 ==.
;	SaveEEPROM.c:279: IAP_CMD = 0;            //清除命令寄存器
	mov	_IAP_CMD,#0x00
	C$SaveEEPROM.c$280$1_0$35 ==.
;	SaveEEPROM.c:280: IAP_TRIG = 0;           //清除触发寄存器
	mov	_IAP_TRIG,#0x00
	C$SaveEEPROM.c$281$1_0$35 ==.
;	SaveEEPROM.c:281: IAP_ADDRE = 0xff;       //将地址设置到非 IAP 区域
	mov	_IAP_ADDRE,#0xff
	C$SaveEEPROM.c$282$1_0$35 ==.
;	SaveEEPROM.c:282: IAP_ADDRH = 0xff;       //将地址设置到非 IAP 区域
	mov	_IAP_ADDRH,#0xff
	C$SaveEEPROM.c$283$1_0$35 ==.
;	SaveEEPROM.c:283: IAP_ADDRL = 0xff;
	mov	_IAP_ADDRL,#0xff
00101$:
	C$SaveEEPROM.c$284$1_0$35 ==.
;	SaveEEPROM.c:284: }
	C$SaveEEPROM.c$284$1_0$35 ==.
	XG$DisableEEPROM$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'EEPROM_read_n'
;------------------------------------------------------------
;DataAddress               Allocated with name '_EEPROM_read_n_PARM_2'
;number                    Allocated with name '_EEPROM_read_n_PARM_3'
;EE_address                Allocated with name '_EEPROM_read_n_EE_address_10000_36'
;------------------------------------------------------------
	G$EEPROM_read_n$0$0 ==.
	C$SaveEEPROM.c$295$1_0$37 ==.
;	SaveEEPROM.c:295: void EEPROM_read_n(u32 EE_address,u8 *DataAddress,u16 number)
;	-----------------------------------------
;	 function EEPROM_read_n
;	-----------------------------------------
_EEPROM_read_n:
	mov	r7,dpl
	mov	r6,dph
	mov	r5,b
	mov	r4,a
	mov	dptr,#_EEPROM_read_n_EE_address_10000_36
	mov	a,r7
	movx	@dptr,a
	mov	a,r6
	inc	dptr
	movx	@dptr,a
	mov	a,r5
	inc	dptr
	movx	@dptr,a
	mov	a,r4
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$297$1_0$37 ==.
;	SaveEEPROM.c:297: EA = 0;     //禁止中断
;	assignBit
	clr	_EA
	C$SaveEEPROM.c$299$1_0$37 ==.
;	SaveEEPROM.c:299: IAP_CONTR = 0x80; //使能 IAP
	mov	_IAP_CONTR,#0x80
	C$SaveEEPROM.c$300$1_0$37 ==.
;	SaveEEPROM.c:300: IAP_TPS = Tip_Delay; //设置擦除等待参数 24MHz
	mov	_IAP_TPS,#0x18
	C$SaveEEPROM.c$301$1_0$37 ==.
;	SaveEEPROM.c:301: IAP_CMD = 1;  //设置 IAP 读命令
	mov	_IAP_CMD,#0x01
	C$SaveEEPROM.c$302$1_0$37 ==.
;	SaveEEPROM.c:302: do
00101$:
	C$SaveEEPROM.c$304$2_0$38 ==.
;	SaveEEPROM.c:304: IAP_ADDRE = (u8)(EE_address >> 16); //送地址高字节（地址需要改变时才需重新送地址）
	mov	dptr,#_EEPROM_read_n_EE_address_10000_36
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	_IAP_ADDRE,r6
	C$SaveEEPROM.c$305$2_0$38 ==.
;	SaveEEPROM.c:305: IAP_ADDRH = (u8)(EE_address >> 8);  //送地址中字节（地址需要改变时才需重新送地址）
	mov	_IAP_ADDRH,r5
	C$SaveEEPROM.c$306$2_0$38 ==.
;	SaveEEPROM.c:306: IAP_ADDRL = (u8)EE_address;         //送地址低字节（地址需要改变时才需重新送地址）
	mov	_IAP_ADDRL,r4
	C$SaveEEPROM.c$307$2_0$38 ==.
;	SaveEEPROM.c:307: IAP_TRIG = 0x5a; //写触发命令(0x5a)
	mov	_IAP_TRIG,#0x5a
	C$SaveEEPROM.c$308$2_0$38 ==.
;	SaveEEPROM.c:308: IAP_TRIG = 0xa5; //写触发命令(0xa5)
	mov	_IAP_TRIG,#0xa5
	C$SaveEEPROM.c$309$2_0$38 ==.
;	SaveEEPROM.c:309: _nop_();   //多级流水线的指令系统，触发命令后建议加4个NOP，保证IAP_DATA的数据完成准备
	NOP	
	C$SaveEEPROM.c$310$2_0$38 ==.
;	SaveEEPROM.c:310: _nop_();
	NOP	
	C$SaveEEPROM.c$311$2_0$38 ==.
;	SaveEEPROM.c:311: _nop_();
	NOP	
	C$SaveEEPROM.c$312$2_0$38 ==.
;	SaveEEPROM.c:312: _nop_();
	NOP	
	C$SaveEEPROM.c$313$2_0$38 ==.
;	SaveEEPROM.c:313: *DataAddress = IAP_DATA; //读 IAP 数据
	mov	dptr,#_EEPROM_read_n_PARM_2
	movx	a,@dptr
	mov	r1,a
	inc	dptr
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	mov	dpl,r1
	mov	dph,r2
	mov	b,r3
	mov	a,_IAP_DATA
	lcall	__gptrput
	C$SaveEEPROM.c$314$2_0$38 ==.
;	SaveEEPROM.c:314: EE_address++;
	mov	dptr,#_EEPROM_read_n_EE_address_10000_36
	mov	a,#0x01
	add	a, r4
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r5
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r6
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r7
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$315$2_0$38 ==.
;	SaveEEPROM.c:315: DataAddress++;
	mov	dptr,#_EEPROM_read_n_PARM_2
	mov	a,#0x01
	add	a, r1
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r2
	inc	dptr
	movx	@dptr,a
	mov	a,r3
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$316$1_0$37 ==.
;	SaveEEPROM.c:316: }while(--number);
	mov	dptr,#_EEPROM_read_n_PARM_3
	movx	a,@dptr
	add	a,#0xff
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	addc	a,#0xff
	mov	r7,a
	mov	dptr,#_EEPROM_read_n_PARM_3
	mov	a,r6
	movx	@dptr,a
	mov	a,r7
	inc	dptr
	movx	@dptr,a
	mov	dptr,#_EEPROM_read_n_PARM_3
	movx	a,@dptr
	mov	b,a
	inc	dptr
	movx	a,@dptr
	orl	a,b
	jz	00118$
	ljmp	00101$
00118$:
	C$SaveEEPROM.c$317$1_0$37 ==.
;	SaveEEPROM.c:317: DisableEEPROM();
	lcall	_DisableEEPROM
	C$SaveEEPROM.c$318$1_0$37 ==.
;	SaveEEPROM.c:318: EA = 1;     //重新允许中断
;	assignBit
	setb	_EA
00104$:
	C$SaveEEPROM.c$319$1_0$37 ==.
;	SaveEEPROM.c:319: }
	C$SaveEEPROM.c$319$1_0$37 ==.
	XG$EEPROM_read_n$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'EEPROM_SectorErase'
;------------------------------------------------------------
;EE_address                Allocated with name '_EEPROM_SectorErase_EE_address_10000_39'
;------------------------------------------------------------
	G$EEPROM_SectorErase$0$0 ==.
	C$SaveEEPROM.c$328$1_0$40 ==.
;	SaveEEPROM.c:328: void EEPROM_SectorErase(u32 EE_address)
;	-----------------------------------------
;	 function EEPROM_SectorErase
;	-----------------------------------------
_EEPROM_SectorErase:
	mov	r7,dpl
	mov	r6,dph
	mov	r5,b
	mov	r4,a
	mov	dptr,#_EEPROM_SectorErase_EE_address_10000_39
	mov	a,r7
	movx	@dptr,a
	mov	a,r6
	inc	dptr
	movx	@dptr,a
	mov	a,r5
	inc	dptr
	movx	@dptr,a
	mov	a,r4
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$330$1_0$40 ==.
;	SaveEEPROM.c:330: EA = 0;     //禁止中断
;	assignBit
	clr	_EA
	C$SaveEEPROM.c$332$1_0$40 ==.
;	SaveEEPROM.c:332: IAP_CONTR = 0x80; //使能 IAP
	mov	_IAP_CONTR,#0x80
	C$SaveEEPROM.c$333$1_0$40 ==.
;	SaveEEPROM.c:333: IAP_TPS = Tip_Delay; //设置擦除等待参数 24MHz
	mov	_IAP_TPS,#0x18
	C$SaveEEPROM.c$334$1_0$40 ==.
;	SaveEEPROM.c:334: IAP_CMD = 3;      //设置 IAP 擦除命令
	mov	_IAP_CMD,#0x03
	C$SaveEEPROM.c$335$1_0$40 ==.
;	SaveEEPROM.c:335: IAP_ADDRE = (u8)(EE_address >> 16); //送扇区地址高字节（地址需要改变时才需重新送地址）
	mov	dptr,#_EEPROM_SectorErase_EE_address_10000_39
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	_IAP_ADDRE,r6
	C$SaveEEPROM.c$336$1_0$40 ==.
;	SaveEEPROM.c:336: IAP_ADDRH = (u8)(EE_address >> 8);  //送扇区地址中字节（地址需要改变时才需重新送地址）
	mov	_IAP_ADDRH,r5
	C$SaveEEPROM.c$337$1_0$40 ==.
;	SaveEEPROM.c:337: IAP_ADDRL = (u8)EE_address;         //送扇区地址低字节（地址需要改变时才需重新送地址）
	mov	_IAP_ADDRL,r4
	C$SaveEEPROM.c$338$1_0$40 ==.
;	SaveEEPROM.c:338: IAP_TRIG = 0x5a; //写触发命令(0x5a)
	mov	_IAP_TRIG,#0x5a
	C$SaveEEPROM.c$339$1_0$40 ==.
;	SaveEEPROM.c:339: IAP_TRIG = 0xa5; //写触发命令(0xa5)
	mov	_IAP_TRIG,#0xa5
	C$SaveEEPROM.c$340$1_0$40 ==.
;	SaveEEPROM.c:340: _nop_();   //多级流水线的指令系统，触发命令后建议加4个NOP，保证IAP_DATA的数据完成准备
	NOP	
	C$SaveEEPROM.c$341$1_0$40 ==.
;	SaveEEPROM.c:341: _nop_();
	NOP	
	C$SaveEEPROM.c$342$1_0$40 ==.
;	SaveEEPROM.c:342: _nop_();
	NOP	
	C$SaveEEPROM.c$343$1_0$40 ==.
;	SaveEEPROM.c:343: _nop_();
	NOP	
	C$SaveEEPROM.c$344$1_0$40 ==.
;	SaveEEPROM.c:344: DisableEEPROM();
	lcall	_DisableEEPROM
	C$SaveEEPROM.c$345$1_0$40 ==.
;	SaveEEPROM.c:345: EA = 1;     //重新允许中断
;	assignBit
	setb	_EA
00101$:
	C$SaveEEPROM.c$346$1_0$40 ==.
;	SaveEEPROM.c:346: }
	C$SaveEEPROM.c$346$1_0$40 ==.
	XG$EEPROM_SectorErase$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'EEPROM_write_n'
;------------------------------------------------------------
;DataAddress               Allocated with name '_EEPROM_write_n_PARM_2'
;number                    Allocated with name '_EEPROM_write_n_PARM_3'
;EE_address                Allocated with name '_EEPROM_write_n_EE_address_10000_41'
;------------------------------------------------------------
	G$EEPROM_write_n$0$0 ==.
	C$SaveEEPROM.c$357$1_0$42 ==.
;	SaveEEPROM.c:357: void EEPROM_write_n(u32 EE_address,u8 *DataAddress,u16 number)
;	-----------------------------------------
;	 function EEPROM_write_n
;	-----------------------------------------
_EEPROM_write_n:
	mov	r7,dpl
	mov	r6,dph
	mov	r5,b
	mov	r4,a
	mov	dptr,#_EEPROM_write_n_EE_address_10000_41
	mov	a,r7
	movx	@dptr,a
	mov	a,r6
	inc	dptr
	movx	@dptr,a
	mov	a,r5
	inc	dptr
	movx	@dptr,a
	mov	a,r4
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$359$1_0$42 ==.
;	SaveEEPROM.c:359: EA = 0;     //禁止中断
;	assignBit
	clr	_EA
	C$SaveEEPROM.c$361$1_0$42 ==.
;	SaveEEPROM.c:361: IAP_CONTR = 0x80; //使能 IAP
	mov	_IAP_CONTR,#0x80
	C$SaveEEPROM.c$362$1_0$42 ==.
;	SaveEEPROM.c:362: IAP_TPS = Tip_Delay; //设置擦除等待参数 24MHz
	mov	_IAP_TPS,#0x18
	C$SaveEEPROM.c$363$1_0$42 ==.
;	SaveEEPROM.c:363: IAP_CMD = 2;  //设置 IAP 写命令
	mov	_IAP_CMD,#0x02
	C$SaveEEPROM.c$364$1_0$42 ==.
;	SaveEEPROM.c:364: do
00101$:
	C$SaveEEPROM.c$366$2_0$43 ==.
;	SaveEEPROM.c:366: IAP_ADDRE = (u8)(EE_address >> 16); //送地址高字节（地址需要改变时才需重新送地址）
	mov	dptr,#_EEPROM_write_n_EE_address_10000_41
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	mov	r7,a
	mov	_IAP_ADDRE,r6
	C$SaveEEPROM.c$367$2_0$43 ==.
;	SaveEEPROM.c:367: IAP_ADDRH = (u8)(EE_address >> 8);  //送地址中字节（地址需要改变时才需重新送地址）
	mov	_IAP_ADDRH,r5
	C$SaveEEPROM.c$368$2_0$43 ==.
;	SaveEEPROM.c:368: IAP_ADDRL = (u8)EE_address;         //送地址低字节（地址需要改变时才需重新送地址）
	mov	_IAP_ADDRL,r4
	C$SaveEEPROM.c$369$2_0$43 ==.
;	SaveEEPROM.c:369: IAP_DATA = *DataAddress; //写 IAP 数据
	mov	dptr,#_EEPROM_write_n_PARM_2
	movx	a,@dptr
	mov	r1,a
	inc	dptr
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	mov	dpl,r1
	mov	dph,r2
	mov	b,r3
	lcall	__gptrget
	mov	_IAP_DATA,a
	C$SaveEEPROM.c$370$2_0$43 ==.
;	SaveEEPROM.c:370: IAP_TRIG = 0x5a; //写触发命令(0x5a)
	mov	_IAP_TRIG,#0x5a
	C$SaveEEPROM.c$371$2_0$43 ==.
;	SaveEEPROM.c:371: IAP_TRIG = 0xa5; //写触发命令(0xa5)
	mov	_IAP_TRIG,#0xa5
	C$SaveEEPROM.c$372$2_0$43 ==.
;	SaveEEPROM.c:372: _nop_();   //多级流水线的指令系统，触发命令后建议加4个NOP，保证IAP_DATA的数据完成准备
	NOP	
	C$SaveEEPROM.c$373$2_0$43 ==.
;	SaveEEPROM.c:373: _nop_();
	NOP	
	C$SaveEEPROM.c$374$2_0$43 ==.
;	SaveEEPROM.c:374: _nop_();
	NOP	
	C$SaveEEPROM.c$375$2_0$43 ==.
;	SaveEEPROM.c:375: _nop_();
	NOP	
	C$SaveEEPROM.c$376$2_0$43 ==.
;	SaveEEPROM.c:376: EE_address++;
	mov	dptr,#_EEPROM_write_n_EE_address_10000_41
	mov	a,#0x01
	add	a, r4
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r5
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r6
	inc	dptr
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r7
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$377$2_0$43 ==.
;	SaveEEPROM.c:377: DataAddress++;
	mov	dptr,#_EEPROM_write_n_PARM_2
	mov	a,#0x01
	add	a, r1
	movx	@dptr,a
	mov	a,#0x00
	addc	a, r2
	inc	dptr
	movx	@dptr,a
	mov	a,r3
	inc	dptr
	movx	@dptr,a
	C$SaveEEPROM.c$378$1_0$42 ==.
;	SaveEEPROM.c:378: }while(--number);
	mov	dptr,#_EEPROM_write_n_PARM_3
	movx	a,@dptr
	add	a,#0xff
	mov	r6,a
	inc	dptr
	movx	a,@dptr
	addc	a,#0xff
	mov	r7,a
	mov	dptr,#_EEPROM_write_n_PARM_3
	mov	a,r6
	movx	@dptr,a
	mov	a,r7
	inc	dptr
	movx	@dptr,a
	mov	dptr,#_EEPROM_write_n_PARM_3
	movx	a,@dptr
	mov	b,a
	inc	dptr
	movx	a,@dptr
	orl	a,b
	jz	00118$
	ljmp	00101$
00118$:
	C$SaveEEPROM.c$380$1_0$42 ==.
;	SaveEEPROM.c:380: DisableEEPROM();
	lcall	_DisableEEPROM
	C$SaveEEPROM.c$381$1_0$42 ==.
;	SaveEEPROM.c:381: EA = 1;     //重新允许中断
;	assignBit
	setb	_EA
00104$:
	C$SaveEEPROM.c$382$1_0$42 ==.
;	SaveEEPROM.c:382: }
	C$SaveEEPROM.c$382$1_0$42 ==.
	XG$EEPROM_write_n$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'Send_595'
;------------------------------------------------------------
;dat                       Allocated with name '_Send_595_dat_10000_44'
;i                         Allocated with name '_Send_595_i_10000_45'
;------------------------------------------------------------
	G$Send_595$0$0 ==.
	C$SaveEEPROM.c$385$1_0$46 ==.
;	SaveEEPROM.c:385: void Send_595(u8 dat)
;	-----------------------------------------
;	 function Send_595
;	-----------------------------------------
_Send_595:
	mov	a,dpl
	mov	dptr,#_Send_595_dat_10000_44
	movx	@dptr,a
	C$SaveEEPROM.c$388$2_0$46 ==.
;	SaveEEPROM.c:388: for(i=0; i<8; i++)
	mov	dptr,#_Send_595_i_10000_45
	mov	a,#0x00
	movx	@dptr,a
00102$:
	C$SaveEEPROM.c$390$3_0$47 ==.
;	SaveEEPROM.c:390: dat <<= 1;
	mov	dptr,#_Send_595_dat_10000_44
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a,acc
	mov	r7,a
	mov	a,r7
	movx	@dptr,a
	C$SaveEEPROM.c$391$3_0$47 ==.
;	SaveEEPROM.c:391: P_HC595_SER   = CY;
;	assignBit
	mov	c,_CY
	mov	_P_HC595_SER,c
	C$SaveEEPROM.c$392$3_0$47 ==.
;	SaveEEPROM.c:392: P_HC595_SRCLK = 1;
;	assignBit
	setb	_P_HC595_SRCLK
	C$SaveEEPROM.c$393$3_0$47 ==.
;	SaveEEPROM.c:393: P_HC595_SRCLK = 0;
;	assignBit
	clr	_P_HC595_SRCLK
	C$SaveEEPROM.c$388$2_0$46 ==.
;	SaveEEPROM.c:388: for(i=0; i<8; i++)
	mov	dptr,#_Send_595_i_10000_45
	movx	a,@dptr
	add	a, #0x01
	movx	@dptr,a
	movx	a,@dptr
	mov	r7,a
	cjne	r7,#0x08,00112$
00112$:
	jnc	00113$
	ljmp	00102$
00113$:
00104$:
	C$SaveEEPROM.c$395$2_0$46 ==.
;	SaveEEPROM.c:395: }
	C$SaveEEPROM.c$395$2_0$46 ==.
	XG$Send_595$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'DisplayScan'
;------------------------------------------------------------
	G$DisplayScan$0$0 ==.
	C$SaveEEPROM.c$398$2_0$49 ==.
;	SaveEEPROM.c:398: void DisplayScan(void)
;	-----------------------------------------
;	 function DisplayScan
;	-----------------------------------------
_DisplayScan:
	C$SaveEEPROM.c$400$1_0$49 ==.
;	SaveEEPROM.c:400: Send_595(t_display[LED8[display_index]]);   //输出段码
	mov	dptr,#_display_index
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a, #_LED8
	mov	dpl,a
	mov	a,#0x00
	addc	a, #(_LED8 >> 8)
	mov	dph,a
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a, #_t_display
	mov	dpl,a
	mov	a,#0x00
	addc	a, #(_t_display >> 8)
	mov	dph,a
	clr	a
	movc	a,@a+dptr
	mov	r7,a
	mov	dpl, r7
	lcall	_Send_595
	C$SaveEEPROM.c$401$1_0$49 ==.
;	SaveEEPROM.c:401: Send_595(~T_COM[display_index]);            //输出位码
	mov	dptr,#_display_index
	movx	a,@dptr
	mov	r7,a
	mov	a,r7
	add	a, #_T_COM
	mov	dpl,a
	mov	a,#0x00
	addc	a, #(_T_COM >> 8)
	mov	dph,a
	clr	a
	movc	a,@a+dptr
	mov	r7,a
	mov	a,r7
	cpl	a
	mov	r7,a
	mov	dpl, r7
	lcall	_Send_595
	C$SaveEEPROM.c$403$1_0$49 ==.
;	SaveEEPROM.c:403: P_HC595_RCLK = 1;
;	assignBit
	setb	_P_HC595_RCLK
	C$SaveEEPROM.c$404$1_0$49 ==.
;	SaveEEPROM.c:404: P_HC595_RCLK = 0;
;	assignBit
	clr	_P_HC595_RCLK
	C$SaveEEPROM.c$405$1_0$49 ==.
;	SaveEEPROM.c:405: if(++display_index >= 8)    display_index = 0;  //8位结束回0
	mov	dptr,#_display_index
	movx	a,@dptr
	add	a, #0x01
	movx	@dptr,a
	movx	a,@dptr
	mov	r7,a
	cjne	r7,#0x08,00111$
00111$:
	jnc	00112$
	ljmp	00103$
00112$:
	mov	dptr,#_display_index
	mov	a,#0x00
	movx	@dptr,a
00103$:
	C$SaveEEPROM.c$406$1_0$49 ==.
;	SaveEEPROM.c:406: }
	C$SaveEEPROM.c$406$1_0$49 ==.
	XG$DisplayScan$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'timer0'
;------------------------------------------------------------
	G$timer0$0$0 ==.
	C$SaveEEPROM.c$410$1_0$51 ==.
;	SaveEEPROM.c:410: INTERRUPT(timer0,TMR0_VECTOR)
;	-----------------------------------------
;	 function timer0
;	-----------------------------------------
_timer0:
	push	bits
	push	acc
	push	b
	push	dpl
	push	dph
	push	(0+7)
	push	(0+6)
	push	(0+5)
	push	(0+4)
	push	(0+3)
	push	(0+2)
	push	(0+1)
	push	(0+0)
	push	psw
	mov	psw,#0x00
	C$SaveEEPROM.c$412$1_0$51 ==.
;	SaveEEPROM.c:412: if(LowVolFlag == 0)
	jnb	_LowVolFlag,00111$
	ljmp	00103$
00111$:
	C$SaveEEPROM.c$414$2_0$52 ==.
;	SaveEEPROM.c:414: DisplayScan();  //1ms扫描显示一位
	lcall	_DisplayScan
	C$SaveEEPROM.c$415$2_0$52 ==.
;	SaveEEPROM.c:415: B_1ms = 1;      //1ms标志
;	assignBit
	setb	_B_1ms
00103$:
	C$SaveEEPROM.c$417$1_0$51 ==.
;	SaveEEPROM.c:417: }
	pop	psw
	pop	(0+0)
	pop	(0+1)
	pop	(0+2)
	pop	(0+3)
	pop	(0+4)
	pop	(0+5)
	pop	(0+6)
	pop	(0+7)
	pop	dph
	pop	dpl
	pop	b
	pop	acc
	pop	bits
	C$SaveEEPROM.c$417$1_0$51 ==.
	XG$timer0$0$0 ==.
	reti
	.area CSEG    (CODE)
	.area CONST   (CODE)
G$t_display$0_0$0 == .
_t_display:
	.db #0x3f	; 63
	.db #0x06	; 6
	.db #0x5b	; 91
	.db #0x4f	; 79	'O'
	.db #0x66	; 102	'f'
	.db #0x6d	; 109	'm'
	.db #0x7d	; 125
	.db #0x07	; 7
	.db #0x7f	; 127
	.db #0x6f	; 111	'o'
	.db #0x77	; 119	'w'
	.db #0x7c	; 124
	.db #0x39	; 57	'9'
	.db #0x5e	; 94
	.db #0x79	; 121	'y'
	.db #0x71	; 113	'q'
	.db #0x00	; 0
	.db #0x40	; 64
	.db #0x76	; 118	'v'
	.db #0x1e	; 30
	.db #0x70	; 112	'p'
	.db #0x38	; 56	'8'
	.db #0x37	; 55	'7'
	.db #0x5c	; 92
	.db #0x73	; 115	's'
	.db #0x3e	; 62
	.db #0x78	; 120	'x'
	.db #0x3d	; 61
	.db #0x67	; 103	'g'
	.db #0x50	; 80	'P'
	.db #0x37	; 55	'7'
	.db #0x6e	; 110	'n'
	.db #0xbf	; 191
	.db #0x86	; 134
	.db #0xdb	; 219
	.db #0xcf	; 207
	.db #0xe6	; 230
	.db #0xed	; 237
	.db #0xfd	; 253
	.db #0x87	; 135
	.db #0xff	; 255
	.db #0xef	; 239
	.db #0x46	; 70	'F'
G$T_COM$0_0$0 == .
_T_COM:
	.db #0x01	; 1
	.db #0x02	; 2
	.db #0x04	; 4
	.db #0x08	; 8
	.db #0x10	; 16
	.db #0x20	; 32
	.db #0x40	; 64
	.db #0x80	; 128
	.area XINIT   (CODE)
	.area CABS    (ABS,CODE)
