首页 瓶盖冲床数控系统的设计(全文)

瓶盖冲床数控系统的设计(全文)

举报
开通vip

瓶盖冲床数控系统的设计(全文)瓶盖冲床数控系统的设计(全文) 密级:内部 瓶盖冲床数控系统 Closures CNC Punch system design 学 院:信息科学与工程学院 专 业/班 级:测控技术与仪器0302班 学 号:0304022 学 生 姓 名:吴 琦 指 导 教 师:高松巍 ,副教授, 2007年6月 毕业设计,论文,指导教师审阅意见 题目:瓶盖冲床数控系统 评语: 指导教师: 毕业设计,论文,评阅教师审阅意见 题目:瓶盖冲床数控系统的设计 评语: 评阅教师: 毕业设计(论文)答辩成绩...

瓶盖冲床数控系统的设计(全文)
瓶盖冲床数控系统的设计(全文) 密级:内部 瓶盖冲床数控系统 Closures CNC Punch system design 学 院:信息科学与工程学院 专 业/班 级:测控技术与仪器0302班 学 号:0304022 学 生 姓 名:吴 琦 指 导 教 师:高松巍 ,副教授, 2007年6月 毕业设计, 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 ,指导教师审阅意见 题目:瓶盖冲床数控系统 评语: 指导教师: 毕业设计,论文,评阅教师审阅意见 题目:瓶盖冲床数控系统的设计 评语: 评阅教师: 毕业设计(论文)答辩成绩评定 专业毕业设计(论文)第 答辩委员会于 年 月 日审定了 班级 学生的毕 业设计(论文)。 设计(论文)题目: 设计(论文)说明书共 页,设计图纸 张。 毕业设计(论文)答辩委员会意见: 成绩: 专业毕业设计(论文)答辩委员会 主任委员 : 摘 要 本文通过对一个瓶盖冲床数控系统的设计学习,详细介绍了52系列单片机应用中的数据转换显示,动态扫描显示原理,单片机的定时中断原理、基于I2C总线的串行E2PROM AT24CXX系列的掉电保护存储器以及以SPI为基础的总线扩展接口键盘显示芯片HD7579从而达到学习,了解单片机相关指令在各方面的应用。本文主要以步进电机的控制和驱动为主,通过对冲床工作过程及其结构工艺的了解,在此基础上设计一种以AT89S52单片机为核心的,由键盘显示电路、复位电路、步进电机驱动器L298和L297等模块组成的比较实用的数控系统。系统由AT89S52、LED 数码管(共阴极)、按钮按键、发光二极管, 掉电保护存储器,键盘显示接口扩展芯片,步进电机专用控制器,驱动器等部件构成。能实现电机的加减速,正反转功能,配合键盘显示人机对话设备可以实现对冲床的人为控制,通过参数设定使其完成冲压瓶盖这一预期功能。 在本设计中使用的按键数目比较多,所以采用键盘显示专用芯片来实现键盘显示功能。系统的功能实现是由X轴,Y轴步数和步距功能键,点动,前,后,左,右,调节位置功能键以及运行,停止,清零,确定,取消功能键,0,9数字键控制来完成。其中,清零键,确定键,取消键为系统给定值输入辅助功能键,通过对输入值的清零,确认和取消,可以正确的完成系统给定值的输入。编辑键,X轴,Y轴步数键,步距功能键是系统设定参数的设定按键,结合数字0,9按键的输入就是对系统给定值的设定,系统将按照设定参数来确定给定物料的瓶盖冲压个数,并通过运行键,停止功能键来完成系统的运行和停止。当按编辑键,系统进入调整状态,准备输入给定值,当分别按X轴步数,步距功能键,Y轴步数,步距功能键,就可以输入相应的数值来完成系统给定值的预设,此时再按确定键或者取消功能键就能最后完成系统给定值的输入。当系统给定值设定完毕就可以按运行键来运行程序开始冲压瓶盖,物料的行进过程由单片机控制步进电机来完成,冲压执行机构的控制由单片机控制的继电器配合光电传感器来完成,当遇到特殊情况需要停止冲床工作时,可以按停止键来实现。在运行冲床冲压程序后,LED会显示冲压瓶盖的个数以便人为控制生产的数量。文章后附有电路原理图、程序清单等。 关键词:单片机;步进电机; L298; HD7579A I Abstract The adoption will be used to achieve a Closures CNC Punch system design study, a detailed account of the 52 series Single-Chip Microcomputer applications that the data conversion, digital LED control that theory, dynamic scan showed principles Single-Chip Microcomputer Regularly interrupted Principle, Regularly based on the I2C bus serial E2PROM AT24CXX series of stored data retention storage devices and to SPI-based expansion bus interface chip HD7579 keyboard and display so as to achieve learning,understanding of the relevant directive in the application of the Single-Chip Microcomputer,This paper mainly to the stepper motor control and drive mainly to punch through the process and structure of the understanding, On this basis AT89S52 to design a microcontroller as the core, from the keyboard display circuit, reset circuit, Stepper motor drives L298 and L297 modules consisting of a practical NC system.By AT89S52 system, LED digital control (a total of cathode), button buttons, LEDs, power-off protection, memory, keyboard and display interface chip expansion, dedicated stepper motor controller drives, and other components constitute. Motor can achieve acceleration and deceleration, rotating direction function, with keyboard and display equipment man-machine dialogue can be achieved right punch artificial control, parameters set by stamping it completed the closure is expected to function.By AT89S52 system, LED digital control (a total of cathode), button buttons, LEDs, power-off protection, memory, keyboard and display interface chip expansion, dedicated stepper motor controller drives, and other components constitute. Motor can achieve acceleration and deceleration, rotating direction function, with keyboard and display equipment man-machine dialogue can be achieved right punch artificial control, parameters set by stamping it completed the closure is expected to function. In the design the number of keys used more so the use of keyboard and display ASIC to achieve keyboard display function. The function of the system is realized by the X-axis, Y-axis and a few steps further from the function keys, to move, before and after, right and left, Position adjustment function keys and run, stop, reset, identification, the abolition of function keys, 0 ~ 9 figures to complete key control. Among them, reset button, identified key canceled Key to the system for setting the importation of auxiliary function keys. Based on the input values, reset, confirmation and cancellation, and can accurately complete the system to set the value of the II importation. Editing keys, X-axis, Y-axis steps key step function key is the system configuration parameters set button. Combined Digital 0 ~ 9 button input to the system is to set the value creation, System parameters will be set to determine the given materials cap the number of stamping,And by running key stop function keys to complete the operation and stop. When pressed edit button adjustment of the state system, will be imported to a fixed value, respectively, when the X-axis according to the steps function keys, Y axis step function keys, they can import the corresponding numerical system to accomplish a given value of the default, At this point then set bond or cancel function keys can be finalized system to set the value of the importation. Operation Punch stamping processes, the LED will indicate the number of stamping closure to the artificial control of the production volume. The article, accompanied by circuit theory maps, a list of procedures. Key words: Single-Chip Microcomputer;Step motor;L298;HD7279A III 目 录 摘 要 ....................................................................................................................... I ABSTRACT ............................................................................................................. II 第1章 绪论 ........................................................................................................ - 1 - 1.1数控机床的发展现状及趋势 1.1.1数控机床简介 ....................................................................................... - 1 - 1.1.2数控冲床是数控机床的一种 ................................................................ - 1 - 1.1.3数控系统组成 ....................................................................................... - 1 - 1.2冲床数控系统设计的意义……………………………………………………… 2 1.3瓶盖冲床数控系统的设计………………………………………………………. 3 1.3.1瓶盖冲床数控系统设计目的 ................................................................ - 3 - 1.3.2瓶盖冲床数控设计的原则 .................................................................... - 3 - 1.3.3瓶盖冲床数控系统的总体设计 ............................................................ - 3 - 1.3.4瓶盖冲床数控系统设计任务及要求 .................................................... - 4 - 第2章 步进电机的应用及冲床数控系统设计概述 ........................................... - 5 - 2.1步进电机简介及其应用 .............................................................................. - 5 - 2.1.1步进电机的发展 ................................................................................... - 5 - 2.1.2步进电机的原理 ................................................................................... - 5 - 2.1.3步进电机的分类和选用 ........................................................................ - 5 - 2.2 冲床数控系统设计概述 ............................................................................ - 6 - 2.3 本章小结 .................................................................................................... - 7 - 第3章 瓶盖冲床数控系统的设计方法 .............................................................. - 8 - 3.1 冲床数控系统功能概述 ............................................................................. - 8 - IV 3.2 系统硬件结构 ............................................................................................. - 9 - 3.3 系统软件结构 ............................................................................................. - 9 - 3.3.1 指纹识别模块软件结构 ....................................................................... - 9 - 3.3.2 单片机软件结构 .................................................................................. - 9 - 3.4 本章小结 .................................................................................................. - 14 - 第4章 瓶盖冲床数控系统的硬件设计 ............................................................ - 15 - 4.1 主要器件的选择 ....................................................................................... - 15 - 4.1.1单片机的选择 ..................................................................................... - 15 - 4.1.2键盘显示接口芯片的选择 .................................................................. - 19 - 4.1.2其他芯片的选择 ................................................................................. - 20 - 4.2硬件电路结构组成分析 ............................................................................ - 27 - 4.2.1键盘显示电路 ..................................................................................... - 27 - 4.2.2复位电路 ............................................................................................. - 29 - 4.2.3时钟电路 ............................................................................................. - 30 - 4.2.4串行下载接口电路 ............................................................................. - 31 - 4.2.5继电器连接电路 ................................................................................. - 32 - 4.2.6传感器接口电路 ................................................................................. - 33 - 4.2.7步进电机控制驱动电路 ...................................................................... - 33 - 4.2.8冲压模具的选择 ................................................................................. - 37 - 第5章 瓶盖冲床数控系统的软件设计 ............................................................ - 38 - 5.1瓶盖冲床数控系统软件框图 .................................................................... - 38 - 5.2键盘显示电路软件设计 ............................................................................ - 39 - 5.2.1 HD7279A初始化................................................................................ - 39 - 5.2.2AT24C01初始化.................................................................................. - 42 - 5.3步进电机驱动和控制功能的实现与中断服务程序.................................. - 42 - 5.3.1步进电机相关参数的确定 .................................................................. - 42 - 5.3.2步进电机的加减速 ............................................................................. - 43 - 5.3.3功能键完成参数设定及功能执行 ...................................................... - 44 - V 5.3.4中断服务程序 ..................................................................................... - 45 - 5.4 单片机软件设计 ....................................................................................... - 46 - 5.4.1单片机C51源程序 ............................................................................. - 46 - 5.4.2 HD7279A初始化程序 ........................................................................ - 46 - 5.4.3 AT24C01初始化程序 ......................................................................... - 47 - 5.4.3 步进电机正反转及其加减速程序 ..................................................... - 49 - 5.4.4 定时器调整中断及软件延时 ............................................................. - 51 - 第6章 结论 ...................................................................................................... - 53 - 参考文献 ............................................................................................................ - 54 - 致 谢 ................................................................................................................ - 55 - 附 录 ................................................................................................................ - 56 - 附1:系统硬件电路原理图 ........................................................................... - 56 - 附2:软件程序清单 ...................................................................................... - 57 - VI 沈阳工业大学本科生毕业设计(论文) 第1章 绪论 1.1数控机床的发展现状及趋势 1.1.1数控机床简介 数控机床是数字控制机床的简称,是一种装有程序控制系统的自动化机床。该控制系统能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,从而使机床动作并加工零件。 给机床装上数控系统后,机床就成了数控机床。当然,普通机床发展到数控机床不只是加装系统这么简单,例如:从铣床发展到加工中心,机床结构发生变化,最主要的是加了刀库,大幅度提高了精度。加工中心最主要的功能是铣、镗、钻的功能。 [1]我们一般所说的数控设备,主要是指数控车床和加工中心。 1.1.2数控冲床是数控机床的一种 数控冲床是深喉颈普通冲床与数控送料机相结合的高新技术产品,电脑自动编程,CAD设计,采用新型专用冲模, 能加工长2500×宽1250×厚8以内规格的铁板、不锈钢板、铝板等。可冲:圆孔、椭圆孔、长腰孔、长方孔、多边孔、菱型孔、星型孔、十花孔、梅花孔、百叶孔、浅拉伸孔等多种孔形。布孔精度??0.15mm,布孔形式90度×60度×45度。 1.1.3数控系统组成 由显示器、控制器伺服、伺服电机、和各种开关、传感器构成。目前世界最大的三家厂商是:日本发那客、德国西门子、日本三菱;其余还有法国扭姆、西班牙凡高等。国内由华中数控、航天数控等。国内的数控系统刚刚开始产业化、水平质量一般。高档次的系统全都是进口。 随着计算机技术日新月异的发展,基于微机的数控是数控技术发展的必然趋势。所以在现阶段能在已有资源的基础上对老式机床的数控系统改造成为了 - 1 - 沈阳工业大学本科生毕业设计(论文) 切实可行的一大出路。我这次设计的基于单片机的冲床系统就是对老式冲床改造的一种尝试。 1.2冲床数控系统设计的意义 冲床数控系统是装备工业的一种,其技术水平和现代化程度决定着整个国民经济的水平和现代化程度,数控技术及装备是发展新兴高新技术产业和尖端工业的使能技术和最基本的装备。数控技术又是当今先进制造技术和装备最核心的技术。因此,专家们预言: 机械制造的竞争,其实质是数控技术的竞争。 数控技术是用数字信息对机械运动和工作过程进行控制的技术;是制造业实现自动化、柔性化、集成化生产的基础;是提高产品质量、提高劳动生产率必不可少的物质手段;是国防现代化的重要战略物质;是关系到国家战略地位和体现国家综合国力水平的重要基础性产业。当今世界各国制造业广泛采用数控技术,以提高制造能力和水平,提高对动态多变市场的适应能力和竞争能力。大力发展以数控技术为核心的先进制造技术已成为世界各发达国家加速经济发展、提高综合国力和国家地位的重要途径。此外世界上各工业发达国家还将数控技术及数控装备列为国家的战略物资,不仅采取重大措施来发展自己的数控技术及其产业,而且在“高精尖”数控关键技术和装备方面对我国实行封锁和限制政策。 根据国民经济发展和国家重点建设工程的具体需求,设计制造“高、精、尖”重大数控装备,打破国外封锁,掌握数控装备关键技术,创出中国数控机床品牌,提高市场占有率是全面提升我国基础制造装备的核心竞争力的关键所在。可见技术在不断进步,纯机械式冲床已经被淘汰,取而代之的是具有高度准确性和直观性且与机械装置有机结合的,具有更高控制精度的等优点的数控冲床。数控冲床更具人性化,更能提高工业的生产品质,更受生产厂家的欢迎[1][2]。 无可否认机械时代已经过去,电子时代已经到来。作为新时代的我们,更应该提高自身能力,适应新时代的发展。知识来自实践,多去生活中探询所需要的。对于上述所提到的研究课题,我们应尽量考虑到人的因素,增强数控系统的实用性和操作性,为使用者提供切实的方便。所以,在设计的时候,应该从多方面、多角度去考虑问题,而且应该进一步提高数控系统的质量。 - 2 - 沈阳工业大学本科生毕业设计(论文) 1.3瓶盖冲床数控系统的设计 1.3.1瓶盖冲床数控系统设计目的 瓶盖数控冲床是实现生产和工作中最常见的一种数字机械装备,其控制核心可以采用模拟电路和数字电路设计实现,但是成本较高且电路会非常复杂。也可以采用PLC配合专用驱动器来实现,但是我们无法学习到对应用系统的分析和解决工程问题的能力。这里我是用单片机来设计一个瓶盖冲床数空系统,并通过该系统的设计使自己掌握单片机应用系统的硬件设计、软件设计、系统综合调试等知识。 1.3.2瓶盖冲床数控设计的原则 (1)性原则:要力求最大限度地满足实际工作的需要,充分考虑硬件实现与软件性能实现的实用性,把瓶盖冲床数控系统的基本冲压及步进电机驱动控制功能实现作为首要实现的目标来进行考虑。尽可能做到硬件电路设计美观大方,操作简便又不失实用性。 (2)可扩展性与可维护性原则:为适应现在瓶盖冲床数控系统的发展与需要,瓶盖冲床数控系统要可扩展性和可维护性。软件设计尽可能模块化、组件化,使应用系统可灵活配置,适应不同的情况。硬件电路的设计尽可能考虑到现在的需要及将来的发展趋势。 (3)安全可靠性原则:软件的设计要做到安全可靠,防止系统的性能不 [1][3]稳定。软件设计的恰当可以让硬件电路的实现简单稳定,更加的便捷与完美。 1.3.3瓶盖冲床数控系统的总体设计 本文则主要从单片机AT89S52入手来设计一种瓶盖冲床数控系统。因为单片机便宜耐用、性能可靠,因而由单片机实现的瓶盖冲床数控系统有着简单实用、价格低廉的优点,比较适合于日常生产中的使用。如果对系统再稍加修饰还可作为一种通用多功能的高精度控制冲床,配合多功能模具可以实现多样化生产,提高设备的通用性。 本文通过用对一个能实现瓶盖冲压,动态显示,智能驱动,人为输入的瓶盖冲床数控系统的设计学习,详细介绍了52系列单片机应用中的数据转换显示,数码管显示原理,SPI总线扩展接口,I2C总线扩展,步进电机的控制及其驱动, - 3 - 沈阳工业大学本科生毕业设计(论文) 单片机的定时中断原理、从而达到学习目的,了解单片机相关指令在各方面的应用。系统由AT89S52、LED 数码管(共阴极)、按钮按键、发光二极管,步进电机及其专用驱动芯片等部分构成。能实现瓶盖冲床数控系统的基本功能,能进行数码管的动态显示。也具有人工输入控制,比对校正工件位置,实现自动控制和人为干涉等功能。文章后附有电路原理图、程序清单,输入输出口对应 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 。 (1)瓶盖冲床数控系统总框图。 (2)系统各个模块的设计。 (3)相关的硬件电路设计与实现。 (4)相关的软件设计、程序流程图与其实现。 1.3.4瓶盖冲床数控系统设计任务及要求 (1)了解瓶盖冲床的工作过程; (2)实现功能:控制二轴步进电机,按要求控制冲床,冲压瓶盖。 (3)完成单片机的步进电机控制电路、驱动电路、现使操作电路的设计,显示方式LED; (4)完成电路设计、PCB设计、部分程序设计。 - 4 - 沈阳工业大学本科生毕业设计(论文) 第2章 步进电机的应用及冲床数控系统设计概述 2.1步进电机简介及其应用 2.1.1步进电机的发展 步进电机 又称为脉冲电动机或阶越电动机,国外一般称为STEP MOTOR或者STEPPING MOTOR,PULSE MOTOR,STEPPER SERBO,SPEPPER。目前,随着电子技术,控制技术和电动机本体的发展和变化,传统的电机分类间的界限越来越模糊。这是机电一体化的必然趋势。就传统的步进电机来说,步进电机可以简单的定义为,根据输入的脉冲信号,每改变一次励磁状态就前进一定角度,若不改变励磁状态则保持一定的位置而静止的电动机。从广义上讲,步进电机是一种受电脉冲信号控制的无刷式直流电机,也可以看作是在一定频率范围转速 [7]与控制脉冲频率相同的同步电机。 2.1.2步进电机的原理 步进电机的机理是基于最基本的电磁铁作用,其原始模型起源于1830年至1860年间。1870年前后开始以控制为目的尝试,应用于氩弧灯的电机输送机构 。这被认为是最初的步进电机。此后,在电话自动交换机中广泛使用了步进电机。不久在缺乏交流电源的船舶和飞机等独力系统中广泛使用。 20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生,而半导体技术的发展则推动了步进电机在众多领域的应用。在近30年间,步进电机迅速地发展并成熟起来。从发展的趋势来讲,步进 [6][8]电机已经能够于直流电机,异步电机,以及同步电机并列。 2.1.3步进电机的分类和选用 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。 - 5 - 沈阳工业大学本科生毕业设计(论文) 步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。 (1)控制换相顺序 :通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-C,D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。 (2)控制步进电机的转向 :如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。 (3)控制步进电机的速度 :如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。 考虑到本次设计所使用的负载不是很大,所以所采用的是2相反应式步进电机。 2.2 冲床数控系统设计概述 数控冲床作为一种高精度的自动化机床,综合应用了电子、计算机、自动控制和机床制造等领域的先进技术,在机械制造业中发挥着巨大的作用,它很好地解决了现代机械制造中结构复杂、精密、批量小、多变零件的加工问题,且能稳定产品的加工质量,大幅度地提高生产率。实际意义上的数控系统设计多可以理解为数控改造,数控改造一般是指对普通冲床某些部位做一定的改造,配上数控装置,从而使冲床具有数控加工能力,其目的是为了提高老设备的加工精度和生产效率,适应多品种和小批量零件的生产,同时可以使技术等级较低的工人也能加工出高质量的零件,减少设备技术改造的投资等等。所有这些都是为了提高机床的价格性能比,即用较少的钱得到较高的机械性能和加工能力。因此,把普通冲床改造为数控机床是一条提高数控化率的有效途径。 一般来说,对现有普通冲床进行数控改造的具体做法是,主传动系统一般不作变动,进给传动系统中采用高精度的滚珠丝杠替换进给轴原有的普通丝杠。机械部分改造完成后,配上MCS - 52 单片机作为数控系统,用步进电机作驱动元件,经过一级减速齿轮驱动X、Y轴的运动。 设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 中应主要考虑系统控制部分的设计如:控制核心的选用,步进电机的驱动和控制方法,人机接口的设计,以及相关电路和器件的选用等等。 本文所涉及的数控系统设计主要侧重于冲床智能化运作的改造,而机械部分的改造本文并未涉及。 - 6 - 沈阳工业大学本科生毕业设计(论文) 2.3 本章小结 本章对步进电机的应用及冲床数控系统设计进行了介绍,进一步明确了本毕业设计的主要目的,即完成冲床数控系统设计的设计、开发,以解决现有冲床可靠性较差,工作质量低、占用人力资源大、不能智能化工作、工作方式单一的不足。冲床实物较大,工作环境和装置复杂,设计中并未到实际场所中剖析实物冲床结构,所以于实际应用有一定差距。如何驱动和控制步进电机、进行冲压瓶盖、人工如何于数控系统通信是本论文的研究重点。 - 7 - 沈阳工业大学本科生毕业设计(论文) 第3章 瓶盖冲床数控系统的设计方法 3.1 冲床数控系统功能概述 数控冲床作为一种高精度的自动化机床,综合应用了电子、计算机、自动控制和机床制造等领域的先进技术,在我国工业生产中起着极其巨大的作用,它很好地解决了现代机械制造中加工对象精密、结构复杂、品种多、批量小等问题。且产品加工质量稳定,生产效率大幅度提高。考虑到我国国情,价格昂贵的中、高精度的全功能数控机床难以被广大生产企业所接受,而价格相对低廉的经济型数控系统得到了迅速地发展。经济型数控系统采用了适合于现场实时控制和数据采集的单片机作为控制器,以控制灵活、可靠性高的步进电机进行驱动。与传统的中、高精度全功能数控系统相比,经济型数控系统具有结构简单、工作性能稳定、性能价格比较高等特点。特别是在对现有普通机床进行数控改造方面,MCS —51 系列单片机体现了无穷的魅力。 数控冲床主要用来完成批量冲压规定形状的物料的任务,其功能随冲床的生产要求和造价而不尽相同,但通用的功能机构基本一致,主要包括以下几部分: (1)冲压执行机构:一般采用长颈深喉冲头,通过交流电机配合减速装置完成冲压动作。 (2)伺服控制机构:采用开环控制,用单片机来实现对步进电机的X,Y轴向运动控制, (3)传感器检测机构:为了协调冲头冲压动作和步进电机的进给动作,防止动作失调。一般选用光电传感器检测冲头状态,检测信号通过单片机发出信号协调步进电机的动作。 (4)强电控制机构:由于伺服控制机构为弱点控制,而冲压执行机构为强电动作机构,所以需要用继电器来实现弱点控制强电动作。继电器配合电流放大电路,通过继电器开关的吸合与断开达到控制冲头动作的目的。 (5)人机对话机构:一般采用典型的键盘显示电路,根据工作要求和系统功能的不同其具体配置也不尽相同。通过键盘输入对冲床进行功能操作,需要显示的参数通过显示器显示。 - 8 - 沈阳工业大学本科生毕业设计(论文) 3.2 系统硬件结构 根据上述功能要求,本次设计系统的硬件部分主要包冲压执行机构、单片机、键盘及显示器件、伺服控制机构,继电器,光电传感器等。伺服控制机构主要完成步进电机的驱动、控制等操作,单片机作为系统的核心,控制整个系统,对各个部分发出指令和控制。 [3]本次设计瓶盖冲床数控系统的硬件结构如图3-1所示。 3.3 系统软件结构 3.3.1 指纹识别模块软件结构 瓶盖冲床数控系统的功能主要有步进电机X,Y轴轴向运动控制、电机的驱动、电机的加减速控制;键盘、显示控制;继电器和传感器信号的接受和控制,中断模块控制整个系统的实时过程,步进电机X,Y轴轴向运动流程如图3-2所示,电机的加减速控制流程如图3-3所示。定时中断程序框图如图3-4,按操作流程或系统职能,步进电机的驱动和控制软件主要由以下几部分构成: (1)电机的驱动。 (2)电机的加减速控制。 (3)X,Y轴,轴向运动控制。 3.3.2 单片机软件结构 根据系统功能要求,单片机软件主要由以下几部分构成: 单片机与外接存储器的通讯程序:主要负责单片机与指纹识别模块之间数据和命令的传输。根据他们之间的 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,设计编写他们之间的通讯程序。主要 2是单片机用软件语言来模拟IC总线通信规程。 单片机与IC卡的通讯程序:主要模拟确认信号、起始位、停止位,写操作,读操作等通讯规程。 - 9 - 沈阳工业大学本科生毕业设计(论文) 电 8LED显示 交流电 磁 机 铁 HD727 5×5键盘 9键盘 显示 传感器 冲头 AT24C01存储器 AT89S52 单 光偶 片 L297×L298×2相步TL521-4 2 2 X2 进电机 机 继电器 图3-1瓶盖冲床数控系统硬件系统总框图 - 10 - 沈阳工业大学本科生毕业设计(论文) 开始 冲头回应 显示刷新 步长,0 加减速控制 加工完, 点动 点动运行 置回位标志 步数,0 冲头不工作置 相应标志 正向 判断当前 判断当前位置执行位置正向 反向操作 操作 返回 步进电机X轴软件流程图 图3-2 Y轴软件流程图与上图类似故不赘述。 - 11 - 沈阳工业大学本科生毕业设计(论文) 开始 加速判断 加速运动 匀速运动置不加 速标志 减速判断, 减速运动 置减速标志 脉冲频率控制程序 返回 图3-3加减速子程序 - 12 - 沈阳工业大学本科生毕业设计(论文) 开始 关中断 保护现场 回位 Y回位 X步进 X向运动模块 X回位 Y步进 Y回位子程序 Y向运动模块 X回位子程序 定时器赋值向 运动模块 恢复现场 开中断 返回 图 3-4 定是中断程序流程图 - 13 - 沈阳工业大学本科生毕业设计(论文) 3.4 本章小结 本章根据具体的实际应用,设计系统主要功能,并作了描述。根据功能设计,进行了总体设计,提出了硬件的设计思路和硬件的功能框图。在硬件设计的基础上,对软件进行了设计,设计了系统职能模块。 - 14 - 沈阳工业大学本科生毕业设计(论文) 第4章 瓶盖冲床数控系统的硬件设计 4.1 主要器件的选择 根据上一章所述,瓶盖冲床数控系统的硬件部分主要包括步进电机控制驱动模块、键盘显示模块、单片机、存储器件、时钟芯片等。 4.1.1单片机的选择 AT89S52是一种低功耗,高效能带8K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。40个引脚,32个外部双向输入/输出(I/O)端口,256 bytes Rom,一个六向量两级中断结构,看门狗电路同时其内含有2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口。该器件采用ATMEL高密度非易丢失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89S52可以按照常规方法进行编程,也可以在线编程。同时,AT89S52可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止CPU的工作,但允许RAM,定时、计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下个硬件复位。AT89S52具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求[1][2]。本文用的AT89S52的封装形式是PDIP。其引脚分布情况如下图4-1所示,其主要功能特性如下。 1(主要功能特性 •与MCS-51 兼容 •8K字节可编程闪烁存储器 •寿命:1000写/擦循环 •数据保留时间:10年 •全静态工作:0Hz-24Hz •三级程序存储器锁定 •128*8位内部RAM •32个可编程双向I/O口 - 15 - 沈阳工业大学本科生毕业设计(论文) •3个16位可编程定时器/计数器 图4-1 AT89S52引脚分布图 •低功耗的闲置和掉电模式 •片内振荡器和时钟电路 • 1个可编程UARL通道 • 1个串行中断 • 两个外部中断源 • 8个中断源 •全静态操作:0HZ,24MHZ • 可直接驱动LED (AT89C2051) • 软件设置睡眠和唤醒功能 2(管脚说明 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路的双向I/O口,可以驱动8个TTL电路。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口。当FIASH进行校验时,P0口输出为原码,而此时P0外部必须 - 16 - 沈阳工业大学本科生毕业设计(论文) 被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 与AT89C51不同之处是,P1.0和P1.1还可以分别作为定时、计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表4-1。 表4-1 引脚号 功能特性 P1.0 T2(定时/计数器2外部计数脉冲输入,时钟输出) P1.1 T2EX(定时/计数2捕获/重装载触发和方向控制) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89S52的一些特殊功能口,P3口管脚的备选功能如下: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) - 17 - 沈阳工业大学本科生毕业设计(论文) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 此外,P3口还接受一些用于Flash闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。如加密位LBI被编程,复位时内部会锁存EA端状态。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3(振荡器特性 XTAL1口和XTAL2口分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。采用石晶振荡和陶瓷振荡均可。如采用外部时钟源驱动器件,XTAL2口应悬空,且可省去上拉电阻。当有信号输入至内部时钟信号要通过一个二分频触发器。因此,对外部时钟信号的脉冲宽度没有什么要求,但为便于多芯片同步工作,外接时钟方波信号的高低电平的持续时间都大于20ns。 4(芯片擦除 - 18 - 沈阳工业大学本科生毕业设计(论文) 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须先被执行。 此外,AT89S52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止[1][2]。 4.1.2键盘显示接口芯片的选择 HD7279A芯片的实物如图4-2所示,HD7279ABCD八位LED数码管 /64键键盘控制芯片外部管脚分布情况如图4-3所示。 图4-2 HD7279A实物图 图4-3 HD7279A键盘显示接口芯片 芯片HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或者64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘 - 19 - 沈阳工业大学本科生毕业设计(论文) 矩阵,单片即可完成LED显示、键盘接口的全部功能。 HD7279A内部还有译码器,可以直接接受BCD码或者16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。 HD7279具有片选信号,可以方便地实现多于8位的显示或者多于64键的键盘接口。其串行接口无须外围元件可以直接驱动LED,各位独力控制译码及消隐和闪烁属性,内嵌(循环)左移/(循环)右移指令,具有段寻址指令,方便控制独立LED,64键键盘控制器,内含去抖动电路,有DIP和SOIC两种封装形式供选择。 其引脚图如图2-3所示,1,2引脚VDD为正电源,3,5引脚NC无连接,必须悬空,4引脚VSS接地,6引脚CS为片选输入端,此引脚为低电平时,可以向芯片发送指令及读取键盘数据,7引脚CLK为同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表是数据有效,8引脚DATA为串行数据输入/输出端,当芯片接受指令时,此引脚为输入端,当读取键盘数据时,此引脚在‘读’指令最后一个时钟的下降沿变为输出端,9引脚KEY为按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平,10-16引脚SG-SA为段g-段a驱动输出,17引脚DP为小数点驱动输出,18-25引脚为数字0-数字7驱动输出,26引脚CLKO为振荡输出端,27引脚RC为RC振荡器连接端,28引脚RESET为复位端。 BCD码锁存/7段译码/驱动器,利用该器件的7段码a、b、c、d、e、f、g可直接驱动数码管LED(共阴)。根据上述的控制端功能,HD7279A在电路工作时,其1和2端并联接到电源端VDD,而4端连接VSS接地。当需要数据传输时,片选端CS为低电平,CLK和DATA为输入端接受数据,进行译码操作或直接送显示位显示;当键盘有键按下时,KEY为低电平同时DATA在键盘读指令最后一个周期的下降沿变为输出端。图1是利用HD7279A驱动共阴极数码管LED的电路原理图。电路中的二极管为数码管中七段码a-g所对应的发光二极管。 4.1.2其他芯片的选择 1(AT24C01 AT24C01是一个1K位串行 CMOS E2 PROM 内部含有128个 8 位字节 CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗。AT24C01 有一个 8 - 20 - 沈阳工业大学本科生毕业设计(论文) 字节页写缓冲器。该期间通过I2 C 总线接口进行操作 ,有一个专门的写保护功能。 其主要特性如下 与400KHz I2 C 总线兼容 1.8 到6.0伏工作电压范围 低功耗CMOS 技术 写保护功能 当WP 为高电平时进入写保护状态 页写缓冲器 自定时擦写周期 1,000,000编程/擦除周期 可保存数据100年 8脚 DIP SOIC 或 TSSOP 封装 其管脚图如图2-4 图4-4 AT24C01存储器 其管脚功能如下 A0 A1 A2 器件地址选择 SDA 串行数据/地址 SCL 串行时钟 WP 写保护 Vcc +1.8V 6.0V 工作电压 Vss 地 CAT24C01支持 I2 C 总线数据传送协议 I2 C 总线协议规定任何将数据传送到总线的器件作为发送器 ,任何从总线接收数据的器件为接收器 ,数据传送是由产生串行时钟和所有起始停止信号的主器件控制的 ,主器件和从器件都可以作为发送器或接收器 ,但由主器件控制传送数据, 发送或接收的模式通过 - 21 - 沈阳工业大学本科生毕业设计(论文) 器件地址输入端 A0 A1 和 A2 可以实现将最多 8 个AT24C01器件,连接到总线上。 2(LED显示器 简单的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段码显示器。发光二极管用于显示系统的两种状态:数码管用于显示数字;LED十六段显示器用于字符显示。下面重点介绍LED七段显示器。 LED七段显示器由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0,9,字符A,F 、H、L、P、R、U、Y等符号及小数点“.”。 (1)数码管分类 数码管分为共阳极和共阴极两种类型。 共阳极数码管中8个发光二极管的阳极(二极管正端)连在一起。通常,共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 共阴极LED数码管由8 只发光二极管VD1 至VD8 共阴极连接并按? 8?字形结构排列而成,其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字段导通并点亮。这样,根据这些二极管的正极接高低不同的电位,正极为高电位的相对应的二极管就会导通而发光,从而使数码管根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 (2)共阴极数码管结构及代码显示 共阴极LED数码管结构如图4-5示[3]。 - 22 - 沈阳工业大学本科生毕业设计(论文) 图4-5共阴极LED 数码管结构图 3(TL7705AD复位芯片 TL7705AD是单片机专用复位芯片,采用上电复位模式,其输出可分为正复 位反复位,可以同时为2片芯片提供复位而不现互干扰。 其管脚图如下: 图 4-6 TL7705A 复位芯片 SEN,RESIN与VCC并联接,5V电源,输出 为反复位,CT,REF与GND 并联接地,输出RST接正复位。 4(TLP521-4芯片简介 TLP521-4是光电耦合芯片,其主要参数如下: 输入脉冲电压最高可达:55V 电流转换率 :50, 隔离电压 :2500Vrms 管脚图如下 - 23 - 沈阳工业大学本科生毕业设计(论文) 图 4-7 TLP521-4管脚图 管脚功能如下: 1,3,5,7:阳极输入 2,4,6,8:阴极输入 9-16:耦合输出端 5(L297、L298驱动控制芯片 L297是步进电机控制器(包括环形分配器),H桥式驱动器。实际上它就是一个控制相序的部件,它的核心是一组译码器,能够产生各种所需的相序,这一部分是由两种输入模式控制,方向控制(CW/CCW)和HALF/FULL 以及步进式时钟CLOCK,它将译码从一阶梯推进至另一阶梯。译码器有四个输出点连接到输出逻辑部分,提供抑制和斩波功能所需的相序。因此L297可以产生三种不同的相序。由单片机给出的输入指令是输入时钟和方向指令,他们在脉冲分配器中经逻辑组合转换成各项通断的时序逻辑信号. 导通逻辑信号送至功率驱动级,转换成其内部功率开关的基极(或栅级)驱动信号. 功率驱动除包括功率开关及其驱动电路外,还包括一些电流反馈控制和限流、限压、过热保护等辅助电路部分。 L297主要由译码器,两个固定斩波频率的脉冲宽度调制( PulseWidth Modulation)恒流斩波器以及输出的逻辑控制组成。其主要引脚见图2。L297的核心是脉冲分配器,产生相序信号。输出A、B、C、D驱动信号分别由4、6、7、9引脚输出送入双H桥功率放大电路,经放大后驱动电机。顺时针旋转的A、B、 - 24 - 沈阳工业大学本科生毕业设计(论文) C、D信号状态如图4-8。控制电机旋转方向通过17引脚,逆时针旋转时置换RESET引脚,ABCD回到0101初始状态(HOME)。两个PWM恒流斩波器用来控制绕组电流。 并设有一个公每个斩波器由一个比较器、一个RS触发器和外接采样电阻组成,用振荡器,向两个斩波器提供触发脉冲信号。绕组相电流峰值由Vref整定,通过l5引脚接两个电阻来调节斩波器电路的参考电压。频率由外接16引脚的RC网络决定,当电机绕组相电流上升,外接采样电阻的电压上升到基准点压Vref时,比较器翻转,使触发器复位,功率晶体管关断,电流下降,等待下一个振荡脉冲的到来。这样,触发器输出的是恒频PWM信号。反馈电压来自功率放大电路由13、14引脚输入,通过所反馈的电位的大小比较来确定是否进行斩波控制,以达到控制电机绕组电流峰值,保护电机的目的。 该器件的特性是只需接受方向(正/反转) ,模式(半步/基本步距) ,时钟(步进脉冲) 3个输入信号。它产生3种相序的信号,对应于3种不同的工作方式:半步方式(四相八拍) ;基本步距,单相激励方式(单相四拍) ;基本步距,两相激励方式(两相两拍) 。脉冲分配器内部是一个3bit可逆计数器,加上一些组合逻辑,产生每周期8步格雷码时序信号,这也就是半步工作方式的时序信号。此时HALF /FULL取高电平,若取低电平,得到基本步距工作方式。在本文介绍的驱动器中,模式输入端19 引脚(半步/整步控制引脚)设为高电平,选择半步方式。其工作方式输出的波形如图4-9。引脚为同步端,它可以连到另一组L297的同步端; 5、8引脚通过与驱动信号的逻辑组合分别成为使两个双极性H桥驱动电路中晶体管导通或关断的使能信号。通过图4-9 可以看出,引脚5输出的信号波形为A, B信号相加,引脚8输出的信号波形为C,D信号相加。 图 4-8 信号状态 - 25 - 沈阳工业大学本科生毕业设计(论文) 图 4-9 输出波形 图 4-10 L297引脚图 图 4-11 L298引脚图 - 26 - 沈阳工业大学本科生毕业设计(论文) 4.2硬件电路结构组成分析 4.2.1键盘显示电路 1(显示模块的选择 方案一:采用液晶(LCD)显示器。液晶显示器功耗低、轻便防震,但其亮度不够高,对工作环境要求高,抗干扰能力差。而且其造价相对较高,为了降低成本和处于实际场所限制故不采用。 方案二:采用数码管(LED)显示。数码管体积小、亮度高、重量轻。在所要求显示内容不是太复杂的情况下易采用方案二。故本设计的显示模块部分选用数码管方案。 2(键盘显示方案论证 键盘显示作为常用的系统输入输出结构,有着多种的实现方法。 (1)在系统资源丰富,I/O口有富裕且键盘键位或者先是位数不多情况下,可以采取驱动电路直接连接单片机I/O口的方法,这样实现起来电路连接简单,可行性高,但是当系统要求较高,I/O口紧张时,这种方法连接起来会比较繁琐,且难以保证电路的可靠性。 (2)可以采用并行键盘接口芯片8279和可编程I/O接口芯片8155组合实现键盘和显示电路的连接,这也是比较经典的键盘显示电路连接方法,这样可以解决因部分I/O口紧张的问题,而且最多可接8×8键盘和8位显示器。 但处于本系统设计的实际考虑,此种并行接口方法无法满足设计要求。 (3)采用基于SPI串行总线的键盘显示接口控制芯片HD7279A来实现。此种方法可以最大限度的节省单片机的I/O口资源,只需要与单片机通过四跟连线连接就可以完成键盘先是需要的全部功能,并且最多可以接8位显示和多达64位的键盘。此种方法唯一的缺点就是因为采用循环扫描的方式,如果采用普通的数码管,亮度可能不够,所以对于数码管的要求就比较高。选用高亮度或超高亮度的数码管可以解决这个问题,数码管的尺寸也不宜选的过大,一般字符高度不宜超过一英寸,如果是用大型的数码管,应使用适当的驱动电路。 本次设计就是采用的第三种方案,通过P1口P1.3,P1.4和P3口的P3.3和P3.5与单片机连接,以此解决系统I/O口资源紧张的问题。本设计显示部分采用普通共阴极数码管显示,采用动态扫描,以减少硬件电路。 3(HD7279A键盘显示工作原理 - 27 - 沈阳工业大学本科生毕业设计(论文) (1)HD7279A采用串行方式与单片机通讯,串行数据从DATA引脚送入芯片并由CLK端同步。当片选信号变为低电平后,DATA引脚上的数据在CLK引脚的上升沿被写入HD7279A的缓冲寄存器。 (2)HD7279A通过三种指令结构来实现键盘和数据的显示:一种是不带数据的纯指令,指令的宽度为8个BIT即单片机发送8个CLK脉冲;一种是带有数据结构的指令,宽度为16BIT,即单片机需要发送16个CLK脉冲;另一种是读取键盘数据指令,宽度为16个BIT,前8个为单片机发送到HD7279A的指令,后8个BIT为HD7279A返回的键盘代码。执行此指令时,HD7279A的DATA端在第9个CLK脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接受下一个指令。 串行接口时序如下图: 图4-12 纯指令 图4-13 带数据指令 - 28 - 沈阳工业大学本科生毕业设计(论文) 图4-14 读键盘指令 4.2.2复位电路 单片机复位电路是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。单片机复位的条件是:使RST/RST引脚 加上持续两个机器周期(即24个振荡周期)的高电平。单片机常见的复位电路有上电复位电路和按键复位电路两种如图3-1所示。 图4-15 单片机常见两种复位电路 左边的为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。 右边的为按键复位电路。该电路除了具有上电复位电路功能,还可以使用中复位,只要按下图中的RESET键,此时电源Vcc经电阻R1 、R2分压,在RESET端产生一个复位高电平。 单片机复位期间不产生ALE和PSEN信号,即ALE=1,这表明单片机复位不 - 29 - 沈阳工业大学本科生毕业设计(论文) 会有任何取址操作。 2在本设计中由于采用了基于IC总线的AT24C01存储器等多方面因素的考虑,采用上电复位电路方式[4]。 本次设计采用了有复位芯片为核心的复位电路,其连接电路如下: VCC1 U6 78SENVCC 21R20RESINREF 472 35/RST CTRST46RSTGNDRSTC13 TL7705ADC14R22 103103 10uF/50V 图4-16 复位电路 4.2.3时钟电路 在单片机内部有一个高增溢反相放大器,用于构成振荡器,但要形成时钟,外部还需要附加电路。AT89S52的时钟产生方法有下图两种方式: 图4-17 AT89S52的两种时钟电路 1(内部时钟方式 - 30 - 沈阳工业大学本科生毕业设计(论文) 利用芯片内部的振荡器,然后在引脚XTAL1和引脚 XTAL2两端接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部的时钟电路,如图3—2外接晶振时,C1和C2的值通常选择约30pF左右;外接陶瓷谐振器时C1和C2的经典值为47pF。C1、C2对频率有微调作用,晶体或陶瓷谐振器的频率范围可在1.2-12MHz之间选择。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。 2(外部时钟方式 此时钟方式是利用外部振荡脉冲信号从XTAL1或 XTAL2引脚接入。 CHMOS(互补金属氧化物HMOS)是CMOS和HMOS(高密度沟道MOS工艺)的结合,除了保持HMOS高速度和高密度之外,还有CMOS低功耗的特点.两类器件的功能是完全兼容的,区别在CHMOS器件具有低功耗的特点。它所消耗的电流比HMOS器件少很多,主要在于其采用了两种降低功耗的方式:空闲方式和掉电方式。CHMOS器件在掉电方式(CPU停止工作,片内RAM的数据继续保持)下时,消耗的电流可低于10μA.采用CHMOS的器件在编号中用一个C来加以区别:如80C51,80C31等。 外部时钟信号通过一个二分频的触发器而成为内部的时钟信号,要求高、低电平的持续时间都大于20ns,一般为频率低于12Hz的方波。这种方式适用于多块芯片同时工作,便于同步。片内时钟发生器就是上述的二分频触发器,它向芯片提供了一个2节拍的时钟信号。 在本设计中综合多方面因素的考虑,采用内部时钟的方式,在XTAL1 [5]和 XTAL2之间接6MHz的晶体构成时钟电路。 4.2.4串行下载接口电路 AT89S52单片机支持在线编程下载,为了视系统设计更具有扩展性和灵活性,本次设计采用了串行下载接口,其电路连接如下图: P3 SCK 12MISO34VCC1RST56 - 31 - 78MOSI910 Header 5X2 DGND 沈阳工业大学本科生毕业设计(论文) 图 4-18 串行下载接口电路 4.2.5继电器连接电路 本次设计的系统是典型的由弱电控制强电,在控制部分,只要单片机发出指令型号,通过设计的继电器电路就可以实现继电器吸合控制冲头动作的过程。二极管,三极管,电阻等器件组成的放大电路来配合继电器使用,达到电流放大,控制继电器吸合的作用。控制接口设为P0.7,详细电路图如下图: VCC1VIN1+12v P2 1D2182 4K13R7R8FR2044 1K2.2k clutch electromagnet socket16 GJ-SS112-DM R9 Q1Q2P0/72.7KBC327PSS8550 D4 blue VIN1 图 4-19 继电器连接电路图 - 32 - 沈阳工业大学本科生毕业设计(论文) 4.2.6传感器接口电路 本次设计为了协调冲头与步进电机的互相动作,在单片机P2.7接口预留了传感器接口如图3,10。检测头在数控系统的控制中起着关键性的作用, 其原理图如图3,11 所示。检测头的目的就是要检测出冲模运动的上半周期和下半周期的分界点, 把这一信号送给单片机, 进而完成进给动作。检测头采用红外敏感元件槽隙式光断续器制作, 灵敏度高, 没有延迟。活动杆是机床本身的部件, 它与冲床的上冲模作同步运动, 所以检测模具的运动位置可以通过检测活动杆的运动间接获得。系统设计选用了窄带挡光板, 挡光板的运动通过光断续器的槽隙。所以,只要合理确定光断续器的位置和挡光板的长度, 就可以检测到冲模上半周期和下半周期的分界点, 在下半周期,挡光板挡住二极管发出的红外光, 所以光断续器输出高电平; 在上半周期, 挡当光板离开光断续器的槽隙, 因而光敏三极管输出低电平。 VCC1P4 1 2 C10P2/73104 4 infrared interrupter-punchhead 图 4,20 传感器与单片机接口 图 4,21检测头原理图 4.2.7步进电机控制驱动电路 1(步进电机及其驱动方案的选用 本设计的重点在于对步进电机的控制和驱动,设计中受控电机为两相反应式步进电机28513YGH4508-01(电阻2.9欧,电感12MH,步进0.9度,重量2.8KG,最大静转矩42KG.CM,电流2A) 方案一:使用多个功率放大器件驱动电机 通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。 - 33 - 沈阳工业大学本科生毕业设计(论文) 方案二:当对冲床控制精度要求比较高时,为了保证数控系统高速送料,采用双CPU构成数控系统硬件的主模块,此双CPU结构属于主从式结构。主CPU为8031,从CPU为8751。 由于两个方向的负载相差可达十倍左右,两方向进给送料的频率差别也在十倍以上,因此必然采用特性不同的两个电机,为充分发挥其特性,其升、降频规律也不同,当X、Y轴同时送料时,要实现这样的频率,须采用一个CPU管理一台电机的运行,同时要保证用户程序的预处理不占用电机运行时间,可靠的方法也是用两个CPU分别处理X、Y轴的数据。这样才能保证数控系统的高速送料。 不运行用户程序的情况下,整个系统由主CPU来管理,主CPU负责键盘管理、用户程序输入、修改、增删和显示模块的通讯。 在工作台进给送料时或手动调整时,主CPU控制X轴运动,从CPU控制Y轴运动。当主CPU搜索到X、Y轴的运行数据后,它将Y轴数据经8255送给从CPU,主、从CPU分别使工作台作两个方向的进给送料运动。手动调整有单步、中速、高速调整。 但是此种方法对电机工作要求较高,且设计起来难度较大。 方案三:使用L297,L298N芯片驱动电机 L298N芯片可以驱动两个二相电机如图3,12,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。 图4,22 L298内部结构图 - 34 - 沈阳工业大学本科生毕业设计(论文) 通过比较,使用L298芯片充分发挥了它的功能,能稳定地驱动步进电机,且价格不高,故选用L298驱动电机。而使用L298时,可以用L297来提供时序信号,可以节省单片机IO口的使用;也可以直接用单片机模拟出时序信号,由于控制并不复杂,故选用后者。 2.步进电机及其驱动芯片工作原理 步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件, 由于步进电机具有控制方便、体积小等特点, 所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的迅速发展和微型计算机的普及与应用, 为步进电动机的应用开辟了广阔前景, 使得以往 用硬件电路构成的庞大复杂的控制器得以用软件实现, 既降低了硬件成本又提高了控制的灵活性, 可靠性及多功能性。市场上有很多现成的步进电机控制机 构, 但价格都偏高。应用SGS 公司推出的L297 和L298 两芯片可方便的组成步进电机驱动器, 并结合AT89C52 单片机进行控制, 即可以实现用相对便宜的价格组成一个性能不错的步进电机驱动电路。 由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件, 它不能直接接到交直流电源上, 而必须使用专用设备一步进电机控制驱动器。典型步进电机控制系统: 控制器可以发出脉冲频率从几赫兹到几十千赫兹可以连续变化的脉冲信号, 它为环形分配器提供脉冲序列。环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后, 经过功率放大器的放大加到步进电机驱动电源的各项输人端, 以驱动步进电机的转动。环形分配器主要有两大类: 一类是用计算机软件设计的方法实现环分器要求的功能, 通常称软环形分配器。另一类是用硬件构成的环形分配器, 通常称为硬环形分配器。功率放大器主要对环形分配器的较小输出信号进行放大, 以达到驱动步进电机目的。 文中所控制的步进电机是四相单极式28513YGH4508-01步进电动机。本文所设计的步进电机控制驱动器的框图如图3,13 所示。它由光电耦和器、集成芯片L297 和L298组成。L297 是步进电动机控制器(包括环形分配器),L298 是双H 桥式驱动器。它们所组成的微处理器至双桥式步进电动机的接口如图3 所示。这种方式结合的优点是, 需要的元件很少.从而使得装配成本低, 可靠性高和占空间少。并且通过软件开发, 可以简化和减轻微型计算机的负担。另外, L297 和L298 都是独立的芯片, 所以应用是十分灵活的。 - 35 - 沈阳工业大学本科生毕业设计(论文) L297 芯片是一种硬件环分集成芯片, 它可产生四相驱动信号, 用于计算机控制的两相双极或四相单极步进电机。它的心脏部分是一组译码器它能产生各种所需的相序, 这一部分是由两种输入模式控制, 方向控制(CW/CCW) 和HALF/FULL 以及步进式时钟CLOCK, 它将译码器从一阶梯推进至另一阶梯。译码器有四个输出点连接到输出逻辑部分, 提供抑制和斩波功能所需的相序。因此L297 能产生三种相序信号, 对应于三种不同的工作方式: 即半步方式(HALF STEP);基本步距(FULL STEP, 整步)一相激励方式; 基本步距两相激励方式。脉冲分配器内部是一个3bit 可逆计数器, 加上一些组合逻辑, 产生每周期8 步格雷码时序信号, 这也就是半步工作方式的时序信号。此时HALF/FULL 信号为高电。若HALF/FULL 取低电平, 得到基本步距工作方式, 即双四拍全阶梯工作方式。 L297 另一个重要组成是由两个PWM 斩波器来控制相绕组电流, 实现恒流斩波控制以获得良好的矩频特性。每个斩波器由一个比较器、一个RS 触发器和外接采样电阻组成, 并设有一个公用振荡器, 向两个斩波器提供触发脉冲信号。图3 中, 频率f 是由外接16 脚的RC 网络决定的, 当R>10kΩ时, f=1/0.69RC。当时钟振荡器脉冲使触发器置1, 电机绕组相电流上升, 采样电阻的Rs 上电压上升到基准电压Uref 时, 比较器翻转, 使触发器复位, 功率晶体管关断, 电流下降, 等待下一个振荡脉冲的到来。这样, 触发器输出的是恒频PWM信号, 调制L297 的输出信号, 绕组相电流峰值由Uref 确定。L297 的CONTROL 端的输入决定斩波器对相位线A、B、C、D 或抑制线INH1 和INH2起作用。CONTROL 为高电平时, 对A、B、C、D 有控制作用; 而为低电平时, 则对INH1 和INH2 起控制作用,从而可对电动机转向和转矩进行控制。 由单片机向L297 发出时钟信号、正反转信号、复位信号及使能控制等信号。由于L297 内部带有斩波恒流电路, 绕组相电流峰值由Uref 确定。当采用两片L297 通过L298 分别驱动步进电机的两绕组, 且通过两个D/A 转换器改变每相绕组的Uref 时, 即组成了步进电机细分驱动电路。另外, 为了有效地抑制电磁干扰, 提高系统的可靠性, 在单片机与步进电动机驱动回路中利用两个16 引脚光电耦合器件TLP521—4 组成如图3,13 所示的隔离电路。其作用是切断了单片机与步进电动机驱动回路之间电的直接联系, 实现了单片机与驱动回路系统地线的分别联接, 防止处于大电流感性负载下工作的驱动电路产生的干扰信号以及电网负载突变产生的干扰信号通过线路串入单片机, 影响单片机的正常 - 36 - 沈阳工业大学本科生毕业设计(论文) 工作。 TLP521-4 光电耦合两相步进L297×2 L298×2 ×2 电机 图 4,23 光电耦合与L297,L298组成的步进电机驱动电路 4.2.8冲压模具的选择 由于本次设计重点侧重于步进电机的驱动和控制,所以冲压成型过程就选用了当前普遍使用的一次性冲压成型模式,而不另行设计二次冲压瓶盖成型过程。冲床模具主要以下几种类型: 1、多工位回转头 模具 : 此模设计经典,工艺考究,选料上等(Cr12MoV),结构类同数控转塔冲32工位模库,冲头快速转换,精确锁紧定位,能无限接受单头孔形模入库,(冲裁时每次落料范围?52mm),特别适合在同一板面上多孔形加工。此模技术含量较高,加工精密,每种孔形模不但要保正自身的同心度及定位角度,更要确保多工位同轴,模库内模具不论怎样转动,重复精度?0。01mm。 我厂已开发了(6工位、 8工位、12工位)回转头冲模供用户选择。多工位回转头冲模的研制出台,高倍升级了普通冲床及数控冲床的功效,一二十万元一台的数控冲床,配用多工位回转头冲模后, 竟能与上百万元一台的‘数控转塔冲床’相媲美,性价优势更显凸出,市场购买力不断递增,为那些有识之士的老板老总们节省了巨大的设备投资。 2、单工位无限接受模具:此模采用多功能无限接受型模架,(Φ100型、Φ140型、Φ200型、Φ240型)能无限接受冲孔下料范围内的任何孔形,操作简单,更换孔形模具时只需更换模芯即可,仿佛录音机更换磁带一样简单。 3、可调式 排孔模 : 此模工艺考究,灵活简单, 随意更换冲头规格,孔形、孔径、孔距均可调节,特别适合大板面筛网孔加工,省时高效。 本次设计采用第二种单工位无限接受模具,可实现一次冲压瓶盖成型过程。 - 37 - 沈阳工业大学本科生毕业设计(论文) 第5章 瓶盖冲床数控系统的软件设计 5.1瓶盖冲床数控系统软件框图 主程序开始 系统初始化 调用程序条件 编中断自动, 辑, 手动T0 调整 同, 读入数据,解 释处理送显进入定时 示数据显示 中断程序 (最高级) X-Y轴步 数,步距对应功能执行暂停操电机加参数设减速 作 键,前、后电机正定 左、右调整反转 程序 图5-1 主程序流程图 - 38 - 沈阳工业大学本科生毕业设计(论文) 5.2键盘显示电路软件设计 5.2.1 HD7279A初始化 HD7279A 为独立的键盘显示接口芯片,单片机与其只需四跟线连接就可完 成键盘输入LED显示的全部功能,其显示部分有自己特定的模式,相应指令模 式下的显示译码输出对应表如下: 模式一: 表 5-1下载数据方式0显示数据位命令字状态 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 a2 a1 a0 DP X X X d3 d2 d1 d0 X=无影响 带有数据的指令 表 5-2下载数据方式0译码 d3-d0(十六进制) d3 d2 d1 d0 7段显示 00H 0 0 0 0 0 01H 0 0 0 1 1 02H 0 0 1 0 2 03H 0 0 1 1 3 04H 0 1 0 0 4 05H 0 1 0 1 5 06H 0 1 1 0 6 07H 0 1 1 1 7 08H 1 0 0 0 8 09H 1 0 0 1 9 0AH 1 1 1 0 - 0BH 1 1 1 1 E 0CH 1 0 0 0 H 0DH 1 0 0 1 L 0EH 1 1 1 0 P 0FH 1 1 1 1 空 - 39 - 沈阳工业大学本科生毕业设计(论文) 模式二: 表 5-3载数据方式1显示数据位命令字状态 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 1 a2 a1 a0 DP X X X d3 d2 d1 d0 表 5-4 下载数据方式1译码 d3-d0(十六进制) d3 d2 d1 d0 7段显示 00H 0 0 0 0 0 01H 0 0 0 1 1 02H 0 0 1 0 2 03H 0 0 1 1 3 04H 0 1 0 0 4 05H 0 1 0 1 5 06H 0 1 1 0 6 07H 0 1 1 1 7 08H 1 0 0 0 8 09H 1 0 0 1 9 0AH 1 1 1 0 A 0BH 1 1 1 1 B 0CH 1 0 0 0 C 0DH 1 0 0 1 D 0EH 1 1 1 0 E 0FH 1 1 1 1 F 模式三: 表 5-5下载数据不译码 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 1 a2 a1 a0 DP X X X d3 d2 d1 d0 - 40 - 沈阳工业大学本科生毕业设计(论文) 其他辅助显示功能 闪烁控制88H 此命令控制各个数码管的闪烁属性,D1-D8对应数码管1-8,0=闪烁,1,不闪烁。开机后,缺省的状态为各位均不闪烁。 消隐控制98H 此命令控制各个数码管的消隐属性。D1-D8分别对应数码管1-8,1=显示,0=消隐。当某一位被赋予了消隐属性后,HD7279A在扫描时跳过该位,因此在这种情况下,无论对该位写入何值,均不会被显示,但写入的值将被保留,在将该位重新设为现实状态后,最后一次写入的数据将被显示出来。 段点亮指令E0H 此为段寻址指令,作用为点亮数码管中某一指定的段,或LED矩阵中某一指定的LED。指令中,X=无影响;D0-D5为段地址,范围从00H-3FH,具体分配为:第一个数码管的G段地址为00H,F段为01H,„„A段为06H,小数点DP为07H,第二个数码管的G段为08H,F段为09H,„„,依此类推直至第8个数码管的小数点DP地址为3FH。 段关闭指令COH 段寻址指令,作用为关闭(熄灭)数码管中的某一段,指令结构与段点亮指令同。 读键盘数据指令15H 该指令从HD7279A读出当前的按键代码。与其他指令不同,此命令的前一个字节00010101B为单片机传送到HD7279A的指令,而后一个字节D0-D7则为HD7279返回的按键代码,其范围是0-3FH(无键按下时为0XFF)。 此指令的前半段,HD7279A的DATA引脚处于高阻输入状态,以接受来自单片机的指令;在指令后半段,DATA引脚从输入转为输出状态,输出键盘代码的值。故单片机连接到DATA引脚的I/O口应有一从输出态,输出键盘代码的值。 故单片机连接到DATA引脚的I/O接口应有一从输出态到输入态的转换过程。 当HD7279A检测到有效的按键时,KEY引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果HD7279A接收到‘读键盘数据指令’,则输出当前按键的键盘码列入国在受到;‘读键盘指令’时没有有效按键,HD7279A将输出FFH(1111111B)。 - 41 - 沈阳工业大学本科生毕业设计(论文) 5.2.2AT24C01初始化 2AT24C01的初始化主要是单片机来模拟IC总线,对AT24C01进行读写等总线设置。在模拟中对特定控制字有要求如下 表5-6 控制字节 I2C从器件地址 片选或块选 读/写控制位 1 0 1 0 A2 A1 A0 R/ W 控制字节1-4位是从器件地址位(存储器为1010),确任期间类型。此四位码由总线规程所决定。1010码极为从器件为串行存储器情况,即为本次设计所用情况。控制字节的5-7为1-8片的片选或存储器的内部块地址选择位。此三个控制位用于片选或者内部块选择。本次设计只是用了一个存储器所以不涉及到多块存储器组合片选。 2 IC总线模拟部分包括:确认信号,起始位,停止位,写操作,读操作等。 5.3步进电机驱动和控制功能的实现与中断服务程序 5.3.1步进电机相关参数的确定 进电机其启动,停止的频率较低, 一般在100—250Hz 之间, 而最高运行频率要求较高, 通常为l 一3kHz, 为使其在启动、运行和停止整个过程中, 既不会失步, 又能够尽快精确地达到目标位置, 运行速度都要有一个加速—恒速—减速的过程。这里采用常用的离散办法来逼近理想的近似梯形的升降速曲线, 如图5 所示。即利用定时器中断方式来不断改变定时器装载值的大小。本例中, 为计算方便, 把各离散点的速度所需的装载值用公式转化为各自所需的定时时间固化在系统的ROM中, 这里用TH0=(65536- time)/256, TL0=(65536- time)%256 来计算装载值, time 表示各阶梯所需定时时间。系统在运行中用查表法查出所需的时间, 从而大幅度减少占用CPU 的时间, 提高系统的相应速度。因此, 该程序主要由X-Y轴控制程序、加减速子程序组成, X-Y轴程序框图如图4,2 所示,加减速子程序如图4-3所示。 由于步进电机的动作要与冲头的动作相互协调,所以冲头与物料的进给量经 - 42 - 沈阳工业大学本科生毕业设计(论文) 过转化, 可变为步进电机的转角, 如下:α =180 ?ΔLπR式中, α: 一次进给量转化为步进电机的转角; ΔL : 介质的进给量; R : 驱动滚轮的半径。根据步 两相) 以及上式, 可以得到循环次数。把此循环次数作为一进电机的工作方式( 个标记值, 存入固定的地址, 每执行一个循环, 标记值减1 , 减到0 时就等待。如果在步进电机的运行中, 单片机接收到检测头的中断信号, 则要立刻终止步进电机的运行, 同时检测检测头输出信号的上升沿,检测到上升沿后, 重 [11]结束中断服务程序的执行, 重新执行主程序。 设标记值, 5.3.2步进电机的加减速 在数控冲床中,如果要求运行的速度小于系统的启动频率,则系统可以匀速 当运行至终点时立 运动, 即停止,这样实现的是匀速运动. 但一般启动频率较低,而实际要求运行速度较高,所以实际运行速度应是 一个加速- 恒速- 减速- 停止的过程. 要实现这一过程,步进电机必须转动一定的步数,然而在实际中,起 点至终点的距离变化很大,即有以下几种情况. 1( 如果步数很低,则步进电机还没有加速到一定速度便要求停止工作; 2( 如果步数较低,则步进电机可能只有加速和减速过程; 3( 如果步数较大些,则在加速后执行一段恒速过程,再减速至停止; 具体的步数与选择的加速度曲线,要求的速度等有关. 一般要求加速段和减速段的斜率越大越好,特别是在要求快速定位时,如在加工中完成快速点定位。 在数控系统中,一般要求以最合理的方式控制进给脉冲的频率,常用的是用软件的方法来实现. 一般有两种方法:软件延时法和定时器法;软件设计的基本思想是在启动时,以低于响应频率的速度运行,然后慢慢加速,加速到一定频率后,匀速运动,当快运行到终点时,进行减速运动,使其以低于响应的频率停止运 [4 ]动,这样以最快的速度走完规定的步数,而不会出现失步现象 .步进电机的加减速曲线一般有匀加减速规律曲线和指数规律曲线,如图5-2和图5-3 所示. 按匀加减速规律升速时加速度为常数,但从电机本身的特性来看,按指数规律进行升速和降速,比较接近步进电机输出转矩随转速变化的规律,但计算公式比较复 [12]杂,程序任务多。 - 43 - 沈阳工业大学本科生毕业设计(论文) 图 5-2 匀加速规律曲线 图5-3 指数规律曲线 5.3.3功能键完成参数设定及功能执行 1( 编辑方式:通过键盘的命令来实现数据输入、零件程序编辑,其中数据输入以键盘中断方式实现,并在L ED 上显示输入的数据,这里只需分别输入X 向、Y 向的步长和X 向、Y 向的步数四个参数。 2( 手动方式:用来处理对坐标轴的点动和回机床原点的操作,手动服务程序通过位置控制程序实现坐标轴的运动。 3( 自动方式:主要包括读程序段到缓冲区、解释、数据处理与传送、等待程序段完成等操作。 步进电机接受指令后会按设定运行,其行程状态图如下: 图 5-4 加工孔排布及电机动作行程图 - 44 - 沈阳工业大学本科生毕业设计(论文) 5.3.4中断服务程序 整个数控系统的实时过程是通过中断方式实现的。 主要的可屏蔽中断有暂停中断,定时中断和键盘中断。 其中暂停中断的优先级别最高,其次是定时中断,键盘中断级别最低。 定时中断是定时发生的,并且当定时中断程序扫描到面板上的方式开关状态发生变化时,背景程序便转入新的方式服务环境中[5 ] 。 1( 暂停模块 用于在运行中需要进行暂停执行系统工作. 采用INT0作为暂停键的输入,它的具体功能是在运行时按下暂停键,暂停执行系统工作并显示STOP。 再次按下时,系统继续工作并显示RUN。 2( 定时模块 定时中断服务程序是系统的核心,实时控制任务包括:位置控制、面板扫描、显示刷新等。 在这里主要是根据所检测的各种输入信号,通过系统控制执行机构的工作。 实际要求冲出孔的排布如图5,4 所示。 工作过程是先加工X 正向,当X 正向加工完后,然后Y 方向的工作台走一个步长,接着加工X 反向的孔,在加工的过程中,不断显示刷新X , Y 向当前未走的步数,当整个加工完毕后,工作台回到最初位置.因此,冲孔工作都在X 向运动模块中完成,而Y 向运动模块只负责在X 向某行加工完毕时走一个步长. 在整个定时中断程序中, X 向运动模块内容比较多,特别是在自动运行时,需要判断当前运动方向和孔的位置以控制实际运动状态,因为在X 正向和反向加工时,加工孔的位置和数目不同. 例如假设要求X 正向孔数为n 个,反向孔数为n - 1 个。 在程序设计时,当加工X 正向孔时,前n - 1 个孔是每冲完一个孔, X 方向的工作台走一个步长,而最后一个孔是冲完该孔后X 方向的工作台不动;当加工X 反向孔时, X 方向的工作台先走半个步长,然后对于反向的前n - 2 个孔也是每冲完一个孔, X 方向的工作台走一个步长,而最后一个孔是冲完该孔后X [13][15]方向的工作台走半个步长. 如此循环。 冲床工作台由X , Y 两个方向的步进电机通过丝杠驱动控制,因为在某一个方向上的步距进给都是由一串送入驱动器的给定的脉冲数确定,所以改变控制转动方向的信号,即可改变步进电机转动方向,从而改变工作台的运动方向. 控制步进电机的速度,实际上就是控制系统发出时钟脉冲的频率或换向周期,本 程序采用定时器方法来实现. 为了保证工作台在开始运动和停止运动时不产生 - 45 - 沈阳工业大学本科生毕业设计(论文) 冲击、失步等,必须对步进电机进行加减速控制,即在每一个步距脉冲串中都加 [16]入加速、减速过渡控制子程序。用微机对步进电机进行加减速控制,实际上就是改变输出脉冲的时间间隔,升速时,使脉冲串逐渐加密,减速时,使脉冲串逐渐稀疏. 在程序设计中,需先将加减速斜率、恒速过程运行的总步数及加减速运行总步数存入内存中,运行中采用查表方法查出对应参数。 5.4 单片机软件设计 5.4.1单片机C51源程序 瓶盖冲床数控系统的单片机软件采用Keil C语言编写。汇编语言编写的程序,结构紧凑,效率高。 由于程序较多,在此只列出HD7279A,AT24C01,及L297、L298驱动电机的部分的程序段(如下所示),详细程序见附录。 5.4.2 HD7279A初始化程序 #include #include #include //定义头文件 #define ulong unsigned long #define uint unsigned int #define Set_Bit(BIT) (BIT = 1) //定义置1函数 #define Clear_Bit(BIT) (BIT = 0) //定义清0函数 #define high 0 #define low 1 //************************************************************** ******** - 46 - 沈阳工业大学本科生毕业设计(论文) sbit sda = P1^2; sbit scl = P1^1; sbit wc = P1^0; sbit int_0 = P3^2; sbit int_1 = P3^3; sbit phead = P0^7; sbit sense = P2^7; sbit Hd7279_Key= P3^3; //定义HD7279中断硬件连接 sbit Hd7279_Clk= P1^4; //定义HD7279时钟硬件连接 sbit Hd7279_Data=P3^5; //定义HD7279数据硬件连接 sbit Hd7279_CS = P1^3; //定义HD7279片选硬件连接 sbit yclk = P0^0; // y motor pin define „„ sbit xclk = P2^0; // x motor pin define „„ //************************************************************** 5.4.3 AT24C01初始化程序 //E2PROM驱动 void s24(void) //开始位 { „„ } - 47 - 沈阳工业大学本科生毕业设计(论文) //************************************************************** Void p24(void) //停止位 { sda=0; scl=1; _nop_(); sda=1; } //********************************************************************** Unsigned char rd24(void) //读字节 { „„ } //************************************************************** Void wd24(unsigned char dd) //写字节 { „„ } //************************************************************** unsigned char read(unsigned int address) //读操作 { „„ } //************************************************************** void write(unsigned int address,unsigned char dd) //写操作 { „„ } //************************************************************** - 48 - 沈阳工业大学本科生毕业设计(论文) 5.4.3 步进电机正反转及其加减速程序 Unsigned char sn=150; //motor 加减速步数 Unsigned char idata nowrate[2] = {0x00,0x00}; //匀速定时初值 unsigned char idata *pp ; bit pf = 1; //****************************************************************** voidmotorclk(unsigned char mode) //motor速度控制 {unsigned char idata rise[20] = {0x00,0x00,0x63,0x04,0xc6,0x08,0x29,0x0d,0x8c,0x11,0xef,0x15,0x52,0x 1a,0xb3,0x1e}; unsigned char idata fall[20] = {0xb3,0x1e,0x52,0x1a,0xef,0x15,0x8c,0x11,0x29,0x0d,0xc6,0x08,0x63,0x 04,0x00,0x00}; //加减速定时初值 switch(mode) { case 1: pp = rise ; break ; case 2: pp = nowrate ; break ; case 3: pp = fall ; break ; default:pp = nowrate ; break ; } do{ while(pf); pf = 1; if((mode == 1)||(mode ==3)) pp = pp + 2; }while(sn--); - 49 - 沈阳工业大学本科生毕业设计(论文) } //**************************************************************** void dellring(void) { unsigned char i; for(i=0;i<1000;i++) { bell = 0 ; msec(100); bell = 1 ; msec(100); } } //****************************************************************** void intt0(void) interrupt 1 using 2 //定时器中断 { TL0 = *pp; nowrate[0] = TL0; TH0 = *(PP+1); nowrate[1] = TH0; pf = 0; xclk = low; yclk = low; msec(2); xclk = high; yclk = high; } //****************************************************************** - 50 - 沈阳工业大学本科生毕业设计(论文) void longrun(unsigned int stepnum) //motor转动 { TMOD = 0X01 ; TH0 = 0X00 ; TL0 = 0X00 ; TR0 = 1 ; ET0 = 1 ; EA = 1 ; motorclk(1); sn = stepnum - 300; motorclk(2); sn = 200 ; motorclk(3); } } 5.4.4 定时器调整中断及软件延时 1(延时500ms程序 Void Delay_200_mS(void) //500ms延时函数 { BYTE i,j; i=200; while (i--) { j=228; while(j--); } } - 51 - 沈阳工业大学本科生毕业设计(论文) 2(定时器中断 void intt0(void) interrupt 1 using 2 //定时器中断 { TL0 = *pp; nowrate[0] = TL0; TH0 = *(PP+1); nowrate[1] = TH0; pf = 0; xclk = low; yclk = low; msec(2); xclk = high; yclk = high; } - 52 - 沈阳工业大学本科生毕业设计(论文) 第6章 结论 本论文阐述了瓶盖冲床数控系统设计与实现的方法。瓶盖冲床数控系统的设计,可以解决现有冲床工作可靠性不强,系统操作危险度高、占用人力资源多、效率低、成本高的不足,有利于瓶盖冲床数控系统的应用与推广。主要从以下几个方面进行了研究: (1)在设计中采用了L297、L298结合光电耦合组成的步进电机驱动、控制电路,大大提高了冲床伺服系统智能性、可靠性。无论正转、反转、加速、 的自动化、准确性。 减速,都可以由伺服机构智能完成,从而大大提高了系统 (2)键盘显示芯片采用HA7279A,内部有专门的键盘显示接口电路,从而使得外部电路的的连接十分简单。由于该芯片占用系统资源少,利用率高,最多可连接64键盘,8LED显示器,因此可以满足系统设计所需的键数需要,使用非常方便。 (3)考虑到实际工作情况,当冲床中途需要停止工作如:监控人员外出等实况时,系统采用了基于I2C总线的AT24C01存储器,该器件具有掉电保护功能,所以当系统停止工作后,若需要继续工作时无需再次人为干涉,上电后即可继续未完成的工作。 (4)系统的冲压执行机构由光电传感器监测,输出信号由单片机处理来协调伺服系统的动作,共同完成瓶盖冲压过程。 本次设计的瓶盖冲床数控系统基本上实现了预期的功能,但还需要进一步完善: (1)系统的安全性应进一步提高,应选用较好的步进电机和几点控制器,传感器来配合系统工作。 (2)系统应兼容更多的模具,使系统具有通用冲床冲压的功能。 (3)考虑到系统的升级问题,本次设计采用的单片机串行下载接口还需要进一步完善 瓶盖冲床数控系统目前在我国有这广泛的应用,应用前景广阔。作者将在以后的学习和工作中对本装置做进一步的改进,形成功能更加完善的产品。 - 53 - 沈阳工业大学本科生毕业设计(论文) 参考文献 [1] 中国机床工具工业协会 行业发展部.CIMT2001巡礼,J,.世界制造技术与装备市场, 2001.3:29,35 ,167 [2] 林峦红主编,机床数字控制技术与应用。接卸工业出版社,2004:164 [3] 李朝清(单片机原理及接口技术(北京:北京航天航空大学出版社,1999(13,109 [4] 谢自美《电子线路设计、实验、测试(第二版)》[M]武汉:华中理工大学出版社,2000. : 30,33 [5] 杨光友,朱宏辉,等(单片微型计算机原理及接口技术(北京:中国水利水电出版社, 2004 [6] P.P.ACAMLEY,R.J.HILL,andC.W.Hooper,”Detection of rotor position in stepping and switcher motors by monitoring of current waveform.”IEEE Trans.Lnd.Rlecton,vol ,IE32, 1995. 6: 215,222 [7] 薛钧义,张彦斌,樊波等《凌阳十六位单片机原理及应用》[M]北京:北京航空航天大 学出版社,2003. 33,45 [8] 李群芳,肖看(单片机原理、接口及应用—嵌入式系统技术基础(北京:清华大学出 版社,2005 [9] 董长双,杨楚民,宾鸿赞 高速全自动数控冲床研制 华中理工大学出版社,2004 [10] 数控机床的组成和工作原理 [11] 杨楚民,李伟海,高振明(用HD7279A设计单片机显示器(山东:山东电子出版社, 2000 [12] 步进电机控制技术 www.cip9987.com [13] Received September 9, 2004; revised January 20, 2005Published online: May 4, 2005 Ó Springer-Verlag 2005 Acta Mechanica 177, 137–148 (2005)DOI 10.10.1007/s0 0707-005-0231-5 [14] Moller-Petersen T,Vogel M,Li HF et.al.(1997)Quantification of stromalthinning,epithelialthickness and corneal haze after photorefrac-tive keratectomy using in vivo confocal microscopy.Ophthalmology 104: 360–368 [15] Patel SV,McLaren JW,Camp JJ,Nelsen LR,Bourne WM (1999) Automated quantificationof keratocyte density by using confocal icroscopy in vivo.IOVS 40(2): 320–326 [16] Intel Corp. Microcontroller Hand Book .1986 - 54 - 沈阳工业大学本科生毕业设计(论文) 致 谢 本文的研究与开发工作是在高松巍导师的悉心引导下完成的,老师严谨求实、一丝不苟的科学态度,立志求新、孜孜不倦的开拓精神,敏捷的思维和渊博的知识,使我受益终身。在此向他表示崇高的敬意和衷心的感谢。 另外我还要衷心感谢教研室王老师,同学付如龙、李佳奇等,在工作中他们给予了我及时有效的帮助,我们经常一起讨论工作和学习中遇到的各种问题。可以说,我这篇论文的完成,是与这些老师和同学的无私帮助和合作分不开的。在此,谨向关心过和帮助过我的各位尊敬的老师和热心的同学表示深深的敬意和诚挚的感谢。 - 55 - 沈阳工业大学本科生毕业设计(论文) 附 录 附1:系统硬件电路原理图 DS1DS2DS3DS4DS5DS6SEG0103DIG5SEG0103DIG4SEG0103DIG3SEG0103DIG2SEG0103DIG1SEG0103DIG0aAaAaAaAaAaA114SEG198DIG5SEG198DIG4SEG198DIG3SEG198DIG2SEG198DIG1SEG198DIG0bAbAbAbAbAbAP3SEG27SEG27SEG27SEG27SEG27SEG27ccccccSCKSEG35SEG35SEG35SEG35SEG35SEG3512dddddd MISOSEG44SEG44SEG44SEG44SEG44SEG4434VCC1eeeeeeRSTSEG52SEG52SEG52SEG52SEG52SEG5256ffffffSEG61SEG61SEG61SEG61SEG61SEG6178ggggggMOSISEG76SEG76SEG76SEG76SEG76SEG76910DPDPDPDPDPDPHeader 5X2HDSP-301AHDSP-301AHDSP-301AHDSP-301AHDSP-301AHDSP-301A DGNDVCC1VCC1VIN1+12vVCC2P2VCC1P41D26812 K1330R11KR423C10P2/7R7R8FR204341041K2.2k487clutch electromagnet socketU2GJ-SS112-DMinfrared interrupter-punchhead116ANODECOLLECTORR9215CATHODEEMITTERQ1Q2 P0/72.7KBC327PSS8550314ANODECOLLECTOR41396CATHODEEMITTERD4512330R12ANODECOLLECTOR330R21KR5blue611CATHODEEMITTERP0/0 P0/1710105ANODECOLLECTORVCC1P0/289VIN1CATHODEEMITTERP0/3P0/4TLP521-4VCC2C9X1R11P0/5U410K116ANODECOLLECTOR11433P P3/2215CATHODEEMITTERY1330R1312MC11S1314C12330R31KR6ANODECOLLECTOR104X2SW-PBpause key41312CATHODEEMITTER12333PU5512ANODECOLLECTORWC139P0/0611 P1.0(T2)(AD0)P0.0CATHODEEMITTERSCL238P0/1P1.1(T2EX)(AD1)P0.1VCC1SDA337P0/2710P1.2(AD2)P0.2ANODECOLLECTORVCC1VCC1436/CSP0/389P1.3(AD3)P0.3CATHODEEMITTERU6535CLKP0/4132P1.4(AD4)P0.478U7MOSI634R15R16R17P0/5TLP521-4SENVCCP1.5(MOSI)(AD5)P0.5R18R1918MISO7331K1K1K330R14E0VCCP1.6(MISO)(AD6)P0.6 21R201031032R21SCK832P0/7RESINREFE1P1.7(SCK)(AD7)P0.74723103E2J135/RSTSCL65SDA1321/KEYP2/0141CTRSTSCLSDAP3.3(INT1)(A8)P2.0Connector 1446RSTWC7P3/2122216P2/1GNDRSTWCP3.2(INT0)(A9)P2.1C132315P2/2VCC1(A10)P2.2TL7705AD41524VCC1DATAP2/3GNDP3.5(T1)(A11)P2.3C14R221425VCC2P2/4 P3.4(T0)(A12)P2.4103103AT24C01A26P2/5(A13)P2.53127VCC1VCC1EA/VPP(A14)P2.628P2/7330R23(A15)P2.7VCC1X11910uF/50VXTAL1C15X21840XTAL2VCC10420U81KR26GND U9Q3RST910116RST(RXD)P3.0ANODECOLLECTORR2911215(TXD)P3.1CATHODEEMITTER17301KP3.7(RD)ALE/PROGPSS85501629314P3.6(WR)PSENANODECOLLECTORU10413CATHODEEMITTER2825AT89S52VCC1/RSTBELLRESETDIG724512330R43 DIG6ANODECOLLECTOR330R24123611DIG5VDDDIG5CATHODEEMITTER222DIG4P2/0VDDDIG421710DIG3P2/1DIG3ANODECOLLECTOR1KR272089C16DIG2P2/2DIG2CATHODEEMITTER19R30DIG1P2/3DIG118TLP521-41041K5DIG0P2/4VCC2DIG0 U11P2/527116RCANODECOLLECTOR215C17R50CATHODEEMITTER26R31R32R33R34R35CLKO330R4431415pF330R25ANODECOLLECTOR10K10K10K10K10K413CATHODEEMITTER /CS617R36200512SEG71KR28CSDPANODECOLLECTORR51716R37200611CLKSEG0CLKSACATHODEEMITTERDATA815R38200S2S3S4S5S6SEG1DATASB/KEY914R39200710KEYSCANODECOLLECTOR13R4020089SEG2SDCATHODEEMITTER12R41200S7S8S9S10S11SE R5211R42200TLP521-4R46R47R48SF410R492001K1K1KSEG3330R45VSSSGS12S13S14S15S16HD7279ASEG4S17S18S19S20S21R53100K x 8 VCC1SEG5PUNCH CONTROL SYSTEMS22S23S24S25S26SEG6R54PUNCH-1V2.0 VIN3R55+24VVCC3+5V R56C5C6D2D3D4D5AGNDAGND 104104U2RF204RF204RF204RF20449R57U3P11218452ACLOCKAIN 1OUT11V20673BVsssRESETBIN 2OUT22V1771013C sCW/CCWCIN 3OUT331991214DHALF/FULLDIN 4OUT4411161CONTROLSYNCEN ACSEN A1VREF1551115Y Axis step motor socketVrefINH1EN BCSEN B1SEN1148D6D7D8D9 SENS1INH21SEN2133GSENS2HOME1016ST l298N22ENABLEOSCWWDRF204RF204RF204RF2048GST L297NC7R0.5RR0.5RR4 D232VCC3AGND22K3.3nF1SEN21SEN1AGND AGNDAGNDVCC31VREF7654321R5R6J116AGND15 4.7K1.1KConnector 14VIN3+24VVCC3+5V8911111 01234C8C9AGNDD10D11D12D13AGNDAGND104104U4RF204RF204RF204RF20449 U5P21218452ACLOCKAIN 1OUT11V20673BVsssRESETBIN 2OUT22V1771013CsCW/CCWCIN 3OUT33 1991214DHALF/FULLDIN 4OUT4411161CONTROLSYNCEN ACSEN A2VREF1551115X Axis step motor socketVrefINH1EN BCSEN B2SEN1148D14D15D16D17SENS1INH22SEN2133 GSENS2HOME1016ST L298N22ENABLEOSCWWDRF204RF204RF204RF2048GST L297NC10R0.5RR0.5RR9D78 2VCC3AGND22K3.3nF2SEN22SEN1AGNDAGNDAGNDVCC3 2VREFR10R11AGNDSTEP MOTOR DRIVER4.7K1.1K - 56 - 沈阳工业大学本科生毕业设计(论文) 附2:软件程序清单 // punch control system program //********************************************************************** #include #include #include //定义头文件 #define ulong unsigned long #define uint unsigned int #define Set_Bit(BIT) (BIT = 1) //定义置1函数 #define Clear_Bit(BIT) (BIT = 0) //定义清0函数 #define high 0 #define low 1 //********************************************************************** sbit sda = P1^2; sbit scl = P1^1; sbit wc = P1^0; sbit int_0 = P3^2; sbit int_1 = P3^3; sbit phead = P0^7; sbit sense = P2^7; - 57 - 沈阳工业大学本科生毕业设计(论文) sbit Hd7279_Key= P3^3; //定义HD7279中断硬件连接 sbit Hd7279_Clk= P1^4; //定义HD7279时钟硬件连接 sbit Hd7279_Data=P3^5; //定义HD7279数据硬件连接 sbit Hd7279_CS = P1^3; //定义HD7279片选硬件连接 sbit yclk = P0^0; // y motor pin define sbit yrst = P0^1; sbit ycw = P0^2; sbit yhf = P0^3; sbit yctl = P0^4; sbit yen = P0^5; sbit xclk = P2^0; // x motor pin define sbit xrst = P2^1; sbit xcw = P2^2; sbit xhf = P2^3; sbit xctl = P2^4; sbit xen = P2^5; sbit bell = P3^7; //******************************************************************** unsigned char bdata bAcc; //临时数 sbit a0=bAcc^0; sbit a1=bAcc^1; sbit a2=bAcc^2; - 58 - 沈阳工业大学本科生毕业设计(论文) sbit a3=bAcc^3; sbit a4=bAcc^4; sbit a5=bAcc^5; sbit a6=bAcc^6; sbit a7=bAcc^7; //********************************************************************** typedef unsigned char BYTE; //自定义数据类型 typedef struct { byte bInit_Count; byte bDot_Len; typedef union { INIT_STRUCT strInit; byte bpInit[INIT_LEN]; }INIT_UNION; typedef struct { byte bUpdate; byte bCur_Count; }COUNTE_STRUCT; typedef union { COUNTE_STRUCT strCount; - 59 - 沈阳工业大学本科生毕业设计(论文) byte bpCount[CUR_LEN]; }COUNTE_UNION; unsigned int xs, xn, ys, yn; unsigned int total = 0; BYTE Keyboard_Out; //定义键值变量 bit Keyboard_Flag; //定义按键标志 bit runflag = 0 ; //***************************************************************************** **************** //E2PROM驱动 void s24(void) //开始位 { _nop_(); scl=0; sda=1; scl=1; _nop_(); sda=0; _nop_(); scl=0; } - 60 - 沈阳工业大学本科生毕业设计(论文) //***************************************************************************** ***************** void p24(void) //停止位 { sda=0; scl=1; _nop_(); sda=1; } //***************************************************************************** ****************** unsigned char rd24(void) //读字节 { sda=1; scl=1; a7=sda; scl=0; scl=1; a6=sda; scl=0; scl=1; a5=sda; scl=0; - 61 - 沈阳工业大学本科生毕业设计(论文) scl=1; a4=sda; scl=0; scl=1; a3=sda; scl=0; scl=1; a2=sda; scl=0; scl=1; a1=sda; scl=0; scl=1; a0=sda; scl=0; sda=1; scl=1; scl=0; return(bAcc); } //***************************************************************************** ********* void wd24(unsigned char dd) //写字节 { - 62 - 沈阳工业大学本科生毕业设计(论文) bAcc=dd; sda=a7; scl=1; scl=0; sda=a6; scl=1; scl=0; sda=a5; scl=1; scl=0; sda=a4; scl=1; scl=0; sda=a3; scl=1; scl=0; sda=a2; scl=1; scl=0; sda=a1; scl=1; scl=0; sda=a0; scl=1; scl=0; sda=1; - 63 - 沈阳工业大学本科生毕业设计(论文) scl=1; } //***************************************************************************** ***************** unsigned char read(unsigned int address) //读操作 { unsigned char dd; dd=((address&0x7ff)/256)<<1; s24(); wd24(0xa0|dd); scl=0; wd24(address); scl=0; s24(); wd24(0xa1|dd); scl=0; dd=rd24(); p24(); return(dd); } //***************************************************************************** ****************** - 64 - 沈阳工业大学本科生毕业设计(论文) void write(unsigned int address,unsigned char dd) //写操作 { unsigned char ddd; ddd=((address&0x7ff)/256)<<1; s24(); wd24(0xa0|ddd); scl=0; wd24(address); scl=0; wd24(dd); scl=0; p24(); while (1) { s24(); wd24(0xa0|ddd); sda=1; if (sda==0) break; scl=0; } } //***************************************************************************** **** - 65 - 沈阳工业大学本科生毕业设计(论文) void ReadBuf(unsigned int addr,unsigned char idata *buf,unsigned char count) { for (; count!=0; count--) //读AT24C01A { *buf=read(addr); buf++; addr++; } } //***************************************************************************** ***** void WriteBuf(unsigned int addr,unsigned char idata *buf,unsigned char count) { for (; count!=0; count--) // 写AT24C01A { write(addr,*buf); addr++; buf++; } - 66 - 沈阳工业大学本科生毕业设计(论文) } //***************************************************************************** ***** void Delay_200_mS(void) //500ms延时函数 { BYTE i,j; i=200; while (i--) { j=228; while(j--); } } //***************************************************************************** ***** void Send_Byte(BYTE Data_Out) //HD7279发送字节函数 { BYTE i; Long_Delay(); for(i=0;i<8;i++) { if(Data_Out&0x80) Set_Bit(Hd7279_Data); else Clear_Bit(Hd7279_Data); Set_Bit(Hd7279_Clk); - 67 - 沈阳工业大学本科生毕业设计(论文) Short_Delay(); Clear_Bit(Hd7279_Clk); Short_Delay(); Data_Out=Data_Out<<1; } Clear_Bit(Hd7279_Data); } //***************************************************************************** ******* BYTE Receive_Byte(void) //HD7279接收字节函数 { BYTE i,Data_In; Set_Bit(Hd7279_Data); Long_Delay(); for(i=0;i<8;i++) { Set_Bit(Hd7279_Clk); Short_Delay(); Data_In=Data_In<<1; if(Hd7279_Data) Data_In=Data_In|0x01; Clear_Bit(Hd7279_Clk); Short_Delay(); } Clear_Bit(Hd7279_Data); - 68 - 沈阳工业大学本科生毕业设计(论文) return(Data_In); } //***************************************************************************** ******* void Short_Delay(void) //短延时函数 { BYTE i; for(i=0;i<0x08;i++); } //***************************************************************************** ******* void Long_Delay(void) /*长延时函数*/ { BYTE i; for(i=0;i<0x30;i++); } //***************************************************************************** ******* Void Write_Hd7279(BYTE Command, BYTEData) //HD7279写函数 { - 69 - 沈阳工业大学本科生毕业设计(论文) Send_Byte(Command); Send_Byte(Data); } //***************************************************************************** ******* BYTE Read_Hd7279(BYTE Command) //HD7279读 函数 { Send_Byte(Command); return(Receive_Byte()); } //***************************************************************************** ******* void int1_Hd7279key(void) interrupt 1 //外部中断1函数 { Keyboard_Out=Read_Hd7279(0x15); //读取键值 if((Keyboard_Out>=0x00) && (keyboard_out<=0x36)) { Set_Bit(Keyboard_Flag); /*设置键标志*/ } switch(Keyboard_Out) {case 32: runflag = 1 ; break; case 24: writeprom(total) ; xen = low ; yen = low ; phead = 1; runflag = 0 ;break ; - 70 - 沈阳工业大学本科生毕业设计(论文) case 16: total = 0 ; displaydata(total); writeprom(total) ; break ; case 33: point(); break; } } //***************************************************************************** ******* void point(void) //点动 { switch(Keyboard_Out) { case 25: phead = 1; ycw = high ; longrun(200);break; case 17: phead = 1; ycw = low ; longrun(200) ;break; case 9 : phead = 1; xcw = high ; longrun(200);break; case 1 : phead = 1; xcw = low ; longrun(200);break; } } //***************************************************************************** ******* void 7279Init(void) //7279初始化函数 { Set_Bit(EX1); //外部中断1使能 - 71 - 沈阳工业大学本科生毕业设计(论文) Set_Bit(IT1); //外部中断1下降沿触发 Set_Bit(EA); //中断使能 Hd7279_CS = 0; Send_Byte(0xa4); //HD7279复位 Write_Hd7279(0x98,0x1f); //HD7279启动消隐功能,能提高灯的亮度 Write_Hd7279(0xc9,0x0a); //上电显示hello- Write_Hd7279(0xca,0x00); Write_Hd7279(0xcb,0x0d); Write_Hd7279(0xcc,0x0d); Write_Hd7279(0xcd,0x0b); Write_Hd7279(0xce,0x0c); //高位 } //***************************************************************************** ******* void displaydata(ulong disdata) //显示数据 { BYTE d[6],i,j; ulong fd[6]; if(disdata <= 999999L) { disdata = disdata & 0x00011111 ; - 72 - 沈阳工业大学本科生毕业设计(论文) fd[5] = disdata / 100000; disdata -= fd[5] * 100000; fd[4] = disdata / 10000; disdata -= fd[4] * 10000; fd[3] = disdata / 1000; disdata -= fd[3] * 1000; fd[2] = disdata / 100; disdata -= fd[2] * 100; fd[1] = disdata / 10; disdata -= fd[1] * 10; fd[0] = disdata ; } else { disdata = 0; for (i=0 ; i<6 ; i++) fd[i] = 0; } for(j=0 ; j<6 ; j++) { d[j] = (BYTE) fd[j]; - 73 - 沈阳工业大学本科生毕业设计(论文) } Write_Hd7279(0xc9,d[0]); //显示转换 Write_Hd7279(0xca,d[1]); Write_Hd7279(0xcb,d[2]); Write_Hd7279(0xcc,d[3]); Write_Hd7279(0xcd,d[4]); Write_Hd7279(0xce,d[5]); } //***************************************************************************** ****** unsigned int key(void) //键操作 {unsigned char i,k,m,a[4]; unsighed int q=0; if((Keyboard_Out==26) || (Keyboard_Out==18) || (Keyboard_Out==10) || (Keyboard_Out==2)) { m = 0; while((Keyboard_Out != 8) && ( m<=4 )) { switch(Keyboard_Out) { case 36: k = 0; break ; case 28: k = 1; break ; - 74 - 沈阳工业大学本科生毕业设计(论文) case 20: k = 2; break ; case 12: k = 3; break ; case 4 : k = 4; break ; case 35: k = 5; break ; case 27: k = 7; break ; case 11: k = 8; break ; case 3 : k = 9; break ; } m++; a[m-1] = k; } for(i=m; i>0 ;i--) { q =q + a[i]*pow(10,m) ; } } return(q); } //***************************************************************************** ****** void editkey(void) //键编辑操作 { if(Keyboard_Out==34) { - 75 - 沈阳工业大学本科生毕业设计(论文) switch(Keyboard_Out) { case 26: xs = key() ;WriteBuf(INIT_ADDR,(byte idata *)&g_unInit_Count,INIT_LEN) ;break; case 18: xn = key() ;WriteBuf(INIT_ADDR,(byte idata *)&g_unInit_Count,INIT_LEN) ;break; case 10: ys = key() ;WriteBuf(INIT_ADDR,(byte idata *)&g_unInit_Count,INIT_LEN) ;break; case 2 : yn = key() ;WriteBuf(INIT_ADDR,(byte idata *)&g_unInit_Count,INIT_LEN) ;break; } } } //***************************************************************************** ****** void int0-intrupt() interrupt 0 using 1 //暂停操作 { EA = 0; msec(50); if(int_0 == 0) { while(int_0 == 0); msec(100); xen = low ; yen = low ; - 76 - 沈阳工业大学本科生毕业设计(论文) phead = 1; } EA = 1; } //***************************************************************************** ****** void punchrun(unsigned int pxs,unsigned int pxn,unsigned int pys,unsigned int pyn) { unsigned int i,j; //正常运行 j = pyn; while(j>0) { i = pxn; while(i>0) { phead = 0; while(sense == 0 ); while(sense == 1 ); phead = 1; total = total + 1; displaydata(total); xcw = high; xen = high; - 77 - 沈阳工业大学本科生毕业设计(论文) longrun(pxs); i = i - pxs; xen = low; } i = pxn; ycw = high; yen = high; longrun(pys); j = j - pys ; yen = low; while(i>0) { phead = 0; while(sense == 0 ); while(sense == 1 ); phead = 1; total = total + 1; displaydata(total); xcw = low; xen = high; longrun(pxs); i = i - pxs; xen = low; - 78 - 沈阳工业大学本科生毕业设计(论文) } i = pxn; ycw = high; yen = high; longrun(pys); j = j - pys ; yen = low; } writeprom(total); bell(); } //***************************************************************************** **** void msec(unsigned int x) //毫秒延时 { unsigned char j; while(x--) { for(j=0;j<125; j++); } } - 79 - 沈阳工业大学本科生毕业设计(论文) //***************************************************************************** **** Void motorinit(void) //L297初始化 { yrst = high ; xrst = high ; yhf = high ; xhf = high ; yctl = high ; xctl = high ; yen = low ; xen = low ; xclk = high ; yclk = high ; } //***************************************************************************** ***** void main(void) //主函数 { 7279Init( ) ; motorinit( ) ; while(1) - 80 - 沈阳工业大学本科生毕业设计(论文) { if(Keyboard_Flag) { Clear_Bit(Keyboard_Flag); editkey(); } if(runflag) punchrun( xs,xn,ys,yn); } } //***************************************************************************** * //program end - 81 -
本文档为【瓶盖冲床数控系统的设计&#40;全文&#41;】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:354KB
软件:Word
页数:0
分类:生活休闲
上传时间:2018-04-02
浏览量:26