基于单片机的智能小车论文.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的智能小车论文

第一部分 全书内容概括 第一章 引言和介绍 《C51单片机与应用与C语言程序设计》,介绍如何应用AT89S52作为机器人的大脑制作一款机器人,并用C语言对AT89S52进行编程,使机器人实现下述4个基本任务。 (1)安装传感器以探测周边环境; (2)基于传感器信息做出决定; (3)控制机器人运动(通过操作带动轮子旋转的电机); (4)与用户交换信息。 第二章 单片机AT89S52 2.1 内容概述: AT89S52单片机是控制单元的核心。起着控制小车所有运行状态的作用。使用该芯片很容易实现对其他模块的控制。通过对单片机AT89S52写入程序,可以方便的用软件来控制整个过程. (1)AT89S52单片机最小系统包括了一路复位开关,用于小车复位。 ◆P1.0输出PWM信号, ◆P1.1~P1.5分别控制电机驱动。 ◆其他P口用外接控制小车的各种控制开关, ◆P0口外接10K的上拉电阻,可用于外接LCD1602。 (2)AT89S52 单片机介绍: AT89S52 是一种低功耗、高性能CMOS8位微控制器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 其引脚排列如下: AT89S52引脚排列图 2.2 主要性能 ● 与MCS-51单片机产品兼容; ● 8K字节在系统可编程Flash存储器; ● 1000次擦写周期; ● 全静态操作:0Hz~33Hz; ● 三级加密程序存储器; ● 32个可编程I/O口线; ● 三个16位定时器/计数器; ● 全双工UART串行通道; ● 低功耗空闲和掉电模式; ● 掉电后中断可唤醒; ● 看门狗定时器; ● 双数据指针; ● 掉电标识符。 第三章 所用软件 (1) Keil uVision2 IDE集成开发环境 (2) stc-isp-v3.97软件下载工具 (3) 串口调试工具 第四章 智能机器人各部分功能实现 4.1 伺服电机 4.1.1 运转速度 实现:高电平持续时间 描述:1)通过让单片机的输入输出口来输出不同的脉冲序列来实现控制机器人伺服电机以不同速度运动,51系列单片机有4个8位的并行I/O口:P0、P1、P2和P3.这四个接口,既可以作为输入,也可以作为输出,这里主要用P1口来完成机器人伺服电机的控制。 2)当高电平持续时间为1.3ms时,电机顺时针全速旋转,当高电平持续时间1.7ms时,电机逆时针全速旋转。 3)P1_0引脚的控制输出用来控制右的伺服电机,而P1_1则用来控制左边的伺服电机。 原理图如下: 4.1.2 所用函数 (1)延时函数 要生成伺服电机的控制信号,就需要用另一个延时函数delay_nus这个函数可以实现更小的延时,它的延时单位是微秒,即千分之一毫秒,参数n为延时微秒数。 (2)举例:程序片断 (目的: 让连接到P1_0脚的伺服电机轮子全速旋转) while(1) { P1_0=1; //P1_0输出高电平 delay_nus(1700); //延时1.7ms P1_0=0; //P1_0输出低电平 delay_nus(20000); //延时20ms } 4.2 控制运行时间或距离 4.2.1 描述: 让微控制器不断发出控制指令,用到以while(1)开头的死循环(即永不结束的循环)。要求机器人运动一段给定的距离或者一段固定的时间。需要控制代码执行的次数,用到for函数。 4.2.2 实现函数 (1)for 函数 for(表达式1;表达式2;表达式3) 语句 它的执行过程如下: 1) 先求解表达式1 2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步 3) 求解表达式3 4) 转回上面第2)步继续执行 5) 循环结束,执行for语句下面的一个语句

您可能关注的文档

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档