📄 wd.c
字号:
#include <at89x51.h>
#include "led.h"
unsigned char init=0;
unsigned int temp=0;
unsigned int x=0,y=0;
void delay(unsigned char t)
{
while(--t);
}
void delay_50us(unsigned int t)
{
unsigned char j;
for(;t>0;t--)
for(j=19;j>0;j--);
}
void init_device(void)
{
P2_4=1;
delay_50us(1); //88us
P2_4=0;
delay_50us(12); //736
P2_4=1;
delay(30); //142us
if (P2_4==0) init=1;
delay_50us(5);
}
void write_8bit(unsigned char write_dat)
{
unsigned char i=0;
for (i=0;i<8;i++)
{
P2_4=0;
P2_4=write_dat&0x01;
delay_50us(2); //61
P2_4=1;
write_dat=write_dat>>1;
}
}
unsigned char read_8bit(void)
{
unsigned char read_dat=0,i=0;
for (i=0;i<8;i++)
{
P2_4=0;
read_dat>>=1;
P2_4=1;
delay(1);
if (P2_4) read_dat|=0x80;
delay_50us(2); //52
}
return (read_dat);
}
unsigned char temperature(void)
{
unsigned char wd_l8=0,wd_h8=0,wd=0;
init_device();
write_8bit(0xCC);
write_8bit(0x44);
delay_50us(16);
init_device();
write_8bit(0xCC);
write_8bit(0xBE);
wd_l8=read_8bit();
wd_h8=read_8bit();
wd_l8=wd_l8>>4;
wd_h8=wd_h8<<4;
wd=wd_l8|wd_h8;
return (wd);
}
void wd_t(void)
{
P2_4=1;
temp=temperature();
x=temp/10;
y=temp-10*x;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -