⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.src

📁 电能表源码
💻 SRC
📖 第 1 页 / 共 5 页
字号:
set_bittable:
	DB	001H
	DB	002H
	DB	004H
	DB	008H
	DB	010H
	DB	020H
	DB	040H
	DB	080H

meterprm_table:
	DB	000H,000H,000H,001H	; long
	DB	0E1H,058H,000H,000H	; long
	DB	000H,000H,000H,000H	; long
	DB	000H,065H,04FH,0D6H	; long
	DB	000H,000H,000H,000H	; long
	DB	000H,000H,000H,000H	; long
	DB	001H,00CH,0A2H,03AH	; long
	DB	001H,060H,096H,018H	; long
	DB	000H,000H,000H,000H	; long
	DB	000H,000H,000H,000H	; long
	DB	000H,000H,000H,000H	; long
	DB	000H,000H,000H,000H	; long
	DB	000H,000H,000H,000H	; long
	DB	0F3H,01EH,043H,012H	; long
	DB	0F3H,07DH,003H,081H	; long
	DB	0F4H,0DBH,01DH,071H	; long

; /*************************************************************************************
; 
; 	文件类型:
; 	文件作用:
; 	修改权限:
; 	文件相关:
; 	
; 	创 建 人:GeminiKQ
; 	创建日期:2006.12.20
; 	当前版本:Ver0.1
; 	
; 	版本信息:Ver0.1					GeminiKQ
; 
; **************************************************************************************/
; #define	MAIN
; 
; #include "Tiger.h"
; #include "typemeter.h"
; 
; 
; //==================================================================
; //系统默认较表参数
; //==================================================================
; unsigned long code meterprm_table[]=
;  { 0x00000001,                                //有功门限高
;    0xe1580000,                                //有功门限低
;    0x00000000,                                //有效值门限高
;    0x00654FD6,                                 //有效值门限低
;    0x00000000,                                 //启动门限值高
;    0x00000000,                                 //启动门限值低
;    0x010CA23A,                                 //IA有效值比差
;    0x01609618,                                 //IB有效值比差
;    0x00000000,                                 //LA有效值比差
;    0x00000000,                                 //LB有效值比差
;    0x00000000,                                 //M有效值比差
;    0x00000000,                                 //M有效值比差
;    0x00000000,                                 //M有效值比差
;    0xF31E4312,                                 //PA比差
;    0xF37D0381,                                 //PB比差
;    0xF4DB1D71                                  //电压比差
;  };
; 
; 
; 
; /*
; void SetPLL01(void)
; {
; 	unsigned char xdata *point;
; 	// 开PLL
;     point = 0x2894;
;     *point = 0x3f;
;     point = 0x2897;
;     *point = 0x8a;
;     point = 0x2898;
;     *point = 0x01;
; 	// 写密码
; 	point = 0x28d4;
; 	*(point++) = 0xd2;
; 	*(point++) = 0x09;
; 	// 切换时钟
; 	point = 0x28d0;
; 	*point = 0x01;
; }
; */
; 
; //==========================================
; //函数功能:禁止所有IO口的输入输出
; //==========================================

	RSEG  ?PR?MAIN
Com00D5:
L?0214:
	USING	0
	MOV  	DPTR,#wr_buff
	MOVX 	@DPTR,A
	CLR  	A
	INC  	DPTR
	MOVX 	@DPTR,A
	MOV  	A,#010H
L?0215:
	INC  	DPTR
L?0216:
	MOVX 	@DPTR,A
L?0217:
	MOV  	DPTR,#ID_coretalbpoint
	LCALL	?C?PLDXDATA
L?0218:
	MOV  	DPTR,#03H
	LJMP 	?C?ILDOPTR
L?0219:
	USING	0
L?0220:
	MOV  	R7,A
	MOV  	A,B
L?0221:
	MOV  	DPTR,#data_addr+02H
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	RET  	
L?0222:
	USING	0
L?0223:
	MOV  	A,#LOW (wr_buff)
	ADD  	A,R7
L?0224:
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (wr_buff)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0226:
	USING	0
	ADD  	A,R7
L?0227:
	ADD  	A,#LOW (ram)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram)
	MOV  	DPH,A
	RET  	
L?0228:
	USING	0
	MOV  	DPTR,#couren_addrint
	MOV  	A,#07EH
	MOVX 	@DPTR,A
	INC  	DPTR
	CLR  	A
	MOVX 	@DPTR,A
	MOV  	DPTR,#offset_inteng
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#018H
L?0229:
	MOVX 	@DPTR,A
L?0230:
	MOV  	DPTR,#offset_inteng
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R0,#02H
	RET  	
L?0231:
	USING	0
	MOV  	A,R7
	MOV  	B,#0AH
	MUL  	AB
	ADD  	A,#00H
L?0232:
	MOV  	R6,A
	MOV  	A,B
	ADDC 	A,#06EH
	MOV  	DPTR,#data_addr+02H
	MOVX 	@DPTR,A
	INC  	DPTR
	XCH  	A,R6
	MOVX 	@DPTR,A
	RET  	
L?0233:
	USING	0
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
L?0234:
	MOV  	DPTR,#wr_buff+0BH
L?0235:
	MOVX 	A,@DPTR
	ADD  	A,R7
	MOVX 	@DPTR,A
L?0236:
	MOV  	DPTR,#i?1971
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	RET  	
L?0238:
	USING	0
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	A,#LOW (temp_data?1269)
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (temp_data?1269)
	MOV  	DPH,A
	MOV  	A,R6
	MOVX 	@DPTR,A
L?0239:
	MOV  	DPTR,#j?1266
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	RET  	
L?0241:
	USING	0
L?0242:
	ADD  	A,#LOW (ram+03H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram+03H)
	MOV  	DPH,A
	RET  	
L?0245:
	USING	0
L?0246:
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	MOV  	R7,A
	MOV  	DPTR,#01H
	LJMP 	?C?CLDOPTR
L?0248:
	USING	0
L?0249:
	MOV  	R3,#01H
	MOV  	R2,#HIGH (wr_buff)
	MOV  	R1,#LOW (wr_buff)
	RET  	
L?0250:
	USING	0
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#LOW (meterprm_table)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (meterprm_table)
	MOV  	DPH,A
	LCALL	?C?LLDCODE
	MOV  	DPTR,#read_buff?1164
	RET  	
L?0251:
	USING	0
	MOVX 	A,@DPTR
	MOV  	DPTR,#wr_buff
	MOVX 	@DPTR,A
	CLR  	A
	INC  	DPTR
	MOVX 	@DPTR,A
	MOV  	DPTR,#wr_buff
	MOVX 	A,@DPTR
	ADD  	A,#033H
	MOV  	DPTR,#wr_buff+02H
	MOVX 	@DPTR,A
	RET  	
L?0252:
	USING	0
	ADD  	A,#LOW (ram+02H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram+02H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#RTCTIME+04H
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0253:
	USING	0
	ADD  	A,#LOW (ram+01H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram+01H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#RTCTIME+03H
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0254:
	USING	0
	ADD  	A,#LOW (ram+05H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram+05H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#RTCTIME+06H
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0255:
	USING	0
	ADD  	A,#LOW (ram+06H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram+06H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#RTCTIME+01H
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0256:
	USING	0
	ADD  	A,#LOW (ram+04H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (ram+04H)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#RTCTIME
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0257:
	USING	0
	SETB 	C
	MOV  	DPTR,#time_jihuo+01H
	MOVX 	A,@DPTR
	SUBB 	A,#050H
L?0258:
	MOV  	DPTR,#time_jihuo
	MOVX 	A,@DPTR
	SUBB 	A,#00H
	RET  	
L?0259:
	USING	0
L?0260:
	MOV  	DPTR,#couren_addrint
	MOV  	A,#07CH
	MOVX 	@DPTR,A
	INC  	DPTR
	CLR  	A
	MOVX 	@DPTR,A
	RET  	
L?0261:
	USING	0
L?0262:
	ADD  	A,#LOW (ram)
	MOV  	R1,A
	CLR  	A
	ADDC 	A,#HIGH (ram)
	MOV  	R2,A
	MOV  	R3,#01H
	RET  	
L?0263:
	USING	0
	MOV  	R7,A
	MOV  	R6,A
	MOV  	R5,A
	MOV  	R4,A
L?0264:
	LCALL	?C?LLDXDATA0
	CLR  	C
	LJMP 	?C?ULCMP
L?0265:
	USING	0
L?0266:
	MOV  	DPTR,#i?1971
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	RET  	
L?0269:
	USING	0
	MOV  	DPTR,#data_addr+02H
	MOV  	A,#06EH
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#01EH
	MOVX 	@DPTR,A
	MOV  	R5,#03H
	MOV  	R7,#02H
	RET  	
L?0270:
	USING	0
	LCALL	?C?LLDXDATA
	MOV  	DPTR,#temp_data?1972
	LCALL	?C?LSTXDATA
	CLR  	A
	MOV  	DPTR,#i?1971
	MOVX 	@DPTR,A
	RET  	
L?0271:
	USING	0
	MOVX 	A,@DPTR
	MOV  	R6,A
	ADD  	A,#LOW (temp_data?1972)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (temp_data?1972)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R5,A
	RET  	
L?0275:
	USING	0
	MOVX 	A,@DPTR
	ORL  	A,#02H
	MOVX 	@DPTR,A
	MOVX 	A,@DPTR
	ORL  	A,#04H
	MOVX 	@DPTR,A
	MOV  	DPTR,#P1IE_ADDR
	MOVX 	A,@DPTR
	RET  	
L?0276:
	USING	0
L?0277:
	MOV  	DPTR,#j?1266
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	RET  	
L?0278:
	USING	0
L?0279:
	LCALL	check_powertype
	MOV  	A,R7
	XRL  	A,#01H
	RET  	
L?0284:
	USING	0
	MOV  	R6,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	DPTR,#data_addr
	LJMP 	?C?LSTXDATA
L?0285:
	USING	0
	CLR  	A
L?0286:
	MOV  	DPTR,#time_jihuo
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
	RET  	
L?0288:
	USING	0
	CLR  	A
	MOV  	DPTR,#value?1268
	MOVX 	@DPTR,A
	MOV  	DPTR,#i?1265
	MOVX 	@DPTR,A
	RET  	
L?0289:
	USING	0
	MOVX 	A,@DPTR
	ADD  	A,#0CDH
	MOV  	R7,A
	MOV  	DPTR,#sum?1267
	MOVX 	A,@DPTR
	XRL  	A,R7
	RET  	
; END OF Com00D5

; void port_init(void)

	RSEG  ?PR?port_init?MAIN
port_init:
			; SOURCE LINE # 69
; {
			; SOURCE LINE # 70
; //   P1OE &= ~BIT0;
; //   P10FS = 0x01;   //select second pluss output
; 
;      P0OE = 0xff;
			; SOURCE LINE # 74
	MOV  	DPTR,#P0OE_ADDR
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;      P1OE = 0xff;
			; SOURCE LINE # 75
	MOV  	DPTR,#P1OE_ADDR
	MOVX 	@DPTR,A
; 	 P2OE = 0xff;
			; SOURCE LINE # 76
	MOV  	DPTR,#P2OE_ADDR
	MOVX 	@DPTR,A
; 	 P3OE = 0xff;
			; SOURCE LINE # 77
	MOV  	DPTR,#P3OE_ADDR
	MOVX 	@DPTR,A
; 	 P4OE = 0xff;
			; SOURCE LINE # 78
	MOV  	DPTR,#P4OE_ADDR
	MOVX 	@DPTR,A
; 	 P5OE = 0xff;
			; SOURCE LINE # 79
	MOV  	DPTR,#P5OE_ADDR
	MOVX 	@DPTR,A
; 	 P6OE = 0xff;
			; SOURCE LINE # 80
	MOV  	DPTR,#P6OE_ADDR
	MOVX 	@DPTR,A
; 
; 	 P0IE = 0;
			; SOURCE LINE # 82
	CLR  	A
	MOV  	DPTR,#P0IE_ADDR
	MOVX 	@DPTR,A
; 	 P1IE = 0;
			; SOURCE LINE # 83
	MOV  	DPTR,#P1IE_ADDR
	MOVX 	@DPTR,A
; 	 P2IE = 0;
			; SOURCE LINE # 84
	MOV  	DPTR,#P2IE_ADDR
	MOVX 	@DPTR,A
; 	 P3IE = 0;
			; SOURCE LINE # 85
	MOV  	DPTR,#P3IE_ADDR
	MOVX 	@DPTR,A
; 	 P4IE = 0;
			; SOURCE LINE # 86
	MOV  	DPTR,#P4IE_ADDR
	MOVX 	@DPTR,A
; 	 P5IE = 0;
			; SOURCE LINE # 87
	MOV  	DPTR,#P5IE_ADDR
	MOVX 	@DPTR,A
; 	 P6IE = 0;
			; SOURCE LINE # 88
	MOV  	DPTR,#P6IE_ADDR
	MOVX 	@DPTR,A
; }
			; SOURCE LINE # 89
	RET  	
; END OF port_init

; 
; /*---------------------------------------------------
; //========================================
; //函数功能:关除数字之外的外围电路
; //========================================
; void Tosleep(void)
; {
;   unsigned char xdata *point;
; 
;   PmPwd = 0xcd;
; 
;   point = 0x28a1;
;   *point = 0x01;    
;   point = 0x28a2;   //close DPSRAM
;   *point = 0x00;    //close measuring channel
; 
;    point = 0x28a1;
;   *point = 0x00;   
;   PmPwd = 0xcc;
; 
;   point = 0x28d2;
;   *point = 0x01;    //close measuring clock
;                   
;    point = 0x2814;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -