西安石油大学本科毕业设计(论文)
}
void display_string(unsigned char x,unsigned char y,unsigned char *s) { }
unsigned char data temp_data[2]={0x00,0x00}; unsigned char data _1820display[5]={0x00,0x00,0x00,0x00,0x00}; unsigned int tmp; sbit DQ=P2^4; sbit DQVCC=P2^3; sbit DQGND=P2^5;
unsigned char code ditab[16]= { };
void _18B20_delay(unsigned int t) {
for (;t>0;t--); }
_18B20_reset(void) {
display_xy(x,y); while(*s) { }
WriteDataLcd(*s); s++;
0x00,0x01,0x01,0x02, 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 0x08,0x08,0x09,0x09
char presence=1; while(presence) {
while(presence)
32
西安石油大学本科毕业设计(论文)
{ DQ=1; _nop_();_nop_();
DQ=0; _18B20_delay(50);
DQ=1; _18B20_delay(6); presence=DQ;
}
_18B20_delay(45); presence=~DQ;
}
DQ=1;
}
void _18B20_write(unsigned char val) {
unsigned char i; for(i=8;i>0;i--) { DQ=1;
_nop_();_nop_(); DQ=0;
_nop_();_nop_();_nop_();_nop_();
DQ=val&0x01; _18B20_delay(6);
val=val/2; } DQ=1;
_18B20_delay(1); }
unsigned char _18B20read_byte(void) {
unsigned char i;
33
西安石油大学本科毕业设计(论文)
unsigned char value=0; for(i=8;i>0;i--) { DQ=1;
_nop_();_nop_(); value>>=1; DQ=0;
_nop_();_nop_();_nop_();_nop_(); DQ=1;
_nop_();_nop_();_nop_();_nop_(); if(DQ)value|=0x80;
_18B20_delay(6); } DQ=1; return(value);
}
_18B20_read()
{ _18B20_reset(); _18B20_delay(200);
_18B20_write(0xcc); _18B20_write(0x44); _18B20_reset(); _18B20_delay(1);
_18B20_write(0xcc); _18B20_write(0xbe);
temp_data[0]=_18B20read_byte(); temp_data[1]=_18B20read_byte(); tmp=temp_data[1];
tmp<<=8; tmp=tmp|temp_data[0]; return tmp;
}
34
西安石油大学本科毕业设计(论文)
_18B20_work(unsigned int tem) { unsigned char n=0;
if(tem>6348) {
tem=65536-tem; n=1;
}
_1820display[4]=tem&0x0f; _1820display[0]=ditab[_1820display[4]]; _1820display[4]=tem>>4; _1820display[3]=_1820display[4]/100; _1820display[1]=_1820display[4]0; _1820display[2]=_1820display[1]/10; _1820display[1]=_1820display[1]; if(!_1820display[3]) { _1820display[3]=' '-'0'; if(!_1820display[2])
_1820display[2]=' '-'0'; } if(n)
_1820display[3]='-'-'0'; } _18B20_init() { _18B20_reset(); _18B20_write(0xcc);
_18B20_write(0x44);
}
void main(void) { unsigned char i;
DQVCC=1;
35