#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//ÏÂÃæÊǵãÕóÊý¾Ý£¬Ò»¸öºº×ÖÓÐ32×Ö½ÚÊý¾Ý×é³É(ÒõÂëÄæÏòÁÐÐÐʽ)
unsigned char code fa[]=
{
0x00,0x00,0x18,0x16,0x10,0xD0,0xB8,0x97,0x90,0x90,0x90,0x92,0x94,0x10,0x00,0x00,
0x00,0x20,0x10,0x8C,0x83,0x80,0x41,0x46,0x28,0x10,0x28,0x44,0x43,0x80,0x80,0x00,//"·¢",0//
};
unsigned char code dong[]=
{
0x40,0x44,0xC4,0x44,0x44,0x44,0x40,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,
0x10,0x3C,0x13,0x10,0x14,0xB8,0x40,0x30,0x0E,0x01,0x40,0x80,0x40,0x3F,0x00,0x00,//"¶¯",1//
};
unsigned char code ji[]=
{
0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,
0x04,0x03,0x00,0xFF,0x00,0x83,0x60,0x1F,0x00,0x00,0x00,0x3F,0x40,0x40,0x78,0x00,//"»ú",2//
};
unsigned char code shui[]=
{
0x00,0x20,0x20,0x20,0xA0,0x60,0x00,0xFF,0x60,0x80,0x40,0x20,0x18,0x00,0x00,0x00,
0x20,0x10,0x08,0x06,0x01,0x40,0x80,0x7F,0x00,0x01,0x02,0x04,0x08,0x10,0x10,0x00,//"Ë®",3//
};
unsigned char code wen[]=
{
0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,//"ÎÂ",4//
};
unsigned char code jian[]=
{
0x10,0x10,0xD0,0xFF,0x90,0x50,0x20,0x50,0x4C,0x43,0x4C,0x50,0x20,0x40,0x40,0x00,
0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x58,0x41,0x4E,0x60,0x58,0x47,0x40,0x40,0x00,//"¼ì",5//
};
unsigned char code ce[]=
{
0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00,
0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00,//"²â",6//
};
unsigned char code dang[]=
{
0x00,0x40,0x42,0x44,0x58,0x40,0x40,0x7F,0x40,0x40,0x50,0x48,0xC6,0x00,0x00,0x00,
0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,//"µ±",7//
};
unsigned char code qian[]=
{
0x08,0x08,0xE8,0x29,0x2E,0x28,0xE8,0x08,0x08,0xC8,0x0C,0x0B,0xE8,0x08,0x08,0x00,
0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,//"Ç°",8//
};
unsigned char code du[]=
{
0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,
0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,//"¶È",9//
};
unsigned char code ssd[]=
{
0x06,0x09,0x09,0xE6,0xF8,0x0C,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x1E,0x00,0x00,
0x00,0x00,0x00,0x07,0x1F,0x30,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x10,0x00,0x00,//"¡æ",10//
};
unsigned char code mao[]= //
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"£º",0*/
};
/********************************************************************************************
*ÄÚÈÝ: 0 1 2 3 4 5 6 7 8 9 ¿Õ°× - T :
*´óС: 8X16×Ö·û
*********************************************************************************************/
uchar code letter_logo[16][16]={
/*-- ÎÄ×Ö: 0 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
/*-- ÎÄ×Ö: 1 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*-- ÎÄ×Ö: 2 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
/*-- ÎÄ×Ö: 3 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
/*-- ÎÄ×Ö: 4 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
/*-- ÎÄ×Ö: 5 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
/*-- ÎÄ×Ö: 6 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
/*-- ÎÄ×Ö: 7 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
/*-- ÎÄ×Ö: 8 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
/*-- ÎÄ×Ö: 9 --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
/*-- ÎÄ×Ö: : --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,
/*-- ÎÄ×Ö: - --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
/*-- ÎÄ×Ö: T --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
/*-- ÎÄ×Ö: . --*/
/*-- ËÎÌå12; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
/*-- ÎÄ×Ö: ( --*/
0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00,
/*-- ÎÄ×Ö: ) --*/
0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00,
};
sbit CS1=P2^0;//Ƭѡ1,µÍµçƽÓÐЧ£¬CS1=0¿ª×óÆÁÄ»£¬CS1=1¹Ø×óÆÁÄ»
sbit CS2=P2^1;//Ƭѡ2£¬µÍµçƽÓÐЧ£¬CS2=0¿ªÓÒÆÁÄ»£¬CS2=1¹ØÓÒÆÁÄ»
sbit RS=P2^2;//Êý¾Ý£¬Ö¸ÁîÑ¡ÔñÐźţ¬RS=1ΪÊý¾Ý²Ù×÷£¬RS=0ΪдָÁî»ò¶Á״̬£¨Ò»°ãΪ¶Áæ±êÖ¾£©
sbit RW=P2^3;//¶ÁдѡÔñÐźţ¬RW=1Ϊ¶Áѡͨ£¬RW=0Ϊдѡͨ
sbit EN=P2^4;//¶ÁдʹÄÜÐźÅ
void busy()//æ¼ì²âº¯Êý
{
P0=0X00; //Õâ¾ä²»ÄÜÉÙ
RS=0;
RW=1;
EN=1;
while(P0&0X80);//P0&0X80½á¹ûΪÕæÔòÒ»Ö±Ö´ÐпղÙ×÷£¬Ò²¾ÍÊÇ˵P0&0X80Ϊ0Ôò½áÊøÑ»·
EN=0;
}
void wcmd(uchar cmd)
{
busy(); //ÿ´ÎдÈëÖ¸Áî»òÊý¾Ý֮ǰ¶¼½øÐÐæ¼ì²â
RS=0;
RW=0;
P0=cmd;
EN=1;_nop_();_nop_();//ÔÚENϽµÑØдÈëÊý¾ÝºÍÖ¸Áî
EN=0;
}
void wdata(uchar dat) //дÃüÁîºÍдÊý¾ÝÖ»ÔÚRS=0»òRS=1Éϲ»Í¬£¬ÆäÓ඼Ïàͬ
{
busy();
RS=1;
RW=0;
P0=dat;
EN=1;_nop_();_nop_();//ÔÚENϽµÑØдÈëÊý¾ÝºÍÖ¸Áî
EN=0;
}
/********************************************************************************************
* º¯ÊýÃû³Æ£ºLcd_Set_X(uchar x)
* ¹¦ ÄÜ£ºLCDÉèÖÃX×ø±ê
* Èë¿Ú²ÎÊý£ºx
* ³ö¿Ú²ÎÊý£ºÎÞ
*********************************************************************************************/
void Lcd_Set_X(uchar x)
{
P0=0xb8|x;
RS=0;
RW=0;
EN=1;
EN=0;
}
/********************************************************************************************
* º¯ÊýÃû³Æ£ºLcd_Set_Y(uchar y)
* ¹¦ ÄÜ£ºLCDÉèÖÃY×ø±ê
* Èë¿Ú²ÎÊý£ºy
* ³ö¿Ú²ÎÊý£ºÎÞ
*********************************************************************************************/
void Lcd_Set_Y(uchar y)
{
P0=0x40|y;
RS=0;
RW=0;
EN=1;
EN=0;
}
/********************************************************************************************
* º¯ÊýÃû³Æ£ºLcd_Set_X_Y(uchar x, uchar y )
* ¹¦ ÄÜ£ºLCDÉèÖÃx y×ø±ê
* Èë¿Ú²ÎÊý£ºx y
* ³ö¿Ú²ÎÊý£ºÎÞ
*********************************************************************************************/
void Lcd_Set_X_Y(uchar x, uchar y)
{
if( y<64 )
{ CS1=1; CS2=0; Lcd_Set_Y( y ); }
else
{ CS1=0; CS2=1; Lcd_Set_Y( y-64 ); }
Lcd_Set_X( x);
}
/****************************************************************************
*Ãû³Æ:Lcd_Character_16X8( bit bit_flag, uchar x, uchar y, uchar code *point )
*¹¦ÄÜ:ÏÔʾ16X8×Ö·û(×Öĸ)
*Èë¿Ú²ÎÊý:
*³ö¿Ú²ÎÊý:
*˵Ã÷:bit_flag = 1 Õý³£ÏÔʾ bit_flag = 0 ºÚ°×·´ÏàÏÔʾ
****************************************************************************/
void Lcd_Character_16X8( bit bit_flag, uchar x, uchar y, uchar code *point )
{
uchar i , j,temp;
temp=y;
if( bit_flag )
{
for( i=0; i<2; i++ )
{
x+=i;
y=temp;
for( j=0;j<8;j++ )
{
Lcd_Set_X_Y( x, y ); y++;
wdata( point[ i*8 + j] );
}
}
}
else
{
for( i = 0; i < 2; i++ )
{
x += i;
y = temp;
for( j = 0; j < 8; j++ )
{
Lcd_Set_X_Y( x, y ); y++;
wdata( ~point[ i * 8 + j ] );
}
}
}
}
void set_page(uchar page)//ÉèÖÃÒ³£¬12864LCD¹²ÓÐ8Ò³£¬Ã¿Ò³ÓÐ8ÐеãÕóµã¡£
{
page=0xb8|page; //Ê×Ò³µØַΪ0XB8
wcmd(page); //pageÈ¡Öµ·¶Î§Îª0~7,±íʾµÚ1µ½8Ò³
}
void set_line(uchar line)//ÉèÖÃÏÔʾµÄÆðʼÐУ¬¹²ÓÐ0¡ª¡ª63ÐУ¬Ò»°ã´Ó0ÐпªÊ¼ÏÔʾ
{
line=0xc0|line; //ÆðʼÐеØÖ·0XC0
wcmd(line); //lineÈ¡Öµ·¶Î§Îª0~63£¬±íʾµÚ1µ½64ÐÐ
}
void set_column(uchar column)//ÉèÖÃÏÔʾµÄÁÐ
{
//column=column&0x3f; //ÁеÄ×î´óֵΪ0X3F£¬¼´64
column=0x40|column; //ÁеÄÊ×µØַΪ0X40,
wcmd(column); //columnµÄÈ¡Öµ·¶Î§Îª0~63£¬¹²64ÁÐ
}
void set_onoff(uchar onoff)//ÉèÖÃÏÔʾ¿ª¹Ø£¬onoffȡֵΪ0»ò1
{
onoff|=0x3e;//0X3EÊǹØÏÔʾ£¬0X3FÊÇ¿ªÏÔʾ
wcmd(onoff);//ËùÒÔÈôonoffΪ0£¬Ôò±íʾ¹ØÏÔʾ£¬onoffΪ1£¬Ôò±íʾ¿ªÏÔʾ
}
void select_screen(uchar screen)//Ñ¡ÆÁ£¬screenÈ¡Öµ·¶Î§Îª0,1,2
{
switch(screen)
{
case 0:CS1=0;CS2=0;break; //È«ÆÁ
case 1:CS1=0;CS2=1;break; //×ó°ëÆÁ
case 2:CS1=1;CS2=0;break; //ÓÒ°ëÆÁ
default:break;
}
}
void clear_screen(uchar screen)//ÇåÆÁ
{
uchar i,j;
select_screen(screen);//ÏÈÑ¡ÆÁ
for(i=0;i<8;i++)//¿ØÖÆÒ³Êý0¡ª¡ª7£¬¹²8Ò³
{
set_page(i);//ÉèÖÃÒ³
set_column(0); //ÉèÖÃÁУ¬Ã¿Ò³¶¼´ÓµÚ1ÁпªÊ¼£¬¹²64ÁÐ
for(j=0;j<64;j++)//¿ØÖÆÁÐÊý0¡ª¡ª63£¬¹²64ÁÐ
wdata(0x00);//дÈë0£¬ÁеØÖ·Ö¸Õë»á×Ô¶¯¼Ó1
}
}
void init() //LCD³õʼ»¯
{
busy(); //æ¼ì²â
select_screen(0);//Ñ¡ÆÁ£¬È«ÆÁ
set_onoff(0); //¹ØÏÔʾ
select_screen(0); //Ñ¡ÆÁ£¬È«ÆÁ
set_onoff(1); //¿ªÏÔʾ
select_screen(0); //Ñ¡ÆÁ£¬È«ÆÁ
clear_screen(0); //ÇåÆÁ
set_line(0); //ÆðʼÐУº0
}
void show(uchar screen,uchar page,uchar column,uchar *p)//ÏÔʾһ¸öºº×Ö£¬Ò»¸öºº×ÖÓÐ32×Ö½ÚÊý¾Ý
{
uchar i; //screen±íʾѡÔñÆÁÄ»£¬page±íʾҳ£¬column±íʾÁУ¬*p±íʾºº×ÖµÄÊý×é
select_screen(screen); //Ñ¡ÆÁ
set_page(page); //ÉèÖÃÒ³£¬Ð´ÉÏ°ëÒ³
set_column(column);//ÉèÖÃÁÐ
for(i=0;i<16;i++) //¿ØÖÆ16ÁеÄÊý¾ÝÊä³ö
wdata(p[i]); //ºº×ÖµÄÉϰ벿·Ö
set_page(page+1); //дÏ°ëÒ³
set_column(column); //¿ØÖÆÁÐ
for(i=0;i<16;i++) //¿ØÖÆ16ÁеÄÊý¾ÝÊä³ö
wdata(p[i+16]); //ºº×ÖµÄÏ°벿·Ö
}
sbit DSPORT=P3^6;
sbit beep=P1^5;
sbit LED=P1^0;
void Delay1ms(unsigned int );
unsigned char Ds18b20Init();
void Ds18b20WriteByte(unsigned char com);
unsigned char Ds18b20ReadByte();
void Ds18b20ChangTemp();
void Ds18b20ReadTempCom();
int Ds18b20Read_Temp();
void LcdDisplay(int);
void main()
{
int tp;
tp=Ds18b20Read_Temp();
Delay1ms(1000);
tp=Ds18b20Read_Temp();
init(); //LCD³õʼ»¯
clear_screen(0); //ÇåÆÁ
set_line(0); //ÏÔʾ¿ªÊ¼ÐÐ
show(1,0,3*16,shui);
show(2,0,4*16,wen);
show(2,0,5*16,jian);
show(2,0,6*16,ce);
show(1,2,0*16,dang);
show(1,2,1*16,qian);
show(1,2,2*16,wen);
show(1,2,3*16,du);
show(2,2,4*16,mao);
show(2,2,7*16,ssd);
while(1)
{
LcdDisplay(Ds18b20Read_Temp());
}
}
void LcdDisplay(int temp) //lcdÏÔʾ
{
unsigned char datas[] = {0, 0, 0, 0, 0}; //¶¨ÒåÊý×é
float tp;
tp=temp;//ÒòΪÊý¾Ý´¦ÀíÓÐСÊýµãËùÒÔ½«Î¶ȸ³¸øÒ»¸ö¸¡µãÐͱäÁ¿
//Èç¹ûζÈÊÇÕýµÄÄÇô£¬ÄÇôÕýÊýµÄÔÂë¾ÍÊDz¹ÂëËü±¾Éí
temp=tp*0.0625*10+0.5;
//Áô1¸öСÊýµã¾Í*10£¬+0.5ÊÇËÄÉáÎåÈ룬ÒòΪCÓïÑÔ¸¡µãÊýת»»ÎªÕûÐ͵Äʱºò°ÑСÊýµã
//ºóÃæµÄÊý×Ô¶¯È¥µô£¬²»¹ÜÊÇ·ñ´óÓÚ0.5£¬¶ø+0.5Ö®ºó´óÓÚ0.5µÄ¾ÍÊǽø1ÁË£¬Ð¡ÓÚ0.5µÄ¾Í
//Ëã¼ÓÉÏ0.5£¬»¹ÊÇÔÚСÊýµãºóÃæ¡£
if((temp/10)>=90)
{
beep=!beep;
Delay1ms(100);
LED=0;
}
else
{
beep=1;
LED=1;
}
datas[1] = temp/100%10;
datas[2] = temp/10%10;
datas[3] = temp%10;
Lcd_Character_16X8( 1, 2, 8, letter_logo[datas[1]] );
Lcd_Character_16X8( 1, 2, 16, letter_logo[datas[2]] );
Lcd_Character_16X8( 1, 2, 24, letter_logo[13] );
Lcd_Character_16X8( 1, 2, 32, letter_logo[datas[3]] );
}
void Delay1ms(unsigned int y)
{
unsigned int x;
for(y;y>0;y--)
for(x=110;x>0;x--);
}
unsigned char Ds18b20Init()
{
unsigned int i;
DSPORT=0; //½«×ÜÏßÀµÍ480us~960us
i=70;
while(i--);//ÑÓʱ642us
DSPORT=1; //È»ºóÀ¸ß×ÜÏߣ¬Èç¹ûDS18B20×ö³ö·´Ó¦»á½«ÔÚ15us~60usºó×ÜÏßÀµÍ
i=0;
while(DSPORT) //µÈ´ýDS18B20ÀµÍ×ÜÏß
{
i++;
if(i>5000)//µÈ´ý>5MS
return 0;//³õʼ»¯Ê§°Ü
}
return 1;//³õʼ»¯³É¹¦
}
void Ds18b20WriteByte(unsigned char dat)
{
unsigned int i,j;
for(j=0;j<8;j++)
{
DSPORT=0; //ÿдÈëһλÊý¾Ý֮ǰÏÈ°Ñ×ÜÏßÀµÍ1us
i++;
DSPORT=dat&0x01; //È»ºóдÈëÒ»¸öÊý¾Ý£¬´Ó×îµÍλ¿ªÊ¼
i=6;
while(i--); //ÑÓʱ68us£¬³ÖÐøʱ¼ä×îÉÙ60us
DSPORT=1; //È»ºóÊÍ·Å×ÜÏߣ¬ÖÁÉÙ1us¸ø×ÜÏ߻ָ´Ê±¼ä²ÅÄܽÓ×ÅдÈëµÚ¶þ¸öÊýÖµ
dat>>=1;
}
}
unsigned char Ds18b20ReadByte()
{
unsigned char byte,bi;
unsigned int i,j;
for(j=8;j>0;j--)
{
DSPORT=0;//ÏȽ«×ÜÏßÀµÍ1us
i++;
DSPORT=1;//È»ºóÊÍ·Å×ÜÏß
i++;
i++;//ÑÓʱ6usµÈ´ýÊý¾ÝÎȶ¨
bi=DSPORT; //¶ÁÈ¡Êý¾Ý£¬´Ó×îµÍλ¿ªÊ¼¶ÁÈ¡
/*½«byte×óÒÆһλ£¬È»ºóÓëÉÏÓÒÒÆ7λºóµÄbi£¬×¢ÒâÒƶ¯Ö®ºóÒƵôÄÇλ²¹0¡£*/
byte=(byte>>1)|(bi<<7);
i=4; //¶ÁÈ¡ÍêÖ®ºóµÈ´ý48usÔÙ½Ó×ŶÁÈ¡ÏÂÒ»¸öÊý
while(i--);
}
return byte;
}
void Ds18b20ChangTemp()
{
Ds18b20Init();
Delay1ms(1);
Ds18b20WriteByte(0xcc); //Ìø¹ýROM²Ù×÷ÃüÁî
Ds18b20WriteByte(0x44); //ζÈת»»ÃüÁî
// Delay1ms(100); //µÈ´ýת»»³É¹¦£¬¶øÈç¹ûÄãÊÇһֱˢ×ŵĻ°£¬¾Í²»ÓÃÕâ¸öÑÓʱÁË
}
void Ds18b20ReadTempCom()
{
Ds18b20Init();
Delay1ms(1);
Ds18b20WriteByte(0xcc); //Ìø¹ýROM²Ù×÷ÃüÁî
Ds18b20WriteByte(0xbe); //·¢ËͶÁȡζÈÃüÁî
}
int Ds18b20Read_Temp()
{
int temp=0;
unsigned char tmh,tml;
Ds18b20ChangTemp(); //ÏÈдÈëת»»ÃüÁî
Ds18b20ReadTempCom(); //È»ºóµÈ´ýת»»Íêºó·¢ËͶÁȡζÈÃüÁî
tml=Ds18b20ReadByte(); //¶ÁȡζÈÖµ¹²16룬ÏȶÁµÍ×Ö½Ú
tmh=Ds18b20ReadByte(); //ÔÙ¶Á¸ß×Ö½Ú
temp=tmh;
temp<<=8;
temp|=tml;
return temp;
}