您的位置 首页 设计

关于中颖4位单片机AD转化中的一些经历

关于中颖4位机10位AD篇章中的数据处理,10位数据也即:1111,1111,XX11或X111,1111,111X;1,起初以为10位数据取8位,把低两位直接省掉就可以

关于中颖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.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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/255347.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部