找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2344|回复: 1
收起左侧

单片机远近光灯切换及下雨检测Proteus仿真程序

[复制链接]
ID:557003 发表于 2020-4-23 20:41 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include <reg52.h>                 //库文件
  2. #define uchar unsigned char//宏定义无符号字符型
  3. #define uint unsigned int  //宏定义无符号整型

  4. /********************************************************************
  5.                             I/O定义
  6. *********************************************************************/
  7. sbit yushui=P2^1;         //定义雨水传感器
  8. sbit guang=P2^0;         //定义光敏传感器接口
  9. sbit led1=P2^4;  //定义近光灯接口
  10. sbit led2=P2^5;  //定义远光灯接口

  11. sbit key=P3^2; //定义按键接口
  12. sbit LED=P2^6; //定义示廓灯接口

  13. uchar flag,date;//定义变量
  14. /********************************************************************
  15.                             延时函数
  16. *********************************************************************/
  17. void delay(uint ms)                //延时函数,大约延时25us
  18. {
  19.         uchar x;
  20.         for(ms;ms>0;ms--)
  21.                 for(x=10;x>0;x--);
  22. }


  23. void Daytime()//设置白天模式
  24. {
  25.         led2=1;
  26.         if(guang==0) //当有光时
  27.         {
  28.                 led1=1;//灯灭
  29.                
  30.                 delay(100);//延时
  31.         }
  32.         else//无光时
  33.         {
  34.                 led1=0;//灯亮
  35.                 delay(100);//延时
  36.         }
  37. }

  38. void Night()//设置夜晚模式
  39. {
  40.         led2=0;//远光灯亮
  41.         led1=1;//近光灯灭
  42.         if(guang==0)//当有光时
  43.         {
  44.                 led2=1;//远光灯灭
  45.                 led1=0;//近光灯亮
  46.                 delay(100);//延时
  47.                
  48.         }
  49.         else//无光时
  50.         {
  51.           led2=0;//远光灯亮
  52.                 led1=1;//近光灯灭
  53.                 delay(100);//延时
  54.         }
  55. }


  56. /********************************************************************
  57.                             主函数
  58. *********************************************************************/
  59. void main()
  60. {
  61.         Night();//启动时默认为夜间模式
  62.      while(1)   //无限循环
  63.        {
  64.         if(key==0)                                                          //模式切换设置
  65.                                 {
  66.                                         delay(10);                                                  //延时去抖
  67.                                         if(key==0)flag=~flag;                                  //再次判断按键,按下的话进入自动状态
  68.                                         while(key==0);//松手检测        按键释放
  69.                           }
  70.                                 if(flag)//模式按键没有按下
  71.                                 {
  72.                                         Night();//夜间模式
  73.                                 }
  74.                                 else//模式按键按下
  75.                                 {
  76.                                         Daytime();//白天模式
  77.                                 }       
  78.                                 if(yushui==0)//有雨水时
  79.                     {
  80.                                         delay(100);          //消抖动
  81.                                         if(yushui==0)          //确认触发
  82.                             {
  83.                                                 LED=0;//示廓灯亮

  84.                                         }
  85.           
  86.                     }
  87.                                 else//没有雨水时
  88.                                 {
  89.                                         LED=1;//示廓灯灭
  90.                                 }
  91.                  

  92.                        
  93.                          }
  94.                                        

  95. }        
复制代码

所有资料51hei提供下载:
汽车车灯控制.zip (519.88 KB, 下载次数: 50)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:783334 发表于 2020-6-25 09:36 | 显示全部楼层
很有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表