登录
首页 单片机论坛
回帖 发帖
正文

主题:关于10位AD TLC1549芯片转换的问题,为十么分辨率是0.04递增?

点击:1363 回复:9

请教一下高手,我用stc单品机读TLC1549的数据,读出来都正常,量程显示从0-10.24都正常,就是分辨率按0.04递增或者递减,不知道为什么?本来应该是0.01递增或者递减的,换成好几种模式编程都解决不了,请高手指点一下。谢谢啦!
18-08-10 10:34
  补充说明一下,用的基准电压是2.6v,输入电压是0-2.6v,显示0-10.24都正常,精度也可以,本来10位ad分辨率应该是0.01才对,可是我怎么调软件就都是0.04的分辨率,不知道怎么回事?请高手指点!谢谢啦!
18-08-10 15:17
先搞个精密电源输入看看;
18-08-11 07:57
你要检查程序,是否少读了2位。否则不可能
18-08-11 09:43
基准   AD采集最大     对应关系
2.6------1024---------0.002539063
2.6------ 255---------0.010196078
最后修改:2018/8/11 10:20:21
18-08-11 10:19
一共读了10位,没有错,而且读出来的数据和输入精度都对,就是跳变是0.04v,而不是0.01v。程序也换了好几个了,结果都一样。
18-08-11 12:17
你好!您说的这个是什么意思,能不能具体一点。谢谢!我基准有改成5v的,结果也是0.04的跳变。针搞不明白了
18-08-11 12:18
这个是我读取ad的程序,请高手指点,问题出在哪里了,谢谢!
AD_RS0:
CLR EA
SETB AD_CS
       CLR AD_CLK
       CLR AD_CS
       NOP
       NOP
       MOV R1,#9
ADCLNIT_LP:
       SETB AD_CLK
       nop
       CLR AD_CLK
       DJNZ R1,ADCLNIT_LP
    ;   RET
GETVOLTAGE:
       SETB AD_CLK
       nop
       CLR AD_CLK
       SETB AD_CS
       MOV R1,#10
GETVOLTAGE1:
       DJNZ R1,GETVOLTAGE1
       CLR AD_CS
       SETB AD_DAT
       CLR A
       NOP
       NOP
       MOV C,AD_DAT
       RLC A
       SETB AD_CLK
       nop
       CLR AD_CLK
       MOV C,AD_DAT
       RLC A
       MOV AD_DATH,A
       CLR A
       MOV R1,#8
GETVOLTAGE2:
       SETB AD_CLK
       nop
       CLR AD_CLK
       MOV C,AD_DAT
       RLC A
       DJNZ R1,GETVOLTAGE2
       MOV AD_DATL,A
       SETB AD_CS
SETB EA
       RET
18-08-11 12:22
看得不是很明白,问题是不是:
设定的分辨率是0.01的,结果遇上得到的分辨率不对了。
这里有几个方面,你用什么证明你输入的信号正常?
比如你用电位器,你的电位器是线性的么?你有没有用万用表测测你电位器出来的电压?不过估计那个万用表要高档点才行。
接着是信号到AD端口之间的处理?是怎样处理的,会不会发生变化?
至于10位的AD这么低的位数,很少会发生IC的质量问题而出这样的经果的,但不排除。
18-08-16 21:38

引用 智将自动感应 在 2018/8/10 15:17:25 发言【内容省略】

用的基准电压是2.6v,输入电压是0-2.6v,
为什么会显示0-10.24?
18-08-16 22:17

工控新闻

更多新闻资讯