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
上一篇:LED点阵模仿舞台灯光
下一篇:单片机程序设计总结
推荐阅读最新更新时间:2024-03-16 14:25
设计资源 培训 开发板 精华推荐
- 大联大品佳集团推出以复旦微和ams OSRAM产品为主的汽车氛围灯方案
- 为啥车载操作系统(Vehicle OS)越来越重要了呢?
- 车载传感器 — 一文详解激光雷达
- 汽车(超声波、毫米波、激光)雷达之间的简单区别
- 汽车电路相关知识大全
- Bourns 推出两款厚膜电阻系列,具备高功率耗散能力, 采用紧凑型 TO-220 和 DPAK 封装设计
- SABIC进一步深化与博鳌亚洲论坛的战略合作伙伴关系
- 使用 3.3V CAN 收发器在工业系统中实现可靠的数据传输
- 凌华智能推出AmITX Mini-ITX 主板,助力边缘人工智能和物联网创新
- 英飞凌携手马瑞利采用AURIX™ TC4x MCU系列推动区域控制单元创新