標(biāo)題:
stc15w4k32s4單片機做的溫濕度測溫DHT11 12864顯示程序
[打印本頁]
作者:
武略大韜
時間:
2018-12-19 07:43
標(biāo)題:
stc15w4k32s4單片機做的溫濕度測溫DHT11 12864顯示程序
stc15w4k32s4做的溫濕度測量儀 給別人做的設(shè)計
單片機源程序如下:
/******************************************************
@title DHT11LCD12864顯示
@author 王樹輝
@since Keil uVision4
@version 1.0
@remark 溫濕度測量
@crystal frequency 22.1184MHz
@site 6J408
******************************************************/
#include"STC15.h" /*時鐘頻率22.1184MHz*/
#include"typedef.h"
#include"delay.h"
#include"DHT11.H"
/*此函數(shù)功能是將所有I/O口配置為準(zhǔn)雙向I/O口*/
#define DATA P2
int num1=25;
int num2=35;
void key();
sbit RS=P4^1; //12864屏幕
sbit WR=P4^2;
sbit EN=P4^4;
sbit PSB=P4^5;
sbit key1=P0^0;
sbit key2=P0^1;
sbit fengshan=P0^2;
sbit fengming=P0^3;
sbit key3=P0^4;
sbit key4=P0^6;
void init_GPIO()
{
P0M0=P0M1=0x00;
P1M0=P1M1=0x00;
P2M0=P2M1=0x00;
P3M0=P3M1=0x00;
P4M0=P4M1=0x00;
P5M0=P5M1=0x00;
delay(10);
}
void writecmd(u8 cmd)
{
RS=0;
WR=0;
EN=0;
DATA=cmd;
delay(10);
EN=1;
delay(10);
EN=0;
}
void writedat(u8 dat)
{
RS=1;
WR=0;
EN=0;
DATA=dat;
delay(10);
EN=1;
delay(10);
EN=0;
}
void lcdpos(u8 X,u8 Y)
{
u8 pos;
if(X==0)
{X=0x80;}
else if(X==1)
{X=0X90;}
else if(X==2)
{X=0X88;}
else if(X==3)
{X=0X98;}
pos=X+Y;
writecmd(pos);
}
void writestring(u8 X,u8 Y,char *s)
{
lcdpos(X,Y);
while(*s)
{
writedat(*s++);
}
}
void init_12864()
{
PSB=1;
writecmd(0x30);
delay(10);
writecmd(0x0c);
delay(10);
writecmd(0x01);
delay(10);
}
void main()
{
struct DHT11 dat;
init_GPIO();
init_12864();
writestring(0,0,"DHT111溫濕度顯示");
writestring(1,0,"室內(nèi)溫度 濕度 ");
writestring(2,0,"設(shè)定溫度:");
writestring(3,0,"設(shè)定濕度:");
while(1)
{
if(Read_DHT11(&dat)==SUCCESS)
{
lcdpos(1,4);
writedat(dat.temp_int/10%10+0x30);
writedat(dat.temp_int%10+0x30);
lcdpos(2,6);
writedat(num1/10%10+0x30);
writedat(num1%10+0x30);
if(key1==0)
{
delay(5);
if(key1==0)
{
num1++;
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
num1--;
}
}
if(dat.temp_int>num1)
{
fengshan=1;
}
else
{
fengshan=0;
}
lcdpos(1,7);
writedat(dat.humi_int/10%10+0x30);
writedat(dat.humi_int%10+0x30);
lcdpos(3,6);
writedat(num2/10%10+0x30);
writedat(num2%10+0x30);
if(key3==0)
{
delay(5);
if(key3==0)
{
num2++;
}
}
if(key4==0)
{
delay(5);
if(key4==0)
{
num2--;
}
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
Keil代碼下載:
DHT11 12864 顯示.zip
(115.73 KB, 下載次數(shù): 184)
2018-12-19 07:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2018-12-19 15:13
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
作者:
2389378677
時間:
2021-6-7 20:19
admin 發(fā)表于 2018-12-19 15:13
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
有原理圖嗎
作者:
探險家的15
時間:
2021-12-6 20:19
IAP15w4k58s4的程序跟32s4的有什么區(qū)別沒?
作者:
longqishi57777
時間:
2022-1-11 10:03
感謝分享,正在研究DHT11
作者:
51hei用戶2107141
時間:
2022-5-5 09:04
STC15.h頭文件需要自行安裝
http://www.torrancerestoration.com/bbs/dpj-36960-1.html
作者:
kkcc123
時間:
2023-5-8 09:55
這個PSB定義的是12864的哪個腳,仿真中找不到
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1