1. 程式人生 > 實用技巧 >520【畢設課設】基於微控制器火焰探測器模擬模擬系統

520【畢設課設】基於微控制器火焰探測器模擬模擬系統

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

本設計是一款基於51微控制器的光敏電阻火焰探測器。通過光敏電阻檢測火焰,將光訊號轉化為電訊號後,再經由STC89C52微控制器進行引腳的資料採集,獲得訊號後通過控制電路,若感應到火焰,控制揚聲器發出報警聲,並改變數碼管顯示,示意有火焰。硬體部分主要包括光敏電阻訊號採集電路、報警電路、微控制器控制電路、數碼管控制電路。

系統主要實現如下功能:

(1)光敏電阻採集光資訊,能識別760nm-1100nm紅外光,辨別至少80cm處的火焰,並將資訊傳入核心控制器。

(2)核心控制器根據光敏感測器得到的資訊,能儘快響應,並控制其它報警和顯示模組。

(3)報警電路:以揚聲器為主的報警器電路,在光敏感測器識別到火焰時發出持續不斷的響聲,直到人為手動關閉報警器。

(4)顯示模組:利用單個數碼管顯示是否有火焰的資訊,當識別到火焰,顯示為數字,當上電及無火焰狀態時顯示為“-”。

#define uchar unsigned char
#define uint unsigned int

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};   //共陰極數碼管編碼

void delayms(uint);
void init();
void react1();

sbit Speaker = P1^1;
sbit Flame = P1^0;
sbit Key= P1^2;

void delayms(uint xms)   //延時函式
{
	uint i,j;
for(i=xms;i>0;i--)   //i=xms即延時約xms毫秒
   for(j=110;j>0;j--);
}

void init()
{
	TMOD=0x01;//設定工作方式1,12M晶振,定時1ms,輸出週期2ms方波
  TH0=(65536-1000)/256;
  TL0=(65536-1000)%256;
  EA=1;   //開總中斷
  ET0=1;  //定時器0中斷開啟
	//TR0=1;  //啟動定時器0,先不啟動
	Speaker=1;  //三極體截止?
	P0=0x40;   //數碼管"-"
	delayms(5);
}