51微控制器之煙霧報警器(MQ 2)

2021-07-11 10:07:03 字數 2361 閱讀 6969

今天朋友做畢業設計,讓我幫他寫下程式,花了兩個小時,給了他們乙個模板,雖然很簡單,但是還是拿出來分享吧,適用於初學者。高手不要忘下看了

要求:液晶屏顯示.四個按鍵分別控制選擇設定值位數,加一,減一。報警功能開關鍵

lcd.c檔案

#include

#define lcd1602_4pins

#define lcd1602_datapins p0

sbit lcd1602_e=p2^7;

sbit lcd1602_rw=p2^5;

sbit lcd1602_rs=p2^6;

#define uchar unsigned char

#define uint unsigned int

void lcd1602_delay1ms(uint c)   //誤差 0us

}}void lcdwritecom(uchar com) //寫入命令

void lcdwritedata(uchar dat)//寫入資料

void lcdinit() //lcd初始化子程式

main.c檔案: /*

*cs_ :片選使能,低電平晶元使能。 

*ch0 :模擬輸入通道 0,或作為 in+/-使用。 

*ch1 :模擬輸入通道 1,或作為 in+/-使用。 

*gnd :晶元參考 0 電位(地)。 

*di  :資料訊號輸入,選擇通道控制。 

*do  :資料訊號輸出,轉換資料輸出。 

*clk :晶元時鐘輸入。 

*vcc/ref :電源輸入及參考電壓輸入(復用)。 

*/#include

#define uchar unsigned char

#define uint unsigned int

sbit key1=p1^4;  /* 報警值設定位選擇器 */

sbit key2=p1^5;/* 報警值加一 */

sbit key3=p1^6;  /* 報警值減一*/

sbit key4=p1^7;  /* 報警功能開關鍵*/

sbit led1=p2^0;  /* 報警指示燈led1*/

sbit led2=p2^1;  /* 報警指示燈led2*/

sbit beep=p2^2;  /* 蜂鳴器報警*/

sbit adc_cs=p1^0;   /* adc使能管腳 */

sbit adc_clk=p1^1;  /* adc時鐘訊號管腳 */

sbit adc_io=p1^2;   /* adc輸入輸出管腳*/

void lcd1602_delay1ms(uint c);   //誤差 0us

void lcdwritecom(uchar com);  /*lcd1602寫入8位命令子函式*/

void lcdwritedata(uchar dat); /*lcd1602寫入8位資料子函式*/

void lcdinit();/*lcd1602初始化子程式*/

unsigned char *buff=" max value :";

unsigned int set_value=100;     /* 報警值預設設定為100 ,三位數字*/

unsigned int adc_value=0;

unsigned char key_scan()   /* 按鍵掃瞄函式 */

}while((key1 ==0)||(key2 ==0)||(key3 ==0)||(key4 ==0));

return key_num;   //將讀取到鍵值的值返回

}void all_init(void)

case 2:

case 1:

case 2:

default:break;

}key_num=0;

break;

} case 3:

case 1:

case 2:

default:break;

} key_num=0;

break;

} case 4:

default:break;

}set_value=set_value_ hundreds*100+set_value_ decade*10+set_value_ single;

lcdwritecom(0x80+sizeof(buff));

lcdwritedata(set_value/100);        /* 寫入百位 */

lcdwritedata((set_value%100)/10);   /* 寫入十位 */

lcdwritedata(set_value%10);/* 寫入個位 */

if(beep_on_off==1)

else

}else}}

基於AT89C52和MQ 2的煙霧報警器設計

摘要 介紹了一種基於at89c52 微控制器和mq 2 型半導體電阻式煙霧感測器的煙霧報警器設計。該煙霧報警器具有聲光報警 濃度顯示以及與上位機串列埠通訊等功能。其結構簡單,低廉,效能穩定,具有較好的實用價值。隨著社會高速發展,火災對於人類的生產生活造成了巨大的危害。煙霧報警器是用來監測環境中煙霧的...

基於51微控制器的火災報警器

1.系統功能 火災報警器,主要檢測溫度和煙霧,再通過微控制器控制相應的報警和驅動負載。通過液晶顯示當前的煙霧值和溫度值,通過按鍵設定相應的閥值。主要包括以下幾項功能 1 火情探測功能 為了提高火災報警的準確性和及時性,火災報警系統需要使用各種方法進行火災探測。在實際使用中,根據不同的防火場所,使用者...

微控制器自動水滿報警器

摘 要 i abstract 1 引言 1 2電路原理圖 1 3工作原理 1 4 元件引數選擇 2 5 pcb設計流程 2 6 pcb板的3d顯示 4 7安裝與除錯 4 7.1 理論分析 4 7.2 實際除錯過程 6 8 結論 6 參考文獻 6 致 謝 9 自動水滿報警器 摘 要自動水滿報警器是當今...