历史上的今天
今天是:2024年09月30日(星期一)
2021年09月30日 | 基于51单片机的智能雨刷设计
2021-09-30 来源:eefocus
一.硬件方案
本设计运用雨滴传感器感应雨量的大小,把感应信号输给单片机系统,然后通过软件控制雨刷电机根据相应的环境做出不同的转动。
主要由51单片机最小系统+步进电机+1602显示+湿度传感器+ADC0832芯片+按键组成;如图:

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

(2)PCB图如下:

四.软件设计
(1)程序流程图

(2)主程序源码
void main()
{
water_h=byte_read(0x2000);
water_l=byte_read(0x2200);
if(water_h { 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毫秒定时 }
史海拾趣
|
Chrome渲染引擎同Safari 正开发Linux和MAC版 北京时间9月2日消息:据国外媒体报道,Google周一通过漫画宣布,将推出网络浏览器 Chrome。目前,有关Chrome的技术内容也逐渐出现在了网上。 据悉,Chrome浏览器使用了开源的网页渲染引擎WebKit,这个引擎也被使用在了苹果公司的Safari浏览器中, ...… 查看全部问答> |
|
本人有个带驱动器的步进电机,型号为BL55S-M01是三星打印机上的,上面带一个10针的插座分别为:1.24V 2. 24V 3.GND 4.GND 5.BK 6.5V(NC) 7.ST/SP 8.RD 9.CLK 10.CW /CCW。哪位高手能否介绍一下那些管脚的作用?… 查看全部问答> |
|
我用的是友善mini2440,Nand Flash型号是K9F1G08,现在是裸机学习; 我在进行读操作时,读出的第一个字节总是 30,然后才是真正的数据; 我的写操作写不进去。 请大家指点下。谢谢! … 查看全部问答> |
|
请教;以前在在ST Visual Develop环境下完成的程序现在移植到IAR环境编译报如下错误:不知问题出在哪?? Building configuration: stm8lianfang - Debug Updating build tree... Linking Error[Lp011]: section placement failed: una ...… 查看全部问答> |




