kl800.com省心范文网

基于单片机步进电动机毕业设计


河南工业职业技术学院

目 录
绪言 ................................................................ 2 第 1 章 系统方案论证 ................................................ 3 1.1 系统基本功能 ................................................... 3 1.2 设计方案介绍 ................................................... 4 1.3 系统设计 ....................................................... 4 第 2 章 硬件设计 ..................................................... 6 2.1 单元模块设计 ................................................... 6 2.1.1 单片机 AT89C51 介绍 ........................................... 6 2.1.2 步进电动机工作原理 .......................................... 12 2.1.3 键盘输入块 .................................................. 14 2.1.4 光电耦合器与驱动系统 ........................................ 16 2.1.5 显示快 ...................................................... 18 2.2 单片机与步进电机的接口电路图 .................................. 22 第 3 章 控制系统的软件设计 ......................................... 24 3.1 程序设计流程图 ................................................ 24 3.2 汇编程序 ...................................................... 第 4 章 仿真与调试 .................................................. 第 5 章 结果分析 .................................................... 第 6 章 总结 ........................................................ 致谢 ............................................................... 参考文献 ........................................................... 25 31 31 32 33 34

1

河南工业职业技术学院

1 绪言
步进电机最早是在 1920 年由英国人所开发。1950 年后期晶体管的发明也逐 渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良, 使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖 性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的 机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精 确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元 件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微 电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都 有应用。 步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可 以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电 动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动, 每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲 的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、 频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有 脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。 因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点, 因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机 已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能 量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机 可以作为一种控制用的特种电机,利用其没有积累误差(精度为 100%)的特点,广 泛应用于各种开环控制 步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应 作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进 电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设 备、照相机,大型望远镜,卫星天线定位系统等等。随着经济的发展,技术的进 步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行 性能提出了更高的要求。 1950 年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得 更为容易。到 20 世纪 60 年代后期,在步进电机本体方面随着永磁材料的发展, 各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机 已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的 机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易

2

河南工业职业技术学院

发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作 的灵活控制性场合步进电机用得最多。 步进电机作为数字式执行元件,相当于一个将电脉冲信号转变为角位移或线 位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉 冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电 机则转过一个步距角。这一线性关系的存在,加上步进电动机具有结构简单、成 本低、易于控制、吴累计误差和计算机接口方便等优点,使得在速度、位置等控 制领域用步进电机来控制变的非常的简单,被广泛应用于各种自动化控制系统中, 但传统的控制电路存在许多不足之处,如低频振荡、易发热等缺点、噪声大、步 距角较大、分辨率低等,往往满足不了工业上的精确定位和大扭矩控制。 目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发, 研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅 仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。虽然 步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常 规下使用。 现各界都运用单片机进行控制,并进行不断更新和完善,本研究主要采用 AT80C51 单片机控系统,并采用光电隔离技术,对其进一步的设计和研究。

第1章
1.1 系统基本功能

系统方案论证

设计的步进电机控制器。要求内能从键盘上输入步进电机转数,控制步进电 机的正反转及启停,并显示转数。具体要求如下: (1) 键盘设计 0~9: 数字键。 *:正逆转数设定完成后,按“*”启动步进电动机。 #:清除设定为正转及转数为 00。
3

河南工业职业技术学院

A:设定正逆转。按“A”键则 LED 指示灯亮,表示逆转,再按则 LED 只 是等灭,表示正转。 (2) 控制过程 ① 送电时,设定为正转,显示器显示为“00”。 ② 输入转数,显示器显示输入的转数,按“A”设定正逆转,LED 指示灯亮 表示逆转,LED 指示灯灭表示正转,然后按“*”步进电动机开始运行。 ③ 步进电机每转一转,显示器减 1,直至为 00,步进电动机停止运转。

1.2 设计方案介绍
根据功能设计的要求本设计采用 AT89C51 单片机系统控制运用矩阵式键盘作 为输入控制端驱动系统采用 74LS04 和达林顿管,使步进电机可在智能化程序控 制下完成正转、反转、转数设定等各种操作。文中在单片机与驱动器之间增加一 级光电隔离。可使步进电机具有更高的性能,同时把数字电路与驱动电路隔离开, 避免了步进电机运行时所产生的冲击电压和电流干扰单片机。

1.3 系统设计
要想实现以上论述的功能只要通过 P1 口的键盘输入并按一定的顺序改变 P0 口输 出的脉冲信号,从而改变步进电动机四端通电的状况,即可控制步进电机依选定 的方向步进。同时通过显示器同步的显示相应数据。依据以上描述可画出控制系 统的结构框图如图 1.1 所示

4

河南工业职业技术学院

键 盘

单 片 机

显 示

步进电机控制

图 1.1 步进电机控制器结构框图

控制系统包括:键盘输入模块、显示、指示模块以及步进电机控制及驱动模 块。键盘输入模块主要完成数据输入及控制输入,显示模块完成转数的显示。步 进电机模块主要是由单片机输出控制码到驱动机构控制步进电动机的运转。

5

河南工业职业技术学院

第 2 章 硬件设计
2.1 单元模块设计 AT89C51 2.1.1 单片机 AT89C51 介绍
AT89C51 是一种带4K 字节闪烁可编程可擦除只读存储器( FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8 位 微处理器, 俗称单片机。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标 准的 MCS-51 指令集和输出管脚相兼容。由于将多功能8 位CPU 和闪烁存储器组合在 单个 芯片中,ATMEL 的AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供 了一种灵活性高且价廉的方案。 图2.2 是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个 芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单 片机。

6

河南工业职业技术学院

图2.2 AT89C51 芯片

它有40 个管脚,分成两排,每一排各有20 个脚,其中左下角标有箭头的 为第1 脚,然后按逆时针方向依次为第2 脚、第3 脚……第40 脚。在40 个管 脚中,其中有32 个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正 转与反转、控制电梯的升与降等,这32 个脚叫做单片机的“端口”,在单片机 技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。 AT89C51 单片机的功能: 1.主要特性: ◆与MCS-51 兼容 ◆4K 字节可编程闪烁存储器 ◆寿命:1000 写/擦循环 ◆数据保留时间:10 年 ◆全静态工作:0Hz-24Hz ◆三级程序存储器锁定 ◆128*8 位内部RAM ◆32 可编程I/O 线 ◆两个16 位定时器/计数器 ◆5 个中断源 ◆可编程串行通道 ◆低功耗的闲置和掉电模式 ◆片内振荡器和时钟电路 2.管脚说明(图2.3):
7

河南工业职业技术学院

图2.3 AT89C51 管脚分布

●VCC:供电电压, ●GND:接地。

8

河南工业职业技术学院

●P0 口:P0 口为一个8 位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。当 P1 口的 管脚第一次写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 口缓冲器可接收, 输出4 个 TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此 作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P2 口 当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地 址的高八 位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器 进行读 写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收 高八位地 址信号和控制信号。 第15 页共35页
9

河南工业职业技术学院

●P3 口:P3 口管脚是8 个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为 输入,由于外部下拉为低电平,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:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电 平时间。 ●ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 地位字 节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的 频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输 出的脉冲或用于 定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉 冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE 只有在执行MOVX, MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执 行状态ALE 禁止,
10

河南工业职业技术学院

置位无效。 ●PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 ●EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH), 不管是否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期 间,此引脚也用于施加12V 编程电源(VPP)。 ●XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 ●XTAL2:来自反向振荡器的输出。 3.振荡器特性: XTAL1 和XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置 为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外 部 时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.芯片擦除: 整个PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保 持ALE 管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持 两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但RAM,定时器,计
11

河南工业职业技术学院

数器,串口和中断系统仍在工作 串口和中断系统仍在工作。在掉电模式下,保存RAM 的内容并且冻结振 荡器,禁止所用其他芯片功能 禁止所用其他芯片功能,直到下一个硬件复位为止。

2.1.2 步进电动机工作原理
(1) 步进电机控制系统组成 步进电机控制系统组成如下图 2.4

图 2.4 用微型机控制步进电机原理系统图

与传统步进控制器相比较有以下优点: 与传统步进控制器相比较有以下优点 1、 用微型机代替了步进控制器把并行二进制码转换成串行脉冲序列 用微型机代替了步进控制器把并行二进制码转换成串行脉冲序列,并实 现方向控制。 只要负载是在步进电机允许的范围之内,每个脉冲将使电机转动一个固定 2、只要负载是在步进电机允许的范围之内 每个脉冲将使电机转动一个固定 的步距角度。3. 根据步距角的大小及实际走的步数 只要知道初始位置,便 根据步距角的大小及实际走的步数,只要知道初始位置 可知道步进电机的最终位置。(2) 步进电机控制系统原理 可知道步进电机的最终位置 A、脉冲序列的生成

12

河南工业职业技术学院

图 2.5 脉冲的生成

脉冲幅值:由数字元件电平决定。 TTL 0 ~ 5V CMOS 0 ~ 10V 接通和断开时间可用延时的办法控制。要求:确保步进到位。 B、方向控制 步进电机旋转方向与内部绕组的通电顺序相关。 三相六拍,通电顺序为: 正转: 反转: AB→BC→CD→DA →AB AD→DC→CB→BA→AD

改变通电顺序可以改变步进电机的转向 C、脉冲分配 实现脉冲分配(也就是通电换相控制)的方法有两种:软件法和硬件法本 设计通过软件法实现脉冲分配,软件法是完全用软件的方式,按照给定的通电 换相顺序,通过单片机的 IO 向驱动电路发出控制脉冲。 该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进 电机的各相绕组按合适的时序通电,就能使步进电机步进转动。左图是该进 电机工作原理示图。 开始时,开关 SB 接通电源,SA、SC、SD 断开,B 相磁极和转子 0、3 号 齿对齐,同时,转子的 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 方向转动。
13

河南工业职业技术学院

图 2.6 步进电动机工作原理图 四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工 作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作 方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较 高的转动力矩又可以提高控制精度。

2.1.3 键盘输入块
(1) 矩阵式连接非编码键盘 矩阵式又称为行列式。 在按键数量较多时,可以少占用 I/O 线。用 I/O 线组 成行、列结构,行、列线不相通, 而是通过一个按键设置在行、列交叉点上来 连通。 若需要设置 N×M 个按键,则需要 M+N 根 I/O 线 矩阵式键盘工作原 理:4 行×4 列键盘工作原理如图 2.7 所示:

键盘上 的字符 键值

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

81H 82H 42H 22H 84H 44H 24H 88H 48H 28H 18H 14H 12H 11H 21H 41H

14

河南工业职业技术学院

+5 V 5.1 k ? ×4 并 行 口 输 出 行 信 号 7 4 1 10 Y4 8 5 2 F Y3 列 9 6 3 E Y2 A B C D Y1 X4 X3 X2 X1

CPU



CPU

输 入 列 信 号

图 2.7 4×4 简单键盘结构

由图可见,16 个键分两部分,十个数字键 0~9;六个命令键 A~F。 对按 键的识别由软件来完成。 用两个并行 I/O 接口电路,采用步进式行扫描法。 CPU 每次通过接口对某一行 Xi 输出扫描信号 0,然后输入列线 Yj 的状态来确定 键闭合的位置。 列线 Y 接+5 V。无按键时,行 X 和列 Y 线断开,列线 Y1~Y4 呈现高电平。当某一按键闭合时,该键所在行、列线短接。若该行线输出为 0, 则该列线电平被拉成 0(其余 3 根列线仍为 1),此时 CPU 可判断出按键闭合所在 行、列及键号。

(3) 本控制系统的键盘设计如下图 2.8 所示

15

河南工业职业技术学院

键 1 4 7 * 2 5 8 0

盘 3 6 9 # A B C D 01 04 07 0A

键 盘 内 码 02 05 08 00 03 06 09 0B 0C 0D 0E 0F

图 2.8 控制步进电机键盘的设计

2.1.4 光电耦合器与驱动系统
(1) 4N25 光电耦合器 光电耦合器是把发光器件和光敏器件组装在一起,通过光线实现耦合 光电耦合器是把发光器件和光敏器件组装在一起 通过光线实现耦合,构 成电一光一电的转换器件。将电信号送入光电耦合器输入端的发光器件时 成电一光一电的转换器件 将电信号送入光电耦合器输入端的发光器件时,发 光器件将电信号转换成光信号,光信号经光接收器接收,并将共还原成电信号 光器件将电信号转换成光信号 并将共还原成电信号。 由于输出与输入之间没有直接的电气联系,信号传输是通过光耦合的 由于输出与输入之间没有直接的电气联系 信号传输是通过光耦合的,所以也 称为光电隔离器。其结构如图 2.9 其结构如图

16

河南工业职业技术学院

图 2.9 光电耦合器机构图

光电耦合器由发光源和受光器两部分组成,并封闭在同一不透明的管壳内 由绝缘的透明树脂隔开,发光源引出的管脚为输入端,受光器引出的管脚为输 出端. 光电隅合器的发光源常用砷化镓红外发光二极管,受光器常用光电三极 管、光敏晶闸管和光敏集成电路等。 光电耦合器具有以下特点,首先其信号传递采取电一光一电的形式,发光 部分和受光部分不接触,因此具有很高的绝缘电阻,可以达到 1010 欧姆以上。 并能承受 2000 伏以上的高压,因而被耦合的两个部分可以自成系统.也不需要 “共地”,绝缘和隔离性都很好,能够避免输出端对输入端可能产个的反馈和 干扰。其次光电耦合器的发光二极管是电流驱动器件,动态电阻很小,对系统 内外的噪音干扰信号形成低阻抗旁路,所以有很强的抑制噪音下扰能力。 最后光电耦合器作为开关应用时,具有耐用、可靠性高和速度快等优点, 响应时间一般为数 us 以内,高速型光电耦合器的响应时间有的甚至小于 10ns。 光电耦合器的用途很多,如作为高压开关,信号隔离转换.脉冲系统间的电平 匹配以及各种逻辑电路等。 (2) 在设计中为了抗干扰, 或避免一旦驱动电路发生故障,造成功率放大 器中的高电平信号进入微型机而烧毁器件, 通常在驱动器与微型机之间加一级 光电隔离器, 其原理接口电路如图 3-17 和 3-18 所示。 在 XXXXXXX 微型机与驱动器之间增加一级光电隔离。当 P1.0 输出为 1,发光二 极管不发光,因此光敏三极管截止, 从而使达林顿管导通,A 相绕组通电。反 之,当 P1.0=0 时,经反相后,使发光二极管发光, 光敏三极管导通, 从而使 达林顿管截止,A 相绕组不通电。

17

河南工业职业技术学院

图 2.10 达林顿管 达林顿管又称复合管。它将二只三极管适当的连接在一起,以组成一只等效的 新的三极管。这等效于三极管的放大倍数是二者之积。在电子学电路设计中, 达林顿接法常用于功率放大器和稳压电源中。 达林顿管广泛应用于音频功率输出。开关控制。电源调整。继电器驱动。高 增益放大等电路中。继电器驱动电路与高增益放大电路中使用的达林顿管,可 以选用不带保护电路的中。小功率普通达林顿晶体管。而音频功率输出。电源 调整等电路中使用的达林顿管,可选用大功率。大电流型普通达林顿晶体管或 带保护电路的大功率达林顿晶体管。

显示快 2.1.5 显示快 2.1.5.1 74LS47 的功能
本设计采用 74LS47 作为七段数码管的驱动器。74LS47 的功能用于将 BCD 码转化成数码块中的数字,通过它解码, 可以直接把数字转换为数码管的显示数 字, 从而简化了程序,节约了 单片机的 IO 开销。 因此是一个非常好的芯片! 但是由于目前从节约成本的角度考虑, 此类芯片已较少用, 大部份情况下都是 用动态扫描数码管的形式来实现数码管显示。 74LS47 译码器原理:

18

河南工业职业技术学院

译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的 逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47 是输 出低电平有效的七段字形译码器,它在这里与数码管配合使用

图 2.11 74LS47 译码器

2.1.5.2 7 段 LED 显示器结构与原理
7 段 LED 显示器由 7 个发光二极管组成显示字段,并按“8”字形排列。 这 7 段发光管分别称为 a、b、c、d、e、f、g,有的还带有一个小数点 dp,7 段 LED 由此得名。将 7 段发光二极管阴极都连在一起, 称为共阴极接法,当某 个字段的阳极为高电平时, 对应的字段就点亮。共阳极接法是将 LED 显示器的 所有阳极并接后连到+5 V 电源上,当某一字段的阴极为 0 时,对应的字段就点 亮, 如图所示。
19

河南工业职业技术学院

图 2.12 7 段 LED 显示器结构与原理

20

河南工业职业技术学院

显示字符

共阴极段选 共阳极段选 码 3FH 06H 5BH 4FH 码 C0H F9H A4H B0H

显示字符

共阴极段选 共阳极段选 码 66H 6DH 7DH 07H 码 99H 92H 82H F8H

0 1 2 3

4 5 6 7

表 2.1 LED 段选码和显示字符之间的关系

点亮 LED 显示器有两种方式:静态显示和动态显示, 下面以共阴极接法为例 说明。 LED 静态显示方式: 所谓静态显示就是将 N 位共阴极 LED 显示器的阴极连 在一起接地,每一位 LED 的 8 位段选线与一个 8 位并行口相连,当显示某一个字 符时,相应的发光二极管就恒定地导通或截止。 所谓动态显示就是用扫描方式轮流点亮 LED 显示器的各个位。 特点是将多 个 7 段 LED 显示器同名端的段选线复接在一起,只用一个 8 位 I/O 控制各个 LED 显示器的公共阴极轮流接地,逐一扫描点亮, 使每位 LED 显示该位应当显 示的字符。恰当地选择点亮 LED 的时间间隔(1~5 ms),会给人一种视觉暂停效 应, 似乎多位 LED 都在“同时”显示。

21

河南工业职业技术学院

2.2 单片机与步进电机的接口电路图
由于步进电机的驱动电流较大,所以微型机与步进电机的连接都需要专门的 接口及驱动电路。驱动器可用大功率复合管,也可以是专门的驱动器。 总之,只要按一定的顺序改变 P0 口输出的脉冲信号,从而改变步进电动机 四端通电的状况,即可控制步进电机依选定的方向步进。由于步进电机运行时功 率较大,可在微型机与驱动器之间增加一级光电隔离器(一是抗干扰,二是电隔 离。)以防强功率的干扰信号反串进主控系统。 电路图如下所示:

22

河南工业职业技术学院

A B +88.8

C D

R1
10k

R2
10k

R3
10k

R4
10k

a1 b1 c1 d1 e1 f1 g1

a2 b2 c2 d2 e2 f2 g2

U3
P1.3 g1 14 f1 15 e1 9 d1 10 c1 11 b1 12 a1 13 QG QF QE QD QC QB QA 74LS47 1k LT RBI BI/RBO D C B A 3 5 4 6 2 1 7 g2 14 f2 15 e2 9 d2 10 c2 11 b2 12 a2 13

U4
QG QF QE QD QC QB QA 74LS47 zhsh LT RBI BI/RBO D C B A 3 5 4 6 2 1 7

Q1
FMMT918 8 7 6 5

A

R13
1k

P1.2

4 3 2 1

R6
1k

Q2
FMMT918

R10

D2

U6
4N25

P1.1 X1 19

U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 1 2 3 4 5 6 7 8

LED-RED

U5:A
1 74LS04 2

P1.0 P1.7 P1.6 P1.5 P1.4

X2 18

R7
1k

Q3
FMMT918

B

R10
1k

XTAL2

U7
4N25

Q4
FMMT918

9

RST

X1 29 PSEN 30 ALE 31 EA

U5:B
3 74LS04 4

C2 R5
1k

R8
1k

C1
10u

33n

C

R11
1k

X1
CRYSTAL P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

U5:C
5 74LS04 6

Q5
FMMT918

U8
4N25

C3
33n X2

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

10 zhsh 11 12 13 14 15 16 17

Q6
FMMT918

U5:D
13 74LS04 12

R9
1k

U2
4N25

Q7
FMMT918

D

R12
1k

基于单片机的步进电机控制
图 2.13 单片机与步进电机的接口电路图

Q8
FMMT918

23

河南工业职业技术学院

第三章
3.1 程序设计流程图

控制系统的软件设计

根据设计任务,可画出控制步进电机在程序控制下完成正转、反转、转数设 定等各种操作。,程序框图如下图 2.1:



初始化

键盘扫描程序

数据处理存 30H、

P3.0 取

根据设定控制

显 示

改控制码取码指

数字键

“A”键

“*”键

图 3.1 基于单片机的步进电机控制程序框图
24

河南工业职业技术学院

3.2 汇编程序
ORG START: 000H MOV MOV MOV MOV SETB MOV L1: 30H,#00H 31H,#00H 32H,#00H P2,#0FFH P3.0 21H,#00H ; 步进电机停止运行 ; LED 灭,表示正转 ; 正转至 TABLE1 取码指针初值 ; 调用键盘扫描子程序 ; 键盘码值存入 20H ; 是否按"*" ; 是则启动电机 ; 取码值载入 ACC ; 是否按"#" ; 是则步进电机停止 ; 取码值载入 20H ; 是否按"A" ; 是则设定正逆转 ; 取码值载入 20H ; 现按键值存入(30H)地址 ; 旧(30H)地址存入(31H)地址 ; 清除键盘显示器 RAM 地址 30H~32H

ACALL KEY MOV XRL JZ MOV XRL JZ MOV XRL JZ MOV XCH XCH 20H,A A,#0AH SET0 A,20H A,#0BH START A,20H A,#0CH CCW A,20H A,30H A,31H

25

河南工业职业技术学院

MOV SWAP ORL MOV JMP

A,31H A A,30H 32H,A L1

; 将(30H)、(31H)合并为两位数 ; 31H 为十位数 ; 加 30H 个位数 ; 存入(32H)地址

***********************键盘扫描子程序**************************** KEY: MOV MOV L2: MOV MOV MOV MOV SETB MOV L3: RLC JNC INC DJNZ MOV MOV MOV R3,#0F7H R1,#00H A,R3 P1,A A,P1 R4,A C R5,#04H A KEYIN R1 R5,L3 A,#32H P0,A A,R3 ; 显示器地址 32H 输出至 P0 显示 ; C=1 ; 检测 4 行 ; 将检测的行位左移 C 内 ; 检测 C=0?C=0 表示有键按下 ; 未按,则计数指针加 1 ; 暂存入 R4,以判断按键是否放开 ; 键盘列扫描初值 ; 至 TABLE 取码的键盘计数指针 ; 列扫描输出

26

河南工业职业技术学院

SETB RRC MOV JC JMP KEYIN: D2: MOV MOV DJNZ DJNZ D3: MOV XRL JZ MOV MOV MOVC RET

C A R3,A L2 KEY R7,#60H R6,#248 R6,$ R7,D2 A,P1 A,R4 D3 A,R1 DPTR,#TABLE A,@A+DPTR ; 按键放开,载入计数指针值 ; 键码表首地址 ;查表所得值存入 A ; 读入键盘值 ; 比较刚才键盘值是否相同,是表示未放开 ;清除抖动 ; 扫描下一列

*******************正反转设定程序********************************* CCW: CPL JB REV: MOV JMP P3.0 P3.0,FOR 21H,#00H L1 ; 将 P3.0 反相,正逆转换 ; 检测 P3.0=1? 1 为正,0 为反 ; 逆转至 TABLE1 的取码指针存入(21H) ; 返回继续进行键盘扫描

27

河南工业职业技术学院

FOR:

MOV JMP

21H,#05H L1

; 正转至 TABLE1 的取码指针存入(21H) ; 返回继续进行键盘扫描

*******************步进电动机驱动控制程序************************** SET0: MOV CJNE JMP SETX: SET1: SET2: MOV MOV MOV MOV MOVC JZ MOV A,32H A,#00H,SETX L1 R3,#20 R0,21H A,R0 DPTR,#TABLE A,@A+DPTR SET1 P2,A ;是否取到"0" ;输出至 P2 运转 ;延时时间决定转数 ; 取下一步 ;20 步完? ; 是,载入显示的个位数 ; 个位是否为"00" ; 个位数为 0,则载入十位 ; 十位是否为"0" ; 个位,十位都伪,则停止运转,返回 ; 至 TABLE1 取码 ; 载入显示器值 ;是否为 00,是则表示未设转数 ; 继续进行键盘扫描 ; 一转为 20 步 ; 载入取码指针值

LCALL DELAY INC DJNZ MOV CJNE MOV CJNE JMP R0 R3,SET2 A,30H A,#00H,B1 A,31H A,00H,B2 START

28

河南工业职业技术学院

B1:

DEC JMP

30H B3 30H,#09H 31H B3 A,31H A A,30H 32H,A P0,A SETX

; 个位数不为 0,则个位减 1

B2:

MOV DEC JMP

; 个位数为 0,十位数不为 0,则个位数为 9 ; 十位数减 1

B3:

MOV SWAP ORL MOV MOV JMP

; 将十位数与个位数合并送 32H

; 输出至 P0 显示 ; 开始下一转

**********************延时子程序*********************************** DELAY: D1: MOV MOV DJNZ DJNZ RET **********************键码表**************************************** TABLE: DB DB DB 01H,02H,03H,0CH 04H,05H,06H,0DH 07H,08H,09H,0EH ; 键盘码 R7,#20H R6,#248 R6,$ R7,D1 ; 延时,步进电机转速为 20 毫秒

29

河南工业职业技术学院

DB

0AH,00H,0BH,0FH

**********************电机控制码表********************************** TABLE1: DB DB DB DB END 03H,09H,0CH,06H 00 03H,06H,0CH,09H 00

30

河南工业职业技术学院

第四章 仿真与调试
软件测试步骤如下: (1)打开 Proteus 软件。 (2)选择 file 菜单下的 open design..选项,找到所需的元器件,按照电路 图连接后并保存。 (3)将用 ISIS 编译过的 HEX 格式程序,下载到单片机中: 右击 51 单片机再左击,再弹出的对话框中,选择 program file 文本框或单击 文件图标,浏览找到所编译的程序。单击确定。 (4)单击左下角运行按钮,进行软件仿真、调试,直到出现正确的结果。 在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加 电后检查各插件上引脚的电位,若在 5V~4.8V 之间属正常。若有高压,联机仿真 器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。

第五章 结果分析
仿真中,只要按一定的顺序改变 P0 口输出的脉冲信号,从而改变步进电动 机四端通电的状况,即可控制步进电机依选定的方向步进。由于步进电机运行时 功率较大,可在微型机与驱动器之间增加一级光电隔离器(一是抗干扰,二是电 隔离。)以防强功率的干扰信号反串进主控系统。 有时会出现数码管显示不全情况,多为连线有误,或程序编写时出现问题。 数码管一直显示 00 而不跳动,原因就是少了返回指令 SJMP;数码管的十位、个 位乱跳就是标志位设置有问题;另外在程序中用到的单元地址都要赋值 0;中断 程序有多个时的优先级要确定正确。另外刚开始个别键盘不能起控制作用,进过 对程序的多次修改才得以实现起功能。在解决这些问题时也是一个再次学习的过 程,虽然是步履维艰但最后的仿真效果非常好,实现了预期的效果,能过通过多 功能控制键。
31

河南工业职业技术学院

第六章 总结
本设计通过单片机 AT89C51 来控制步进电机的正反转、转数,以实现对步进 电机的运动控制。实现了占用 CPU 时间少,效率高;易于控制步进电机的转向转 速;提高了步进电机的步进精度等。再有,本设计过程考虑比较周全,系统中不 仅采用光电隔离电路有效地抑制电磁干扰以提高系统的可靠性,而且还可以方便 灵活地控制步进电机的运行状态,以满足不同用户的要求,步进电机控制(包括 控制脉冲的产生和分配)使用软件方法,即用单片机实现,这样既简化了电路, 也减低了成本。 经过这段时间的毕业论文设计,知道了做好一件事是并不是想象中那么简单, 不是知道了书本中老师教的东西就可以做好,事实不是想象中那样的完美,在现 实中有许多预料不到的困难在等着你,有时候都令人崩溃了,不过从中间学会了 坚持。 在这一个学期里,我了解了实际动手操作和理论相结合的重要性,在老师的耐 心帮助下,自己的认真努力下,最终得到圆满。经过这次的课程设计让我受益匪浅! 其一,我们必须掌握一些必备的常识,比如,电容引脚的判定。 其二,我们必须用科学的态度对待我们在实验中所遇到的问题,发现问题, 解决问题。在实验时应保持冷静,测试有条理。遵循物质客观规律,不随便改写 实验数据。 其三,自己平时要多动手、多动脑,这样当问题来临时你就不会手忙脚乱。 该多画就多画些,以便能增加你对该软件的熟练度。用起来称心如意,这样就不 会浪费时间。 总之,本次的设计使我从中学会了如何从理论到实践的转化,怎样将我所学 到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业 知识,而我们应把所学的用到我们现实的生活中去,我会在以后的学习、工作中 磨练自己,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过 程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。 大大的增强我的为人处事能力。
32

河南工业职业技术学院

致谢
论文接近尾声,我的学生生涯也快结束了。 两年多的大专生生活伴随着论文的完成,也走向了终点。此时的我心情是 无比的激动因为我如果没有我的指导老师和同学们的指导和帮助是完成不了的。 所以借此机会特别的由衷的向他们表示感谢! 首先要感谢史老师,本文是在史老师精心指导和大力支持下完成的,在本 论文的撰写过程中,史老师从选题直至成稿一直给予我重要的指导和帮助,为 我解开了我无数的困惑,提供了很多关键性的建议。另外还要感谢我的同学和 老师,他们让我在课堂上学到了丰富的知识。不论是有形的图文还是无形的记 忆,都会珍藏着我们的欢声笑语,永不磨灭。我感激身边始终支持、关心我的 朋友,尤其是那些在我身临逆境而豪爽地伸出双手的朋友,曾经共事、一起打 拼的朋友,以及那些虽然接触不深但却帮助我的朋友。你们成就了我的今天, 也与我的未来相连! 在他们身上我学到了很多东西,尤其是不做出来死不休的那种干劲,一种 年轻人的执着与坚定的信念。为了出色的完成任务老师和同学们都为我付出了 很多,也让我能在最后的实践中懂得了曾经不明的知识,使我在为人处事方面 上有所提高。千言万语说不尽内心的感激,唯一就是在自己今后的人生道路上 要不畏艰难,坚定执着的去追寻我的梦想。 再次表达我最诚挚的谢意!谢谢你们!

33

河南工业职业技术学院

参考文献
[1] 李克春.IBM PC 系列微机接口与通讯原理及实例[M].大连:大连理工大学 出版社,1998. [2] 赵依军等.单片微机接口技术[M].北京:人民邮电出版社,1999 . [3] 沈德金等.接口电路与应用程序实例[M].北京:北京航空航天大学出版 社,2000. [4] 张毅刚.单片机原理及应用[M].北京:北京高等教育出版社,2006. [5] 顾绳谷.电机及拖动基础[M].北京:机械工业出版社[M],2001. [6] 陈伯时.自动控制系统[M].北京:机械工业出版社,2006. [7] 陈奥初等.单片机应用系统设计与实践[M].北京:北京航空航天大学出版 社,2002. [8] 张端.实用电子电路手册[M].北京:高等教育出版社,2001. [9] 刘华东.单片机原理与应用[M].北京:北京电子工业出版社,2002. [10] 潘新民.微型计算机控制技术[M].北京:人民邮电出版社,1998. [11] 杨光友.单片微型计算机原理及接口技术[M].北京:北京中国水利水电出 版社,2002. [12] 陈汝全等.单片机实用技术[M].北京:电子工业出版社,1992. [13] 陈章龙.实用微机大全[M].黑龙江:黑龙江科技出版社,2004. [14] 周明德.微型计算机硬件软件及其应用[M].北京:清华大学出版社,1992. [15] 陈建铎.Intel 单片机应用技术[M].陕西:陕西电子编辑部,2000. [16] 周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版 社,2004.

34


赞助商链接

基于单片机的步进电机调速系统毕业设计

毕业论文 摘要 步进电动机由于用其组成的开环系统既简单、廉价,又非常可行,因此...本文介绍的是一种基于单片机步进电机的系统设计,用汇编语言编写出电机的 正转...

基于单片机的步进电机毕业设计

洛阳理工学院毕业设计(论文) 基于单片机步进电机升降频的控制系统的设计 摘要 步进电机是一种完成数字/模拟转换的执行元件。步进电机区别于其他控制用 途电动机的最...

毕业设计-基于C51单片机的步进电机控制系统设计

毕业设计-基于C51单片机的步进电机控制系统设计_工学_高等教育_教育专区。扬州大学...泛应用、步进电机作为数字控制电动机的主要特点以及本次研究的主要 内容和论文...

基于单片机的步进电机控制系统设计

2013 届 分类号: TM383.6 单位代码:10452 毕业论文(设计) 基于单片机的步进...一般电动机都是连续转动的,而步进电动机则有定位 和运转两种基本状态,当有脉冲...

基于单片机的步进电机控制系统设计_毕业论文设计

基于单片机步进电机控制系统设计_毕业论文设计 - 浙江大学 浙江大学 毕业论文(设计) 基于单片机步进电机控制系统设计 浙江大学 摘 要 步进电动机由于用其组成的...

步进电机毕业设计

毕业设计电动机测速及显... 31页 免费 基于单片机步进电机控... 59页 免费...20 参考文献及外文资料 1 前 言 步进电机是机电控制中一种常用的执行机构, ...

-基于单片机的步进电机控制器设计毕业论文

-基于单片机步进电机控制器设计毕业论文_工学_高等教育_教育专区。2011 届毕业...变化的影响, 同时步进电机只有周期性的误差而无累积误差, 精度高, 步进电动机...

基于单片机的步进电机控制系统设计_图文

基于单片机的步进电机控制系统设计 - 28BYJ—48步进电机的毕业设计... 2017 届电子信息工程专业本科毕业论文 基于单片机的步进电机控制系统设计 摘要:步进电动机由于利用...

基于单片机步进电机控制系统设计毕业正文 -精品

基于单片机步进电机控制系统设计毕业正文 -精品_电子/电路_工程科技_专业资料。...步进电动机有如下特点: 1)步进电动机的角位移与输入脉冲数严格成正比。因此,...

基于单片机的步进电机控制系统设计

基于单片机的步进电机控制系统设计_机械/仪表_工程科技_专业资料。采用单片机AT89C52,根据输入的数据转化成的控制信号来控制步进电动机的角位移的一种方法,包括硬件...