基于stc12c5a60s2的平衡摆设计中加速度传感器经过AD转换后在1602上显示不正确。

我用的是MMA7361三轴加速度传感器,只采集X轴值,在1602上确是一直不停的显示不同的数值知道显示为0,这个问题困扰我好多天了,刚开始学这个芯片不知道哪里出了错误,请... 我用的是MMA7361三轴加速度传感器,只采集X轴值,在1602上确是一直不停的显示不同的数值知道显示为0,这个问题困扰我好多天了,刚开始学这个芯片不知道哪里出了错误,请求高人指点!!!!!!
下面是我的ad初始化及采集程序,请帮我检查一下(单独检查1602显示是正确的),为便于您的查看注释我也一一注释在了每行后面。
void InitADC()
{
P1ASF=0x01; //选择P1.0通道作为AD转换模拟通道
ADC_RES=0; //清除前次结果
ADC_RESL=0;
AUXR1=0X00; //选择转换后的高八位存储在RES里低两位存储在RESL里
ADC_CONTR =0xE0; //开启电源并设置转化速度为90个周期
_nop_(); //延时
}
uint get_ad0()
{
ADC_CONTR=0xe8; // 开始转换并选择0通道作为转换通道
_nop_(); _nop_(); _nop_(); _nop_();//4个时钟周期的延时
while((ADC_CONTR&0x10)==0); //等待转换完毕
ADC_CONTR&=0xe7; //清标志位并关闭转换
ad_result=(ADC_RES<<=2|(ADC_RESL&0x03));
val=(uint)(ad_result*5.0/1024);
return (val);
}
void T1_() interrupt 3 //5ms中断
{
TH1=(65536-4608)/256;
TH1=(65536-4608)%256;
get_d0();
lcdplay();
delay(2);//2ms延时
}
展开
 我来答
传感器商城_
2013-08-15 · TA获得超过283个赞
知道答主
回答量:155
采纳率:100%
帮助的人:83.3万
展开全部
从你程序中没看到出问题,而且也不完整。你可以参考一些成熟的实例。
这里提几点建议:
1,传感器输出引脚是否正常,可以用示波器,万用表测电压;如果正常再考虑器件连接正常?单片机寄存器正常?读写正常?再考虑是否程序正常。
2,一般先排除硬件问题再排除软件问题。

希望对你 有用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式