版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学校代码: 10128学 号:010202064本科毕业设计说明书题目:分拣机器人单片机控制系统设计学生姓名: 学院: 系别:专业:班级:指导教师:二o 一七年五月摘要一般的分拣机器人由于其操作方式较复杂,分拣的效率较差,人机交互系统 的不太完善,机械性能欠佳等已经很难满足当今社会的生产实践需要。伴随着社 会的飞速发展,人们对性能优良智能分拣人的需求也与日俱增。设计一款基于单 片机的分拣机器人有很大的实践需要和社会功能。根据控制系统的要求,决定采 用美国INTEL公司MCS-51系列单片机基本产品89C52,作为分拣机器人的主控 制芯片。它具有运行速度快,功耗低,抗干扰能力强等优点,能够完全我
2、的设计 要求。本系统包括硬件和软件两个部分。硬件系统主要包括电压转换电路的设计、 单片机连接PC机串口电路的设计,单片机系统的设计,驱动电路的设计,显示 电路的设计等。在电路图板上完成各模块的设计与连接。分析易得,此系统可以 完全满足设计需要。通过光耦等器件克服电机驱动部分与单片机部分的相互干扰。关键词:单片机;硬件设计;软件编程;89C52AbstractThe general sorting robot is more complicated due to its operation sorting is less efficient, human-computer interaction
3、 system is not perfect, poor mechanical performance has been difficult to meet the needs of today,s 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 ne
4、ed 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
5、ability, can be completely my design requirementso The system includes both hardware and softwareo 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,
6、 design of the drive circuit, display circuit design, etc。 In the circuit board to complete the design and connection of the moduleo 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 p
7、art 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
8、中央处理单元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第五章设
9、计总结及技术展望33致谢34参考文献35附录1系统设计电路总图36第一章前言1.1 本论文的背景和意义随着人类社会的进步,人类的聪明才智使得工具越来越先进。工具一直是为 人类服务而被生产和改进。工具的进步使人类劳动更加方便,能够在更困难的环 境中工作。机器人的诞生是通过解放人类的双手和大脑,从社会生产力的枯竭和 生产更方便的工具。自恩格尔伯格先生的发明1,机器人已经在过去的100年里发生了很大的 变化。目前,机器人已广泛应用于人类生产活动的各个领域。在现代工厂中,白 天不懂夜的黑,输送搬运物品,危险完成排爆排爆机器人代替人类工作,甚至坐 在宇宙飞船探索宇宙去探索人类未知的世界。与人类相比,机器
10、人有许多优点。 机器人不怕累,怕脏,不怕苦。在危险的情况下,机器人的功能突出。而且,机 器人工作的准确性比较高,人们不会受到同样情绪波动的影响。机器人的运动方 式主要是机械运动,电机驱动2是其主要控制方式。单片机控制电机驱动3在当今社会很普遍。随着单片机理论和硬件系统的 更替,单片机控制技术在国民经济发展中起着重要的作用。自20世纪70年代单 片机诞生以来,先后经历了单片机、单片机和SOC三个发展阶段。目前,供应链 管理正朝着高性能、多品种方向发展。未来的趋势将是CMOS,低功耗,小体积, 高性能,低价格,外围电路。目前,如功率表、示波器等智能仪表,在工业控制、 家用电器、各种大型电器等的模块
11、化应用中,都有单片机的使用。单片机渗透到 我们工作的各个领域。1.2 研究现状国外分拣系统起步较早,目前普遍采用自动化的分拣系统,在我国分拣系统 起步较晚,目前主要采用人工分拣方式。智能分拣系统发展依赖于机械设计水平 的不断提高,在自动分拣系统中4,机械手爪设计科学性影响系统的正常工作。 自动分拣系统是二战后,发达国家为了提升运送物品效率提出的一种作业方式, 广泛应用于大型商场、快递行业。分拣系统适用于大批量的分拣货物,降低了出 错概率。此系统的出现极大的减少了人员使用。随着技术的发展,国外的分拣系 统呈现出自动化程度越来越高5,精确度越来越高。但是系统一次性投入较大, 资本回收较慢,系统结构
12、复杂,同时对商品外观要求较高,因此国内发展较慢。 而机械机械手在国外发展也较快,由于国外起步较早,其机床加工水平相对较高, 机械手爪的生产主要使用自动化机械生产,产品工艺水平高,同时机械手臂自由 度公式的出现,加快了工业水平的提升,通过理论计算可以得到机械手臂的尺寸 以及需要多少相关的模块678。在进行设计之前可以进行仿真分析每个部 件受到的力度,优化各部分尺寸的设计。在国内分拣系统起步较晚,目前还是主要采用人工分拣方式。我国的分拣系 统集约化程度低。企业投资一般集中在货架以及传送带等设备上面。物流体系整 体运转较低,技术设备相对落后。随着技术的发展,我国自动分拣系统也在不断 发展,我国可以自
13、主生产多种自动分拣机,如托盘式翻板式与交叉带式分拣机等, 主要应用于配送中心、邮政、机场等部门。但精度还需要提高。同时我国的机械 加工水平不断提升,我国机械加工起步较晚,但随着车床等技术的引进,发展较 快。1.3 本论文的主要方法与研究进展本毕业设计论文以生产实践中所出现的问题为出发点,为了满足市场化需要,提升我国的自动化水平,本文拟研究一款基于单片机的分拣机器人。 该系统采用传送结构实现,传送带负责将物件传送等待分拣,红外检测到 物品到达时,单片机控制伺服电机抓取物品,放置在对应的物品箱。1.4 本论文的工作原理框图本设计采用以单片机为控制核心,实现抓物的基本动作功能,基于红 外技术的收发系
14、统实时检测机器抓物的设计与实现的工作原理框图如图 1.4所示。图1.4工作原理框图1.5 本论文的主要内容研究伺服电机与步进电机区别,伺服电机的工作原理,单片机控制器使用驱 动器高精度控制伺服电机的运动9,可以实现水平、垂直两个轴的定位控制和 机械手爪的开合控制;(1)手爪运行速度可达3m/s,定位精度不小于0.5mm;(2)要具有较好的人机接口和安全性措施;(3)控制系统具有与其它计算机通讯功能。第二章系统方案设计2.1单片机型号的论证与选择方案一:51单片机优点:STC89C52RC是51单片机,它的成本低性能高而且支持ISP和IAP技 术。用户可以在系统板上烧录自己的程序,修改调试非常简
15、单方便。IAP技术能 将内部部分EEPROM可以用专用Flash代替使用,保证停电后能保证数据不丢失, 擦写次数可以达到100000多次,不用外接EEPROM。而且与传统8051单片机程 序兼容,硬件无需改动。缺点:作为8位的单片机,运行速度相对来说比较慢。而且普通的非加强版 51单片机并不带内部时钟电路,如果不外接振荡电路就无法工作,5v的工作环 境相对来说比较耗电。方案二:MSP430单片机优点:使用MSP430系列单片机。MSP430系列单片机是美国德州仪器公 司生产的一种16位微处理器,使用的是精简指令集。MSP430单片机最显著 特点就是超低功耗。微小的电量就能使单片机正常工作,中央
16、处理器可的 工作电压在1.8V3.3V之间10。缺点:超低功耗使得单片机只需要3.3v就能工作,但是这也使得很多需要 5v才能工作的硬件电路需要外加驱动才能工作,使得硬件设计复杂化。而且430 单片机不带片内EEPROM,这就使得430单片机不能执行一些特殊指令。430单片 机作为16位单片机虽然运行速度快了一些但是价格却高了很多,在产品设计中 无疑会增加产品的成本。方案三:STM32单片机优点:STM32F1系列属于32位ARM微控制器中的中低端产品,由意法半导 体公司生产,Cortex-M3内核。可由Flash的大小可分为小容量、中容量、大 容量。芯片集成定时器,CAN, ADC, SPI
17、, I2C, USB, UART,等多种功能11。 所以STM32单片机基本具备51和430单片机的所有优点,而且随着STM32的普 及,部分STM32的低端产品甚至比430还要便宜。缺点:基于ARM内核的STM32单片机的价格也是单片机中价格最高的,而且 程序编写复杂,初学者不容易看懂。综上所述,STM32单片机虽然最强,但是由于其出色的性能与高昂的价格, 使得它并不适用于小型的电子产品的应用,430单片机可以说除了低功耗基本没 有任何优点。至于51单片机,作为年代最早的单片机,它使用的方式简单,基 本能满足多种小型电子产品设计的需求,而且它使用和学习都十分简单,比较能 被更多人接收。通过对
18、比使用STC89C52RC单片机。2.2 数据显示模块的论证与选择方案一:数码管优点:数码管是由半导体发光器件组成,主要是由八个发光二极管工作。而 且数码管拥有两种驱动方式,静态显示驱动和动态驱动,但是无论是动态驱动还 是静态驱动,数码管都有高亮度和低功耗的优点。而且数码管的使用相当的简单 且价格低廉。缺点:不同位数的数码管的管脚数不同,位数越多管脚越多。所有的数码管 都需要外接驱动电路,焊接比较复杂而且能显示的内容相当有限。方案二:LCD1602优点:LCD1602为平面薄型显示设备,LCD1602能够显示字母、符号和 数字,能够显示16*2个字符,能够显示较多信息。而且 LCD1602价格
19、低, 体积小,功耗低等优点,被广泛的用作各种仪器的显示器。缺点:1602除了程序上要求复杂一点基本没有缺点。方案三:LCD12864优点:12864液晶显示模块分为有字库和无字库两种,都是由 128*64 个点阵构成,该模块可以较多的各种文字数字字符图案等信息。而且使用 较为方便。缺点:该模块的价格较高,有字库的12864在编程是容易出现字符乱 码的现象,处理起来较为麻烦。综上所述,LCD1602具有很大的优势,但是考虑到实际的需求,虽然数 码管的使用硬件设计比较复杂,但是很多情况下可以直接使用驱动芯片来 代替驱动电路,而且在大部分电子产品中液晶 LCD1602的使用并不是很普 及,比如它显示
20、的字符特别小,且不可改变,大部分电子产品中使用的都 是笔段式液晶,其原理和用法和数码管一样,但是成本却比数码管要高得 多,但是这两种模块都只能十分局限的显示数字字母等信息,无法符合本 次设计的要求,以本次设计选择了无字库的 LCD12864。2.3 驱动器模块的论证与选择方案一:继电器优点:继电器是在电气输出电路中使用的电气控制装置,使用较为广泛,用 法简单。而且根据不同的要求还分为不同的继电器,普通的继电器价格也十分的 低。缺点:继电器的使用需要外接驱动电路,而且不同的功率的继电器所需要的 驱动的电压也不同,所以使用继电器时要考虑到电源的要求。方案二:可控硅优点:使用简单,无论多大功率的可控
21、硅都只需要高低电平就能驱动,不需要考 虑控制端电源的要求。缺点:只适用于交流电。综上所述:本次设计不需要使用大功率电机,所以普通的继电器就能工作, 所以选择继电器。2.4 电磁阀的论证与选择方案一:直动式电磁阀在通电时电磁力会将关闭阀门的开关提起,阀门就打开了,断电的时候电磁 力消失开关又开始工作阀门就会关闭12。优点:能在各种环境下工作。缺点:孔径太小,用处很局限。方案二:先导式电磁阀在通电的时候电磁力会先把导孔打开,这样会使上腔的压力下降,在关闭开 关周围形成压差,流体产生的压力毁推动开关向上移动,阀门开启。同样断电, 阀门关闭13。优点:可以通过定制随意安装。缺点:工作时有流体压差的限制
22、。综上所述,作为机械手,需要满足任意性,有力度限制,所以选择先导式电 磁阀。2.5 总体的方案比较与选择该设计运动主要利用直流电机实现在平面上运动,数字金属舵机构成机械手 抓取物体。利用按键控制装置到达指定位置,再由机械手抓取物体,再将物体送 往指定位置,从而实现物体的分拣。13主控芯片选择较多,有常见的AVR、STC、ARDUINO等。根据之前学过的课 程,我们决定采用stc系列的STC89c5A60S2增强型单片机作为主控芯片。之所 以不选89C52等芯片,不是因为他们的运算速度不够,主要原因是它们的片上 flash太小,难以满足需求,其次是因为自己有闲置的STC89C5A60S2,片上内
23、存 大,运算速度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,
24、即3V电压单 片机,另一种是3.4V-5.5V,即5V电压单片机,本设计选用5V电压单片机。STC89C52RC单片机具有很宽广的工作温度范围,工业级的单片机能够 工作在-40 至85 的环境里,商业级的单片机能够工作在0 至75 的环 境里。STC89C52RC单片机的工作频率最大能够达到 48MHz,这样它就能够以 飞快的速度去处理相关数据。STC89C52RC单片机内部拥有专用复位电路,当外部晶体频率在20MHz以下时,可以省去外部的复位电路。STC89C52RC单片机是一种低功耗、抗干扰性强、速度快的单片机。 STC89C52RC单片机在系统可编程芯片上使用8051核isp。其特点是结
25、构简 单,开发简单,价格低廉。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单片机
26、的特点1.512字节的RAM;2 .eepm 功能;3 .两个16位的定时器/计数器;4 .看门狗;5 .有一个程序系列的UART通道;6 .六个中断;7 .低功耗模式;8 .有三个级别的加密内存+5V31Pl 0Pl 1Pl 2Pl 340pn Q*FV.VPO I pfb I3S1A打1I V.d.品Pl 4DA 1R>V. J35Pl 5Pl 6pn j1ITW-BA S34-ftopi 7P06P0 79RST32A* 1LU1P3 0RXDEA VppJI121 fPS I TXDP3,亦TQALE PROGPSENJv-P3 3'INTlP271413P3 4 TOP
27、3 5 TIPI 6P2 5z/261 cL0>P2417P簿EP2314 <?Lavt at tpi 119XTAL1Pl 1in in11 I,vGNDP2Q-1 189C52图3.1.2 STC89C52RC的管脚图3.2复位电路模块当系统接入5V电源时时,STC89C52RC单片机开始复位,如图3.3所示复位 电路模块电路原理图。图3.2复位电路模块电路原理图3.3振荡电路模块此次设计选用的是11.0592MHz的晶振和30pF的电容,那么STC89C52RC 单片机的工作周期是11.0592MHz X (1/11.0592MHz)=1us。如图3.3所示的 最小时钟振荡电
28、路原理图。1ST11911 0592M20C730一GND图3.3振荡电路模块P3. /KD XT.AL2 XTAL1 GND3.4 LCD12864液晶显示器模块本设计使用LCD2864液晶显示作为观察正在执行的功能。如图3.4所示为LCD12864液晶显示器电路原理图。6LCD12S6JIU 二n r 序徭2式瑞黑眼罂镇隆AK图3.4LCD12864液晶显示器模块电路原理图3.5 继电器驱动电路当认为按下启动按键时,单片机开始工作,给继电器发送指令。因为 STC89C52RC单片机端口输出的电流比较低,所以加一个三极管以增大功率, 驱动继电器正常工作。如图3.5所示的继电器电路原理图。图3
29、.5继电器驱动模块电路原理图3.68255电机驱动DRV8255可以驱动一个二项四线步进电机,也可以驱动两个直流电机,与 8-45v输入电压,最大电流为1.7a,经得起2.5a的瞬时电压通过PWM输入驱动。 可以avref / bvref调整电机绕组电流的电阻,电流应大小的电机额定电流;通 过模型/模型/模式,三角配置细分驱动模式,您可以配置2 / 4 / 8 / 16 / 32 细分。nhome脚,从电源,电机转了 45度的位置,nhome引脚会输出一个低电平。 如图3.6.5-<DOnistBIMEKHIr繇刖ai£ekra昭阳仲FBr-H/阳 mptkpcpckkpc-Z
30、AJC肘A2A3煽相耻 pppppppp图3.68255连接电路3.7外部定时器此次8253作为定时器执行复杂的电机控制器。1 .数据母线缓冲器这个三态、双向和八位的缓冲器用于将8253与系统数据总 线连接起来。CPU执行输入/输出指令时缓冲器就发送或接收数据。数据总线缓 冲器有三个基本功能: 通过编程确定8253的工作方式; 向计数寄存器装入数据; 读出计数值。2. 读/写逻辑读/写逻辑接受来自系统总线的输入,然后产生控制整个器件 工作的控制信号。由CS信号来允许或禁止读写逻辑的工作,因此除非该器件被 系统逻辑选中,否则不会发生改变其功能的操作。3. RD (读)这个输入端上的低电平信号告知
31、8253, CPU正在输入计数值。4. WR (写)这个输入端上的低电平信号告诉8253, CPU正在输出工作方式 信息或向计数器装入数据。5. A0A1这两个输入端通常连接到地址总线上。其作用是选择三个计数器中 的一个以及选择控制字寄存器以便选择工作方式。6. CS (选片)这个输入端上的低电平信号将启用8253。除非器件被选中, 否则不会发生读或写操作。CS输入信号对计数器的实际操作没有影响8253内部 拥有三个独立但是结构和功能全部相同的定时器。本次设计使用到了两个8253, 连接方式如图3.7。图3.78253连接图3.8下载电路本次设计使用到了 CH340芯片下载,因为现在的笔记本电
32、脑都没有了并口通 信接口,而用了 CH340就可以实现USB转串口,电脑上装上驱动后就可以下载数 据,接线方式如图3.8图所示.图3.8CH340下载电路第四章 软件系统设计4.1 程序流程图程序采用了顺序结构,流程图如下:4.2 块初始化函数4.2.1 定时器初始化和pwm的模拟本方案中定时器采用的是8253定时器,该定时器有六种工作方式,我们需 要定时功能。8253的片选端是用来控制定时器工作方式的端口。该端口连接至 单片机io 口。只需要设置对应端口的电平就可以设置定时器的工作方式。定时 器的作用是用来控制电机的转动时间。由于存在着电机这种设备,所以需要使用pwm进行调速。但是51单片机
33、并 不能直接输出pwm,所以本设计中通过软件模拟的方法产生pwm。软件模拟主要 利用定时器的定时中断功能。本设计采用的是51单片机,51单片机内部有两个 定时器,分别是T0和T1,T0和T1是两个完全一样的16位定时器。定时器的作 用主要就是定时,在51单片机中定时器的工作方式是以中断的方式进行的。设 定一个定时时间当定时器定时达到定时时间后,就会进入定时器中断。在中断中 可以处理相关的事件。在本设计中定时器中断的作用是用来模拟产生pwm的。由于51单片机内部 不带硬件pwm,所以需要模拟。模拟的思路是通过定时器设定时间来控制脉冲的 宽度,其控制思路如下图所示:上述流程图是定时器模拟产生pwm
34、的步骤,定时器设定的定时时间为1ms, 也就是说,定时时间到了 1ms定时器就会进入中断,在初始化时,要首先设置好 单片机的工作方式,设置单片机的工作方式为方式1,定时时间设为1ms,通过 往寄存器TH和TL中装入初始值实现计时时间的调节。定时时间到1ms时,程序 会自动进入中断。在中断服务程序中可以执行相关的任务代码。也就是说程序会 每隔1ms就会进入一次中断,就会有一个较为准确的周期性。在中断中主要进行的是按键的处理和pwm的模拟,按键的处理将在后续章 节中介绍。PWM如下图所示:tT图 4.2.1 PWM 图在上图中,可以看到pwm是一个方波。占空比是t/T,要让单片机的管脚输 出这个占
35、空比,只有通过定时器来实现。首先假设要输出的pwm频率为100hz, 也就是周期T为10ms。在上面已经提到设置单片机的定时时间为1ms,也就是每 个1ms会执行一次中断服务程序。在中断服务程序里设一个变量flag,每进一 次中断这个变量就会自增一次,那么变量自增的次数就可以用来表示时间,每加 一次就是过来1ms。利用这个时间变量就可以设置单片机输出的PWM 了。假设现 在要设置的占空比是百分之30.那么就是说整个周期中,高电平时间占整个周期 的百分之30.也就是3ms。在程序中是通过判断定时变量实现的,在第一次进入 中断时,设置单片机的一个io 口输出低电平。当第七次进入中断时,此时正好 是
36、7ms。控制这个单片机的io 口输出电平翻转,输出高电平。当第十次进入中 断的时候,此时是第10ms,控制这个io 口再次输出低电平,如此反复,就可以 模拟出占空比为百分之30的pwm 了。程序代码如下:void timer0( ) interrupt 1 定时器 0 工作方式 1TH0=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
37、(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
38、=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液晶进入显示状态。设定显示地址
39、。指令是根据12864液晶的数据手册编 写的。12864液晶的初始化流程如下:程序代码如下: * 写指令代码 * void wcode(uchar cd) 写指令代码(chkbusy();写等待P2=0xff;使能 LCDRW=0;读禁止RS=0;输出设置P2=cd;写数据代码E=1;以下两句产生下降沿E=0;)* 把显示数据写到内存单元中 *void wdata(uchar dat)(chkbusy();P2=0xff;RW=0;RS=1;P2=dat 八0xFF;E=1;E=0;写显示数据写等待使能LCD读禁止输出设置写数据代码以下两句产生下降沿*显示 LCD 程序*void disrow
40、(uchar page,uchar col,uchar *temp) (uchar i;if(col<64) /左半平面(L=1;R=0;wcode(LCDPAGE+page);/ 写指令页wcode(LCDLINE+col); 写指令行if(col+16)<64)如果字在左半平面显示不了,转到右半平面去(for(i=0;i<16;i+)wdata(*(temp+i);)else右半平面/写字for(i=0;i<64-col;i+)/减去左边数,从右半平面第一位开始显示wdata(*(temp+i); 写字显示L=0;R=1;wcode(LCDPAGE+page);wc
41、ode(LCDLINE); 写指令行for(i=64-col;i<16;i+) wdata(*(temp+i);)else(L=0;R=1;wcode(LCDPAGE+page);wcode(LCDLINE+col-64);for(i=0;i<16;i+)wdata(*(temp+i);右半平面/写指令页写字右半平面/写指令页写指令行/写字)/* 供调用 * 子程序 */ void display( int page, int col,uchar *temp)(disrow( page, col, temp); 显示上半字disrow( page+1, col, temp+16);
42、显示下半字)void disrow_ascii(uchar page,uchar col,uchar *temp) (uchar i;if(col<64) /左半平面 (L=1;R=0;wcode(LCDPAGE+page);/ 写指令页wcode(LCDLINE+col);写指令行if(col+8)<64)如果字在左半平面显示不了,转到右半平面去(for(i=0;i<8;i+) 写字 wdata(*(temp+i);)else右半平面(for(i=0;i<64-col;i+)减去左边数,从右半平面第一位开始显示wdata(*(temp+i); 写字显示L=0;R=1;
43、右半平面wcode(LCDPAGE+page);/ 写指令页wcode(LCDLINE);写指令行for(i=64-col;i<8;i+)写字右半平面wdata(*(temp+i);) else (L=0;R=1;wcode(LCDPAGE+page);/ 写指令页wcode(LCDLINE+col-64); 写指令行 for(i=0;i<8;i+)写字wdata(*(temp+i); )void display_ascII( int page, int col,uchar *temp) (disrow_ascii( page, col, temp); /显示上半字disrow_a
44、scii( 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 按键检测程序按键检测程序是整个系统中人机交模块的重要组成部分。按键起着输入参数 的作
45、用。按键检测的原理是扫描法。当按键被按下时,按键连接着单片机的IO 口就会被拉到地,此时,单片机io电平就会由高电平变成低电平。程序就是扫 描这个电平的变化来检测按键的状态的。一旦检测到某个引脚被拉低,就会进行 相应的按键处理。在按键处理过程中需要有一些问题需要注意。其中最重要的就 是按键的消抖问题。按键的消抖是按键处理过程中不可避免的一环,按键的抖动,就是按键在按下 过程中,按键的触点之间的接触并不是理想的直接接触的,而是有一个抖动的过 程。在松开按键的过程中,也会有一个抖动的过程,具体如下图所示:在上图中,理想的按键检测波形,是一个没有任何毛刺的波形,按键一按下 就会接触,一松开就会立马分
46、离。但是在实际中,按键是由机械结构制作的,都 会有一定的弹性。所以触点在分合时都会有图中的抖动现象。根据一般经验,人 手按下按键的时间大约在20ms。按下时的抖动时间大约在5ms,松手时抖动也是 5ms。如果不消除这段抖动,那么程序就会检测到按键按下了多次。实际上并没 有按下多次,只是按下了一次。按键的消抖方法主要由硬件法和软件法两种。硬件消抖的方法主要是用滤波电路 实现。在本设计中使用的是软甲消抖的方法。软件消抖使用的是延时的策略,由 于按键按下时,抖动的时间只有5ms,只要能够在这段时间内不检测按键的状态, 只在按键稳定接触的那段时间内检测,就可以消除抖动的影响。所以只要检测到 按键按下,
47、就立马进行延时,延时时间为5ms。再检测按键的状态,就可以保证 检测到的是稳定的状态。在检测到按键按下时,需要等待按键松手,此就使用 while函数来实现,当按键的端口一直是低电平时,就一直循环,等待松手,松 手时按键是从低电平跳变到高电平。然后执行相关按键的处理任务。由于在松手 时,按键也会有一个抖动,如果不对这个按键抖动进行处理,那程序也会多次检 测到按键按下。这个时刻的按键处理也是使用延时的方法实现的。按键检测的流 程图如下:检测到按键按下延时5ms#*等待松手时间处理,*延时5ms.按键控制程序如下:if (key_up=1)(if(X!=15)判断是否计数到9999(X=X+1;加一
48、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 电机
49、速度控制策略由于要使电机能够稳定的在3m/s的状态下运行,所以需要对电机的运行状态进 行测速。电机的测速是通过测量电机的脉冲数进行的。电机采用的是光耦测速。 每转一圈光耦输出两个脉冲数。在设计中采用的电机是传送带传输的方式,电机 主动传动飞轮采用的是直径为20cm的圆盘。要想保证机械手每秒运行3m,即相 当于电机每秒要转4.77圈。也就是电机每秒输出的脉冲数至少要有9.55个脉冲。 由于不存在9.55个脉冲数的情况,所以要求电机测速机构每秒中要输出10个脉 冲。所以程序里需要对电机的速度进控制。电机各传动机构速度之间的对应关系 如下表:电机输出脉冲数(HZ)电机转速(R/S)机械手移动速度(M
50、/S)210.628表1电机各传动机构速度之间的对应关系表在上表中可以发现电机每秒输出1个脉冲,机械手移动速度是0.314m/s。要想机械手移动速度在3m/s以上,就需要电机每秒输出10个脉冲数以上。所以在程序中要实时监控电机的 转速。由于所采用的51单片机内部没有输入捕获模块,需要通过软件来计算输 入的脉冲频率。脉冲频率的获取方法是依靠定时器和单片机的外部中断实现的,51单片机 的外部中断引脚只要输入一个跳变的波形,就会触发一个中断。触发中断后会进 入中断服务函数,在中断服务函数里开启定时器,连续计数到10个脉冲,说明 电机转了 5圈,记到第五圈时就停止定时器定时。此时将10个脉冲除以这段时
51、 间内的时间就是频率。因为电机转一圈输出的是两个脉冲。所以再将这个频率除 以2就是得到了电机的转速。检测到电机的实时速度后,需要换算成机械手的移动速度,在上标中,已经 提到了电机转速和机械手移动速度之间的关系根据表格的关系,至少要保证电机 每秒输出的脉冲数在10个以上。当检测到电机转速低于是个脉冲每秒的时候, 就增大占空比,提高电机转速。速度控制的流程图如下:本次使用的是8253外部定时器驱动8255驱动,首先进行外部定时器初始化, init8253();(A 1=1; 写状态字A 0=1;P0=0XB4; 设定计数器2工作方式2A 1=1;A 0=0;P0=0X FF; 装载计数器2初值P0
52、=0X FF;A 0=1;A 1=1;P0=0X30; 设定计数器0工作方式0A 1=0;A 0=0;P0=0XFF; 装载计数器0初值P0=0XFF;)主程序中调用8253进行初始化。下面是电机驱动程序:if(p10=0)(delay(10);延时消抖,按键消抖 51if(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 ");后退)i
53、f(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,“停止 )4.4机械爪控制程序);左边右边运动););机械爪是用来控制抓取物体的一个机构,机械爪是由继电器和电磁阀机构以 及机械传动机构构成的一个几
54、点结合的设备。控制机械爪的抓取和放开主要是控 制电磁阀的吸合和关闭的。电磁阀和是由继电器驱动的。继电器模块由于采用的 是三极管驱动,三极管只要基极给一个低电平,三极管就会导通,继电器就会吸 合。否则继电器断开,所以要控制继电器吸合只需要给三极管的基极一个电平就 可以。三极管的基极接到的是单片机的引脚,所以只需要控制引脚输出低电平就 可以控制继电器吸合,反之,如果要继电器断开,只需要控制这个引脚输出高电 平就可以控制继电器断开。继电器的吸合与断开控制的又是电磁阀的吸合与断开。 所以控制电磁阀吸合还是断开只需要控制单片机io 口输出高电平还是低电平即 可。控制程序代码如下:while(1)(If(zhua) Dianci=0; Else If(fang) Dianci=1; )4.5锁存器74LS573 控制程序由于单片机端口的资源有限,为了能够驱动更多的外设,使用了锁存器 74LS573来扩展io 口,锁存器具有数据锁存的作用,当器件的输入端信号消失 时输入的的信号还会保存,扩展IO 口时,只需要将需要送入端口的数据送入锁 存器,然后将选通对应的锁存器就可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工居间协议合同范例
- 时代创 合同范例
- 油漆喷涂售后服务合同范例
- 工装定金合同范例
- 钻石委托加工合同范例
- 深圳商业预售合同范例
- 机箱加工订单合同范例
- 陕西交通职业技术学院《资源生物学》2023-2024学年第一学期期末试卷
- 施工维修维护合同范例
- 陕西机电职业技术学院《实验动物解剖学》2023-2024学年第一学期期末试卷
- 最新标点符号用法
- 特困人员生活自理能力评估表
- 预拌混凝土企业质量管理体系·程序文件
- 外国人换发或补发永久居留证件申请表样本
- 塔吊安装旁站监理记录表(示范稿)
- GCC认证对整车的一般要求
- OBD-II标准故障代码表
- 施工现场类安全隐患排查清单表
- 采购项目组织履约、验收方案、程序、办法
- 送货单(三联针式打印)
- pdca循环在护理教学中的应用学习教案
评论
0/150
提交评论