单片机自带AD操作容易,有范例程序直接可以用,自带AD现在随便都10位和12位精度一般应用够用了,你自己用AD芯片程序和时序搞不对,就无法AD转换。 |
glinfei 发表于 2021-7-15 11:12 放弃了,杠了几天没办法了,就用自带的AD吧,谢谢啦 |
Capta1nY 发表于 2021-7-15 10:46 我那天就想问,你手册上给的最大读取时间好短啊,比如T4 只有3ns,都不够if用的,能否先把ad_do赋值个中间变量,再去判断?另外那些我看延时也用不着了。 |
问一下各位大佬,有没有可能是51的时钟频率不够,我查到的用这个AD的都是FPGA和32的 |
glinfei 发表于 2021-7-13 16:09 你说的有道理,我改成了
结果还是没效果 |
看你发的手册应该在CLK下沿读DO,但你程序写的是上沿读啊。 就这段 ad_clk = 1; dat <<= 1;Delay1us(); if(ad_do) dat |= 0x0001; Delay1us(); ad_clk = 0; Delay1us(); |
本帖最后由 Capta1nY 于 2021-7-13 14:20 编辑 5191 发表于 2021-7-13 11:36 是,但是目前电路已经设计好了,就想着能用就用吧,之前用过0832没啥问题,换了个结果调不出来了,您有什么建议吗 |
stc不是有自带ad吗 |
以上你做到了吗? |
仔细读手册: 1、数据是串行工作的,每位数据的切换是需要时间的,切换位数(CLK)不要超过允许的时间。 2、数据切换后,要等数据稳定了再读取,要防止读到数据的边沿上。 3、AD转换需要时间,当下达开始转换之后,要确保转换已结束了,这时再读数据。 |