求C语言高手帮忙解决一下程序问题,51单片机 5

这个程序已经弄了我们好几天了,弄不出来,求大神们帮忙看看哪里出问题了。用的是stc89c52rs的最小系统,AD转换也是版上面自带的芯片精度为8位,传感器用的是夏普的GP... 这个程序已经弄了我们好几天了,弄不出来,求大神们帮忙看看哪里出问题了。用的是stc89c52rs的最小系统,AD转换也是版上面自带的芯片精度为8位,传感器用的是夏普的GP2Y1010AU0F 程序在第一条评论
void Start(void) { Sda=1; _nop_();Scl=1; _nop_(); Sda=0;_nop_();Scl=0; }void Stop(void) { Sda=0;_nop_();Scl=1;_nop_();Sda=1;_nop_();Scl=0; }void Ack(void) { Sda=0;_nop_();Scl=1;_nop_();Scl=0;_nop_();}
void NoAck(void)
{Sda=1;_nop_();Scl=1;_nop_();Scl=0;
_nop_();
}
展开
 我来答
valkan
2015-01-08 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:86
采纳率:62%
帮助的人:25.6万
展开全部
第一个循环内Data = temp;直接把Data给赋值没了,如传输的数是0x7F,程序传数据是高位开始,传0了后,程序把Data = temp,就相当后面的7位给清0了。所以在没完成你要的数据的时候,要小心原始数据。
把循环内 :temp = Data《 1; Data = temp; 改成 temp = temp 《 1;试试看,个人见解
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式