#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar shi,ge,wshi,wge,sshi,sge,ldata,h;
sbit key=P1^0;
sbit led=P1^1;
sbit DQ=P3^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f};
uchar code table1[]={0xfe,0xfd,0xfb,0xf7};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Delay(int num)//延时函数
{
while(num--) ;
}
//显示数据转换程序
void display(uint temp,uint lll)
{
sshi=lll/10;
sge=lll%10;
shi=temp/10;
ge=temp%10;
P0=table[ge];
P2=table1[3];
delay(1);
P0=table[shi];
P2=table1[2];
delay(1);
P0=table[sshi];
P2=table1[1];
delay(1);
P0=table[sge];
P2=table1[0];
delay(1);
}
unsigned char ReadOneChar(void)//读一个字节
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
Delay(4);
}
return(dat);
}
void WriteOneChar(unsigned char dat)//写一个字节
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
Delay(5);
DQ = 1;
dat>>=1;
}
}
void Init_DS18B20(void)//初始化ds1820
{
unsigned char x=0;
DQ = 1; //DQ复位
Delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
Delay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
Delay(14);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
Delay(20);
}
void ReadTemperature(void)//读取温度
{
unsigned char a=0;
unsigned char b=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器
Delay(50);
a=ReadOneChar(); //读低8位
b=ReadOneChar(); //读高8位
wshi= (a/16+b*16)/10; //整数部分
wge = (a/16+b*16)%10;
h=wshi*10+wge;
}
void main()
{
P0=0xff;
ldata=96;
while(1)
{
if(key==0)
{
delay(10);
if(key==0)
{
if(ldata>16)
{ldata=ldata-10;//刷新完成约1秒,变量做加计数
}
else
ldata=0;
while(!key);
}
}
ReadTemperature();
display(h,ldata);
if(wshi==sshi)
{
display(h,ldata);
led=0;
while(1);
}
}
}
rdk.zip_人工智能
版权申诉
164 浏览量
2022-09-20
21:27:19
上传
评论
收藏 1KB ZIP 举报
周楷雯
- 粉丝: 80
- 资源: 1万+
最新资源
- labview简易计算器,类似于windows自带的计算器 浙理工同学可以无脑下载
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本121.0.6150.0)
- 基于Python+opencv的多人脸检测,口罩佩戴检测,单目标跟踪
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本121.0.6148.0)
- 基于C++版本的sort算法,可无缝添加在检测器后进行实时多目标跟踪
- 基于物联网的户外环境监测系统设计.docx
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本121.0.6146.0)
- 1_6、CC2530 查询方式使用定时器.pdf
- 测绘程序设计-五点光滑法曲线拟合
- 基于 C++实现的多特征(色调+边缘+纹理)融合的目标跟踪
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈