久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: protuse溫度控制仿真 [打印本頁]

作者: ty786731573    時(shí)間: 2020-2-27 13:48
標(biāo)題: protuse溫度控制仿真
源程序代碼
1.主函數(shù)部分
#include <reg52. h> //51 系列單片機(jī)
#inc lude<intr ins. h>
#include<stdio. h>
#inc lude"De lay. h"
#inc lude"DHT11. H"
#define uint unsigned int //宏定 義
#define ulint unsigned long int //宏定義
#def ine uchar uns i gned char
/*有符號(hào)8位整型變量
*/
#define KeyPort P3
#define len 60
#define DataPort PO
//LCD1602數(shù)據(jù)端
uchar
flag_ MQ7, flag_ MQ2, flag_ TSC, flag_ RED, flag_ SHAKE, flag_ FI
RE;
uchar rh_ _h_ dat, rh_ I_ _dat, t_h_ _dat,t_ _I_ _dat, jy_ _dat, check;
uchar a,b,c,d,e, f;
uchar ge, shi, bai, qi an, wan, shiwan;
//顯示變量
uchar flag_ RH=0, flag_ T=0, flag_ main=1;
uchar RH_ c, T_ c;
uchar shidu, flag;
unsigned char flag1=0, flag_ alarm, flag_ alarm1=0;
uchar number TO, numberT1 ;
uchar a1=0, b1=20, c1=0, d1=0;
uchar Sendbuf[]=" ABCD\r\n";
void DHT11();
void SendByte (uns igned char dat) ;
void convers ion(long temp_ data) ;
void Wr iteDataLCM (uchar dataW) ;
void Wr iteCommandL CM (uchar CMD, uchar Attribc) ;
void Displ ayOneChar (uchar X, uchar Y, uchar DData) ;
void InitLcd();
void loading() ;
void show_ main() ;
void show_ RH() ;
void show_ T();
void SendStr (unsigned char *s) ;//發(fā)送一個(gè)字節(jié)
void suspend_ int() ;
void SendByte (uns igned char dat) ;
sbit
LCM_ RS=P2^2;. //LCD1602 命令端口
sbit
LCM_ RW=P2^1; //LCD1602 命令端口
sbit
LCM_ EN=P2^ 0; //LCD1602 命令端口
sbit key1=P1" 2;
sbit bee=P2 5;
void InitLcd ()
Wr iteCommandl .CM (0x38, 1) ;
Wr iteCommandL .CM (0x08, 1) ;
Wr iteCommandLCM(0x01, 1);
Wr iteCommandL CM (0x06, 1) ;
Wr iteCommandl .CM (0x0c, 1) ;
}
/*******************************/
void Displ ayOneChar (uchar X, uchar Y, uchar DData)
Y&=1;
X&=15;
if (Y)X |=0x40;
x|=0x80;
Wr iteCommandl .CM(X, 0) ;
Wr iteDataLCM (DData) ;
}
void WaitForEnable (void)
DataPor t=0xff;
LCM_ RS=0;LCM_ RW=1;_ nop_ () ;
LCM_ EN=1; .nop_ 0); _nop_ 0);
whi le (DataPort&0x80) ; .
LCM_ EN=0;
/****************************/
void Wr iteCommandL CM (uchar CMD, uchar Attr ibc)
if (Attr ibe) WaitForEnable() ;
LCM_ RS=0;LCM_ RW=0;_ nop_ () ;
DataPort=CMD; _nop_ 0); _nop_ () ;
LCM_ EN=1;_ nop_ 0; nop_ ();LCM_ EN=0;
/****************************/
void Wr iteDataLCM (uchar dataW)
Wa itForEnable() ;
LCM_ RS=1;LCM_ _RW=0; _nop_ 0;
DataPort=dataW;_ nop_ 0); nop_ ():
LCM_ EN=1; _nop_ (); _nop_ () ;LCM_ EN=0;
}
void DHT11()
read() ;
if(flag==1)
{
a = 0x30+t_ h_ dat/10; //分離溫度十位
b = 0x30+t_ h_ dat%10; //分離溫度個(gè)位
e = 0x30+rh_ h_ dat/10; //分離濕度十位
f=
0x30+rh_ h_ _dat%10; // 分離濕度個(gè)位
Sendbuf[0]=e;
Sendbuf[1]=f;
Sendbuf[2]=a;
Sendbuf [3]=b;
de lay (30) ;
}
void convers ion(long temp data) // 取值運(yùn)算
{
shiwan=temp_ data/100000+0x30 ;
temp_ data=temp_ _data%100000; // 取余運(yùn)算
wan=temp_ data/ 10000+0x30 ;
temp_ data=temp_ data%10000; // 取余運(yùn)算
qian=temp_ data/ 1000+0x30 ;
temp_ _data=temp_ _data%1000;
//取余運(yùn)算
ba i=temp_ _data/ 100+0x30
temp_ data=temp_ data%100;
//取余運(yùn)算
shi=temp_ data/ 10+0x30
temp_ data=temp_ data%10;
//取余運(yùn)算
ge=temp_ data+0x30;
}
void show main()
void show_ main()
{
InitLcd() ;
DisplayOneChar(3, 0, e);
DisplayOneChar(4, 0. f);
DisplayOneChar (5.0, '%');
//濕度顯示
DisplayOneChar (6, 0, 'R');
DisplayOneChar(7,0, 'H');
De | ayMs(1) ;
Displ ay0neChar (9, 0,'T');
Di spl ay0neChar(10,0, ':);
Di spl ay0neChar(11,0, a);
DisplayOneChar(12, 0, b) ;
//溫度顯示
Disp | ay0neChar (13, 0, 0XDF) ;
Di spl ay0neChar(14,0, 'C');
}
void loading ()
DisplayOneChar(3, 0,'L');
DisplayOneChar(4, 0,'o');
DisplayOneChar(5,0,'a');
DisplayOneChar (6, 0, 'd'):
DisplayOneChar(7,0,'i');
Disp lay0neChar(8, 0, 'n');
Displ ay0neChar (9,0,'g');
Displ ay0neChar(10,0,'.');
DisplayOneChar(11.0.'.');
DisplayOneChar(12, 0,'. );
/*-------
發(fā)送一個(gè)字符串.
void SendByte (uns igned char dat)
SBUF = dat;
while(!TI);
TI=0;
void SendStr (unsigned char *s)
while(*s!='\0')// \0表示字符串結(jié)束標(biāo)志,通過檢測(cè)是否
字符串末尾
SendByte (*s) ;
s++;
}
void InitUART (void)
//串口初始化
{
SCON = 0x50;
. // SCON: 模式1, 8-bit
UART,使能接收
TMOD |= 0x20;
// TMOD: timer 1, mode 2,
8-bit重裝
TH1 = 0xFD;
// TH1:重裝值9600波
特率晶振11.0592MHz
TR1
=1;
// TR1: timer 1打開
EA
= 1;
//打開總中斷
// ES
= 1;
//打開串口中斷
}
void UART_ SER (void) interrupt 4 // 串行中斷服務(wù)程序
uns igned char Temp;
//定義臨時(shí)變量
if(RI)
//判斷是接收中斷產(chǎn)生
RI=0;
//標(biāo)志位清零
Temp=SBUF;
//讀入緩沖區(qū)的值
P1=Temp;
//把值輸出到P1口,用于
觀察
SBUF=Temp;
//把接收到的值再發(fā)回
電腦端
if(TI)
//如果是發(fā)送標(biāo)志位,清
TI=0;
}
void main()
{ bee=0;
InitLcd () ;//液晶初始化
loading() ;
DelayMs (100) ;
InitUART();
if (key1==0)
while(1)
DHT11() ;//濕度溫度數(shù)據(jù)讀取
De I ayMs (50) ;
show_ main( ;
DelayMs (200) ;
SendStr (Sendbuf) ;
}
}
2 DHT11部分
/*DHT11溫濕傳感器驅(qū)動(dòng)*/
#include <reg52. H>
#inc lude"Delay. h"
#inc lude"DHT11. h"
#inc lude<intrins. h>
#inc lude<stdio. h>
sbit DQ=P2' 5; //DHT11 數(shù)據(jù)線//單總線 10
extern uchar rh_ h_ dat, rh_ I_ dat,t_ _h_ dat, t_ I_ dat, jy_ dat, check;
uint count;
extern uchar shidu, flag;
uchar k=0x10; .
bit DHT_ init() //DHT11的初始存在
bit f=0;
DQ=1;
_ nop_ 0;
DQ=0; //拉低總線大于18ms
delay(18) ;
DQ=1; //拉高
delay10us();
de lay10us();
delay10us() ;
delay10us0; //延時(shí)30us
while(!DQ) //DHT 響應(yīng)80us的低電平信號(hào)
{
f=1;
}
while(DQ); //dht 在拉高80us
return f;
uchar rdat() //讀一個(gè)字節(jié)
uint i, dat;
for(i=0;i<8;i++)
while(!DQ) ;
_nop
0; nop_ 0;_ nop_ ();
while (DQ)
count++;
dat=_ crol_ (dat, 1) ;
if (count>5) // 高低電平信號(hào)的時(shí)間不同,若大于50ms則為1
{
else //否則為0
dat=dat&Oxfe;
count=0;
. nop_ (); nop_ 0; _nop_ 0;
return dat;
}
void read() //讀5個(gè)字節(jié)的
bit f;
f=DHT_ init();
if(f==1)
rh_ _h_ dat=rdat(); //前兩個(gè)是濕度的整數(shù)、小數(shù)
rh_ 1 _dat=rdat () ;
t_ h_ _dat=rdat(); //后兩個(gè)是溫度的整數(shù)小數(shù)
t_ 1_ _dat=rdat();
jy_ dat=rdat(); //最后-位校驗(yàn)位
DQ=1;
check=rh_ h_ _dat+rh_ I_ dat+t_ h_ _dat+t_ 1_ dat; //檢驗(yàn)數(shù)據(jù)是否
正確
i--;
i-- ;
i--;
}
/*--
mS延時(shí)函數(shù),含有輸入?yún)?shù)unsigned char t, 無返回值
void De layMs (unsigned int t)
{
while(t--)
int d;
for (d=100;d>0;d--);
delay10us () ;
}
i--;
i-- ;
i--;
}
/*--
mS延時(shí)函數(shù),含有輸入?yún)?shù)unsigned char t, 無返回值
void De layMs (unsigned int t)
{
while(t--)
int d;
for (d=100;d>0;d--);
delay10us () ;
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩国产精品一区 | 亚洲欧美精品在线观看 | 这里只有精品99re | 国产成人综合在线 | 欧美日本韩国一区二区三区 | 久久成人精品视频 | 欧美精品第三页 | 天天曰夜夜操 | 色综合天天网 | 久久久久久久一区二区三区 | 欧美男人天堂 | 中文在线一区二区 | 91大神在线看 | 九九热视频这里只有精品 | 日韩在线免费播放 | 看片国产 | 久草99 | 久久精品国产精品青草 | 91成人在线视频 | 亚洲精品乱码久久久久久黑人 | 欧美日韩一区二区在线 | 2019天天操| 国产日韩欧美在线观看 | 中文字幕一二三 | 精品欧美一区二区精品久久久 | 久久这里只有精品首页 | 日韩喷潮 | 久久一区精品 | 在线观看中文字幕 | 久久伊人青青草 | 欧美日韩一区二区三区在线观看 | 午夜精品久久久久久久久久久久久 | 午夜免费福利电影 | 国产一级黄色网 | 在线a视频| 亚洲一在线 | www.黄网 | av免费网站在线观看 | av手机在线看 | 精品国产色 | 日本小视频网站 |