这个仿真图是模拟热释电传感器使灯泡发光的。现在想在里面加一个开关,模拟压力传感器开关,当检测到压力,开关闭合,使灯泡发光,并延时20s左右,请问这个开关应该加在哪? 然后程序可以请帮忙改一下吗?
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit XinHao =P1^0;
sbit Light =P2^0;
void Delay(void)
{
uint x, y;
for(x=100;x>0;x--)
for(y=100;y>0;y--);
}
void delay1(void) //定时器延时两分钟
{
uchar count=180;
TMOD=0x01; //定时器0工作方式1
TR0=1; //启动定时器
TH0=0;
do{
TF0=0;
TL0=0x0F;
while(!TF0); //定时是否溢出
} while((count--) > 0);
TR0=0;
TF0=0;
}
void dianliang(void)
{
Light = 1; //点亮灯泡
XinHao = 1;
if(XinHao == 1) //判断是否无信号
{
Delay(); //延时防抖动
XinHao = 1;
if(XinHao == 1) //再次确定无信号
{
delay1(); //利用定时器延时两分钟
Light = 0; //熄灭灯泡
}
}
}
void main(void)
{
Light = 0; //初始时灯泡熄灭
while(1)
{
XinHao = 1;
if(XinHao == 0) //检测是否有信号
{
Delay(); //延时防信号抖动
XinHao = 1;
if(XinHao == 0)
{
dianliang(); //有,点亮灯泡
}
}
}
}
|