【正确答案】程序如下:
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 ;
【答案解析】