標(biāo)題:
單片機(jī)紅外熱釋電傳感器報(bào)警程序與Proteus仿真圖
[打印本頁]
作者:
111111252
時(shí)間:
2022-5-24 16:44
標(biāo)題:
單片機(jī)紅外熱釋電傳感器報(bào)警程序與Proteus仿真圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
(72.19 KB, 下載次數(shù): 34)
下載附件
2022-5-24 19:29 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define key_io P1
uchar key_can;
sbit beep=P2^3;
sbit red=P2^2;
sbit green=P2^1;
sbit yellow=P2^0;
sbit hw=P1^3;
bit flag_300ms=0;
void key()
{
static uchar key_new=0,key_old=0,key_value=0;
if(key_new == 0)
{
if((key_io&0x07)==0x07)
key_value ++;
else
key_value=0;
if(key_value>=5)
{
key_value=0;
key_new=1;
}
}
else
{
if((key_io&0x07)!=0x07)
key_value ++;
else
key_value=0;
if(key_value>=5)
{
key_value=0;
key_new=0;
}
}
key_can=20;
if((key_new==0)&&(key_old==1))
{
switch(key_io&0x07)
{
case 0x06: key_can=1; break;
case 0x05: key_can=2; break;
case 0x03: key_can=3; break;
}
}
key_old = key_new;
}
void time_init()
{
EA=1;
TMOD=0X01;
ET0=1;
TR0=1;
}
uchar flag_alarm ;
uchar flag_bufang ;
uchar flag_bufang_en ;
uint flag_value;
void hongwai_dis()
{
if(flag_alarm==1)
{
red=~red;
beep=~beep;
}
if(flag_bufang_en==1)
{
green=~green;
}
if(flag_bufang==1)
{
green=0;
if(hw==1)
{
flag_alarm=1;
}
}
}
void key_with()
{
if(key_can==1)
{
flag_alarm=1;
}
if(key_can==2)
{
flag_bufang_en=1;
}
if(key_can==3)
{
flag_alarm=0;
flag_bufang=0;
flag_bufang_en=0;
flag_value=0;
P2=0xff;
}
}
void main()
{
time_init();
while(1)
{
key();
yellow=~hw;
if(key_can<10)
{
key_with();
}
if(flag_300ms==1)
{
flag_300ms=0;
hongwai_dis();
}
}
}
void time0_int() interrupt 1
{
static uint value;
TH0=0x3c;
TL0=0xb0;
value++;
if(value%6==0)
{
flag_300ms=1;
}
if(flag_bufang_en==1)
{
flag_value ++;
if(flag_value>=600)
{
flag_bufang=1;
flag_bufang_en=0;
flag_value=0;
}
}
}
復(fù)制代碼
Keil5代碼與Proteus8.8仿真下載:
紅外.zip
(39.19 KB, 下載次數(shù): 35)
2022-5-24 16:44 上傳
點(diǎn)擊文件名下載附件
1
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1