求双字节十六进制无符号数据块的平均值.txt

来自「实用子程序.rar本子程序库对《单片机应用程序设计技术》一书附录中的子程序库作了」· 文本 代码 · 共 31 行

TXT
31
字号
;标号:DDM2功能:求双字节十六进制无符号数据块的平均值

;入口条件:数据块的首址在DPTR中,双字节数据总个数在R7中。   注意:数值和不大于FFFFFFH 结果再调用求均值子程序
;出口信息:平均值在R4、R5中。
;影响资源:PSW、A、R2~R6 堆栈需求: 4字节

  DDM2: MOV A,R7 ;保存数据个数
	MOV R2,A ;初始化数据指针
	PUSH DPL ;保持首址
	PUSH DPH
	CLR A ;初始化累加和
	MOV R3,A
	MOV R4,A
	MOV R5,A
  DM20: MOVX A,@DPTR ;读取一个数据的高字节
	MOV B,A
	INC DPTR
	MOVX A,@DPTR ;读取一个数据的低字节
	INC DPTR
	ADD A,R5 ;累加到累加和中
	MOV R5,A
	MOV A,B
	ADDC A,R4
	MOV R4,A
	JNC DM21
	INC R3
  DM21: DJNZ R2,DM20 ;累加完全部数据
	POP DPH ;恢复首址
	POP DPL
	LJMP DV31 ;求R3R4R5/R7-→R4R5,得到平均值

⌨️ 快捷键说明

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