SLH89F5162调节延时函数是比较麻烦的事情。对于18B20对时序要求比较严格。所以延时必须要误差不大才行
今晚用keil软件。89c52单片机。晶振频率调为144M 相当于SLH89F5162的12M 进行时间仿真
测得数据编写了两个延时函数,误差应该不大。毕竟18B20能正常工作了
/*****************12M晶振1T的延时函数*****************/
#include
#define uchar unsigned char
#define uint unsigned int
/**********************************************************
函数名称:Time_delayus(uint uiTime)
函数功能:us延时函数
入口参数:uiTime
出口参数:无
备 注:
**********************************************************/
void Time_delayus(uint uiTime)
{
uint i;
for(i=uiTime-1;i>0;i--)
{
_nop_();
}
}
/**********************************************************
函数名称:delay_ms
函数功能:1ms延时函数
入口参数:uiTime
出口参数:无
备 注:
**********************************************************/
void Time_delayms(uint uiTime)
{
uchar j;
uint i;
i=uiTime*12;
while(i--)
{
for(j=0;j<123;j++);
}
}
给大家做个参考吧
SLH89F5162调节延时函数是比较麻烦的事情。对于18B20对时序要求比较严格。所以延时必须要误差不大才行
今晚用keil软件。89c52单片机。晶振频率调为144M 相当于SLH89F5162的12M 进行时间仿真
测得数据编写了两个延时函数,误差应该不大。毕竟18B20能正常工作了
/*****************12M晶振1T的延时函数*****************/
#include
#define uchar unsigned char
#define uint unsigned int
/**********************************************************
函数名称:Time_delayus(uint uiTime)
函数功能:us延时函数
入口参数:uiTime
出口参数:无
备 注:
**********************************************************/
void Time_delayus(uint uiTime)
{
uint i;
for(i=uiTime-1;i>0;i--)
{
_nop_();
}
}
/**********************************************************
函数名称:delay_ms
函数功能:1ms延时函数
入口参数:uiTime
出口参数:无
备 注:
**********************************************************/
void Time_delayms(uint uiTime)
{
uchar j;
uint i;
i=uiTime*12;
while(i--)
{
for(j=0;j<123;j++);
}
}
给大家做个参考吧
举报