每次AD转换后都进行下面AD处理(8为AD,共256次),想了很久还是不明白---为何第⑨的结果(ad_dath)就是256次AD平均的数字?
① siz n_ad //n_ad增1,结果为零,则GOTO voltage_chkok----------这个就是所谓的256次累加----------
② jmp voltage_chk2 //若结果不为0,则GOTO voltage_chk2
③ jmp voltage_chkok
④ voltage_chk2:
⑤ clr c //清进位C
⑥ mov a,adrh //ad采样结果(8位)送A
⑦ adcm a,ad_datl //采样结果累加,最后放ad_dath(高8位),ad_datl(低8位)---(在此过程中,注意进位标志)
⑧ clr acc
⑨ adcm a,ad_dath
ret
voltage_chkok:
mov a,ad_dath //取高8位的AD结果,即ad_dath,送ad_dat,作为AD的最终结果
mov ad_dat,a
clr ad_datl //采样结束,清ad_datl,ad_dath.为下一次采样做初始化准备
clr ad_dath
ret |