基于51單片機(jī)智能魚缸仿真LCD顯示( proteus仿真+程序+設(shè)計報告+講解視頻)
仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計編號:S0080
1. 主要功能:
基于51單片機(jī)的智能魚缸檢測控制系統(tǒng)proteus仿真
1.系統(tǒng)通過DS18B20檢測魚缸溫度,通過DAC0832采集PH傳感器和水位傳感器數(shù)據(jù);
2.溫度低于閾值系統(tǒng)啟動加熱功能;默認(rèn)正常范圍是大于25攝氏度;
3.水位過低系統(tǒng)自動啟動加水閥,水位過高系統(tǒng)自動啟動排水閥;默認(rèn)正常范圍90-100cm;
4.PH值過高或者過低,系統(tǒng)亮報警燈;默認(rèn)正常范圍6-8;
5.可以通過按鍵調(diào)整魚缸溫度,PH酸堿度和水位閾值;
6.通過LCD1602顯示溫度,PH酸堿度和水位測量值和相關(guān)的閾值;
需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號,內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
資料下載鏈接:
【騰訊文檔】S0080 網(wǎng)盤鏈接
https://docs.qq.com/doc/DS0J3RGp0aWFTakhG
以下為本設(shè)計資料展示圖:
2. 講解視頻:
講解視頻包含仿真運行講解和代碼講解
基于51單片機(jī)的智能魚缸LCD1602顯示proteus仿真+程序+設(shè)計報告
3. 仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。顯示溫度,PH酸堿度和水位測量值和相關(guān)的閾值;
通過調(diào)整PH值滑動變阻器模擬傳感器數(shù)值動態(tài)變化,當(dāng)PH大于默認(rèn)閾值,警告燈亮。
水位低于閾值,進(jìn)水閥開始工作,指示燈點亮。水位大于閾值,出水閥開始工作,指示燈點亮。默認(rèn)水位正常范圍90-100cm;
調(diào)整溫度低于閾值,加熱器啟動開始工作。
4. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合視頻理解代碼含義。
// 引入51單片機(jī)頭文件
完整代碼見文章后面下載鏈接壓縮包
#include "reg51.h"
// 引入LCD1602液晶顯示模塊驅(qū)動頭文件
#include "lcd1602.h"
// 引入DS18B20溫度傳感器驅(qū)動頭文件
#include "Ds18b20.h"
// 引入ADC0832模數(shù)轉(zhuǎn)換器驅(qū)動頭文件
#include "ADC0832.h"
// 引入PID和PWM控制相關(guān)頭文件
#include"pid_pwm.h"
// 定義uchar類型(無符號字符型)
#define uchar unsigned char
// 定義uint類型(無符號整型)
#define uint unsigned int
// 定義按鈕引腳
sbit k1=P3^2; // 按鈕k1
sbit k2=P3^3; // 按鈕k2
sbit k3=P3^4; // 按鈕k3
sbit k4=P3^5; // 按鈕k4
sbit k5=P3^6; // 按鈕k5
sbit k6=P3^7; // 按鈕k6
// 定義輸出控制引腳
sbit out1=P2^4; // 輸出控制out1
sbit out2=P2^5; // 輸出控制out2
sbit out3=P2^6; // 輸出控制out3
sbit out4=P2^7; // 輸出控制out4
// 定義PH值高低電平檢測引腳
sbit ph_h=P3^0;
sbit ph_l=P3^1;
// 定義系統(tǒng)變量
uchar time=0, mode=0; // 計時變量time,模式變量mode
uchar wendu=0, ph=0, water=0; // 溫度變量wendu,pH值變量ph,水位變量water
uchar lim1=25, lim2=7, lim3=100; // 溫度閾值lim1,pH閾值lim2,水位閾值lim3
uchar disp1[]="T:000 P:00 H:000"; // 顯示緩沖區(qū)1
uchar disp2[]=" 000 00 000"; // 顯示緩沖區(qū)2
uchar pwm=0; // PWM占空比變量
//主函數(shù)
void main()
{
uchar i=0;
init_1602(); // 初始化LCD1602液晶顯示器
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
while(1)
{
//PWM輸出
if(i<99)
i++;
else
i=0;
if(i<pwm)
out4=0;
else
out4=1;
//按鍵檢測
if(!k1) // 溫度閾值遞增
{
if(lim1<120)
lim1++;
while(!k1); // 等待按鍵釋放
}
if(!k2)
{
if(lim1>0)
lim1--;
while(!k2); // 溫度閾值遞減
}
if(!k3)
{
if(lim2<14)
lim2++; // PH閾值遞增
while(!k3);
}
if(!k4)
{
if(lim2>0)
lim2--; // PH閾值遞減
while(!k4);
}
if(!k5)
{
if(lim3<127)
lim3++; // 水位閾值遞增
while(!k5);
}
if(!k6)
{
if(lim3>0)
lim3--; // 水位閾值遞減
while(!k6);
}
}
}
//定時器中斷
void Timer0() interrupt 1
{
uint i=0;
if(time<10)//0.5s
time++;
else
{
time=0;
Ds18b20ReadTemp();//測溫
wendu=ds18b20_temp;
ph=ADC(1);//PH
i=ph;
ph=i*14/127; // 將模擬值轉(zhuǎn)換為pH范圍
water=ADC(2);//水位
// 更新顯示緩沖區(qū)內(nèi)容
// ...更新溫度、pH值、水位顯示字符串...
disp1[2]=wendu/100+0x30;
disp1[3]=wendu%100/10+0x30;
disp1[4]=wendu%10+0x30;
disp1[8]=ph/10+0x30;
disp1[9]=ph%10+0x30;
disp1[13]=water/100+0x30;
disp1[14]=water%100/10+0x30;
disp1[15]=water%10+0x30;
write_string(1,0,disp1);
disp2[2]=lim1/100+0x30;
disp2[3]=lim1%100/10+0x30;
disp2[4]=lim1%10+0x30;
disp2[8]=lim2/10+0x30;
disp2[9]=lim2%10+0x30;
disp2[13]=lim3/100+0x30;
disp2[14]=lim3%100/10+0x30;
disp2[15]=lim3%10+0x30;
write_string(2,0,disp2);
// 根據(jù)設(shè)定閾值計算PWM占空比
pwm=PID(lim1,wendu);
// 根據(jù)pH值進(jìn)行高低電平控制
if(ph>lim2+1)
ph_h=0; // pH過高關(guān)閉高電平
else
ph_h=1; // pH正?;謴?fù)高電平
if(ph<lim2-1)
ph_l=0; // pH過低關(guān)閉低電平
else
ph_l=1; // pH正?;謴?fù)低電平
// 根據(jù)水位進(jìn)行排水閥控制
if(water>lim3)
out2=0; // 水位過高開啟排水閥
else
out2=1; // 水位正常關(guān)閉排水閥
// 根據(jù)水位進(jìn)行排水閥控制
if(water<lim3-10)
out1=0; // 水位過低開啟進(jìn)水閥
else
out1=1; // 水位正常關(guān)閉進(jìn)水閥
}
// 重置定時器初值
TH0=0X3C;
TL0=0XB0;
}
5. 設(shè)計報告
8335字設(shè)計報告,內(nèi)容包括硬件設(shè)計、軟件設(shè)計、軟硬件框圖、調(diào)試、結(jié)論等
設(shè)計中的智能魚缸檢測控制系統(tǒng)具備了根據(jù)預(yù)設(shè)閾值自動調(diào)節(jié)相關(guān)設(shè)備的能力。例如,當(dāng)檢測到魚缸內(nèi)水溫低于設(shè)定的適宜溫度時,系統(tǒng)會立即啟動加熱裝置,確保水溫恒定在最適宜魚類生活的范圍內(nèi);同時,針對水位過低或過高情況,系統(tǒng)也能自動開啟加水閥或排水閥,維持水位在安全合理區(qū)間;另外,針對至關(guān)重要的水質(zhì)指標(biāo)——PH值,系統(tǒng)亦能及時捕捉其波動,并在PH值過高或過低時觸發(fā)報警提示,甚至聯(lián)動酸堿度調(diào)節(jié)設(shè)備進(jìn)行調(diào)整。
為了驗證并優(yōu)化設(shè)計的智能魚缸檢測控制系統(tǒng),我們還將借助功能強(qiáng)大的Proteus仿真平臺進(jìn)行詳細(xì)的系統(tǒng)建模與調(diào)試。Proteus的強(qiáng)大仿真能力使得我們在實際硬件搭建前就能完成系統(tǒng)功能的設(shè)計與驗證,大大縮短開發(fā)周期,降低研發(fā)成本,從而高效地將設(shè)計方案轉(zhuǎn)化為實用性強(qiáng)、可靠性高的智能魚缸檢測控制系統(tǒng),最終為用戶提供一個高度自動化、精準(zhǔn)調(diào)控、操作便捷的最優(yōu)養(yǎng)殖環(huán)境解決方案。
6. 設(shè)計資料內(nèi)容清單&&下載鏈接
資料設(shè)計資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計報告、軟硬件設(shè)計框圖等。
0、常見使用問題及解決方法–必讀?。。?!
1、程序
2、proteus仿真
3、功能要求
4、軟硬件流程圖
5、開題報告
6、設(shè)計報告
7、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊
答辯技巧
設(shè)計報告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計.url
資料下載鏈接:
https://docs.qq.com/doc/DS0J3RGp0aWFTakhG