标题:
单片机远近光灯切换及下雨检测Proteus仿真程序
[打印本页]
作者:
占山土匪
时间:
2020-4-23 20:41
标题:
单片机远近光灯切换及下雨检测Proteus仿真程序
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png
(20.84 KB, 下载次数: 29)
下载附件
2020-4-23 21:56 上传
单片机源程序如下:
#include <reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
/********************************************************************
I/O定义
*********************************************************************/
sbit yushui=P2^1; //定义雨水传感器
sbit guang=P2^0; //定义光敏传感器接口
sbit led1=P2^4; //定义近光灯接口
sbit led2=P2^5; //定义远光灯接口
sbit key=P3^2; //定义按键接口
sbit LED=P2^6; //定义示廓灯接口
uchar flag,date;//定义变量
/********************************************************************
延时函数
*********************************************************************/
void delay(uint ms) //延时函数,大约延时25us
{
uchar x;
for(ms;ms>0;ms--)
for(x=10;x>0;x--);
}
void Daytime()//设置白天模式
{
led2=1;
if(guang==0) //当有光时
{
led1=1;//灯灭
delay(100);//延时
}
else//无光时
{
led1=0;//灯亮
delay(100);//延时
}
}
void Night()//设置夜晚模式
{
led2=0;//远光灯亮
led1=1;//近光灯灭
if(guang==0)//当有光时
{
led2=1;//远光灯灭
led1=0;//近光灯亮
delay(100);//延时
}
else//无光时
{
led2=0;//远光灯亮
led1=1;//近光灯灭
delay(100);//延时
}
}
/********************************************************************
主函数
*********************************************************************/
void main()
{
Night();//启动时默认为夜间模式
while(1) //无限循环
{
if(key==0) //模式切换设置
{
delay(10); //延时去抖
if(key==0)flag=~flag; //再次判断按键,按下的话进入自动状态
while(key==0);//松手检测 按键释放
}
if(flag)//模式按键没有按下
{
Night();//夜间模式
}
else//模式按键按下
{
Daytime();//白天模式
}
if(yushui==0)//有雨水时
{
delay(100); //消抖动
if(yushui==0) //确认触发
{
LED=0;//示廓灯亮
}
}
else//没有雨水时
{
LED=1;//示廓灯灭
}
}
}
复制代码
所有资料51hei提供下载:
汽车车灯控制.zip
(519.88 KB, 下载次数: 50)
2020-4-23 20:41 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
milimi
时间:
2020-6-25 09:36
很有用
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1