標(biāo)題:
STC15W4K32S4單片機(jī)DHT11多功能數(shù)顯溫濕度計(jì)源碼
[打印本頁(yè)]
作者:
lx123456
時(shí)間:
2018-3-23 21:21
標(biāo)題:
STC15W4K32S4單片機(jī)DHT11多功能數(shù)顯溫濕度計(jì)源碼
該設(shè)計(jì)采用的是LCD1602顯示,DHT11溫濕度傳感器采集環(huán)境中的溫濕度,同時(shí)采用DS1302時(shí)鐘模塊顯示當(dāng)前日期和時(shí)間。
單片機(jī)源程序如下:
#include "lcd1602.h"
#include "dht11.h"
#include "ds1302.h"
unsigned char Table_LCD[]="0123456789";
void IO_Init()
{
/////////////////////////////////////////////////
//注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關(guān)的IO口均為
// 高阻態(tài),需將這些口設(shè)置為準(zhǔn)雙向口或強(qiáng)推挽模式方可正常使用
//相關(guān)IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
// P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
/////////////////////////////////////////////////
P0M1 = 0; P0M0 = 0; //設(shè)置P0.0~P0.7為準(zhǔn)雙向口
P1M1 = 0; P1M0 = 0; //設(shè)置P1.0~P1.7為準(zhǔn)雙向口
P2M1 = 0; P2M0 = 0; //設(shè)置P2.0~P2.7為準(zhǔn)雙向口
P3M1 = 0; P3M0 = 0; //設(shè)置P3.0~P3.7為準(zhǔn)雙向口
P4M1 = 0; P4M0 = 0; //設(shè)置P4.0~P4.7為準(zhǔn)雙向口
P5M1 = 0; P5M0 = 0; //設(shè)置P5.0~P5.7為準(zhǔn)雙向口
}
void main()
{
unsigned char val;
IO_Init();
LCD_Init();
init_ds1302();
while(1)
{
GetDHT11_Data();
val=(tempH+tempL+humyH+humyL)&0xff;
if(val==CheckData)
{
//顯示濕度
Write_ComLCD1602(0x80+13);
Write_DatLCD1602(Table_LCD[humyH/10]);
Write_ComLCD1602(0x80+14);
Write_DatLCD1602(Table_LCD[humyH%10]);
Write_ComLCD1602(0x80+15);
Write_DatLCD1602('%');
//顯示溫度
Write_ComLCD1602(0x80+0x40+13);
Write_DatLCD1602(Table_LCD[tempH/10]);
Write_ComLCD1602(0x80+0x40+14);
Write_DatLCD1602(Table_LCD[tempH%10]);
Write_ComLCD1602(0x80+0x40+15);
Write_DatLCD1602('C');
}
read_ds1302();
//顯示年
Write_ComLCD1602(0x80);
Write_DatLCD1602('2');
Write_ComLCD1602(0x81);
Write_DatLCD1602('0');
Write_ComLCD1602(0x82);
Write_DatLCD1602(Table_LCD[time_shi[6]]);
Write_ComLCD1602(0x83);
Write_DatLCD1602(Table_LCD[time_ge[6]]);
Write_ComLCD1602(0x84);
Write_DatLCD1602('/');
//顯示月
Write_ComLCD1602(0x85);
Write_DatLCD1602(Table_LCD[time_shi[4]]);
Write_ComLCD1602(0x86);
Write_DatLCD1602(Table_LCD[time_ge[4]]);
Write_ComLCD1602(0x87);
Write_DatLCD1602('/');
//顯示日
Write_ComLCD1602(0x88);
Write_DatLCD1602(Table_LCD[time_shi[3]]);
Write_ComLCD1602(0x89);
Write_DatLCD1602(Table_LCD[time_ge[3]]);
//顯示星期
Write_ComLCD1602(0x80+11);
Write_DatLCD1602(Table_LCD[time_ge[5]]);
//顯示時(shí)
Write_ComLCD1602(0x80+0x40);
Write_DatLCD1602(Table_LCD[time_shi[2]]);
Write_ComLCD1602(0x80+0x41);
Write_DatLCD1602(Table_LCD[time_ge[2]]);
Write_ComLCD1602(0x80+0x42);
Write_DatLCD1602(':');
//顯示分
Write_ComLCD1602(0x80+0x43);
Write_DatLCD1602(Table_LCD[time_shi[1]]);
Write_ComLCD1602(0x80+0x44);
Write_DatLCD1602(Table_LCD[time_ge[1]]);
Write_ComLCD1602(0x80+0x45);
Write_DatLCD1602(':');
//顯示秒
Write_ComLCD1602(0x80+0x46);
Write_DatLCD1602(Table_LCD[time_shi[0]]);
Write_ComLCD1602(0x80+0x47);
Write_DatLCD1602(Table_LCD[time_ge[0]]);
}
}
復(fù)制代碼
0.png
(7.2 KB, 下載次數(shù): 43)
下載附件
2018-3-24 03:01 上傳
所有資料51hei提供下載:
多功能數(shù)顯溫濕度計(jì).zip
(48.31 KB, 下載次數(shù): 172)
2018-3-23 21:17 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
wuxishun
時(shí)間:
2018-3-24 18:06
好資料,謝謝分享
作者:
秋水長(zhǎng)天
時(shí)間:
2018-3-25 21:39
學(xué)習(xí)一下,挺好的
作者:
2389378677
時(shí)間:
2021-6-7 20:42
有原理圖嗎
作者:
探險(xiǎn)家的15
時(shí)間:
2021-12-6 15:36
我使用oled12864單獨(dú)只顯示溫濕度,需要?jiǎng)h除那些程序?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1