单片机小车课程设计.docx

上传人:b****0 文档编号:12507193 上传时间:2023-04-19 格式:DOCX 页数:19 大小:203.43KB
下载 相关 举报
单片机小车课程设计.docx_第1页
第1页 / 共19页
单片机小车课程设计.docx_第2页
第2页 / 共19页
单片机小车课程设计.docx_第3页
第3页 / 共19页
单片机小车课程设计.docx_第4页
第4页 / 共19页
单片机小车课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

单片机小车课程设计.docx

《单片机小车课程设计.docx》由会员分享,可在线阅读,更多相关《单片机小车课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

单片机小车课程设计.docx

单片机小车课程设计

 

单片机原理及应用课程设计

 

专业:

电气工程及其自动化

设计题目:

寻迹小车设计

班级:

学生姓名:

学号:

指导教师:

分院院长:

教研室主任:

 

电气工程学院

 

一、课程设计任务书

1.课程设计项目

寻迹小车设计

2.设计内容

1)设计题目总体设计方案

2)硬件电路设计

3)C语言程序编制与调试

4)电路系统的综合调试

5)撰写课程设计论文

6)完成课程设计论文答辩

3.设计要求

1)设计一台自动寻电动小车。

2)电动车能自动寻迹,按设定好的轨迹前进。

3)寻迹由小车前端左右两个光电开关完成,通过调整RW2和RW4可以改变光电开关的灵敏度。

4)设计结束学生应撰写课程设计报告一份,完成课程设计答辩;

5)课程设计报告内容包括:

课程设计题目;设计计划与方案论证;设计方案实现(含程序);课程设计心得。

6)课程设计报告的撰写格式应符合单片机实用技术课程设计报告格式要求。

4、参考资料

[1]李广弟,朱月秀,王秀山编著.单片机基础.北京:

北京航空航天大学出版社,2001

[2]何立民编著.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:

北京航空航天大学出版社,1999

[3]蔡美琴等编著.MCS-51单片机系统及应用.北京:

高等教育出版社.1992

5.设计进度(2011年6月13日至2011年6月24日)

时间

设计内容

第1-2天

查阅资料,方案比较、设计与论证,理论分析与计算

第3-5天

硬件电路调试

第6-8天

系统调试

第9-10天

书写报告、答辩

6.设计地点

新实验楼323微机实验室

 

单片机原理及

应用课程设计

 

班级:

姓名:

学号:

指导教师:

撰写日期:

 

第一章课程设计内容与要求分析1

1.1课程设计内容1

1.2课程设计要求分析1

1.3系统单元电路组成2

1.3.1循迹模块部分2

1.3.2电机驱动部分4

1.3.3静态显示及按键6

第二章控制系统程序设计7

单片机原理及应用课程设计8

参考文献9

 

第一章课程设计内容与要求分析

1.1课程设计内容

本题目以89C51单片机为核心器件组成小车循迹控制系统,采用定时中断实现精确定时;利用提供的单元模块构成硬件系统。

循迹小车控制系统的设计要求:

1)基本功能:

循迹小车在不同区域速度不一样。

沿着导航线,一次通过区域1(慢速区)、区域2(加速区)、区域3(慢速区)实现分段限速控制,到达终点后停下。

循迹用小车前端左右两个光电开关完成,通过调整RW2和RW4可以改变光电开关的灵敏度。

循迹小车路径如图1-1所示:

图1-1循迹小车路径图

2)扩展功能:

利用按键实现小车的运行控制,一个按键控制小车的前进,一个按键控制小车的停止,还有一个按键控制小车每一段区域所消耗时间及三段区域所消耗时间总和的控制。

设置数码管时间显示模块:

即当小车经过一个区域,显示出总时间。

1.2课程设计要求分析

小车设计分析如下表1-1所示:

设计任务

功能及要求

主控部分

完成数据处理、计算,控制小车速度

循迹部分

实现小车正确的前进后退

表1-1循迹小车模块设计任务

1.3系统单元电路组成

基于题目要求实现的各项功能及难易程度,在车辆选择上,对模型车进行简单改装,车辆性能良好,易于控制,运行稳定。

在处理器方面,智能小车采用STC10F04XE单片机作为核心的控制系统,结合STC10F04XE单片机实现小车沿各种不同黑线运行、显示等功能。

循迹小车硬件部分可以分为三个模块:

分别是驱动模块、循迹检测模块和显示模块。

1.3.1循迹模块部分

循迹模块是整个设计的关键部分,小车能够按照黑线运行到目的地位置是能够顺利完成的重要环节。

循迹检测原理如图5-1所示,由光电开关和比较器组成,漫反射式光电开关能反映反射光的强弱,用比较器进行分辨,从而循迹。

小车首先能够按照黑线路径行驶,其次能够准确检测判断起点和终点。

采用红外线发射接收一体管,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。

最后通过LM339把输出的电压信号转化为TTL电平信号送给单片机。

为了屏蔽外界光的影响,使灵敏度大幅提升,可以在对管上套一塑料纸。

这种设计应用简单,体积小,工作稳定,精度较高。

红外对管原理图如图1-2所示。

图1-2红外对管原理图

LM339集成块内部装有四个独立的电压比较器,该电压比较器的特点是:

1)失调电压小,典型值为2mV;

2)电源电压范围宽,单电源为2-36V,双电源电压为±1V-±18V;

3)对比较信号源的内阻限制较宽;

4)共模范围很大,为0~(Ucc-1.5V)Vo;

5)差动输入电压范围较大,大到可以等于电源电压;

6)输出端电位可灵活方便地选用。

LM339的功能:

输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受Vcc端电压值的限制.此输出能作为一个简单的对地SPS开路(当不用负载电阻没被运用),输出部分的陷电流被可能得到的驱动和器件的β值所限制.当达到极限电流(16mA)时,输出晶体管将退出而且输出电压将很快上升.输出饱和电压被输出晶体管大约60ohm的γSAT限制。

当负载电流很小时,输出晶体管的低失调电压(约1.0mV)允许输出箝位在零电。

1.3.2电机驱动部分

电机驱动电路是单片机控制信号的数字信号和电机驱动信号的模拟信号相互衔接的地方,采用L293D芯片的驱动模块。

L293D采用16引脚DIP封装,其内部集成了双极型H-桥电路,所有的开量都做成n型。

这种双极型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:

低速平稳性好等。

L293D通过内部逻辑生成使能信号。

H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。

另外,L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。

每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。

选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。

选择一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转。

L293D是单块集成电路,高电压,高电流,四通道驱动,设计用来接受DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步近马达),和开关电源晶体管,电机驱动原理图如图1-4所示。

简单的使用是作为2个桥,一对通道连接起来有一个使能输入。

分离的输入引脚提供某种逻辑,允许用低电压操作,并且还包括内置的钳位二极管。

这个设备适用于高达5KHz的开关应用。

L293D是16引脚塑料封装,中间的4个引脚是短路的(为了散热)。

最高工作电压为36V,最低工作电压为7V.

图1-3电机驱动原理图

L293D的逻辑控制见如下表1-2。

其中C、D分别为IN1、IN2或IN3、IN4;L为低电平,H为高电平。

Input

Enable(*)

Output

H

H

H

L

H

L

H

L

Z

L

L

Z

表1-2L298对直流电机控制的逻辑真值表

1.3.3静态显示及按键

图1-4静态显示及按键电路

第二章控制系统程序设计

这次单片机课设主要就是检验我们的单片机程序设计编写能力。

在老师给定元器件的基础上,了解各元器件的功能,按照课设要求编写程序,实现小车的分段速及及每段消耗时间的数码显示,并且利用按键来控制小车的前进与停止及时间的显示。

程序编写要分段进行调试,最后把所有的分段程序放在一起,实现最后的课设要求。

首先进行的是小车循迹的编程调试,即对小车的前进,左转,右转,停止四个状态进行编程;其次是能实现变速分区域行驶和扫描到三条黑线后自停,分区域变速行驶,主要就是判断小车前面的两个对管同时扫描到黑线的次数,由于各段的速度不一样,致使一个扫描周期内小车所走过的路程也不一样,要保证小车无论通过以何种速度通过黑线时,小灯均能够及时的同时扫描到黑线并记录。

因此,在进行测试的时候,尽可能使第二道黑线稍微宽一下,这样确保小车在第二段区域快速行驶时,能够扫描到黑线。

但宽度不宜太宽,否则容易使小车扫描到两次,迫使小车在第二段区域便停车。

最后是通过按键自动记录各段所消耗的时间以及利用令外两个按键控制小车的急停和启动。

 

单片机原理及应用课程设计

此次寻迹小车这个课程设计主要就是在老师提供现有元器件基础上,通过了解电路结构及原理设计一个程序,使小车满足按黑线寻迹的要求,并且在区域一缓慢行驶,当到达区域二时全速行驶,到达区域三时又变为缓慢行驶。

此外,小车的速度控制主要是通过脉宽调速进行,将第一个区域和第三个区域设置成相同的较低速度,将区域二设置成全速前进。

最后老师要求修改程序利用按键控制小车的运行状态,即一个键按下时小车立即停止,另一个键按下时小车又能够按照原来的状态要求继续前进,还有一个键按下时显示小车每一段运行的时间以及最后显示消耗时间总和。

本设计主要用到了单片机的通用I/O口的读写功能,通过实际操作进一步掌握了51单片机的使用。

同时,通过单片机外围电路的设计,更深入学习了51单片机在日常生活中的应用。

通过编写程序,也进一步提高了我们的动手能力以及分析解决错误的能力,使我们能够更好的将所学知识应用到实际中来。

本系统虽然能够基本满足设计要求,能够较快较平稳的是小车沿黑带线行驶,但由于经验能力水平有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进,最后感谢老师们的细心指,如果没有你们的帮助此次课程设计我应该不会那么顺利的完成。

 

总结人:

总结日期:

参考文献

[1]李广弟,朱月秀,王秀山编著.单片机基础.北京:

北京航空航天大学出版社,2001

[2]何立民编著.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:

北京航空航天大学出版社,1999

[3]蔡美琴等编著.MCS-51单片机系统及应用.北京:

高等教育出版社.1992

 

附录

本系统是以STC89S51单片机为控制器,在KEIL开发环境中,运用C语言对单片机进行编写。

主程序主要起导向和决策作用,它控制整个系统协调稳定地运作。

系统各种功能主要通过调用具体的子程序来实现。

系统程序如下:

#include

sbiten1=P0^0;//右边电机

sbitRIN1=P0^1;

sbitRIN2=P0^2;

sbitLIN1=P0^3;//左边电机

sbitLIN2=P0^4;

sbiten2=P0^5;

sbitR_CQG=P0^6;//接收信号处理口

sbitL_CQG=P0^7;

unsignedcharflag;

unsignedchart,t1,t2,t3;//定义总时间、一段时间、二段时间、三短时间

unsignedcharLPWM,RPWM;//左、右PWM变量

unsignedchardisp[4];//定义4个显示缓冲单元

unsignedcharcodedtab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,

0x01,0x09,0x91,0xfd,0xff};

//共阳极接法的数字0~9段码表

voidDelayms(unsignedintx);//定义xms延时函数,x就是形式参数

voidDisply164(void);//显示函数

/***************************************************

显示函数:

用串行口方式0驱动74L164

***************************************************/

voidDisply164(void)//显示函数

{

unsignedchari;

for(i=0;i<4;i++)//循环4次(4个数码管)

{

SBUF=dtab[disp[i]];//查表取段码,串行送出

Delayms

(2);

while(TI==0);

TI=0;

}

}

voidtimer0(void)interrupt1

{

staticunsignedcharclick=0;//中断次数计数器变量

staticunsignedcharnum;

TH0=(65536-200)/256;

TL0=(65536-200)%256;

++click;

if(click>=100)

click=0;

if(click<=LPWM)/*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/

LIN1=0;

else

LIN1=1;

if(click<=RPWM)

RIN1=0;

else

RIN1=1;

if(++num>=250)//50ms送一次显示

{

num=0;

Disply164();

}

}

voidtimer1(void)interrupt3

{

staticunsignedcharnum;//中断次数计数器变量

TH1=0X3c;//恢复定时器初始值

TL1=0Xb0;

if(++num>=20)

{

num=0;

if(flag==0)

t1++;

elseif(flag==1)

t2++;

elseif(flag==2)

t3++;

}

disp[2]=12;

disp[3]=flag;

}

voidinit()

{

SCON=0X00;

TMOD=0X11;

TH0=(65536-200)/256;

TL0=(65536-200)%256;

TH1=0X3c;//恢复定时器初始值

TL1=0Xb0;

EA=1;

ET0=1;

TR0=1;

ET1=1;

TR1=1;

}

voidmain()

{

init();

en1=1;

en2=1;

LIN2=1;

RIN2=1;

disp[0]=0;

disp[1]=0;

disp[2]=0;

disp[3]=0;

while

(1)

{

if(L_CQG==0&&R_CQG==0)

{

Delayms(1050);

if(L_CQG==0&&R_CQG==0)

{

flag++;

if(flag>=3)

flag=3;

}

}

if(flag==0)

{

disp[0]=t1%10;

disp[1]=t1/10;

if(L_CQG==1&&R_CQG==1)

{LPWM=50;RPWM=60;}

elseif(L_CQG==0&&R_CQG==1)

{LPWM=15;RPWM=60;}

elseif(L_CQG==1&&R_CQG==0)

{LPWM=50;RPWM=20;}

}

elseif(flag==1)

{

disp[0]=t2%10;

disp[1]=t2/10;

if(L_CQG==1&&R_CQG==1)

{LPWM=90;RPWM=100;}

elseif(L_CQG==0&&R_CQG==1)

{LPWM=20;RPWM=100;}

elseif(L_CQG==1&&R_CQG==0)

{LPWM=90;RPWM=15;}

}

elseif(flag==2)

{

disp[0]=t3%10;

disp[1]=t3/10;

if(L_CQG==1&&R_CQG==1)

{LPWM=50;RPWM=60;}

elseif(L_CQG==0&&R_CQG==1)

{LPWM=15;RPWM=60;}

elseif(L_CQG==1&&R_CQG==0)

{LPWM=50;RPWM=20;}

}

elseif(flag==3)

{

t=t1+t2+t3;

en1=0;

en2=0;

Delayms(20000);

disp[0]=t%10;

disp[1]=t/10;

disp[2]=11;

disp[3]=10;

TR1=0;

}

}

}

/**************************************************************

函数功能:

延时函数

**************************************************************/

voidDelayms(unsignedintx)//定义xms延时函数,x就是形式参数

{

unsignedinti;

unsignedcharj;

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

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

}

 

二、评语及成绩

评分项目

评分标准

量化

分数

1.独立分析与解决问题的能力

很强

较强

一般

不具有

10

2.课程设计的答辩情况

有见解

回答准确

回答正确

基本正确

有错误

25

3.课程设计论文及插图的规范程度

规范

整洁

正确

杂乱

有错误

25

4.工具软件的使用

熟练使用

会使用

需要学习

10

5.辅导答疑

积极

认真

应付

消极

10

6.设计态度

积极

认真

应付

消极

10

7.出勤

全勤

缺勤次数

10

附加评语

量化总分

 

成绩:

指导教师:

 

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

当前位置:首页 > 高中教育 > 语文

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

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