打算用pic16F1936 与18b20 通信。晶振是11.0592m的。用mplab sim仿真得到了延时函数。但是延时函数的时间烧进单片机时 与仿真时严重不同,差别很大,导致不能与1820通信。
晶振是11.0592的。/********延时us函数,延时时间计算:6+4(x-1)us******************/
void delay(unsigned int x)
{
unsigned int d;
d=x;
while(--d)
{;}
}
板子上的也是11。0592的。
在软件仿真时,delay(25000)应该延时:100ms左右,但是实际延时是1秒左右。
我觉得就算是软件仿真和硬件有差别也不至于这么大啊。我用proteus仿真的话,和软件差不多。不明白为什么 我的板子的延时 就不对了,延时增加了很多。
我现在手头有icd2.但是没有办法知道在板子上delay函数具体延时多少时间。
肯定大侠们帮我,可以有偿帮助。我真是气死了、。
while(1)
{T_SHI=0x3f; //十位
ShowTempHum(); //显示
PORTB=0;
delay(25000);
T_SHI=0xff; //十位
ShowTempHum(); //显示
PORTB=0XFF;
delay(25000); //软件仿真应该延时100ms,实际延时1秒左右。
} |