这个STC12的ADC程序为什么不工作,哪里打错了?

这个STC12的ADC程序为什么不工作,哪里打错了?,第1张

这个STC12的ADC程序为什么不工作,A/D转换程序有问题。

模拟电压输入脚要设置成高阻输入模式。启动A/D转换语句必须写成0X88 keil 里不允许写二进制数。倒数第二行删掉,不能关闭A/D电路。

我看了一下STC15系列的手册,的确这里语焉不详,说是PIS=1时就可以用ADCIS[2:0]所选中的通道作为比较器同相输入端了,然而查遍手册并无这个位域的相关定义。

就我个人来说,认为这个ADCIS[2:0]有可能指的就是ADC_CONTR寄存器的CHS[2:0]位域。你可以做一下试验:

① 在ADC_POWER=0的情况下,切换CHS[2:0]的值,看看对应的ADC通道有没有作为比较器的同相输入端作用;(理论上我们并不需要ADC模块真的供电工作,只是借用一下其模块前端的多路开关而已)

② 如果不行,就将ADC_POWER=1,看看此时的情况如何。

如果都不行,那就只能咨询STC的技术服务了。

tc15w401as单片机ad做的一个根据电压调节led亮度,最简单的方法是 用 ad转换的结果 直接控制 LED灯(用 PWM 输出控制LED灯),tc15w401as 正好有四个 PWM 口 可以控制三个 LED灯 不同的亮度,用AD结果 +-*/&|^不同的算法产生不同的数值,灯的亮度就不同了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11127285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存