|
實(shí)現(xiàn)功能: 設(shè)計(jì)基于51系列的單片機(jī)的智能火災(zāi)報(bào)警系統(tǒng),其主要模塊為煙霧傳感器、溫度傳感器、蜂鳴報(bào)警器以及2個(gè)16×16的點(diǎn)陣、6個(gè)按鍵。單片機(jī)一方面對(duì)運(yùn)行的煙霧傳感器和溫度傳感器檢測(cè)環(huán)境傳過來的信號(hào)處理,并且通過點(diǎn)陣進(jìn)行實(shí)時(shí)顯示,(點(diǎn)陣個(gè)數(shù)就按你說的用2個(gè),這個(gè)顯示形式有靜止、移入移出,這個(gè)顯示形式能過通過按鍵進(jìn)行選擇,所以這里需要1個(gè)按鍵來進(jìn)行顯示形式的切換);單片機(jī)另一方面能夠通過與預(yù)設(shè)的煙 霧和溫度閾值進(jìn)行比較并判斷是否要報(bào)警(報(bào)警就用蜂鳴器),通過加、減按鍵可設(shè)置報(bào)警的閾值,設(shè)置有緊急報(bào)警按鍵以應(yīng)對(duì)突發(fā)情況(這里需要2對(duì)加減按鍵,1對(duì)用來對(duì)煙霧進(jìn)行加減報(bào)警設(shè)置,另1對(duì)用力對(duì)溫度進(jìn)行加減報(bào)警設(shè)置,外加1個(gè)緊急報(bào)警按鍵,所以整個(gè)系統(tǒng)是6個(gè)按鍵)。
電路圖
U2[M1`8F39W%PYTR$JDNQ)T.png (192.96 KB, 下載次數(shù): 10)
下載附件
2018-12-26 11:13 上傳
部分代碼
void delay(uchar us); //delay
float gettemp(void);
void delay(uchar us) //delay time
{while(us--) _nop_();
}
/*串口初始化*/
void serial_init ( unsigned char bt ) {
SCON = 0x50; /* mode 1: 8-bit UART, enable receiver */
TMOD = 0x21; /* timer 1 mode 2: 8-Bit reload */
switch(bt){
case 0: //38400
TH1=0xfd;
PCON=0x80;
break;
case 1: //19200
TH1=0xfd;
PCON=0;
break;
case 2: //9600
TH1=0xfa;
PCON=0;
break;
case 3: //4800
TH1=0xf4;
PCON=0;
break;
case 4: //2400
TH1=0xe8;
PCON = 0;
break;
case 5: //1200
TH1=208;
PCON = 0;
break;
case 6: //600
TH1=160;
PCON = 0;
break;
case 7: //300
TH1=64;
PCON = 0;
break;
default:
TH1=0xfa;
PCON=0;
break;
}
TR1 = 1; /* timer 1 run */
// ES = 1;
// EA=1;
}
void putbyte(char c)
{
SBUF=c;
while (!TI) _nop_();
TI=0;
}
void putint(unsigned int ui)
{unsigned char ls;
ls=(ui/10000+0x30);
putbyte(ls);
ls=((ui%10000)/1000+0x30);
putbyte(ls);
ls=((ui%1000)/100+0x30);
putbyte(ls);
ls=((ui%100)/10+0x30);
putbyte(ls);
ls=(ui%10+0x30);
putbyte(ls);
}
/*************************************/
/*發(fā)送一個(gè)字節(jié)的hex碼,分成兩個(gè)字節(jié)發(fā)。*/
unsigned char code hex_[]={"0123456789ABCDEF"};
puthex(unsigned char c)
{int ch;
ch=(c>>4)&0x0f;
putbyte(hex_[ch]);
ch=c&0x0f;
putbyte(hex_[ch]);
}
|
|