1、1 引言 1.1 课题研究的目的和意义 步进电动机是用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或 线位移的微电动机,它最突出的优点是可以在宽广的频率范围内通过改变脉冲频 率来实现调速,快速起停、正反转控制及制动等,并且用其组成的开环系统既简 单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众 多领域有着极其广泛的应用。随着微电子和计算机技术的发展,步进电动机的需 求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。 1.2 国内外研究概况 步进电机是国外发明的。中国在文化大革命中已经生产和应用,例如江苏、 北京都生产,而且都在各行业使用,驱动电路所有半
2、导体器件都是完全国产化的, 当时是全分立元器件构成的逻辑运算电路,还有电容耦合输入的计数器,触发器, 环形分配器。 国外在大功率的工业设备驱动上,目前基本不使用大扭矩步进电动机,因为 从驱动电路的成本,效率,噪音,加速度,绝对速度,系统惯量与最大扭矩比来 比较,比较不划算,还是用直流电动机,加电动机编码器整体技术和经济指标高。 一些少数高级的应用,就用空心转杯电机,交流电机。 国外在小功率的场合,还使用步进电机,例如一些工业器材,工业生产装备, 打印机,复印件,速印机,银行自动柜员机。国外用许多现代的手段将步进电机 排挤出驱动应用,除了前面提到的旋转编码器,打印机还使用光电编码带或感应 编码带
3、配合直流电动机,实现闭环直线位移控制。 国内过去是用大力矩步进电动机实现机床数控,有实力的公司现在也采用交 流电动机驱动数控机床,在驱动设备的主要差距,是国外对交流电动机的控制理 论与工程分析和应用能力强,先进的控制理论作为软件,写在控制器内部。 在卫星、雷达等应用场合,中国在文化大革命后期,就生产了力矩电机,就 生产了环形力矩电机,在高品质的控制场合,有时还不能使用步进电机。步进电 机的细分控制,在改革开放初期,国内就已经基本掌握,这与交流电动机的矢量 控制相比,难度要低得多。 2 步进电机与单片机简介 2.1 步进电机介绍 2.1.1 步进电机概述 步进电机是一种将电脉冲转化为角位移的执行
4、机构。通俗一点讲:当步进驱 动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度 (及步进角) 。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的; 同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目 的。一般步进电机的精度为步进角的 3-5%,且不累积。 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载 的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受 负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性 关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、 位置等控
5、制领域用步进电机来控制变的非常的简单。 正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定 频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压 波动和负载变化的影响。由于步进电动机能直接接收数字量的输入,所以特别适 合于微机控制。 本次课程设计采用的是步距角为 1.8 度的四相八拍永磁式步进电机。 步进电机的基本参数: (一)步进电机的静态指标术语 1、相数:产生不同对 N、S 磁场的激磁线圈对数。常用 m 表示。 2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用 n 表示,或指电机转 过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即 AB
6、-BC-CD- DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A. 3、步距角:对应一个脉冲信号,电机转子转过的角位移用 表示。=360 度 (转子齿数*运行拍数) ,以常规二、四相,转子齿为 50 齿电机为例。四拍运行时 步距角为 =360 度/(50*4)=1.8 度(俗称整步) ,八拍运行时步距角为 =360 度/(50*8)=0.9 度(俗称半步) 。 4、定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐 波以及机械误差造成的) 5、静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力 矩。此力矩是衡量电机体积(几何尺寸)的
7、标准,与驱动电压及驱动电源等无关。 虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气隙有关,但过份采用减 小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械 噪音。 (二)步进电机动态指标及术语: 1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比 表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在 5%之内,八 拍运行时应在 15%以内。 2、失步:电机运转时运转的步数,不等于理论上的步数。称之为失步 3、失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调 角产生的误差,采用细分驱动是不能解决的。 4、最大空载起动
8、频率:电机在某种驱动形式、电压及额定电流下,在不加负载的 情况下,能够直接起动的最大频率。 5、最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负 载的最高转速频率。 6、运行矩频特性:电机在某种测试条件下测得运行中输出力矩与频率关系的曲线 称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依 据。电机一旦选定,电机的静力矩确定,而动态力矩却不然,电机的动态力矩取 决于电机运行时的平均电流(而非静态电流) ,平均电流越大,电机输出力矩越大, 即电机的频率特性越硬。 要使平均电流大,尽可能提高驱动电压,使采用小电感 大电流的电机。 7、电机的共振点:步进电机均
9、有固定的共振区域,二、四相感应子式步进电机的 共振区一般在 180-250pps 之间(步距角 1.8 度)或在 400pps 左右(步距角为 0.9 度) ,电机驱动电压越高,电机电流越大,负载越轻,电机体积越小,则共振 区向上偏移,反之亦然,为使电机输出电矩大,不失步和整个系统的噪音降低, 一般工作点均应偏移共振区较多。 8、电机正反转控制:当电机绕组通电时序为 A-AB-B-BC-C-CD-D-DA 时为正转,通 电时序为 DA-D-CD-C-BC-B-AB-A 时为反转。 2.1.2 步进电机的工作原理 步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移 或是直线位移,
10、就是给一个脉冲信号,电动机转动一个角度或是前进一步。步进 电机的角位移量与脉冲数成正比,它的转速与脉冲频率(f)成正比,在非超载的情 况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载 变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。 如下所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对 步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图 1 是该四 相反应式步进电机工作原理示意图 2.1.2.1 所示。 图 2.1.2.1 四相步进电机步进示意图 开始时,开关 SB 接通电源,SA、SC、SD 断开,B 相磁极和转子 0、3 号齿对 齐
11、,同时,转子的 1、4 号齿就和 C、D 相绕组磁极产生错齿,2、5 号齿就和 D、A 相绕组磁极产生错齿。 当开关 SC 接通电源,SB、SA、SD 断开时,由于 C 相绕组的磁力线和 1、4 号 齿之间磁力线的作用,使转子转动,1、4 号齿和 C 相绕组的磁极对齐。而 0、3 号齿和 A、B 相绕组产生错齿,2、5 号齿就和 A、D 相绕组磁极产生错齿。依次类 推,A、B、C、D 四相绕组轮流供电,则转子会沿着 A、B、C、D 方向转动。 单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图 2.1.2.2 所 示。 图 2.1.2.2 步进电机工作时序波形图 2.1.3 步进电机的分
12、类与选择 现在比较常用的步进电机包括反应式步进电机(VR) 、永磁式步进电机(PM) 、 混合式步进电机(HB)和单相式步进电机等。 反应式步进电动机采用高导磁材料构成齿状转子和定子,其结构简单,生产 成本低,步距角可以做的相当小,一般为三相,可实现大转矩输出,步进角一般 为 1.5 度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成, 定子上有多相励磁绕组,利用磁导的变化产生转矩,但动态性能相对较差。 永磁式步进电机转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。 用转子和定子之间的吸引和排斥力产生转动,它的出力大,动态性能好,但步距 角一般比较大。一般为两相,转矩和体积较
13、小,步进角一般为 7.5 度 或 15 度。 混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相: 两相步进角一般为 1.8 度而五相步进角一般为 0.72 度。这种步进电机的应用最 为广泛,它是 PM 和 VR 的复合产品,其转子采用齿状的稀土永磁材料,定子则为 齿状的突起结构。此类电机综合了反应式和永磁式两者的优点,步距角小,出力 大,动态性能好,是性能较好的一类步进电动机,在计算机相关的设备中多用此 类电机。 步进电机有步距角(涉及到相数) 、静转矩、及电流三大要素组成。一旦三大 要素确定,步进电机的型号便确定下来了。 1、步距角的选择 电机的步距角取决于负载精度的要求,将
14、负载的最小分辨率(当量)换算到 电机轴上,每个当量电机应走多少角度(包括减速) 。电机的步距角应等于或小于 此角度。目前市场上步进电机的步距角一般有 0.36 度/0.72 度(五相电机) 、0.9 度/1.8 度(二、四相电机) 、1.5 度/3 度 (三相电机)等。 2、静力矩的选择 步进电机的动态力矩一下子很难确定,我们往往先确定电机的静力矩。静力 矩选择的依据是电机工作的负载,而负载可分为惯性负载和摩擦负载二种。单一 的惯性负载和单一的摩擦负载是不存在的。直接起动时(一般由低速)时二种负 载均要考虑,加速起动时主要考虑惯性负载,恒速运行进只要考虑摩擦负载。一 般情况下,静力矩应为摩擦负
15、载的 2-3 倍内好,静力矩一旦选定,电机的机座及 长度便能确定下来(几何尺寸) 。 3、电流的选择 静力矩一样的电机,由于电流参数不同,其运行特性差别很大,可依据矩频 特性曲线图,判断电机的电流(参考驱动电源、及驱动电压) 。 2.2 步进电机驱动系统介绍 步进电机不能直接接到交直流电源上工作,而必须使用专用设备步进电 机驱动器.步进电机驱动系统的性能,除与电机本身的性能有关外,也在很大程度 上取决于驱动器的优劣。典型的步进电机驱动系统是由步进电机控制器、步进电 机驱动器和步进电机本体三部分组成。步进电机控制器发出步进脉冲和方向信号, 每发一个脉冲,步进电机驱动器驱动步进电机转子旋转一个步距
16、角,即步进一步。 步进电机转速的高低、升速或降速、启动或停止都完全取决于脉冲的有无或频率 的高低。控制器的方向信号决定步进电机的顺时针或逆时针旋转。通常,步进电 机驱动器由逻辑控制电路、功率驱动电路、保护电路和电源组成。步进电机驱动 器一旦接收到来自控制器的方向信号和步进脉冲,控制电路就按预先设定的电机 通电方式产生步进电机各相励磁绕组导通或截止信号。控制电路输出的信号功率 很低,不能提供步进电机所需的输出功率,必须进行功率放大,这就是步进电机 驱动器的功率驱动部分。功率驱动电路向步进电机控制绕组输入电流,使其励磁 形成空间旋转磁场,驱动转子运动。保护电路在出现短路、过载、过热等故障时 迅速停
17、止驱动器和电机的运行。 2.3 单片机原理 2.3.1 单片机原理概述 单片机(single-chip microcomputer)是把微型计算机主要部分都集成在一 块芯片上的单芯片微型计算机。图 2.3.1.1 中表示单片机的典型结构图。由于单 片机的高度集成化,缩短了系统内的信号传送距离,优化了结构配置,大大地提 高了系统的可靠性及运行速度,同时它的指令系统又很适合于工业控制的要求, 所以单片机在工业过程及设备控制中得到了广泛的应用。 图 2.3.1.1 典型单片机结构图 2.3.2 单片机的应用系统 单片机在进行实时控制和实时数据处理时,需要与外界交换信息。人们需要 通过人机对话,了解系
18、统的工作情况和进行控制。单片机芯片与其它 CPU 比较, 功能虽然要强得多,但由于芯片结构、引脚数目的限制,片内 ROM、RAM、I/O 口 等不能很多,在构成实际的应用系统时需要加以扩展,以适应不同的工作情况。 单片机应用系统的构成基本上如图 2.3.2.1 所示。 图 2.3.2.1 单片机的应用系统 单片机应用系统根据系统扩展和系统配置的状况,可以分为最小应用系统、 最小功耗系统、典型应用系统。本设计是设计一款最小应用系统,最小应用系统 是指能维持单片机运行的最简单配置的系统。这种系统成本低廉、结构简单,常 用来构成简单的控制系统,如开关量的输入/输出控制、时序控制等。对于片内有 ROM
19、/EPROM 的芯片来说,最小应用系统即为配有晶体振荡器、复位电路和电源的单 个芯片;对与片内没有 ROM/EPROM 芯片来说,其最小应用系统除了应配置上述的 晶振、复位电路和电源外,还应配备 EPROM 或 EEPROM 作为程序存储器使用。 2.3.3 AT89C51 简介 AT89C51 的主要参数如表 2-3-3-1 所示。 表 2-3-3-1 AT89C51 的主要参数 型号 存储器 EPROM ROM RAM 定 时 器 I/O 串 行 口 中 断 速度 (MH) 其它特点 89C51 4K 128 2 3 1 6 24 低电压 AT89C51 含 EPROM 电可编闪速存储器。
20、有两级或三级程序存储器保密系统, 防止 EPROM 中的程序被非法复制。不用紫外线擦除,提高了编程效率。程序存储 器 EPROM 容量可达 20K 字节。 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与 工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储 器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效
21、微控制器,为很多嵌入式控 制系统提供了一种灵活性高且价廉的方案。其引脚如图 2.3.3.1 所示。 1、主要特性: 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 图 2.3.3.1 单片机的引脚排列 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2、管脚说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管
22、脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器, 它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口, 当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接 收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口 被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程 和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2
23、口缓冲器可接收, 输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作 为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内 部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存 取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1
24、”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: P3 口管脚备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器
25、件时,要保持 RST 脚两个机器周期的高电平时 间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不 变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时, 将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微 处理器在外部执行状态 ALE 禁止,置位无效。
26、/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将 不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) , 不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于 施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3、I/O 口引脚: a:P0
27、 口,双向 8 位三态 I/O 口,此口为地址总线(低 8 位)及数据总线分时复 用; b:P1 口,8 位准双向 I/O 口; c:P2 口,8 位准双向 I/O 口,与地址总线(高 8 位)复用; d:P3 口,8 位准双向 I/O 口,双功能复用口。 4、振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信 号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 5、芯片擦除: 整个 EPROM
28、阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在 任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持 两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数 器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器, 禁止所用其他芯片功能,直到下一个硬件复位为止。 3 硬件电路的设计 3.1 系统整图 系统整图如图 3.1.1 所示,本系统采用外部中断方式,p2 口作为信号的输入 部
29、分,p0 口为发光 LCD 显示部分,p1 口作为电机的驱动部分。 图 3.1.1 系统整图 3.2 电源部分 利用 LM7812 和 LM7805 芯片得到 12V 和 5V 的电压,它们的应用要注意以下几 点:(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏; (2)输出电流不能太大,1.5A 是其极限值。大电流的输出,散热片的尺寸要足 够大,否则会导致高温保护或热击穿;(3)输入输出压差也不能太小,大小效率 很差。 其中 12V 电压给步进电机供电,5V 电压则给单片机供电。分别如图 3.2.1、图 3.2.2 所示。 (1) 、产生 12V 的电压给步进电机供电 图
30、 3.2.1 12V 电路部分 (2)产生 5V 的电压给单片机供电 图 3.2.2 5V 电路部分 3.3 最小系统 基本电路的最后一个部分是存储器的设置,如果 31 脚接电源,则采用内部存 储器,如果 31 脚接地,则采用外部存储器。将时钟电路、复位电路与单片机连接 并设置好存储器,就构成了最小系统。这是做任何单片机设计都必须有的部分。 如图 3.3.1 所示。 图 3.3.1 最小系统 3.4 驱动部分 此电路是步进电机的驱动部分,我选用的是 ULN2001 芯片来驱动的,ULN2001 系列是一款高耐压,大电流达林顿管驱动器,包含 7 个 NPN 达林顿管。如图 3.4.1 所示。 图
31、 3.4.1 驱动部分 3.5 状态指示部分 状态指示用 P0 口控制 LCD 的显示,STA 显示的是转动的方向,SPD 显示的是 转动的速度,RUN 显示的是机器是否运转,用它来表示步进电机所处的状态。如 图 3.5.1 所示。 图 3.5.1 状态指示部分 3.6 按键部分 本次设计选用的是单片机的 P2 口来控制信号的输入,所以把按键开关和 P2 口连接起来,当按下开关 KEY1 时,相当于给 P2.0 口一个低电平,开始转动;当 按下开关 KEY2 时,相当于给 P2.1 口一个低电平,步进电机反转,相反则正转; 当按下开关 KEY3 时,相当于给 P2.2 口一个低电平,调节转速。
32、如图 3.6.1 所示。 图 3.6.1 按键部分 3.7 时钟部分 时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟 频率来提高 CPU 的速度,本次设计采用的晶振为 12MHz。如图 3.7.1 所示。 图 3.7.1 时钟部分 3.8 复位部分 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复 位。本例使用上电复位。如图 3.8.1 所示。 图 3.8.1 复位部分 3.9 keil-uvision4 简介及调试 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开 发系统,与汇编相比,C 语言在功能上
33、、结构性、可读性、可维护性上有明显的 优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一 个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 (uVision)将这些部分组合在一起。运行 Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。如果你使用 C 语言编程,那么 Keil 几 乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集 成环境、强大的软件仿真调试工具也会令你事半功倍。 2009 年 2 月发布 Keil Vision4,Keil Vision4 引入灵活的窗口管理系统, 使开发人员能够
34、使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制 的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口, 提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的 ARM 芯片, 还添加了一些其他新功能。 2011 年 3 月 ARM 公司发布最新集成开发环境 RealView MDK 开发工具中集成了 最新版本的 Keil uVision4,其编译器、调试工具实现与 ARM 器件的最完美匹配。 C 语言仿真如图 3.9.1 所示。 图 3.9.1 keil-uVision 调试 3.10 proteus 仿真步进电机正转 Proteus 仿真正转局部图。如图 3.
35、10.1 所示。 图 3.10.1 Proteus 仿真正转 3.11 proteus 仿真步进电机反转 Proteus 仿真反转局部图。如图 3.11.1 所示。 图 3.11.1 Proteus 仿真反转 3.12 proteus 仿真总图与 proteus 简介 以下是 proteus 仿真时的各种情况。 1、速度 1 正转。如图 3.12.1 所示。 图 3.12.1 速度 1 正转 2、速度 1 反转。如图 3.12.2 所示。 图 3.12.2 速度 1 反转 3、速度 1 正转停止。如图 3.12.3 所示。 图 3.12.3 速度 1 正转停止 4、速度 2 正转停止。如图 3
36、.12.4 所示。 图 3.12.4 速度 2 正转停止 5、速度 3 正转停止。如图 3.12.5 所示。 图 3.12.5 速度 3 正转停止 6、速度 1 反转停止。如图 3.12.6 所示。 图 3.12.6 速度 1 反转停止 7、速度 2 反转停止。如图 3.12.7 所示。 图 3.12.7 速度 2 反转停止 8、速度 3 反转停止。如图 3.12.8 所示。 图 3.12.8 速度 3 反转停止 9、速度 2 正转。如 图 3.12.9 所示。 图 3.12.9 速度 2 正转 10、速度 3 正转。如图 3.12.10 所示。 图 3.12.10 速度 3 正转 11、速度
37、 2 反转。如图 3.12.10 所示。 图 3.12.10 速度 2 反转 12、速度 3 反转。如图 3.12.11 所示。 图 3.12.11 速度 3 反转 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件件中国。 它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目 前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单 片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青 睐。Proteus 是世界上著名的 EDA 工具(仿真软件),从原理图布图、代码调试到 单片机与外围电
38、路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的 完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软 件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等, 2010 年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。 在编译方面,它也支持 IAR、Keil 等多种编译器。 4 软件设计 4.1 系统开发软硬件环境 与其它的微处理器一样,开发步进电机驱动系统控制程序也需要一套完整的 软件和硬件开发工具。近年来,随着以
39、51 单片机为内核的单片机的不断发展和普 及,国外的一些公司纷纷推出了以 51 单片机为基础的集成开发环境。本次毕业设 计选用的单片机是 AT89C51。 4.2 系统程序框图 系统分为电机正转、电机反转、开始与转速的几部分组成,其主程序框图如 图 4.2.1 所示。 主程序 N Y N Y N 图 4.2.1 系统程序框图 判断正反转 开始 初始化 判断正反转并 xxxxxxian 显 LCD1602 初始化 显示基本字符 判断运行速度并显示 KEY1 是否 按下 显示“OFF”显示“ON” 判断是否 为首次按 键 运行电动机,并 确定延时时间 判断正反转 运行电动机,并 确定延时时间 4.
40、3 系统程序 C 程序: #include “reg51.h“ #include “intrins.h“ #include “absacc.h“ #define busy 0x80 #define uchar unsigned char #define uint unsigned int sbit RS=P23; sbit RW=P24; sbit E=P25; sbit KEY1=P20; sbit KEY2=P21; sbit KEY3=P22; uchar code tab8=0x02,0x06,0x04,0x0C,0x08,0x09,0x01,0x03; uchar temp; voi
41、d delay(uchar k) uint i,j; for(i=0;ik;i+) for(j=0;j60;j+) ; void test_1602busy() P0=0xFF; E=1; RS=0; RW=1; _nop_(); _nop_(); while(P0 _nop_(); E=1; _nop_(); E=0; void write_1602Command(uchar co) test_1602busy(); RS=0; RW=0; E=0; _nop_(); P0=co; _nop_(); E=1; _nop_(); E=0; void write_1602Data(uchar D
42、ata) test_1602busy(); P0=Data; RS=1; RW=0; E=1; _nop_(); E=0; void init_1602(void) write_1602Command(0x38);delay(5); write_1602Command(0x01);delay(5); write_1602Command(0x06);delay(5); write_1602Command(0x0F);delay(5); write_1602Command(0x0C); void DisplayOneChar(uchar X, uchar Y, uchar DData) YX if
43、(Y)X|=0x40;X|=0x80; write_1602Command(X);write_1602Data(DData); void display_1602(uchar *DData,X,Y) uchar ListLength=0; YX while(X16) DisplayOneChar(X,Y,DDataListLength); ListLength+; X+; void main() uchar i=0;uchar delay_v=100;uchar flag=0; P1=0xFF;P2=0xFF; init_1602(); display_1602(“STA: SPD: “,0,
44、0); display_1602(“RUN: “,0,1); while(1) if(KEY2=1) DisplayOneChar(4,0,Z); else DisplayOneChar(4,0,F); if(KEY3=0) i+;i=i%3; while(KEY3=0) ; switch(i) case 0:delay_v=100; DisplayOneChar(13,0,1);break; case 1:delay_v=75; DisplayOneChar(13,0,2);break; case 2:delay_v=100; DisplayOneChar(13,0,3);break; if
45、(KEY1=0) display_1602(“ RUN:on “,0,1); if(flag=0) if(KEY2=1) temp=0;P1=tabtemp; flag=1;delay(delay_v); if(KEY2=0) temp=6;P1=tabtemp; flag=1;delay(delay_v); if(KEY2=1) temp+;if(temp=8) temp=0; P1=tabtemp;delay(delay_v); if(KEY2=0) temp-;if(temp=0xFF) temp=7; P1=tabtemp;delay(delay_v); else display_16
46、02(“ RUN:off “,0,1); 5 结论 经过为期两周的学习和努力,本次设计顺利完成,具体结论如下: 1、采用单片机作为控制核心,利用其强大的功能,把按键电路和 LCD 显示电路, 电机驱动电路有机的结合起来,组成一个操作方便,交互性强的简单系统。 2、通过系统的设计实现了预期的设计目标,完成了全部的设计任务,具体功能如 下:完成了整个系统的硬件设计和软件编程,能通过按键电路控制步进电机的转 速控制,能实现启动、正转、反转、速度控制;通过编程实现了通过单片机能输 出四相八拍的脉冲控制序列。驱动电路能提供 12V,0.3A 的驱动信号;整个电机 的转速,转动方向等都能通过 LCD 管显
47、示出来;整个的成果形式是最终以步进电 机控制电路板的形式展示出来了。 3、在本设计中作为电机正常工作比较重要的电机驱动模块,本设计中是采用驱动 芯片 ULN2001 来实现的,其特点是成本低,可靠性高,出现问题容易维护,实现 相对容易等特点。 4、在电机工作模式上本设计实现了电机的四相八拍种脉冲控制方式。 后续工作: 1、在本次设计中更多的是注重整体功能的实现,注重的是操作简单,所以本系统 采用了开环控制的方式,电机也是选用的最常用的步进电机。通过在本设计中的 学习和查阅资料,想要得到更高性能的控制,可以选用混合式步进电机,采用闭 环的细分驱动电路。 2、本设计 KEY2 用一个按键控制正反转
48、,观察起来有点困难。建议以后有做类似 设计任务的时候,预先考虑全面,争取一个键控制一个功能。 3、本设计的硬件制作部分完全是实行的手工焊接,没有制作 PCB 板,这样的后果 就是焊接完电路板之后容易出现问题,检查麻烦,而且要是在后期全部制作调试 都完成后再中途出现问题了检查起来是相当的麻烦。所以建议以后有做类似设计 任务或者实际应用的时候,尽量采用 PCB 电路板的形式,这样最大的好处就是硬 件的可靠性高,外观美观简洁,尤其是在大量设计的时候,采用 PCB 电路板成本 也不高,值得采用。 参 考 文 献 1 孙涵芳.MCS-51/96 系列 单片机原理及应用(修订版).北京航空航天大学出 版社
49、.1994 2 李朝青.单片机原理及接口技术(第 3 版).北京航空航天大学出版社.2005 3 周润景、袁伟亭、景晓松.Proteus 在 MCS-51&ARM7 系统中的应用百例.电子 工业出版社.2006 4 张友德.单片微型机原理、应用与实验M.上海:复旦大学出版社,2005. 5 李夙.异步电动机直接转矩控制M.北京:机械工业出版社,1998. 6 王鸿钰.步进电机控制入门M.上海:同济大学出版社,1990. 7 袁任光,张伟武.电动机控制电路选用与 258 实例M.北京:机械工业出版社, 2005. 8 王秀和.永磁电机M.北京: 中国电力出版社,2007. 9 房玉明,杭柏林.基于单片机的步进电机开环控制系统J.电机与控制应用, 2006,33(4):64-64. 10 孙笑辉,韩曾晋.减少感应电动机直接转矩控制系统转矩脉动的