自动往返小车制.docx

上传人:b****6 文档编号:3399269 上传时间:2022-11-22 格式:DOCX 页数:14 大小:127.63KB
下载 相关 举报
自动往返小车制.docx_第1页
第1页 / 共14页
自动往返小车制.docx_第2页
第2页 / 共14页
自动往返小车制.docx_第3页
第3页 / 共14页
自动往返小车制.docx_第4页
第4页 / 共14页
自动往返小车制.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

自动往返小车制.docx

《自动往返小车制.docx》由会员分享,可在线阅读,更多相关《自动往返小车制.docx(14页珍藏版)》请在冰豆网上搜索。

自动往返小车制.docx

自动往返小车制

自动往返小车的制作

本设计采用单片机作为自动往返小车的检测和控制核心。

路面黑线检测用发射式红外传感器,行使距离用霍耳元件进行检测行使距离,利用高低电平来控制继电器,达到电动机的转速控制。

二、关键字:

电刹车自动往返光电检测霍尔元件动态显示

三、方案论证

根据题目要求,本设计的主要任务是完成电动小气车在规定的行使路线中速度的控制,根据不同的行使路段要求不同的行使速度,并对行程中的有关数据进行记录和处理。

1、数据采集方案的选择

(1)、使用红外发光二极管和接收管组合。

(2)、使用发光二极管的光敏三极管组合。

本设计是近距离探测,故采用

(1)来完成数据的采集。

考虑环境光干扰主要是直流分量,如果采用带有交流分量的调制信号,则可大幅度的减少外界干扰;另外,红外发射管的最大工作电流取决于平均电流,如果使用占空比小的调制信号,在平均电流不变的情况下,瞬时电流可以很大,这样可以大大提高信噪比。

2、电源选择

(1)所有器件采用单一的电源控制,这样控制比较简单,但电动机启动时瞬间电流很大,会造成整体电路的电压不稳定,严重时可能会使单片机掉电。

(2)双电源供电。

将电机驱动电源和单片机供电电源分开,这样虽然不如

(1)方便灵活,但可以避免电机驱动造成的干扰,大大提高了系统的稳定性。

故设计中选择此方案。

3、电机驱动调速方案的选择

(1)采用继电器对电机的驱动电压进行调整,在高速时进行全速运转,低速时用精密电阻控制小车的速度,并进行调速来达到要求。

这样电路比较简单,且容易实现。

(2)采用555振荡器调脉宽的方式控制电动机的转速,后级采用三极管D882推动,此方案虽工作很稳定,但电路较复杂,给整体设计带来不便。

四、系统的总体设计与实现

(一)单片机控制的总体框图

(二)电源部分

本设计牵扯到电机和继电器,启动和运转时需要大电流,如果和单片机共用一个电源会使单片机两端的电压降低,影响单片机的正常工作,选用内阻小,供电电流强,质量轻,可反复使用的经济型电池是必然之选(我们选用镍铬电池组)。

为使单片机工作稳定,这里采用了两个电源,电机独自用一个,单片机和继电器共用一个,可使三两部分都能正常工作。

图1

(三)单片机控制基本系统

1、小车基本功能的实现

(1)光电检测黑带

当小车检测到黑带时输出低电平,从单片机的P3.4端口输入,记录小车过黑带数目,达到控制在不同时期小车的运动状态。

图2

(2)车速、正反转、停车控制系统

用P3.0,P3.5,P3.6输出的高低电平分别来控制3个继电器的闭合,控制电路如下:

图3

P3.0控制电机的高低速,在进入限速区时,给该口输出高电平,继电器吸合,在可调电阻调至和电机阻值相差不大的情况下,参与电机的分压,从而减小电机上的电压,实现电机的转速降低,达到减速的目的。

反之为进入高速区。

P3.5和P3.6分别控制另外的两个继电器,开始时分别给P3.5、P3.6赋高低电平,此时电机按照一定速度和方向转动,为正转。

同理两个端口分别被赋予0和1时,这两个端口上的两个继电器同时吸合,电机反转,即小车沿原路返回。

在终点停车时,两个端口同时被赋予高(或低)电平,从而实现电机被短路(电刹车),小车瞬间停止。

(3)单片机控制电路、显示部分

数码管显示小车在终点线停车10S到计时,采用静态显示。

当小车检测到一条黑线时,发光二极管闪烁一次。

图4

2、小车行使距离的测量

采用霍耳元件检测,每检测一次小车行使路程加周长12cm。

(四)显示部分:

采用两种显示方式:

一是小车在进入限速区时的8秒倒计时显示和在停止区的10秒计时,一是小车行驶距离和行驶时间的动态显示,利用两个单片机分别对小车的状态和动态显示的控制。

小车控制部分为4图,数码管动态显示见图5,DS1、DS2用来显示时间,DS3、DS4、DS5、DS6用来显示距离。

图5

五、小车安装与调试

自动小汽车是玩具汽车的改装,重要的是找对小车光电检测在小车上的位置。

根据设计的需要,此设计将光电检测置于小车的中心位置。

在调整过程中,不断对光电管位置调整,倾斜角度的调整,得到设计需要的黑带数目。

再次需要考虑的是小车在慢速区的形式速度,由于小车在2m的限速区内不允许停车,且用时不的低于8s,所以必须小车的速度很低。

但从高速区到低速区的速度变化较大,利用高速区行使的惯性,让小车在低速区有400ms的刹车,实现小车从高速到低速的快速转换,从而使小车能在低速区用时不超过8s,且能保持小车不停车。

为了小车碰到墙壁不至于停车,我们在小车的四角上都加上了导向轮,导向轮用随身听上的压带轮制作即可。

其它电路板用铜支架层叠式固定。

六、实验数据

场地总长设置为18m,小车的周长为12。

限速区用时为8s,小车往返行使时间为34s行使路程为16.32m,达到设计要求。

七、软件部分

(一)设计思想

基本功能部分用C语言编程实现,将黑带检测输出的低电平直接送入p34,同时记录黑带检测数目count,并根据count值对小车速度控制,即送入不同的高低电平。

对小车行使时间和行使距离的记录采用汇编语言,时间的记录用定时器定时50ms,产生20次达到1s的定时,然后用动态显示随时显示时间,当检测黑带数目到9次时,清中断标志,显示总的用时时间。

当检测到霍耳元件输入信号时触发外部中断,每次中断加一次小车的周长12cm,得到行使路程,并显示。

(二)设计流程图

八、参考文献:

1、《单片微型机原理、应用与实验》(第五版)张友德清华大学出版社2006

2、《数字电子技术基础》(第四版)阎石高等教育出版社2004

3、《模拟电路技术基础》(第三版)童诗白华成英高等教育出版社2004

4、《8051单片机课程设计实训教材》陈明荧清华大学出版社2004

附录:

程序

1、基本功能实现部分

#include

sbitp30=P3^0;//控制小车速度

sbitp32=P3^2;//显示过黑带

sbitp34=P3^4;//光电检测输入端口

sbitp35=P3^5;

sbitp36=P3^6;//控制小车正反转、停止和行使

unsignedcharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};//显示段码0--9

voiddelay1s(unsignedchark)

{

unsignedchari,j;

for(;k>0;k--)

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

voidmain()

{

unsignedinti;

unsignedintcount;

P1=0x00;

p30=0;

p33=0;

p35=0;

P0=tab[i];

while

(1)

{while(p34==1);

if(p34==0)

{while(p34==0);

count++;

}

while(count==3)

{p35=0;

p36=0;

p30=1;

P0=tab[8];

delay1s(40);

p35=0;

p36=1;

for(i=7;i>0;i--)

{

delay1s(100);

P0=tab[i];

p32=1;

}

delay1s(100);

P0=tab[i];

while(p34==1);

if(p34==0)

{

count++;

p30=0;

p32=0;

delay1s(100);

p32=1;

}

}

while(count==5)

{p36=0;

p35=0;

p33=1;

delay1s(100);

p32=1;

i++;

P0=tab[i];

if(i==9)

{

delay1s(100);

i=0;

P0=tab[i];

p33=0;

p30=0;

p35=1;

p36=0;

while(p34==1);

if(p34==0)

{

count++;

p32=0;

delay1s(100);

p32=1;

}

}

}

while(count==7)

{

p35=0;

p36=0;

p30=1;

P0=tab[8];

delay1s(40);

p35=1;

p36=0;

for(i=7;i>0;i--)

{

delay1s(100);

p32=1;

P0=tab[i];

}

delay1s(100);

P0=tab[i];

while(p34==1);

if(p34==0)

{

count++;

p30=0;

p32=0;

delay1s(100);

p32=1;

while(p34==1);

if(p34==0)

{

count++;

p33=1;

p32=0;

p35=0;

p36=0;

delay1s(100);

p32=1;

while

(1);

}

}

}

}

}

2、行使时间、距离显示部分

START:

ORG0000h

AJMPMAIN

ORG0003H

AJMPPINT0

ORG0013H

AJMPPINT1

ORG001BH

AJMPPTF1

;---------------------------------

MAIN:

CLRA

MOV31H,A;32H,33h存放行使时间

MOV32H,A

MOV33H,A

MOV34H,A;34H~37H存放行驶路程

MOV35H,A

MOV36H,A

MOV37H,A

MOV38H,A

MOV39H,A

MOVR7,A

MOVR0,A

MOVTMOD,#11H

SETBTR1

MOVIE,#9FH

MOVP1,#0F3H

MOVTH1,#3CH

MOVTL1,#0B0H

MOVTH0,#3CH

MOVTL0,#0B0H

MOV39H,#14H

FH:

LCALLDISPLAY

CJNER7,#0AH,FH

CLRET1

CLRTR1

L0:

LCALLDISPLAY

SJMPL0

;--------------------------------

PINT0:

INCR7

LK:

JNBP3.2,LK

RETI

;---------------------------------

PINT1:

MOVA,#2;小车的周长为12cm

ADDA,37H

MOV37H,A

CJNEA,#0AH,PTFOR1

MOV37H,#0

INC36H

PTFOR1:

INC36H

MOVA,36H

CJNEA,#0AH,TC

MOV36H,#0H

INC35H

MOVA,35H

CJNEA,#0AH,TC

MOV35H,#0H

INC34H

MOVA,34H

CJNEA,#0AH,TC

MOV34H,#0H

TC:

JNBP3.3,TC

RETI

;-------------------------------

DISPLAY:

MOVR6,#06H;显示子程序

MOVR0,#37H

MOVDPTR,#TAB

MOV40H,#0FEH

DL0:

MOVA,@R0

MOVCA,@A+DPTR

MOVP0,A

MOVP2,40H

ACALLDELAY

DECR0

MOVA,40H

RLA

MOV40H,A

DJNZR6,DL0

RET

TAB:

DB3FH,06H,5BH,4FH,66H;"0","1","2","3","4"

DB6DH,7DH,07H,7FH,6FH;"5","6","7","8","9"

DB77H,7CH,39H,5EH,79H;"A","b","C","d","E"

DB71H,40H,73H,1CH,00H;"F","-","P","空格","灭"

;延时(显示)----------------------------------

DELAY:

MOV41H,#01H

LOOP:

MOV42H,#0A0H

LOOP1:

DJNZ42H,LOOP1

DJNZ41H,LOOP

RET

;计时中断---------------------------------------

PTF1:

ORLTL1,#0B0H

MOVTH1,#03CH

DJNZ39H,PTFOR

MOV39H,#14H

INC33H

MOVA,33H

CJNEA,#0AH,PTFOR

MOV33H,#0H

INC32H

MOVA,32H

CJNEA,#0AH,PTFOR

MOV32H,#0H

PTFOR:

CJNER7,#0AH,PTFOR0

CLRTR1

MOVIE,#00H

PTFOR0:

RETI

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1