步进电机角度控制(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程名称微型计算机控制技术
题目名称步进电机角度控制(1)
学生学院自动化学院
专业班级自动化(4)班
学号
学生姓名
指导教师
2012 年 6 月26
日
一、系统设计说明
1.硬件设计
本次设计要求通过键盘按键实现对步进电机的转动次数和每次转动的角度的控制,并通过数码管显示出来。
本方案中通过按键对步进电机的转动角度进行设定,给各个按键设置不同的键值。按下按键时,给8255A一个信号设定步进电机下一步的动作。8086通过8255A的数据总线读取该信号,并作出反应,通过给8255A一系列的指令驱动其工作,从而驱动步进电机和LED 显示器
2.软件设计
3.显示模块设计说明:
为使显示程序具有通用性和灵活性,在8086内设置一个显示缓冲区,显示缓冲区的每个单元与LED的各位一一对应。当主程序需要显示,只需将要显示的字符送入显示缓冲区,然后调用显示子程序。显示子程序的任务则是逐一取出显示缓冲区中的字符、查字形表转换成相应字型码,然后通过字段口输出显示。显示模块是用四位七段数码管来显示转动次数和每次转动的角度。给八个按键设置不同的子程序,当按下按键时,根据事先设定好的各个按键对应的转动角度的值输出到数码管进行显示。
步进电机模块设计说明:
在此设计中,采用的是八拍步进电机。步进电机控制程序就是完成环形分配器的任务,从而控制电动机的转动,以达到控制转动角度和位移的目的。控制模型可以以立即数的形式一一给出。对于步进电机模块的程序设计采用循环程序设计方法。先把转动的次数和角度的控制模型存放在内存单元中,然后再逐一从单元中取出控制模块并输出。首先启动,按下按键选择步进电机的角度,然后读入转动的控制模型驱动步进电机转动。
二、程序设计流程图
三、心得体会
这是大学最后一次的单片机课程
设计了,这一次我抽到的是86,
用C语言去设计的。从中我发现
相对汇编语言,C语言有很多优
点。经过不断地去编程加载,我
复习了C语言编程,同时懂得如
何在单片机上实现C语言编程。
数码管,键盘和异步电动机,是
三个不一样的模块,从实现的过
程中,巩固了很多知识。最重要
的是,发现问题,去寻找问题的
缘由,从而解决。
四、主要参考文献
《计算机控制技术实验指导书》,
李传芳等编。
《51单片机C语言教程》,郭天祥
等编。电子工业出版社。
《微型计算机原理及应用》,何小
敏等编。机械工业出版社。
任务一:
编程控制步进电机,顺时针方向行走180度(角度显示在七段LED上)3秒后行走45度(显示角度)3秒后行走90度(显示角度)3秒后再次进入循环。
程序代码:
STACK SEGMENT STACK
DW 256 DUP()
STACK ENDS
DATA SEGMENT
TABLE1 DB 10H,30H,20H,60H,40H,0C0H,80H,90H DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MAIN: MOV AL,81H,
OUT 63H,AL
MOV AH,30H
MOV BX,0FF00H
MOV DX,01H
CALL DISP
A0: MOV CX,0008H
MOV SI,OFFSET TABLE1
A1: MOV AL,[SI]
OUT 60H,AL
CALL DALLY
INC SI
DEC AH
JNZ L1
CALL DALL
CMP BX,0FFH
JNZ A
MOV AH,30H
XOR BX,0FFFFH
MOV DX,01H
JMP L1
A: CMP BX,OFFOOH
JNZ A8
MOV AH,0CH
XOR BX,0FF00H
MOV DX,02H
CALL DISP
JMP L1
A8: MOV AH,18H
XOR BX,0FFH
MOV DX,03H
CALL DISP
L1: LOOP A1
JMP A0 DISP: CMP DX,01H
JNZ D1
MOV AL,0EFH
OUT 62H,AL
MOV AL,0FCH
OUT 61H,AL
CALL TIME
MOV AL,0DFH
OUT 62H,AL
MOV AL,0FEH
OUT 61H,AL
CALL TIME
MOV AL,0BFH
OUT 62H,AL
MOV AL,60H
OUT 61H,AL
CALL TIME
RET
D1: CMP DX,02H
JNZ D2
MOV AL,0EFH
OUT 62H,AL
MOV AL,0B6H
OUT 61H,AL
CALL TIME
MOV AL,0DFH
OUT 62H,AL
MOV AL,66H
OUT 61H,AL
CALL TIME
RET
D2: MOV AL,0FEH