计算机直流电机Word文档格式.docx
《计算机直流电机Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机直流电机Word文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
利用实验台上的开关(K7-K0),实现3V直流电机的转速控制。
利用8253产生“准PWM”(占空比50%~0%)波形,不同的占空比影响着直流电机的转速。
通过秒中断服务程序读取K7-0的数据、修改PWM的占空比,实现直流电机的转速控制。
具体要求:
1.以8253为核心,通过8253的OUT1输出方式2的方波经反相器后控制电机;
a)设置8253的CNT0为方式三,将输入的1MHZ信号进行5000分频,在OUT0上得到200HZ对称方波,送CLK1使用;
b)设置8253的CNT1为方式二,利用8253的CNT1的OUT1输出的不对称方波(参见图2.1),经一个反相器输出后,与直流电机连接、控制电机的转速;
2.利用D8255A的PA7-PA0做输入,与K7-K0连接。
利用开关数据控制电机的转速。
根据PA的数据设置CNT1的初值在10~2之间变化(共9档速度)、实现电机转速的控制;
3.利用8253的CNT2做秒脉冲发生器(CLK2与OUT0连接以获取200HZ脉冲),在OUT2上输出0.5HZ的周期性方波,并由此方波与主8259的MIR5连接,引发中断服务ISR。
在ISR中对D8255A的PA口进行输入,并根据此数据修改CNT1的初值(PWM的占空比)。
(二)设计分析及系统方案设计
利用8253的CNT0与CNT1串联输出“准PWM”波形。
其中CNT0设定为方式三(周期性对称方波);
CNT1设定为方式二(周期性方波)模式,调制占空比。
8253的CNT0对1MHZ信号进行5000分频,在OUT0和CLK1上得到200HZ方波频率。
CNT1的OUT1经反相器输出的波形,其高电平的占空比由CNT1的初值确定,范围为50%~0%。
当初值N=2时,占空比最大(为50%),随着N值的增加,高电平的占空比逐渐下降。
实验中,通过8255读入开关状态和ADC0809读入电位器状态两种方式得到N。
(三)系统电路图
外围接口模块硬件电路功能描述
接口器件
0809
8253
8255
8259
元件引脚图
功能说明
ADC0809的通道0(IN0)做输入,与电位器RW1连接,利用电位器控制输入0~5V电压。
通过ADC0809的模数转换,输出相应数字量,控制电机的转速。
CNT0与CNT1把1MHZ分频成200HZ可变占空比的信号,CNT2做秒脉冲发生器,在OUT2上输出0.5HZ的周期性方波
利用D8255的PA7-PA0做输入,与开关连接。
根据PA的数据设置CNT1的初值在10~2之间变化、实现电机转速的控制
CNT2与主8259的MIR5连接,引发中断服务ISR。
在ISR中对D8255的PA口进行输入,并根据此数据修改CNT1的初值(PWM的占空比)。
(五)主程序中主要变量说明
变量名称
内存单元
功能
io8253_0
200h
8253通道0
io8253_l
201h
8253通道1
io8253_2
202h
8253通道2
io8253_k
203h
8253控制口
io8255
210h
8255通道
ad_io
220h
0809地址
(六)系统软件中各个子程序的功能描述
子程序名称
入口参数
出口参数
功能描述
int_proc
35h的CSIP
AL
实现转速控制
(七)主程序程序流程图
(八)程序清单
datasegment
io8253_0equ200h
io8253_1equ201h
io8253_2equ202h
io8253_kequ203h
io8255equ210h
ad_ioequ220h
dataends
ss_segsegmentstack
dw100dup(0)
ss_segends
codesegment
assumecs:
code,ds:
data
start:
cli
movax,data;
data指向DS
movdx,ax
moves,ax
movdx,io8255;
8255初始化,A口方式0输入
moval,90h
outdx,al
;
---1MHZ分配200HZ脉冲,OUT2改变占空比---
movdx,io8253_k;
8253初始化,CNT0方式三,N=5000
moval,36h
movax,5000
movdx,io8253_0
moval,ah
8253初始化,CNT2方式三,N=100,
moval,10110111b
movax,100
movdx,io8253_2
---中断初始化---
inal,21h
andal,11011111b;
开放IR5中断
out21h,al
---设置中断向量表---
pushds
movax,0
movds,ax
leaax,cs:
int_proc
movsi,35h
addsi,si
addsi,si;
movds:
[si],ax
pushcs
popax
[si+2],ax
popds
sti
LLL:
nop
jmpLLL;
等待中断
movah,4ch
int21h
int_procprocfar
pushax
pushcx
movdx,io8253_k
moval,74h
----利用开关控制的模式----
movdx,io8255
inal,dx
cmpal,0
jzdwq;
如果开关全为0电位器控制
movbx,10
circle:
shral,1
decbx;
al每右移一次,bx减一次
jcgoo;
如果CF=1,跳出循环
oral,al;
如果开关全为0则跳出循环
jnzcircle
jmpgoo
----利用ad控制的模式----
dwq:
movdx,ad_io
adddx,02h
L1:
testal,01h
jzL1
incdx
inal,dx
movah,0
movbh,30;
得到2~8档
divbh
movbl,10
subbl,al;
用10减去商的值
andbx,00ffh
goo:
movdx,io8253_1
moval,bl
moval,00h
outdx,al
moval,20h
out20h,al
popcx
iret
int_procendp
codeends
endstart
(九)系统调试运行结果说明、分析所出现得问题,设计体会与建议
本次实验课设计并实现用开关和电位器控制直流电机转速的程序,当开关不全为0则为开关控制,开关全为0则为电位器控制。
电机调速共设9档,N可取2—10,随着N值的增加,高电平的占空比逐渐下降,反向后直流电机转速上升。
实验将这二者联合起来的过程中两者如何实现状态切换是一个问题,采取的方法是开关状态全为零时则为电位器控制状态否则就是电位器控制状态。
可以快速切换两者的控制。
(十)结论及设计体会
实验结果可实现开关和电位器控制直流电机转速,共有9档速度。
实验现象符合预期要求。
通过计算机原理设计实验,学到了很多实际硬件与软件结合的知识,并且了解和熟悉了准PWM技术。
参考文献
[1]秦晓梅陈育斌,计算机原理综合实验教程,大连理工大学,2011年10月