• 方案介紹
    • 1. 主要功能:
    • 2. 講解視頻:
    • 3. 仿真
    • 4. 程序代碼
    • 5. 設(shè)計(jì)報(bào)告
    • 6. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)煙霧報(bào)警器數(shù)碼管顯示( proteus仿真+程序+設(shè)計(jì)報(bào)告+講解視頻)

2024/11/12
5025
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

共1個(gè)文件

仿真圖proteus7.8及以上

程序編譯器:keil 4/keil 5

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):S0067

1. 主要功能:

基于51單片機(jī)的煙霧報(bào)警器proteus仿真設(shè)計(jì)

1.LED數(shù)碼管顯示煙霧報(bào)警值和檢測(cè)到的煙霧值;

2.可以通過(guò)按鍵調(diào)整煙霧報(bào)警濃度值;

3.煙霧濃度低于報(bào)警值工作指示燈綠燈亮。

煙霧濃度高于閾值蜂鳴器報(bào)警,工作指示燈紅燈亮;

4.通過(guò)ADC0832采集滑動(dòng)變阻器模擬MQ-2電壓變化。

需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。

2. 講解視頻:

講解視頻包含仿真運(yùn)行講解和代碼講解

3. 仿真

打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。

imgimgimg

4. 程序代碼

使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。

img

完整代碼見文章下載鏈接
#include "reg51.h"
#include "intrins.h"
sbit CLK=	P1^1;//時(shí)鐘,初始狀態(tài)為0
sbit DI=	P1^2;//數(shù)據(jù)輸入
sbit DO=	P1^3; // 數(shù)據(jù)輸出
sbit CS=	P1^0;
sbit LED_RED=P3^4;	 //紅燈
sbit LED_GREEN=P3^5; //綠燈
sbit beep=P3^0;//蜂鳴器
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int num=0;//煙霧
unsigned int limit=1500;//閥值
unsigned char beepflag;
unsigned int cnt=0;
/*********************************************
讀取ADC
**********************************************/
unsigned char ADC()//通道ch0
{
	unsigned char temp0,temp1,i;
	CS=0;
	temp0=0;
	temp1=0;
	_nop_();
	_nop_();
	DI=1;//開始位
	_nop_();
	_nop_();
	CLK=1;
	_nop_();
	_nop_();
	CLK=0;
	_nop_();
	_nop_();
	DI=0;
	_nop_();
	_nop_();
//選擇通道0
	DI=1;
	_nop_();
	CLK=1;//上升沿DI=1
	_nop_();
	CLK=0;//1個(gè)下降沿DI=1
	_nop_();
	DI=0;
	_nop_();
	CLK=1;
	_nop_();
	CLK=0;//第3個(gè)上升沿DI=0
	_nop_();
 	DI=1;
//********通道選擇結(jié)束開始讀取轉(zhuǎn)換后的二進(jìn)制數(shù)****
//下降沿讀數(shù),一下進(jìn)行判斷和處理,共8次
for(i=0;i<8;i++)
   {
	temp0=temp0<<1;
	CLK=1;
    if(DO)
   	temp0++;
   	_nop_();
   	CLK=0;
   }
for(i=0;i<8;i++)
   {
	temp1=temp1>>1;
	CLK=1;
    if(DO)
   	temp1=temp1 +0x80;
   	_nop_();
   	CLK=0;
   }
	 CS=1;
   return temp0;
}
void delay(unsigned int i)//延時(shí)
{
	while(i--);
}

void main()
{


	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	EX0=1;//打開外部中斷0
	EX1=1;//打開外部中斷1
	IT0=1;//下降沿觸發(fā)
	IT1=1;//下降沿觸發(fā)
	ET0=1;//打開定時(shí)器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時(shí)器
	beepflag = 0;
	while(1)
	{
		P0=smgduan[num/1000];//顯示煙霧度
		P2=0xfe;
		delay(100);
		P2=0xff;
		P0=smgduan[num%1000/100];//顯示煙霧度
		P2=0xfd;
		delay(100);
		P2=0xff;
		P0=smgduan[num%100/10];//顯示煙霧度
//		 	P0 =P0|0x80; //加小數(shù)點(diǎn)
		P2=0xfb;
		delay(100);
		P2=0xff;
		P0=smgduan[num%10];//顯示煙霧度
		P2=0xf7;
		delay(100);
		P2=0xff;
		P0=smgduan[limit/1000];//顯示煙霧度閥值
		P2=0xef;
		delay(100);
		P2=0xff;							 
		P0=smgduan[limit%1000/100];//顯示煙霧度閥值
		P2=0xdf;
		delay(100);
		P2=0xff;
		P0=smgduan[limit%100/10];//顯示煙霧度閥值
		P2=0xbf;
		delay(100);
		P2=0xff;
		P0=smgduan[limit%10];//顯示煙霧度閥值
		P2=0x7f;
		delay(100);
		P2=0xff;  
	}
}
void Timer0() interrupt 1//定時(shí)器中斷
{
	TH0=0X3C; //50ms中斷
	TL0=0XB0;
	if(cnt==20){//1秒一次
		cnt = 0;
//		if(num>limit){//報(bào)警
//			if(beepflag<10)beepflag++;//10秒計(jì)數(shù)
//		}else{
//			beep=1;
//			beepflag = 0;
//		}
//		
//		if(beepflag<10&&num>limit*10){//響10秒
//			beep=0;
//		}else{
//			beep=1;
//		}
		if(num>limit){//報(bào)警
			 beep=0;
			 LED_RED=0;	 //紅色報(bào)警燈 亮
			 LED_GREEN=1;  //綠色報(bào)警燈 滅
		}else{
			 beep=1;
			 LED_RED=1;	    //紅色報(bào)警燈  滅
			 LED_GREEN=0;  //綠色報(bào)警燈  亮
		}
	}	
	cnt++;


}	

void jia() interrupt 0//按鍵 外部中斷0處理函數(shù)
{
    if(limit<2500)
        limit=limit+10;
    else
        limit=0;
}
void jian() interrupt 2//按鍵 外部中斷1處理函數(shù)
{
    if(limit>0)
        limit=limit-10;
    else
        limit=2500;
}

5. 設(shè)計(jì)報(bào)告

4947字設(shè)計(jì)報(bào)告,內(nèi)容包括硬件設(shè)計(jì)軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等

img

6. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接

資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。

0、常見使用問(wèn)題及解決方法–必讀?。。。?/p>

1、仿真圖

2、程序源碼

3、功能要求

4、開題報(bào)告

5、設(shè)計(jì)報(bào)告

6、軟硬件流程框圖

7、講解視頻

Altium Designer 安裝破解

KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡(jiǎn)易使用教程

單片機(jī)學(xué)習(xí)資料

相關(guān)數(shù)據(jù)手冊(cè)

答辯技巧

設(shè)計(jì)報(bào)告常用描述

鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url

img

網(wǎng)盤下載鏈接:

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

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

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!