步进电机实验微机原理
- 格式:doc
- 大小:187.50 KB
- 文档页数:10
大连理工大学本科设计报告
(计算机原理接口实验综合设计)
题目: 步进电机控制系统设计
课程名称:计算机原理实验
学院(系): 电信
专业: 自动化
班级: 电自1301
学号: 201382062
学生姓名: 宁博
成绩:
2015年12月26 日
题目:步进电机
1。设计要求
利用实验台上得开关K7控制步进电机得转向,利用电位器控制步进电机得转速。具体要求如下:
1.利用D8255A得PA0-PA3做输出,输出步进电机得相序、驱动步进电机工作,相序之间
得时间决定着步进电机得转速,而间隔时间由延时程序中得CX寄存器得初值决定。
2.利用D8255A得PB7做输入控制转向,与K7连接。其中K7做步进电机得转向控制,用
ADC0809实现AD转换,利用电位器控制转速,程序运行时通过K7与电位器对步进电机实施动态控制;
3.利用8253做秒脉冲发生器,产生约2秒得周期性方波信号。其中CNT0做分频器:将1MHZ
信号分频为100HZ;CNT1做秒脉冲输出(0。5HZ);
4.利用386模块得主8259得MIR5做中断请求输入,将CNT1得OUT1秒信号方波作为中
断请求信号,引发中断服务ISR;
5.在中断服务程序中实现对步进电机得转速、转向实时控制。方法如下:在ISR中,对D8255A
得PB口进行一次输入操作,并根据输入得数据:
1)对D7(与K7对应)位得数据为步进电机得转向控制;
2)ADC0809读入得数据为步进电机得转速控制。
2 .设计分析及系统方案设计
1. 使用“寄存器间接寻址”得方式输出相序信号:将步进电机得相序数据定义在数据段当中,
使用SI 查表(间接寻址)获取相序数据。其中查表顺序决定着电机转动方向;
2. 对8253进行编程,使O UT1输出2秒周期得脉冲方波信号。为了便于调试,建议使用逻辑笔
监测OUT1得输出;
3. 编制与中断相关得程序。包括中断屏蔽字得设定、中断向量表得创建以及开中断得操作、
上述这些操作都应当加到程序得初始化中;
4. 编写中断服务程序ISR 。在IS R中读取D 8255A 得PB 口数据与AD转换得数据,然后进
行数据分析、根据数据来调整CX 寄存器中得数据,因而改变步进电机得转速与转向。
3。系统电路图
。外围接口模块硬件电路功能描述
8253 OUT1 CLK1 GATE1
/CS
OUT0 CLK0 GATE0
1MHZ 脉冲
K7输
入 K6输
入
Vcc
210H
8255A
PA3 PA2 PA1 PA0 D7 ·· D0
A1 A0
/CS
PB7 PB6
、、、、 PB0
LED3 LED2 LED1 LED0
200H 步进 电机 5~12V BJ_IN4
BJ_IN3 BJ_IN2 BJ_IN1 系统总线 K7 …
… … K0
0、5HZ 方波 ADC0809模块 IN7 …
IN0 VREF(-)
/CS D7
、
、 D0
总线区
220H /IOW /IOR A0 A1 A1
A0 500KH CLOC VCC VREF(+) ADDA ADDB ADDC 图 1 、1 实验参考逻辑电路 +5V
8253具有三个独立得16位减法计数器,每个计数器可按照二进制或十进制计数,每个通道都有六种不同得工作方式。
8255有3个8位并行I/O 口。具有3个通道3种工作方式得可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强、8255可作为主机与多种外设连接时得中间接口电路。
ADC 0809 就是8位逐次逼近式A/D 模数转换器。其内部有一个8通道多
路开关,它可以根据地址码锁存译码后得信号,只选通8路模拟输入信号中得一个进行A /D 转换,具有转换起停控制端。模拟输入电压范围0~+5V,不需零点与满刻度校准。
5 主程序中主要变量说明 变量名称 内存单元
功能 FLAG AX 转向标志 SPEED SI 可调转速 SD AL 默认转速
6。系统软件中各个子程序得功能描述
子程序名称 入口参数 出口参数 功能 描述 se rvic e io8255_B
AD C0809
SD
中断服务 DEL AY 无
无 延时
spe edin 无
无 电机按照一定参数转起
来
7.主程序程序流程图
8。程序清单
IO_AD DR ESS
timeequ 210h
ad_io equ220h
data segment
order1db 01h,03h,02h,06h,04h,0ch,08h,09h
order2 db 09h,08h、0ch,04h,06h,02h,03h,01h
FLAG db ?
speedﻩ dw 0300h,0380h,0480h,0580h,0680h,0780h,0880h SDﻩ dwﻩ0280h ;默认转速
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,IO_ADDRESS
add dx,03
mov al,82h ;B端口输入,A、C输出,方式0 out dx,al
cli
mov FLAG,00h ;标志位置0
in al,021h;设置中断屏蔽字
and al,11011111b;IR5
out 021h,al
push ds ;设置中断向量表
mov ax,0
mov ds,ax
mov si,35h
add si,si
add si,si
mov ax,offsetservice
mov [si],ax
pushcs
pop ax
mov [si+2],ax
pop ds
movdx,time ;分频得到0,5s脉冲