#include#include#define ucharunsigned char#define uintunsigned intsbit DQ=P3^7; sbitbeep=P3^0; void reset(); //DS18B20复位函数voidwrite_byte(uchar val); //DS18B20写命令函数 ucharread_byte(void); //DS18B20读1字节函数 voidread_temp(); //温度读取函数voidLED_display();void alarm();uchartempH,tempL,num;uchar table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0~9的LED字符编码ucharsetValue_low=15;ucharsetValue_high=30;main(){while(1){ read_temp(); LED_display(); alarm();}}void delay(uint t){for(;t>0;t--);}void reset() //DS18B20的复位{uchar presence=1;while(presence) { while(presence) { DQ=1;_nop_();_nop_(); DQ=0; delay(50); DQ=1; delay(6); presence=DQ; } delay(45); presence=~DQ; }DQ=1;}voidwrite_byte(uchar val) //DS18B20写一个字节{uchar i;for(i=8;i>0;i--) { DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); DQ=val&0x01; delay(6); val=val>>1; }DQ=1;_nop_();}ucharread_byte(void) //DS18B20读一个字节{uchar i;uchar value=0;for(i=8;i>0;i--) { DQ=1;_nop_();_nop_(); value>>=1; DQ=0; _nop_();_nop_();_nop_();