51单片机汇编语言步进电机转速控制系统_第1页
51单片机汇编语言步进电机转速控制系统_第2页
51单片机汇编语言步进电机转速控制系统_第3页
51单片机汇编语言步进电机转速控制系统_第4页
51单片机汇编语言步进电机转速控制系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连理工大学本科设计报告题目:步进电机转速控制系统设计课程名称:单片机综合设计学院(系):电子信息与电气工程学部专业:班级:学号:学生姓名:成绩:2013年7月20日题目:步进电机转速控制系统设计1设计要求1)利用ZLG7290勺键盘控制直流电机(或步进电机的转速、转向);2)也可以利用ADC真块(与电位器配合),利用电位器控制转速;3)利用ZLG7290勺8位LE嗷码管显示电机转向、转速参数显示。2设计分析及系统方案设计实验要求使用步进电机作为被控制对象,由ZLG729傲人机对话平台,利用单片机的P1(8位)和P3(部分口线)构造系统。实验最终实现功能、设计思路以及方案设计如以下几个小节所述

2、。2.1 系统设计实现功能根据设计要求、现有设备以及知识储备,完成功能如下: 由按键S1S冢现转速切换,其中S1S4E*专,S5S皈转 按键S16乍为停止键,按下S10t步进电机停止转动,再按S1S1能进电机按照按键对应转速以及转向转动 按键S10乍为复位键,当按下S10t,无论当前处于何种状态,系统恢复至初始态 8为LEDM码管显示当前步进电机转速(speed=0/114),转速前0表示正转,1表示反转 若按下停止键,数码管显示当前转速;若按下复位键,数码管显示初始态speed=002.2 设计思路本次的设计是LED显示与步进电机相结合以及若干功能键的组合的一种设计。根据之前学习的按键中断显

3、示实验和定时器实验,使用INT0和INTIINT0乍为按键中断,INT1作为定时器。在主程序中实现LED®始显示、定时器计时初始、按键中断初始。INT0中断调用中断服务子程序实现对按键键值的判断,并根据相应的按键值实现对应步进电机的变化,并显示该按键对应的转速。INT1定时器中断根据INT0的按键键值,对定时器设定相应的初值,实现步进电机按规定的转速转动。对于按键停止,则是利用中断优先级,当INT0K中断优先级高时,系统进入中断,止匕时INT件止计时,也就实现了步进电机的停止,当改变定时器与按键中断的优先级时,即把INT0设为低优先级,INT1设为高优先级,步进电机重新开始转动。此时

4、添加一个对INT0&地址的查询,若有按键即正/反转的4档转速所对应的按键,步进电机开始重新转动。对于复位功能,则同样是利用按键键值的判断,在对应键值下控制电机初始化。2.3 系统方案设计系统总设计方案框图如下所示:图1.1系统总框图3系统电路图见附录4外围接口模块硬件电路功能描述本设计主要用到的器件是AT89C51ZLG7290两步进电机4.1 AT89C51AT89C5的主要参数如下表所示:型号存储器定时器I/O用行口中断速度(MH其它特占八、E2PROMROMRAM89C514K1282321624低电压AT89C5是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS

5、8微处理器,俗称单片机。具引脚如图1.2所示。Pl. & pi. 1FE 2Pl. 3Pl.4Pl. BPL dPL 7RSIRXD/P3. 0TXD/P3- 1-JJIWP3. 2TNT1/PX 3TO/P3,4T1/P3. EWP:- 而/F11XAIL2XA1L1GN 口ATU9c01234507390891 TJJ11- 9R7H-n4J21DSO76ru432 1 433JJ1333 1322Z ,2 2 2 2 2 .此(_ PO. O/AID FO. 1/AT1 FQ. 2/AI2 FD. S/AD3皿4内4I'll. 5/AT5 FU.ti/ALti PO. 7

6、/AT7-FA/VFP*m/PRCGFSENr?+7/A15 F2. 6/AI4 F2x 5/A13 -F2.4/A12 -P2. 3/A11P2t 2/AJP P2.1/A9 12 O/Afe图1.2单片机的引脚排列管脚说明如下:VCC供电电压GND接地P0口:8位漏级开路双向I/O口,每脚可吸收8TTL1电流;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部

7、拉低,将输出电流。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C5的一些特殊功能口,如下所示:P3.0RXD(小行输入口)P3.1TXD(用行输出口)P3.2/INTO(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST复位输入。当振荡器复位器件时,要保持RST却两个机器周期的高电平时间4.2 ZLG7290BZLG7290是数码管动态显示驱动、键盘

8、扫描管理芯片。接口采用I2C结构。内部寄存器有13个单元00H-0DH1)系统寄存器(地址00H),第0位称作按键有效位,为1表示按键按下,为0表示没有按键操作,并且有按键按下的时候在ZLG7290B勺/INT引脚会产生一个低电平的中断请求信号。2)键值寄存器(地址01口,如果按下的是普通键,键值寄存器就保存按键对应的兼职(1-56)。3)连击计数器(02口,就是芯片为普通键提供的一种连击计数功能,当按下某一按键就可以产生连续的中断请求信号。4)功能键值寄存器(地址03H),功能按键不产生键值,但是在按下和抬起都会产生中断请求信号。5)命令寄存器(地址07H和08H),向命令寄存器送入相关的控

9、制命令可以实现段寻址,下载显示数据和控制闪烁等功能。6)闪烁控制寄存器(地址0HCH,闪烁控制寄存器决定闪烁的频率和占空比。7)扫描位数寄存器(地址0DH),扫描位数寄存器决定着ZLG7290助态扫描显示的位数,取值0-7,对应的显示1-8位。8)显示缓冲寄存器(地址10H-17H,八个显示缓冲寄存器直接决定着数码管上显示的字形和显示的位置。ZLG7290B勺弓I脚图如下:1317 2?22346屏驶炉g4吃g2glgolA2LslNbDiDiDIDlDiDiDlDiSnsc/INGNg&BgcgD逆eeFgGgH sescscscsssescvcc 0SC2 0SC1/RES17ZL

10、G?2901.3.ZLG7290BI脚逻辑图4.3步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。(一)步进电机的静态指标术语1、相数:产生不同对NS1场的激磁线圈对数。常用m表示。2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数。3、步距角:对应一个脉冲信号,电机转子

11、转过的角位移用8表示。(二)步进电机动态指标及术语:1、最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。2、最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。3、电机正反转控制:当电机绕组通电时序为D-DC-C-CB-B-BA-A-AD为正转,通电时序为AD-A-AB-B-BC-C-CDD反转。如下所示的步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1.4是该四相反应式步进电机工作原理示意图。图1.4四相步进电机步进示意图5主程序中主要

12、变量定义变量名称RAMH元/寄存器功能SDAP3.3IIC数据总线SCLP3.4IIC时钟线RSTP3.5IIC复位线BAP1.0步进电机驱动BBP1.1步进电机驱动BCP1.2步进电机驱动BDP1.3步进电机驱动WSLA70H取器件地址(写)RSLA71H取器件地址(读)DISDA20H源数据块首地址DISCON08H写入数据个数DATA_130H变量区首地址6系统软件中各个子程序的功能描述子程序名称入口参数出口参数功能描述INT_7290AA按键中断TI_INTA无定时器中断CFAR3R4拆分,局4位存在R4中,低4位存在R3中DELAY无无步进电机相旋转邻角延时;按键抖动消除延时RDKE

13、Y无A读出键值SHOW无无将当前10H-17H勺字形码输出WRNBYTR7,R0,R2,R3无通用的IIC通讯子程序(多字节写操作)RDADDR7,R0,R2,R3,R4R0指向的主器件内部数据块通用的IIC通讯子程序(多字节读操作)6主程序程序流程图见附录7程序清单SDA BIT P3.3SCL BIT P3.4RSTBITP3.5BABITP1.0.*主程序开始*BBBITP1.1BCBITP1.2BDBITP1.3WSLAEQU70HRSLAEQU71HDISDAEQU20HDISCONEQU08HDATA_1EQU30HORG8000HLJMP8100HORG8003HLJMPINT_

14、7290;按键中断入口地址ORG801BHLJMPTI_INT;定时器中断入口地址ORG8100H;INTC®现按键中断,INT1用于定时器.*START:MOVSP#60HCLRRST;复位LCALLDELAYSETBRSTSETBEASETBEX0CLRIT0;开INT0中断SETBPX0;高优先级MOVTMOD,#10Ht时器1设;为模式1MOVTH1,#00HMOVTL1,#00HSETBET1;开INT1中断SETBTR1CLRASETBF0;初始标识位MOVR1,#10HP拍初始MOVR5,#08H.*;相序表;*;MOV10H,#08H;D正转MOV11H,#0CH;D

15、CMOV12H,#04H;CMOV13H,#06H;CBMOV14H,#02H;BMOV15H,#03H;BAMOV16H,#01H;AMOV17H,#09H;ADMOV18H,#09H;AD反转MOV19H,#01H;AMOV1AH,#03H;ABMOV1BH,#02H;BMOV1CH,#06H;BCMOV1DH,#04H;CMOV1EH,#0CH;CDMOV1FH,#08H;D.*;建立变量缓冲区(30H37H);显示SPEED=00.*;MOVDATA_1,#00HMOVDATA_1+1,#00HMOVDATA_1+2,#12HMOVDATA_1+3,#17HMOVDATA_1+4,#1

16、6HMOVDATA_1+5,#16HMOVDATA_1+6,#15HMOVDATA_1+7,#14H.*;通过查表建立显示缓冲区;(20H27H).*;MOVDPTR,#LEDSEGMOVR7,#DISCONMOVR0,#DISDAMOVR1,#DATA_1LOOP1:MOVA,R1MOVCA,A+DPTRMOVR0,AINCR1INCR0DJNR7,LOOP1.*;写入数据.*;LOOP:MOVR7,#DISCONMOVR2,#10HMOVR3,#WSLAMOVR0,#DISDALCALLWRNBYTLCALLDELAYSJMP$;等待中断.*;字形码;*;LEDSEG:DB0FCH,60H

17、,0DAH,0F2HDB66H,0B6H,0BEH,0E4HDB0FEH,0F6H,0EEH,3EHDB9CH,7AH,9EH,8EHDB0FAH,1EH,12H,00H;S P E DDB0B6H,0CEH,0DEH,7AH.* ;; 选择相速(INT1MOV TH1,#60HMOV TL1,#60H ;档2.*;TI_INT:PUSIACCMOVA,29H;判断键值J0:CJNEA,#00H,J1MOVTH1,#00HMOVTL1,#00HSETBF0;F0高电平正转SJMPOUTPUTS出步进J1:CJNEA,#01H,J2MOVTH1,#00HMOVTL1,#00H;档1SETBF0S

18、JMPOUTPUTJ2:CJNEA,#02H,J3;不同按键设置不同速度,;正反转各设四档SETBF0SJMPOUTPUTJ3:CJNEA,#03H,J4MOVTH1,#90HMOVTL1,#90H;档3SETBF0SJMPOUTPUTJ4:CJNEA,#04H,J5MOVTH1,#0D0HMOVTL1,#0D0H;档4SETBF0SJMPOUTPUTJ5:CJNEA,#05H,J6MOVTH1,#00HMOVTL1,#00H;档1CLRF0SJMPOUTPUTJ6:CJNEA,#06H,J7MOVTH1,#60HMOVTL1,#60H;档2CLRF0SJMPOUTPUTJ7:CJNEA,#0

19、7H,J8MOVTH1,#90HMOVTL1,#90H;档3CLRF0SJMPOUTPUTJ8:MOVTH1,#0D0HMOVTL1,#0D0H;档4CLRF0SJMPOUTPUTOUTPUT:MOVP1;步进电机转ANLA,#0FH;取低四位MOVA,R1MOVP1,AINCR1DJNR5,OUTJBF0,CWISEt断正/反MOVR1,#18H;反转SJMPNUMCWISE:MOVR1,#10H正转NUM:MOVR5,#08HOUTPOPACCRETI.*.;拆分.*;CF:PUSH02HPUSHDPHPUSHDPLMOVDPTR,#LEDSEGMOVR2,AANLA,#0FHMOVCA,

20、A+DPTRMOVR3,A;存低4位MOVA,R2SWAPAANLA,#0FHMOVCA,A+DPTRMOVR4,A;存高4位POPDPLPOPDPHPOP02HRET.*.;延时程序;*;DELAY:PUSH00HPUSH01HMOVR0,#00HDELAY1:MOVR1,#00HDJNZR1,$DJNZR0,DELAY1POP01HPOP00HRET.*;7290中断.*;INT_7290:PUSH00HPUSH02HPUSH03HPUSH04HPUSH07HPUSHACCPUSHPSWLCALLDELAY;键消抖LCALLRDKE诛键值NOP用于观察读入键值CJNEA,#10H,AKEY

21、1PANDUAN:SETBPT1;标志位CLRPX0;交换优先级,用于停止后再继续工作AKEY:JBP3.2,$;查询LCALLDELAYSJMPPANDUANAKEY1:JCINPUT;此时为档速设定键SJMPRESTARTINPUT:CJNEA,#05H,NEXT;判断正/反转NEXT:JNCWISELCALLCFMOV20H,R3MOV21H,R4MOV21H,#0FCH;0,正转表示SJMPOVERWISE:SUBBA,#04HLCALLCFMOV 20H,R3LCALLRDKEYMOV 21H,R4CJNEA,#0AH,AKEY1MOV21H,#60H;1,反转表示SJMPOVERR

22、ESTARLCALLCFMOV20H,R3MOV21H,R4OVER:LCALLSHOWSETBPX0;重新将INT0B勺优先级置高POPPSWPOPACCPOP07HPOP04HPOP03HPOP02HPOP00HRETI.*;读键值;*;RDKEY:MOVR0,#28HMOVR7,#04HMOVR2,#00HMOVR3,#WSLAMOVR4,#RSLALCALLRDADDMOVA,29HRET.*;显示程序;*;SHOW:MOVR7,#02HMOVR2,#10HMOVR3,#WSLAMOV R0,#DISDALCALL WRNBYTLCALL DELAYRET.*;通用的I2C通讯子程序(略).*;END8系统调试运行结果说明、分析所出现得问题,设计体会与建议8.1 系统调试运行结果运行程序后,LED®示屏上显示“speed=0。按下对应按键后,LEES示屏与步进电机状态如下表所小。按键LEES示屏步进电机无(初始化)speed=00初始速度S1speed=01止转档1S2speed=02止转档2S3speed=03止转档3S4speed=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论