/*
关键我如何实现这51单片机的IO作为对象传入进函数。
现在 第一个传感器IO 是DS18B20_DQ
后面还有四个传感器 DS18B20_DQ2 DS18B20_DQ3 DS18B20_DQ4 DS18B20_DQ5。
如何使用同一份DS18B20_Write_Byte函数。而不用复制5份。
*/
#include "stc12ca60s2.h"
sbit DS18B20_DQ = P2^0;
void DS18B20_Write_Byte( unsigned char dat)
{
unsigned char i;
for( i = 0 ; i < 8 ; i++ )
{
DS18B20_DQ = 0;
_nop_(); //延时>1us
_nop_();
DS18B20_DQ = dat&0x01; //先写低位
dat >>= 1;
DS18B20_Delay(70); //延时60~120us
DS18B20_DQ = 1; //释放总线
_nop_(); //延时>1us
_nop_();
}
}
/*
关键我如何实现这51单片机的IO作为对象传入进函数。
现在 第一个传感器IO 是DS18B20_DQ
后面还有四个传感器 DS18B20_DQ2 DS18B20_DQ3 DS18B20_DQ4 DS18B20_DQ5。
如何使用同一份DS18B20_Write_Byte函数。而不用复制5份。
*/
#include "stc12ca60s2.h"
sbit DS18B20_DQ = P2^0;
void DS18B20_Write_Byte( unsigned char dat)
{
unsigned char i;
for( i = 0 ; i < 8 ; i++ )
{
DS18B20_DQ = 0;
_nop_(); //延时>1us
_nop_();
DS18B20_DQ = dat&0x01; //先写低位
dat >>= 1;
DS18B20_Delay(70); //延时60~120us
DS18B20_DQ = 1; //释放总线
_nop_(); //延时>1us
_nop_();
}
}
举报