问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机c语言编程的温湿度检测控制程序

发布网友 发布时间:2022-05-15 15:25

我来回答

1个回答

热心网友 时间:2024-02-24 20:16

/********************************************************************
*
文件名

温度采集DS18B20.c
*
描述
:
该文件实现了用温度传感器件DS18B20对温度的采集,并在数码管上显示出来。
*
创建人

东流,2009年4月10日
*
版本号

2.0
***********************************************************************/
#include<reg52.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
#define
jump_ROM
0xCC
#define
start
0x44
#define
read_EEROM
0xBE
sbit
DQ
=
P2^3;
//DS18B20数据口
unsigned
char
TMPH,TMPL;
uchar
code
table[10]
=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
/********************************************************************
*
名称
:
delay()
*
功能
:
延时,延时时间大概为140US。
*
输入
:

*
输出
:

***********************************************************************/
void
delay_1()
{
int
i,j;
for(i=0;
i<=10;
i++)
for(j=0;
j<=2;
j++)
;
}
/********************************************************************
*
名称
:
delay()
*
功能
:
延时函数
*
输入
:

*
输出
:

***********************************************************************/
void
delay(uint
N)
{
int
i;
for(i=0;
i<N;
i++)
;
}
/********************************************************************
*
名称
:
Delay_1ms()
*
功能
:
延时子程序,延时时间为
1ms
*
x
*
输入
:
x
(延时一毫秒的个数)
*
输出
:

***********************************************************************/
void
Delay_1ms(uint
i)//1ms延时
{
uchar
x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
/********************************************************************
*
名称
:
Reset()
*
功能
:
复位DS18B20
*
输入
:

*
输出
:

***********************************************************************/
uchar
Reset(void)
{
uchar
deceive_ready;
DQ
=
0;
delay(29);
DQ
=
1;
delay(3);
deceive_ready
=
DQ;
delay(25);
return(deceive_ready);
}
/********************************************************************
*
名称
:
read_bit()
*
功能
:
从DS18B20读一个位值
*
输入
:

*
输出
:
从DS18B20读出的一个位值
***********************************************************************/
uchar
read_bit(void)
{
uchar
i;
DQ
=
0;
DQ
=
1;
for(i=0;
i<3;
i++);
return(DQ);
}
/********************************************************************
*
名称
:
write_bit()
*
功能
:
向DS18B20写一位
*
输入
:
bitval(要对DS18B20写入的位值)
*
输出
:

***********************************************************************/
void
write_bit(uchar
bitval)
{
DQ=0;if(bitval==1)
DQ=1;
delay(5);
DQ=1;
}
/********************************************************************
*
名称
:
read_byte()
*
功能
:
从DS18B20读一个字节
*
输入
:

*
输出
:
从DS18B20读到的值
***********************************************************************/
uchar
read_byte(void)
{
uchar
i,m,receive_data;
m
=
1;
receive_data
=
0;
for(i=0;
i<8;
i++)
{
if(read_bit())
{
receive_data
=
receive_data
+
(m
<<
i);
}
delay(6);
}
return(receive_data);
}
/********************************************************************
*
名称
:
write_byte()
*
功能
:
向DS18B20写一个字节
*
输入
:
val(要对DS18B20写入的命令值)
*
输出
:

***********************************************************************/
void
write_byte(uchar
val)
{
uchar
i,temp;
for(i=0;
i<8;
i++)
{
temp
=
val
>>
i;
temp
=
temp
&
0x01;
write_bit(temp);
delay(5);
}
}
/********************************************************************
*
名称
:
Main()
*
功能
:
主函数
*
输入
:

*
输出
:

***********************************************************************/
void
main()
{
float
tt;
uint
temp;
P2
=
0x00;
while(1)
{
Reset();
write_byte(jump_ROM);
write_byte(start);
Reset();
write_byte(jump_ROM);
write_byte(read_EEROM);
TMPL
=
read_byte();
TMPH
=
read_byte();
temp
=
TMPL
/
16
+
TMPH
*
16;
P0
=
table[temp/10%10];
P2
=
6;
Delay_1ms(5);
P0
=
table[temp%10];
P2
=
7;
Delay_1ms(5);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
流量保险是什么 会计的基本常识是什么 我奶奶这几天总是拉肚子,而且只能躺着一站起来眼睛就发黑,医生说她贫血... win7c盘里找不到users,用户里也没有c:usersadministrator... C盘里没有users文件夹 pvc天然气管能用多久 PVC天然气管的寿命是多久?  请教大神这怎么搞?天然气排烟管怎么弄? ...时不用在手机确认电脑登陆微信如何不用手机确认 急性胰腺炎护理 急性胰腺炎非手术治疗的护理措施 865主板支持什么cpu和显卡? 推荐一个51单片机开发板 51单片机学习板 865相当于什么电脑cpu 单片机,求大神 51单片机推荐-高手进 如果我用东流51单片机板上的PL2303给STM32烧写程序行吗??这芯片能自动将5V转换成3V吗?? 求东流单片机开发板的资料 买了一个东流电子的单片机开发板,请问它上面的单片机与80c52可以直接换吗? 东流电子 单片机 怎么样 可以网上注销公司吗? 红帽linux应该下载那几个个文件? 冬天就要到了,冬天吃什么最好呢? wps手工输入链接语句怎么输入? 冬天吃什么主食容易不长肉又能吃饱?减肥中 冬天吃什么主食减肥 冬天吃什么主食好 推荐六种主食 冬天吃什么主食能养胃? 怎么输入链接 链接怎么输入法?我不懂链接是怎么回事,看了百度里的解释也不懂。请问怎么把链接做出来? 865主板支持什么CPU? c51单片机控制12864程序(c语言),显示几个字,或一些简单的图片就行!先谢谢了! 求STC12C5A60S2单片机的12864液晶串行程序? 51单片机四路抢答器毕业论文 只要四路 求曹成茂主编的电工电子技术课后习题答案,合肥工业大学出版社的。邮箱1076655042@qq.com 基于51单片机C语言的噪音监控,求高人给发个程序,感恩不尽 现在的年轻人根本不把邮票当回事了,有的人从来没用过邮票,请问邮票上有没有什么吸引人的地方或者故事? 《世界读书日》特种邮票一枚(如右图)中的三大元素的寓意各是什么? oppo手机如何强制恢复出厂设置op poA8强制恢复出厂设置还得输入手机密码什么情况_百度问一问 如何鉴赏邮票? 以窗花 喜鹊登枝作为邮票的寓意 贴邮票的讲究是什么?邮票的存在有什么意义吗?直接寄出不就好了!! op手机恢复出厂设置 op手机如何恢复出厂设置 什么是VG PG 电子烟pgvg是什么意思 食用甘油和vg甘油有什么不同 自动启停(起停)系统故障,怎么破 高vg版烟油什么意思 绿罗电子烟里有多少克焦油