基于51单片机的智能雨刷设计

一.硬件方案

        51单片机的智能雨刷主要运用雨滴传感器感应雨量的大小,把感应信号输给单片机系统,然后通过软件控制雨刷电机根据相应的环境做出不同的转动。其中硬件电路主要有51单片机最小系统,步进电机驱动电路,LCD1602显示电路,湿度传感器及ADC0832转换电路,按键电路组成;原理图如图:

根据原理图所绘制的PCB图如下:

二.功能介绍

  • 智能雨刷采用lcd1602液晶显示雨水量值;雨滴传感器检测雨水量,adc0832对雨滴传感器信号ad转换数字信号单片机处理。
  • 有手动模式和自动模式控制两种,手动模式实现开关操作,还可以通过按键调整速度。自动模式下根据雨水量自动控制步进电机的速度,低于下限步进电机停止工作,上限和下限之间步进电机1档(慢速)工作,大于上限步进电机2档(快速)工作。
  • 四个按键:设置、加(切换模式)、减(手动开关)、速度调整(在手动模式下)。

三.软件设计

主程序源码

void main()
 {
  
   water_h=byte_read(0x2000);
   water_l=byte_read(0x2200);
   if(water_h<water_l||water_h>100||water_l<0)
    {
      water_h=60;
      water_l=10;
    }

  
   TMOD=0x11;
   TH1=0x3c;
   TL1=0xb0;
   TH0=0x3c;
   TL0=0xb0;
   ET1=1;

    ET0=1;
   EA=1;

   TR0=1;
   TR1=1;
   LCD1602_cls();
   while(1)
    {
       if(A_M==0) 
        { police_dispose();      
          if(star_off==0)
           {     
                   
                      if(DJ_dat==0) loop=0;
                     while(DJ_dat<180)
                        {
                            P1=P1&0xf0|zz[loop];                            
                            loop=(loop+1)%8;
    
                            if(loop==0) DJ_dat++;
                            LCD1602_delay(Value);                    
                        }           
                     if(DJ_dat==120)loop=0; 
                     while(DJ_dat!=0)
                        {
                            P1=P1&0xf0|fz[loop];
                            loop=(loop+1)%8;
                        
                            if(loop==0) DJ_dat--;
                            LCD1602_delay(Value);
                        }
                        
                  }          
        }
        else 
        {    

            if(speed_flag!=0) 
             {
                  if(star_off==0)
                   {     
                           
                              if(DJ_dat==0) loop=0;
                             while(DJ_dat<180)
                                {
                                    P1=P1&0xf0|zz[loop];                            
                                    loop=(loop+1)%8;
            
                                    if(loop==0) DJ_dat++;
                                    LCD1602_delay(Value);                    
                                }           
                             if(DJ_dat==120)loop=0; 
                             while(DJ_dat!=0)
                                {
                                    P1=P1&0xf0|fz[loop];
                                    loop=(loop+1)%8;
                                
                                    if(loop==0) DJ_dat--;
                                    LCD1602_delay(Value);
                                }            
                          }    
             }
             else 
              {
                  loop=0;  DJ_dat=0;
              }

        }           
       }      
      //1毫秒定时
    }

资料:https://pan.baidu.com/s/1lGNJ_3RJUEyqkmbo0NA5Yw?pwd=nqtt 
提取码:nqtt

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值