




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古工业大学本科毕业论文学校代码: 10128学 号: 010202064 ( 本科毕业设计说明书题 目:分拣机器人单片机控制系统设计学生姓名: 学 院: 系 别: 专 业: 班 级:指导教师:二 一 七 年 五 月摘 要一般的分拣机器人由于其操作方式较复杂,分拣的效率较差,人机交互系统的不太完善,机械性能欠佳等已经很难满足当今社会的生产实践需要。伴随着社会的飞速发展,人们对性能优良智能分拣人的需求也与日俱增。设计一款基于单片机的分拣机器人有很大的实践需要和社会功能。根据控制系统的要求,决定采用美国INTEL公司MCS-51系列单片机基本产品89C52,作为分拣机器人的主控制芯片。它具有运行速度快,功耗低,抗干扰能力强等优点,能够完全我的设计要求。本系统包括硬件和软件两个部分。硬件系统主要包括电压转换电路的设计、单片机连接PC机串口电路的设计,单片机系统的设计,驱动电路的设计,显示电路的设计等。在电路图板上完成各模块的设计与连接。分析易得,此系统可以完全满足设计需要。通过光耦等器件克服电机驱动部分与单片机部分的相互干扰。关键词:单片机;硬件设计;软件编程;89C52AbstractThe general sorting robot is more complicated due to its operation,sorting is less efficient,human-computer interaction system is not perfect,poor mechanical performance has been difficult to meet the needs of todays social production practice. Accompanied by the rapid development of society,the demand for smart sorters is also growing。The design of a sorting robot based on a single chip has a great practical need and social function.According to the requirements of the control system,Decided to adopt the United States INTEL MCS-51 series of basic products 89C52,as the main control chip for the sorting robot。It has the advantages of fast running speed, low power consumption and strong anti-interference ability,can be completely my design requirements。The system includes both hardware and software。The hardware system mainly includes the design of voltage conversion circuit,design of serial circuit of PC computer connected by single chip microcomputer,design of Single Chip Microcomputer System,design of the drive circuit,display circuit design, etc。In the circuit board to complete the design and connection of the module。Analysis easy to get,This system can fully meet the design needs。Through the optocoupler and other devices to overcome the motor drive part and the microcontroller part of the mutual interference。Keywords: Single chip,hardware design,software programming,89C52目 录第一章 前言11.1 本论文的背景和意义11.2 研究现状11.3 本论文的主要方法与研究进展21.4 本论文的工作原理框图21.5 本论文的主要内容3第二章 系统方案设计42.1 单片机型号的论证与选择42.2 数据显示模块的论证与选择52.3 驱动器模块的论证与选择62.4 电磁阀的论证与选择72.5 总体的方案比较与选择7第三章 系统硬件电路设计83.1 STC89C52RC单片机模块83.1.1 中央处理单元CPU的介绍83.1.2 STC89C52RC单片机的特点93.2 复位电路模块103.3 振荡电路模块103.4 LCD12864液晶显示器模块113.5 继电器驱动电路113.6 8255电机驱动123.7 外部定时器123.8 下载电路14第四章 软件系统设计154.1程序流程图154.2块初始化函数154.2.1定时器初始化和pwm的模拟154.1.2 12864液晶的初始化204.2 按键检测程序254.3电机运行状态控制程序274.3.1电机控制方法简介274.3.2电机速度控制策略274.4机械爪控制程序314.5锁存器74LS573控制程序32第五章 设计总结及技术展望33致 谢34参 考 文 献35附录1 系统设计电路总图36I第1章 前言1.1 本论文的背景和意义随着人类社会的进步,人类的聪明才智使得工具越来越先进。工具一直是为人类服务而被生产和改进。工具的进步使人类劳动更加方便,能够在更困难的环境中工作。机器人的诞生是通过解放人类的双手和大脑,从社会生产力的枯竭和生产更方便的工具。自恩格尔伯格先生的发明1,机器人已经在过去的100年里发生了很大的变化。目前,机器人已广泛应用于人类生产活动的各个领域。在现代工厂中,白天不懂夜的黑,输送搬运物品,危险完成排爆排爆机器人代替人类工作,甚至坐在宇宙飞船探索宇宙去探索人类未知的世界。与人类相比,机器人有许多优点。机器人不怕累,怕脏,不怕苦。在危险的情况下,机器人的功能突出。而且,机器人工作的准确性比较高,人们不会受到同样情绪波动的影响。机器人的运动方式主要是机械运动,电机驱动2是其主要控制方式。单片机控制电机驱动3在当今社会很普遍。随着单片机理论和硬件系统的更替,单片机控制技术在国民经济发展中起着重要的作用。自20世纪70年代单片机诞生以来,先后经历了单片机、单片机和SOC三个发展阶段。目前,供应链管理正朝着高性能、多品种方向发展。未来的趋势将是CMOS,低功耗,小体积,高性能,低价格,外围电路。目前,如功率表、示波器等智能仪表,在工业控制、家用电器、各种大型电器等的模块化应用中,都有单片机的使用。单片机渗透到我们工作的各个领域。1.2 研究现状国外分拣系统起步较早,目前普遍采用自动化的分拣系统,在我国分拣系统起步较晚,目前主要采用人工分拣方式。智能分拣系统发展依赖于机械设计水平的不断提高,在自动分拣系统中4,机械手爪设计科学性影响系统的正常工作。自动分拣系统是二战后,发达国家为了提升运送物品效率提出的一种作业方式,广泛应用于大型商场、快递行业。分拣系统适用于大批量的分拣货物,降低了出错概率。此系统的出现极大的减少了人员使用。随着技术的发展,国外的分拣系统呈现出自动化程度越来越高5,精确度越来越高。但是系统一次性投入较大,资本回收较慢,系统结构复杂,同时对商品外观要求较高,因此国内发展较慢。而机械机械手在国外发展也较快,由于国外起步较早,其机床加工水平相对较高,机械手爪的生产主要使用自动化机械生产,产品工艺水平高,同时机械手臂自由度公式的出现,加快了工业水平的提升,通过理论计算可以得到机械手臂的尺寸以及需要多少相关的模块678。在进行设计之前可以进行仿真分析每个部件受到的力度,优化各部分尺寸的设计。在国内分拣系统起步较晚,目前还是主要采用人工分拣方式。我国的分拣系统集约化程度低。企业投资一般集中在货架以及传送带等设备上面。物流体系整体运转较低,技术设备相对落后。随着技术的发展,我国自动分拣系统也在不断发展,我国可以自主生产多种自动分拣机,如托盘式翻板式与交叉带式分拣机等,主要应用于配送中心、邮政、机场等部门。但精度还需要提高。同时我国的机械加工水平不断提升,我国机械加工起步较晚,但随着车床等技术的引进,发展较快。1.3 本论文的主要方法与研究进展本毕业设计论文以生产实践中所出现的问题为出发点, 为了满足市场化需要,提升我国的自动化水平,本文拟研究一款基于单片机的分拣机器人。该系统采用传送结构实现,传送带负责将物件传送等待分拣,红外检测到物品到达时,单片机控制伺服电机抓取物品,放置在对应的物品箱。1.4 本论文的工作原理框图本设计采用以单片机为控制核心,实现抓物的基本动作功能,基于红外技术的收发系统实时检测机器抓物的设计与实现的工作原理框图如图1.4所示。图1.4 工作原理框图1.5 本论文的主要内容研究伺服电机与步进电机区别,伺服电机的工作原理,单片机控制器使用驱动器高精度控制伺服电机的运动9,可以实现水平、垂直两个轴的定位控制和机械手爪的开合控制;(1)手爪运行速度可达3m/s,定位精度不小于0.5mm;(2)要具有较好的人机接口和安全性措施;(3)控制系统具有与其它计算机通讯功能。第二章 系统方案设计2.1 单片机型号的论证与选择方案一:51单片机优点:STC89C52RC是51单片机,它的成本低性能高而且支持ISP和IAP技术。用户可以在系统板上烧录自己的程序,修改调试非常简单方便。IAP技术能将内部部分EEPROM可以用专用Flash代替使用,保证停电后能保证数据不丢失,擦写次数可以达到100000多次,不用外接EEPROM。而且与传统8051单片机程序兼容,硬件无需改动。缺点:作为8位的单片机,运行速度相对来说比较慢。而且普通的非加强版51单片机并不带内部时钟电路,如果不外接振荡电路就无法工作,5v的工作环境相对来说比较耗电。方案二:MSP430单片机优点:使用MSP430系列单片机。MSP430系列单片机是美国德州仪器公司生产的一种16位微处理器,使用的是精简指令集。MSP430单片机最显著特点就是超低功耗。微小的电量就能使单片机正常工作,中央处理器可的工作电压在1.8V3.3V之间10。缺点:超低功耗使得单片机只需要3.3v就能工作,但是这也使得很多需要5v才能工作的硬件电路需要外加驱动才能工作,使得硬件设计复杂化。而且430单片机不带片内EEPROM,这就使得430单片机不能执行一些特殊指令。430单片机作为16位单片机虽然运行速度快了一些但是价格却高了很多,在产品设计中无疑会增加产品的成本。方案三:STM32单片机优点:STM32F1系列属于32位ARM微控制器中的中低端产品,由意法半导体公司生产, Cortex-M3内核。可由Flash的大小可分为小容量、中容量、大容量。芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能11。所以STM32单片机基本具备51和430单片机的所有优点,而且随着STM32的普及,部分STM32的低端产品甚至比430还要便宜。缺点:基于ARM内核的STM32单片机的价格也是单片机中价格最高的,而且程序编写复杂,初学者不容易看懂。综上所述,STM32单片机虽然最强,但是由于其出色的性能与高昂的价格,使得它并不适用于小型的电子产品的应用,430单片机可以说除了低功耗基本没有任何优点。至于51单片机,作为年代最早的单片机,它使用的方式简单,基本能满足多种小型电子产品设计的需求,而且它使用和学习都十分简单,比较能被更多人接收。通过对比使用STC89C52RC单片机。2.2 数据显示模块的论证与选择方案一:数码管优点:数码管是由半导体发光器件组成,主要是由八个发光二极管工作。而且数码管拥有两种驱动方式,静态显示驱动和动态驱动,但是无论是动态驱动还是静态驱动,数码管都有高亮度和低功耗的优点。而且数码管的使用相当的简单且价格低廉。缺点:不同位数的数码管的管脚数不同,位数越多管脚越多。所有的数码管都需要外接驱动电路,焊接比较复杂而且能显示的内容相当有限。方案二:LCD1602优点: LCD1602为平面薄型显示设备,LCD1602能够显示字母、符号和数字,能够显示16*2个字符,能够显示较多信息。而且LCD1602价格低,体积小,功耗低等优点,被广泛的用作各种仪器的显示器。缺点:1602除了程序上要求复杂一点基本没有缺点。方案三:LCD12864优点:12864液晶显示模块分为有字库和无字库两种,都是由128*64个点阵构成,该模块可以较多的各种文字数字字符图案等信息。而且使用较为方便。缺点:该模块的价格较高,有字库的12864在编程是容易出现字符乱码的现象,处理起来较为麻烦。综上所述,LCD1602具有很大的优势,但是考虑到实际的需求,虽然数码管的使用硬件设计比较复杂,但是很多情况下可以直接使用驱动芯片来代替驱动电路,而且在大部分电子产品中液晶LCD1602的使用并不是很普及,比如它显示的字符特别小,且不可改变,大部分电子产品中使用的都是笔段式液晶,其原理和用法和数码管一样,但是成本却比数码管要高得多,但是这两种模块都只能十分局限的显示数字字母等信息,无法符合本次设计的要求,以本次设计选择了无字库的LCD12864。2.3 驱动器模块的论证与选择方案一:继电器优点:继电器是在电气输出电路中使用的电气控制装置,使用较为广泛,用法简单。而且根据不同的要求还分为不同的继电器,普通的继电器价格也十分的低。缺点:继电器的使用需要外接驱动电路,而且不同的功率的继电器所需要的驱动的电压也不同,所以使用继电器时要考虑到电源的要求。方案二:可控硅优点:使用简单,无论多大功率的可控硅都只需要高低电平就能驱动,不需要考虑控制端电源的要求。缺点:只适用于交流电。综上所述:本次设计不需要使用大功率电机,所以普通的继电器就能工作,所以选择继电器。2.4 电磁阀的论证与选择方案一:直动式电磁阀在通电时电磁力会将关闭阀门的开关提起,阀门就打开了,断电的时候电磁力消失开关又开始工作阀门就会关闭12。优点:能在各种环境下工作。缺点:孔径太小,用处很局限。方案二:先导式电磁阀在通电的时候电磁力会先把导孔打开,这样会使上腔的压力下降,在关闭开关周围形成压差,流体产生的压力毁推动开关向上移动,阀门开启。同样断电,阀门关闭13。优点:可以通过定制随意安装。缺点:工作时有流体压差的限制。综上所述,作为机械手,需要满足任意性,有力度限制,所以选择先导式电磁阀。2.5 总体的方案比较与选择该设计运动主要利用直流电机实现在平面上运动,数字金属舵机构成机械手抓取物体。利用按键控制装置到达指定位置,再由机械手抓取物体,再将物体送往指定位置,从而实现物体的分拣。13主控芯片选择较多,有常见的AVR、STC、ARDUINO 等。根据之前学过的课程,我们决定采用stc系列的STC89c5A60S2增强型单片机作为主控芯片。之所以不选89C52等芯片,不是因为他们的运算速度不够,主要原因是它们的片上flash太小,难以满足需求,其次是因为自己有闲置的STC89C5A60S2,片上内存大,运算速度1T,即充分利用资源节省成本,又可以实现所需要的功能需求。最后就是附属配件 usb转ttl串口的stc下载线。选择采用cp2102作为usb转串口芯片方案,下载STC单片机完胜PL2303方案,最高下载速度可达115200波特率。第三章 系统硬件电路设计3.1 STC89C52RC单片机模块 3.1.1 中央处理单元CPU的介绍STC89C52RC单片机是宏晶科技推出一款超低功耗、抗干扰、高速的单片机。STC89C52RC单片机选用8051核的ISP在系统可编程芯片。它具有结构简单,易于开发和价格便宜等特点。STC89C52RC单片机有两种工作电压,一种是2.0V-3.8V,即3V电压单片机,另一种是3.4V-5.5V,即5V电压单片机,本设计选用5V电压单片机。 STC89C52RC单片机具有很宽广的工作温度范围,工业级的单片机能够工作在-40至85的环境里,商业级的单片机能够工作在0至75的环境里。STC89C52RC单片机的工作频率最大能够达到48MHz,这样它就能够以飞快的速度去处理相关数据。STC89C52RC单片机内部拥有专用复位电路,当外部晶体频率在20MHz以下时,可以省去外部的复位电路。STC89C52RC单片机是一种低功耗、抗干扰性强、速度快的单片机。STC89C52RC单片机在系统可编程芯片上使用8051核isp。其特点是结构简单,开发简单,价格低廉。STC89C52RC微控制器有两种工作电压,一种是2.0 V到3.8 V,即三V电压单片微机,另一种是3.4 V到3.4 V,5 V电压单芯片微机,这种设计选择5伏电压单片机。STC89C52RC单片机具有广泛的工作温度范围,工业级MCU可在40到85的环境中工作,在0到75的环境中,单片微型计算机的商业水平可以工作。STC89C52RC单片机的工作效率最高为48MHz,因此它可以以快速的速度处理相关数据。STC89C52RC单片机有一个专用的复位电路,当外部的晶体频率低于20MHz时,它可以保存外部复位电路 3.1.2 STC89C52RC单片机的特点1.512字节的RAM;2.eepm功能;3.两个16位的定时器/计数器;4.看门狗;5.有一个程序系列的UART通道;6.六个中断;7.低功耗模式;8.有三个级别的加密内存图3.1.2 STC89C52RC的管脚图3.2 复位电路模块当系统接入5V电源时时,STC89C52RC单片机开始复位,如图3.3所示复位电路模块电路原理图。图3.2 复位电路模块电路原理图3.3 振荡电路模块此次设计选用的是11.0592MHz的晶振和30pF的电容,那么STC89C52RC单片机的工作周期是11.0592MHz(1/11.0592MHz)=1us。如图3.3所示的最小时钟振荡电路原理图。图3.3 振荡电路模块3.4 LCD12864液晶显示器模块本设计使用LCD2864液晶显示作为观察正在执行的功能。如图3.4所示为LCD12864液晶显示器电路原理图。图3.4 LCD12864液晶显示器模块电路原理图3.5 继电器驱动电路当认为按下启动按键时,单片机开始工作,给继电器发送指令。因为STC89C52RC单片机端口输出的电流比较低,所以加一个三极管以增大功率,驱动继电器正常工作。如图3.5所示的继电器电路原理图。图3.5 继电器驱动模块电路原理图3.6 8255电机驱动DRV8255可以驱动一个二项四线步进电机,也可以驱动两个直流电机,与8-45v输入电压,最大电流为1.7a,经得起2.5a的瞬时电压通过PWM输入驱动。可以avref / bvref调整电机绕组电流的电阻,电流应大小的电机额定电流;通过模型/模型/模式,三角配置细分驱动模式,您可以配置2 / 4 / 8 / 16 / 32细分。nhome脚,从电源,电机转了45度的位置,nhome引脚会输出一个低电平。如图3.6.图3.6 8255连接电路3.7 外部定时器此次8253作为定时器执行复杂的电机控制器。 1数据母线缓冲器这个三态、双向和八位的缓冲器用于将8253与系统数据总线连接起来。CPU执行输入输出指令时缓冲器就发送或接收数据。数据总线缓冲器有三个基本功能: 通过编程确定8253的工作方式;向计数寄存器装入数据;读出计数值。 2读写逻辑读写逻辑接受来自系统总线的输入,然后产生控制整个器件工作的控制信号。由CS信号来允许或禁止读写逻辑的工作,因此除非该器件被系统逻辑选中,否则不会发生改变其功能的操作。 3RD(读)这个输入端上的低电平信号告知8253,CPU正在输入计数值。4WR(写)这个输入端上的低电平信号告诉8253,CPU正在输出工作方式信息或向计数器装入数据。5.A0A1这两个输入端通常连接到地址总线上。其作用是选择三个计数器中的一个以及选择控制字寄存器以便选择工作方式。6CS(选片)这个输入端上的低电平信号将启用8253。除非器件被选中,否则不会发生读或写操作。CS输入信号对计数器的实际操作没有影响8253内部拥有三个独立但是结构和功能全部相同的定时器。本次设计使用到了两个8253,连接方式如图3.7。图3.7 8253连接图3.8 下载电路本次设计使用到了CH340芯片下载,因为现在的笔记本电脑都没有了并口通信接口,而用了CH340就可以实现USB转串口,电脑上装上驱动后就可以下载数据,接线方式如图3.8图所示.图3.8 CH340下载电路第四章 软件系统设计4.1程序流程图程序采用了顺序结构,流程图如下:4.2块初始化函数4.2.1定时器初始化和pwm的模拟本方案中定时器采用的是8253定时器,该定时器有六种工作方式,我们需要定时功能。8253的片选端是用来控制定时器工作方式的端口。该端口连接至单片机io口。只需要设置对应端口的电平就可以设置定时器的工作方式。定时器的作用是用来控制电机的转动时间。由于存在着电机这种设备,所以需要使用pwm进行调速。但是51单片机并不能直接输出pwm,所以本设计中通过软件模拟的方法产生pwm。软件模拟主要利用定时器的定时中断功能。本设计采用的是51单片机,51单片机内部有两个定时器,分别是T0和T1,T0和T1是两个完全一样的16位定时器。定时器的作用主要就是定时,在51单片机中定时器的工作方式是以中断的方式进行的。设定一个定时时间当定时器定时达到定时时间后,就会进入定时器中断。在中断中可以处理相关的事件。在本设计中定时器中断的作用是用来模拟产生pwm的。由于51单片机内部不带硬件pwm,所以需要模拟。模拟的思路是通过定时器设定时间来控制脉冲的宽度,其控制思路如下图所示:上述流程图是定时器模拟产生pwm的步骤,定时器设定的定时时间为1ms,也就是说,定时时间到了1ms定时器就会进入中断,在初始化时,要首先设置好单片机的工作方式,设置单片机的工作方式为方式1,定时时间设为1ms,通过往寄存器TH和TL中装入初始值实现计时时间的调节。定时时间到1ms时,程序会自动进入中断。在中断服务程序中可以执行相关的任务代码。也就是说程序会每隔1ms就会进入一次中断,就会有一个较为准确的周期性。在中断中主要进行的是按键的处理和pwm的模拟,按键的处理将在后续章节中介绍。PWM如下图所示:图4.2.1 PWM图在上图中,可以看到pwm是一个方波。占空比是t/T,要让单片机的管脚输出这个占空比,只有通过定时器来实现。首先假设要输出的pwm频率为100hz,也就是周期T为10ms。在上面已经提到设置单片机的定时时间为1ms,也就是每个1ms会执行一次中断服务程序。在中断服务程序里设一个变量flag,每进一次中断这个变量就会自增一次,那么变量自增的次数就可以用来表示时间,每加一次就是过来1ms。利用这个时间变量就可以设置单片机输出的PWM了。假设现在要设置的占空比是百分之30.那么就是说整个周期中,高电平时间占整个周期的百分之30.也就是3ms。在程序中是通过判断定时变量实现的,在第一次进入中断时,设置单片机的一个io口输出低电平。当第七次进入中断时,此时正好是7ms。控制这个单片机的io口输出电平翻转,输出高电平。当第十次进入中断的时候,此时是第10ms,控制这个io口再次输出低电平,如此反复,就可以模拟出占空比为百分之30的pwm了。程序代码如下:void timer0( ) interrupt 1 /定时器0工作方式1 TH0=0xff; /重装计数初值 TL0=0x38; /重装计数初值 b+; get_key();/按键查询 if(p10=0) delay(10); /延时消抖,按键消抖 if(p10=0) p00=0;p02=p01=p03=1;/前进 list_write_HZ_Str(6,20,qianjin); if(p11=0) delay(10); if(p11=0) p01=0;p02=p00=p03=1; list_write_HZ_Str(6,20,houtui );/后退 if(p12=0) delay(10); if(p12=0) p02=0;p00=p01=p03=1; list_write_HZ_Str(6,20,zuo ); /左边 if(p13=0) delay(10); if(p13=0) p03=0;p00=p01=p02=1; /右边运动 list_write_HZ_Str(6,20,you ); if(p14=0) delay(10); if(p14=0) p00=p02=p01=p03=1; list_write_HZ_Str(6,20,停止 ); if (key_up=1) if(X!=15)/判断是否计数到9999 X=X+1;/加一 key_up=0; if (key_down=1) if(X!=2)/判断是否计数到0 X=X-1;/减一 key_down=0; 4.1.2 12864液晶的初始化12864是一个带字符库的液晶,可以显示128*64个点。12864液晶需要通过软件写入命令和数据才可以显示出字符。在初始化时首先需要写入命令,让12864液晶进入显示状态。设定显示地址。指令是根据12864液晶的数据手册编写的。12864液晶的初始化流程如下:程序代码如下:/*写指令代码*/void wcode(uchar cd) /写指令 代码 chkbusy(); /写等待 P2=0xff; /使能LCD RW=0; /读禁止 RS=0; /输出 设置 P2=cd; /写数据代码 E=1; /以下两句产生下降沿 E=0; /*把显示数据写到内存单元中 */void wdata(uchar dat) /写显示数据 chkbusy(); /写等待 P2=0xff; /使能LCD RW=0; /读禁止 RS=1; /输出 设置 P2=dat 0xFF; /写数据代码 E=1; /以下两句产生下降沿 E=0; /*显示LCD程序*/void disrow(uchar page,uchar col,uchar *temp) uchar i; if(col64) / 左半平面 L=1;R=0;wcode(LCDPAGE+page); / 写指令 页 wcode(LCDLINE+col); /写指令行 if(col+16)64) /如果字在左半平面显示不了,转到右半平面去 for(i=0;i16;i+) /写字 wdata(*(temp+i); else /右半平面 for(i=0;i64-col;i+) /减去左边数,从右半平面第一位开始显示 wdata(*(temp+i); /写字显示 L=0;R=1; /右半平面 wcode(LCDPAGE+page); / 写指令页 wcode(LCDLINE); /写指令行 for(i=64-col;i16;i+) /写字右半平面 wdata(*(temp+i); else L=0;R=1; wcode(LCDPAGE+page); / 写指令 页 wcode(LCDLINE+col-64); /写指令行 for(i=0;i16;i+) /写字 wdata(*(temp+i); /*供调用 *子程序 */void display( int page, int col,uchar *temp) disrow( page, col, temp); /显示上半字 disrow( page+1, col, temp+16); /显示下半字 void disrow_ascii(uchar page,uchar col,uchar *temp) uchar i; if(col64) / 左半平面 L=1;R=0;wcode(LCDPAGE+page); / 写指令 页 wcode(LCDLINE+col); /写指令行 if(col+8)64) /如果字在左半平面显示不了,转到右半平面去 for(i=0;i8;i+) /写字 wdata(*(temp+i); else /右半平面 for(i=0;i64-col;i+)/减去左边数,从右半平面第一位开始显示 wdata(*(temp+i); /写字显示 L=0;R=1; /右半平面 wcode(LCDPAGE+page); / 写指令页 wcode(LCDLINE); /写指令行 for(i=64-col;i8;i+) /写字右半平面 wdata(*(temp+i); else L=0;R=1; wcode(LCDPAGE+page); / 写指令 页 wcode(LCDLINE+col-64); /写指令行 for(i=0;i8;i+) /写字 wdata(*(temp+i); void display_ascII( int page, int col,uchar *temp) disrow_ascii( page, col, temp); /显示上半字 disrow_ascii( page+1, col, temp+8); /显示下半字 /*LCD初始化 * /void iniLCD(void) /初始化 L=1; R=1; wcode(0x38); wcode(0x0f); /开显示 设置 wcode(0xc0); /设置显示启动为第一行 wcode(0x01); /清屏 wcode(0x06); /画面不动,光标右移。 list_write_HZ_Str(0,18,电子科技); list_write_HZ_Str(3,18,前进); list_write_HZ_Str(6,20,停止); 4.2 按键检测程序按键检测程序是整个系统中人机交模块的重要组成部分。按键起着输入参数的作用。按键检测的原理是扫描法。当按键被按下时,按键连接着单片机的IO口就会被拉到地,此时,单片机io电平就会由高电平变成低电平。程序就是扫描这个电平的变化来检测按键的状态的。一旦检测到某个引脚被拉低,就会进行相应的按键处理。在按键处理过程中需要有一些问题需要注意。其中最重要的就是按键的消抖问题。 按键的消抖是按键处理过程中不可避免的一环 ,按键的抖动,就是按键在按下过程中,按键的触点之间的接触并不是理想的直接接触的,而是有一个抖动的过程。在松开按键的过程中,也会有一个抖动的过程,具体如下图所示:图4.2 按键消抖过程图在上图中,理想的按键检测波形,是一个没有任何毛刺的波形,按键一按下就会接触,一松开就会立马分离。但是在实际中,按键是由机械结构制作的,都会有一定的弹性。所以触点在分合时都会有图中的抖动现象。根据一般经验,人手按下按键的时间大约在20ms。按下时的抖动时间大约在5ms,松手时抖动也是5ms。如果不消除这段抖动,那么程序就会检测到按键按下了多次。实际上并没有按下多次,只是按下了一次。 按键的消抖方法主要由硬件法和软件法两种。硬件消抖的方法主要是用滤波电路实现。在本设计中使用的是软甲消抖的方法。软件消抖使用的是延时的策略,由于按键按下时,抖动的时间只有5ms,只要能够在这段时间内不检测按键的状态,只在按键稳定接触的那段时间内检测,就可以消除抖动的影响。所以只要检测到按键按下,就立马进行延时,延时时间为5ms。再检测按键的状态,就可以保证检测到的是稳定的状态。在检测到按键按下时,需要等待按键松手,此就使用while函数来实现,当按键的端口一直是低电平时,就一直循环,等待松手,松手时按键是从低电平跳变到高电平。然后执行相关按键的处理任务。由于在松手时,按键也会有一个抖动,如果不对这个按键抖动进行处理,那程序也会多次检测到按键按下。这个时刻的按键处理也是使用延时的方法实现的。按键检测的流程图如下:按键控制程序如下:if (key_up=1) if(X!=15) /判断是否计数到9999 X=X+1; /加一 key_up=0; if (key_down=1) if(X!=2) /判断是否计数到0 X=X-1; /减一 key_down=0; 4.3电机运行状态控制程序4.3.1电机控制方法简介电机控制采用的是电机驱动控制。单片机对电机的控制采用的是使能和pwm法。电机驱动每个通道有一个使能端。两个使能端如果给的是相同状态的电平,那么电机就不会转动。如果两个使能端电平状态不同电机就会转动,转动的方向和两个电平的状态有关。控制两个电机的运动方向就是通过控制每个电机的使能端来实现的。电机运行速度的判定采用的是pwm的方法。使能端的信号以pwm的方式输入进去。就可以调节电机的转速。 4.3.2电机速度控制策略 由于要使电机能够稳定的在3m/s的状态下运行,所以需要对电机的运行状态进行测速。电机的测速是通过测量电机的脉冲数进行的。电机采用的是光耦测速。每转一圈光耦输出两个脉冲数。在设计中采用的电机是传送带传输的方式,电机主动传动飞轮采用的是直径为20cm的圆盘。要想保证机械手每秒运行3m,即相当于电机每秒要转4.77圈。也就是电机每秒输出的脉冲数至少要有9.55个脉冲。由于不存在9.55个脉冲数的情况,所以要求电机测速机构每秒中要输出10个脉冲。所以程序里需要对电机的速度进控制。电机各传动机构速度之间的对应关系如下表:电机输出脉冲数(HZ)电机转速(R/S)机械手移动速度(M/S)210.628表1 电机各传动机构速度之间的对应关系表在上表中可以发现电机每秒输出1个脉冲,机械手移动速度是0.314m/s。要想机械手移动速度在3m/s以上,就需要电机每秒输出10个脉冲数以上。所以在程序中要实时监控电机的转速。由于所采用的51单片机内部没有输入捕获模块,需要通过软件来计算输入的脉冲频率。脉冲频率的获取方法是依靠定时器和单片机的外部中断实现的,51单片机的外部中断引脚只要输入一个跳变的波形,就会触发一个中断。触发中断后会进入中断服务函数,在中断服务函数里开启定时器,连续计数到10个脉冲,说明电机转了5圈,记到第五圈时就停止定时器定时。此时将10个脉冲除以这段时间内的时间就是频率。因为电机转一圈输出的是两个脉冲。所以再将这个频率除以2就是得到了电机的转速。检测到电机的实时速度后,需要换算成机械手的移动速度,在上标中,已经提到了电机转速和机械手移动速度之间的关系根据表格的关系,至少要保证电机每秒输出的脉冲数在10个以上。当检测到电机转速低于是个脉冲每秒的时候,就增大占空比,提高电机转速。速度控制的流程图如下:本次使用的是8253外部定时器驱动8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》考前冲刺练习附答案详解(综合题)
- 2025年教师招聘之《小学教师招聘》通关题库附参考答案详解【基础题】
- 2025年呼伦贝尔莫力达瓦达斡尔族自治旗内蒙古大学校园引才笔试备考及答案详解1套
- 教师招聘之《小学教师招聘》题库(得分题)打印(易错题)附答案详解
- 教师招聘之《小学教师招聘》试题(得分题)(历年真题)附答案详解
- 教师招聘之《小学教师招聘》能力测试B卷及1套完整答案详解
- 2025龙泉农商银行秋季招聘若干人笔试参考题库附答案解析
- 2025广东佛山市南海农商银行中层正职管理人员社会招聘笔试参考题库附答案解析
- 2025版化工行业安全检查手册
- 合作学习赋能:高中生英语自主学习能力提升新路径
- 2024心肺复苏操作考核评分标准
- 2025春季学期国开电大专科《政治学原理》一平台在线形考(形考任务二)试题及答案
- 内镜标本规范处理
- 汽车电工电子基础电子教案2电流、电压和电位
- 2025年通力扶梯e1试题及答案
- 老年临床营养支持
- 发电厂继电保护培训课件
- 《李白的诗歌》课件
- 《免除烦恼》课件
- 《你的降落伞是什么颜色》读书笔记作品
- 电动机更换施工方案
评论
0/150
提交评论