聚豐項(xiàng)目 > 冰箱濕度顯示與預(yù)警系統(tǒng)
冰箱濕度顯示與預(yù)警系統(tǒng)是以89C52單片機(jī)為數(shù)據(jù)處理與外設(shè)控制核心,外接有IDT濕度傳感器模塊、液晶顯示模塊、按鍵控制模塊與報警模塊。IDT濕度傳感器具有精度高(14位)、轉(zhuǎn)換速率快、集成度高(內(nèi)部集成14位AD轉(zhuǎn)換與并轉(zhuǎn)串電路)等特點(diǎn)。裝置可根據(jù)用戶需要設(shè)定相應(yīng)的預(yù)警值,報警模塊聲光并用,增大了被用戶感知的概率。
沉迷于電路板
分享沉迷于電路板
團(tuán)隊成員
周俊 焊工
1、傳感器HS3001
HS300x系列是一款高精度,完全校準(zhǔn)的相對濕度和溫度傳感器。 MEMS傳感器具有專有的傳感器級保護(hù)功能,可確保高可靠性和長期穩(wěn)定性。集成校準(zhǔn)和溫度補(bǔ)償邏輯通過標(biāo)準(zhǔn)I2C輸出提供完全校正的濕度值和溫度值。無需用戶校準(zhǔn)輸出數(shù)據(jù)。高精度,快速測量響應(yīng)時間和長期穩(wěn)定性以及小封裝尺寸使HS300x系列成為從便攜式設(shè)備到專為惡劣環(huán)境設(shè)計的產(chǎn)品的廣泛應(yīng)用的理想選擇。 HS300x系列數(shù)字傳感器可精確測量相對濕度和溫度水平。測量數(shù)據(jù)經(jīng)過內(nèi)部校正和補(bǔ)償,可在很寬的溫度和濕度范圍內(nèi)進(jìn)行精確操作 - 無需用戶校準(zhǔn)。
2、IIC通信協(xié)議
當(dāng)主機(jī)發(fā)送0 START位(S)時,啟動傳感器傳輸。當(dāng)主機(jī)發(fā)送1個STOP位(P)時,傳輸終止。這些位僅在SCL線為高電平時發(fā)送(波形見圖)。主機(jī)一旦設(shè)置START條件,就以規(guī)定的數(shù)據(jù)速率切換SCL線,為后續(xù)數(shù)據(jù)傳輸提供時鐘。SDA線上的數(shù)據(jù)始終在SCL線的上升沿采樣,并且在SCL為高電平時必須保持穩(wěn)定,以防止錯誤的START或STOP條件。
啟動傳感器需要寫命令將HS300x從休眠模式喚醒。通過發(fā)送7位從地址,然后發(fā)送第8位= 0(WRITE)來啟動測量請求。傳感器測量周期包括濕度和溫度轉(zhuǎn)換,然后是數(shù)字信號處理器(DSP)校正計算。傳感器在測量周期結(jié)束時,數(shù)字輸出寄存器將在斷電前更新。輸出始終縮放為14位。位的順序是big-endian。
在測量周期結(jié)束時,可以獲取有效數(shù)據(jù)。 DF結(jié)果的狀態(tài)位可用于檢測數(shù)據(jù)是有效還是失效(參見第6.7節(jié));否則,在執(zhí)行DF之前等待測量完成。 DF命令以7位從地址開始,后跟第8位= 1(READ)。作為從機(jī)的HS300x發(fā)送表示成功的確認(rèn)(ACK)。 HS300x返回的數(shù)據(jù)字節(jié)數(shù)由主機(jī)發(fā)送NACK和STOP條件時確定。在前兩個字節(jié)中提取全部14位濕度數(shù)據(jù)。第一個字節(jié)的兩個MSB是狀態(tài)位。rn14位溫度數(shù)據(jù)跟隨濕度數(shù)據(jù)。第四個數(shù)據(jù)字節(jié)的最后兩位(LSB)未確定,應(yīng)該被屏蔽掉。在不需要溫度數(shù)據(jù)的情況下,可以通過在第二字節(jié)之后發(fā)送NACK來終止讀取。
3、數(shù)據(jù)處理
HS300x的整個輸出為4個字節(jié)。相對濕度(百分比)和溫度(攝氏度)分別用等式1和等式2計算。
4、89C5單片機(jī)
89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。
5、液晶顯示模塊
LCD12864帶中文字庫的128X64 是一種具有4 位/8 位并行、2 線或3 線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體 中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192 個16*16 點(diǎn)漢字,和128 個16*8 點(diǎn)ASCII 字符 集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4 行16×16 點(diǎn) 陣的漢字。 也可完成圖形顯示。低電壓低功耗是其又一顯著特點(diǎn)。
6、報警模塊
呼吸燈和蜂鳴器構(gòu)成聲光報警電路。
#include
#define uchar unsigned char
#define uint unsigned int
sbit led=P2^2;
unsigned char num=0;
unsigned char num1=0;
unsigned char num2=0;
unsigned char num3=0;
unsigned char code dis1[]= {"日期:2019.1.1"};
unsigned char code dis2[]= {"濕度:"};
unsigned char code dis3[]= {"溫度:"};
unsigned char code dis4[]= {"濕度預(yù)警值:"};
unsigned char code s[13]= {"0123456789.%"};
unsigned char dis5[7];
unsigned char dis6[8];
unsigned char dis7[3];
unsigned char dis8[4];
unsigned char key;
unsigned int c,d,m;
void delay_1ms(int x);
void read(); //IIC數(shù)據(jù)讀取函數(shù)(四個字節(jié))
void lcd_start();
void lcd_shuju(); //數(shù)據(jù)顯示函數(shù)
void shujuchuli(); //數(shù)據(jù)處理函數(shù)
void Timer0();
void Timer0Init();
void lcd_yjz(); //預(yù)警值顯示函數(shù)
void yjz();
void main()
{
unsigned int i=0,n=0;
lcd_init(); //LCD12864初始化
lcd_start(); //LCD基本顯示內(nèi)容
Timer0Init();
while(1) //按鍵輸入
{
key=KeyDown();
if(key==12)
{
n=1;
TR0=0; //打開定時器
delay_1ms(10);
}
if(key==15)
{
TR0=1;
delay_1ms(10);
n=0;
}
if(n==1)
{
if(key!=0)
{
dis8[i]=s[key];
delay_1ms(10);
lcd_yjz();
i++;
if(i==3)
{
n=0;
i=0;
}
}
}
if(m==5)
{
shujuchuli();
wela=0;
dula=0;
delay_1ms(1);
lcd_init1();
lcd_shuju();
yjz();
m=0;
}
}
}
使用的開發(fā)平臺:Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。
(0.00 MB)下載
沉迷于電路板: 太丑了
回復(fù)