芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密

飞芯科技提供芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密逆向服务

软件开发C8051F410驱动DS18B20源码

软件开发//DS18B20驱动程序
软件开发//温度范围:-55-125摄氏度
软件开发//C8051F410,外部晶振(22.1184MHz),DS18B20上拉4.7K,1脚GND,2脚DQ,3脚VCC。
//功能:调用ds18b20_get_tem()程序,读取温度整数,小数值及符号位
//格式:温度整数为10进制1至125,温度小数为十进制0至9,符号为位状态0或1。
//变量:温度整数dswendu,温度小数dsxiao,符号DSWDFH。
#include "intrins.h" //_nop_();延时函数用  
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P1^5;
//#define DQHIN (P1MDOUT&=~0x20;P0 |= 0x01;)  
//#define DQ RC1
//#define DQH TRISC1=1;//DS18B20定义为高电平并设置为输入端
//#define DQL TRISC1=0;//DS18B20定义为低电平并设置为输出端
uchar  dswendu,dsxiao;
bit DSWDFH;
void delay_18b20(uint x) //18B20延时程序
{while(x--);}
void ds18b20_reset()//18B20复位程序
{//C8051F410,22.1184外部晶振
uchar st=1;//状态位置1
DQ=1;//总线高
while(st)
     {
      DQ=0;
      delay_18b20(600); //需要延时480us-960us
      DQ=1;
      delay_18b20(50); //需要延时15us-60us
      if(DQ==1)//等待时间约为240us-420us
       st=1;
      else
       st=0;        
     }
DQ=1;
delay_18b20(300);//100需要延时60us-240us

}
void ds18b20_write_byte(uchar dat)//18B20写一个字节
{
    unsigned char i=0;
for (i=8; i>0; i--)
    {
       DQ = 0;
       DQ = dat&0x01;
       delay_18b20(100);
       DQ = 1;
       dat>>=1;
    }
}
uchar ds18b20_read_byte()//18B20读一个字节
{
    unsigned char i=0;
   unsigned char dat = 0;
  for (i=8;i>0;i--)
    {
      DQ = 0;     // 给脉冲信号
      dat>>=1;
      DQ = 1;     // 给脉冲信号
      if(DQ)
      dat|=0x80;
      delay_18b20(80);
    }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.taihedz.cn
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信