{
DQ = 1; delay(2); DQ = 0;
delay(30); //精确延时 480~960us DQ = 1; delay(8); }
unsigned int read(void) {
int i=0;
unsigned int u=0; for (i=0;i<16;i++) {
DQ=0; u>>=1; DQ=1;
if(DQ) u|=0x8000; delay(4); }
return (u); }
void write(unsigned char ku) {
int i=0;
for (i=0;i<8;i++) {
DQ=0;
DQ =ku&0x01; delay(3); DQ=1; ku>>=1; } }
void read0(void) {
//int temperature ; unsigned int tp; unsigned int lsb; rst();
write(0xCC);
write(0x44); rst();
write(0xCC); write(0xBE); tp=read();
lsb=(unsigned int)(tp*6.25); // temperature=lsb/100; }
void main(void) {
while(1) {
read0(); //读温度子程序 读到的温度放在全局变量temperature 中可以直接显示这个的内容 } }