欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

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

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年04月20日   【字體:

關于中穎4位機10位AD篇章中的數據處理,10位數據也即:"1111,1111,XX11"或"X111,1111,111X";

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

于是重新進入中穎網站,原來"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.raoushi.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

關閉窗口

相關文章