版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 日期:2013 年 11 月 26 日 1 第一部分 全书内容概括第一章第一章 引言和介绍引言和介绍 C51 单片机与应用与 C 语言程序设计,介绍如何应用 AT89S52 作为机器人的大脑制作一款机器人,并用 C 语言对 AT89S52 进行编程,使机器人实现下述4 个基本任务。(1)安装传感器以探测周边环境;(2)基于传感器信息做出决定;(3)控制机器人运动(通过操作带动轮子旋转的电机);(4)与用户交换信息。第二章第二章 单片机单片机 AT89S52AT89S522.12.1 内容概述内容概述: AT89S52 单片机是控制单元的核心。起着控制小车所有运行状态的作用。使用该芯片很容易实
2、现对其他模块的控制。通过对单片机 AT89S52 写入程序,可以方便的用软件来控制整个过程. (1)AT89S52 单片机最小系统包括了一路复位开关,用于小车复位。 P1.0 输出 PWM 信号, P1.1P1.5 分别控制电机驱动。 其他 P 口用外接控制小车的各种控制开关, P0 口外接 10K 的上拉电阻,可用于外接 LCD1602。 (2)AT89S52 单片机介绍:AT89S52 是一种低功耗、高性能 CMOS8 位微控制器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。另外,AT89S
3、52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚排列如下: 日期:2013 年 11 月 26 日 2 AT89S52 引脚排列图 2.22.2 主要性能主要性能 与 MCS-51 单片机产品兼容; 8K 字节在系统可编程 Flash 存储器; 1000 次擦写周期; 全静态操作:0Hz33Hz; 三级加密程序存储器; 32 个可编程 I/O 口线; 三个 16 位定时器/计数器; 全双工
4、 UART 串行通道; 低功耗空闲和掉电模式; 掉电后中断可唤醒; 看门狗定时器; 双数据指针; 掉电标识符。第三章第三章 所用软件所用软件 (1) Keil uVision2 IDE 集成开发环境 (2) stc-isp-v3.97 软件下载工具 (3) 串口调试工具第四章第四章 智能机器人各部分功能实现智能机器人各部分功能实现4.14.1 伺服电机伺服电机 .1 运转速度 实现:高电平持续时间描述:1)通过让单片机的输入输出口来输出不同的脉冲序列来实现控制机器人伺服电机以不同速度运动,51 系列单片机有 4 个 8 位的并行 I/O 口:P0、P1、P2 和 P3.这四个接
5、口,既可以作为输入,也可以作为输出,这里主要用 P1 口来完成机器人伺服电机的控制。2)当高电平持续时间为 1.3ms 时,电机顺时针全速旋转,当高电平持续时间 1.7ms 时,电机逆时针全速旋转。3)P1_0 引脚的控制输出用来控制右的伺服电机,而 P1_1 则用来控制左边的伺服电机。 原理图如下: 日期:2013 年 11 月 26 日 3 .2 所用函数 (1)延时函数 要生成伺服电机的控制信号,就需要用另一个延时函数 delay_nus 这个函数可以实现更小的延时,它的延时单位是微秒,即千分之一毫秒,参数 n 为延时微秒数。 (2)举例:程序片断 (目的: 让连接到 P
6、1_0 脚的伺服电机轮子全速旋转) while(1) P1_0=1; /P1_0 输出高电平 delay_nus(1700); /延时 1.7ms P1_0=0; /P1_0 输出低电平 delay_nus(20000); /延时 20ms 4.24.2 控制运行时间或距离控制运行时间或距离 .1 描述:让微控制器不断发出控制指令,用到以 while(1)开头的死循环(即永不结束的循环)。要求机器人运动一段给定的距离或者一段固定的时间。需要控制代码执行的次数,用到 for 函数。.2 实现函数 (1)for 函数 for(表达式 1;表达式 2;表达式 3) 语
7、句它的执行过程如下:1) 先求解表达式 12) 求解表达式 2,若其值为真(非 0),则执行 for 语句中指定的内嵌语句,然后执行下面第 3)步;若其值为假(0),则结束循环,转到第 5)步3) 求解表达式 34) 转回上面第 2)步继续执行5) 循环结束,执行 for 语句下面的一个语句for 语句最简单的应用形式也就是最易理解的形式如下: 日期:2013 年 11 月 26 日 4for(循环变量赋初值;循环条件;循环变量增/减值) 语句 (2)举例 (目的使电机运行几秒钟)for(Counter=1;Counter=100;i+)P1_1=1;delay_nus(1700);P1_1=
8、0;delay_nms(20);第五章第五章 简单巡航控制简单巡航控制5.15.1描述:描述: 对单片机编程可以使机器人完成各种巡航动作,本章机器人在无感觉的情况 下巡航。5.25.2 基本巡航动作基本巡航动作 (1)向前训航 发给单片机控制引脚的高电平持续时间决定了伺服电机旋转的速度和方向。for 循环的参数控制了发送给电机的脉冲数量。由于每个脉冲的时间是相同的,因而 for 循环的参数也控制了伺服电机运行的时间(2)向后走,原地转弯和绕轴旋转将 delay_nus 函数的参数 n 以不同的值组合就可以使机器人以其它的方式运行5.35.3匀加速匀加速/ /减速运动减速运动 (1) for 循
9、环 示例 (匀加速运动程序片段):for(pulseCount=10;pulseCount=200;pulseCount=pulseCount+1) P1_1=1; delay_nus(1500+pulseCount);P1_1=0;P1_0=1; delay_nus(1500-pulseCount); P1_0=0; delay_nms(20);(2)分析解释: 使机器人的速度由停止到全速。循环每重复执行一次,变量pulseCount 就增加 1:第一次循环时,变量 pulseCount 的值是 10,此时发给 P1_1、P1_0 的脉冲的宽度分别为 1.51ms、1.49ms;第二次循环时
10、,变量 pulseCount 的值是 11,此时发给 P1_1、P1_0 的脉冲的宽度分别为1.511ms、1.489ms。随着变量 pulseCount 值的增加,电机的速度也在逐渐增加。到执行第 190 次循环时,变量 pulseCount 的值是 200,此时发给 P1_1、P1_0 的脉冲的宽度分别为 1.7ms、1.3ms,电机全速运转。5.45.4 函数分类函数分类(1)从函数定义的角度来看,函数有两种 日期:2013 年 11 月 26 日 5 标准函数,即库函数。 用户定义函数,以解决你的专门需要(2)从有无返回值角度来看,函数又分为以下两种:有返回值函数:函数被调用执行完后将
11、向调用者返回一个执行结果,称为函数返回值。无返回值函数:此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值(3)从主调函数和被调函数之间数据传送的角度看又可分为两种:无参函数:函数定义、说明及调用中均不带参数。 有参函数:在函数定义及说明时都有参数,称为形式参数5.55.5 函数定义函数定义 类型标识符 函数名(形式参数列表) 声明部分 语句 其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。函数名是由用户定义的标识符,函数名后有一个括号(不可少写),若函数无参数,则括号内可不写内容或写“void”;若有参数,则形式参数列表给出
12、各种类型的变量,各参数之间用逗号间隔。中的内容称为函数体。函数体中的声明部分,是对函数体内部用到的变量的类型说明。在很多情况下都不要求函数有返回值,此时函数类型符可以写为 void。 第六章第六章 单片机输入接口与机器人触觉导航单片机输入接口与机器人触觉导航6.16.1 内容概述:内容概述: 将在机器人前端安装并测试一个称为胡须的触觉开关。对机器人大脑编程、来监 视触觉开关的状态,以及决定当它遇到障碍物时如何动作。最终的结果就是通过触觉给机器人自动导航。6.26.2 胡须安装胡须安装 右边胡须状态信息输入是通过 P1 口的第 4 脚完成,而左边胡须状态信息输入是通过 P2 口的第 3 脚完成
13、6.36.3 通过胡须导航通过胡须导航 日期:2013 年 11 月 26 日 6 (1)实现函数要用到 if 语句的另一种形式,if-else-if 形式,它可以进行多分支(2)一般形式:if(表达式 1) 语句 1;else if(表达式 2) 语句 2;else if(表达式 3) 语句 3; else if(表达式 n-1) 语句 n-1;else 语句 n;(3)含义: 语义为:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个 if 语句之外继续执行程序;如果所有的表达式均为假,则执行语句 n。然后继续执行后续程序。(4)示例: if(P1_4state()=
14、0)&(P2_3state()=0)/*两个胡须同时检测到障碍物时,后退,再向左转 180 度*/Back_Up();Turn_Left();Turn_Left();else if(P1_4state()=0) /右边胡须检测到障碍物时,后退,再向左转 90度Back_Up();Left_Turn();else if(P2_3state()=0) /左边胡须检测到障碍物时,后退,再向右转 90度Back_Up();Right_Turn ();else /没有胡须检测到障碍物时,向前走 Forward(); 6.46.4带着胡须行走带着胡须行走描述:主程序中的语句首先检查胡须的状态。如果
15、两个胡须都触动了即P1_4state()和 P2_3state()都为 0,调用 Backward(),紧接着调用Left_Turn ()两次;如果只是右胡须被触动即只有 P1_4state()=0,程序调用 Backward(),然后再调用 Left_Turn ();如果左胡须被触动即只有 P2_3state()=0,程序调用 Backward(),然后再调用 Right 日期:2013 年 11 月 26 日 7_Turn();如果两个胡须都没有触动,在这种情况下,在 else 中调用Forward()语句。第七章第七章 C51C51 输入输入/ /输出接口与红外线导航输出接口与红外线导航
16、7.17.1 内容概述:内容概述:机器人可以使用红外线进行导航,让机器人的 C51 微控制器可以收发红外光信号,从而实现机器人的红外线导航。7.27.2 搭建并测试搭建并测试 IRIR 发射和探测器对发射和探测器对进行 IR 探测时使用 AT89S52 的四个引脚:P1_2、P1_3、P3_5 和 P3_6#define LeftIR P1_2 /左边红外接收连接到 P1_2#define RightIR P3_5 /右边红外接收连接到 P3_5#define LeftLaunch P1_3 /左边红外发射连接到 P1_3#define RightLaunch P3_6 /右边红外发射连接到
17、P3_67.37.3 探测和避开障碍物探测和避开障碍物7.47.4 高性能的高性能的 IRIR 导航导航(1)应用函数 dowhile 语句(2)描述: 在 C 语言中,直到型循环控制语句是“dowhile”,它的一般形式为:do 语句 while(表达式); 其中,语句通常为复合语句,称为循环体(3)基本特点:先执行后判断第八章第八章 机器人的距离检测机器人的距离检测8.18.1 内容概述:内容概述:如果机器人可以检测到前方物体的距离,就可以编程让机器人跟随物体行走而不会碰上它,也可以编程让机器人沿着白色背景上的黑色轨迹行走。8.28.2 定时定时/ /计数器的运用计数器的运用(1) 分类:
18、定时器模式、计数器模式 联系与不同:均使用二进制的加一计数:当计数器的值计满回零时能自动产生中断的请求,以此来实现定时或者计数功能;它们的不同之处在于定时器使用单片机的时钟来计数,而计数器使用的是外部信号。(2)定时/计数器的控制 单片机的 AT89S52 有两个定时/计数器,通过 TCON 和 TMOD 这两个特殊功能寄存器控制(3)中断单片机 AT89S52 有 5 个中断源:2 个外部中断源;2 个定时器中断;1 个串口中断。(4)中断优先级AT89S52 的中断分为 2 级,高和低。利用“优先级”的概念,允许拥有高优先级的中断源中断系统正在处理的低优先级的中断源。中断的优先级由高到低依
19、次为:外部中断 0,定时器 0,外部中断 1,定时器 1,串口中断,定时器 2 中断。8.38.3 测试扫描频率测试扫描频率8.48.4尾随小车尾随小车 日期:2013 年 11 月 26 日 88.58.5 跟踪条纹带跟踪条纹带第九章第九章 多传感器智能机器人多传感器智能机器人9.19.1 内容概述:内容概述: 触觉和红外传感器结合设计一款多传感器智能机器人,使它能够结合传感 器检测到的信息进行综合判断,执行理想的行走方案。 第二部分 智能小车功能实现简要分析第十章第十章 智能机器人功能示例智能机器人功能示例 -循迹避障小车循迹避障小车 摘要利用 AT89S52 单片机为控制核心,结合多种传
20、感器以及 PID 算法实现循迹避障功能的智能小车。利用反射式光电传感器检测黑线实现小车循迹,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,整个系统具有自动寻迹、寻光和速度测试功能。其中,控制部分采用 AT89S52,电机驱动采用常用的 PWM 方式进行电机的调速控制,小车的速度通过液晶屏来显示 1 1、系统总方案、系统总方案1.11.1 总体方案设计总体方案设计(1)描述:在现有小车的基础上,加装反射式红外光电传感器、超声波传感器、速度检测传感器以及光敏二极管阵列,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现
21、对电动车的智能控制。(2)系统整体方框图 日期:2013 年 11 月 26 日 9 1.21.2 各个系统和元件各个系统和元件.1 传感器选择传感器选择传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求它是实现自动检测和自动控制的首要环节。选择合适的传感器可以使设计简便,还可以简化硬件电路。(1)循迹检测系统 红外光电传感器在实时性和对主控芯片的要求方面要好(2)障碍物检测系统 红外检测不易受外界环境干扰(3)光源检测系统 光敏二极管利用它对光源变换的敏感反
22、映,检测外部光源(4)速度检测系统 光电码盘.2 电机驱动系统电机驱动系统使用直流电机,加上适当减速比的减速器。直流电机具有良好的调速性能,控制起来也比较简单。.3 单片机控制电路系统单片机控制电路系统整个小车运行的核心部分,起着控制小车所有运行状态的作用。单片机要完成电机控制、循线控制、避障控制金属检测控制和光源检测控制等工作。主控采用 AT89S52 单片机,我们可以通过软件编程产生 PWM。.4 显示模块显示模块 日期:2013 年 11 月 26 日 10液晶显示电路简单,使用方便,一个液晶显示器就可以同时满足此处同时显示速度和距离的要求
23、。 2 2、硬件设计、硬件设计2.12.1 总体设计方案总体设计方案智能小车采用后轮驱动,后轮左右两边各用一个电机驱动,调制两个后面两个轮子的转速从而达到控制转向的目的,前轮是万象轮,起支撑的作用。将四个红外线光电传感器装在车体的底盘前端,小车根据传感器检测到的情况执行。 避障的原理和循迹一样,在车头装了一个传感器,传感器检测到障碍物时,小车减速,车体做出相应的反应。小车速度的检测也是靠的红外线,只不过是器件的型号不同,速度检测的传感器用的是对射式,避障用的是直射式。把码盘装在电机的轴上,码盘随电机一起转动,考虑到电机控制要使用 PWM 波形,而 AT89S52 单片机本身不能产生 PWM,需
24、要外加电路或使用软件的方式实现,为减少硬件电路,这里选用软件产生 PWM 方式2.22.2 单片机控制电路单片机控制电路单片机是控制单元的核心使用的是 AT89S52。通过对单片机 AT89S52 写入程序,可以方便的用软件来控制整个过程. 2.32.3 电机驱动电路电机驱动电路.1驱动电路小车使用的是直流电机。从单片机输出的信号功率很弱,即使在没有其它外在负载时也无法带动电机,所以在实际电路中我们加入了电机驱动芯片提高输入电机信号的功率,从而能够根据需要控制电机转动。本设计中电机驱动采用 L298 集成 H 桥芯片。直流电机常用的 PWM,及脉宽调制方式驱动。利用单片机调整出
25、 PWM 脉冲和高低电平对直流电机进行驱动和控制。 电机驱动电路L298 集成 H 桥芯片。其外形、管脚分布如图 日期:2013 年 11 月 26 日 11 .2 PWM 调速原理脉冲宽度调制简称 PWM。脉冲周期不变,只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。PWM 的理论基础是:冲量相等而形状不同的的窄脉冲加在具有惯性的环节上,其效果基本相同。采用 PWM 进行电机的调速控制,实际是保持加在电机电机电枢上的脉冲电压频率不变,调节其脉冲宽度。 PWM 等效图示意图2.42.4 循迹检测电路循迹检测电路该智能小车在铺有约两厘米宽黑纸的路面行驶,路面可以近似看为
26、白色。由于黑纸和白色路面对光线的反射系数不同,可以根据接收的反射光的强弱来判断道路黑纸轨迹。红外探测法,即用红外线在不同颜色的物表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外线遇到白色地面时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑纸则红外光被吸收,小车上的接收管接收不到信号。本系统采用反射式红外线光电传感器 ST178 进行轨迹检测 日期:2013 年 11 月 26 日 12 ST168 检测电路 2.52.5 障碍物检测电路障碍物检测电路超声波检测障碍物。原理是:超声波发生器 T 发出超声波信号,当这个信号遇到障碍物时反射回来,被接收器 R 收到
27、。为使小车能准确避障,设计在小车的车体前端左右两侧分别各装一个超声波传感器。小车则可以根据接收到的信号做出相应的避障反应。 2.62.6 光源检测电路光源检测电路采用多个光敏阵列管2.72.7 速度检测电路速度检测电路光电码盘作为测量元件,是一种光电器件。在现转过程中可以输出 A、B 两相脉冲,每旋转一周输出一脉冲,通过对A、B 两相脉冲计数就可以确定光电码盘旋转的角度。2.82.8 液晶显示电路液晶显示电路使用 1602 液晶显示器 3 3、软件设计、软件设计3.13.1 系统控制流程系统控制流程 日期:2013 年 11 月 26 日 13 3.23.2 调试调试 4.4.参考文献参考文献
28、 1. 秦志强 ,C51 单片机与应用与 C 语言程序设计,电子工业出版社 2.张毅刚、彭喜元著.人民邮电出版社 3. AT89S52 中文资料_百度文库http:/ 4. 智能循迹避障小车设计_百度文库http:/ 5.5.参考程序参考程序#include #define char unsigned char 日期:2013 年 11 月 26 日 14#define hint unsigned ftpsuit P1_0=P10;suit P1_1=P11;suit P1_2=P12;suit P1_3=P13;suit P1_4=P14;suit P1_5=P15;char a,b,c;void delay_us(uint time)/微秒延时for(;time0;time-);void delay_ms(uint time)/毫秒延时 for(;time0;time-)delay_us(1000);void port_init()/I/O 口初始化P1=0 x00;P0=0 x00;void ex0_init() /中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 24633.2-2024产品几何技术规范(GPS)圆柱度第2部分:规范操作集
- 医保自查自纠整改报告范文
- 勇敢者游戏观后感
- 交易员考试练习卷含答案
- 难度大歇后语及答案
- 高中英语语法精讲精练-名词性从句
- 《学前儿童卫生保健》 课件 1.2.6 幼儿排泄系统的特点及卫生保健
- 会计数据分析Errata-for-IRC-09-04-19
- 中国校服产业挑战与机遇分析报告 2024
- 2024届陕西省咸阳彩虹中学高三下学期教学质量检查数学试题
- 广西岑溪市2025年高三高考化学试题系列模拟卷(3)含解析
- 2024-2030年中国燃气表行业市场发展分析及发展趋势预测研究报告
- (新版)烟草行业法律法规知识竞赛参考试题库-下(判断、简答题)
- 微专题(三) 光合作用和细胞呼吸的综合问题教学设计-2024-2025学年高一上学期生物人教版必修1
- 2024-2025学年一年级语文上册第一单元测试卷(统编版2024新教材)
- 恙虫病护理查房模板
- 红色简约中华人民共和国成立75周年演讲
- 2024年高考英语新课标1卷读后续写教学设计
- 2024-2030年中国冷冻牛肉行业市场深度调研及竞争格局与投资研究报告
- 浙江省苍南县2023-2024学年七年级上学期期中语文试题(含答案)
- 2024广东佛山市三水市国睿公司绿色工业服务项目技术人员招聘3人(高频重点提升专题训练)共500题附带答案详解
评论
0/150
提交评论