標(biāo)題: 基于51單片機(jī)實鐘、土壤濕度檢測、空氣溫度檢測程序 [打印本頁]
作者: 長風(fēng)__靜 時間: 2019-12-26 16:28
標(biāo)題: 基于51單片機(jī)實鐘、土壤濕度檢測、空氣溫度檢測程序
項目是在相應(yīng)環(huán)境中檢測土壤濕度,以及檢測空氣溫度。
軟件環(huán)境:Keil C51軟件 硬件環(huán)境:KST 51開發(fā)( 自帶 溫度、顯示器模塊)
使用模塊:
土壤濕度傳感器 PCF8591 AD轉(zhuǎn)換模塊 DS1302時鐘模塊
土壤濕度傳感器1.傳感器適用于土壤的濕度檢測
2.比較器采用LM393芯片,工作性能穩(wěn)定
3.工作電壓3.3V-5V
4.模塊中藍(lán)色的電位器是用于土壤濕度的閥值調(diào)節(jié),順時針調(diào)節(jié),控制的濕度會越大,逆時針越;
5.數(shù)字量輸出D0可以與單片機(jī)直接相連,通過單片機(jī)來檢測高低電平,由此來檢測土壤濕度;
6.小板模擬量輸出AO可以和AD模塊相連,通過AD轉(zhuǎn)換,可以獲得土壤濕度更精確的數(shù)值;
PCF8591 AD轉(zhuǎn)樣模塊PCF8591 是具有I2C 總線接口的8 位A/D 及D/A 轉(zhuǎn)換器。有4 路A/D 轉(zhuǎn)換輸入,1 路D/A 模擬輸出。這就是說,它既可以作A/D 轉(zhuǎn)換也可以作D/A 轉(zhuǎn)換。A/D 轉(zhuǎn)換為逐次比較型。電源電壓典型值為5V。
AIN0~AIN3:模擬信號輸入端。
A0~A3:引腳地址端。
VSS:電源負(fù)極。
SDA、SCL:I2C 總線的數(shù)據(jù)線、時鐘線。
OSC:外部時鐘輸入端,內(nèi)部時鐘輸出端。
EXT:內(nèi)部、外部時鐘選擇線,使用內(nèi)部時鐘時EXT 接地。
AGND:模擬信號地。
VREF:基準(zhǔn)電源端。
AOUT:D/A 轉(zhuǎn)換輸出端。
VDD:電源端。(2.5~6V)
本模塊左邊和右邊分別外擴(kuò)2路排針接口,分別說明如下:
左邊 AOUT 芯片DA輸出接口
AINO芯片模擬輸入接口0 我在使用的時候接的時A0,接的是光敏傳感器的AO口;
AIN1芯片模擬輸入接口1
AIN2芯片模擬輸入接口2
AIN3芯片模擬輸入接口3
右邊 SCL IIC時鐘接口 接KST 51開發(fā)板的SCL 口
SDA IIC數(shù)字接口 接KST 51開發(fā)板的SDA口
GND 模塊地 外接地
VCC 電源接口 外接3.3v-5v 我用的是3.3
我用的是pcf8591模塊。包含了熱敏和光敏電阻。
模塊共有3個紅色短路帽,分別作用如下:
P4 接上P4短路帽,選擇熱敏電阻接入電路
P5 接上P5短路帽,選擇光敏電阻接入電路
P6 接上P6短路帽,選擇0-5V可調(diào)電壓接入電路
土壤濕度傳感器主程序:
unsigned int val;
unsignedchar str[10];
EA= 1;
ConfigTimer0(10);
lcd1602Init();
while(1)
{
if(flag300ms)
{
flag300ms= 0;
GetADCValue(3);//獲取土壤濕度
// str = *INT8UtostrHEX(val);
lcd1602Display(0,1,INT8UtostrHEX(val));//顯示到液晶上
}
}
PCF8591 AD轉(zhuǎn)樣模塊主程序:
/*讀取當(dāng)前的ADC轉(zhuǎn)換值,、chn-ADC通道號0-3*/
unsigned char GetADCValue(unsigned charchn)
{
unsignedchar val;
Start_I2c();
if(!writeI2C(0x91<<1))//尋址PCF8591,如未答應(yīng),則停止操作并返回0
{
Stop_I2c();
return0;
}
writeI2C(0x40|chn);//寫入控制字節(jié),選擇轉(zhuǎn)換通道
Start_I2c();
writeI2C((0x48<<1)|0x01);//尋址PCF8591,指定后續(xù)為讀操作
NoAckI2c();//先空讀一個字節(jié),提供采樣轉(zhuǎn)換時間
*str= ReadADC();//讀取剛剛轉(zhuǎn)換完的值
Stop_I2c();
returnval;
-
-
項目源碼.rar
2019-12-26 16:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
62.19 KB, 下載次數(shù): 51, 下載積分: 黑幣 -5
作者: -Frank- 時間: 2020-2-9 14:41
MAIN.C(102): warning C206: 'GetADCValue': missing function-prototype
MAIN.C(102): error C267: 'GetADCValue': requires ANSI-style prototype
Target not created
編譯不了啊,兄弟你解決了嗎
作者: 懶得想 時間: 2020-7-24 22:12
我需要一個能用的程序
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |