标题:
单片机检测温湿度
[打印本页]
作者:
明天怎样
时间:
2017-10-22 15:45
标题:
单片机检测温湿度
芯片用到了STC12,显示屏是16
#include<STC12C5A60S2.h>
#include <intrins.h>
#include <Lcd_1602.h>
#include <Time_Delay.h>
#include"DHT11.h"
sbit wd_key1=P3^4;
sbit wd_key2=P3^5;
sbit sd_key1=P3^6;
sbit sd_key2=P3^7;
sbit jr_jdq=P2^0;
sbit js_jdq=P2^1;
sbit fs_jdq=P2^2;
void key_sm(void);
extern float F16T,F16RH; //全局变量声明
unsigned wd_num=20,sd_num=50,t;
void main ()
{
Init_Lcd();
LCD_write_str(0,1,"4561def135"); //液晶预显示测试
LCD_value(0,0,34.345);
Delay_ms(200);
Init_Lcd();
TMOD=0X01; //设置定时器0为模式一,即16位计算模式
TH0=(65536-50000)/256; //给计数寄存器赋值,
TL0=(65536-50000)%256;
EA=1; //开启总中断
ET0=1; //开启定时器0中断
TR0=1; //启动定时器0
while(1)
{
getDHT11();
key_sm();
LCD_write_str(0,0,"T=");
LCD_value(3,0,F16T); LCD_write_str(7,0,"\"C"); //字符" 应用转义格式
LCD_write_str(10,0," ");LCD_value(11,0,wd_num);
LCD_write_str(0,1,"RH=");
LCD_value(4,1,F16RH); LCD_write_str(8,1,"%");
LCD_write_str(10,1," ");LCD_value(11,1,sd_num);
Delay_ms(100);
if(t>20)
{
if(F16T<wd_num)
{jr_jdq=0;}else jr_jdq=1;
if(F16RH<sd_num)
{js_jdq=0;}else js_jdq=1;
if((F16T>wd_num)&(F16RH>sd_num))
{fs_jdq=0;} else fs_jdq=1;
t=0;
// Delay_ms(100);
}
}
}
void key_sm(void)
{
if(wd_key1==0)
{
while(!wd_key1);
wd_num=wd_num+1;}
if(wd_key2==0)
{
while(!wd_key2);
wd_num=wd_num-1;}
if(sd_key1==0)
{
while(!sd_key1);
sd_num=sd_num+1;}
if(sd_key2==0)
{
while(!sd_key2);
sd_num=sd_num-1;}
}
//中断函数,关键字"interrupt" , 这是C语言的中断函数表示法,1表时定地器0
void timer() interrupt 1
{
TH0=(65536-50000)/256; //给计数寄存器赋值
TL0=(65536-50000)%256;
t++;
//key_sm();
}
复制代码
02,温湿度传感器DHT11
DHT11温湿度LCD1602.zip
2017-10-22 15:44 上传
点击文件名下载附件
下载积分: 黑币 -5
43.48 KB, 下载次数: 17, 下载积分: 黑币 -5
作者:
gxlin
时间:
2017-10-26 15:30
给个电路图
作者:
akaozys
时间:
2018-8-11 15:00
非常赞
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1