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

📄 init_sys.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
字号:
;************************************************************
;文档类型: 原代码 
;项目编号: 
;文档编号: 
;修订版本: v1.0
;生成日期: 2004.12.2
;文档作者: li
;审    核: 
;************************************************************
;相关文档: 系统初始化
;文档编号      说明 
;************************************************************
;修订版本:
;修订版本: 
;************************************************************
$INCLUDE	(RAML128.INC)
$INCLUDE	(RAMH128.INC)
$INCLUDE	(IO.INC)
$INCLUDE	(PL3200.INC)
$INCLUDE	(CONST.INC)
CODE_REG	SEGMENT	CODE
RSEG		CODE_REG
PUBLIC          INIT_SYS
PUBLIC          INIT_SYS_REF
;************************************************************
INIT_SYS:
                MOV WDI,#0A1H
        	NOP
		NOP
		SETB    HW_TX
		SETB    HW_RX
		CLR    	PSW.3
               	CLR    	PSW.4
		MOV	CKCON,#00111000B	;看门狗周期832MS,外部RAM时钟周期4.
        	MOV     P0,#0FFH
        	mov     P1,#0ffh
        	mov     P2,#0ffh
        	mov     P3,#11110011B
;SFR 初始化    
        	MOV	IP,#00000010B		;t0  is high
		MOV	EIP,#0
		;*****************************************************
		MOV	PCON,#01000000B         ;串口0和串口1波特率均加倍
		MOV	TMOD,#21H       	;T0工作于方式1,t1工作于方式2(HW)
		MOV	TMOD1,#02H		;T2工作于方式2(RS485)
		MOV	TH2,#BAUD1200_H       	;设置BTL.1200BPS,RS485
		MOV	TL2,#BAUD1200_L
		MOV	TH1,#BAUD1200_H       	;设置BTL.1200BPS,HW
		MOV	TL1,#BAUD1200_L
		MOV     TH0,#BASETIM0_H		;设置定时器,5ms
                MOV     TL0,#BASETIM0_L
        	CLR     ALU_MOD                 ;设置成8位运算模式
        
        	MOV	IR_CNT1,#1FH	;红外通讯使用38K频率
        	MOV     EXT_ADR,#0FEH	
		MOV     EXT_DAT,#6	
        	
        	MOV     PMU_ADR,#0FFH
                MOV     PMU_DAT,#0FFH                        
                MOV     PMU_ADR,#0FCH;电能计量控制
                CLR     PMU_DAT.7    ;关闭电能计量
                NOP
                SETB    PMU_DAT.7    ;打开电能计量
                CLR     PMU_DAT.0
;                MOV     PMU_ADR,#0FDH;电能计量增益
;                MOV     PMU_DAT,#IAGC_CFG
;                MOV     PMU_ADR,#13H;有功门限H
;                MOV     PMU_DAT,#GATE_H
;                MOV     PMU_ADR,#12H;有功门限L
;                MOV     PMU_DAT,#GATE_L
                               
;                MOV     PMU_ADR,#17H;无功门限H
;                MOV     PMU_DAT,#GATE_H
;                MOV     PMU_ADR,#16H;无功门限L
;                MOV     PMU_DAT,#GATE_L
                MOV     PMU_ADR,#0FFH
                MOV     PMU_DAT,#0AAH

                MOV	TCON,#01010001B    ;#01010000B; SETB   IT0
                MOV   	SCON,#0D0h		;HW
                
        	MOV	TCON1,#00010001B        ;启动485定时器T2,沿触发       	
                MOV   	SCON1,#50h		;10位异步收发模式,接收使能
                
                MOV	IE,#11010010B		;               
        	MOV	EIE,#00000000B          ;不允许INT2中断

        	CLR     ES1                     ;不允许扩展串口中断
                CLR	ZJ_TX_BIT
		RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;系统运行重复初始化
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INIT_SYS_REF: 
                MOV WDI,#0A1H  
		SETB    HW_TX
		SETB    HW_RX	
		CLR     PSW.3
               	CLR    	PSW.4
               	SETB    WP
               	MOV     EXT_ADR,#0FFH    ;增加对时钟部分写保护的冗余
               	MOV     EXT_DAT,#0H      ;05.9.8 liheng
               	               	
               	MOV	IP,#00000010B		;t0  is high
		MOV	EIP,#0
		MOV	PCON,#11000000B
		MOV	TMOD,#21H       	;t1工作于方式2,T0工作于方式1
		MOV	TMOD1,#02H		;T2工作于方式2

		MOV	TH1,#BAUD1200_H       	;设置BTL.1200BPS
		MOV     A,SCON
		ANL     A,#11010000B	        ;模式3,8位数据位,HW
		XRL     A,#11010000B	        ;模式3,8位数据位,HW
		JZ      REF_0
		ORL	SCON,#11010000B	        ;模式3,8位数据位,HW
REF_0:
	      MOV     PMU_ADR,#0FDH            ;增益
               MOV     A,PMU_DAT                ;对计量部分的设置进行冗余处理
               CJNE    A,#IAGC_CFG,R_SET_PMU
;               MOV     PMU_ADR,#12H
;               MOV     A,PMU_DAT
;               CJNE    A,#GATE_L,R_SET_PMU
;               MOV     PMU_ADR,#13H
;               MOV     A,PMU_DAT
;               CJNE    A,#GATE_H,R_SET_PMU
;              MOV     PMU_ADR,#16H
;               MOV     A,PMU_DAT
;               CJNE    A,#GATE_L,R_SET_PMU
;               MOV     PMU_ADR,#17H
;               MOV     A,PMU_DAT
;               CJNE    A,#GATE_H,R_SET_PMU              
               MOV     PMU_ADR,#0FCH          ;使能计量
               MOV     A,PMU_DAT
               ANL     A,#81H
               CJNE    A,#80H,R_SET_PMU
               JMP     PMU_SET_OK
R_SET_PMU:     MOV      PMU_ADR,#0FFH
               MOV      PMU_DAT,#0FFH
               MOV      PMU_ADR,#0FCH
               SETB     PMU_DAT.7
               CLR      PMU_DAT.0
               
;               MOV      PMU_ADR,#12H
;               MOV      PMU_DAT,#GATE_L
;               MOV      PMU_ADR,#13H
;               MOV      PMU_DAT,#GATE_H
              
;               MOV      PMU_ADR,#16H
;               MOV      PMU_DAT,#GATE_L
;               MOV      PMU_ADR,#17H
;               MOV      PMU_DAT,#GATE_H              
               MOV      PMU_ADR,#0FDH
               MOV      PMU_DAT,#IAGC_CFG
               MOV      PMU_ADR,#0FFH
               MOV      PMU_DAT,#0AAH
PMU_SET_OK:
	
REF_1:		
               	MOV	IR_CNT1,#1FH	;红外通讯使用38K频率
        	MOV     EXT_ADR,#0FEH	
		MOV     EXT_DAT,#6             
                
                MOV     A,IE
		ANL     A,#10000010B 
		XRL     A,#10000010B 
		JZ      REF_2
        	ORL	IE,#10000010B
REF_2:        	
        	JB	TR0,REF1
        	SETB	TR0

REF1:		JB	IT2,REF2
        	SETB	IT2
REF2:		JB	TR1,REF3
        	SETB	TR1
REF3:		
                MOV	EIE,#00000000B          ;不允许INT2中断
                NOP
                NOP
		RET
		
		
		END

⌨️ 快捷键说明

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