2022年单片机汇编语言步进电机转速控制系统[参 .pdf

上传人:Che****ry 文档编号:27199701 上传时间:2022-07-23 格式:PDF 页数:12 大小:318.08KB
返回 下载 相关 举报
2022年单片机汇编语言步进电机转速控制系统[参 .pdf_第1页
第1页 / 共12页
2022年单片机汇编语言步进电机转速控制系统[参 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年单片机汇编语言步进电机转速控制系统[参 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机汇编语言步进电机转速控制系统[参 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、大连理工大学本科设计报告题目:步进电机转速控制系统设计课程名称:单片机综合设计学院(系): 电子信息与电气工程学部专业:班级:学号:学生姓名:成绩:2013 年7 月20 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - - 题目:步进电机转速控制系统设计1 设计要求1)利用 ZLG7290 的键盘控制直流电机(或步进电机的转速、转向);2)也可以利用 ADC 模块(与电位器配合),利用电位器控制转速;3)利用 ZLG7290

2、 的 8 位 LED 数码管显示电机转向、转速参数显示。2 设计分析及系统方案设计实验要求使用步进电机作为被控制对象,由ZLG7290 做人机对话平台,利用单片机的 P1(8 位)和 P3(部分口线)构造系统。实验最终实现功能、设计思路以及方案设计如以下几个小节所述。2.1 系统设计实现功能根据设计要求、现有设备以及知识储备,完成功能如下: 由按键 S1S8实现转速切换,其中S1S4正转, S5S8反转 按键 S16作为停止键, 按下 S10后步进电机停止转动,再按S1S16步进电机按照按键对应转速以及转向转动 按键 S10 作为复位键,当按下S10 后,无论当前处于何种状态,系统恢复至初始态

3、 8 为 LED 数码管显示当前步进电机转速(speed=0/1 14 ) ,转速前 0 表示正转,1 表示反转 若按下停止键,数码管显示当前转速;若按下复位键,数码管显示初始态speed=00 2.2 设计思路本次的设计是LED 显示与步进电机相结合以及若干功能键的组合的一种设计。根据之前学习的按键中断显示实验和定时器实验,使用INT0 和 INT1,INT0 作为按键中断,INT1 作为定时器。在主程序中实现LED 初始显示、定时器计时初始、按键中断初始。INT0 中断调用中断服务子程序实现对按键键值的判断,并根据相应的按键值实现对应步进电机的变化, 并显示该按键对应的转速。 INT1 定

4、时器中断根据 INT0 的按键键值,对定时器设定相应的初值,实现步进电机按规定的转速转动。对于按键停止,则是利用中断优先级,当INT0 的中断优先级高时,系统进入中断,此时INT1 停止计时,也就实现了步进电机的停止,当改变定时器与按键中断的优先级时,即把INT0 设为低优先级,INT1 设为高优先级,步进电机重新开始转动。此时添加一个对INT0 位地址的查询,若有按键即正 /反转的 4 档转速所对应的按键, 步进电机开始重新转动。 对于复位功能,则同样是利用按键键值的判断,在对应键值下控制电机初始化。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

5、 - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - - 2.3 系统方案设计系统总设计方案框图如下所示:图 1.1 系统总框图3 系统电路图见附录4 外围接口模块硬件电路功能描述本设计主要用到的器件是AT89C51 、ZLG7290B 和步进电机。4.1 AT89C51 AT89C51 的主要参数如下表所示:型号存储器定 时器I/0 串行口中断速度(MH )其 它 特点E2PROM ROM RAM 89C51 4K 128 2 32 1 6 24 低电压AT89C51 是一种带 4K字节闪烁可编程可擦除只读存储器的低电压

6、,高性能 CMOS8位微处理器,俗称单片机。其引脚如图1.2 所示。图 1.2 单片机的引脚排列ZLG7290AT89C51UL2003按键输入L E D 显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - - 管脚说明如下:VCC :供电电压GND :接地P0口: 8 位漏级开路双向I/O 口,每脚可吸收8TTL门电流;P1 口:P1口是一个内部提供上拉电阻的8 位双向 I/O 口,P1口缓冲器能接收输出4TTL门电流;P2

7、 口:P2 口为一个内部上拉电阻的8 位双向 I/O 口,P2 口缓冲器可接收,输出4个 TTL门电流,当 P2口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时, P2口的管脚被外部拉低,将输出电流。P3口: P3口管脚是 8 个带内部上拉电阻的双向I/O 口, 可接收输出 4 个 TTL门电流。P3口也可作为 AT89C51 的一些特殊功能口,如下所示:P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断 0)P3.3 /INT1 (外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P

8、3.6 /WR (外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST :复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。4.2 ZLG7290B ZLG7290B 是数码管动态显示驱动、键盘扫描管理芯片。接口采用I2C 结构。内部寄存器有 13 个单元 00H-0DH :1)系统寄存器(地址 00H ) ,第 0 位称作按键有效位,为1 表示按键按下,为 0表示没有按键操作,并且有按键按下的时候在ZLG7290B的/INT 引脚会产生一个低电平的中断请求信号。2)键值寄存器(地址01H ) ,如果按下的是普

9、通键,键值寄存器就保存按键对应的兼职( 1-56) 。3)连击计数器( 02H ) ,就是芯片为普通键提供的一种连击计数功能,当按下某一按键就可以产生连续的中断请求信号。4)功能键值寄存器(地址03H ) ,功能按键不产生键值,但是在按下和抬起都会产生中断请求信号。5)命令寄存器(地址07H和 08H ) ,向命令寄存器送入相关的控制命令可以实现段寻址,下载显示数据和控制闪烁等功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - -

10、- - 6)闪烁控制寄存器(地址0HCH ) ,闪烁控制寄存器决定闪烁的频率和占空比。7)扫描位数寄存器(地址0DH ) ,扫描位数寄存器决定着ZLG7290B 动态扫描显示的位数,取值 0-7,对应的显示 1-8 位。8)显示缓冲寄存器(地址10H-17H ) ,八个显示缓冲寄存器直接决定着数码管上显示的字形和显示的位置。ZLG7290B 的引脚图如下:图 1.3. ZLG7290B 引脚逻辑图4.3 步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转

11、过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。(一)步进电机的静态指标术语1、相数:产生不同对N 、S磁场的激磁线圈对数。常用m表示。2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n 表示,或指电机转过一个齿距角所需脉冲数。3、步距角:对应一个脉冲信号,电机转子转过的角位移用表示。(二)步进电机动态指标及术语:1、最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。2、最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转

12、速频率。3、电机正反转控制:当电机绕组通电时序为D-DC-C-CB-B-BA-A-AD时为正转,通电时序为 AD-A-AB-B-BC-C-CD-D时为反转。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - - 如下所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1.4 是该四相反应式步进电机工作原理示意图。图 1.4 四相步进电机步进示意图5 主程序中主

13、要变量定义变量名称RAM 单元/ 寄存器功能SDA P3.3 IIC 数据总线SCL P3.4 IIC 时钟线RST P3.5 IIC 复位线BA P1.0 步进电机驱动BB P1.1 步进电机驱动BC P1.2 步进电机驱动BD P1.3 步进电机驱动WSLA 70H 取器件地址(写)RSLA 71H 取器件地址(读)DISDA 20H 源数据块首地址DISCON 08H 写入数据个数DATA_1 30H 变量区首地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12

14、 页 - - - - - - - - - - 6 系统软件中各个子程序的功能描述子程序名称入口参数出口参数功能 描述INT_7290 A A 按键中断TI_INT A 无定时器中断CF A R3 、R4 拆分, 高 4 位存在 R4中,低 4 位存在 R3中DELAY 无无步进电机相旋转邻角延时;按键抖动消除延时RDKEY 无A 读出键值SHOW 无无将当前 10H-17H的字形码输出WRNBYT R7,R0,R2,R3 无通用的 IIC 通讯子程序(多字节写操作)RDADD R7,R0,R2,R3,R4 R0指向的主器件内部数据块通用的 IIC 通讯子程序(多字节读操作)6主程序程序流程图见

15、附录7程序清单SDA BIT P3.3 SCL BIT P3.4 RST BIT P3.5 BA BIT P1.0 BB BIT P1.1 BC BIT P1.2 BD BIT P1.3 WSLA EQU 70H RSLA EQU 71H DISDA EQU 20H DISCON EQU 08H DATA_1 EQU 30H ORG 8000H LJMP 8100H ORG 8003H LJMP INT_7290 ; 按键中断入口地址ORG 801BH LJMP TI_INT ; 定时器中断入口地址ORG 8100H ;*主程序开始 * ;INT0 实现按键中断 ,INT1 用于定时器;* S

16、TART: MOV SP,#60H CLR RST ; 复位 LCALL DELAY SETB RST SETB EA SETB EX0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - - CLR IT0 ; 开 INT0中断SETB PX0 ; 高优先级MOV TMOD,#10H ; 定时器 1 设; 为模式 1 MOV TH1,#00H MOV TL1,#00H SETB ET1 ; 开 INT1中断SETB TR1 CL

17、R A SETB F0 ; 初始标识位MOV R1,#10H ; 节拍初始MOV R5,#08H ;* ; 相序表;* MOV 10H,#08H ;D 正转MOV 11H,#0CH ;DC MOV 12H,#04H ;C MOV 13H,#06H ;CB MOV 14H,#02H ;B MOV 15H,#03H ;BA MOV 16H,#01H ;A MOV 17H,#09H ;AD MOV 18H,#09H ;AD 反转MOV 19H,#01H ;A MOV 1AH,#03H ;AB MOV 1BH,#02H ;B MOV 1CH,#06H ;BC MOV 1DH,#04H ;C MOV 1

18、EH,#0CH ;CD MOV 1FH,#08H ;D ;* ; 建立变量缓冲区( 30H37H ); 显示 SPEED=00 ;* MOV DATA_1,#00H MOV DATA_1+1,#00H MOV DATA_1+2,#12H MOV DATA_1+3,#17H MOV DATA_1+4,#16H MOV DATA_1+5,#16H MOV DATA_1+6,#15H MOV DATA_1+7,#14H ;* ; 通过查表建立显示缓冲区; (20H27H );*MOV DPTR,#LEDSEG MOV R7,#DISCON MOV R0,#DISDA MOV R1,#DATA_1 L

19、OOP1: MOV A,R1 MOVC A,A+DPTR MOV R0,A INC R1 INC R0 DJNZ R7,LOOP1 ;* ; 写入数据;*LOOP: MOV R7,#DISCON MOV R2,#10H MOV R3,#WSLA MOV R0,#DISDA LCALL WRNBYT LCALL DELAY SJMP $ ; 等待中断;* ; 字形码;* LEDSEG:DB 0FCH,60H,0DAH,0F2H DB 66H,0B6H,0BEH,0E4H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

20、 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - - DB 0FEH,0F6H,0EEH,3EH DB 9CH,7AH,9EH,8EH DB 0FAH,1EH,12H,00H DB 0B6H,0CEH,0DEH,7AH ;S P E D ;* ; 选择相速( INT1);* TI_INT:PUSH ACC MOV A,29H ; 判断键值J0: CJNE A,#00H,J1 MOV TH1,#00H MOV TL1,#00H SETB F0 ;F0 高电平正转SJMP OUTPUT ;输出步进J1: CJNE A,#01H,J2 MOV TH1,#00

21、H MOV TL1,#00H ; 档 1 SETB F0 SJMP OUTPUT J2: CJNE A,#02H,J3 MOV TH1,#60H MOV TL1,#60H ; 档 2 ; 不同按键设置不同速度,; 正反转各设四档SETB F0 SJMP OUTPUT J3: CJNE A,#03H,J4 MOV TH1,#90H MOV TL1,#90H ; 档 3 SETB F0 SJMP OUTPUT J4: CJNE A,#04H,J5 MOV TH1,#0D0H MOV TL1,#0D0H ; 档 4 SETB F0 SJMP OUTPUT J5: CJNE A,#05H,J6 MOV

22、 TH1,#00H MOV TL1,#00H ; 档 1 CLR F0 SJMP OUTPUT J6: CJNE A,#06H,J7 MOV TH1,#60H MOV TL1,#60H ; 档 2 CLR F0 SJMP OUTPUT J7: CJNE A,#07H,J8 MOV TH1,#90H MOV TL1,#90H ; 档 3 CLR F0 SJMP OUTPUT J8: MOV TH1,#0D0H MOV TL1,#0D0H ; 档 4 CLR F0 SJMP OUTPUT OUTPUT:MOV A,P1 ; 步进电机转ANL A,#0FH ; 取低四位MOV A,R1 MOV P1

23、,A INC R1 DJNZ R5,OUT JB F0,CWISE;判断正/ 反 MOV R1,#18H ; 反转 SJMP NUM CWISE: MOV R1,#10H ; 正转NUM: MOV R5,#08H OUT: POP ACC RETI 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - - ;*;拆分;* CF: PUSH 02H PUSH DPH PUSH DPL MOV DPTR,#LEDSEG MOV R2,A

24、 ANL A,#0FH MOVC A,A+DPTR MOV R3,A ; 存低 4 位MOV A,R2 SWAP A ANL A,#0FH MOVC A,A+DPTR MOV R4,A ; 存高 4 位POP DPL POP DPH POP 02H RET ;*;延时程序;* DELAY: PUSH 00H PUSH 01H MOV R0,#00H DELAY1: MOV R1,#00H DJNZ R1,$ DJNZ R0,DELAY1 POP 01H POP 00H RET ;* ; 7290 中断;* INT_7290: PUSH 00H PUSH 02H PUSH 03H PUSH 04

25、H PUSH 07H PUSH ACC PUSH PSW LCALL DELAY; 按键消抖LCALL RDKEY; 读键值NOP ; 用于观察读入键值CJNE A,#10H,AKEY1 PANDUAN: SETB PT1 ; 标志位CLR PX0 ; 交换优先级,用于停止后再继续工作AKEY: JB P3.2,$ ;查询LCALL DELAY LCALL RDKEY CJNE A,#0AH,AKEY1 SJMP PANDUAN AKEY1: JC INPUT ; 此时为档速设定键SJMP RESTART INPUT: CJNE A,#05H,NEXT ;判断正/ 反转NEXT: JNC WI

26、SE LCALL CF MOV 20H,R3 MOV 21H,R4 MOV 21H,#0FCH ;0 , 正转表示SJMP OVER WISE: SUBB A,#04H LCALL CF MOV 20H,R3 MOV 21H,R4 MOV 21H,#60H ;1 ,反转表示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - - SJMP OVER RESTART: LCALL CF MOV 20H,R3 MOV 21H,R4 O

27、VER: LCALL SHOW SETB PX0 ; 重新将 INT0 的优先级置高POP PSW POP ACC POP 07H POP 04H POP 03H POP 02H POP 00H RETI ;* ; 读键值;* RDKEY: MOV R0,#28H MOV R7,#04H MOV R2,#00H MOV R3,#WSLA MOV R4,#RSLA LCALL RDADD MOV A,29H RET ;* ; 显示程序;* SHOW: MOV R7,#02H MOV R2,#10H MOV R3,#WSLA MOV R0,#DISDA LCALL WRNBYT LCALL DEL

28、AY RET ;* ; 通用的 I2C 通讯子程序(略);* END 8系统调试运行结果说明、分析所出现得问题,设计体会与建议8.1 系统调试运行结果运行程序后, LED 显示屏上显示“ speed=00 ” 。按下对应按键后, LED 显示屏与步进电机状态如下表所示。按键LED 显示屏步进电机无(初始化)speed=00 初始速度S1 speed=01 正转档 1 S2 speed=02 正转档 2 S3 speed=03 正转档 3 S4 speed=04 正转档 4 S5 speed=11 反转档 1 S6 speed=12 反转档 2 S7 speed=13 反转档 3 名师资料总结

29、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - - S8 speed=14 反转档 4 S10(复位键)speed=00 初始速度S16(停止键)speed=* (当前步进电机转速与旋转方向)停止8.2 实验出现问题分析问题一:加入定时器后, LED 显示屏无法正常显示解决方法:改变 7290连线从 P1.4P1.7至 P3.2P3.5 。单步调试,注意中断优先级的设定。等待中断的指令应为SJMP $ 问题二: 7290中断键值读入后,键

30、值被改变解决方法:在调用的子程序中,CF、RDKEY 、TI_INT 中对 A 进行保护。问题三:步进电机停止后无法重启解决方法:在比较停止键的键值后,改变按键中断INT0 与定时器中断 INT1 的优先级。定时器中断设为高优先级,按键中断设为低优先级。问题四:步进电机停止后,LED 显示屏上无法显示当前步进电机转速与旋转方向解决方法:当步进电机停止后,调用拆分子程序,显示子程序显示当前步进电机转速与旋转方向。8.3 设计体会与建议本次设计时出现了许多小问题,在解决时需要仔细单步调试,观察各寄存器存储数值的变化。程序里有外部中断和定时器中断,需要处理好优先级关系。单片机的综合设计实验涉及以前学

31、过的多方面知识,是对个人能力一个很好的提高。期望以后能有更多的选题。9 结论及设计体会本实验基本完成设计要求。在完成设计的过程中,遇到不少问题,一一解决后,收获颇深。单片机的语言和汇编语言很相似,因此借助以前的知识可以很快上手,但是 51单片机使用更方便,应用也更广。许多知识只有实践后才能真正了解,作为工科生,多实践,在实践中多思考,善于发现。正如此次51 单片机调试的过程,单步调试找出问题所在,分析原因,就能快速改正错误了。参考文献MCS-51 单片机应用实验教程陈育斌主编名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁