




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告纸微 机 原 理 及 其 应 用课程设计报告姓 名: 王 毅 学 号: 040220337 同组实验者: 李 问 指导教师: 周 芳 日 期: 2005.6 步进电机控制系统设计一、实验目的1、利用PC机和实验箱设计并实现给定步进电机的控制。2、进一步掌握微机硬件和软件综合设计方法。二、实验内容1、基本要求 (1)控制步进电机转动,要求转速1步/秒。 (2)基于实验箱,设计并实现接口和驱动电路。 (3)用汇编语言编制程序。2、提高要求 (1)改善步进电机的控制性能,控制步进电机转/停;正转/反转;改变转速(至少3档);单步。 (2)改善人机接口。三、总体设计1、8253定时控制步进速度。2、8255输出控制脉冲,再经75452驱动电机。3、系统运行时,首先显示主菜单,选择子菜单(设置参数)或控制工作,或返回DOS。四、硬件设计 因采用了PC机和PC总线接口应用平台,硬件电路相对简单,除利用了PC机本身资源外(如中断资源),还利用了平台上的8253计数/定时器、8255并行接口单元,再加上外围驱动电路,便构成可步进电机控制电路,硬件原理图如图1:图中75452元件是正与非驱动器,OC门输出,所以加上拉电阻;8253的作用是输出定时信号向CPU申请中断要求输出电机走步的控制信号。图1 硬件原理图五、软件设计 本设计通过软件编程使8253输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。电机的转动和停止则是通过8255的A0端子输出高低电平来继续或暂停8253的计数从而控制中断申请来实现的。8253的定时时间决定了电机转动的快慢。相对简单的硬件电路,使软件设计成为本设计课题的中心内容。1、 设计思路控制系统分五个功能模块,分别是转速设置、转向设置、固定步数转动、连续转动、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。程序中同时提供五个操作界面,一个主菜单和四个子菜单界面,进行可视控制。(1)转速设置根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。这里采用的是8253的0号计数器和方波产生方式,输入时钟为f=46875hz,设计数初值为n,要求转速为0.25转/秒,对四相步进电机而言即为5步/秒,则有:f / n = 5n=f/5=46875/5=9375反过来,当计数器初值确定时,决定了电机的转速,如计数初值为0时,有电机转速为1步每秒(本设计中最慢速度);当计数初值为125时,电机转速为375步每秒(本设计中最快速度)。具体设置初值及转速见表2。表2步速转速按键计数初值10.05F14687530.15F21562550.25F39375150.75F43125251.25F51875753.75F66251256.25F737537518.75F8125(2)转向设置在内存单元中设置一方向标志FLAG1,假设FLAG1为0时为顺时针转向,则当设置FLAG1不为0时即可使电机转逆时针转动。判断操作在中断子程序中进行。(3)连续转动设置在此功能模块中,通过让8255的A0口输出高电平到8253的GATE0使其0号计数器继续工作(平常时A0口为低电平使8253的0号计数器暂停计数),并开放中断进入循环等待中断状态,在等待状态中若有键盘的ESC键按下,则认为暂停要求而关闭中断和暂停8253计数回到主菜单。需要继续原转向原速度运行,再选择此功能模块即可。(4)固定步数转动设置通过键盘输入0到999的十进制值来设定转动步数。判断已转步数即中断次数是这样实现的,设置一内存单元FLAG0,中断时在中断子程序中求反,而在循环等待中断的程序中判断其有无变化,无变化继续循环,有变化则使计数寄存器CX减1后继续循环,当CX=0时退出等待中断状态,并关中断和暂停8253计数。在这个等待程序中也判断键盘有无ESC键按下,若有则认为暂停要求而退出。(6)中断子程序在中断子程序中,将值为11001100B的内存单元循环左移或右移一位,通过8255的下C口输出低四位,控制步进电机的相序变化,从而使电机连续转动。左移或右移将使电机顺时针或逆时针转动,它由标志FLAG1来决定。(7)菜单界面设置利用DOS下的BIOS功能调用,设计出简单而易于操作的界面,详细设计特点请参考程序清单。2、 程序流程图(1)主程序框图如图2(见下页),除中断子程序外,将所有的框图集中到一起。(2)中断服务子程序框图如图3。图3 中断服务子程序框图图2 主程序框图六、心得体会 本次课设,是结合了硬件设计和软件设计以及调试,是一个综合性比较强的课程设计。通过此次课程设计,我在一些方面有了感触:1、硬件方面,应认真理解硬件电路的组成及其功能,才能为下一步的编程打下基础。2、程序方面,一定要联系设计好的硬件来进行编程。 我在程序方面的总结是: (1)写程序注释写得越详细越好、不要怕麻烦。写上使用方法、结果起始地址是存高字节还是低等问题,这有助于后来的调试和改错。 (2)画流程图有助于写程序以及日后查错。 (3)随时备份,建议版本形式备份,并写清楚该版本实现了什么,改进了什么,还没有实现什么等。3、调试方面与错误排除:不能急于求成,但不要放弃,要保持清醒的头脑。七、源程序 DSEG SEGMENT CLOCK0 EQU 290H CLOCK1 EQU 291H CLOCK2 EQU 292H CLOCKC EQU 293H PA55 EQU 280H PB55 EQU 281H PC55 EQU 282H P55C EQU 283H INTNUM DB 0DH MAMES DB 0DH,0AH DB *WELCOME TO CONTROL SYSTEM*,0DH,0AH,$ MAMU DB 1.SET UP SPEED,0DH,0AH DB 2.SET UP DIRECTION,0DH,0AH DB 3.ROTATING WITH FIXED STEP,0DH,0AH DB 4.CONTINUAL ROTATING,0DH,0AH DB 5.EXIT,0DH,0AH DB *PLEASE INPUT CHOICE:$ MENU1 DB 0DH,0AH,0DH,0AH DB F1.ROTATING SPEED IS 0.05R/S,0DH,0AH DB F2.ROTATING SPEED IS 0.15R/S,0DH,0AH DB F3.ROTATING SPEED IS 0.25R/S,0DH,0AH DB F4.ROTATING SPEED IS 0.75R/S,0DH,0AH DB F5.ROTATING SPEED IS 1.25R/S,0DH,0AH DB F6.ROTATING SPEED IS 3.75R/S,0DH,0AH DB F7.ROTATING SPEED IS 6.25R/S,0DH,0AH DB F8.ROTATING SPEED IS 18.75R/S,0DH,0AH DB INTER ESC TO EXIT,0DH,0AH DB *PLEASE INPUT CHOICE:$ MENU2 DB 0DH,0AH,0DH,0AH DB 1.CLOCKWISE,0DH,0AH DB 2.ANTI_CLOCKWISE,0DH,0AH DB INTER ESC TO EXIT,0DH,0AH DB *PLEASE INPUT CHOICE:$ MENU3 DB 0DH,0AH,0DH,0AH DB PLEASE INPUT THE NUMBER OF STEP:$ MENU4 DB 0DH,0AH,0DH,0AH DB CONTINUAL ROTATING!,0DH,0AH DB INTER ESC TO EXIT,0DH,0AH,$ EROMS DB 0DH,0AH DB YOUR CHOISE IS INVALID! PLEASE CHOOSE AGAIN,$ F0 DB 0DH,0AH DB ROTATING SPEED IS:$ F1 DB 0.05R/S,0DH,0AH,$ F2 DB 0.15R/S,0DH,0AH,$ F3 DB 0.25R/S,0DH,0AH,$ F4 DB 0.75R/S,0DH,0AH,$ F5 DB 1.25R/S,0DH,0AH,$ F6 DB 3.75R/S,0DH,0AH,$ F7 DB 6.25R/S,0DH,0AH,$ F8 DB 18.75R/S,0DH,0AH,$ SPEDM DW F1,F2,F3,F4,F5,F6,F7,F8 CLCMS DB 0DH,0AH DB DIRECTION IS CLOCKWISE,0DH,0AH,$ ANTMS DB 0DH,0AH DB DIRECTION IS ANTI_CLOCKWISE,0DH,0AH,$ QUITMS DB ENTER ESC TO EXIT,0DH,0AH,$ INTSEG DW ? INTOFF DW ? MCHOC DW STSED,STDIR,ROTFX,CTROT SPEDN DW 46875,15625,9375,3125,1875,625,375,125 SPEED DW 46875 FLAG1 DB 0 FLAG0 DB ? BUFFER DB 4 DB ? DB 4 DUP(?) CW10 DW 10 INTIMR DB ? TURN DB 11001100B DSEG ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP(?) STACK ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:STACK MAIN: MOV AX,DSEG MOV DS,AX MOV AH,35H MOV AL,0DH INT 21H MOV INTSEG,ES MOV INTOFF,BX PUSH DS MOV AX,CS MOV DS,AX MOV DX,OFFSET INTPROC MOV AH,25H MOV AL,0DH INT 21H POP DS IN AL,21H MOV INTIMR,AL AND AL,11011111B OUT 21H,AL MOV DX,CLOCKC MOV AL,00110110B OUT DX,AL MOV DX,P55C MOV AL,10000000B OUT DX,AL STI OMANU: MOV DX,OFFSET MAMES MOV AH,09H INT 21H MOV DX,OFFSET MAMU INT 21H MOV AH,01H INT 21H CMP AL,1 JB ERROR CMP AL,5 JA ERROR JE EXIT AND AL,0FH DEC AL MOV AH,00H SHL AX,1 MOV BX,OFFSET MCHOC ADD BX,AX CALL BX JMP OMANU ERROR: MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMANU EXIT: MOV AL,INTIMR OUT 21H,AL PUSH DS MOV DX,INTOFF MOV AX,INTSEG MOV DS,AX MOV AH,25H MOV AL,0DH INT 21H POP DS MOV AH,4CH INT 21H STSED PROC NEAR PUSH AX PUSH DX PUSH BX OMENU1: MOV DX,OFFSET MENU1 MOV AH,09H INT 21H MOV AH,00H INT 16H CMP AL,1BH JZ EXIT1 CMP AH,59 JB ERROR1 CMP AH,66 JA ERROR1 SUB AH,59 MOV BH,0 MOV BL,AH SHL BL,1 MOV AX,SPEDNBX MOV SPEED,AX MOV DX,OFFSET F0 MOV AH,09H INT 21H MOV DX,SPEDMBX INT 21H JMP EXIT1 ERROR1: MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH INT 21H MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMENU1 EXIT1: POP BX POP DX POP AX RET STSED ENDP STDIR PROC NEAR PUSH DX PUSH AX OMENU2: MOV DX,OFFSET MENU2 MOV AH,09H INT 21H MOV AH,01H INT 21H CMP AL,1BH JE EXIT2 CMP AL,1 JE CLFLG CMP AL,2 JE ANTFLG MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMENU2 CLFLG: MOV FLAG1,0 MOV DX,OFFSET CLCMS MOV AH,09H INT 21H JMP EXIT2 ANTFLG: MOV FLAG1,1 MOV DX,OFFSET ANTMS MOV AH,02H INT 21H JMP EXIT2 EXIT2: POP AX POP DX RET STDIR ENDP ROTFX PROC NEAR PUSH DX PUSH CX PUSH BX PUSH AX PUSH SI OMENU3: MOV DX,OFFSET MENU3 MOV AH,09H INT 21H MOV DX,OFFSET BUFFER MOV AH,0AH INT 21H MOV CL,BUFFER1 CMP CL,3 JA ERROR3 LEA SI,BUFFER ADD SI,2 MOV CH,00H MOV AX,00H NEXT: MUL CW10 MOV BL,SI AND BX,000FH ADD AX,BX INC SI LOOP NEXT MOV CX,AX MOV FLAG0,0 MOV DX,CLOCK0 MOV AX,SPEED OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,PA55 MOV AL,0FFH OUT DX,AL STI AGAIN1: CMP CX,00H JE EXIT3 MOV AH,06H MOV DL,0FFH INT 21H CMP AL,1BH JE EXIT3 CMP FLAG0,0 JE AGAIN1 DEC CX MOV FLAG0,0 JMP AGAIN1 ERROR3: MOV DX,OFFSET EROMS MOV AH,09H INT 21H JMP OMENU3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年云南省农业农村厅下属事业单位真题
- 城市交通需求预测重点基础知识点
- 江苏省东台市第四教育联盟2025届八下数学期末预测试题含解析
- 2024年山西能源学院辅导员考试真题
- 2024年重庆石柱县融媒体中心招聘笔试真题
- 班级故事分享平台的建立计划
- 2024年湖北省农业农村厅下属事业单位真题
- 2024年南平市太平镇卫生院招聘笔试真题
- 2024年牡丹江穆棱市乡村医生招聘笔试真题
- 2024年福建福州榕发物业发展有限公司招聘真题
- 2024年江西省高考政治试卷真题(含答案)
- 服装店员工考勤管理制度
- 国人毛孔粗大表征研究及护理指南 2024
- 质量信得过班组培训课件
- 水利工程施工监理规范SL288-2014(CB、JL用表全套)
- 铁路信号技师技术总结
- 洗瓶机推瓶机构设计计算说明书+运动简图+运动循环图
- DL∕T 707-2014 HS系列环锤式破碎机
- 费用组成-特殊施工增加费课件讲解
- 2024年湖南省长沙市雅礼实验中学中考二模考试英语试题
- 国民经济行业分类代码表
评论
0/150
提交评论