基於51微控制器的溫度採集系統

2021-08-20 11:51:05 字數 2688 閱讀 9153

下面是一張原理圖:

源**如下:

#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...