標題: 溫度傳感器 [打印本頁]
作者: adwszxc1 時間: 2021-1-5 23:05
標題: 溫度傳感器
WSD.C(溫濕度主程序)
/*
晶振12.0MHZ,MCU是AT89S51
DHT11數字溫濕度傳感器數碼管顯示程序。
P2^2接DATA
8個共陰數碼管接法:段選
P1.7->A;P1.5->B;P1.1->C;P1.3->D;P1.4->E;P1.6->F;P1.0->G;P1.2->DP
位選
P0.0->7;P0.1->6;P0.2->5;P0.3->4;P0.4->3;P0.5->2;P0.6->1;P0.7->0*/
#include<reg52.h>
#include <intrins.h>
#include"smg.h"
#include"head.h"
unsigned char str[]={0,0,0,0,0,0,0,0};
sbit TRH = P2^2;//溫濕度傳感器DHT11數據接入
uint j=0;
uintTH_data,TL_data,RH_data,RL_data,CK_data;
uintTH_temp,TL_temp,RH_temp,RL_temp,CK_temp;
uint com_data,untemp,temp;
char receive()
{
uint i;
com_data=0;
for(i=0;i<=7;i++)
{
while(!TRH);
delay_10us();
delay_10us();
delay_10us();
if(TRH)
{
temp=1;
while(TRH);
}
else
temp=0;
com_data<<=1;
com_data|=temp;
}
return(com_data);
}
void read_TRH()
TRH=1;
delay_5us();
//主機拉低18ms
TRH=0;
delay_180ms();
TRH=1;
//DATA總線由上拉電阻拉高主機延時20us
delay_10us();
delay_10us();
delay_10us();
delay_10us();
TRH=1;
//判斷DHT11是否有低電平響應信號如不響應則跳出,響應則向下運行
if(!TRH)
{
//判斷DHT11發出 80us 的低電平響應信號是否結束
while(!TRH);
//判斷從機是否發出 80us 的高電平,如發出則進入數據接收狀態 while(TRH);
//數據接收狀態
RH_temp = receive();
RL_temp = receive();
TH_temp = receive();
TL_temp = receive();
CK_temp = receive();
TRH=1;
//數據校驗
untemp=(RH_temp+RL_temp+TH_temp+TL_temp);
if(untemp==CK_temp)
{
RH_data = RH_temp;
RL_data = RL_temp;
TH_data = TH_temp;
TL_data = TL_temp;
CK_data = CK_temp;
}
}
//濕度整數部分
str[0] =RH_data/10;
str[1] =RH_data%10;
//濕度小數部分
str[2] = RL_data/10 ;
//溫度整數部分
str[3] = TH_data/10;
str[4] = TH_data%10;
//溫度小數部分
str[5] = TL_data/10;
//主函數
//TH,TL,RH,RL分別代表溫濕度的整數和小數部分
void main()
{
delay_3s();
read_TRH();
for(;j<10000;j++)
disp(str);
}
smg.c(數碼管顯示C程序)
#include<reg52.h>
#include"smg.h"
#include"head.h"
//后加的8個數碼管的段碼和位碼。
sbit smg_dw1=P0^0;
sbit smg_dw2=P0^1;
sbit smg_dw3=P0^2;
sbit smg_dw4=P0^3;
sbit smg_dw5=P0^4;
sbit smg_dw6=P0^5;
sbit smg_dw7=P0^6;
sbit smg_dw8=P0^7;
uchar
smg_du[]={0xfa,0x22,0xb9,0xab,0x63,0xcb,0xdb,0xa2,0xfb,0xeb,0xf3,0x5b,0xd8,0x3b,0xd9,0xd1,0x04};
void disp(uchar *p)
{
P1=smg_du[*p];
smg_dw1=0;
delay_17us(1);
smg_dw1=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw2=0;
delay_17us(1);
smg_dw2=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw3=0;
delay_17us(1);
smg_dw3=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw4=0;
delay_17us(1);
smg_dw4=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw5=0;
delay_17us(1);
smg_dw5=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw6=0;
delay_17us(1);
smg_dw6=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw7=0;
delay_17us(1);
smg_dw7=1;
delay_17us(1);
p++;
P1=smg_du[*p];
smg_dw8=0;
delay_17us(1);
smg_dw8=1;
delay_17us(1);
}
time.c(時間函數)
#include<reg52.h>
#include<intrins.h>
#include"head.h"
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
久久国产亚洲精品
|
中文字幕欧美日韩
|
台湾佬伊人
|
av一二三区
|
精品国产一区二区在线
|
av天天操|
三级欧美|
日韩欧美在线不卡
|
国产成人精品免高潮在线观看
|
亚洲一区二区三区免费观看
|
日韩成人av在线播放
|
国产精品国产成人国产三级
|
在线a视频网站
|
a爱视频
|
99精品久久|
国产欧美精品一区二区三区
|
羞羞视频在线观免费观看
|
一级午夜aaa免费看三区
|
国产中文字幕在线
|
在线观看成人小视频
|
av在线天堂网
|
日日夜夜免费精品视频
|
中文字幕免费中文
|
欧美日韩视频在线播放
|
99精品欧美一区二区三区综合在线
|
久久婷婷国产香蕉
|
国产成人网
|
亚洲国产精品suv
|
成人免费看黄网站在线观看
|
国产高潮好爽受不了了夜色
|
精品自拍视频
|
日本韩国欧美在线观看
|
午夜国产精品视频
|
中文字幕亚洲精品
|
久久网一区二区
|
中文字幕视频三区
|
日韩中文在线
|
亚洲成人一区二区三区
|
欧美日韩亚洲二区
|
久久久综合色
|
九色在线观看
|