1、MCS51单片机课程设计基于单片机的步进电机控制系统 作者: 日期:10 个人收集整理 勿做商业用途MCS51单片机课程设计基于单片机的步进电机控制系统。txt我不奢望什么,只希望你以后的女人一个不如一个.真怀念小时候啊,天热的时候我也可以像男人一样光膀子! 本文由灰太狼科技贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 数理与信息工程学院单片机原理与应用期末学期课程设计 数理与信息工程学院 单片机原理及应用期末学期课程设计 单片机原理及应用期末学期课程设计 题 目: 基于单片机的步进电机控制系统 专 业: 电子信息工程 班 级: 电信 041 班
2、姓 名: 学 号: 指导老师: 指导老师: 成 绩: (2007.1) 1 数理与信息工程学院单片机原理与应用期末学期课程设计 目 第1章 1。1 录 。3 引 言。3 步进电机控制系统概述.3 1.2 本设计任务和主要内容4 第2章 2。1 22 系统主要硬件电路设计。 系统主要硬件电路设计.5 硬件电路设计 单片机控制系统原理。5 单片机主机系统电路5 2。2.1 时钟电路6 2。2。2 复位电路6 2.3 步进电机驱动电路7 2。4 第3章 3。1 3.2 LED 显示电路.8 系统的软件设计10 系统的软件设计10 步进电机的位置控制10 显示子程序13 结束语 17 第四章 结束语
3、17 参考文献18 第 5 章 参考文献18 2 数理与信息工程学院单片机原理与应用期末学期课程设计 基于单片机的步进电机控制系统 第1章 引 言 在当今社会的各个领域步进电机无处不在,应用领域涉及机器人、工业电子 自动化设备、医疗器件、广告器材、舞台灯光设备、印刷设备、计算机外部应用 设备等等。因此,设计出高精确度、实时监控、语音提示的步进电机具有重要的 现实意义和实用价值。 本设计是基于 80C51 单片机的步进电机控制系统,能够 有效地对步进电机转速、方向的控制。为了能够更加人性化的控制系统,本设计 还增加了语音提示部分, 在实际应用当中由于紧急事件需要在短时间内了解电机 的工作情况,这
4、时看数码显示就很不方便,而语音提示提供很大帮助,只要按下 语音提示按钮便能获取相关技术数据. 本设计采用 16 位单片机 MCS80C51 对步进电机进行控制, 通过 I/O 口输出 的具有时序的方波作为步进电机的控制信号,信号经过驱动芯片驱动步进电机; 同时,用 4X4 的键盘来对电机的状态进行控制,并用数码管显示电机的转速, 采用 74LS164 作为 4 位单个数码管的显示驱动. 1.1 步进电机控制系统概述 步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字执 行元件,随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中 的普及与深入,步进电机的需求量越练越大。
5、随着工业技术的不断发展,以及同类产品的不断出现,步进电机面临着前所 未有的挑战。但近 30 年来,数字技术、计算机技术和永磁材料的迅速发展,推 动步进电机的发展,为步进电机的应用开辟了广阔的前景,近几年来,步进电机 需求量一直呈现出较快的增长速度,其中扫描仪、打印机、传真、 DVD-ROM/CDROM 驱动器、空调及多功能自动化办公设备等应用对步进电机 的需求增长最强。此外由于 USB2.0 的日益流行促进了高分辨率扫描仪的销售, 步进电机向着小型、薄型和更小的步进角度发展。 步进电机有着方方面面重要应用,如何对其进行有效控制,使其能够发挥最 大的优势是各个行业技术开发人员所共同关注的, 本文
6、旨在设计一套较完整的通 用控制系统,对步进电机的转速、方向实行智能化控制,并能通过 LED 显示其 转速. 1。2 本设计任务和主要内容 本论文主要研究单片机控制的步进电机系统,对步进电机的转速、方向进行 3 数理与信息工程学院单片机原理与应用期末学期课程设计 控制和显示. 主要内容如下: 通过键盘设定步进电机的转速及方向 LED 显示步进电机的转速 第2章 系统主要硬件电路设计 系统主要硬件电路设计 4 数理与信息工程学院单片机原理与应用期末学期课程设计 2.1 单片机控制系统原理 键盘输入 AT89C51 单片机 LED 数码显示 步进电机转 速、 方向控制 图 2-1 单片机控制系统原理
7、框图 22 单片机主机系统电路 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除 100 次。 该器件采用 ATMEL 高密度非易 失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。由于 将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高 效微控制
8、器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制 系统提供了一种灵活性高且价廉的方案. 5 数理与信息工程学院单片机原理与应用期末学期课程设计 U1 19 XTAL1 C1 18 30pF 9 RST XTAL2 X1 12M 29 30 31 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
9、.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 10 11 12 13 14 15 16 17 C2 30pF PSEN ALE EA C3 1p vcc R1 1k 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 图 2-2 单片机主机系统图 2。2。1 时钟电路 单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号 通常用两种电路形式得到:内部振荡和外部
10、振荡。 MCS-51 单片机内部有一个用于 构成振荡器的高增益反向放大器, 引脚 XTALl 和 XTAL2 分别是此放大电器的输 入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实 际使用中常采用这种方式,如图 2-2 所示在其外接晶体振荡器(简称晶振)或陶瓷 谐振器就构成了内部振荡方式, 片内高增益反向放大器与作为反馈元件的片外石 英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。 2-2 中 图 外接晶体以及电容 C2 和 C1 构成并联谐振电路,它们起稳定振荡频率、快速起 振的作用,其值均为 30P 左右,晶振频率选 12MHz 2。2。2 复位电路 为
11、了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位 后可使 CPU 及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要 RST 引脚上出现 6 数理与信息工程学院单片机原理与应用期末学期课程设计 两个机器周期时间以上的高电平,即可引起系统复位,但如果 RST 引脚上持续 为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存 器置为 FFH,堆栈指针 SP 置为 07H, SBUF 内置为不定值,其余的寄存器全部清 0,内部 RAM 的状态不受复位的影响,在系统上电时 RAM 的内容是不定的。复
12、 位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式. 图 2-2 中 R9 和 Cl 组成上电复位电路,其值 R 取为 1K, C 取为 1pF. 2。3 步进电机驱动电路 驱动电路集成化成为一种趋势。 目前, 已有多种步进电机驱动集成电路芯片, 它们大多集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,广泛用于 小型仪表、计算机外设等领域,使用起来非常方便。本设计采用 UCN5804B 芯 片。UCN5804B 芯片适用于四相步进电机的单极性驱动。它最大能输出 1.5A 电 流、3.5V 电压。内部集成有驱动电路,上电自行复位,可以控制转向和输出使 能. L4 R2
13、 L3 L2 R1 L1 B82412A3220J000 5R6 B82412A3220J000 B82412A3220J000 B82412A3220J000 5R6 D1 8EWS12S 1 2 3 4 6 12 U1 16 15 14 13 11 10 9 7 UCN5804B v 8 2 + 8EWS12S D2 8 D3 8EWS12S D4 8EWS12S 图 23 步进电机驱动电路 图 23 为步进电机驱动电路,其中 4、5、12、13 脚为接地引脚,1、3、6、 8 脚为输出引脚,电动机各相的的接线如图,14 脚是控制电机的转向,其中低电 平为正转,高电平为反转;11 脚是步进
14、脉冲的输入端,9、10 脚决定工作方式, 其真值表如表 2-1 所示: 7 数理与信息工程学院单片机原理与应用期末学期课程设计 表 21 9、10 脚真值表 工作方式 双四拍 八拍 单四拍 禁止 9脚 0 0 1 1 10 脚 0 1 0 1 2.4 2.4 LED 显示电路 由于系统显示的内容比较简单,显示量不多,所以显示选用数码管既方便又 经济。LED 有共阴极和共阳极两种。如图 24 所示。 符号和引脚 共阴极 共阳极 图 24 LED 数码管结构原理图 二极管的阴极连接在一起,通常此共阴极接地,而共阳极则将二极管的阳极 连接在一起,接入+5V 的电压.一位显示器由 8 个发光二极管组成
15、,其中 7 个发 光二极管。当在某段发光二极管施加一定的正向电压时,该段笔画即亮;不加电 压即暗.为了保护各段 LED 不被损坏,需外加限流电阻。 数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式.为节 省端口及降低功耗,本系统采用动态扫描显示方式。本电路的“段控和“位控” 分别由 P1 口和 P3 口控制,P3 选中哪个数码管,哪个数码管就亮,P1 口控制显 示数字。 因 AT89C51 单片机 I/O 口资源有限,必须对其 Il0 口进行扩展才能满足实现 系统功能,如图 2-7 所示为用 8155 扩展 1/0 口的 4 个 8 位 LED 动态显示器,显 示扫描由程控实现,其
16、中 PA 口输出字型码,PC 口输出位选信号即扫描信号, 图中片选线 CE 和 AT89C51 的 P2.7 口相连,IO/ M 选通输入线与 P2。4 口相连, 8 数理与信息工程学院单片机原理与应用期末学期课程设计 该系统中当 P2。7=0 且 P2.4 =1 时,选中 8155 芯片内三个 I/O 口.相应的端口地 址分配如表 2-1: 表 22 8155 端口地址分配 0 D M O C A B C D E F G dp A B C D E F G H 1 D M O C A B C D E F G dp A B C D E F G H 2 D M O C A B C D E F G
17、dp A B C D E F G H M O C A B C D E F G dp A B C D E F G H U1:A PA0 PA1 PA2 PA3 2 4 6 8 1 A0 A1 A2 A3 OE 74LS240 NET=PA2 Y0 Y1 Y2 Y3 18 16 14 12 R1 R2 R3 5R6 R4 5R6 5R6 5R6 A B C D U2 19 XTAL1 XTAL2 U3 P0。0/AD0 39 38 P0。1/AD1 P0。2/AD2 37 P0。3/AD3 36 P0。4/AD4 35 P0。5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2。
18、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 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 8155 A8 A9 A10 A11 A12 A13 A14 A15 34 33 32 31 30 29 28 27 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET
19、CE PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7个人收集整理,勿做商业用途文档为个人收集整理,来源于网络 U1:B PA4 PA5 PA6 PA7 11 13 15 17 19 A0 A1 A2 A3 OE 74LS240 Y0 Y1 Y2 Y3 9
20、7 5 3 R5 R6 R7 5R6 R8 5R6 5R6 5R6 E F G dp 18 RST 9 RST 29 30 31 PSEN ALE EA RST 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 NET=A11 9 U4:B 5 U4:A 3 7407 1 7407 7407 7407 U4:D U4:C 8 6 4 2 D3 D2 D1 D0 图 2-5 显示电路 9 数理与信息工程学院单片机原理与应用期末学期课程设计 第3章 3.1 步进电机的位置控制 步进电机的位置控制 位置 系统的软件设计 步
21、进电机的运行控制涉及到位置控制和加、 减速控制。 步进电机的位置控制, 指的是控制步进电机执行机构从一个位置精确地运行到另一个位置。 步进电机的 位置控制是步进电机的一大特点, 它可以不用借助位置传感器而只需要的开环控 制就能达到足够的位置精度. 步进电机的位置控制需要两个参数. 第一个是绝对位置,即步进电机控制的执行机构当前的位置参数,绝对位置 是有极限的,其极限是执行机构运动的范围,超越了这个极限就应报警. 第二个是从当前位置移动到目标位置的距离, 我们可以用折算的方式将这个 距离折算成步进电机的步数。 这个参数是外界通过键盘或可调电位器旋钮输 入的,所以折算的工作应该在键盘程序或 A/D
22、 转换程序中完成. 下面是本程序使用的资源: 30H、31H存放定时器的常熟,低位在前 32H34H存放绝对位置参数,低位在前 35H、36H存放步进数,低位在前 中断服务子程序框图如图 2-6 所示。 10 数理与信息工程学院单片机原理与应用期末学期课程设计 图 26 程序如下: POS: CPL P1.0 步进电机位置控制子程序框图 ;改变 P1.0 电平状态 ;累加器 A 进栈 PUSH ACC PUSH PSW PUSH R0 JNB CLR JNB P1.0,POS4 EA P1。1,POS1 ;R0 进栈 ;P1.0=0 时,半个脉冲,转到 POS4 ;关中断 ;反转,转到 POS
23、1 ;正转 11 MOV R0,32H 数理与信息工程学院单片机原理与应用期末学期课程设计 INC R0 ;无进位则转向 POS2 CJNE R0,#00H,POSE INC INC R0 R0 CJNE R0,00H,POS2 INC INC R0 R0 ;无越界,则转 POS2 ;发生越界,停定时器(停电动机) ;调报警子 ;反转 CJNE R0,00H,POS2 CLR TR0 LCALL BAOJING POS1: MOV R0,#32H DEC CJNE INC DEC CJNE INC DEC CJNE CLR R0 R0,#0FFH,POS2 R0 R0 R0,#0FFH,POS
24、2 R0 R0 R0,0FFH,POS2 TR0 ;无借位则转向 POS2 LCALL BAOJING POS2: MOV DEC CJNE INC DEC POS3: R0,#35H R0 R0,0FFH,POS3IU9 R0 R0 ;指向步数低位 35H SETB EA 12 数理与信息工程学院单片机原理与应用期末学期课程设计 MOV A,35H ORL JNZ CLR C POS4 TR0 SJMP POS5 POS4: CLR CLR MOV ADD ADD MOV MOV ADDC C TR0 A,TL0 A,08H A,30H TL0,A A,TH0 A,31H MOV TH0,A
25、 SETB POS5: POP POP POP RETI R0 PSW ACC TR0 3。2 显示子程序 硬件电路如图 24 所示,通过 8155 芯片来扩展 I/O 口,其端口地址分别是: 命令/状态寄存器:7FF8H ,PA 口:7FF9H,PB 口:7FFAH,PC 口:7FFBH. 通过 P1 口控制数字显示,即“段选” ,P3 口控制“位选” 。 ORG 0000H START:JMP MAIN ORG 30H MAIN:MOV SP,#5FH ;初始化 13 数理与信息工程学院单片机原理与应用期末学期课程设计 B_BIT EQU 34H A_BIT EQU 35H C_BIT E
26、QU 22H D_BIT EQU 23H E_BIT EQU 34H Count EQU r4 ;个位显示数据存储器 ;十位显示数据存储器 ;百位显示数据存储器 ;十位显示数据存储器 ;万位显示数据存储器 ;计数器数据存储器 ACALL INIT_RS232;调用 INIT_232 子程序 CPL P0。0 MOV R5,#25 ACALL DELAY CPL P0。0 MOV P1,0FFH MOV P2,0FFH WAIT:acall DIAPY;调用显示程序 JNB RI,WAIT;接收电脑发过来的数据 ClR RI ;清 RI,继续下次接收 ;P0。0 暗表示设定完成 ; P0。0 亮
27、表示正在设定串口 LJMP WAIT DIAPY :MOVR1,SBUF 把接收到的数据放到 A 里 MOV A,R1 MOV B,100 DIV AB MVO 33H,A MOV A ,B MOV B,10 DIV AB MOV B_BIT,B MOV A_BIT,A 14 ;提取百位 数理与信息工程学院单片机原理与应用期末学期课程设计 MOV DPTR,#TAB MOV R0,#5 DP11:MOVR1,250 DPLOP:个位显示 MOV,A,B_BIT MOVC A,A+DPTR ;提取字模 MOV P1,A CLR P2。2 ;开个位 ACALL DELAY1;调用扫描子程序 SET
28、B P2.2 ;十位显示 MOV A,A_BIT MOVC A,A+DPTR ;提取字模 MOV P1,A CLR P2。3 ;开十位 ACALL DELAY1 SET P2。3 MOV A,A_BIT MOVC A,A+DPTR;提取字模 MOV P1,Amov p1,a CLR P2.4 ;开百位 DELAY1 ;百位显示 ACALL SETB P2。4 DJNZ R1,DPLOP DJNZ R0,DP11 RET INIT_RS232: MOV TMOD,#20H ;rs232 初始化设定 ;1200bs 15 数理与信息工程学院单片机原理与应用期末学期课程设计 MOV TH1,0E8H
29、 SETB TR1 MOV SCON,#01010000B RET DELAY1: MOV R7,#2 D3: MOV R6,#25 D4: DJNZ R6,D4 DJNZ R7,D3 RET delay: MOV R5,#20 D2:MOV R6,50 D1:MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET TAB: DB 0C0H,0f9H,0a4H,0b0h,99h ;”0”,”1”,”2”,3,4” DB 92H,82H,0f8H,80H,90h DB 88H,83H,46H,0a1H,86h DB 8eh ;”F” END ;5,”6,7
30、”,”8”,9 ;a,”b,c”,”d ,e 16 数理与信息工程学院单片机原理与应用期末学期课程设计 第四章 结 束 语 本次课程设计是在学习单片机课程后的一次实践,通过查阅大量书籍、专业 网站、论坛等,通过反复对比,采用技术较为成熟以及仿真效果的电路.在软件 设计方面,一部分参考文献的已成程序进行修改编写,一部分则是平时的经验积 累. 应该说这次课程设计还是基本达到了设计的要求, 但是也存在着未能解决的 问题,由于在执行语音程序时对资源的消耗比较大,在语音报数的时候会中断步 进电机驱动信号的输出,导致电机停转.为此,在参考有关文献之后我将尝试使 用两块单片机,通过双机通讯来传递信号. 这次
31、步进电机的综合实验我们学到了步进电机、数码管、44 键盘、更重要 的是学会了程序出问题时调试的方法, 并养成了遇到困难主动独立寻找解决方案 的信心和技巧. 17 数理与信息工程学院单片机原理与应用期末学期课程设计 第5章 参考文献 1谢自美,电子线路设计、实验、测试(第二版)。华中理工大学出版社,2000. 2薛钧义,张彦斌,樊波等凌阳十六位单片机原理及应用.北京航空航天大学出版社, 2003 3王晓明,电动机的单片机控制.北京航空航天大学出版社,2002。5 4张鑫,单片机原理及应用.电子工业出版社,2005。8 4EB/01 http:/www。sunplus。com 5EB/02 http:/www。21ic。com 181