-1-1绪论1.1提出问题并确定设计方案1.1.1问题的提出传统的步进电机控制方法是由触发器产生控制脉冲来进行控制的,但此种控制方法工作方式单一且难于实现人机交互,当步进电机的参数发生变化时,需要重新进行控制器的设计。而且由传统的触发器构成的控制系统具有控制电路复杂、控制精度低、生产成本高等缺点。为了克服传统控制器的缺点,满足工业生产新的控制要求,在此设计一种以单片机为核心的新型控制器。1.1.2明确课题任务单片机对步进电机的控制有如下几项要求:(1)为用户使用方便,需要实现人机交互。(2)为实现对不同相数的步进电机进行控制而不更换控制器的要求,需要实现励磁方式的可控性。(3)要求实现步进电机的转速可控和旋转角度可控。(4)要求有足够的控制精度。1.1.3确定设计方案通过对控制系统的分析,确定了如下的设计方案:(1)确定系统的I/O点数和通道:①输入和输出量的确定:输入量:主要是键盘输入。输出量:步进电机的驱动信号和LED数码管显示信号。②输入、输出通道的确定:除了键盘/显示器的输入/输出外,输出通道还有驱动步进电机信号的输出通道。-2-(2)选择单片机:根据控制系统所要求的控制精度、响应速度、开发环境、I/O点数、输入/输出通道数等情况选择了MCS-51系列的8位单片机8051,其具有4KBROM和256BRAM,因此不需要进行存储器的扩展。(3)确定键盘/显示器。本设计需要一个8×2的键盘和一个6位的显示器,它们的接口电路采用8255A。单片机日记:器件,输入和输出与TTL电平兼容。电源电流最大值为120mA,具有3个8位的并行I/O口,有三种工作方式,可通过编程改变其功能,使用灵活,通用性强。因此,本设计键盘和显示部分选用8255A芯片。(4)设计单片机控制系统图:步进电机接口电路与单片机连接时,为了可靠地实现信号隔离,减少输入输出设备对单片机系统的电信号干扰,需要用光电耦合器。1.2研究内容和方法本课题的主要任务是设计一个单片机对步进电机进行控制的控制系统,主要研究内容和方法如下。-3-1.2.1研究内容(1)主要研究内容是通过单片机对步进电机的正转,反转,转速,步距角进行控制。(2)用6位LED显示器组成高亮度的显示电路来显示步进电机的转速等运行参数。(3)用8255A作为键盘和显示电路的接口芯片。(4)用PMM8713作为步进电机的接口芯片。(5)设计单片机控制系统的硬件电路。(6)编写控制系统主程序,绘制程序流程图。1.2.2研究方法主要研究方法是:用单片机原理及其接口技术,通过软硬件相结合的方法实现对步进电机的工作状态和工作参数的控制。单片机对步进电机的控制有串行控制和并行控制两种方式。本设计采用的是串行控制方式,此方式下单片机控制系统与步进电机驱动器之间只有两条控制线。一条发出时钟脉冲信号来控制步进电机的转速;另一条发出转向信号控制步进电机的转向。这两个信号都是送入步进电机驱动器的输入端,驱动器中含有环行分配器,对步进电机励磁方式的控制和控制脉冲的分配都是由环行分配器来完成的。由于单片机控制系统与驱动器之间只有两条控制线,从而使系统结构大为简化。控制系统按速度控制的要求从时钟脉冲控制线发出相应的控制脉冲即可对步进电机的转速进行控制。当需要恒速运行时,就发出恒定频率的控制脉冲;当需要加速运行时,就发出频率递增的控制脉冲;当需要减速运行时,就发出频率递减的控制脉冲;当需要锁定状态时,只需要停止发脉冲就可以了。因此,可以方便地对电动机的转速进行控制。转向控制线可实现对步进电机转向的控制,当输出高电平“1”时,环行分配器按正方向进行脉冲分配,步进电机正向旋转;当输出低电平“0”时,环行分配器按反方向进行脉冲分配,步进-4-电机反方向旋转。1.3本课题研究的意义传统的步进电机控制方法是由触发器产生控制脉冲来进行控制的,由此种方法构成的控制系统具有电路复杂、灵活性差、控制精度低、生产成本高、调试和维护麻烦等缺点。在本设计中应用单片机接口技术,使用大规模集成电路PMM8713设计了一种新型的步进电机控制系统,这种控制系统具有集成度高、电路简单、成本低、控制精度高、调试和维护方便等优点。这种步进电机的接口电路,可以通过对单片机的设定,用同一种电路,实现对各种励磁方式下3、4相步进电机的控制和驱动,从而大大提高了接口电路的灵活性和通用性。通过本课题的研究,能全面巩固单片机及其控制技术的相关知识和技能;能掌握步进电机的运行原理及控制方法;能了解芯片的选择、程序的编写、软硬件的配合、各种抗干扰措施的应用等方面的知识。总之,本设计既能结合工业生产生活的实际又能达到本次毕业设计的要求。-5-2控制系统硬件电路的设计2.1单片机最小应用系统设计单片微型计算机(singlechipmicrocomputer)简称单片机。它把组成微型计算机的各功能部件:中央处理器(CPU),随机存取存储器RAM,只读存储器ROM,可编程存储器EPROM,并行及串行输入/输出(I/O口)接口电路及其它功能部件如定时器/计数器、中断系统等集成在一块半导体芯片上,构成一个完整的微型计算机。随着大规模集成电路技术的发展,单片机内还可包含A/D和D/A转换器、高速输入/输出部件、DMA通道、浮点运算等新的特殊功能部件。由于它的结构和指令都是按工业控制要求设计的,特别适合于工业控制及与控制有关的数据处理场合,因而目前应确切称其为微控制器(Microcontroller)。由于单片机和普通微机相比,具有小巧、灵活、成本低、可靠性强、面向控制好、易于产品化、适应温度和湿度变化范围宽,能在各种恶劣的环境下工作等独特的优点,使得它在众多需要进行高精度控制的场合得到广泛应用。单片机加上适当的外围器件和应用程序便构成了最小应用系统。最小应用系统设计是单片机应用系统设计的基础。它包括单片机的选择、时钟系统设计、复位电路设计、简单I/O扩展、掉电保护等。-6-2.1.18051单片机简介(1)8051单片机的基本结构①8位中央处理器CPU②振荡器与时序电路③4KB程序存储器ROM④256B的数据存储器RAM⑤1个可编程串行口⑥4个8位的I/O端口⑦2个16位的定时器/计数器(2)8051的引脚8051为双列直插式40脚封装,有40个引脚,大致可分为电源、时钟、地址总线、数据总线和控制总线6个部分。①电源线Vcc(40脚):主电源,接+5VVss(20脚):电源地线②控制线ALE/(30脚):当访问片外存储器时,ALE的输出用于锁存低字节地址信号。不访问外存储器时,其以不变的频率周期性地出现脉冲信号,其频率为振荡器频率的1/6。因此,它可以用作对外输出的时钟脉冲,或用于定时目的。(29脚):片外程序存储器的读选通信号。CPU在从片外程序存储器取指令期间,每个机器周期两次有效。在访问内部程序存储器时,该信号不会出现。RST/VPD(9脚):单片机复位/备用电源引脚。当接上电源时,其内部-7-各寄存器处于随机状态,在引脚上输入两个机器周期的高电平将使单片机复位。当Vcc电压突然下降或掉电时,此引脚上的备用电源能保护片内RAM中的信息,使复位后能继续正常运行。/Vpp(31脚):当输入高电平时,CPU可访问片内程序存储器4KB的地址范围。当超出此范围时,将自动转向片外程序存储器。当输入低电平时,CPU只能访问片外程序存储器。XTAL1(19脚)和XTAL2(18脚):外部晶振引脚。③I/O总线P0口可作为一般I/O口用,但当系统采用外部总线结构时,它分时作为低8位地址线和8位双向数据线用。P1口的每一位可独立作为I/O口用。P2口可作为一般I/O口和高8位地址线用。P3口为双功能口,除了独立作为I/O口外,每一位还具有第二功能.2.1.2时钟电路设计时钟电路是单片机的心脏,各部分都以时钟频率为基准,有条不紊地一拍一拍的工作。利用芯片内部的振荡电路,在XTAL1和XTAL2两端跨接晶体振荡器和两个电容C1、C2就构成了一个稳定的自激振荡器。8051内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是反相放大器的输入端和输出端,由于这个放大器与作为反馈元件的片外晶体一起构成了一个自激振荡器,这种形式的时钟信号称为内部时钟方式。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2越大则f越小),典型值为30pF。-8-MCS-51的一个机器周期由六个状态(S1,S2,···S6)组成,每一个时钟为2个振荡周期,一个机器周期有6个时钟周期即12个振荡周期。本课题采用的晶振为6MHz,所以每个机器周期为2µS。2.1.3复位电路设计单片机在启动或断电后,程序需要从头开始执行,机器内全部寄存器、I/O接口等都必须重新复位,这个功能由复位电路来完成。设计复位电路是应注意:①要保证加在RST上的高电平持续2个机器周期,才能使单片机有效地复位。②在实际的应用系统中,有些外围芯片也需要复位。如果这些复位端的复位电平要求与单片机复位一致,则可以与之相连。③复位电路中,干扰易窜入复位端,在大多数情况下不会单片机的错误复位,但会引起内部某些寄存器的错误复位。这时,可在RST引脚上接一个去藕电容。④在应用系统中,为了保证复位电路可靠地工作,常将R、C电路先接史密特电路,然后再接入单片机和外围电路复位端。这样,当系统有多个复位端时,能保证可靠地同步复位,且具有抗干扰能力。本次毕业设计复位电路采用上电自动复位和手工复位两种方式,如图2-4所示。-9-上电瞬间,电容C两端电压不能突变,+5V电压绝大部分加到电阻R上,RESET端出现高电平。只要高电平持续时间足够长,就可以使单片机有效复位。RESET端加电时应保持的高电平时间包括Vcc的上升时间和振荡器起振时间。Vcc上升时间约为10ms,振荡器起振时间和频率有关,10MHz时约为1ms,本课题采用6MHz振荡频率,所以起振时间约为1.7ms。为了可靠复位,RESET端上电时应保持15ms以上的高电平。人工复位时,Rs(330)相对于R(10K)来说很小,按下RESET键后,+5V电压在电阻R上的分压105510330RKVVVK,RESET端为高电平。由于按键为机械弹性开关,其闭合和断开所需时间远远大于单片机的两个机器周期(6MHz时为4S),所以单片机能够可靠复位。2.2键盘和显示部分设计8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,具有三种工作方式,可通过程序改变其功能。因而使用灵活,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8255A有三种基本工作方式,三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供。三个端口中PC口被分为两个部分,上半部分随PA口称为A组,下半部分随PB口称为B组。其中PA口可工作与方式0、1和2,而PB口只能工作在方式0和1。8255A共有40个引脚,采用双列直插式封装。设计键盘和显示部分选用8255A芯片。方便良好的人机界面是用8255A芯片来实现的,它具有键盘处理功能,能自动消除键抖动。本设计中键盘控制部分可控制8×2个按键,采用有6位LED显示,具有较强的人机互动功能。-10-2.2.18255A简介(1)8255A的内部结构①数据端口A、B、CA口:一个8位数据输出锁存/缓冲器,一个8位数据输入锁存器。B口:一个8位数据输入/输出、锁存/缓存器。一个8位数据输入缓冲器。C口:一个8位数据输出锁存/缓冲器,一个8位数据缓冲器。②工作方式控制电路工作方式控制电路有两个,一个是A组控制电路一个是B组控制电路。这两组控制电路共用一个控制命令寄存器,用来接收中央处理器发来的控制字,以决定两组端口的工作方式,也可以根据控制字的要求对C口按位清0或者按位置1。A组控制电路用来控制A口和C口上半部分(PC7~PC4)。B口控制电路用来控制B口和C口下半部分(PC3~PC0)。③总线数据缓