標題: 基于51單片機的溫濕度設計(1602液晶顯示) [打印本頁]
作者: jiaxw 時間: 2017-4-18 15:27
標題: 基于51單片機的溫濕度設計(1602液晶顯示)
設計總說明
溫濕度的測量應用范圍是很廣的,對溫濕度測量系統的研究也具有深遠意義,本課題針對國內外對溫濕度測量系統的研究與發展狀況,分析了目前溫濕度測量系統存在的主要問題,設計了一種基于單片機的溫濕度測量系統,對某些有著特殊要求溫度和濕度的場合實現長期、穩定、實時、自動的監測。本設計主要由硬件電路和軟件電路兩部分組成,系統通過溫濕度檢測電路,把采集到的信號傳給單片機,通過單片機來處理采集到的信號并通過LCD顯示出來,如果溫濕度過高或過低,報警電路會自動報警。它以STC89C52單片機為核心,采用DHT11集成溫濕度傳感器,實現一種智能、快捷、方便的溫濕度測量系統。整個系統由溫濕度檢測電路、LCD顯示電路、鍵盤電路、報警電路和單片機等組成。設計的系統結構簡單緊湊,功耗較低,抗干擾能力強、總體性能比較好,符合了智能儀器儀表小型化的潮流,為今后開發高性能和商品化的溫濕度測量儀器奠定了良好的基礎。
程序在3樓
作者: jiaxw 時間: 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; // 數據寄存器
sfr ISP_ADDRH = 0xe3; // 地址寄存器高八位
sfr ISP_ADDRL = 0xe4; // 地址寄存器低八位
sfr ISP_CMD = 0xe5; // 命令寄存器
sfr ISP_TRIG = 0xe6; // 命令觸發寄存器
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數據接入
sbit LedTL_P = P3^4; // 溫度過低報警指示燈
sbit LedTH_P = P3^5; // 溫度過高報警指示燈
sbit LedHL_P = P3^6; // 濕度過低報警指示燈
sbit LedHH_P = P3^7; // 濕度過高報警指示燈
sbit Buzzer_P = P1^1; // 蜂鳴器
sbit KeySet_P = P1^5; // “設置”按鍵的管腳
sbit KeyDown_P = P1^6; // “減”按鍵的管腳
sbit KeyUp_P = P1^7; // “加”按鍵的管腳
uchar temp; // 保存溫度
uchar humi; // 保存濕度
uchar AlarmTL; // 溫度下限報警值
uchar AlarmTH; // 溫度上限報警值
uchar AlarmHL; // 濕度下限報警值
uchar AlarmHH; // 濕度上限報警值
/*********************************************************/
// 單片機內部EEPROM不使能
/*********************************************************/
void ISP_Disable()
{
ISP_CONTR = 0;
ISP_ADDRH = 0;
ISP_ADDRL = 0;
}
/*********************************************************/
// 從單片機內部EEPROM讀一個字節,從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);
}
/*********************************************************/
// 往單片機內部EEPROM寫一個字節,從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();
}
/*********************************************************/
// 擦除單片機內部EEPROM的一個扇區
// 寫8個扇區中隨便一個的地址,便擦除該扇區,寫入前要先擦除
/*********************************************************/
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();
}
/*********************************************************/
// 毫秒級的延時函數,time是要延時的毫秒數
/*********************************************************/
void DelayMs(uint time)
{
uint i,j;
for(i=0;i<time;i++)
for(j=0;j<112;j++);
}
/*********************************************************/
// 1602液晶寫命令函數,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液晶寫數據函數,dat就是要寫入的命令
/*********************************************************/
void LcdWriteData(uchar dat)
{
LcdRs_P = 1;
LcdRw_P = 0;
LcdEn_P = 0;
P0=dat;
DelayMs(2);
LcdEn_P = 1;
DelayMs(2);
作者: jiaxw 時間: 2017-4-18 15:37
完整程序如下
-
-
程序(word版).doc
2017-4-18 15:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
86 KB, 下載次數: 127, 下載積分: 黑幣 -5
總程序
作者: 2066372115 時間: 2018-6-15 13:11
xiexie樓主
作者: 青寧 時間: 2018-8-28 08:01
謝謝樓主
作者: 惡趣味請問 時間: 2018-8-28 16:26
不錯喲,下載過來學習一下
作者: 198938782 時間: 2019-10-11 21:26
謝謝樓主
作者: chickji 時間: 2019-10-12 12:39
謝謝樓主,,學習下
作者: killjoy 時間: 2021-3-16 18:16
沒有電路圖嗎
作者: candy0122 時間: 2022-4-10 07:34
有仿真電路圖嗎
作者: 流星颯沓 時間: 2023-7-21 16:02
有電路連接圖嗎
作者: 15699183053 時間: 2023-7-23 11:26
不錯喲,下載過來學習一下
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
在线观看av不卡
|
国产一在线观看
|
97精品国产一区二区三区
|
欧美日韩亚洲视频
|
免费在线观看一级毛片
|
欧美精品福利
|
激情免费视频
|
久久久久久久久综合
|
老牛影视av一区二区在线观看
|
日韩欧美二区
|
欧美一区二区三区在线观看视频
|
一区二区国产在线观看
|
美女久久视频
|
欧美亚洲国产一区二区三区
|
精品国产一区二区在线
|
中文字幕一区二区三区四区五区
|
在线观看日韩精品视频
|
美女激情av
|
午夜视频一区二区三区
|
久久久国产一区二区三区
|
欧美日韩中文字幕在线
|
欧美精品黄
|
中文字幕一区二区三区四区
|
国产欧美精品区一区二区三区
|
精品一区视频
|
久久99视频免费观看
|
超碰免费在线
|
www.国产精品
|
caoporn视频在线|
久久91精品国产一区二区
|
久久国产精品一区二区
|
亚洲视频精品在线
|
久久久国产一区二区三区
|
精品欧美一区二区三区久久久
|
www.日韩在线
|
日日骚视频
|
欧美精品在线免费观看
|
在线国产一区二区三区
|
国产精品国产亚洲精品看不卡15
|
久久不卡
|
毛片视频免费观看
|