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

📄 main.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
字号:
;************************************************************
;文档类型: 原代码 
;项目编号: 
;文档编号:  
;修订版本: v1.0
;生成日期: 2005.6.6
;文档作者: li
;审    核: 
;************************************************************
;相关文档: 主程序,规约
;文档编号      说明 
;************************************************************
;修订说明:LCD,红外,电表常数为1600,复费率带继电器
;修订版本
;修订说明: 
;修订版本: 
;************************************************************
$INCLUDE	(IO.INC)
$INCLUDE	(PL3200.INC)
$INCLUDE	(CONST.INC)
$INCLUDE	(24ADDR.INC)
$INCLUDE	(RAML128.INC)
$INCLUDE	(RAMH128.INC)
$INCLUDE	(RAM.INC)

EXTRN  	CODE ( INIT_SYS )
EXTRN  	CODE ( INIT_SYS_REF )
EXTRN  	CODE ( T_PULSE)
EXTRN  	CODE ( DO_WITH_PLS)
EXTRN  	CODE ( HW_DO_WITH)
EXTRN  	CODE ( HW_RCV)
EXTRN  	CODE ( DO_WITH_RELY)
EXTRN  	CODE ( RESET_SYS)
EXTRN	CODE ( RD_MTR_RELY)
EXTRN	CODE ( MINUTE_CHK)
EXTRN  	CODE ( DO_WITH_PWR)
EXTRN   CODE ( FL_DATE_CHK)
EXTRN  	CODE ( DO_WITH_LCD_DIS)
EXTRN   CODE ( LCD_DIS_TEST)
EXTRN   CODE (DIS3105_LCD)
;EXTRN   CODE (DO_SJ)
EXTRN   CODE (V_I_PROG)
EXTRN   CODE (MINUTE_DS)
EXTRN   CODE  (CLR_WRBUF)
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                ORG     0000H
                NOP
                ;MOV     WDI,#0A1H
                ;CPL     P1.0
 		SJMP     INIT_MAIN

		;ORG	0003H		;INT0 
                ;RETI

		ORG	000BH		;T0中断,判断脉冲
		CALL	T_PULSE
		RETI
		JMP	RESET_SYS

                ORG     0013H		;INT1
                JMP	RESET_SYS

        	ORG  	001BH           ;T1	COM0的波特率发生器
		JMP	RESET_SYS

                ORG     0023H		;COM0;红外
	        CALL	HW_RCV
	        RETI
		JMP	RESET_SYS

		ORG     002BH		;T2	COM1的波特率发生器
		RETI
		JMP	RESET_SYS
		
		ORG	0033H		;COM1;RS485
		RETI
		JMP	RESET_SYS
		
		ORG	003BH		;INT2
		RETI
		JMP	RESET_SYS
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^		
                ORG    	0050h
INIT_MAIN:							
		MOV     P3,#11110011B
		MOV     SP,#SP_ADDR
		MOV     WDI,#0A1H
		CALL    LCD_DIS_TEST
		
        	MOV	R7,#0 		;确保上电
WAITA:		NOP
		NOP
		MOV	R6,#0
WAITB:		NOP
		NOP
		MOV     WDI,#0A1H
		MOV	A,STATUS
		JB	ACC.0,INIT_MAIN	
		DJNZ	R6,WAITB
		NOP
		NOP	
		DJNZ	R7,WAITA
		
;判定热复位		
		MOV	A,STATUS
		JBC	ACC.4,CLR_RAM		;PU
;热复位
		MOV	R0,#00h
		MOV	R2,#0CFH  
CLR_RAM1:
                MOV WDI,#0A1H	
                MOV	@R0,#0
		INC	R0
		DJNZ	R2,CLR_RAM1		
		JMP	HOT_RST
		
CLR_RAM:	NOP
		MOV    	R0,#0              ;清内部RAM区 256byte
               	MOV    	A,#0
CLR_256B:      	
                MOV WDI,#0A1H
                NOP
		NOP
		MOV    	@R0,A
               	INC     R0
               	CJNE    R0,#00h,CLR_256B
               	SETB    POWER_BIT       ;冷上电标志

;上电处理
HOT_RST:	NOP
		NOP
		NOP
		CALL    INIT_SYS		
		MOV	STATUS,#11000000B
	        MOV     R0,#TMR_DISP0   ;控制自检时间长度0.5s
		MOV     @R0,#200
		
		CALL	RD_MTR_RELY
		SETB    DO_RELY      
		MOV     R0,#TMR_RLY   ;2004.6.16 100ms后操作继电器
		MOV     @R0,#200
		CALL    FL_DATE_CHK   ;主循环前不读取脉冲,产脉冲后处理
	
		MOV     R0,#TMR_SECOND	
		MOV     @R0,#200
	;	JNB     POWER_BIT,MAIN
	;	CALL    DO_SJ          ;上电停电处理
	;	CLR     POWER_BIT  	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                
MAIN:    
                NOP
                NOP                                       				
		CALL     CLR_WRBUF
				
		SETB    SOFT_DOG		
        	CALL   	INIT_SYS_REF	
		
		CALL	DO_WITH_PWR      ;掉电保存处理
		CALL    MINUTE_CHK
		CALL    MINUTE_DS         ;定时一分钟子程序

		MOV	R0,#HAVE_PLS
		MOV	A,@R0
		CJNE	A,#'P',REG0
		CALL	DO_WITH_PLS
REG0:
;	        MOV	R0,#HAVE_W_PLS
;		MOV	A,@R0
;		CJNE	A,#'W',REG0_1
;		CALL	DO_WITH_W_PLS 
	        
REG0_1: 
                CALL    V_I_PROG               ; 电压电流采样子程序
                                                                              
REG1:		;RS485通讯处理
		MOV	A,HW_RS           ;2004.6.13
		CJNE	A,#'H',REG3
		ANL     IE,#10101111B     ;2004.6.29  禁止串口接收中断
  		CALL	HW_DO_WITH
		ORL     IE,#01010000B         ;允许串口接收中断
		MOV	HW_RS,#0           ;2004.6.13
		JMP	MAIN
REG3:	        
               	;继电器,显示处理
		CALL	DO_WITH_RELY
                JNB 	DIS_5MS_BIT,MAIN   ;2004.6.27
                CLR     DIS_5MS_BIT
                CALL	DO_WITH_LCD_DIS                
                CALL    DIS3105_LCD
                NOP
                NOP
                NOP
		LJMP	MAIN
;***********************************************

               END

⌨️ 快捷键说明

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