下面是一張原理圖:
源**如下:
#include #define uint unsigned int
#define uchar unsigned char
#include typedef bit bool ;
sbit io = p1^1 ;//(口線定義)
sbit bee=p1^0;
sbit rs = p2^5 ;
sbit rw = p2^6 ;
sbit ep = p2^7 ;
bit flag_300ms ;
sbit k1=p1^2;
sbit k2=p1^3;
sbit k3=p1^4;
uchar yemian=0;//(定義變數)
uchar flat=1;
uchar data_byte;
uchar rh,rl,th,tl;
uchar wendu,shidu;//報警的溫度和濕度
#include "eeprom52.h"
/****************************延時程式****************************/
void delay(uchar ms)
}void delay1()//延時10us
void longdelay(uchar s) //長延時
}/******************把資料儲存到微控制器內部eeprom中******************/
void write_eeprom()
/******************把資料從微控制器內部eeprom中讀出來*****************/
void read_eeprom()
/**************開機自檢eeprom初始化*****************/
void init_eeprom()
}/********************報警程式部分*******************/
void warn() //報警函式
if(rh>=shidu) //檢測的濕度高於設定的濕度值
if( th1; //停止報警
}}/************************lcd模組******************************************/
bool lcd_bz()//測試lcd忙碌狀態
void write_cmd(uchar cmd)// 寫指令
void write_addr(uchar addr)//寫位址
void write_byte(uchar dat)//寫位元組
void lcd_init()// 初始化
void display(uchar addr, uchar q)//在某一位址上顯示一位元組
/*********************** dht11測試模組***************************************/
void start()//開始訊號
uchar receive_byte()//接收乙個位元組
return data_byte;
}void receive()//接收資料
}}void showw() // 問候語函式
/*************定時器0初始化程式***************/
void time_init()
void key() //按鍵程式 選擇選單模式}}
}shezhi() //對裡面的數值進行修改
//濕度上限加
}if(yemian==2)
//濕度下限加
}write_eeprom(); //儲存資料 }}
if(!k3)
}if(yemian==2)
}write_eeprom(); //儲存資料 }}
}/***************************主程式*********************************/
void main()
if(flag_300ms == 1)
}
//********************yemian==1 溫度設定*************************==
if(yemian==1) //溫度
shezhi();
display(0x47,wendu/10+0x30); //溫度
display(0x48,wendu%10+0x30);
}//********************yemian==1濕度設定*************************=
if(yemian==2) //濕度設定
shezhi();
display(0x47,shidu/10+0x30); //濕度
display(0x48,shidu%10+0x30);}}
}/*************定時器0中斷服務程式***************/
void time0_int() interrupt 1
}
基於51微控制器的大氣溫度採集和記錄系統
1 引 言 大氣溫度的測量具有重要意義,一般是採用各種溫度計進行人工測量,並定時記錄測量結果,這種方法費時費工,十分不便。本文提出了一種非常小巧的大氣溫度測量和記錄裝置,能對範圍為 55 125 的溫度進行定時自動測量,同時記錄測量結果,精度最高可達0.0625 2 系統原理 系統結構如圖1所示。系...
基於51微控制器的溫度探測
這次的專案姑且算作舊瓶裝新酒吧,以前做過stm32和dht11的溫度探測,這一次是較為低價版的c51和ds18b20溫度探測。ds18b20是常用的數字溫度感測器,其輸出的是數碼訊號,具有體積小,硬體開銷低,抗干擾能力強,精度高的特點。個人感覺主要特點就是 低,這對於很多精度要求不高的量產產品來說很...
基於51微控制器的溫度濕度監控系統
今天筆者給大家介紹一種利用51微控制器的溫度模組製作乙個小空間的溫度濕度檢測系統,溫度檢測使用的是dht11,如果想將此專案移植到開發板上,需要自行修改管腳。原理截圖 源 如下 include include intrins.h typedef unsigned char uint8 typedef...