目錄
?具體實現功能
設計介紹
資料內容
全部內容
資料獲取
?具體實現功能
具體實現功能:
(1)檢測車內溫度及二氧化碳濃度并用lcd1602實時顯示。
(2)當人體紅外傳感器檢測到車內有人,且溫度或二氧化碳濃度上升到一定值時,將會發送報警短信,同時也會觸發語音模塊向車外報警求救,還能自動降下窗戶(或打開天窗)。
(3)如果車內無人,則不會觸發報警,溫度和二氧化碳濃度超過報警值時會亮燈。
仿真演示視頻:
基于51單片機的車內防窒息檢測報警系統
設計介紹
51單片機簡介
51單片是一種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機為眾多嵌入式控制應用系統提供靈活、高效的解決方案。
本設計所使用的芯片可兼容以下所有的51系列單片機(包括AT系列和STC系列)。
資料內容
仿真實現(protues8.7)
本設計利用protues8.7軟件實現仿真設計,具體如圖。
程序(Keil5)
本設計利用KEIL5軟件實現程序設計。
主函數如下:
///
void main (void)
{u8 key;u8 SmokeFlag = false;u8 TempFlag = false;u8 IntrudeFlag = false;char String[50];int i;wendu=check_wendu(); //初始化時調用溫度讀取函數 防止開機85°CInit1602(); //調用初始化顯示函數UsartInit();LCD_Write_String(0,0,"SET T:00 E:000"); //開機界面LCD_Write_String(1,0,"NOW T:00 E:000"); delay_ms(1000);wendu=check_wendu(); //初始化時調用溫度讀取函數 防止開機85°Cwhile (1) //主循環{key=Key_Scan(); //按鍵掃描if(key==KEY_SET){Mode++;}for(i=0;i<10;i++){CO2=Adc0832(0); //讀取CO2值wendu=check_wendu(); //讀取溫度值delay_ms(10);}switch(Mode) //判斷模式的值{case 0: //監控模式{Display_1602(yushe_wendu,yushe_CO2,wendu,CO2); //顯示預設溫度,預設CO2,溫度值,CO2值if(CO2>=yushe_CO2){Led_Y=0; //CO2指示燈亮}else{Led_Y=1;}if((CO2>=yushe_CO2)&&(s2==0)) //CO2值大于等于預設值時{Buzzer=0; //蜂鳴器報警Led_Y=0; //CO2指示燈亮 sprintf(String,"CO2 Alert Start!\r\n");SendStr(String);}else //CO2值小于預設值時{;}if(wendu>=(yushe_wendu*10)){Led_W=0;}else{Led_W=1;}if((wendu>=(yushe_wendu*10))&&(s2==0)) //溫度大于等于預設溫度值時(為什么是大于預設值*10:因為我們要顯示的溫度是有小數點后一位,是一個3位數,25.9°C時實際讀的數是259,所以判斷預設值時將預設值*10){Led_W=0; //打開溫度報警燈sprintf(String,"Temperature Alert Start!\r\n");SendStr(String);}else //溫度值小于預設值時{;}if(((CO2>=yushe_CO2)||(wendu>=(yushe_wendu*10)))&&(s2==0)){Buzzer=0;motor=0;}else{Buzzer=1;motor=1;}break;}case 1://預設溫度模式{SelectPosition(0,7) ; //指定位置write_com(0x0d); //陰影閃爍if(key==KEY_ADD) //加鍵按下{yushe_wendu++; //預設溫度值(閥值)加1if(yushe_wendu>=99) //當閥值加到大于等于99時yushe_wendu=99; //閥值固定為99LCD_Write_Char(0,6,yushe_wendu,2) ;//顯示預設溫度}if(key==KEY_MINUS) //減鍵按下{if(yushe_wendu<=1) //當溫度上限值減小到1時yushe_wendu=1; //固定為1yushe_wendu--; //預設溫度值減一,最小為0LCD_Write_Char(0,6,yushe_wendu,2) ;//顯示預設溫度}break; //執行后跳出switch}case 2: //預設CO2模式{SelectPosition(0,15) ; //指定位置 write_com(0x0d); //打開顯示 無光標 光標閃爍if(key==KEY_ADD) //加鍵按下{if(yushe_CO2>=255) //當閥值加到大于等于255時yushe_CO2=254; //閥值固定為254yushe_CO2++; //預設CO2值(閥值)加1,最大為255LCD_Write_Char(0,13,yushe_CO2,3) ;//顯示預設CO2}if(key==KEY_MINUS) //減鍵按下{if(yushe_CO2<=1) //當CO2上限值減小到1時yushe_CO2=1; //固定為1yushe_CO2--; //預設溫度值減一,最小為0 LCD_Write_Char(0,13,yushe_CO2,3) ;//顯示預設CO2}break;}default : {write_com(0x38);//屏幕初始化write_com(0x0c);//打開顯示 無光標 無光標閃爍Mode=0; //恢復正常模式break;}}if(s2==0) //熱釋電傳感器接通{Led_G=0;}else{Led_G=1;}}}
程序運行結果如圖:
全部內容
全部資料包括程序(keil5)、protues仿真(protues8.7)、設計說明、答辯PPT、開發資料、資料使用介紹、仿真視頻、最小系統介紹視頻等。
資料獲取
https://docs.qq.com/doc/DT3dKSFhhcFFNc2FI