大家好,想问个单片机求平均值问题,如下程序
ADD8 BCF STATUS,RP0
MOVF TEMP0,0 ;AD中暂存的值送W
ADDWF TEMP7,1 ; AD+TEMP7
BTFSC STATUS,0 ;看是否有进位
CALL ADDONE ;有
GOTO GO_ON ;没有
ADDONE:
MOVLW 01H
ADDWF TEMP1,1 ;有进位,TEMP1加一
RETURN
GO_ON:
DECFSZ COUNT0,1 ;看是否采样8次
GOTO ADC ;没有到8次
MOVLW 02H ;到8次,准备求平均值
MOVWF COUNT3
GO1:
BCF STATUS,0
RRF TEMP1,1 ;求8次的平均值
RRF TEMP7,1
DECFSZ COUNT3,1 ;
GOTO GO1
GOTO DISP4 ;
就是想采样8次AD值先累加,然后除以4得到平均值
但是最后得出来的结果值不对,不知道那里有问题??
发现单次采样的值是对的. |