采集到的12位AD值怎么处理?

2019-07-15 07:52发布

AD值的高8位在ADRH里,低4位在ADRL里,取过高8位的数据,8次累加取了平均值,但是精度不够,不知道要怎么处理12位的AD值。求帮助,要汇编的


补充内容 (2018-11-5 09:29):
是这样的,我要怎么把这个12位的数据进行累加,然后得出一个平均值
;                mov                        a,ADRL
;                mov                        ADRL_BUFF,A
;                mov                        a,ADRH
;                mov                        ADRH_BUFF,A

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
人中狼
2019-07-15 21:35
本帖最后由 人中狼 于 2018-11-5 10:35 编辑

measure_times是ADC转换次数
temp_0,temp_1,temp_2是多次ADC转换值的和,temp_0为高字节


                                 mov       r2,#measure_times
measure_ad_1:

                                lcall          adc_convert              ;AD转换
                               mov                a,ADRL
                               mov                ADRL_BUFF,A
                                mov                        a,ADRH
                                mov                        ADRH_BUFF,A

                                mov        a,temp_2
                                add        a,ADRL_BUFF

                               mov        temp_2,a
                                mov        a,temp_1
                                addc        a,ADRH_BUFF

                               mov        temp_1,a
                                 mov        a,temp_0
                                 addc        a,#00h
                                 mov        temp_0,a
                                 djnz        r2,measure_ad_1



一周热门 更多>