北方民族大学论文题目: 基于单片机步进电机控制系统 电气信息工程学院组长姓 20100259指导教师姓名: 组员: 论文提交时间: 论文答辩时间: 学位授予时间: 北方民族大学教务处制 随着微电子和计算机技术的发展步进电机的需求量与日俱增 它广泛用 于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电 产品中 其在各个国民经济领域都有应用。研究步进电机的控制系统 对提高控 制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件 步进 电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控 制,用C语言编写软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增 加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行 方式。 本设计是采用AT89C51单片机对步进电机的控制,通过I/O口输出的时序 方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。 实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能 更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中常用的执 行器件———步进电机。 关键词: 步进电机 单片机 正反转控制 速度控制 角度控制 LED发光 二极管 目录前言................................................................................................................................. 1.1单片机的选取 1.2步进电机及驱动的选取 1.3驱动芯片的选取 2.1时钟电路 2.2复位电路 3.1软件流程图 3.2语言软件的选取 结论................................................................................................................................10致谢................................................................................................................................10 参考文献.........................................................................................................................10 附件................................................................................................................................11 1.C 语言程序部分:...................................................................................................11 2.仿真图如下...........................................................................................................15 步进电机及其发展步进电机又称为脉冲电动机或阶跃电动机,它是基于基本的电磁感应作用 将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广 泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设、照 相机,大型望远镜,卫星天线定位系统等等。随着经济的发展 技术的进步和电 子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提 出了更高的要求。 步进电机的原始模型起源于1830 年至1860 1870年前后 开始以控制为目的的尝试 应用于氩弧灯的电极输送机构中,这被认为早的步 进电机。 1950 年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控 制变得更为容易。到20 世纪60 年代后期 在步进电机本体方面随着永磁材料的 发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步 进电机已广泛运用在需要高定位精度、高分解能、步进电机高响应性、信赖性等灵活控制 性高的机械系统中。步进电机在生产过程中要求自动化、省人力、效率高的机器中,我们 很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要操作各项指 令动作的灵活控制性场合步进电机用得多。 2.国内外步进电机技术发展概况 我国步进电机的研究及制造起始于本世界50年代后期,从50年代后期到60年 代后期,主要是高等院校和科研机构为研究一些装置而使用或开发少量产品。我 国在中开始大量生产和应用步进电机。例如、浙江、北京、南京、 四川等各地都有投入生产,而且都在各行业使用,其中的驱动电路所有半导体器 件都是完全国产化的。当时是全分立元器件构成的逻辑运算电路,还有电容耦合 输入的计数器、触发器、环形分配器。中等耐压的大功率半导体器件也完全国产 化。70年代初期,步进电机的生产和研究都有所突破,除反映在驱动器设计方面 的长足进步以外,对反应式步进电机本体的设计研究发展到一个较高的水平。70 年代中期至80年代中期为成品发展阶段,新品种高性能电动机不断被开发。至80年代中期以来,由于步进电机模型做了大量研究工作,各种混合式步进电机 及驱动器作为产品广泛利用。 国外在大功率的工业设驱动上,目前基本不使 用大扭矩步进电动机,因为从驱动电路的成本,效率、噪音、加速度、速度、 系统惯量与扭矩比比较、比较不划算、还是用直流电动机、加电动机编码器 整体技术和经济指标高。一些少数高级的应用、就用空心转杯电机、交流电机。 国外在小功率的场合,还使用步进电机。例如一些工业器材、工业生产装、打 印机、复印件、速印机、银行自动柜员机。国内过去是用大力矩步进电动机实现 机床数控,有实力的现在也采用交流电动机驱动数控机床,在驱动设的主 要差距,是国外对交流电动机的控制理论与工程分析和应用能力强,先进的控制 理论作为软件,写在控制器内部。 目前,生产步进电机的家的确不少,但具有专业技术人员,步进电机能够自行开发, 研制的家却非常少,大部分的家只一、二十人 连基本的设都没有。仅 仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。虽然 步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常 规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。 因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知 3.设计方案及思路该设计采用 51 单片机扫描三乘三矩阵键盘控制四相步进电机的正反转,角 度及速度。 单片机实现对四相步进电机的手动和遥控控制。由单片机产生的脉冲信号经 过脉冲分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后 驱动步进电机的转动。转速的调节和状态的改变由按键进行选择。通过键盘扫描 把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉 冲的频率或转动状态信号。电机转动的不同状态由LED 指示灯显示。 总开关打开相应指示灯亮,总开关关闭指示灯灭,如果电机工作,也会停止 工作所有指示灯熄灭;反转对应指示灯亮,正转对应指示灯灭,默认正转;档位 分别是5.625度与45 度切换,45 度档位指示灯灭,5.625 度指示灯亮。默认45 度,角度增加与减小按键分开,默认8 下,即360 度;速度三种分别快、中、慢, 速度默认为零;后启动按键,启动后相应指示灯亮,电机转完之后,指示灯灭, 在启动之前一定要设置速度,因为速度默认为零。 正文 1.主要器件的选取 1.1 单片机的选取 随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时器 /计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片 机早期的含义称为单片微型计算机(single chip microcomputer),直译为单片 机,沿用至今。准确反映单片机本质的叫法应是微控制器(microcontroller)。 单片机具有集成度高,功能强,可靠性高,体积小,功耗低。使用方便,价格低 廉等特点,在各个领域得到了广泛的应用和发展,目前已渗透到人们工作和生活 的各个角落,几乎无处不在。革片机早是以嵌入式微控制器(EmbeddedMicro- controller)的面貌出现的。在嵌入式系统中,它是应用多的核心器件。在计 算机主导工业生产并且目益走进家庭生活的今天,从家用电器、工业控制、医疗 仪器到军事应用,到处都有单片机的存在。目前世界上有很多单片枕卷4造, 如美国的INTEL、ATMEL、MOTOROLA和ZILOG:德国的SIEMES;荷兰的PHILIP 等。他们相继推出了各种类型的单片机,其中INTEL撰出的一种离性能8 位单片机MCS--51系列单片机以优越的性能,成熟的技术和高性价比迅速占领了 工业测控和自动化工程领域的主要市场,成为单片机领域中的主流产品。除了 INTEL外,PHILIP,ATMEL,ADM,SIEMES等纷纷推出了与MCS--51系列兼 容的单片机,其中ATMEL的89系列单片机也称Flash单片机是以8031为核心构 成的,它和INTEL的MCS--51系列单片机完全兼容,它不但继承了MCS一51系 列原有的功能,而且又扩展了它的功能。对于一般用户来说,89系列单片机存在 下列很显著的优点: 内部含Flash存储器;和AT80CSl插座兼容; 静态时钟方式: 错误编程亦无废品产生; 可反复进行系统试验。 使用方便是ATMEL 89 系列单片机被广泛应用的一个主要因素。一般的 OTP 产品,一旦错误编程就成了废品,而 89 系列单片枫内部采用了 Flash 存储 器,所以,错误编程后仍可以重新编程,直到正确为止。其次是它可反复进行系 统试验。用 89 系列单片枕设计的系统,可以反复进行系统试验,每次试验可以 编入不同的程序,这样可以保证用户的系统设计达到,而且还可以随用户的 需要和发展进行修改,使系统能不断追髓用户的要求。89 系列单片机可分 为标准型号,低档型号和高档型号。鉴于以上的优点,经过分析比较,根据本课 题的特点,选用ATMEL 89 系列懿标准型单片机ATC89C51。 1.2 步进电机及驱动的选取 步进电机又称电脉冲马达。它是将电脉冲信号转换成机械角位移的执行元 件。输入一个电脉冲就转动一步,即每当电机绕组接受一个电脉冲,转子就转过 一个相应的步距角。转子的角位移的大小及转速分别与输入的电脉冲数及其频率 成正比。并在时间上与输入脉冲同步。只要控制输入电脉冲的数量、频率以及电 机绕组通电相序即可获得所需的转角、转速及转向,很容易用微机实现数字控制。 步矩角的大小与通电方式和转子齿数有关,其大小可用下式计算: a=360/(zm) 运行拍数,通常等于相数或相数整数倍,即m=KN( 本设计步进电机采用四相五线混合式步进电机,直径:28mm;电压:5V;步进角度: 1/64;减速比:1/64;单个重:0.04KG;5线相使用。四相步进电机按照通电顺序的不同,可分为单四 动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。例如:八拍工作方式 A-AB-B-BC-C-CD-D-DA。 1.3 驱动芯片的选取 步进电机的驱动芯片选用ULN2003A,ULN200A 电路具有以 下特点:电流增益高(大于1000);带负载能力强(输出电流大 于500mA);温度范围宽(-40~85);工作电压高(大于50V)。 引出端脚的功能符号 引出端序号 符号 功能 引出端序号 符号 同意功能 1B输入 COM公共端 2B输入 10 7C 输出 3B输入 11 6C 输出 4B输入 12 5C 输出 5B输入 13 4C 输出 6B输入 14 3C 输出 7B输入 15 2C 输出 发射极16 1C 输出 ULN2003A 型高压大电流达林顿晶体管阵列电路的输入脉冲占空比、输出路 数与输出电流的关系曲线可以看出,随着输入脉冲的占空比以 及输出路数的增加,允许的输出电流随之降低,也就是说:电路的输出路数的增加 将导致电路的驱动能力下降。 所示为ULN2003A电路输出电流Ic、输出电压VCE 和输入电流I1 三者之间 的关系曲线 可以看出,随着输入电流的增加,输出电压随之降低,而随着 输出电流的增加,输出电压也随之增加。 ULN2003A 主要电特性 特性 符号 条件 (若无其它规定,TA=-40~ 85) 规范值 单位 小 直流放大倍数 hEF VCE=2V,Ic350mA 1000 集电极-发射极饱和电压 VCE(sat) IB=500μ A,IC=350mA 箝位二极管正向电压 VF IF=350mA,输入开路 集电极截止电流ICEX VCE=50V Ii=0mA IFEXVF=50V TA=25 集电极电压Vamx 空载 50 集电极电流Imax VCE=2V 500 mA开态延迟时间 ton VCE=5V,16kHz 的方波输入 -1.0 关态延迟时间toff VCE=5V,16kHz 的方波输入 -1.0 2.单片机的主要系统电路2.1 时钟电路 单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通 常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构 成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和 输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用 中常采用这种方式,如图所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构 成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶 瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图中外接晶体以及电 容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为 30PF左右,晶振频率选12MHz。 30PF ATC89C51 ATC89C51 XTAL2 VCC GND 12M 10UF RESET GND 30PF XTAL1 1KΩ 时钟电路 复位电路 2.2 复位电路 为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位 后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单 片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个 机器周期时间以上的高电平,即可引起系统复位。但如果RST引脚上持续为高电 平,单片机就处于循环复位状态。复位后系统将输入/输出(I/O)端口寄存器置 为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部 RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。 3.软件设计 3.1 软件流程图 系统软件程序设计主要包括:主程序设计.键盘扫描,电机控制正反转,速 度,角度控制程序等。 开始 键盘扫描 总开关是否打开 角度档位设置与转速按键设置步进电机正反转选择角度 对应的指示灯亮 结束步进电机停止工作对应的指示灯熄灭 3.2语言软件的选取 本系统下位机以单片机为核心,采用C 语言编程。C 语言是书写程序的一种 软件语言,它是计算机软件设计的重要工具。在系统软件开发、实时控制的和实 时处理领域中有着不可替代的地位。用C 语言编程使编程简洁易懂,进而进行高 质量的设计,而且它不独立于具体机器,是一种非常通用的高级程序设计语言, 采用C 语言编程,因此,在已经有众多高级语言和可视化集成开发环境工具的今 语言有着重要的有效的程序设计语言地位。4.仿真 仿真使用protues 软件,仿真图如下 正反转 开关 角度增加 速度快 速度中 速度慢 启动 档位45/5.625 X1 CRYSTAL C1 22p C2 22p R11k C3 10u RP1RESPACK-7 1B 1C16 2B 2C15 3B 3C14 4B 4C13 5B 5C12 6B 6C11 7B 7C10 COM U2ULN2003A 角度减小 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST P0.0/AD039 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 P3.0/RXD10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 Q1 PNP Q2 PNP Q3 PNP Q4 PNP D1 LED-BIBY D2 LED-BIBY D3 LED-BIBY D4 LED-BIBY +88.8 5.元件清单 ATC89S51 单片机,九个开关四个LED 二极管,四个三极管,一个12M 结论经过这个学期对微机的深入学习,并且在老师的悉心指导和严格要求下,我 们终于完成了四相步进电机设计课程。从书本上的知识到自己亲手的课程设计, 每一步对我们来说无疑是巨大的尝试和挑战,也成就了我们目前在大学期间独立 完成的的项目。记得在刚接到这个课题时,由于对相关知识不是很了解,我 们都有些茫然不知所措。设计好一个步进电机需要什么专业知识?带着这个疑问 我们开始了地学习和实验:去图书馆查阅相关资料、上网去了解相关的内容,渐 渐头脑中的概念清晰了起来。在具体设计的过程中,我们遇到了更大的困难。我 们不断地给自己提出新的问题,然后去论证、推翻,再接着提出新的问题。在这 个循环往复的过程中,我们这篇稚嫩的设计日臻完善。虽然我们的设计作品不是 很成熟,即使借鉴前人的很多资料仍然还有很多不足之处,但我仍然心里有一种 莫大的幸福感,因为我们实实在在地走过了一个完整的设计所应该走的每一个过 程,并且享受了每一个过程。 致谢 首先,我们要感谢毛老师指导,毛老师在各个方面都给予了我无微不至的关 怀和帮助,他对工作一丝不莓,严谨治学的态度,使我深受启发和感动,在此表 达对他的深深敬意和感激之情。同时还要感谢我的组员同学积极和配合上,并向 所有帮助和关心着我们的老师和同学们,在此道一声谢谢。 参考文献 (1)单片机原理与接口技术 (2)模拟电子技术 (3)数字电路 附件1.C 语言程序部分: #include
typedef char int8; typedef unsigned char uint8; typedef unsigned int uint16; sbit Keyin_1=P0^3; sbit Keyin_2=P0^4; sbit Keyin_3=P0^5; sbit D1=P2^0; sbit D2=P2^1; sbit D3=P2^2; sbit D4=P2^3; /*================延时函数==================*/ void delay_1(uint8 dat) {while(dat--);} /*================键盘函数=================*/ uint8 keyboard_1(void) staticuint8 dat=0; uint8 a[]={0XFe,0XFd,0XFb},i, 4,5,7,9,11,15}; delay_1(20);if(!Keyin_1) dat=b[i][0];while(!Keyin_1); return dat; delay_1(20);if(!Keyin_2) dat=b[i][1];while(!Keyin_2); return dat; delay_1(20);if(!Keyin_3) dat=b[i][2];while(!Keyin_3); return dat; /*===================角度速度控制函数=============*/void motor_1(uint8 dat) int8i,a[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; static bit ON=0,RL=0,ST=0; static uint16 P1=0X00;if(dat==1){ON=~ON;D1=~D1;} if(dat==2){RL=~RL;D2=~D2;}if(dat==3){if(L==64)L=8;else L=64;D3=~D3;} if(dat==4)K--; if(dat==5)K++; if(dat==15)ST=1; if(dat
以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com