⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20.c

📁 Ds18b20.c 带Proteus,方便大家学习!!!
💻 C
字号:
#include<reg51.h>
#include<uint.h>
#include<intrins.h>
#include<led0_9.h>

sbit dq=P2^0;
uchar ok=0,k,temp[3]={0x00,0x00,0x00};

void time1();
void write(uchar dat);
uchar read();
void delay_us(uint tt1);
void display(uchar aa,uchar bb);

void main()
{
 TMOD=0X10;
 TH1=0XFC;
 TL1=0X18;
 EA=1;
 ET1=1;
 TR1=1;
   
   dq=1;			  //初始化
  _nop_();
  dq=0;
  delay_us(52);
  dq=1;
  delay_us(5);
  delay_us(25);

     dq=1;		   //跳过读序列号
  _nop_();		   
  dq=0;
  delay_us(52);
  dq=1;
  delay_us(5);
  delay_us(25);
   write(0xcc);	  //启动
   write(0x44);

 while(1);
}


void time1() interrupt 3
{
 dq=1;			 //读
  _nop_();
  dq=0;
  delay_us(52);
  dq=1;
  delay_us(5);
  delay_us(25); 
  write(0xcc);
  write(0xbe);
  
  temp[0]=read();
  temp[1]=read();
  display(temp[0],temp[1]);

  dq=1;			  //再初始化
  _nop_();
  dq=0;
  delay_us(52);
  dq=1;
  delay_us(5);
  delay_us(25);

   write(0xcc);	//再启动
   write(0x44);
}

void write(uchar dat)
{
 uchar i=0;
 for(i=0;i<8;i++)
 {
  dq=0;
  dq=dat&0x01;
  delay_us(5);
  dq=1;
  dat=dat>>1; 
 }
}

uchar read()
{
 uchar i=0,date=0;
 for(i=0;i<8;i++)
 {
  dq=0;
  date=date>>1;
  dq=1;
  if(dq==1)date=date|0x80;
   delay_us(5);
 }
 return date;
}

void delay_us(uint tt1)
{
 while(tt1--);
}

void display(uchar aa,uchar bb)
{
 uchar a=0,b=0,c=0,d=0;
 ulong num;
 num=bb;
 num=num<<8;
 num=num|aa;
 num=num>>4;
 if(bb<0x80)
 {
 num=num*10;
 a=num%10;
 num=(num-a)/10;
 b=num%10;
 num=(num-b)/10;
 c=num%10;
 num=(num-c)/10;
 d=num%10;
  P3=0x00;
 P1=ledcc[a];
 P3=0x01;
 P1=(ledcc[b]|0x80);
 P3=0x02;
 P1=ledcc[c];
 P3=0x03;
 P1=ledcc[d];
 }else
 {

 num=~(num-1);
 num=num&0x000fff;
 num=num*10;
 a=num%10;
 num=(num-a)/10;
 b=num%10;
 num=(num-b)/10;
 c=num%10;
 if(c)
 {
 P3=0x00;
 P1=ledcc[a];
 P3=0x01;
 P1=(ledcc[b]|0x80);
 P3=0x02;
 P1=ledcc[c];
 P3=0x03;
 P1=0x40;
 }else
 {
   P3=0x00;
 P1=ledcc[a];
 P3=0x01;
 P1=(ledcc[b]|0x80);
 P3=0x02;
 P1=0x40;
 P3=0x03;
 P1=0x00;
 }
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -