标题:
单片机18b20写字节函数,求分析
[打印本页]
作者:
TTCSvip
时间:
2019-8-24 12:13
标题:
单片机18b20写字节函数,求分析
18b20写字节函数
两种程序,为什么程序A能正常执行获取到正常温度值,而B不可以?替换B程序后单片机获取不到18b20的值!有什么区别吗?
A
for(i=0;i<8;i++)
{
P37=0;
_nop_();
P37=dat&0x01;
延迟;
P37=1;
dat=dat>>1;
}
延迟;
B
for(i=0;i<8;i++)
{
P37=0;
_nop_();
P37=(dat>>i)&0x01;
延迟;
P37=1;
}
延迟;
作者:
devcang
时间:
2019-8-24 22:36
什么类型的单片机,把延时校准了
作者:
csmyldl
时间:
2019-8-25 00:15
程序A是把dat中的8位数据依次传到P37引脚上,dat数据传送的顺序是D0位至D7位,P37=0 P37=1产生传送脉冲,这样符合一线制传送原理,而程序B中P37=(dat>>i)&0x01; dat先右移1位再进行数据传送,这样dat中的数据传送顺序是D1-D7,最后传送1位是0,与需要传送的数据不相符,如果是传送采集温度命令,造成命令均是错误的,所以读不到温度值.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1