欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于51单片机C语言搬运车机器人毕设毕业论文.doc

    • 资源ID:32454723       资源大小:13.98MB        全文页数:41页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机C语言搬运车机器人毕设毕业论文.doc

    . . . . 搬运机器人摘要美国机器人协会(RIA)的机器人定义:机器人是用以搬运材料、零件、工具的可编程序的多功能操作器或是通过可改变程序动作来完成各种作业的特殊机械装置。”日本工业机器人协会(JIRA)的定义:工业机器人是一种装备有记忆装置和末端执行器( end effector)的,能够转动并通过自动完成各种移动来代替人类劳动的通用机器。美国国家标准局(NBS )的定义:机器人是一种 能够进行编程并在自动控制下执行某些操作和移动作业任务的机械装置。国际标准化组织(ISO)的定义:机器人是一种自动的、位置可控的、具有编程能力的多功能机械手,这种机械手具有几个轴,能够借助于可编程序操作来处理各种材料、零件、工具和专用装置,以执行种种任务。关键字:记忆装置、末端执行器。AbstractThis design by car this carrier incorporated by AT89S52 core dashboards can achieve its basic features, plus infrared detector (IR LED), QTI sensors, IR schematics to perfect the design. Uses infrared technology to detect obstacles, QTI sensor acquisition information, use of ground AT89S52 processor that timely control, realization of intelligent Hayashi and obstacle avoidance, automatically opening and closing doors, as well as automatically. Smart cars with rear-wheel drive, two rounds of the execution with a stepper motor. The entire system of the circuit simple structure, reliable performance. Laboratory test results meet the requirements of this article focuses on the system's hardware design and analysis of test results. Technologies are: To programmatically control the car door open and close; Effective application of the sensor;Key words: memory devices, end actuators,目 录1 前言42 系统设计52.1 设计背景52.2设计要求52.3 实现目标53 机器人本体机构设计63.1 整体结构的设计63.1.1 机器人底盘设计与安装63.1.2 核心控制123.2 控制系统173.2.1 驱动控制系统173.2.2 巡线控制系统183.2.3控制电路的设计194 设计中的改进214.1 控制改进214.1.1巡线传感器的选择214.1.2 伺服电机的测试214.2宝贝车直线度的校正23 辞24文 献25附 录26附录一 RightServoTest.c测试伺服电机26附录二 校正宝贝车直线运动程序28附录三 设计总程序291 前言机器人从出发区出发,到达物料储存区后,分拣其赛前抽签决定好的任务,即从5个预知颜色料块(黄、白、红、黑、蓝)选3种颜色料块的已知6种组合(任务)中,选其中1个作为比赛任务(其料块均要求摆放在场地图的A、C、E位置,B、D位置不放置物料),再按照设计好的控制策略控制机器人动作,以便将三个料块快速准确地搬运并放到对应的三个颜色中心区域,并最后回到出发区。2 系统设计本组智能小车的硬件主要有以宝贝车作为核心的载体小车、主控器部分、自动循迹部分、检测部分、手抓机构、电机驱动部分组成。2.1 设计背景设计一个基于8位单片机或ARM控制机器人,在比赛场地里移动,将指定的物体搬运到指定的位置区域,比赛的记分根据机器人将物体放置的位置精度和完成时间来决定分值的高低。它模拟了工业自动化过程中自动化物流的要求以与实际应用情况。2.2设计要求(1)基本要求:实现小车的前进后退,左转右转(按照程序预设)(2)扩展部分:实现小车自动循迹功能,并利用所设机构完成物料的搬运2.3 实现目标在规定时间,机器人搬运完毕物料,并回到出发点。3 机器人本体机构设计本章中所要完成的任务摘要: 1.整体结构的设计2.控制系统的设计3.1 整体结构的设计整体结构的设计,主要包括:(1)机器人底盘的设计与安装(2)核心控制3.1.1 机器人底盘设计与安装本设计以宝贝车机器人作为载体,即作为整个智能机器人的底盘,在其基础上设计机构,以实现设计目标。本节主要完成智能机器人底盘的安装,主要从以下几方面进行:(1) 基本结构的安装(2) 驱动装置的安装(3) 动力源的安装(4) 控制面板的安装组装工具与部件1 组装工具(图3-1)(1)螺丝起子(2)尖嘴钳2 组装部件(1) 宝贝车底盘(2) 带制器的教学板(3) 连续旋转电机(两个)(4) 塑胶轮子(两个)图3-1 宝贝车机器人组装工具(5) 橡皮圈(两个)(6) 带有插头的电池盒(7) 球状尾轮(8) 1/16开口销(9)平头螺钉,3/8英寸4-40(10)螺柱(四长四短)(11)盘头螺钉(12)螺母,4-40在组装之前,应该先将所需部件找齐,方可进行安装。将表中所列零件收集到一起,按照装配步骤进行组装。基本结构的安装1 底盘的安装零件列表:如图3-2 (1) 宝贝车底盘(2) 螺柱(3) 盘头螺钉(4) 13/32英寸的橡胶圈 图3-2底板与上面的硬件装配步骤:l 将13/32 英寸的橡胶套圈插到宝贝车底盘中心的孔确保底盘中心孔的边缘嵌在橡胶圈的凹槽中l 用4 个螺钉将螺柱如图所示固定在底盘上。2 轮子的安装部件列表:(图3-3)(1) 部分已装好的宝贝车机器人(2) 1/16开口销(3) 球状尾轮(4) 橡皮圈(5) 塑胶轮子(6) 拆掉伺服喉里保存的螺钉装配步骤:3-7图3-3 轮子部件图3-4左侧所示是安装在底盘上的尾图轮。尾轮是一个有中心孔的塑胶球。开口销作为轴,将轮子固定在底盘上。l 轮子的中心孔与底盘尾部的中心孔对准在一条水平线上。l 将开口销同时穿过这三个孔(底盘左侧,尾轮,底盘右侧)。将开口销一端弯曲使它不会滑出孔。图3-4右侧所示是安装在宝贝车机器人伺服电机上的驱动轮。l 拉伸橡皮圈,把它套在每个轮子上。l 每个轮子有一个凹槽用于把它安装到输出轴上。将两个轮子分别压在输出轴上,确保两个轴高度一致,并已装进轮子的凹槽。l 用螺钉将轮子固定在输出轴上。驱动装置的安装1 拆除伺服喉l 断开控制器和伺服电机的电源。l 取出电池盒中的所有电池。图3-4把伺服电机从你的教学底板断开。步骤l 用螺丝起子去掉连接伺服喉和电机输出轴之间的螺钉。l 将每个四角形部件从电机输出轴上取下来。l 将螺钉保存好,后面还会用到。根据上面的指示移走如图四角形部件将电机安装到底盘上图3-5零件列表:如图3-6.(1) 宝贝车底盘(已部分组装好)(2) 连续旋转电机(3) 螺钉3/8英寸4-40(4) 螺母, 4-40装配步骤:l 用螺钉和螺母将电机固定在底盘上。为了最好的性能,你必须从里面,而不是从外面把电机放入矩形窗口。l 用标签纸标识伺服电机的左右轮。图3-6把电机安装到底盘上图3-7所示是伺服电机和教学板的连接l 连接伺服电机到教学底板上的电机接口处。l 将贴着“L”的插头连接到P1_1端口,贴着“R”的插头连接到P1_0端口。图3-7伺服系统的连接动力源的安装在本设计中,我们采用4节5号碱性电池作为整个智能机器人的动力源。零件列表(图3-8):(1) 宝贝车底盘(部分组装)(2) 平头螺钉,3/8英寸4-40(3) 螺母, 4-40(4) 带有插头的电池盒安装步骤:l 用平头螺钉和螺母将电池盒固定在宝贝车机器人的底盘下面,如图3-9左边所示:l 将螺钉穿过电池盒,然后在底盘上面用螺母紧固。l 如图3-9右边所示:将电池盒的电源连接线穿过底盘中间带有橡胶圈的孔 图3-8。图3-9l 将伺服电机线也穿过此孔。 l 控制系统的安装把教学底板(图3-10)安装到底盘上零件列表:1. 宝贝车机器人底盘(部分组装好)2. 平头螺钉1/4_ 4-40安装步骤: 将主板放在四个支架上使其与四个孔对齐。 l 确保面包板接近驱动轮而不是尾轮。 l 用平头螺钉连接主板和支架。 图3-10l 从底盘下面,拉出剩余的穿过橡胶圈的伺服电机线和电池线。l 卷起伺服电机和底盘之间剩余的线。l 从底盘下面,拉出剩余的穿过橡胶圈的伺服电机线和电池线。卷起伺服电机和底盘之间剩余的线。图3-113.1.2核心控制(1)AT89S52核心控制板(图3-13)AT89S52单片机是一个低功耗、高性能CMOS 8位微控制器,片含通用8位中央处理器和ISP Flash存储单元,8k BytesISP(In_system programmable)可反复擦写1000次的Flash只读程序存储器,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统与80C51引脚结构,在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、高性价比的解决方案。图3-13(2)传感器a QTI传感器QTI传感器作为本设计的检测系统,主要实现光电检测,即利用QTI传感器对公交车的行进路线进行检测。本项目主要包含以下几个任务:1. QTI传感器的工作原理2. QTI传感器的安装认识QTI传感器 图3-14QTI传感器的简介本设计使用的QTI(Quick Track Infrared)传感器,如图3-14所示。QTI传感器是一种使用光电接受管来探测它下面的表面反射光强度的传感器。当QTI传感器在一个很暗的表面上时,反射光强度很低。当QTI传感器在一个很亮的表面上时,反射光强度很高,从而导致传感器输出的变化。即探测到黑色物体输出高电平,探测到白色物体输出低电平。QTI传感器的特性使其很适合用在巡线、迷宫导航、探测场地边缘等应用中。QTI边线检测传感器性能参数:Ø 工作温度:-4085Ø 参考电压:5V Ø 连续电流:50mA Ø 功耗:100mWØ 最佳距离:10mmØ 最佳距离最大散射角度65度Ø 探测到黑色物体输出高电平,探测到白色物体输出低电平。Ø 响应时间:(V = 5v ,R = 100, I = 5mA )n 上升沿时间 10usn 下降沿时间 50us图1 引脚示意图 图3-15AVR单片机例程:硬件连接:把PC0口接到SIG上,VCC接5V,GND接地。#include “BoeBOtUnderstandable.h” /宝贝车的标准头文件#include “usta.h” /串口的头文件int PC0_state(void) /获取PC0的状态return (PINC&0x01)?1:0;int main(void) /主函数,程序从这里开始运行usta_Init(); /串口初始化printf("Program Running!"); /在调试窗口显示一条信息while(1)if(PC0_state()printf("QTI NO working! n");elseprintf("QTI working! n");delay_nms(500);QTI传感器的安装每一个QTI巡线套件中包含4组QTI,当我们要完成线跟踪功能时,最简单的方法是使用4个QTI传感器,如图3-16所示。图 3-16 图3-17若需要运行更稳定也可使用4个QTI传感器,安装方法如图3-17所示。图3-18这里我们以4个QTI为例,用螺丝固定好QTI传感器后,如图3-16所示。QTI传感器的引脚如图3-17所示,将传感器上的光电管面对你的时候,从上到下三个引脚依次为:GND、SIG、VCC。针脚定义:1 GND电源地2 SIG信号输出3 VCC5V直流电源3.2 控制系统3.2.1 驱动控制系统本控制系统采用的是AT89S52单片机来控制一个伺服小车,该小车主要由两个独立驱动的主动轮、一个从动轮构成,小车的运动由主动轮上的电机驱动,驱动力来源于两个伺服电机,而车门的往复直线运动由另一伺服电机驱动,它们的作用是在程序控制下高效率的将动力电池组的能量转化为各个伺服电机的动能。图3-19小车的转弯主要通过两个电机的运动速度不同来实现。小车的转动角度为360,根据控制程序可以实现伺服小车前后左右行进(表3-1)。表3-1伺服小车控制原理车体动作左伺服电机右伺服电机前进正转正转后退反转反转左转反转正转右转正转反转表3-1电机引脚配置本设计所用到的电机有三个,分别为控制车轮转动的左右电机以与控制车门水平移动的电机。电机引脚配置如表3-2、图3-21。;电机引脚左电机P1-1右电机P1-0表3-2 图3-213.2.2 巡线控制系统QTI传感器作为本设计的检测系统,主要实现光电检测,即利用QTI传感器对公交车的行进路线进行检测。本设计用QTI传感器用于检测路面信息(2cm宽的黑线),车底盘上使用4个QTI传感器,以适应起始和终点的停车的需要并达到巡线的功能在宝贝车机器人上安装4个QTI线跟踪传感器就能实现对黑线跟踪,根据这个原理,传感器组合就可以让机器人按照设定好的地图(图3-22)运动。图3-22我们用4个QTI传感器,来帮助机器人完成在设定场地上的行走。还有较少ha 4_3.2.3控制电路的设计在进行电路图的组装之前,我们应该对无焊锡面包板有一定的认识。教学板前端,那块白色的、有许多孔或插座的区域,称之为无焊料的面包板(图3-23)。面包板连同它两边黑色插座,称之为原型区域。在面包板插座上插上元器件,比如电阻、LED、扬声器和传感器,就构成了本书中的例程电路。元器件靠面包 板插座彼此连接。在面包板上端有一条黑色的插座,上面标识着“Vcc”、“Vin”和“GND”,称之为电源端口,通过这些端口,你可以给你的电路供电。左边一条黑色的插座从上到下标识着P10、P11、P12P37(共18个,部分端口并未标出)。通过这些插座,你可以将你搭建的电路与单片机连接起来。 面包板上共有18行插座,通过中间槽分为两列。每一小行由五个插座组成,这五个插座在面包板上是电气相连的。根据电路原 图3-23理图的指示,你可以将元器件通过这些五口插座行连接起来。如果你将两根导线分别插入五口插座行中的任意两个插座中,它们都是电气相连的。电路原理图就是指引你如何连接元器件的路标。它使用唯一的符号来表示不同的元器件。这些器件符号用导线相连,表示它们是电气相连的。在电路原理图中,当两个器件符号用导线相连时,电气连接就生成。导线还可以连接元器件和电压端口。“Vcc”、“Vin”和“GND”都有自己的符号意义。“GND”对应于教学板的接地端;“Vin”指电池的正极;“Vcc”指校准的+5V电压。电路的设计与组装:本设计中所用到的电路主要包括QTI传感器电路,可通过他们各自的原理图对它们的电路进行设计并进行组装。在本设计中,三极管相当于一个开关:当P3_6置高时,从集电区经基区到发射区电路导通,加载在IR LED上的电压为VCC(5V),IR LED向外发射红外线;当P3_6置低时,电路又断开,IR LED停止发射。在电路的连接时,应注意它的连接方法,如下图所示:(1)QTI巡线原理图(图3-24)图3-24“GND”对应于教学板的接地端;“Vcc”指校准的+5V电压。图3-254 设计中的改进改进=改善+创新。改善是在不抛弃原经营方案的前提下而进行的改进。创新是通过抛弃原经营方案并建立新经营方案的前提下而进行的改进。在设计过程中,不断地、一步一步地、阶梯式地改进,会使得设计处在不断完善的过程中,更清晰的表达自己所要表达的东西,使读者更容易理解。改进主要分为两个部分:(1) 机构方面的改进(2) 控制方面的改进4.1 控制改进4.1.1巡线传感器的选择巡线方案可利用红外技术或QTI传感器采集地面信息,采用AT89S52单片机进行适时控制,实现智能循线和避障。若利用红外技术,将三个红外线光电传感器分别装在车体的左中右,当车的左边的传感器检测到黑线的边界时,主控芯片控制左轮电机减速,车向右修正,当车的右边传感器检测到黑线时,主控芯片控制右轮电机减速,车向左修正,中间的传感器起附带修正的作用,黑线在车体的中间,中间的传感器一直检测到黑线,当偏离黑线时也开始修正,从而使小车沿着黑色的轨道行走。若利用QTI传感器,则使用光电接受管来探测它下面的表面反射光强度的传感器。当QTI传感器在一个很暗的表面上时,反射光强度很低。当QTI传感器在一个很亮的表面上时,反射光强度很高,从而导致传感器输出的变化。即探测到黑色物体输出高电平,探测到白色物体输出低电平。由于站牌的检测系统中需要用到红外技术,为了方便且不易混淆,故而使用QTI传感器,QTI传感器的特性使其很适合用在巡线、迷宫导航、探测场地边缘等应用中。4.1.2 伺服电机的测试通过测试确保主板和伺服电机之间的电气连接正确。我们要确保右边的伺服电机从端口P1_0接收到脉冲后旋转,左边的电机从端口P1_1接收到脉冲后旋转。(1)测试右轮下面的例子程序测试连接到右轮(图4-1)的伺服电机。程序将使右轮顺时针旋转三秒,停止一秒,然后逆时针旋转三秒。例程: RightServoTest.c(程序见附录一)l 将机器人搁起,使驱动轮悬空。l 装电池到电池盒l 把三位开关设置到位置“2”。l 键入、保存并运行程序RightServoTest.c。l 验证右轮是否顺时针旋转三秒,停止一秒,然后逆时针旋转三秒。 图4-1l 如果右轮的运动同你预计的不同,参考伺服电机故障排除部分,它就在例程后面。(2) 测试左轮现在该在左轮上做同样的测试,如图4-1-1所示。这包括更改程序RightServoTest.c,使脉冲发到连接P1_1的伺服电机而不是连接P1_0的伺服电机。现在要做的是将程序中的P1_0改为P1_1。将程序RightServoTest.c另存为LeftServoTest.c。(见附录一)l 把P1_0改为P1_1。l 保存并运行程序。l 验证左轮是否顺时针旋转三秒,停止一秒,然后逆时针旋转三秒。图4-1-1l 如果不是你所预期的,参考伺服电机故障排除部分。(3)伺服电机故障排除:这是一些非常常见的征兆和和修补方法。a 伺服电机根本不转。l 确定三位开关拨到位置“2”。然后,你可以按下并释放复位按钮,重新运行程序。l 仔细检查你的伺服电机接线。检查你的程序输入是否正确。右边的伺服电机不转,但是左边的转。这意味着伺服电机反了。连接到P1_0的电机应该连接到P1_1,连接到P1_1的电机应该连接到P1_0。l 断开电源。拔下伺服电机。l 把原连接到P1_0的电机连接到P1_1。把原连接到P1_1的电机连接到P1_0。l 打开电源。重新运行RightServoTest.c。b 轮不完全停下来,它缓慢旋转。这意味着伺服电机没有正确的调零。你可以调节程序来让伺服电机停止。你通过修改delay_nus(1500)让电机停止。l 如果轮子缓慢的逆时针旋转,用一个比1500小一点的数。l 如果轮子缓慢的顺时针旋转,用一个比1500大一点的数。l 如果你在1480至1520之间的数找到一个数让电机完全停止,然后把这个数用在delay_nus函数中。c 轮子在顺时针和逆时针旋转之间不停止。车轮可能快速的朝一个方向旋转3秒钟另一个方向旋转4秒钟,可能快速的旋转3秒钟,然后慢速的旋转1秒钟,然后又快速的旋转3秒钟。或者,它可能快速的朝一个方向旋转7秒钟。不管怎样,都说明电位器失调。去掉轮子,下掉伺服电机,伺服电机调零。4.2宝贝车直线度的校正要保证车体的直线运动,就要确保两轮速度的一致性,电机的速度是由脉冲的宽度即程序中延时函数delay_nus的参数n决定的。n越接近1500,电机旋转越慢。这就意味着需要把控制P1_0或P1_1上的脉冲的宽度的delay_nus函数中的1300更改为一个更接近1500的数。如果宝贝车只是偏移轨迹一点,也许改为1320可以成功。如果电机严重不匹配,也许需要改为1380。可能要经过几次尝试才能得到正确的值。比如说你的第一个推测是1320,但是还不够,因为宝贝车还是稍微向左偏,于是试试1340,也许矫正过多,最后1330是正确的。这叫重复过程,意思是说这是一个用重复试验得到正确结果的过程。经过不断的修改与调试,可以确定delay_nus的参数n的数值,确保小车的直线度。程序见附录二 辞历时两个月的毕业设计已经告一段落。经过自己不断的搜索努力以与的耐心指导和热情帮助,本设计已经基本完成。在这段时间里,严谨的治学态度和热忱的工作作风令我十分钦佩,他的指导使我受益非浅。本系机器人实验室的开放也为我的设计提供了实习场地。同时要对党媚老师表示深深的感,感田老师向我们提供慧鱼组件,让我们能够完成对机器人车体与各机构的组装,在此对周挺老师和党媚老师表示深深的感。通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这两个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。文 献1 志强,C51单片机应用与C语言程序设计,:电子工业,2007,122 广弟,单片机基础,:航空航天大学,2008,56643何立民,单片机应用系统设计,:航天航空大学,25,46504 负图,传感器集成电路手册,第一版,化学工业,2009,590591附 录附录一 RightServoTest.c测试伺服电机#include<avr/BoeBotUnderstandable.h>/宝贝车的标准头文件#include<avr/usta.h> /串口的头文件int main(void) /主函数,程序从这里开始运行int counter;usta_Init(); /串口初始化printf("Program Running!"); /在调试窗口显示一条信息/*在开始时Counter被设为1,并在每次重复的最后被增加1。在循环重复前,如果Counter大于140,则循环结束。*/for(counter=1;counter<=140;counter+)/顺时针旋转三秒P1_0=1; /设置P1_0输出高电平delay_nus(1300); /延时0.0013sP1_0=0; /设置P1_0输出低电平delay_nms(20); /延时20ms/*在开始时Counter被设为1,并在每次重复的最后被增加1。在循环重复前,如果Counter大于46,则循环结束。*/for(counter=1;counter<=46;counter+) /停止一秒P1_0=1; /设置P1_0输出高电平delay_nus(1500); /延时0.0015sP1_0=0; /设置P1_0输出低电平delay_nms(20); /延时20ms/*在开始时Counter被设为1,并在每次重复的最后被增加1。在循环重复前,如果Counter大于46,则循环结束。*/for(counter=1;counter<=138;counter+)/逆时针旋转三秒P1_0=1; /设置P1_0输出高电平delay_nus(1700); /延时0.0017sP1_0=0; /设置P1_0输出低电平delay_nms(20); /延时20ms附录二 校正宝贝车直线运动程序#include<BoeBot.h>#include<uart.h>int main(void)int counter;uart_Init(); /串口初始化printf("Program Running!n"); for(counter=1;counter<=130;counter+) P1_1=1;delay_nus(1740); P1_1=0;P1_0=1;delay_nus(1355);P1_0=0;delay_nms(20);附录三 设计总程序#include <AT89X52.h>#include <stdio.h>#include<BoeBot.h>#define uint unsigned int #define uchar unsigned char uchar QTIState ;void stop(void) /停止 P1_1=1; delay_nus(1500); P1_1=0; P1_0=1; delay_nus(1500); P1_0=0; delay_nms(20);void back(void) /后退 P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); void Forward(void)/向前行走子程序 P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20);void Pivot_right(void)/左转子程序 P1_1=1; delay_nus(1500); P1_1=0; P1_0=1; delay_nus(1350);P1_0=0; delay_nms(20);void Pivot_left(void)/右转子程序 P1_1=1; delay_nus(1650); P1_1=0; P1_0=1; delay_nus(1500); P1_0=0; delay_nms(20);void Rotate_left(void)P1_1=1; delay_nus(1650); P1_1=0; P1_0=1; delay_nus(1650); P1_0=0; delay_nms(20);void Rotate_right(void)P1_1=1; delay_nus(1350); P1_1=0; P1_0=1; delay_nus(1350); P1_0=0; delay_nms(20);void right_zhuan90(void) int k,j=0; for(j=0;j<27 ;j+) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1650); P1_0=0; delay_nms(20); for(k=0;k<8;k+) Forward();void left_zhuan90(void) int k,j=0; for(j=0;j<30;j+) P1_1=1; delay_nus(1400); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); for(k=0;k<10;k+) Forward();void left_zhuan135(void) int k,j=0; for(j=0;j<35;j+) P1_1=1; delay_nus(1400); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); for(k=0;k<10;k+) Forward();void right_zhuan45(void) int j,k; j=0;k=0; for(j=0;j<5;j+) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1600); P1_0=0; delay_nms(20); for(k=0;k<10;k+) Forward();void left_zhuan45(void) int j,k; j=0;k=0; for(j=0;j<5;j+) P1_1=1; delay_nus(1400); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); for(k=0;k<10;k+) Forward();void rotate_180(void) int j,k; j=0;k=0; for(k=0;k<10;k+) Forward(); for(j=0;j<60;j+) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1600); P1_0=0; delay_nms(20); void forward_20cm(void) int j,k; j=0;k=0; for(j=0;j<88;j+) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nu

    注意事项

    本文(基于51单片机C语言搬运车机器人毕设毕业论文.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开