您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的雨刮控制实验报告
汽车雨刮电机控制系统设计与仿真实验报告姓名:学号:班级:指导教师:实习时间:一、实验目的1、掌握汽车雨刮电机总成的结构和工作原理。2、掌握protus软件和keilμVsion软件的使用方法。3、学习使用protus软件进行电路原理图设计并进行仿真。二、实验设备安装有protus软件和keilμVsion软件的PC机一台。三、实验原理及内容1、汽车雨刮的结构和工作原理雨刮器是重要的安全件,它必须能有效地清除雨水、雪和污垢;能在高温(摄氏零上80度)和低温下(摄氏零下30度)工作;能抗酸、碱、盐等有害物质腐蚀;使用寿命达到15万次刮刷循环(乘用车)。汽车雨刮的主要组成部分为雨刮电机总成,四连杆机构,雨刷总成。当司机按下雨刮器的开关时,电动机启动,电动机的转速经过蜗轮蜗杆的减速增扭作用驱动摆臂,摆臂带动四连杆机构,四连杆机构带动安装在前围板上的转轴左右摆动,最后由转轴带动雨刮片刮扫挡风玻璃。一般情况下在汽车组合开关手柄上有雨刮器控制旋扭,设有低速、高速、间歇3个档位。手柄顶端是洗涤器按键开关,按下开关有洗涤水喷出,配合雨刮器洗涤档风玻璃。雨刮器的动力源来自电动机,它是整个雨刮器系统的核心。雨刮器电动机的质量要求是相当高的。它采用直流永磁电动机,安装在前档风玻璃上的雨刮器电动机一般与蜗轮蜗杆机械部分做成一体。蜗轮蜗杆机构的作用是减速增扭,其输出轴带动四连杆机构,通过四连杆机构把连续的旋转运动改变为左右摆动的运动。司机关闭雨刮器时,雨刮臂往往不停在适当的位置,阻碍司机的视线。为解决这一问题,雨刮器设有一个回位开关,它控制雨刮器电机,当雨刮臂停在档风玻璃下的适当位置时,电机才会停止运转。现今的雨刮器已经普遍采用快档、慢档和间歇控制档。其中间歇控制档一般是利用电机的回位开关触点与电阻电容的充放电功能使雨刮器按照一定周期刮扫,即每动作一次停止2-12秒时间,对司机的干扰更少。有些雨刮臂还附带胶水管,水管接至洗涤器上,按一下开关会有水注喷向前档风玻璃。在一些中高级轿车上,不但前后档风玻璃有雨刮器,就是前大灯也有一支小小的雨刮片,用以清除前灯玻璃上的尘埃。有些车辆的雨刮器还装有电子调速器,该调速器附带感应功能,能根据雨量的大小自动调节雨臂的摆动速度,雨大刮水臂转得快,雨小刮水臂转得慢,雨停刮水臂也停。2、基于51单片机的雨刮电机控制器的功能和结构(1)控制器输入:1个4档位旋转式开关,1个喷水控制按钮。(2)控制器:用51单片机作为控制器。(3)控制器输出:①雨刮电机停止、间歇式低速、低速、高速旋转4种输出状态,再加上喷水电机旋转同时雨刮电机高速旋转,共5种状态的输出。②用LED数码管显示Off、Int、Lo、Hi、FL共5种状态指示。Off——雨刮电机停止旋转。Int——雨刮电机每隔5秒低速旋转一次。Lo——雨刮电机低速旋转。Hi——雨刮电机高速旋转。FL——喷水按钮为最高级别的输入方式。检测到喷水按钮按下后喷水电机立即开始旋转,同时雨刮电机延时0.5秒启动,并以高速模式旋转。喷水按钮松开后喷水电机立即停止旋转,同时雨刮电机延时3秒后停转。四、实验步骤1、分析汽车雨刮电机控制系统的结构和各种工作状态。工作原理:低速档控制:把组合开关的刮水手柄打到“Ⅰ”档,电流从蓄电池正极→熔断器→共用电刷→电枢绕组→低速电刷→开关触点→搭铁高速档控制:把组合开关的刮水手柄打到“Ⅱ”档,电流从蓄电池正极→熔断器→共用电刷→电枢绕组→高速电刷→开关触点→搭铁自动复位控制:蓄电池正极→熔断器→共用电刷→电枢绕组→低速电刷→开关触点→触点臂5→铜环9→搭铁2、用protus设计出控制器硬件电路图。2、程序流程图及源程序源程序:#includereg51.h#includeabsacc.h#includeintrins.h#includestdio.h#defineucharunsignedchar#defineuintunsignedintucharcode开始初始化检测P1电机停止间歇低速喷水旋转电机低速电机高速segtab1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴显示段代码ucharcodeled1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//显示位代码ucharcodesegtab2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳显示段代码ucharcodeled2[]={0x01,0x02,0x04,0x08,0x10,0x20};//全局变量uinttime0_t1=10;//uinttime_jx1=1000;//uinttime_jx2=2000;//uinttime_ps=2000;//bitoff_jx_bz1=0;//间隙档位标志bitoff_on;//off_on=1,开关在off档标志bitoff_l;//off_l=1,开关在低速档标志bitoff_l1;//off_l=1,开关在低速档标志bitoff_h;//off_h=1,开关在高速档标志bitoff_h1;//off_h=1,开关在高速档标志bitoff_jx;//off_jx=1,开关在间隙档标志bitoff_jx1;//off_jx=1,开关在间隙档标志bittime_jx_bz;//间隙档启动定时器标志bitoff_ps=0;//off_ps=1,开关在喷水档标志bitoff_ps1=0;//off_ps=1,开关在喷水档标志bittime_ps_bz;//喷水档启动定时器标志sfrldata0=0x80;//P0口sfrldata1=0x90;//P1口sfrldata2=0xa0;//P2口sfrldata3=0xb0;//P2口sbiti32=P3^2;sbitQ4=P3^4;sbitQ5=P3^5;sbitQ6=P3^6;sbitQ7=P3^7;bitQ4a=0;bitQ5a;bitQ6a;bitQ7a;//函数定义voiddelay(uint);//定义延时函数voiddir(uchar,uchar);//定义显示函数voidoff_lhs();voidoff_hhs();voidoff_jxhs();voidoff_pshs();voidoff_onhs();//主函数voidmain(){uinta1;//a2;ucharqian;ucharbai;//定义显示的百位ucharshi;//定义显示的十位ucharge;//定义显示的个位//系统初始化TMOD=0x01;//设置定时器0为方式1工作,定时器1方式0工作TH0=(65535-1000)/255;//定时器0每0.1秒中断,时间常数TL0=(65535-1000)%255;//定时器0每0.1秒中断,时间常数EA=1;//允许中断ET0=1;//允许定时器0中断TR0=1;//定时器启动while(1){a1=time_jx1;if(time_jx1==0)a1=time_jx2;qian=a1/1000;bai=a1%1000/100;shi=a1%1000%100/10;ge=a1%1000%100%10;Q5=Q5a;Q4=Q4a;Q6=(Q4a&Q6a&~Q7a)|(Q4a&~Q6a&~Q7)|(~Q4a&Q6a&~Q7);Q7=(Q4a&~Q6a&Q7a)|(~Q4a&~Q6a&Q7a);dir(qian,0);//显示千位dir(bai,1);//显示百位dir(shi,2);//显示十位dir(ge,3);//显示个位Q5a=~i32;//喷水电机启动if(Q5a==1){time_ps=2000;Q4a=1;//喷水标志off_ps=1;}elseif(off_ps==1){time_ps_bz=1;//喷水按钮松开后,雨刮电机延时2S停止off_ps=0;}a1=~ldata1&0x0f;//采样P1口switch(a1){case1:off_on=1;off_l=0;off_h=0;off_jx=0;off_jx_bz1=0;off_onhs();break;case2:off_on=0;off_l=1;off_h=0;off_jx=0;off_jx_bz1=0;off_lhs();break;case4:off_on=0;off_l=0;off_h=1;off_jx=0;off_jx_bz1=0;off_hhs();break;case8:off_on=0;off_l=0;off_h=1;off_jx=1;off_jxhs();break;default:off_on=1;off_l=0;off_h=0;off_jx=0;off_jx_bz1=0;off_onhs();break;}}}voiddelay(uintitime){uinti,j;for(i=0;iitime;i++)for(j=0;j100;j++);}voiddir(ucharduan1,ucharwei1){ldata0=segtab1[duan1];ldata2=led1[wei1];delay(2);ldata0=0x00;ldata2=0xff;}voidINT0_time0()interrupt1using2//定时器0中断函数{TH0=(65535-1000)/255;TL0=(65535-1000)%255;time0_t1--;if(time0_t1==0){time0_t1=5;if(time_jx_bz==1)//{if(time_jx1!=0){time_jx1--;}else{Q6a=0;Q7a=0;if(time_jx2!=0){time_jx2--;}else{off_jx_bz1=0;}}}if(time_ps_bz==1){if(time_ps!=0){time_ps--;}else{Q4a=0;time_ps_bz=0;off_ps=0;}}}}voidoff_lhs()//开关在低速档处理函数{time_jx_bz=0;off_l1=1;Q6a=0;Q7a=1;}voidoff_hhs()//开关在高速档处理函数{time_jx_bz=0;off_h1=1;Q6a=1;Q7a=0;}voidoff_onhs()//开关在关闭档处理函数{time_jx_bz=0;Q6a=0;Q7a=0;}voidoff_jxhs()//开关在间隙档处理函数{if(off_jx_bz1==0){off_jx_bz1=1;time_jx_bz=1;time_jx1=1000;time_jx2=2000;Q6a=1;Q7a=0;}}六、实验总结通过此次试验,我掌握了汽车雨刮电机总成的结构和工作原理以及巩固了protus软件和keilμVsion软件的使用方法和protus软件进行电路原理图设计并进行仿真的相关知识。
本文标题:基于51单片机的雨刮控制实验报告
链接地址:https://www.777doc.com/doc-7424460 .html