标题:
单片机程序中加一个开关,模拟压力传感器开关的问题
[打印本页]
作者:
dream602
时间:
2019-4-9 19:36
标题:
单片机程序中加一个开关,模拟压力传感器开关的问题
这个仿真图是模拟热释电传感器使灯泡发光的。现在想在里面加一个开关,模拟压力传感器开关,当检测到压力,开关闭合,使灯泡发光,并延时20s左右,请问这个开关应该加在哪? 然后程序可以请帮忙改一下吗?
TIM截图20190409193232.png
(16.4 KB, 下载次数: 71)
下载附件
红外传感仿真图
2019-4-9 19:34 上传
#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(); //有,点亮灯泡
}
}
}
}
作者:
devcang
时间:
2019-4-9 20:02
那么多IO,随便加了。。。。。不过,单个按钮,通常接在外部中断上。
程序呢, if(XinHao == 0) //检测是否有信号 之前判断开关状态,并做处理
作者:
孤剑酷
时间:
2019-4-11 10:58
这题目,要考虑一下思路的,比如你的传感器触发方式要进行考虑,比如你是模拟触发,那就要增加AD电路,将模拟量转换成数字量再连接IO端口
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1