单片机课程设计——步进电机的控制

上传人:沈*** 文档编号:171172293 上传时间:2022-11-24 格式:DOC 页数:12 大小:179.50KB
收藏 版权申诉 举报 下载
单片机课程设计——步进电机的控制_第1页
第1页 / 共12页
单片机课程设计——步进电机的控制_第2页
第2页 / 共12页
单片机课程设计——步进电机的控制_第3页
第3页 / 共12页
资源描述:

《单片机课程设计——步进电机的控制》由会员分享,可在线阅读,更多相关《单片机课程设计——步进电机的控制(12页珍藏版)》请在装配图网上搜索。

1、单片机课程设计 步进电机的控制 学院: 姓名: 班级: 学号: 一、实验任务1.从键盘上输入正、反转命令,转速参数(16级)和转动步数显示在LED显示器上。 显示器上显示:第一位为0表示正转,为1表示反转; 第二位0F为转速等级; 第三到第六位设定步数。2.单片机显示器上显示的正、反转命令,转速级数和转动步数进行相应动作,转动步数减为零时停止转动。二、基本原理1.步进电机基本原理 如图,当有一相绕组被通电激励时,磁通从正相齿,经过软铁芯的转子,并以最短路径流向负相齿,为使磁通路径最短,在磁场力的作用下,转子被迫移动,使最近的一对齿与被激励的一相对准。 那么,通过对它每相线圈中电流的顺序切换可使

2、电机作步进式旋转。相数:产生不同对极N、S磁场的激磁线圈对数。拍数:指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB或A-B-C-D-A,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.步距角:对应一个脉冲信号电机转子转过的角位移。 步距角=360/(转子齿数*拍数) 系统中使用20BY-0型号步进电机,它使用+5V直流电源,步距角为18度,电机线圈由A、B、C、D四相组成。 步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。BA、BB

3、、BC、BD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。步进电机原理接线图如图所示:步进电机模块插头接实验系统J3插座,(顺接)把P1.0P1.3分别接到BABD插孔。2.数码管显示和键盘(1)数码管显示字形 LED显示器是由发光二极管构成的字段组成的显示器。显示程序任务:l 设置显示缓冲区(7EH 79 H) ,存放待显示数据和字符(位置码)。l 显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。l 输出显示:输出字形码到显示端口。(2)字位口表(从高位起)位置G5G4G3G2G1G0数值20H10H08H04H02H01H(3)键盘显示原理图三、内存使用

4、分配表0FFDCH字形口0FFDDH字位口/键扫口0FFDEH键入口ACC(A) 、R0R7存放中间值79H7EH显示缓冲单元,存放显示器的显示数据四、设计说明及流程1.显示子程序模块 l 采用动态显示方式,即一位一位地轮流点亮(扫描)6位显示器。l 在8032RAM存储器中设置六个显示缓冲区单元7EH-79H,分别存放6位显示器的显示数据(从高到低)。2.键盘输入模块l 实验系统有48的键盘结构(见键扫显示原理图)。l 键盘的行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断开,行线都为高电平。当键盘上某一键闭合时,则该键所对应的行线和列线都短路。l CPU逐行逐列地检查键盘的状

5、态,可判断键盘上有无键闭合。CPU对键盘上闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和列线的状态查表求得。 3. 步进电机控制模块 l 四相四拍运行方式即AB-BC-CD-DA-AB或A-B-C-D-Al 激励一相即对该相置“ 1”l 控制每一拍的间隔时间用延时子程序实现判断步数是否减为0 的流程图五、 程序清单ORG 0000H LJMP MAIN ORG 100HMAIN: MOV 79H,#00H ;主程序部分 MOV 7AH,#00H MOV 7BH,#00H MOV 7CH,#00H MOV 7DH,#00H MOV 7EH,#00H MOV R0,#7EH ;

6、取显示内存缓充区的第一位MAIN1: ACALL KEY1 ;调用按键程序 MOV R0,A ;获得的值存放到7EH中 CJNE R0,#78H,KS ;是否到78H,不到转KS CJNE A,#16H,AGAIN ;是否按下EXEC键,若是则跳转到RUN LJMP RUN ;调转到步进电机控制部分AGAIN: LJMP MAIN1KS: DEC R0 LJMP MAIN1 RUN: MOV A,7EH ;取(7EH)当前所存 JZ ZHENG ;跳转到正转 JNZ FAN ;跳转到反转 ZHENG: MOV P1,#03H ;给AB两相脉冲 ACALL DELAY ;调用延时子程序 MOV

7、P1,#06H ;给BC两相脉冲 ACALL DELAY ;调用延时子程序 MOV P1,#0CH ;给CD两相脉冲 ACALL DELAY ;调用延时子程序 MOV P1,#09H ;给DA两相脉冲 ACALL DELAY ;调用延时子程序 ANL 79H,#0FH ;取7EH低四位 ANL 7AH,#0FH ;取7DH低四位 ANL 7BH,#0FH ;取7CH低四位 ANL 7CH,#0FH ;取7BH低四位 LCALL DIS ;调用显示子程序 MOV R0,79H ;步数由设定值降至0停止 CJNE R0,#0,Z1 DEC 79H MOV R0,7AH CJNE R0,#0,Z2

8、DEC 7AH MOV R0,7BH CJNE R0,#0,Z3 DEC 7BH MOV R0,7CH CJNE R0,#0,Z4 LJMP MAINZ1: DEC 79H LJMP ZHENGZ2: DEC 7AH LJMP ZHENGZ3: DEC 7BH LJMP ZHENGZ4: DEC 7CH LJMP ZHENGFAN: MOV P1,#09H ;给AD相脉冲 ACALL DELAY ;调用延时子程序 MOV P1,#0CH ;给DC相脉冲 ACALL DELAY ;调用延时子程序 MOV P1,#06H ;给CB相脉冲 ACALL DELAY ;调用延时子程序 MOV P1,#0

9、3H ;给BA相脉冲 ACALL DELAY ;调用延时子程序 ANL 79H,#0FH ;取7EH低四位 ANL 7AH,#0FH ;取7DH低四位 ANL 7BH,#0FH ;取7CH低四位 ANL 7CH,#0FH ;取7BH低四位 LCALL DIS MOV R0,79H ;步数自减部分 CJNE R0,#0,F1 DEC 79H MOV R0,7AH CJNE R0,#0,F2 DEC 7AH MOV R0,7BH CJNE R0,#0,F3 DEC 7BH MOV R0,7CH CJNE R0,#0,F4 LJMP MAINF1: DEC 79H LJMP FANF2: DEC 7

10、AH LJMP FANF3: DEC 7BH LJMP FANF4: DEC 7CH LJMP FANDELAY: MOV R1,7DH ;延时调速部分DELAY1: ACALL DIS MOV R1,DELAY1 RETHERE: ACALL DIS SJMP HEREKEY1: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下,转消颤延时 ACALL DIS ;无键按下,调用显示子程序 AJMP KEY1 ;返回KEY1,继续等待LK1: ACALL DIS ;调用显示子程序 ACALL T 12 ;调用12ms延时子程序 ACALL KS1 ;调用判断有无键按下

11、子程序, 确认按键真实性 JNZ LK2 ;有键按下转逐列扫描子程序 AJMP KEY1 ;否则返回KEY1,继续等待LK2: MOV R2,#0FEH ;首列扫描字入R2 MOV R4,#0H ;首列号入R4LK4: MOV DPTR,#0FFDDH ;列扫描字送至键扫口 MOV A,R2 ;第一次列扫描 MOVX DPTR,A ;使第0列线为0 MOV DPTR,#0FFDEH ;指向键入口 MOVX A,DPTR ;键入口读入行状态 JB ACC.0,LONE ;第0行无键按下,转查第1行 MOV A,#00H ;第0行有键按下,该行首键号#00HA AJMP LKP ;转求键号LONE

12、: JB ACC.1,LTWO ;第1行无键按下,转查第2行 MOV A,#08H ;第1行有键按下,该行首键号#08HA AJMP LKPLTWO: JB ACC.2,LTHR ;第2行无键按下,转查第3行 MOV A,#10H ;第2行有键按下,该行首键号#10HA AJMP LKPLTHR: JB ACC.3,NEXT ;第3行无键按下,转查下一列 MOV A,#18H ;第3行有键按下,该行首键号#18HALKP: ADD A,R4 ;求原理图上的键号=行首键号+列号 MOV DPTR,#TAB1 ;查找TAB1,将实际键号赋给A MOVC A,A+DPTR PUSH ACC ;将键号

13、压入堆栈LK3: ACALL DIS ;调用显示子程序 ACALL KS1 ;等待键释放 JNZ LK3 ;未释放,等待 POP ACC ;键释放,键号A RET ;键扫描结束出口状态(A)=实际键号NEXT: INC R4 ;指向下一列,列号加1 MOV A,R2 ;判断8列是否扫描完 JNB ACC.7,KND ;8列扫描完,返回 RL A ;扫描字左移一位, 转变为下一列扫描字 MOV R2,A ;扫描字入R2 AJMP LK4 ;转下一列扫描KND: AJMP KEY1KS1: MOV DPTR,#0FFDDH ;指向键扫口 MOV A,#00H ;全扫描字#0H MOVX DPTR,

14、A ;全扫描字入键扫口 MOV DPTR,#0FFDEH ;指向键入口 MOVX A,DPTR ;读键入口行状态 CPL A ;变正逻辑,以高电平表示有键按下 ANL A,#0FH ;屏蔽高4位 RET ;出口状态,(A)=1时有键按下T12: MOV R7,#18H ;延时12ms子程序TM: MOV R6,#0FFHTM6: DJNZ R6,TM6 DJNZ R7,TM RETDIS: MOV R0,#079H ;显示缓冲区首地址送R0 MOV R3,#01H ;使显示器最右边位亮 MOV A,R3LD0: MOV DPTR,#0FFDDH ;扫描值送给字位口 MOVX DPTR,A MO

15、V A,R0 ;取显示数据 MOV DPTR,#TAB ;取首地址 MOVC A,A+DPTR ;取字形 MOV DPTR,#0FFDCH ;指向字形口 MOVX DPTR,A ;送出显示 ACALL DL1 ;延时 INC R0 ;缓冲区地址加1 MOV A,R3 JB ACC.5,LD1 ;判断是否扫描到第六个显示位 RL A ;若没有,扫描下一位 MOV R3,A AJMP LD0LD1: RETDL1: MOV R7,#02H ;延时子程序DL: MOV R6,#0FHDLA: DJNZ R6,DLA DJNZ R7,DL RETORG 700HTAB: DB 3FH,06H,5BH,

16、4FH,66H,6DH,7DH,07H,7FH ;显示字码段 DB 6FH,77H,7CH,39H,5EH,79H,71H,00H,40H,0FFHTAB1: DB 7H,4H,8H,5H,9H,6H,0AH,0BH,1H,0H,2H ;键表 DB 0FH,3H,0EH,0CH,0DH,00H,00H,00H,00H DB 00H,00H,16H七、 课程设计小结 在大三的下学期我们学习了单片机原理及其应用这门课程,作为一名电气工程及其自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理

17、论知识,而期末的课程设计环节正是锻炼我们的实践能力,使我们将所学的专业基础课理论知识运用到实践中的一个很好的平台 这次单片机课程设计我们历时一个星期,课题要求实现步进电机的控制。任务涉及到从键盘上输入正、反转命令,转速参数(16级)和转动步数,显示在LED显示器上。先后要设计显示子程序模块,键盘输入模块,步进电机控制模块,然后综合模块进行调试,用步进电机的实际转动效果来验证设计方案的正确性,最后进行总结和答辩。 在课程设计环节中,我觉得最困难的是程序设计,首先要理解原理,然后进行流程设计,转化为程序,进行调试,我们在调试的时候出现很多错误,改错的过程是非常痛苦的,好在我们耐心的一一克服了,最后

18、敲定了合理的程序。但问题并没有因此结束,当我们装上步进电机后,转速等级之间的转速差别,是否能够带动电机,显示闪烁快慢,转速变慢时出现转动打嗝和颤抖的情况,往往让我感到手足无措,但是在老师的指导和同学的帮助下我们小组都一一克服了,最后得到了较为满意的结果,在此感谢老师的悉心指导。 还有一点体会就是要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。 发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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