STC12C5A60S2 AD转换问题
请教各位大侠我现在想用STC12C5A60S2 的P1.2口做AD转换。现在遇到个问题。就是如图所示 10K的电位器 中间引脚直接接到P1.2口上,但是无论我怎么调电位器,P1.2对地的电压时钟保持1个固定值。不知道P1口里是否有上拉电阻。如果有调好的程序 也可以发我共享下!!谢谢了{:smile:} {:smile:} 这样一般都是端口设置问题,你确认已经设为高阻? LM1876 发表于 2015-5-26 14:40这样一般都是端口设置问题,你确认已经设为高阻?
嗯 确定了啊 P1M0 = 0x04; P1M1 = 0x04; 电位器调到0都还是一个电压???电压多少?
这种情况,基本就是设置的问题。 小李非刀 发表于 2015-5-26 16:10
电位器调到0都还是一个电压???电压多少?
这种情况,基本就是设置的问题。 ...
我现在把P1.2口设置为高阻 输出为0了。。但是调节电位器 数值还是不变化!! 不是上位机软件里有范例的么 确认一下,是否电位器接错了,确认电位器的中间的脚是否就是中间抽头 dlmaowf 发表于 2015-5-26 16:34
确认一下,是否电位器接错了,确认电位器的中间的脚是否就是中间抽头
电位器是正常的 我就是把电位的中间的引脚接到P1.2口子上,然后通过调节电位器的阻值,改变P1.2口上的电压 (0-3.3V),但是我直接用万用表测量P1.2对地的电压 就是不变化!!! STC12C5A60S2你只需要把P1ASF设置打开P12口的AD转化打开就行了,IO口状态不用设计
用的方形的3296精密可调电位器最边上的引脚才是抽头吧 大米饭 发表于 2015-5-26 16:46
STC12C5A60S2你只需要把P1ASF设置打开P12口的AD转化打开就行了,IO口状态不用设计
用的方形的3296精密可调 ...
是中间的吧!!那种蓝色的! 断开AD口,确定你电位器可以调压。
AD转换结束后,开始位变为零,要重新写1,才会开启 270597983 发表于 2015-5-26 16:48
是中间的吧!!那种蓝色的!
很容易判断,你把你AD接口的引脚分别接到GND和VCC上显示0和1024了就是单片机部分没有问题
蓝白可调的那种是中间的,方形的3296的不在中间,拿万用表测试一下就知道 大米饭 发表于 2015-5-26 17:37
很容易判断,你把你AD接口的引脚分别接到GND和VCC上显示0和1024了就是单片机部分没有问题
蓝白可调的那种 ...
断开AD,单独调节电位器的电压是可调的就是接到AD口上再调电位器的电压 就不行了! 小李非刀 发表于 2015-5-26 16:10
电位器调到0都还是一个电压???电压多少?
这种情况,基本就是设置的问题。 ...
问下STC12C5A60S2AD转换怎么减少误差! 111111111111111111111 270597983 发表于 2015-5-27 14:02
问下STC12C5A60S2AD转换怎么减少误差!
ADC减少误差的方法都是通用的,最常用的就是多点校准。 270597983 发表于 2015-5-26 15:43
嗯 确定了啊 P1M0 = 0x04; P1M1 = 0x04;
可以设置成为开漏模式试试,或者是换个端口!!然后实在不行的话,就是程序的问题喽!! 270597983 发表于 2015-5-27 08:41
断开AD,单独调节电位器的电压是可调的就是接到AD口上再调电位器的电压 就不行了! ...
如果不是端口设置问题,不是硬件问题,那就是你的AD处理程序有问题啦!检查看看是不是AD的处理程序有问题,或者换个端口试试呗!! P1ASF EQU 09DH ;P1口第2功能控制寄存器 这个才是主要的设置,将IO口设置为模拟口
还有ADC采集要选到对应IO口才行
读取ADC结果
----------------------------*/
BYTE GetADCResult(BYTE ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_(); //等待4个NOP
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
ADC_CONTR &= ~ADC_FLAG; //Close ADC
return ADC_RES; //返回ADC结果
}
/*----------------------------
270597983 发表于 2015-5-26 16:23
我现在把P1.2口设置为高阻 输出为0了。。但是调节电位器 数值还是不变化!! ...
输出为0了?
输出要设为1才有可能是高阻。 1)先确定可调电阻的好坏(用万用表量电阻,看哪个是抽头)
2)换一块板子试试,会不会是单片机坏了
3)AD的参考电压之类的是否正常或者设置对了
按道理只是AD测个电压,没什么很难的啊{:smile:}
页:
[1]