• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的紅外報(bào)警器的設(shè)計(jì)與制作

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

有需要資料的可了解一下.docx

共1個(gè)文件

功能要求:

1.當(dāng)檢測時(shí),數(shù)碼管會(huì)倒計(jì)時(shí)60

2.當(dāng)有人靠近時(shí),會(huì)報(bào)警

3,當(dāng)?shù)褂?jì)時(shí)時(shí),報(bào)警器會(huì)報(bào)警并且led燈會(huì)閃爍提示

原理圖

ce93d091d3cb4f9aa05c66d959b2b10d.png

部分程序:

#include <STC15F2K60S2.H>

#define key1 P37

#define key2 P41

#define key3 P42

#define key4 P43

#define IR?? P10

#define FMQ? P54

#define u8 unsigned char

#define u16 unsigned int

u8 table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};//數(shù)碼管段碼

u8 disbuf[]={0,0,0,0};//數(shù)碼管顯示緩沖區(qū)

u8 min=0;

void Timer0Init(void)?????????????? //1毫秒@11.0592MHz

{

AUXR |= 0x80;???????????????? //定時(shí)器時(shí)鐘1T模式

TMOD &= 0xF0;?????????????? //設(shè)置定時(shí)器模式

TL0 = 0xCD;????????????? //設(shè)置定時(shí)初始值

TH0 = 0xD4;???????????? //設(shè)置定時(shí)初始值

TF0 = 0;??????????? ? //清除TF0標(biāo)志

TR0 = 1;??????????? ? //定時(shí)器0開始計(jì)時(shí)

ET0 = 1;????? //定時(shí)器0打開

EA? = 1;????? //定時(shí)器總開關(guān)

}

void timer0()interrupt 1

{

static u16 min_count=0,fmq_count=0,led_count=0,ir_flag=0;//靜態(tài)局部變量 分計(jì)數(shù)、蜂鳴器間隔響計(jì)數(shù)、人體紅外標(biāo)志位

if(IR==1)ir_flag=1;//當(dāng)檢測到物體經(jīng)過 標(biāo)志位置1

if(ir_flag==1)???? //當(dāng)標(biāo)志位為1 執(zhí)行以下程序

{

if(++fmq_count==500)//每500毫秒響一次

{

fmq_count=0;

FMQ=!FMQ;

}

/*********流水燈**********/

led_count++;

if(led_count==100)P14=!P14;

if(led_count==200)P15=!P15;

if(led_count==300)P16=!P16;

if(led_count==400)P17=!P17;

if(led_count==401)led_count=0;

/*************************/

if(++min_count==100)//時(shí)間到結(jié)束報(bào)警 正常速度為1000 當(dāng)前為100

{

min_count=0;

if(++min==60)

{

min=0;

ir_flag=0;

}

}

}

disbuf[2]=min/10;? //將值傳入顯示緩沖區(qū)

disbuf[3]=min%10;

if(ir_flag==0)

{

P14=1;

P15=1;

P16=1;

 

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦

方案定制

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