• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: 其他
  • 标签:

资源简介

有想用ds18b20编程序的么?这是一个正确的程序,不仅普通的51单片机学习者可以用;c8051f020系列的单片机也能用。好好学习一下吧。

资源截图

代码片段和文件信息

#include
#define uchar unsigned char 
#define uint unsigned int
#define com 0
#define dat 1
sbit DQ=P1^3;
void port_init();
void os_init();
void timer0_init();
void DelayUs2x(unsigned char t);
bit Init_DS18B20(void);
void init_all();
void ASIC_disp(uchar adduchar nuchar *h);
void wr_lcd (uchar dat_commuchar content);
void wr_lcd (uchar dat_commuchar content);
void Init_lcd(void);
void WriteOneChar(unsigned char date);
void DelayMs(unsigned char t);
unsigned int ReadTemperature(void);
unsigned char ReadOneChar(void);
uchar xdata tab[5]={0x30};
uint n=0;
uchar flag;
void port_init()
{
  XBR2=0X40;
  P1MDOUT=0XFF;
  P74OUT=0XFF;
}
void os_init()
{
  int i;
  OSCXCN=0X67;
  for(i=0;i<256;i++);
  while(!(OSCXCN&0X80));
  OSCICN=0X88;
}
void timer0_init()
{
  TH0=0X06;//定时250us
  TL0=0X06;
  TMOD=0X02;//定时器0,方式2
  ET0=1;
  EA=1;
  TR0=1;
}
void init_all()
{
  port_init();
  os_init();
  timer0_init();
  Init_DS18B20();
  Init_lcd();
}

void DelayUs2x(unsigned char t)
{   
 while(--t);
}

void DelayMs(unsigned char t)
{
     
 while(t--)
 {
     //大致延时1mS
     DelayUs2x(245);
 DelayUs2x(245);
 }
}
bit Init_DS18B20(void)
{
 bit dat1=0;
 DQ = 1;    //DQ复位
 DelayUs2x(5);   //稍做延时
 DQ = 0;         //单片机将DQ拉低
 DelayUs2x(200); //精确延时 大于 480us 小于960us
 DelayUs2x(200);
 DQ = 1;        //拉高总线
 DelayUs2x(50); //15~60us 后 接收60-240us的存在脉冲
 dat1=DQ;        //如果x=0则初始化成功 x=1则初始化失败
 DelayUs2x(25); //稍作延时返回
 return dat1;
}

unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char date = 0;
for (i=8;i>0;i--)
 {
  DQ = 0; // 给脉冲信号
  date>>=1;
  DQ = 1; // 给脉冲信号
  if(DQ)
   date|=0x80;
  DelayUs2x(25);
 }
 return(date);
}

void WriteOneChar(unsigned char date)
{
 unsigned char i=0;
 for (i=8; i>0; i--)
 {
  DQ = 0;
  DQ = dat&0x01;
  DelayUs2x(25);

  DQ = 1;
  date>>=1;
 }
DelayUs2x(25);
}

unsigned int ReadTemperature(void)
{
unsigned

评论

共有 条评论

相关资源