已知某单片机系统每隔1s测一次温度 8位温度A/D值存在特殊功能寄存器SBUF中 试求其1分内的平均值 存40H。
已知某单片机系统每隔1s测一次温度,8位温度A/D值存在特殊功能寄存器SBUF中,试求其1分内的平均值,存40H。
热搜:8个字节含二进制位几个
-
程序如下:
TAVR:MOV 40H,#0 ;商累加寄存器清0
MOV 41H,#0 ;余数累加寄存器清0
MOV R2,#60 ;置平均次数
TLOP:MOV A,SBUF ;读8位温度A/D值
MOV B,#60 ;置除数(平均次数)
DIV AB ;数据除以60
ADD A,40H ;商累加
MOV 40H,A ;回存
MOV A,B ;
ADD A,41H ;余数累加
MOV 41H,A ;回存
CLR C ;
SUBB A,#60 ;
JC GON ;余数累加<60,余数累加寄存器不变
INC 40H ;余数累加≥60,商累加寄存器+1
MOV 41H,A ;减去60后差→余数累加寄存器
GON:LCALL DY1s ;延时1s
DJNZ R2,TLOP ;判60次累加完否?未完继续
MOV A,41H ;60次累加完毕,余数累加四舍五入
CJNE A,#30,NEXT ;
NEXT:JC GRET ;C=1,<30,舍
INC 40H ;C=0,≥30,入
GRET:RET ;
