智能小车的实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能产品设计实训报告书
课程名称:智能产品设计
班级:应用电子技术15级2班
小组成员(学号):商育诚(39)王少勇(91)
实训项目:智能小车
实训时间:2017年5月8日
指导老师:何敬银老师
填表日期:2017年5月14日星期日
实训目的-------------------------------------3 实训要求-------------------------------------3 实训内容-------------------------------------4
智能小车元器件清单-----------------------------------------------4 智能小车代码-----------------------------------------------------5 智能小车电路图---------------------------------------------------10 智能小车焊接-----------------------------------------------------11 智能小车模块系统详解---------------------------------------------12
实训成果展示---------------------------------13 收获和体会-----------------------------------14
实训目的:
制作一个基于单片机控制的智能小车,可以进行多种功能。也让我们自己学习,学习到单片机的知识和单片机编程的知识还有电阻的识别和一些电路的知识。提高了我们焊接技术和团队合作能力,增加了我们制作电子产品产品的经验。这个实训还有对于一些需要进行PPT的演讲,不经给我们一个展示自己作品的平台,更重要的是给我一个增强自信心的机会,展现自己和展现自己的作品这个实训不仅让我们学会更多的知识而且还满足我们自己对自己亲自动手制作电子产品的愿望。
实训要求:
能够熟练对老师进行智能小车源代码的讲解,还有对于电路图的了解和电路知识的应用,还有对于另一些芯片的知识进行学习。还有熟练掌握元器件的名称大小的识别。还有在焊接过程中可以可以让我们的焊接技术更加地熟练,可以让我们的小组成员合作更好,增强了小组成员的合作默契。
实训内容----智能小车元器件清单
智能小车代码
#include
#include
sbit xunjiLed=P2^1; //定义前方左侧指示灯端口
sbit bizhangLed=P2^0; //定义前方右侧指示灯端口
sbit LeftIRBZ=P1^1; //定义前方左侧红外探头端口sbit RightIRBZ=P1^0; //定义前方右侧红外探头端口
sbit LeftIR=P3^5; //定义前方左侧红外探头端口
sbit RightIR=P3^6; //定义前方右侧红外探头端口
sbit M1A=P0^0; //定义左侧电机驱动A端
sbit M1B=P0^1; //定义左侧电机驱动B端
sbit M2A=P0^2; //定义右侧电机驱动A端
sbit M2B=P0^3; //定义右侧电机驱动B端
static unsigned int LedFlash; //定义闪动频率计数变量bit EnableLight=0; //定义指示灯使能位
unsigned char temp = 1;
void tingzhi()
{
M1A=0; //将M1电机A端初始化为0 M1B=0; //将M1电机B端初始化为0 M2A=0; //将M2电机A端初始化为0 M2B=0;
}
void qianjin()
{
M1A=1;
M1B=0;
M2A=1;
M2B=0;
}
void houtui()
{
M1A=0;
M1B=1;
M2A=0;
M2B=1;
}
void zuozhuan()
{
M1A=0;
M1B=1;
M2A=1;
M2B=0;
}
void youzhuan()
{
M1A=1;
M1B=0;
M2A=0;
M2B=1;
}
void Delay1ms(unsigned int i)
{
unsigned char j,k;
do{
j = 10;
do{
k = 50;
do{
_nop_();
}while(--k);
}while(--j);
}while(--i);
}
void delay_nus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us
{
i=i/10;
while(--i);
}
void delay_nms(unsigned int n) //延时n ms
{
n=n+1;
while(--n)
delay_nus(900); //延时1ms,同时进行补偿
}
void delayms(unsigned char x) //0.14mS延时程序
{
unsigned char i; //定义临时变量
while(x--) //延时时间循环
{
for (i = 0; i<13; i++) {} //14mS延时
}
}
void Delay() //定义延时子程序
{
unsigned int DelayTime=30000; //定义延时时间变量
while(DelayTime--); //开始进行延时循环
return; //子程序返回
}
void ControlCar(unsigned char ConType) //定义电机控制子程序
{
tingzhi();
switch(ConType) //判断用户设定电机形式
{
case 1: //前进//判断用户是否选择形式1
{
//tingzhi(); //进入前进之前先停止一段时间防止电机反向电压冲击主板导致系统复位
//Delay1ms(50);
qianjin();
break;
}
case 2: //后退//判断用户是否选择形式2
{
// tingzhi(); //进入后退之前先停止一段时间防止电机反向电压冲击主