标题:
DS1302和DS18B20的冲突问题?急用 谢谢
[打印本页]
作者:
我是我啦啦啦
时间:
2016-11-16 21:41
标题:
DS1302和DS18B20的冲突问题?急用 谢谢
大家好,今天遇到了一个问题,希望大家帮忙解决一下,急用!!
当没有将温度传感器接入51单片机的时候,12864显示时间正常,当接入温度传感器的时候,12864上面显示时间就会变快,比如说两秒连着显示:当到第一秒的时候,显示了1之后就马上又显示2了。。
但是测试多次,只要把温度传感器去掉,12864显示时间就正常了,只要加上去,时间显示就快了。。。
谢谢
作者:
yzwzfyz
时间:
2016-11-17 01:24
这是你的程序资源分配不合理造成的,程序做A就顾不了B.
作者:
zl2168
时间:
2016-11-17 09:23
两个子程序配合有问题。
作者:
ning
时间:
2016-11-20 09:58
你可以把代码和原理图发给我,我可以帮你看看!
作者:
zeng152
时间:
2018-8-28 20:59
以前我遇到和你相似的问题,可能是ds1302和ds18b20使能冲突了,将ds1302程序里读取数据的那个函数里的使能位注释掉就没问题了,至少我是解决了
作者:
FENG12346
时间:
2020-12-18 12:55
我也遇到过,将ds1302的读函数改成这样就可以正常同时显示了
unsigned char DS1302_ReadData(unsigned char addr){
unsigned char i,reval=0,temp;
CE = 0;
SCLK = 0;
CE = 1;
// 写寄存器地址
for(i=0;i<8;i++){
SCLK = 0;
SDIO = addr & 0x01;
addr >>= 1;
SCLK = 1; // 上升沿读入数据
}
// 读数据
for(i=0;i<8;i++){
SCLK = 1;
SCLK = 0;
temp = SDIO;
reval = (temp<<7) | (reval>>1); // 下降沿读出数据
}
CE = 0;
SCLK = 1;
SDIO = 0;
SDIO = 1;
CE = 1;
reval = reval/16*10+(reval%16);
return reval;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1