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

📄 main.c

📁 DS18B20单个数据线温度芯片驱动大全
💻 C
字号:
//=============================================
//创建者:蔡星                QQ:364444296
//2006年10月26日
//项目:18b20数码管显示
//=============================================
#include<reg52.h>
#include<intrins.h>
#include<18b20.h>
#define uchar  unsigned char
#define uint   unsigned int
uchar temp_int,temp_piont;
code char led[]={0x11,0xD7,0x32,0x92,
 				 0xD4,0x98,0x18,0xD3,0x10,0x90, 
 				 0x50,0x1C,0x39,0x16,0x38,0x78};//数码管显示字符

sbit sda_164=P0^2;
sbit scl_164=P0^3;

shift(int k)//把一个数字 或一个字的八个位送给一个数码管显示
{
 int lednumber,i;
 lednumber=led[k];
 scl_164=0;
 for(i=0;i<8;i++)
 {
  //scl=0;
  if(lednumber&0x80) sda_164=1;
  else sda_164=0;
  scl_164=1;
  lednumber=lednumber<<1;
  scl_164=0;
 }
}

shift1(int k)//把一个数字 或一个字的八个位送给一个数码管显示
{
 int lednumber,i;
 lednumber=led[k];
 lednumber&=0xef;
 scl_164=0;
 for(i=0;i<8;i++)
 {
  //scl=0;
  if(lednumber&0x80) sda_164=1;
  else sda_164=0;
  scl_164=1;
  lednumber=lednumber<<1;
  scl_164=0;
 }
}

void delay_caixing(int i)
{
 while(--i);
}

void display(uchar num)
{
 shift(temp_piont%10);
 shift(temp_piont/10);
 shift1(temp_int%10);
 shift(temp_int/10);
 shift(0xff);
 shift(0xff);
 shift(0xff);
 shift(0xff);
}
main()
{
 uchar number;
 while(1)
 {
  number=readtemp();//读温度
  display(number);
  delay_caixing(1000000);
 }
}

⌨️ 快捷键说明

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