huhui800 发表于 2011-5-9 23:30:27

我有个朋友说STC12C5A 系列在AD方面很RZ

大家怎么看?我哪个朋友说延时太多了,以往的老产品都没这么多延时,

xiaobendan 发表于 2011-5-10 07:06:21

能用就好

JSXA 发表于 2011-5-10 08:06:38

能用就好

youthvision 发表于 2011-5-10 08:17:21

谁用谁知道。

lxl_lxl 发表于 2011-5-10 09:01:12

价位这么低的带AD的MCU不多啊! 将就吧...

ckvlhf 发表于 2011-5-10 09:47:43

就这么死脑筋么,延时太多不会用定时器?开了AD去干别的,到时见再来读取或进行后续操作?

oufuqiang 发表于 2011-5-10 10:06:06

不是可以中断吗

huhui800 发表于 2011-5-10 12:11:40

谢谢5楼朋友,我没试过,只是问问你们有没有人用过,有什么看法,

ckvlhf 发表于 2011-5-10 12:24:00

回复【7楼】huhui800
谢谢5楼朋友,我没试过,只是问问你们有没有人用过,有什么看法,
-----------------------------------------------------------------------

没有完美的东西,遇上问题灵活多变啦。

bigchn 发表于 2011-5-10 12:40:06

没有RZ的器件, 只有RZ的人

rigol_fan 发表于 2011-5-10 12:48:26

回复【9楼】bigchn
没有RZ的器件, 只有RZ的人
-----------------------------------------------------------------------

funv 发表于 2011-6-28 09:44:54

STC主要问题是难调试程序

peaker_hear 发表于 2011-7-8 23:24:46

是么,手里项目正打算用它来做ad采集,还好不是核心,做个电池电量的粗略检测

qqqq_1111 发表于 2011-7-29 14:32:09

STC主要问题是难调试程序
————————————————————————————————————
为啥?

785418837 发表于 2011-7-29 18:10:57

回复【13楼】qqqq_1111
-----------------------------------------------------------------------
没有仿真原型,一些代码只能一句一句撞。。都看不清实际运行的结果。

liao1989 发表于 2011-7-29 20:27:36

这款我用过,下面是这个代码可以参考一下:
/***********定义特殊功能寄存器*****************/
sfr         P1ASF =0x9D;      //P1口模拟控制寄存器
sfr         ADC_CONTR =0xBC;       //       ADC控制寄存器
sfr         ADC_RES =0xBD;       //          AD转换结果寄存器
sfr         ADC_REL =0xBE;
#define ADC_FLAG 0x10                  //AD转换完成后,该位置1
#define ADC_POWER 0x80                   //打开AD转换电源,
#define ADC_START 0x08                   //模数转换控制位 置1开始转换
       
/******定义a/d转化结果给V0******/
   int Vo;
/********A/D转换初始化**********/
void initADC()
{
P1ASF=0X01;//选择P1.0作为A/D输入通道
//ADC_RES= 0;//转换结果寄存器清零
ADC_CONTR=0x80;//开电源和设置A/D转换速度
delay(2);
}
uchar getADCresult()
{
ADC_CONTR=0x88;//选择A/D输入通道,开始A/D转换
_nop_();           //设置ADC_CONTR寄存器后需加4个CPU时钟周期的延时,才能保证值被写入ADC_CONTR寄存器
_nop_();
_nop_();
_nop_();
while(!ADC_CONTR&ADC_FLAG); //等待A/D转换是否完毕
ADC_CONTR&=~ADC_FLAG;       //当A/D转换完成后,ADC_FLAG=1,要由软件清0
// Vo=ADC_RES*5*10/256;       //        (为显示整数,这里将电压值扩大了十倍)
Vo=ADC_RES;                //八位的
return Vo;
}

geniuskim 发表于 2011-7-29 20:38:19

回复【楼主位】huhui800
-----------------------------------------------------------------------

什么叫延时太多了?

最快的方式spd1,0都是1,是90周期一次,慢吗?我不觉得慢。
如果说要nop,人家说了,ad是用内置晶振的,如要读写ad那个con,要nop一下,4个nop就够。
nop是1T的,4个才4周期,我也不觉得很多。

hellozzq 发表于 2011-7-29 20:45:27

回复【16楼】geniuskim
回复【楼主位】huhui800   
-----------------------------------------------------------------------
什么叫延时太多了?
最快的方式spd1,0都是1,是90周期一次,慢吗?我不觉得慢。
如果说要nop,人家说了,ad是用内置晶振的,如要读写ad那个con,要nop一下,4个nop就够。
nop是1t的,4个才4周期,我也不觉得很多。
-----------------------------------------------------------------------

同意16楼得说法,ad转换周期是可以设置的

longwu911 发表于 2011-7-30 10:09:17

是否有人试过A/D输入引脚为空时A/D转换结果是多少呢

xiaobendan 发表于 2011-8-2 08:07:35

我试过,是在变化的,不稳定,基本上是从比较大的值慢慢变小,也有不变的,试过很多块。是任意值,不确定的

qqqq_1111 发表于 2011-8-3 09:12:22

STC的AD参考电压就是单片机的电源电压,在用AD时最好用线性电压。

880705lpdhr 发表于 2011-8-3 17:39:08

有的用就很好了,便宜货将就将就吧。

liuchaochao 发表于 2011-8-3 19:18:45

我用过标称每秒25w次还可以吧

naruto_vic 发表于 2011-8-3 20:08:06

单片机内部的AD就将就了吧。虽然速度不快位数也不多,但是方便用啊~总比没有好吧

而且操作也还算简单,与单片机内部有很好的衔接。软件实现起来还是比外部硬件AD方便

287504461 发表于 2011-8-4 08:17:14

我现在也在用这个功能,很迷茫。。。。
页: [1]
查看完整版本: 我有个朋友说STC12C5A 系列在AD方面很RZ