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

📄 rd24_do_chk.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
字号:
;************************************************************
;文档类型: 原代码 
;项目编号: 
;文档编号: 
;修订版本: V2.0
;生成日期: 2004.6.12
;文档作者: 张志忠
;审    核: 
;************************************************************
;相关文档: 读写24操作,24校验方式
;文档编号      说明 
;************************************************************
;修订版本: 
;修订版本: 
;************************************************************
$INCLUDE	(RAML128.INC)
$INCLUDE	(RAMH128.INC)
$INCLUDE	(24ADDR.INC)
$INCLUDE	(IO.INC)

CODE_REG	SEGMENT	CODE
RSEG		CODE_REG
PUBLIC          RD24_DO_CHK
PUBLIC          WR24_DO_CHK
;****************************************************
EXTRN   CODE(RD_I2)    
;****************************************************
;读24数据后,校验判断
;入口参数:RD_N的字节数,出口时未被破坏
;输出数据:RD_BUF0,1,2...
; CY=1,校验正确,CY=0,校验未通过
;****************************************************
RD24_DO_CHK:	
                SETB    WP           ;;增加对24写保护的冗余  05.9.8LIHENG
		CALL	RD_I2        

		MOV	B,RD_N
		DEC     B             ;2004.6.12,校验前几个字节
		MOV	A,#0
		MOV	R0,#RD_BUF0	
LOOP_CHKD:		
		ADD	A,@R0
		INC	R0
		DJNZ	B,LOOP_CHKD
		ADD	A,#'X'
		MOV	B,@R0
		CJNE	A,B,RETURN_C0
		SETB	C
		RET

RETURN_C0:
		MOV	B,RD_N
		MOV	R0,#RD_BUF0	
LOOP_CLRD:		
		MOV	@R0,#0
		INC	R0
		DJNZ	B,LOOP_CLRD
		CLR	C
		RET	
		
;****************************************************
;对写24的数据进行校验运算
;入口参数:WR_N的字节数
;输出数据:WD_BUF0,1,2...,校验运算完成
;****************************************************
WR24_DO_CHK:	
		MOV	B,WR_N
		DEC     B             ;2004.6.12,校验前几个字节
		MOV	A,#0
		MOV	R0,#WR_BUF0	
LOOP_CHKWR:		
		ADD	A,@R0
		INC	R0
		DJNZ	B,LOOP_CHKWR
		ADD	A,#'X'
		MOV	@R0,A
		RET

		END	

⌨️ 快捷键说明

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