270597983 发表于 2015-5-26 14:33:26

STC12C5A60S2 AD转换问题

请教各位大侠我现在想用STC12C5A60S2 的P1.2口做AD转换。现在遇到个问题。就是如图所示 10K的电位器 中间引脚直接接到P1.2口上,但是无论我怎么调电位器,P1.2对地的电压时钟保持1个固定值。不知道P1口里是否有上拉电阻。如果有调好的程序 也可以发我共享下!!谢谢了{:smile:} {:smile:}

LM1876 发表于 2015-5-26 14:40:17

这样一般都是端口设置问题,你确认已经设为高阻?

270597983 发表于 2015-5-26 15:43:03

LM1876 发表于 2015-5-26 14:40
这样一般都是端口设置问题,你确认已经设为高阻?

嗯 确定了啊   P1M0 = 0x04; P1M1 = 0x04;

小李非刀 发表于 2015-5-26 16:10:24

电位器调到0都还是一个电压???电压多少?
这种情况,基本就是设置的问题。

270597983 发表于 2015-5-26 16:23:39

小李非刀 发表于 2015-5-26 16:10
电位器调到0都还是一个电压???电压多少?
这种情况,基本就是设置的问题。 ...

我现在把P1.2口设置为高阻   输出为0了。。但是调节电位器 数值还是不变化!!

12tangyang12 发表于 2015-5-26 16:32:46

不是上位机软件里有范例的么

dlmaowf 发表于 2015-5-26 16:34:41

确认一下,是否电位器接错了,确认电位器的中间的脚是否就是中间抽头

270597983 发表于 2015-5-26 16:37:59

dlmaowf 发表于 2015-5-26 16:34
确认一下,是否电位器接错了,确认电位器的中间的脚是否就是中间抽头

电位器是正常的 我就是把电位的中间的引脚接到P1.2口子上,然后通过调节电位器的阻值,改变P1.2口上的电压 (0-3.3V),但是我直接用万用表测量P1.2对地的电压 就是不变化!!!

大米饭 发表于 2015-5-26 16:46:52

STC12C5A60S2你只需要把P1ASF设置打开P12口的AD转化打开就行了,IO口状态不用设计
用的方形的3296精密可调电位器最边上的引脚才是抽头吧

270597983 发表于 2015-5-26 16:48:56

大米饭 发表于 2015-5-26 16:46
STC12C5A60S2你只需要把P1ASF设置打开P12口的AD转化打开就行了,IO口状态不用设计
用的方形的3296精密可调 ...

是中间的吧!!那种蓝色的!

eaglelpx 发表于 2015-5-26 17:06:51

断开AD口,确定你电位器可以调压。
AD转换结束后,开始位变为零,要重新写1,才会开启

大米饭 发表于 2015-5-26 17:37:41

270597983 发表于 2015-5-26 16:48
是中间的吧!!那种蓝色的!

很容易判断,你把你AD接口的引脚分别接到GND和VCC上显示0和1024了就是单片机部分没有问题
蓝白可调的那种是中间的,方形的3296的不在中间,拿万用表测试一下就知道

270597983 发表于 2015-5-27 08:41:02

大米饭 发表于 2015-5-26 17:37
很容易判断,你把你AD接口的引脚分别接到GND和VCC上显示0和1024了就是单片机部分没有问题
蓝白可调的那种 ...

断开AD,单独调节电位器的电压是可调的就是接到AD口上再调电位器的电压 就不行了!

270597983 发表于 2015-5-27 14:02:52

小李非刀 发表于 2015-5-26 16:10
电位器调到0都还是一个电压???电压多少?
这种情况,基本就是设置的问题。 ...

问下STC12C5A60S2AD转换怎么减少误差!

zky26 发表于 2015-5-27 14:05:35

111111111111111111111

小李非刀 发表于 2015-5-27 15:30:19

270597983 发表于 2015-5-27 14:02
问下STC12C5A60S2AD转换怎么减少误差!

ADC减少误差的方法都是通用的,最常用的就是多点校准。

知识阅览者 发表于 2015-5-28 08:32:39

270597983 发表于 2015-5-26 15:43
嗯 确定了啊   P1M0 = 0x04; P1M1 = 0x04;

可以设置成为开漏模式试试,或者是换个端口!!然后实在不行的话,就是程序的问题喽!!

知识阅览者 发表于 2015-5-28 08:33:47

270597983 发表于 2015-5-27 08:41
断开AD,单独调节电位器的电压是可调的就是接到AD口上再调电位器的电压 就不行了! ...

如果不是端口设置问题,不是硬件问题,那就是你的AD处理程序有问题啦!检查看看是不是AD的处理程序有问题,或者换个端口试试呗!!

flash3g 发表于 2015-6-7 02:04:28

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结果
}

/*----------------------------

ninghuchong 发表于 2015-6-7 21:55:44

270597983 发表于 2015-5-26 16:23
我现在把P1.2口设置为高阻   输出为0了。。但是调节电位器 数值还是不变化!! ...

输出为0了?


输出要设为1才有可能是高阻。

hermitpeng 发表于 2015-6-9 15:20:38

1)先确定可调电阻的好坏(用万用表量电阻,看哪个是抽头)
2)换一块板子试试,会不会是单片机坏了
3)AD的参考电压之类的是否正常或者设置对了
按道理只是AD测个电压,没什么很难的啊{:smile:}
页: [1]
查看完整版本: STC12C5A60S2 AD转换问题