《步进电机角度控制设计(DOC 32页)》由会员分享,可在线阅读,更多相关《步进电机角度控制设计(DOC 32页)(49页珍藏版)》请在金锄头文库上搜索。
1、 _目录摘要11设计任务与要求21.1设计目的21.2设计要求和设计指标22方案分析33系统硬件部分43.1主控模块43.2键盘输入模块73.3电机模块83.4显示模块114系统软件部分134.1整体流程图及主程序134.2按键流程图及程序144.3显示模块程序194.4电动机模块流程图及程序204.5中断程序225仿真运行246心得体会25参考文献26附录一:Protues硬件仿真图27附录二:系统程序28 _摘要步进电机在控制系统中具有很广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器或角位移发生器等。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机
2、件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。此次设计使用C语言作为编程语言。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图
3、形和动画,具体应用例如单片机以及嵌入式系统开发 。硬件部分使用89C51作为主控芯片,并使用ULN2003A将单片机的信号放大以控制步进电机,同时使用4位数码管显示转动角度及次数。关键词:步进电机 C语言 AT89C51 ULN2003A 转动角度 1设计任务与要求1.1设计目的设计制作和调试一个由8086组成步进电机角度测控系统。通过这个过程学习熟悉键盘控制和七段数码管的使用,掌握步进电机的角度控制和角度显示方法。1.2设计要求和设计指标1在显示器上显示任意四位十进制数2将8个键定义键值为07,按任意键在显示器上显示对应键值3实现:(1)定义键盘按键:5个为数字键15;3个功能键:设置SET
4、、清零 CLR、开始START;(2)显示器上第一位显示次数,后三位显示每次行走的角度;(3)通过键盘的按键,设置步进电机各次的角度值;第一位设置次数,后三位设置角度值。(4)按START键启动步进电机开始转动,按SET键停止;按CLR键清零。2方案分析课程设计要求设计一个直流电机微型计算机角度控制系统,定义8个键盘按键:5个为数字键15;3个功能键:设置SET、清零 CLR、开始START;显示器上的四位可显示转动次数和每次转动角度;通过键盘的按键,设置步进电机转动次数和每次转动角度;按START键启动电机开始转动,按SET键停止;按CLR键清零。综合分析之后,我们应该将电路实现利用键盘按键
5、通过89C51的P3口实现输入功能,并通过89C51的P0口和P1口实现对数码管显示的控制。同时我们可以通过P2口控制ULN2003A驱动电动机运行。我们可以将整体电路设计成几个相对独立而又有机结合的模块,来逐一进行分析。通过分析我们可以画出系统图,如图2-1所示。图2-1 系统图3系统硬件部分3.1主控模块3.1.1 AT89C51芯片本次设计是使用AT89C51作为主控芯片,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的M
6、CS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51的40个引脚主要有一下几种(1)VCC:供电电压。(2)GND:接地。(3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必
7、须被拉高。(4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。(5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
8、在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。(6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口还有其他一些特殊功能,本事设计没有使用,故在此不做叙述。(7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8)ALE/PROG:当访问外部存储器时,地址锁存允许的
9、输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信
10、号将不出现。(10)/EA/VPP:当/EA保持低电平时,则在此期间为外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器读取外部ROM数据。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,单片机读取内部程序存储器。(扩展有外部ROM时读取完内部ROM后自动读取外部ROM)。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。(11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。(12)XTAL2:来自反向振荡器的输出图3-1 AT89C51芯片3.1.2时钟电路及复位电路在本次课程设计中,我们用到AT89C51单片机。而他需要一些
11、特定的控制电路的控制才能更好地工作。具体到本次课设中,我们需要时钟电路、防抖电路、复位电路等。如图3-2所示是我们的时钟电路,由电容C1、C2以及晶振组成。图3-2 时钟电路如图3-3所示是我们的复位电路。图3-3 复位电路3.2键盘输入模块在微机化仪器仪表中,键盘是最常用的一种输入设备,用于输入数据和命令。键盘的每一个按键都被赋予一个代码,称为键码。键盘系统的主要工作包括及时发现有键闭合,求闭合键的键码。根据这一过程的不同,键盘可以分为两种,即全编码键盘和非编码键盘。全编码键盘多是商品化的计算机输入设备,自动提供对应于被安检的ASCII码,且能同时产生一个控制信号通知微处理器。此外,这种键盘
12、具有处理抖动和多键串键的保护电路,具有使用方便、价格较贵、体积较大、按键较多等特点。非编码键盘恰如一组开关,一般组成行和列矩阵。其全部工作过程,如按键的识别、键的代码获取、防止串键及消抖等问题,都靠程序完成。因此,它所需要的硬件少,价格便宜,一般作为单板机、智能仪表等简单的输入设备。键盘电路常用的有两种,一种是独立式键盘电路,另一种是矩阵式键盘。独立式键盘每个按键独占一根I/O线。因此键识别软件非常简单。对于只有几个按键的系统,常采用这种电路。对于多按键系统来讲,这种电路忧郁将占用更多的I/O线而变得无法实用。矩阵式键盘电路将I/O口线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的
13、交叉点上,这就构成了行列式键盘。行列式键盘中按键的数量可达行线数n乘以列线数m。由此可以看到行列式键盘在按键较多时,可以节省I/O线。按键开关的两端分别接在行线和列线上。行线通过一个电阻接到+5V电源上,在没有键按下时,行线处于高电平状态。判断是否有键按下的方法是:向所有的列线I/O口输出低电平,然后将行线的电平状态读入累加器中,若无键按下,行线仍保持高电平状态,若有键按下,行线至少应有一条为低电平。当确定有键按下后,即可进行求键码的过程。其方法是:依次从一条列线上输出低电平,然后检查各行线的状态,若全为高电平,说明闭合键不在该列;若不全为1,则说明闭合键在该列,且在变为低电平的行的交点上。在
14、键盘处理程序中,每个键都被赋予了一个键号,由从列线I/O口输出的数据和从行线I/O口读入的数据可以求出闭合键的键号。图3-4键盘模块原理图3.3电机模块3.3.1步进电机结构及工作原理步进电机又叫脉冲电机,它是一种将电脉冲信号转换为角位移的机电式数模转换器。在开环数字程序控制系统中,输出控制部分常采用步进电机作为驱动元件。步进电机控制线路接受计算机发来的指令脉冲,控制步进电机作为驱动元件。步进电机控制线路接收计算机发来的指令脉冲,控制步进电机做相应的转动。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
15、这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机的驱动电路根据控制信号工作,控制信号由8086通过8255A产生。此次设计采用四相式步进电机。图3-5 步进电机励磁线圈(1) 步进电机工作原理说明步进电机由转子和定子组成。转子由一个永久磁铁构成,定子分别由四组绕组组成。步进电机组成和电气连接分别如图3-6和3-7所示。 图3-6 转子和定子示意图 图3-7 电气连接示意图当S1连通电源后,定子磁场将产生一个靠近转子为N极,远离转子为S极才磁场,这样的定子磁场和转子的固有磁场发生作用,转子就会转动,正确地S1、S4的送电次序,就能控制转子旋转的方向。例如:若送电的顺序为S1闭合断开S2闭合断开S3闭合断开S4闭合断开,周而复始的循环,在定子和转子共同作用下,电机就瞬时针旋转:若送电的顺序为S4闭合断开S3闭合断开S2闭合断开S1闭合断开,周而复始的循环,则电机就逆时针旋转,原理同理。3.