• 大小: 157KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: 单片机  温度  DS18B20  

资源简介

单片机+DS18B20温度显示,-55~127°显示

资源截图

代码片段和文件信息

#include
#define uchar unsigned char
#define uint unsigned int
sbit SMG1=P2^0;

sbit SMG2=P2^1;

sbit SMG3=P2^2;

sbit SMG4=P2^3;

sbit TMDAT=P3^2;

sbit dian=P0^7;
//定义各位数码管的控制端

void display(char x1char x2char x3char x4);
unsigned char code tab[14]={0xc00xf90xa40xb00x990x920x820xf80x800x900xc00xf90xa40xbf};       
uchar tmpbuf[5];
//预置数码管显示的数据,此处设为0123456789012.

void delay2(unsigned int z)

{
unsigned xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}//定义延时函数
////////////////////////////////////////////////////////
void Delay(uint useconds)
 {
while(useconds--);
}
uchar Reset_Bus(void)
{
uchar presence;
TMDAT = 0;  
Delay(85); 
TMDAT = 1; 
Delay(5); 
presence = TMDAT; 
Delay(40); 
return(presence); 
}

void Write_Bit(char bitval)
{
TMDAT = 0; 
if(bitval==1) TMDAT =1;
Delay(10); 
TMDAT = 1; 
}
void Write_Byte(char val)
 {
uchar i;
uchar temp;
for (i=0; i<8; i++) {
temp = val>>i; 
temp &= 0x01; 
Write_Bit(temp); 
}
Delay(10);
}


uchar Read_Bit(void) 
{
uchar i;
TMDAT = 0;       
TMDAT = 1; 
for (i=0; i<3; i++); 
return(TMDAT); 
}


uchar Read_Byte(void)
 {
uchar i;
uchar value = 0;
for (i=0;i<8;i++)
 {  
if(Read_Bit()) value|=0x01< Delay(6); 
}
return(value);
}


uint DS18B20_Tmp_Read(void)
 {
uint  TEMP;
uchar TEMP_LSBTEMP_MSB;
Reset_Bus();
Write_Byte(0xCC); 
Write_Byte(0x44); 
Delay(5);
Reset_Bus();
Write_Byte(0xCC); 
Write_Byte(0xBE); 
TEMP_LSB = Read_Byte(); 
TEMP_MSB = Read_Byte(); 
TEMP=TEMP_MSB;
TEMP=TEMP<<8;
TEMP=TEMP|TEMP_LSB;
return TEMP;
}


//////////////////////////////////////////////////////////////////

////主函数
void main()
{   uint tmp;
uchar itmphtmpl;
P2=0;
while(1)
{
tmp=DS18B20_Tmp_Read();

tmpl=(uchar)(tmp&0x0f);
tmph=(uchar)((tmp>>4)&0xff);
tmpl=tmpl*6.25;
if(tmph/100>1)
{
tmph=256-tmph;
tmpbuf[4]=tmpl%10;
tmpbuf[3]=tmpl/10;
tmpbuf[2]=tmph%10;
tmpbuf[1]=(tmph%100)/10;
tmpbuf[0]=tmph/100;
if(tmpbuf[0]==0)
{
tmpbuf[0]=10;
if(tmpbuf[1]==0)
tmpbuf[1]=10;

 tmpbuf[0]=13;
  } 
  }
else  
{
tmpbuf[4]=tmpl%10;
tmpbuf[3]=tmpl/10;
tmpbuf[2]=tmph%10;
tmpbuf[1]=(tmph%100)/10;
tmpbuf[0]=tmph/100;
if(tmpbuf[0]==0)
{
tmpbuf[0]=10;
if(tmpbuf[1]==0)
tmpbuf[1]=10;
}
   }
  //for(i=0;i<1000;i++)
   //display(1234);
        display(tmpbuf[0]tmpbuf[1]tmpbuf[2]tmpbuf[3]) ;
       
}
}
////////////显示部分
void display(char x1char x2char x3char x4)
{
    SMG4=0;

    SMG1=1;

    P0=~tab[x1];

    delay2(3);//控制第一位数码管的输出

    SMG1=0;

    SMG2=1;

    P0=~tab[x2];

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-12-06 23:52  DS18B20 数码管 (-55~127度)\
     目录           0  2013-12-07 12:24  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\
     文件       26827  2010-03-10 15:07  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18B20截图.jpg
     目录           0  2013-12-07 12:23  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\
     文件        9876  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\1.LST
     文件        9627  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\1.OBJ
     文件        3296  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\1.c
     文件        9022  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20
     文件          23  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.lnp
     文件       10710  2013-12-07 03:38  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.plg
     文件      148386  2013-12-07 02:41  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvgui.1
     文件      143093  2013-12-07 02:31  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvgui_1.bak
     文件        6867  2013-12-07 02:41  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvopt
     文件       13265  2013-12-07 02:41  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20.uvproj
     文件        5910  2013-12-07 02:31  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20_uvopt.bak
     文件       13249  2013-12-07 01:13  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18B20_uvproj.bak
     文件         900  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.JPR
     文件       12640  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.M51
     文件        3080  2013-12-07 03:36  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.hex
     文件          57  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20.jsb
     文件        7362  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.asm
     文件        7673  2010-03-10 13:38  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.bak
     文件       20066  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.lst
     文件        2852  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\18b20asm.obj
     文件          19  2013-12-07 02:41  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\ExtDll.iex
     文件          85  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\jyobj.lin
     文件          78  2010-03-10 15:02  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\18b20程序\jyprj.cog
     文件      108909  2013-12-07 12:24  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20+数码管(-55~127度).DSN
     文件        1515  2013-12-07 12:24  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20+数码管(-55~127度).PWI
     文件        1054  2010-03-10 15:05  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20温度传感器实验.PWI
     文件        1003  2010-03-10 15:07  DS18B20 数码管 (-55~127度)\DS18B20+数码管 (-55~127度)\DS18B20温度数码管.PWI
............此处省略4个文件信息

评论

共有 条评论