基于51单片机的循迹小车设计(5100字)

发表于:2020.10.21来自:www.fanwen118.com字数:5100 手机看范文

基于89s51单片机的循迹小车设计报告

51单片机的循迹小车设计

第一章 引言

1.1 设计目的

通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。

1.2 设计方案介绍

该智能车采用红外对管方案进行道路检测,单片机根据采集到的红外对管的不同状态判断小车当前状态,通过pid控制发出控制命令,控制舵机和电机的工作状态以实现对小车姿态的控制。

1.3 技术报告内容安排

本技术报告主要分为三个部分。第一部分是对整个系统实现方法的一个概要说明,主要内容是对整个技术方案的概述;第二部分是对硬件电路设计的说明,主要介绍系统传感器的设计及其他硬件电路的设计原理等;第三部分是对系统软件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说明及代码设计介绍等。

基于89s51单片机的循迹小车设计报告

第二章 技术方案概要说明

本模型车的电路系统包括电源管理模块、单片机模块、传感器模块、电机驱动模块、舵机控制模块。

在整个系统中,由电源管理模块实现对其他各模块的电源管理。其中,对单片机、光电管、舵机提供5V电压,对电机提供6V电压。

路径识别电路由8对光电发送与接收管组成。由于路面存在黑色引导线,落在黑线区域内的光电接收管接收到反射的光线的强度与白色的路面不同,进而在光电接收管两端产生不同的电压值,由此判断路线的走向。传感器模块将当前采集到的一组电压值传递给单片机,进而根据一定得算法对舵机进行控制,使小车自动寻线行走。

单片机模块是智能车的核心部分,主要完成对外围各个模块的管理,实现对外围模块的信号发送,以及对传感器模块的信号采集,并根据软件算法对所采集的信号进行处理,发送信号给执行模块进行任务执行,还对各种突发事件进行监控和处理,保证整个系统的正常运作。

舵机控制模块则根据检测情况经单片机处理后发出相应的PWM波对舵机进行转向的控制。

电机驱动模块采用H桥驱动,通过PWM 波对电机进行控制,以实现对小车速度的调节。

基于89s51单片机的循迹小车设计报告

第三章 硬件电路的设计

3.1 单片机最小系统

小车采用atmel公司的at89s52单片机作为控制芯片,图3-1是其最小系统电路。主要包括:时钟电路、电源电路、复位电路。其中各个部分的功能如下:

1、时钟电路:给单片机提供一个外接的16MHz的石英晶振。

2、电源电路:给单片机提供5V电源。

3、复位电路:在电压达到正常值时给单片机一个复位信号。

基于51单片机的循迹小车设计

图3-1 单片机最小系统原理图

3.2 传感器电路

光电寻线方案一般由多对红外收发管组成,通过检测接收到的反射光强,判断黑白线。原理图由红外对管和电压比较器两部分组成,红外对管输出的模拟电压通过电压比较器转换成数字电平输出到单片机。

基于89s51单片机的循迹小车设计报告

3-2赛道检测原理图:

3.3 电源电路设计

模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。在本设计中,51单片机使用5V电源,电机及舵机使用6V电源。考虑到电源为充电电池组,额定电压为7.2V,实际充满电后电压则为6.5-6.8V,所以单片机及传感器模块采用7805稳压后的5V电源供电,舵机及电机直接由电池供电。

3.4 舵机及电机驱动电路设计

舵机的驱动电路比较简单,电源直接由电池组提供,其输入信号为单片机输出的pwm波。

本系统使用的电机驱动板为一个由分立元件制作的直流电动机可逆双极型桥式驱动器,其功率元件由四支N沟道功率MOSFET管组成,由此电路,通过设置51输出的PWM波的占空比可以达到控制电机转速的效果。

基于51单片机的循迹小车设计

3-3 H桥驱动电路

基于51单片机的循迹小车设计

基于89s51单片机的循迹小车设计报告

第四章 软件系统的实现

4.1主程序设计

单片机系统需要接收路径识别电路的信号,采用某种路径搜索算法进行寻线判断,进而控制舵机和直流驱动电机的工作。小车系统的软件使用C语言实现。 主体控制框架:

模型车采用的控制方法是根据传感器采集到的路况信息,通过计算得到具体的方向偏移量和速度,控制小车的行走状态。

4.2 程序思路

智能车利用了一字形排布的8个传感器来探测道路,并将每个传感器采集到的信息转换成了数字电平。因此8个传感器的数据正好构成一个字节,由单片机P2口读入。

由于读入的数据并不方便直接参与控制计算,因此先将该数据集分成16类,分别对应于小车不同的位置信息,由0-15表示,其中0表示引导线位于小车最左侧,7表示引导线位于小车中部,14表示引导线位于小车最右侧,15表示未检测到引导线或其他错误情况。

将上面的转换后的数据作为控制计算的反馈输入,与7相减即得到小车偏差信息,然后通过增量型pid算法计算出舵机的控制信息。

将小车偏差信息的微分作为速度pid的输入,依然通过增量型pid算法得到电机的控制信息。至此小车完成一次控制周期。

由于at89s51单片机没有PWM模块,因此需要通过通用I/O口进行模拟来输出舵机和电机所需的PWM波。

可以分别使用一个定时器来作为一路PWM波的计时器。先将I/O口置位,设定高电平时间及定时器的初值,当定时器产生中断时,再将I/O口清零,并设定低电平时间,由此循环即可产生PWM波。其中,高电平时间有控制计算得出,低电平时间有PWM周期减去高电平时间得到。

基于51单片机的循迹小车设计

基于89s51单片机的循迹小车设计报告

第五章 结论

本设计主要用到了单片机的通用IO口的读写,定时器,中断等基本功能,通过实际操作进一步掌握了51单片机的使用。同时,通过单片机外围电路的设计,更深入学习了51单片机在嵌入式系统中的应用。通过实际焊接电路,编写程序,也进一步提高了我的动手能力以及分析解决错误的能力,是我能够更好的将所学知识应用到实际中来。

本系统能够基本满足设计要求,能够较快较平稳的是小车沿引导线行驶,但由于经验能力有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进。

基于89s51单片机的循迹小车设计报告

附录:源程序主代码

#include <reg52.h>

#include <intrins.h>

#include <math.h>

#define uchar unsigned char

#define uint unsigned int

#define MIDDLE 1390 //舵机中心位置

#define LEFT 1600

#define RIGHT 1000

#define T 20000

#define HIGH 7300 //电机基准速度

sbit rudder=P1^0; //定义舵机PWM波输出端口为P1.0口 sbit pulse=P1^1; //定义后轮PWM波输出端口为P1.1口

char flag1=0,flag2=0; //定义全局变量(flag1用于控制舵机

//PWM标志位,flag2用于控制电机PWM)

uint b=0,a=0; //b用来装载电机所需的高电平时间,a用

于保存电机所需高电平时间

void main()

{

uchar receive,ek[4]={7,7,7,7};

uint pidr=0;

uint pidlr=0;

uint ppid=0;

IE=0x8a;

TMOD=0x11;

TH0=0x00;

TL0=0x00;

TR0=1;

TH1=0x00;

TL1=0x00;

TR1=1;

while(1)

基于89s51单片机的循迹小车设计报告

{ receive=P2; /*--------------switch----------------*/ switch(receive) { case 0x7f:ek[3]=0;break; 电传感器检测到黑线 case 0x3f:ek[3]=1;break; 电传感器检测到黑线 case 0xbf:ek[3]=2;break; case 0x9f:ek[3]=3;break; case 0xdf:ek[3]=4;break; case 0xcf:ek[3]=5;break; case 0xef:ek[3]=6;break; case 0xe7:ek[3]=7;break; case 0xf7:ek[3]=8;break; case 0xf3:ek[3]=9;break; case 0xfb:ek[3]=10;break; case 0xf9:ek[3]=11;break; case 0xfd:ek[3]=12;break; case 0xfc:ek[3]=13;break; case 0xfe:ek[3]=14;break;

default: ek[3]=15;break;

//采集光电传感器的值 //根据采集到的值进行判断

//0111 1111 最左边(或右边)1个光 //0011 1111 最左边(或右边)2个光 //1011 1111 依次类推 //1001 1111 //1101 1111 //1100 1111 //1110 1111 //1110 0111 //1111 0111 //1111 0011 //1111 1011 //1111 1001 //1111 1101 //1111 1100 //1111 1110

//1111 1111 没有检测到黑线(是需要保持上一次测量值的)

}

/*--------------switch----------------*/ if(ek[3]= =15) {pidr = pidlr; } else

{pidr=0.2*pidlr+0.8*(23*(ek[3]-7)+2*(ek[3]+ek[2]+ek[1]+ek[0]-28)+7*(ek[3]-ek[2])); if(ek[2]!=ek[3])

ppid=-160*(cabs(ek[3]-7))+220*(cabs(ek[1]-7)-cabs(ek[3]-7));

}

a=HIGH+ppid; //a是电机高电平时间

b=pidr+MIDDLE; //b就是舵机PWM波高电平时间

if(b>LEFT) b=LEFT; if(b<RIGHT) b=RIGHT; {char i;

基于89s51单片机的循迹小车设计报告

for(i=0;i<3;i++)

ek[i]=ek[i+1];

}

pidlr=pidr;

}

}

void zhongduan_t0(void) interrupt 1 //产生舵机PWM波中断子程序(T0中断)

{

if(flag1==0)

{

TH0=(uchar)((65536-b)/256);

TL0=(uchar)((65536-b)%256);

flag1=1;

rudder=1;

}

else

{

TH0=(uchar)((38869+b)/256);

TL0=(uchar)((38869+b)%256);

flag1=0;

rudder=0;

}

}

void zhongduan_t1(void) interrupt 3

{

if(flag2==0)

{

TH1=(uchar)((65536-HIGH)/256);

TL1=(uchar)((65536-HIGH)%256);

flag2=1;

pulse=0;

}

else

{

TH1=(65536-T+HIGH)/256;

TL1=(65536-T+HIGH)%256;

flag2=0;

pulse=1;

}

}




第二篇:基于MCS-51单片机智能小车控制器设计-任务书 2200字

北京电子科技职业学院

毕业设计(论文)任务书

课题名称:基于MCS-51单片机智能小车控制器设计

学 院: 机械工程学院

教 学 系: 数控技术系

班 级: 机电08(3+2)-2班

指导教师: 张玉军

教研室主任审核:

二○一二 年 八 月

目 录

一、毕业设计目的

毕业设计的目的是培养学生综合运用所学知识和技能去分析和解决与本专业相关的工程技术问题,确立正确的设计思想,掌握项目设计的一般程序和方法,对学生进行实践能力的综合训练,使学生具备利用专业技术知识解决实际问题的能力,为学生走上工作岗位奠定基础。

二、背景情况(课题来源,实际应用价值、意义。) 随着现代科技的飞速发展,单片机已经在各个领域得到越来越广泛的应用。作为机电一体化专业的学生,非常有必要通过对实际产品的设计和制作,了解现代IT产品的开发全流程。全面提高机,电,光,算知识的综合应用能力,掌握从系统级,电路级,到芯片级各个层次的设计和实现手段。基于上述原因,我选择此设计课题,在此设计过程中,将会用到多门学科的理论知识,复习和巩固了以前所学的知识,更重要的是培养了发现问题,分析问题,解决问题的能力,对以后的学习和工作也会有所帮助。

科技的进步带动了产品的智能化,单片机的应用更是加快了发展的步伐,它的应用范围日益广泛,已远远超出了计算机科学的领域。小到玩具、信用卡、大到航天器、机器人、从实现数据采集、过程控制、模糊控制等智能系统到人类的日常生活,到处都离不开单片机,此设计正是单片机的一个典型应用。

三、任务:小组任务和个人任务

用单片机技术开发智能小车,通过对路面的检测能实现自动的前进,左右转弯,后退等基本功能,能够方便的应用于路面的安全巡检。

四、技术(业务)要求

1.小车的控制单元主要包括传感器及调理电路,步进电机及驱动电路,控制器三个部分。

2.控制系统采用 AT89C51控制器按一定的时钟周期对光电检测器的输入信号采样检测,根据光电检测器的状态,判断小车的动作,给步进电机输出正确的控制信号,实现电机的转动。

3.软件设计分为三个模块,即数据采集模块,信号处理模块,控制器控制电机模块。

五、关键能力发展项目和成果要求

(一)关键能力发展:

通过此次设计能加深学生对理论与应用的密切关系的认识,同时也是对学生综合能力的培养,可以增强学生独立工作能力,可培养学生团结协作的能力。

(二)项目成果要求:

1.应用所学的机、光、电等相关知识进行设计;

2.通过本课题的设计加深理论与应用的密切关系的认识;

3.学会知识转化与分析应用的方法;

4. 毕业设计应完成的技术资料:设计报告、硬件原理图、控制程序清单等。 六、设计步骤和方法

1.调研收集相关资料,确定设计方案;

2.根据设计要求进行设计;

3.对设计的系统进行总结与评价,找出优点与不足。

七、进度要求

第一周 确定论文方向与题目,完成开题报告;

第二、三周 查阅资料,准备论文所需素材;

第四、五、六周 对本课题各部分进行设计;

第七周 整理资料,撰写、修改毕业论文; 第八周 准备答辩、撰写答辩PPT。

八、方法建议

1、在毕业设计过程中要多方查找资料,并对资料进行分析、整理;

2、进行充分的企业调研,设计要以满足生产需求为宗旨;

3、结合电脑查阅的资料功率的计算,尽量动手实际操作;

4、以学生独立设计为主,教师指导为辅,培养独立工作能力;

5、大胆设计,要具有创新思维和创新能力;

九、设计报告(论文)要求

报告要求有设计方案的选择过程及理论分析,有设计、计算过程和结论分析,最后要写出本设计的体会总结,参考资料等。

报告应该叙述简明扼要、重点突出、文理通顺、书写整洁、无错别字、计算正确、绘图准确清晰,字数应在6000字以上,用计算机打印,按照要求装订成册。

十、参考资料

[1] 胡连柱, 姜宝山. 简析单片机软硬件的抗干扰设计技术, 安徽电子信息职业技术学院学报, 2005,01.

[2] 徐明龙, 王赤虎. 利用单片机实现的模拟信号和数字信号单线混合传输, 电子设计应用, 2004, 1.

[3] 董文武. 微机接口技术, 中国水利水电出版社, 2001, [4] 徐梅. 单片机系统常用抗干扰措施, 高校实验室工作研究, 2006, 4

[5] 林丽君,黎小桃 单片机原理及其应用,江西高校出版社,2008,2

[6]董晓红.单片机原理及接口技术,西安:西安电子科技大学出版社,2006

[7] THDPJ-1/2/3/4型单片机开发综合实验指导书,浙江天煌科技实业有限公司

[8] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用,北京:清华大学出版社,2002

十一、等级评定方法和标准

学生完成毕业设计(论文)后,指导教师要认真评阅,严格按照评分标准打分,并向答辩小组提供学生的具体情况。毕业设计(论文)成绩一般采用五级记分(优、良、中、及格和不及格)。对被评为“不及格”的毕业设计(论文)要经过二次答辩确认。毕业设计(论文)成绩的评定是综合考虑指导教师的评分和毕业答辩委员会的评分后,由毕业答辩委员会最后确定。

十二、毕业设计(论文)评分表

毕业设计(论文)评分表

基于MCS51单片机智能小车控制器设计任务书

基于MCS51单片机智能小车控制器设计任务书

说明:“成果与水平”的第3项需根据不同专业类别进行选项评价。

更多类似范文
┣ 电子钟课程设计报告 12400字
┣ 华中科技大学单片机实验实验报告MCS51单片机 35500字
┣ 单片机实验报告(基于51单片机) 8500字
┣ 基于51单片机的抢答器实验报告 13800字
┣ 更多51单片机课程设计报告
┗ 搜索类似范文

更多相关推荐:
智能循迹小车___设计报告3600字

竞速智能循迹小车设计报告参赛队伍参赛人胡沁玫万超目录摘要引言设计方案报告内容安排技术方案说明一总体模块二设计思路硬件电路的设计一最小系统二电源电路设计三传感器电路四电机驱动电路小车调试小车循迹规则软件系统的实现...

专栏推荐
大家在关注

地图地图CC