基于单片机的自动往返小车_第1页
基于单片机的自动往返小车_第2页
基于单片机的自动往返小车_第3页
基于单片机的自动往返小车_第4页
基于单片机的自动往返小车_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的自动往返小车基于单片机的自动往返小车C式通过一个四位的数码管显示即时里程,另外一个四位数码管动态显示小车行驶时间。以红外传感器对路面黑线检测用,行驶距离使用霍尔元件进行检小组成员:李亚昊、陈国翠、成晓斌、丁玉娇黑带检路程和时间显单片机L298N电机驱动模块黑带检测的原理是:红外光线照射到路面并反射,由于黑带和白纸的系数不弱判断是否到达黑带。反射式的红外发射—接收器。由于采用红外管代替普通可见光管,可以降低3.电源选择双电源供电,将电动机驱动电源与单片机以及周边电路电源完全隔离,这样做虽然不如单电源方便灵活,但可以将电动机驱动所造成的干扰彻底消除,提高了系统的稳定性。4.控制单元模块用单片机控制L其控M内部定数器/计数器进行定时、计数,在用单片机串行输入/输出口进行显示控制。此方案电路成熟、工作稳定、容易实现控制。小小车正反转行驶时间显示行驶里程显示开始控制中心STC89C52我们采用反射式光电检测电路对跑道上的黑线进行检测,并用两个遮光套管套住发光管和接收管以一定的角度紧贴跑道,这样可以消除外界光线的干扰,用LM此系统以89C52为核心,每检测到一个黑带由光电检测部分产生一个的脉冲,使单片机产生一个外部中断1,定义检测黑带数的变量加1,同时车轮每转一圈,霍尔元件输出一个脉冲,是安单片机产生一个外部中断0,定义圈数的变高电平时,电机正转,相反则电机反转,当和都是低电平时,使电动机被短路,提高了刹车效率,基本杜绝了由于制动惯性造成的小车的前冲现象。通过P0口该电路采用电动机驱动芯片L298来控制电动机的正转与反转,加以第二路电机电源保证了电动机启动时有足够的电流。在试验中控制电压为单片机输出的4.电源部分由于电动机工作电流大,需要选用内阻小,供电电流强,质量轻,可反复使用的经济型电池,我们选用可充电电池组。为使单片机工作稳定,避免电动机开和电动机驱动显示部分分别进行供电。保证小车工作和显示的稳定性。软件设计部分单片机控制电路主要由一片STC89C52组成,通过P3口控制小车正转与反转,刹车,加速减速,通过两个四联数码管控制显示时间和里程以及小车行驶的该系统采用上电复位加上手动复位联合复位系统进行初始化,单片机通过,(1)外部中断0车轮美转一次,霍尔元件产生一个脉冲,通过下降沿触发外部中断0,并且在每进行一次外部中断记录圈数的变量加1.车轮每转一圈霍尔元件产生一个脉冲(2)外中断1光电检测每检测到一条黑带就产生一个脉冲输入口,通过下降沿的方式触发小车的电动机由于短路刹车,当检测到第十二条黑带时,小车再次刹车同时关掉中断YidaiYidai2EA=0,刹车(3)定时器中断0开始开始定时中断0是总共转的圈数q(4)定时器中断1主要用来产生不同的占空比的波型进行高低速控制,每次执行时,定时器1(5)主程序主程序主要用来控制两个四联数码管的显示,通过循环语句不断的调用显示程序,使两个四联数码管按位不断循环亮点,当小车行驶时动态显示时间和路程,小车停止时显示小车行驶过程中的时间和路程。6.安装与调试自动小车为玩具遥控小汽车的改装品,在改装的过程中最重要的是考虑设计光电检测管的位置,检测黑带的光电管放在车体的中央,用遮光管将其以一定反射角度压到跑道上。路程检测用槽型光耦,放在小车的从动轮上。轮子的周长约为厘米,在轮子上用了一个霍尔元件,每转一圈一个脉冲。在组装前对每一个单元电路进行测试,以保证外部硬件电路的无误,有利于最后的统调。调整是以点到线,最后到整体调试的方法。在调整的过程中我们发现了许多问题,如响应中基本元器件列表晶振(12M)及30pf电容tunsignedintarunsignedchardianjiP控制一sbitdianji2=P1^1;sbithdjc=P3^2;检测位ucharcodeduma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodedianduma[]={bfxxdbxcfxexedxfdxucharcodewema]={xxx,0x08,xxx,0x80,ucharnum,ge,shi,bai,qian;uintmiaolc,heidai=0;longintqs;的圈数voidfenwei(uint);位voidshuma(uchar,uchar);voidshumadian(uchar,uchar);voidmiaoxianshi(uint);voidlcxs(uint);voiddjkz();//P1_0设置为电机//P11置为电机控制二//P3_2设置为黑带//定义一个长整形变量用来记录小//声明一个分位函数用来把要显示的数分//声明一个数码上显示函数用来在数码管//声明另一个数码显示函数用来显示带小//声明一个显示时间的函数//声明一个显示路程//声明一个电机控制ayucharelays数用来延时十秒钟voidfenwei(uintx)显示的数据分位{ge=x%10;shi=(x%100)/10;bai=(x%1000)/100;qian=x/1000;//声明另一个延时函//把需要在数码管上}voidshuma(ucharx,uchary)//将需要显示的数据显示在{P0=wema[8];P2=duma[x];P0=wema[y];delay(5);}voidshumadian(ucharx,uchary){P0=wema[8];P2=dianduma[x];P0=wema[y];delay(5);}voidmiaoxianshi(uintx){}voidlcxs(uintz)//将需要显示的数据显示在{}z{ucharnm{aoxianshimiaowhile(m--){aoxianshimiao}whileheidai=3){aoxianshimiao}whileheidai=4){aoxianshimiao}while(n--){aoxianshimiao}whileheidai=6){}aoxianshimiao}{}{}}while){aoxianshimiao}}}ddelayucharx{uchari,j;forixi;i--)orjjj}lays{uinti,j;forii>0;i--)forj;j>0;j--){aoxianshimiao}}voidext0()interrupt0带{delay(50);fhdjcheidai++;}voidtime0()interrupt10,用来记录时间{TH0=(65536-500)/256;TL0=(65536-500)%256;//外部中断0,用来//函数功能:定时器中断{iao}}voidext1()interrupt2轮转过的圈数{slc=(int)(qs*;}voidmain(){EA=1;ET0=1;定时器中断0EX0=1;IT0=1;EX1=1;IT1=1;TMOD=0x01;TH0=(65536-500)/256;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论