基于单片机的智能鱼缸系统设计(#0471)
功能描述
1、采用51/52單片機(jī)(通用)作為主控芯片;
2、采用1602顯示:水濁度的當(dāng)前值及換水值、水溫的當(dāng)前值及報(bào)警值;
3、采用TS-300B傳感器+ADC0832檢測水濁度;
4、采用DS18B20檢測水溫;
5、水濁度超標(biāo)(換水值)時(shí),啟動(dòng)進(jìn)水水泵、出水水泵;
6、水溫超標(biāo)(報(bào)警值)時(shí),蜂鳴器報(bào)警;
7、可通過按鍵對(duì)換水值、報(bào)警值進(jìn)行修改設(shè)置。
?
電路設(shè)計(jì)
采用Altium?Designer作為電路設(shè)計(jì)工具。Altium?Designer通過把原理圖設(shè)計(jì)、PCB繪制編輯、拓?fù)溥壿嬜詣?dòng)布線、信號(hào)完整性分析和設(shè)計(jì)輸出等技術(shù)的完美融合,為設(shè)計(jì)者提供了全新的設(shè)計(jì)解決方案,使設(shè)計(jì)者可以輕松進(jìn)行設(shè)計(jì),熟練使用這一軟件必將使電路設(shè)計(jì)的質(zhì)量和效率大大提高。
單片機(jī)管腳說明:
P0端口(P0.0-P0.7):P0口為一個(gè)8位漏極開路雙向I/O口,每個(gè)引腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1端口(P1.0-P1.7):P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高電平,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2端口(P2.0-P2.7):P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口,用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。
P3端口(P3.0-P3.7):P3口管腳是一個(gè)帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL)。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。
?
仿真設(shè)計(jì)
采用Proteus作為仿真設(shè)計(jì)工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。
?
主程序設(shè)計(jì)
void main (void) {u8 key;wendu=check_wendu(); //初始化時(shí)調(diào)用溫度讀取函數(shù) 防止開機(jī)85°Cinit(); //調(diào)用定時(shí)計(jì)數(shù)器的設(shè)置子函數(shù)Init1602(); //調(diào)用初始化顯示函數(shù)LCD_Write_String(0,0,"SET T:00 E:000"); //開機(jī)界面LCD_Write_String(1,0,"NOW T:00.0 E:000"); delay_ms(1000);wendu=check_wendu(); //初始化時(shí)調(diào)用溫度讀取函數(shù) 防止開機(jī)85°Cwhile (1) //主循環(huán){key=Key_Scan(); //按鍵掃描if(delay_1s==20){ delay_1s=0;zhuodu=Adc0832(0); //讀取氣體值}else{zhuodu=zhuodu;}wendu=check_wendu(); //讀取溫度值if(key==KEY_SET){Mode++;}switch(Mode) //判斷模式的值{case 0: //監(jiān)控模式{Display_1602(yushe_wendu,yushe_zhuodu,wendu,zhuodu); //顯示預(yù)設(shè)溫度,預(yù)設(shè)氣體,溫度值,氣體值if(zhuodu>=yushe_zhuodu) //氣體值大于等于預(yù)設(shè)值時(shí){Beng1=0;Beng2=0;}else //氣體值小于預(yù)設(shè)值時(shí){Beng1=1;Beng2=1;}if(wendu>=(yushe_wendu*10)) //溫度大于等于預(yù)設(shè)溫度值時(shí)(為什么是大于預(yù)設(shè)值*10:因?yàn)槲覀円@示的溫度是有小數(shù)點(diǎn)后一位,是一個(gè)3位數(shù),25.9°C時(shí)實(shí)際讀的數(shù)是259,所以判斷預(yù)設(shè)值時(shí)將預(yù)設(shè)值*10){Buzzer=0; //打開蜂鳴器報(bào)警}if(wendu<(yushe_wendu*10)) {Buzzer=1; //停止報(bào)警}break;}......?
源文件獲取
關(guān)注公眾號(hào)-電子開發(fā)圈,首頁發(fā)送?“魚缸” 獲取;
?
總結(jié)
以上是生活随笔為你收集整理的基于单片机的智能鱼缸系统设计(#0471)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PPT的逻辑思考方式
- 下一篇: IOS 关于拍照界面,复制,粘贴等菜单的