资源描述
学号:24113501538 南湖学院 毕业论文(设计) 题目 :直线运动工作台精确定位控制 作 者: 龙罗坤 届 别:2011 级 系 别:南湖学院机电系 专 业:机械与电子工程 指导老师: 余晓峰 职 称: 副 教 授 完成时间: 2015 年 5 月 4 日 摘 要 本设计是基于单片机控制的数控系统设计直线运动工作台精确定位设计。 本控制系统采用闭环控制方式,以 AT89C51 单片机为控制器,并以显示、复位、 时钟、限位等电路作为基础,通过键盘电路的给单片机输入指令,并以脉冲形式的 控制信号来驱动步进电机,并且通过旋转编码器对运动进行实时检测,并及时反馈 给执行机构是否进行,从而通过传动机构来实现直线运动工作台精确定位。 程序编写完成后,在 Keil 软件进行编译和调试,并在 Proteus 环境中实现程序 及电路的仿真。 关键字:数控工作台;直线运动;定位控制;步进电机;旋转编码器 II ABSTRACT This design is the numerical control system design based on single-chip microcomputercontrol, linear motion table precise positioning design. This control system adopts the closed loop control mode, AT89C51 single-chip microcomputer as the controller, and to display and reset, clock, limit, such as circuit as the foundation, through the keyboard circuit to MCU input instruction, and in the form of pulse control signal to drive the stepper motor, and real-time detection of movement through rotary encoder, and timely feedback to the actuator whether, and through the drive mechanism to achieve linear motion table precise positioning. After the completion of the program written, in the Keil software compiling and debugging, and implementation procedures and the simulation of the circuit in the Proteus environment. Keywords: CNC table; linear motion; positioning control; stepper motor; rotary encoder 目 录 第一章 绪论 .1 1.1 课题设计研究背景 .1 1.2 研究的内容 .1 1.3 毕业设计的目的、意义 .2 第二章 数控系统的总体方案 .3 2.1 数控系统的设计总体方案图 .3 2.2 数控系统的控制方式. .3 2.3 伺服系统及电机的选择 .3 2.4 微机控制系统的选择 .3 2.5 直线运动工作台的传动方式 .5 2.6 控制系统的执行.6 第三章 MCS-51 单片机工作原理 .9 3.1 单片机内部组成及引脚功能 .9 3.1.1 单片机的内部结构 .9 3.1.2 AT89C51 单片机的主要特性: .9 3.1.3 AT89C51 单片机的引脚功能 .10 3.2 单片机的时钟电路 .12 3.3 单片机的工作方式 .14 第四章 单片机系统的设计 .16 4.1 硬件配置与接口分配 .16 4.1.1 存贮器空间分配 .16 4.1.2 I/O 口地址分配 .16 4.2 硬件电路的设计 .17 4.2.1 主控制器 CPU 的选择 .17 4.2.2 步进电机驱动电路的设计 .18 4.3 其他辅助电路设计 .32 4.3.1 AT89C51 的时钟电路单片机的时钟的产生方式 .32 4.3.2 AT89C51 复位电路 .32 4.3.3 超程报警电路 .32 4.3.4 掉电保护电路 .33 4.3.5 光电隔离电路 .34 第五章 基于 PROTEUS 的直线运动平台运动仿真设计 .36 5.1 PROTEUS简介及仿真界面 .36 5.2 KEIL简介 .37 5.3 KEIL中的程序调试 .38 5.4 PROTEUS仿真系统硬件原理图 .39 5.5 运行调试 .39 设计总结 .42 致 谢 .43 参考文献 .44 附 录 .45 附录 A 步进电机驱动数控 XY 轴仿真原理图 .45 附录 B C 语言程序设计 .46 1 第一章 绪论 1.1 课题设计研究背景 随着现代信息技术的进步,制造业得到了快速发展,促使机械加工技术发 生深刻的变化,企业不仅追求高效率的生产模式,更追求高标准的质量要求, 因此要求机械设备的功能越来越强大,其结构及功能随之也变得更复杂。所以, 能够设计出功能全面、效率高、耐压性强、加工精度高的机械加工设备是制造 业中最重要的课题之一。我们此次研究的课题直线运动数控工作台属于高精 密加工的核心部件,它的传动部件的定位精度直接影响系统的加工精度。 直线运动数控工作台是许多机电一体化设备的基本部件,如数控车床的纵 横向进刀机构、数控铣床和数控钻床的直线运动工作台、激光加工设备的工 作台等。数控工作台的运动控制精度与加工零件的精度直接相关,传统的人工 控制已无法满足要求,因而采用微机控制系统来实现精确的运动控制。 本设计采用单片机来实现程序化的运动控制,此为验证性设计,通过对控 制系统的设计,掌握一些典型硬件电路的设计方法和人机接口软件的设计思路, 并通过 Proteus 软件进行仿真实验。 1.2 研究的内容 直线运动数控工作台是许多机电一体化设备的基本部件,通常由导轨座、 滑动模块、工作平台、滚珠丝杠螺母副,以及步进电机等部件构成。控制系统 可选用标准的工业控制计算机,也可设计专用的微机控制系统。本设计用 AT89C51 组成专用单片机控制系统,来控制步进电机的正反转,进而控制直线 运动数控工作台运动。 设计要求完成整个控制系统的硬件设计和完成整个控制系统的人机接口软 件设计,通过 Keil 编译和调试程序,并最终在 Proteus 软件中仿真。 2 1.3 毕业设计的目的、意义 毕业设计是培养学生设计能力的重要实践性教学环节之一,是综合运用所 学过的机械、电子、自动控制、计算机等知识进行的基本设计训练。其目的是: 能够正确运用大学期间所学课程的基本理论和相关知识,掌握机电一体化 系统(产品)的功能构成、特点和设计思想、设计方法,了解设计方案的拟定、 比较、分析和计算,培养学生分析问题和解决问题的能力,使学生具有机电一 体化系统设计的初步能力; 通过机械部分设计,掌握机电一体化系统典型机械零部件和执行元件的计 算、选型和结构设计方法和步骤; 通过测试及控制系统方案设计,掌握机电一体化系统控制系统的硬件组成、 工作原理,和软件编程思想; 通过毕业设计提高学生应用手册、标准及编写技术说明书的能力,促进学 生在科学态度、创新精神、专业技能等方而综合素质的提高。 3 第二章 数控系统的总体方案 本次设计中,数控系统总体设计内容包括:数控系统总体方案图、数控系 统控制方式的确定,伺服系统的选择,微机控制系统的选择。 2.1 数控系统设计总体方案图 AT89C51 旋转编码器 (检测电路) 键盘 复位 时钟电路 限位开关 紧急停止 显示 驱动电路 告警 步进电动机 机床工作台 状态 执行机构 (滚珠丝杠 螺母副) 图 2-1 系统总体方案图 2.2 数控系统的控制方式 本数控系统要求直线运动工作台沿坐标轴方向同时具有连续的精确的运动, 两坐标直线插补的基本功能,能够完成平面轮廓的加工,因而采用连续控制的 方式。该方式可对两个或两个以上的坐标轴同时进行严格连续控制系统。它不 仅能控制移动部件从某一点准确地移动到另一点,而且还能控制整个加工过程 中的每一点的速度和位移量,进而将零件加工成一定的轮廓形状。 2.3 伺服系统及电机的选择 1伺服系统的选择 4 本次设计选用开环伺服系统。在开环控制系统中,无反馈部件,不存在由 输出端到输入端的反馈通路,无法反馈信息,故而不能及时纠正系统传动误差。 但是,同闭环控制系统相比,开环控制系统的结构要简单得多,调整维修方便, 同时也比较经济。在速度和精度要求都不太高,而又要求降低成本的场合得到 广泛应用。 2步进电机的选择 考虑到经济性,也不需太高的运动精度,为简化结构,降低成本,采用步 进电机作为开环伺服系统的驱动装置。 步进电机是由电脉冲控制的特种电动机。在非超载的情况下,电机的转速、 停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,对应 于每一个电脉冲,电动机将产生一个恒定量的步进运动,即产生一个恒定量的 角位移或线位移。步进电机运动步数由脉冲数来决定,运动方向由脉冲相序来 决定,在一定时间内转过的角度或平移的距离由脉冲数决定,借助步进电机可 以实现数字信号的变换。步进电机控制系统的原理框图如图 2-1 所示。 电 源 脉冲发生器 脉冲分配 功率电路 步进电动机 工作机构 图 2-2 步进电动机系统简图 根据控制需要,本次设计选择两个90BF001 型4相8 拍的反应式步进电机。 步进电机有关参数如表2-1: 表2-1 90BF001型反应式步进电机的参数 主要技术参数 型号 相数 步距角 /( ) 电压 /V 最大静转矩 /(Nm) 空载启动 频率/(步 /s) 空载运行 频率/( 步/s) 分配 方式 90BF001 4 0.9 80 3.92 2000 8000 4相八拍 电感/(mH) 外形尺寸(轴径) /mm 质量/kg 转子转动惯量 /(10-5 kgm2) 5 17.4 914504.5 17.64 步进电机原理图如图 2-2 所示: 图 2-3 步进电动机原理图 2.4 微机控制系统的选择 (1)对于步进电动机的开环控制系统,选用 8 位单片机 AT89C51 作为控 制系统的控制器。该单片机具有集成度高,可靠性好,功能强大,处理速度快, 可扩展性强,性价比较高等优点,能够很好的满足任务书给定的相关控制要求。 (2)要设计一个完整的控制系统,在选择 CPU 之后,还要设计步进电机 机的驱动电路,通过运行程序,单片机与驱动电路一起工作,进而驱动 X 轴步 进电机的正反转。 (3)合理设计电源及开关电路,与步进电动机配套使用。 2.5 直线运动工作台的传动方式 为了保证直线运动工作台具有一定的传动精度和平稳性,并考虑总体结构 的紧凑性要求,采用滚珠丝杠螺母作为传动副。由于工作台的运动部件重量和 工作载荷不大,故选用滚动直线导轨副,从而减小工作台的摩擦系数,提高其 运动的可靠性和平稳性。 由于步进电机的步距角和滚珠丝杠的导程是按标准选取的,为达到传动要 求,并综合考虑步进电机负载匹配,决定采用齿轮减速传动。数控系统总体框 图如图2-3 所示: 6 图2-4 数控系统总体框图 2.6 控制系统的执行 2.6.1 I/O 分配表 表 4-2 输入输出地址分配表 代号 地址 说明 SQ1 X1 左限位 SQ2 X2 原点 SQ3 X5 右限位 输入(I) SB1 X10 暂停 SB2 X11 停止 SB3 X12 启动 输出(O) Y0 脉冲输出地址 7 SB1 Y2 脉冲输出方向 2 .6.2 控制流程图 Y N 开始 上电回原点 设定循环次数 n 装料延时 3S,向工位 1 运料 到达工位 1,卸料延时 5S 返回原点 装料延时 5S,向工位 2 运料 到达工位 2,卸料延时 5S 停止 循环次数 n=n-1 返回原点 n=0 图 4-3-2 控制流程图 8 第三章 AT89C51 单片机工作原理 3.1 单片机内部组成及引脚功能 3.1.1 单片机的内部结构 AT89C51单片机的组成: CPU(进行运算、控制)、RAM(数据存储器)、 ROM(程序存储器)、I/O口(串口、并口)、内部总线 和中断系统等。组成框 图如下: 图3-1 MSC-51单片机结构框图 3.1.2 AT89C51 单片机的主要特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 全静态工作:0Hz-24Hz 寿命:1000次擦/写循环 数据的保留时间可达10年 1288位内部RAM 9 32可编程I/O线 三级程序存储器锁定 可编程的串行通道 两个16位计数器/定时器 闲置和掉电模式低功耗 5个中断源 3.1.3 AT89C51 单片机的引脚功能 本次选用的AT89C51单片机采用40引脚双列直插式封装(DIP)形式。引脚 排列及逻辑符号如图3-2所示,其中Vcc和Vss 引脚由于分别默认接电源和地而 被隐藏。下面分别说明这些引脚的意义和功能。 图3-2 AT89C51单片机引脚图 1电源线 VCC:接 +5V电源。 VSS:接电源地。 2端口线 10 P0P3口:48=32条。 (1) P0口( P0.0P0.7 ) P0口是一个8位双向I/O口,它的每跟管脚都可吸收8TTL的门电流。当P1口 首次写1的时候,P0口将被定义为高阻态输入。P0可用于外部程序数据存储器, 此时它作为数据/地址的第八位。当FIASH进行编程时,P0 口将作为原码输入 口;FIASH校验时,P0口作为原码输出口,此时P0口必须拉高的外部。 (2)P1口(P1.0P1.7) P1口是一个由单片机内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接 收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口 被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编 程和校验时,P1口作为第八位地址接收。 (3)P2口(P2.0P2.7) P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个 TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉 的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时, P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外 部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口 在FLASH编程和校验时接收高八位地址信号和控制信号。 (4)P3口( P3.0P3.7 ) P3口的管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。 当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由 于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口使用,各位的作用如下表3-1所示 所示: 表3-1 P3各口线的第二功能表 端口 第二功能 信号名称 P3.0 RXD 串行数据接收口 P3.1 TXD 串行数据发送口 11 P3.2 INT0外部中断0请求输入 P3.3 1外部中断1请求输入 P3.4 T0 定时器/计数器0的外部输入口 P3.5 T1 定时器/计数器1的外部输入口 P3.6 WR外部RAM写选通信号 P3.7 D外部RAM读选通信号 3控制信号引脚 RST:复位输入引脚。当器件被振荡器复位时,必须保持RST引脚有两个机 器周期时间的高电平。 ALE/PROG:当单片机访问外部存储器时,地址锁存所允许的输出电平将用 来锁存地址的地位字节。在 FLASH 进行编程时,编程脉冲由此引脚输入。一般 情况下,ALE 引脚端以恒定的频率周期来输出正向脉冲信号,此时的振荡频率 是振荡器振荡频率的 1/6。因此,它可作为向外部输出脉冲或用来定时的引脚。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁 止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指 令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 :外部程序存储器的选通信号。在由外部程序存储器取指期间,每PSEN 个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 :当 保持低电平时,则在此期间外部程序存储器(0000H-A/V FFFFH),不管是否有内部程序存储器。注意加密方式 1 时, 将内部锁定为EA RESET;当 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此E 引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出 12 3.2 单片机的时钟电路 AT89C51 单片机芯片内部有一个高增益反相放大器,用于构成时钟振荡电 路,XTAL1 为该放大器的输入端、XTAL2 为该放大器的输出端,由该放大器构 成的振荡电路与和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不 同,单片机的时钟连接方式又可分为内部时钟方式和外部时钟方式。内部时钟 方式如图 3-3 所示,外部时钟方式如图 3-4 所示。 图3-3 内部时钟方式 图3-4 外部时钟方式 13 3.3 单片机的工作方式 MCS-51系列单片机的工作方式可分为:复位方式、程序执行方式、单片 执行方式、掉电保护方式、节电工作方式和EPROM编程/校验方式。 复位方式:系统开始运行和重新启动靠复位电路来实现,这种工作方式为 复位方式。复位电路有两种:上电自动复位如图3-5所示,上电/ 按键手动复位 如图3-6 所示。 图 3-5 上电自动复位 图 3-6 上电/手动按键复位 14 程序执行方式:单片机基本工作方式,可分为连续执行工作方式和单步执 行工作方式。 连续执行工作方式:所有单片机都需要的工作方式。单片机复位后,PC 值为0000H,因此单片机复位后立即转到0000H处执行程序。单片机按照程序 事先编排的任务,自动连续地执行下去。 单步执行工作方式:用户调试程序的一种工作方式,在单片机开发系统 上有一专用的单步按键(或软件调试环境)。按一次,单片机就执行一条指令 (仅仅执行一条),这样就可以逐条检查程序,发现问题进行修改。单步执行 方式是利用单片机外部中断功能实现的。 节电方式:一种低功耗的工作方式,分为空闲(等待)方式和掉电(停机) 方式。是针对CHMOS类芯片而设计的,HMOS 型单片机不能工作在节电方式, 但它有一种掉电保护功能。 HMOS单片机的掉电保护:当VCC 突然掉电时,单片机通过中断将必须 保护的数据送入内部RAM,备用电源VPD可以维持内部RAM中的数据不丢失。 CHMOS单片机的节电方式:CHMOS 型单片机是一种低功耗器件,正常 工作时电流为1122mA,空闲状态时为1.75mA,掉电方式为550A 。它 适用于低功耗应用场合,它的空闲方式和掉电方式都是由电源控制寄存器 PCON中相应的位来控制。 编程和校验方式:用于内部含有EPROM的单片机芯片,一般的单片机开 发系统都提供实现这种方式的设备和功能。 15 第四章 单片机系统的设计 4.1 硬件配置与接口分配 4.1.1 存贮器空间分配 单板机可寻址范围是 64K 字节,板上提供的插座占 16K,已插入的芯片占 10K,其余以备扩展使用。其存贮空间分配如下。 0000H07FFH 2KB EPROM 存储监控程序 0800H0FFFH 2KB EPROM 存储零件加工程序 1000H17FFH 2KB RAM 调试程序 2000H27FFH 2KB RAM 测试程序等 4.1.2 I/O 口地址分配 单板机设置 I/O 口地址为 809FH 共 32 个口地址,分配如下。 80H83H MCS51 8031 84H87H 字形锁存 88H8BH 字位锁存 8CH8FH 读键值 90H9FH 用户使用 4.2 硬件电路的设计 数控系统硬件电路由以下几部分组成: 1、主控制器。即中央处理单元(CPU) 2、总线。包括数据总线,地址总线,控制总线。 3、存储器。包括只读可编程序存储器和随机读写数据存储器。本次选用 的AT89C51芯片内部自带有4K字节可编程的闪烁存储器,故不需再扩展存储器。 16 4、接口。即I/O输入输出接口。 数控系统的硬件框图如图4-1所示: 中央处理器 单元 CPU 存储器 RAM ROM 输入/输出 I/O 接口 信号变换 控制对象 外部设备(键盘、显示器、 打印机、通信接口等) 图4-1 数控系统的硬件框图 4.2.1 主控制器 CPU 的选择 AT89C51系列单片机是集中CPU,它有如下特点: 1可靠性高。 AT89C51能很好的适应工业生产环境,与PC机相比,它具有更强的抗外界 干扰能力。并且,它的系统软件(如:程序指令,常数,表格等)均固化于 ROM中,不易受到病毒的破坏。信号通道基本上都位于同一个芯片里,运行时, 系统可靠且稳定。 2便于扩展。 此系列单片机片内有微机正常运行必需具备的部件,其片外还有许多供用 户扩展用的(总线,串行和并行输入/输出)管脚,很容易就能组成一定规模且 适应要求的微机系统。 17 3控制功能较强。 AT89C51单片机具有丰富控制指令,如:I/O 口逻辑操作指令,位处理指 令,条件分支转移指令等。 4实用性好。 体积小,功耗低,价格便宜,易于产品化。 综上所述,由于它具有以上优点,所以本设计选用AT89C51单片机作为主 控制芯片。其引脚图如图3-2所示。 4.2.2 步进电机驱动电路的设计 步进电机是将电脉冲信号转变为角位移或线位移的开环控制步进电机元件。 在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲 数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转一个步距角。 脉冲数越多,电机转动的角度越大。 脉冲的频率越高,电机转速越快,但不能超过最高频率,否则电机的力矩 迅速减小,电机不转。 所以 PLC 在控制步进电机中起到的作用就是发出可控脉冲,通过调节脉冲 频率控制步进电机速度,通过调节脉冲数量控制步进电机转动的角度。 步进电机在构造上主要分为三种类型:反应式、永磁式和混合式。 图 3-3-2 两相步进电机的工作原理示意图 如上图 3-3-2 所示,该两相电机有两个绕组。当一个绕组通电后,其定子 磁极产生磁场,将转子吸合到此磁极处。若绕组在控制脉冲的作用下,通电方 向顺序按 AError!BError!Error!AError!BAError!四个状态周而复始 18 进行变化,电机顺时转动;通电时序为 AError!Error!BError!A BError!AError!时,电机逆时针转动。控制脉冲每作用一次,通电方向就变 化一次,使电机转动一步,此图所示只要 4 个脉冲,电机就转动一圈。脉冲频 率越高,电机转动越快。 通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量 磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场 方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。 每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的 脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。 所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的 转动。 1、步进电机的驱动电路如图 4-3 所示。 图 4-3 步进电机驱动电路 4.2.3 键盘 键盘是单片机应用系统中不可缺少的输入设备。通过键盘可向单片机应用 系统输入数据和控制命令,键盘是操作人员控制干预单片机应用系统的主要手 段。根据键盘组成形式可分为独立式键盘、矩阵式键盘及拨码式键盘几种。键 盘可工作于循环扫描方式、定时扫描方式或中断方式。 键盘一般是由一组机械按键按照一定的规律组合而成,通过按键的通、断 19 作用输入开关电压信号。按键由断开到闭合及由闭合到断开时,由于机械触点 的弹性作用,按键的动作不是立刻完成的,在闭合及打开的瞬间有机械抖动的 发生,抖动时间一般为 510ms,表现在输入电压信号上为输入信号是抖动的 不稳定的电平信号,其信号波形见图 4-8。 键 被 按 下 闭合稳态 按下抖动 释放抖动 图 4-8 按键抖动波形 按键闭合稳态时间由操作人员的按键时间决定,一般为零点几秒到几秒之 间。 为了躲开键抖动的影响,保证在按键闭合稳定状态下读取键值,需要对键 盘进行削抖处理。常用的削抖措施有硬件削抖和软件削抖两种。 硬件削抖是采用硬件电路的方法对键盘的按下抖动及释放抖动进行削抖, 经过削抖电路后使按键的电平信号只有两种稳定的状态。常用的削抖电路有触 发器削抖电路、滤波削抖电路两种。硬件削抖电路见图 4-9。 图 4-9 硬件削抖电路 20 硬件削抖电路解决了键抖动问题,但当应用系统所需按键比较多时,硬件 削抖电路将变得复杂,成本也比较高,因此硬件削抖一般只适用于按键比较少 的应用系统中。当系统中需要键盘数量比较多时可采用软件削抖方法对键盘抖 动进行消除。 软件削抖的基本原理是当第一次检测到有键按下时,根据键抖动时间的统 计规律先采用软件延时的方法延时一段时间(一般可取 10ms) ,然后再确认键 是否仍保持闭合状态,如仍保持闭合状态则键真正被按下,此时可读取键值, 否则可视为干扰,对其不予理睬。采用软件削抖方法可省去硬件削抖电路,但 键盘的工作速度将被降低。 1 独立式键盘 图 4-10 是通过 AT89C51 单片机 P1 口组成的具有 8 个按键的独立式键盘。 从图中可看出,独立式键盘的各个按键之间彼此是相互独立的,每一个按键连 接一根 I/O 口线。独立式键盘电路简单,软件设计也比较方便,但由于每一个 按键均需要一根 I/O 口线,当键盘按键数量比较多时,需要的 I/O 口线也较多, 因此独立式键盘只适合于按键较少的应用场合。 独立式键盘可工作在查询方式下,通过 P1 口读入键状态,当有键被按下时 相应的 I/O 口线变为低电平,而未被按下的键对应的 I/O 口线保持为高电平, 这样通过读 I/O 口状态可判断是否有键按下和哪一个键被按下。 2 矩阵式键盘 21 矩阵式键盘由行线、列线及位于行列线交叉点上的按键等部分组成。当应 用系统需要的按键数量比较多时可采用矩阵式键盘。 (1) 工作原理 图 4-11 为一 4x4 矩阵式键盘的基本结构。 图 4-11 矩阵式键盘工作原理 该键盘需要 4 根行线和 4 根列线共 8 根 I/O 口线,由于采用矩阵式结构, 与独立式按键不同,一根 I/O 口线已经不能确定哪一个键被按下,需要通过联 接到键上的两根 I/O 口线的状态确定键的状态,同时键的两端均接到 I/O 口线 上不能一端接 I/O 口线一端接地,因此必需采用行线与列线信号状态分别处理 综合考虑才能判断键闭合的位置。常用的键位置判别方法有扫描法和线反转法 两种。 (2) 键识别方法 键识别方法是指当键被按下时如何确定是哪一个键被按下。常用的键识别 方法有扫描法和线反转法,下面我们以图 4-11 为例加以说明。 扫描法 设图 4-11 的行线 H1H4 连接到 51 单片机 P1 口的 P1.0P1.3,列线 L1L4 连接到 P1 口的 P1.4P1.7 上,可通过如下程序判断哪一个键被按下。 22 KEY: MOV P1,#0FH ;列输出低电平,行输出高电平 MOV A,P1 ;读 P1 口状态 ANL A,#0FH ;保留行状态 CJNE A,#0FH,KEY0 ;有键按下转 KEY0 SJMP KEY ;无键按下等待,转键检测 KEY0: LCALL DELAY10 ;调 10mS 延时取抖 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY1 ;不是抖动转键值判断 SJMP KEY ;是抖动到键检测 KEY1: MOV P1,#11101111B ;第一列键被按下判断 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY11 ;第一列键被按下转 KEY11 处理 MOV P1,#11011111B ;第二列键被按下判断 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY11 ;第二列键被按下转 KEY11 处理 MOV P1,#01111111B ;第四列键被按下判断 MOV A,P1 ANL A,#0FH CJNE A,#0FH,KEY11 ;第四列键被按下转 KEY11 处理 LJMP KEY ;均不是转到键检测 KEY11:MOV A,P1 ;读键值 键值处理 从程序中我们可看出,键扫描法实际上是先使列(行)线全输出低电平, 23 然后判断行(列)线状态,若行线全为高电平,表示无键被按下;若行线不全 为高电平表示有键被按下,然后依次使列线为低电平,再判断行线状态,当行 线全为高电平时,表示被按下的键不在本列;当行线不全为高电平时,表示被 按下的键在本列,把此时的行线状态与列线状态和在一起即为被按下的键的位 置。 线反转法 扫描法对键的识别采用逐行(列)扫描的方法获得键的位置,当被按下的 键在最后一行时需要扫描 N 次(N 为行数) ,当 N 比较大时键盘工作速度较慢, 而线反转法则不论键盘有多少行和多少列只需经过两步即可获得键的位置。我 们仍以图 4-11 为例,线反转法的第一步与扫描法相同均是把列线置低电平, 行置高电平然后读行状态;第二步与第一步相反把行线置低电平,列线置高电 平然后读列线状态,若有键按下则两次所读状态的结果即为键所在的位置。这 样通过两次输出和两次读入可完成键的识别,比扫描法要简单。 KEY: MOV P1,#0FH ;列输出低电平,行输出高电平 MOV A,P1 ;读 P1 口状态 ANL A,#0FH ;保留行状态 CJNE A,#0FH,KEY0 ;有键按下转 KEY0 SJMP KEY ;无键按下等待,转键检测 KEY0: LCALL DELAY10 ;调 10mS 延时取抖 MOV A,P1 ANL A,#0FH MOV B,A CJNE A,#0FH,KEY1 ;不是抖动转键值判断 SJMP KEY ;是抖动到键检测 KEY1: MOV P1,#0F0H ;行输出低电平,列输出高电平 MOV A,P1 ANL A,#0F0H ORL A,B 24 键值处理 (3) 键盘工作方式 在实际应用系统中,键盘只是系统的一部分,键的识别也只是 CPU 工作内 容的一部分。系统在工作中采取何种方式对键盘进行识别,读取键状态这就是 键盘工作方式。键盘工作方式主要有扫描方式和中断方式两种。 扫描方式 键盘的扫描方式又可分为编程扫描和定时扫描。编程扫描是指在特定的程 序位置段上安排键盘扫描程序读取键盘状态,此时用户可输入数据和控制命令。 定时扫描是指利用单片机内部或扩展的定时器产生定时中断,在中断中进行键 盘扫描的工作方式。不论哪一种扫描方式,键盘程序都应当完成:键是否被按 下判断,按键削抖处理;求键位置等。 中断方式 中断方式是指,当无键按下时,CPU 处理其他工作而不必进行键的扫描; 当有键被按下时,通过硬件电路向 CPU 申请键盘中断,在键盘中断服务程序中 完成键盘处理。该种方法可提高 CPU 的工作效率。 4.2.4 显示器 1 七段 LED 显示器 LED 显示器是由发光二极管按照一定的排列规律组成的显示器件,这种显 示器有共阳极和共阴极两种组成形式,常用的七段 LED 显示器的内部结构和外 引脚排列见图 4-1。 在共阴极七段 LED 结构中,所有发光二极管的阴极接在一起形成公共极 COM,使用时 COM 接低电平,当某段发光二极管的阳极接高电平时,则该段二 极管发光显示字符。共阳极七段 LED 是把所有的发光二极管的阳极接在一起形 成公共端 COM,使用时 COM 端接高电平,当某段发光二极管的阴极接低电平时, 25 则该段二极管发光进行显示。 表 4-1 给出了七段 LED 的显示字型码。表中的字型码未包扩小数点位 Dp, 段线的排列格式按 g,f,e,d,c,b,a 即 g 段为显示段码的最高位,a 段为显示段 码的最低位,当然段线也可按照其他方式进行排列。从表中可看出共阴极结构 与共阳极结构的显示段码互为反码。 a)共阴极结构 b)共阳极结构 c)外引脚图 图 4-1 LED 结构及引脚排列图 表 4-1 七段 LED 字型码 显示字 符 共阴极字型 码 共阳极字型 码 显示字 符 共阴极字型 码 共阳极字型 码 0 3FH C0H A 77H 88H 1 06H F9H b 7CH 83H 2 5BH A4H C 39H C6H 3 4FH B0H d 5EH A1H 4 66H 99H E 79H 86H 5 6DH 92H F 71H 8EH 6 7DH 82H P 73H 8CH 26 7 07H F8H 40H BFH 8 7FH 80H 全灭 00H FFH 9 6FH 90H 问题:单片机控制电路中,应如何选择 LED 显示器的结构? 2LED 显示器的显示方式 在实际应用系统中,N 片七段 LED 构成 N 位七段码显示器。LED 的公共端 COM 叫做显示器的位选线,ag 称为段选线,这样 N 位 LED 显示器有 N 根位选 线,N8 根段选线(包括小数点位) 。位选线控制 LED 的每一位是否显示,段选 线控制每一位的显示字符。根据位选线与段选线的接法,LED 有两种显示方式: 静态显示方式和动态显示方式。 (1)静态显示方式 在静态显示方式,所有的位选线 COM 连接到一起接低电平(共阴极)或接 高电平(共阳极) ,每一位 LED 的段选线连接到一个 8 位显示输出口上,这样 N 位显示器共需要 8N 根显示输出线,显示时位与位之间是相互独立的,彼此 不产生影响。图 4-2 为静态 N 位 LED 显示器原理图。 图 4-2 N 位 LED 静态显示原理图 由于位选线接在一起,因此控制每一显示位的段选码即可控制每一位的显 示字符,保持段选码不变,则显示的字符也不变,当需要改变显示内容时只需 改变显示位的段码。这种显示方式具有显示亮度高,显示稳定,控制方便等优 27 点,但当显示的位数较多时,占用的 I/O 口线较多。 (2)动态显示方式 图 4-3 为 N 位动态显示硬件连接图。 图 4-3 N 位动态 LED 显示原理图 与静态显示方式不同,动态显示方式是把段选线的对应位连接到一起,接 到一个 8 位输出 I/O 口线上,每一位的位选线接到一根独立的 I/O 口线上,这 样 N 位显示器共需要 8+N 根 I/O 口线(8 根段选线,N 根位选线) 。显示时段选 码由同一 8 位 I/O 口输出,具体哪一位显示由位选码决定。由于段选码并联接 在一起,因此同一时刻只能有一位 LED 显示字符,其他位不显示,即只能有一 位位选线有效。为了能显示 N 位字符,必需 N 位 LED 数码管等间隔时间轮流发 光显示,只要显示间隔时间比较短,利用人眼视觉暂留的特点可造成 N 位同时 显示的效果。 动态显示与静态显示相比有需要 I/O 口线少、功耗小等优点,但控制程序 较复杂,显示亮度低。 3LED 显示器与单片机接口 LED 显示电路与单片机的接口分静态显示接口电路和动态显示接口电路两 类,每一类中又可分为软件译码和硬件译码两种控制方式。由于静态显示电路 和静态显示控制程序比较简单,因此静态显示电路在此不作介绍。软件译码方 法是指将要显示的字符通过程序的方法译成七段 LED 显示字型码,通过 I/O 口 28 直接输出 LED 的段选码;硬件译码是指将要显示的字符直接输出给硬件译码电 路,通过硬件译码电路再把 BCD 码或十六进制码转换成七段 LED 显示字型码。 (1)软件译码显示接口 图 4-4 为通过 8255A 并行可编程扩展接口构成的 8 位 LED 显示电路。其中 8255A 的 PA 口用于段选码的输出,PB 口用于位选码的输出,采用软件译码动 态显示方式。 图 4-4 软件译码动态显示电路 在该硬件电路中,反相器为位驱动器,LED 的段限流电阻未画出。 按图所示电路进行连接时所用 8255A 的各端口地址为: PA 口地址:7FFCH PB 口地址:7FFDH 控制口地址:7FFFH PA、PB 口均设定为输出工作方式,其控制字为 10000000B。控制程序如下: DISP: MOV DPTR,#7FFFH ;选择 8255A 的控制口 MOV A,#80H ;PA、PB 口控制字为 80H MOVX DPTR,A ;8255A 初始化 29 MOV R0,#TAB1 ;指向显示字符表 MOV R7,#08H ;显示位数送 R7 MOV B,#01H ;显示初始位位选线 COM1 有效 LOOP: MOV DPTR,#7FFDH ;指向 B 口 MOV A,B MOVX DPTR,A ;输出位选线 RL A MOV B,A MOV A,R0 ;取显示字符 INC R0 ;指向下一个显示字符 MOV DPTR,#TAB2 ;指向七段 LED 显示字型表 MOVC A,A+DPTR ;取显示七段字型码 MOV DPTR,#7FFCH ;指向 A 口 MOVX DPTR,A ;输出段显码 LCALL DELAY ;调延时子程序 DJNZ R7,LOOP ;8 位未显示完继续 上述程序为一次显示 8 位字符程序,若要不断显示可重复上述程序。 (2)硬件译码电路 硬件译码是采用硬件译码电路的方法完成显示字符到显示七段码的转换。 硬件集成译码电路类型较多,有 BCD-7 段译码器、BCD-7 段译码驱动器、BCD-7 段锁存译码驱动器、十六进制-7 段锁存译码驱动器等。表 4-2 给出了常用的硬 件译码集成电路及其性能。 表 4-2 常用的硬件译码集成电路 元件名 称 功能 驱动能力 备注 30 74LS46 、47 BCD-七段译码/输出驱 动器 段驱动 8mA 输出开路 74LS48 BCD-七段译码/输出驱 动器 段驱动 8mA 输出需上拉电阻 74LS49 BCD-七段译码/输出驱 动器 段驱动 8mA OC 输出 4511 BCD-七段译码/输出驱 动器 段驱动 8mA CMOS 器件,输出锁存 MC14558 BCD-七段译码 无驱动能力 MC14547 BCD-七段译码/输出驱 动器 段驱动 8mA MC14513 BCD-七段译码/输出驱 动器 段驱动 12mA 输出锁存 ICM7212 BCD-七段译码/输出驱 动器 段驱动 8mA 可静态驱动四位共阳极 LED ICM7218 8 位动态 BCD-七段译码 器 段驱动 20mA 位驱 动 170mA 可动态驱动 8 位共阳极 LED 动态扫描频率 250HZ 硬件译码驱动器与单片机及显示器的接口见图 4-5。 在该图中硬件译码驱动电路采用 BCD-七段码/输出锁存/驱动集成芯片 MC14513,位选驱动采用同向驱动器 7407。BCD 码与位选信号输出均通过 P1 口。 31 图 4-5 硬件译码驱动器与单片机及显示器的接口 4.3 其他辅助电路设计 4.3.1 AT89C51 的时钟电路单片机的时钟的产生方式 AT89C51 的时钟电路可以由两种方式产生:外部方式和内部方式。由于内 部时钟电路结构简单,无需外部施与时钟信号,故本次设计采用内部方式。内 部时钟方式是利用的芯片内部的振荡电路,具体则是在 XTAL1 和 XTAL2 引脚 上外接一个定时元件,如图 3-3 所示。晶体的振荡频率可在 1.212MHz 间任 选,耦合电容在 530PF 之间,这种方式对时钟具有微调作用。 4.3.2 AT89C51 复位电路 单片机的复位是靠外部电路来实现的,在时钟电路工作后,只要 RST 引脚 上有 10ms 以上的高电平出现,单片机就可以实现状态复位,然后单片机便从 0000H 单元开始执行程序。单片机通常采用上电自动复位和按钮复位两种复位 方式。为了尽可能简化电路,本次设计采用上电自动复位方式,如图 3-5 所示。 4.3.3 超程报警电路 为了防止工作台超程,可分别在极限位置安装限位开关。对于两坐标联动 32 的数控系统,4 个方向都可能超程,即+X、X、+Y、Y。当某一方向超程 时,应立即使工作台停止移动。图 4-4 为报警指示灯电路。为达到报警的效果, 要用到中断方式,这里采用 AT89C51 的外部中断方式,任何一个行程开关闭合 (即工作台在某一方向超程) ,均会产生中断信号。在电路中设置红绿灯作为 警示指示信号。正常工作时,绿灯亮;超程报警时,红灯亮。两灯均由一个 I/O 口输出。 图 4-4 报警指示灯电路 4.3.4 掉电保护电路 半导体存储器 RAM 最怕掉电,一但掉电,则里面存储的信息就会全部丢 失。工业作业现场环境恶劣,掉电是很有可能发生的。数控系统中的一些重要 的现场参数,如几何尺寸,工艺参数等都是存储在 RAM 中的,掉电后,数据 将会丢失。为了使掉电情况下, RAM 中的信息能得以保持,就必须设置掉电 保护电路。这样,恢复供电后,系统又能马上运行。图 4-5 所示的是一种简单 掉电保护电路的工作原理,图中 为电源电压, 为备用电池电压,并且+VB , 为存储器 RAM 的电源端,正常通电时,二极管 导通, 截止,+BVc 1D2 RAM 的工作电压由 提供,同时, 还通过电阻 R 对电池充电。断电后,+ 截止, 导通,此时 RAM 的工作电压由电池电压由电池 经二极管 和1D2 BV2 电阻 R 供给, 值一般取 3V 时,存储器就能可靠的保持信息。B 33 图 4-5 掉电保护电路 4.3.5 光电隔离电路 在步进电机驱动电路中,脉冲信号经功率放大器后控制步进电机励磁绕组。 由于步进电机需要的驱动电压较高,电流较大,如果功率放大器直接接输出信 号,将导致强电干扰。轻则影响程序的正常工作,重则导致单片机和接口电路 的损坏。所以一般在功率放大器与接口电路之间都要接上隔离电路。 光电隔离是有光耦合器来完成的。光耦合器是以光为媒介传输信号的器件, 其输入端配置发出光源,输出端配置接受光源,因而输入和输出在电气上是完 全隔离的。本设计将会使用开关量电路,因此设计时选择在电路中接入光耦合 器,从而使其输入侧与输出侧的信号得到了电气隔离,互补影响。 1光耦合器的选用 本案选用的是普通的信号隔离用光耦合器(TLP521-1),其内部结构形式见 图 4-6。 TLP521-1 光耦合器以发光二极管为输入端,光敏晶体管为输出端,能 够隔离频率在 100kHz 以下的信号,满足我此次设计的要求。 图 4-6 TLP521-1 光耦合器的内部结构形式图 2TLP521-1 光耦合器的主要参数及工作参数 TLP521-1 光耦合器是 TOSHIBA 公司生产的 TLP521 系列光耦合器的一种 结构形式,表 4-1 则给出了 TLP521 系列光耦合器推荐的工作参数,表 4-2 将 给出 TLP521 系列光耦合器的主要参数。 表 4-1 TLP521 光耦合器推荐工作参数 参数特性 符号 最小值 典型值 最大值 单位 供电电压 CV 5 24 V 正向电流 FI 10 25 mA 34 集电极电流 cI 1 10 mA 工作温度 opt-25 85 表 4-2 TLP521 光耦合器的主要参数 参数名称 符号 单位 TLP521 正向导通电流 FImA 50 集电极电流 cmA 50 最小电流传输比 minCRT% 100 最大电流传输比 ax% 600 集电极 -发射机反向击穿电压 BEOV( ) V 55 发射极 -集电极反向击穿电压 RC( ) V 7 集电极 -发射极饱和压降 (sat) V 0.4 响应时间 ONFTxS 2/3 隔离电压 ISkV 2.5 35 第五章 基于 PROTEUS 的直线运动平台运动仿真设计 5.1 Proteus 简介及仿真界面 1Proteus 软件简介 Proteus 是英国 Labcenter 公司开发的切入式系统仿真软件,组合了高级原 理图设计工具 ISIS、混合模式 SPICE 仿真、PCB 设计以及自动布线而形成了 一个完成的电子设计系统。它运行与 Windows 操作系统上,可以仿真、分析各 种模拟和数字电路,并且对 PC 机的硬件配置要求不高。该软件具有以下主要 特别: 实现了单片机仿真和 SPICE 电路仿真相结合,具有模拟电路仿真、数 字电路仿真、单片机及其外围电路仿真、RS232 动态仿真、 SPI 调式器、键盘 和 LCD 系统仿真的功能。 提供了大量的元器件,涉及电阻、电容、二极管、三极管、MOS 管、 变压器、继电器、各种放大器、各种激励源、各种控制器、各种门电路和各种 终端等;同时,也提供了许多虚拟测试仪器,如电流表、电压表、示波器、逻 辑分析仪、信号发生器、定时/计数器等。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、 8051 系列、AVR 系列、PIC12 系列、PIC16 系列、 Z80 系列、HC11 系列以及 各种外围芯片。 提供软硬件调试功能。同时支持第三方的软件编译和调试环境,如 Keil C51 Vision2 等软件。 具有强大的原理图编辑及原理图后处理功能。 Proteus VSM 虚拟系统模型组合了混合模式的 SPICE 电路仿真、动态器 件和微控制器模型,实现了完整的基于微控制器设计的协同仿真,真正使在物 理原型出来之前对这类设计的开发和测试成为可能。 2Proteus 仿真界面 如图 5-1 所示: 36 图 5-1 Proteus ISIS 仿真界面 5.2 Keil 简介 Keil 是美国 Keil Software 公司开发的,是目前世界上最好的 51 单片机的 汇编和 C 语言的开发工具。它支持汇编语言、C 语言以及混合编程,同时,它 还具有强大的模拟仿真功能。在进行模拟仿真时,不需要任何真实的硬件即可 实现用户程序的仿真和调试。仿真时,我们会将 Keil 与 Proteus 一起使用,充 分利用它们各自的模拟仿真功能,使得单片机软硬件调试达到很好的效果。 37 5-2 Keil 软件界面 5.3 Keil 中的程序调试 5-3 数控直线运动平台控制程序调试 38 程序调试成功后,生成.HEX 文件,并保存。 5.4 Proteus 仿真系统硬件原理图 在进行仿真前,应先在 Proteus ISIS 中绘制出总体的电气控制原理图, 并仔细检查线路是否连通。 本次设计中的数控直线运动平台运动控制即是要用单片机控制给 X、Y 轴 传递运动的两个步进电机的转动,包括两个步进电机各自的正反转,以及两轴 联动。具体仿真系统硬件原理图如图 5-4 所示。 图 5-4 Proteus 仿真系统硬件原理图 5.5 运行调试 在 Proteus ISIS 中绘制完仿真原理图后,将之前生成的.HEX 文件导入到 AT89C51 单片机中,点击“调试” ,并“执行”程序。仿真结果如下图 5-5 至 5-7 所示: 39 图 5-5 运行调试图 1两轴电机同时运转 图 5-6 运行调试图 2X 轴电机运转 40 图 5-7 运行调试图 3Y 轴电机运转 41 设计总结 基于单片机的数控直线运动平台运动控制设计与虚拟仿真测试到这里已接 近尾声了,整个设计过程完成的任务主要有: 1)完成了数控系统整体方案的选择。 2)完成步进电动机的选择。选择型号为 90BF001 的反应式步进电机。 3)完成整个控制系统的硬件设计。该控制系
展开阅读全文