芯片资料
ad精度
一个字都不说这没人帮得了你。。。
我说个大概吧:
用ad芯片和其他芯片一样
片选给上去。输入数据的时钟和mcu的输出连起来,输入数据端和数据总线连起来。同步时钟一般用个特定频率的晶振,如果频率低就用mcu的定时器做分频。
要让ad工作一般需要首先往ad的设置寄存器里写设置数据,定义ad使用哪个通道,增益是多少,频率是多少等。
然后向设置好的ad芯片发送实际需要读取哪个通道。
最后再写回读函数,将dataout脚上的数据传回mcu进行之后的 *** 作。
例程的话百度文库里有很多。
STC12C56xxAD芯片用pwm调速程序的代码如下:
sbit k1=P3^4
sbit k2=P3^5
void delay(unsigned int cnt)
{
unsigned char i
for(cnt>0cnt--)
for(i=0i<250i++)
}
void main()
{
CCON=0//PCA初始化
CL=0//PCA的16位计数器低八位
CH=0//PCA的16位计数器高八位
CMOD=0x00//选择 系统时钟/12 为计数脉冲,则PWM的频率f=sysclk/256/12
CCAP0H=0x80// 占空比控制
CCAP0L=0x80
PCA_PWM0=0x00//控制占空比的第九位为0
CCAPM0=0x42//允许P13作为PWM输出
CR=1//启动PCA计数器
while(1)
{
if(k1==0)
{
delay(200)
while(k1==0)
CCAP0H+=5//占空比调节
CCAP0L+=10
}
if(k2==0)
{
delay(200)
while(k2==0)
CCAP0H-=5//占空比调节
CCAP0L-=5
}
}
}
有些AD转换器,带有参考电压的输入端。正确输入参考电压,该AD转换器就可以把负~正的电压,转换成二进制数字。
有些AD转换器,只能转换固定范围内的电压,那么就必须在前端电路中想办法。
加个运算放大器,就可以把电压的“放大”到所需要的电压范围,再AD转换即可。
---------
看来,你的AD转换器,能够正常进行转换,只是你的程序功能不足,不能正常处理“负”的重量。
那就修改程序呗,这还不是很容易理解的事。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)