加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)智能魚缸仿真LCD1602顯示( proteus仿真+程序+設(shè)計報告+講解視頻)

11/22 11:06
1449
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關(guān)方案
  • 方案介紹
    • 1. 主要功能:
    • 2. 講解視頻:
    • 3. 仿真
    • 4. 程序代碼
    • 5. 設(shè)計報告
    • 6. 設(shè)計資料內(nèi)容清單&&下載鏈接
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于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ī)芯片。

img

資料下載鏈接:

騰訊文檔】S0080 網(wǎng)盤鏈接

https://docs.qq.com/doc/DS0J3RGp0aWFTakhG

以下為本設(shè)計資料展示圖:

2. 講解視頻:

講解視頻包含仿真運行講解和代碼講解


基于51單片機(jī)的智能魚缸LCD1602顯示proteus仿真+程序+設(shè)計報告

3. 仿真

打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。顯示溫度,PH酸堿度和水位測量值和相關(guān)的閾值;

img

通過調(diào)整PH值滑動變阻器模擬傳感器數(shù)值動態(tài)變化,當(dāng)PH大于默認(rèn)閾值,警告燈亮。

img

水位低于閾值,進(jìn)水閥開始工作,指示燈點亮。水位大于閾值,出水閥開始工作,指示燈點亮。默認(rèn)水位正常范圍90-100cm;

imgimg

調(diào)整溫度低于閾值,加熱器啟動開始工作。

img

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é)論等

img

設(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

img

資料下載鏈接:

https://docs.qq.com/doc/DS0J3RGp0aWFTakhG

  • 設(shè)計資料獲取聯(lián)系方式.doc

相關(guān)推薦

電子產(chǎn)業(yè)圖譜