標(biāo)題: 基于51單片機(jī)的溫濕度設(shè)計(jì)(1602液晶顯示) [打印本頁]
作者: jiaxw 時(shí)間: 2017-4-18 15:27
標(biāo)題: 基于51單片機(jī)的溫濕度設(shè)計(jì)(1602液晶顯示)
設(shè)計(jì)總說明
溫濕度的測量應(yīng)用范圍是很廣的,對溫濕度測量系統(tǒng)的研究也具有深遠(yuǎn)意義,本課題針對國內(nèi)外對溫濕度測量系統(tǒng)的研究與發(fā)展?fàn)顩r,分析了目前溫濕度測量系統(tǒng)存在的主要問題,設(shè)計(jì)了一種基于單片機(jī)的溫濕度測量系統(tǒng),對某些有著特殊要求溫度和濕度的場合實(shí)現(xiàn)長期、穩(wěn)定、實(shí)時(shí)、自動的監(jiān)測。本設(shè)計(jì)主要由硬件電路和軟件電路兩部分組成,系統(tǒng)通過溫濕度檢測電路,把采集到的信號傳給單片機(jī),通過單片機(jī)來處理采集到的信號并通過LCD顯示出來,如果溫濕度過高或過低,報(bào)警電路會自動報(bào)警。它以STC89C52單片機(jī)為核心,采用DHT11集成溫濕度傳感器,實(shí)現(xiàn)一種智能、快捷、方便的溫濕度測量系統(tǒng)。整個(gè)系統(tǒng)由溫濕度檢測電路、LCD顯示電路、鍵盤電路、報(bào)警電路和單片機(jī)等組成。設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)簡單緊湊,功耗較低,抗干擾能力強(qiáng)、總體性能比較好,符合了智能儀器儀表小型化的潮流,為今后開發(fā)高性能和商品化的溫濕度測量儀器奠定了良好的基礎(chǔ)。
程序在3樓
作者: jiaxw 時(shí)間: 2017-4-18 15:34
#include <reg52.h> // 頭文件包含
#include <intrins.h>
#define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替
sfr ISP_DATA = 0xe2; // 數(shù)據(jù)寄存器
sfr ISP_ADDRH = 0xe3; // 地址寄存器高八位
sfr ISP_ADDRL = 0xe4; // 地址寄存器低八位
sfr ISP_CMD = 0xe5; // 命令寄存器
sfr ISP_TRIG = 0xe6; // 命令觸發(fā)寄存器
sfr ISP_CONTR = 0xe7; // 命令寄存器
sbit LcdRs_P = P1^2; // 1602液晶的RS管腳
sbit LcdRw_P = P1^3; // 1602液晶的RW管腳
sbit LcdEn_P = P1^4; // 1602液晶的EN管腳
sbit DHT11_P = P1^0; // 溫濕度傳感器DHT11數(shù)據(jù)接入
sbit LedTL_P = P3^4; // 溫度過低報(bào)警指示燈
sbit LedTH_P = P3^5; // 溫度過高報(bào)警指示燈
sbit LedHL_P = P3^6; // 濕度過低報(bào)警指示燈
sbit LedHH_P = P3^7; // 濕度過高報(bào)警指示燈
sbit Buzzer_P = P1^1; // 蜂鳴器
sbit KeySet_P = P1^5; // “設(shè)置”按鍵的管腳
sbit KeyDown_P = P1^6; // “減”按鍵的管腳
sbit KeyUp_P = P1^7; // “加”按鍵的管腳
uchar temp; // 保存溫度
uchar humi; // 保存濕度
uchar AlarmTL; // 溫度下限報(bào)警值
uchar AlarmTH; // 溫度上限報(bào)警值
uchar AlarmHL; // 濕度下限報(bào)警值
uchar AlarmHH; // 濕度上限報(bào)警值
/*********************************************************/
// 單片機(jī)內(nèi)部EEPROM不使能
/*********************************************************/
void ISP_Disable()
{
ISP_CONTR = 0;
ISP_ADDRH = 0;
ISP_ADDRL = 0;
}
/*********************************************************/
// 從單片機(jī)內(nèi)部EEPROM讀一個(gè)字節(jié),從0x2000地址開始
/*********************************************************/
unsigned char EEPROM_Read(unsigned int add)
{
ISP_DATA = 0x00;
ISP_CONTR = 0x83;
ISP_CMD = 0x01;
ISP_ADDRH = (unsigned char)(add>>8);
ISP_ADDRL = (unsigned char)(add&0xff);
// 對STC89C51系列來說,每次要寫入0x46,再寫入0xB9,ISP/IAP才會生效
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
_nop_();
ISP_Disable();
return (ISP_DATA);
}
/*********************************************************/
// 往單片機(jī)內(nèi)部EEPROM寫一個(gè)字節(jié),從0x2000地址開始
/*********************************************************/
void EEPROM_Write(unsigned int add,unsigned char ch)
{
ISP_CONTR = 0x83;
ISP_CMD = 0x02;
ISP_ADDRH = (unsigned char)(add>>8);
ISP_ADDRL = (unsigned char)(add&0xff);
ISP_DATA = ch;
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
_nop_();
ISP_Disable();
}
/*********************************************************/
// 擦除單片機(jī)內(nèi)部EEPROM的一個(gè)扇區(qū)
// 寫8個(gè)扇區(qū)中隨便一個(gè)的地址,便擦除該扇區(qū),寫入前要先擦除
/*********************************************************/
void Sector_Erase(unsigned int add)
{
ISP_CONTR = 0x83;
ISP_CMD = 0x03;
ISP_ADDRH = (unsigned char)(add>>8);
ISP_ADDRL = (unsigned char)(add&0xff);
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
_nop_();
ISP_Disable();
}
/*********************************************************/
// 毫秒級的延時(shí)函數(shù),time是要延時(shí)的毫秒數(shù)
/*********************************************************/
void DelayMs(uint time)
{
uint i,j;
for(i=0;i<time;i++)
for(j=0;j<112;j++);
}
/*********************************************************/
// 1602液晶寫命令函數(shù),cmd就是要寫入的命令
/*********************************************************/
void LcdWriteCmd(uchar cmd)
{
LcdRs_P = 0;
LcdRw_P = 0;
LcdEn_P = 0;
P0=cmd;
DelayMs(2);
LcdEn_P = 1;
DelayMs(2);
LcdEn_P = 0;
}
/*********************************************************/
// 1602液晶寫數(shù)據(jù)函數(shù),dat就是要寫入的命令
/*********************************************************/
void LcdWriteData(uchar dat)
{
LcdRs_P = 1;
LcdRw_P = 0;
LcdEn_P = 0;
P0=dat;
DelayMs(2);
LcdEn_P = 1;
DelayMs(2);
作者: jiaxw 時(shí)間: 2017-4-18 15:37
完整程序如下
-
-
程序(word版).doc
2017-4-18 15:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
86 KB, 下載次數(shù): 127, 下載積分: 黑幣 -5
總程序
作者: 2066372115 時(shí)間: 2018-6-15 13:11
xiexie樓主
作者: 青寧 時(shí)間: 2018-8-28 08:01
謝謝樓主
作者: 惡趣味請問 時(shí)間: 2018-8-28 16:26
不錯(cuò)喲,下載過來學(xué)習(xí)一下
作者: 198938782 時(shí)間: 2019-10-11 21:26
謝謝樓主
作者: chickji 時(shí)間: 2019-10-12 12:39
謝謝樓主,,學(xué)習(xí)下
作者: killjoy 時(shí)間: 2021-3-16 18:16
沒有電路圖嗎
作者: candy0122 時(shí)間: 2022-4-10 07:34
有仿真電路圖嗎
作者: 流星颯沓 時(shí)間: 2023-7-21 16:02
有電路連接圖嗎
作者: 15699183053 時(shí)間: 2023-7-23 11:26
不錯(cuò)喲,下載過來學(xué)習(xí)一下
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |