#include
#include
#define uint unsigned int
#define uchar unsigned char
#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}
/********************** DS18B20 指令*********************/
#define ds18B20_READ_ROM 0x33 // 读 ROM 指令
#define ds18B20_MATCH_ROM 0x55 // 匹配 ROM 指令
#define ds18B20_SKIP_ROM 0xCC // 跳过 ROM 指令
#define ds18B20_SEARCH_ROM 0xF0 // 搜索 ROM 指令
#define ds18B20_ALARM_SEARCH 0xEC // 报警搜索指令
#define ds18B20_WRITE_SCRATCHPAD 0x4E // 写暂存寄存器指令
#define ds18B20_READ_SCRATCHPAD 0xBE // 读暂存寄存器指令
#define ds18B20_COPY_SCRATCHPAD 0x48 // 复制暂存寄存器指令
#define ds18B20_CONVERT_T 0x44 // 启动温度转换指令
#define ds18B20_RECALL_E2 0xB8 // 重新调出 E2PROM 的数据
#define ds18B20_READ_POWER_SUPPLY 0xB4 // 读电源
#define LCD_Data P1 //定义数据指令端口
sbit ds18B20_data = P3^3; //温度探头(DQ)数据端口对应的单片机引脚
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
uchar Minus_Flag=0;
uchar code Temp_Disp_Title[]={"Current Temp : "};
uchar Current_Temp_Display_Buffer[]={"TEMP: "};
uchar Temp_Value[]={0x00,0x00};
uchar Display_Digit[]={0,0,0};
void Delay(uint x)
{
while(--x);
}
/****************************延时10us*************************/
//先执行一个LCALL指令(2 μs),然后执行6个_NOP_( )语句(6 μs),最后执行了一个RET指令(2 μs)
void Delay_10us(void)
{ _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/***************************延时 time*15us******************** */
void delay_15us(uint time)
{
uint i;
for (i=0;i