新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于中穎4位單片機AD轉換中的一些經驗

        關于中穎4位單片機AD轉換中的一些經驗

        作者: 時間:2016-11-29 來源:網絡 收藏
        關于中穎4位機10位AD篇章中的數據處理,10位數據也即:"1111,1111,XX11"或"X111,1111,111X";

        1,起初以為10位數據取8位,把低兩位直接省掉就可以了,準備開始寫程序了,偶然看到論壇里的一個人也在這里;

        本文引用地址:http://www.104case.com/article/201611/323364.htm

        于是重新進入中穎網站,原來"1111,1111,XX11"得合并為"1111,1111,11"然后再求和,取平均值;

        處理方法,最低位和0011相于,把中位用ADDM左移兩位空出低,并上低位,[0011或1100],得低位;再把中位右位兩位得[0011],等

        待高位,然后把高位左移兩位[1100]與中位相或,得中位,最后把高右移位兩位,即數據變為"11,1111,1111";

        想一下吧,是不是很簡單?!

        2,我根據上面的思路,自已寫的,把"X111,1111,111X"變為"1111,1111,11"

        首先把高位左移一位,判高位有無進位,把進位位[1000]或上最高位(這里可以省掉),

        然后把中位左移一位,判有無進位位,有進位位,把[0001]或上最高位的最低位,

        最后把低位左移一位,判有無進位位,有進位位,把[0001]或上中位的最低位,

        這樣處理后,數據變為"1111,1111,11"

        想一下吧,看看對不對?

        這部份代碼如下:http://www.51hei.com/f/zyad.rar

        adc_adc:
        lda adcdh
        sta temp
        addm temp
        sta adcdh_buff
        bnc adcdm_cal

        ldi temp,1000b
        orm adcdh_buff
        adcdm_cal:
        lda adcdm
        sta temp
        addm temp
        sta adcdm_buff
        bnc adcdl_cal

        ldi temp,0001b
        orm adcdh_buff
        adcdl_cal:
        lda adcdl
        sta temp
        add temp
        sta adcdl_buff
        bnc total_sum

        ldi temp,0001b
        orm adcdm_buff
        total_sum:
        lda adcdl_buff
        addm adc_0
        lda adcdm_buff
        adcm adc_1
        lda adcdh_buff
        adcm adc_2
        ldi temp,0
        adcm adc_3

        bnc adc_total_cnt_end

        lda adc_1
        sta adc_data1
        lda adc_2
        sta adc_data2
        lda adc_3
        sta adc_data3

        ldi temp,0
        sta adc_0
        sta adc_1
        sta adc_2
        sta adc_3

        jmp adc_change



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 嘉峪关市| 皮山县| 巍山| 昌都县| 正宁县| 治县。| 莫力| 全椒县| 胶州市| 刚察县| 民和| 怀仁县| 西城区| 沧源| 阿合奇县| 雷波县| 十堰市| 芦溪县| 普宁市| 万年县| 泽州县| 建始县| 日照市| 清河县| 会宁县| 茂名市| 临西县| 淮滨县| 沙田区| 固镇县| 饶平县| 阜康市| 社旗县| 开阳县| 定襄县| 隆化县| 广德县| 惠安县| 珲春市| 张家界市| 弥勒县|