电机控制讲义Word格式.docx
《电机控制讲义Word格式.docx》由会员分享,可在线阅读,更多相关《电机控制讲义Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
按键未按下时为1,按下键时为0;
按键按下时电机动作,释放停止
本次I/O连接:
//1.0为PWM输出
//1.1为正反转输出
//1.4为加速控制
//1.5为减速控制
//1.6为正反转控制
//1.7为急停控制
六、调试步骤
1、对照电路图检查焊接质量
2、烧写控制程序
3、接控制线
4、不加电机电源进行测试
5、最后测试
七、控制程序:
;
********************************************************************
*按键控制PWM控制电机正反向转动和加减速汇编程序*
*MCU:
AT89S52晶振:
11.0592MHz*
**
PWM控制控制电机正反向转动和加减速程序
适用ME系列单片机开发系统
晶振为11.0592M
利用定时器控制产生占空比可变的PWM波
按K1,PWM值增加,则占空比减小,加速。
按K2,PWM值减小,则占空比增加,减速。
当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。
**********************************************************
PWMEQU30H
OUTEQUP0;
接口
INCKEYBITP1.4;
K1,PWM值增加键。
DECKEYBITP1.5;
K2,PWM值减小键。
BEEPBITP3.7
ORG0000H
LJMPSTART
ORG000BH
LJMPINTT0
ORG001BH
LJMPINTT1
ORG0050H
主程序
定时器0工作在模式1,定时器1工作在模式2。
START:
MOVSP,#60H
MOVPWM,#7FH;
赋初始值
MOVTMOD,#21H
MOVTH1,PWM;
脉宽调节
MOVTL1,#00H
MOVTH0,#0FCH;
1ms延时常数
MOVTL0,#066H;
频率调节
SETBEA
SETBET0
SETBET1
SETBTR0
LOOP:
MOVA,PWM;
JBINCKEY,LOOP1;
增加键是否按下?
ACALLDELAY;
延时去抖动
JBINCKEY,LOOP1
CJNEA,#0FFH,PWMINC;
是否到最大值?
ACALLBEEP_BL;
是,蜂鸣器报警。
AJMPLOOP
PWMINC:
INCPWM;
调节脉宽(脉宽减小)
LOOP1:
JBDECKEY,LOOP2;
减小键是否按下?
JBDECKEY,LOOP2
CJNEA,#02H,PWMDEC;
是否到最小值?
PWMDEC:
DECPWM;
调节脉宽(脉宽增加)
LOOP2:
T0中断服务子程序(频率)
控制定时器1中断
INTT0:
CLRTR1
MOVTH1,PWM
SETBTR1
MOVOUT,#00H;
启动输出
RETI
T1中断服务子程序(脉宽)
控制PWM脉冲宽度
INTT1:
CLRTR1;
脉宽调节结束
MOVOUT,#0FFH;
结束输出
10ms延时子程序
DELAY:
MOVR6,#50
DELAY1:
MOVR7,#93
DELAY2:
DJNZR7,DELAY2
DJNZR6,DELAY1
RET
蜂鸣器响一声子程序
BEEP_BL:
MOVR6,#200
BL1:
CPLBEEP
ACALLBL2
DJNZR6,BL1
MOVR5,#25
CALLDELAY3
BL2:
MOVR7,#150
BL3:
NOP
NOP
DJNZR7,BL3
DELAY3:
;
延时R5×
10MS
BL4:
BL5:
DJNZR7,BL5
DJNZR6,BL4
DJNZR5,DELAY2
END
----------------------------------------以下为C51程序---------------------------------------------------
/*******************************************************************
*PWM控制LED灯渐亮渐灭C51程序*
PWM控制LED灯渐亮渐灭程序
按K1,PWM值增加,则占空比减小,LED灯渐暗。
按K2,PWM值减小,则占空比增加,LED灯渐亮。
**********************************************************/
#include<
reg52.h>
sbitK1=P1^4;
//PWM值增加键
sbitK2=P1^5;
//PWM值减少键
sbitBEEP=P3^7;
//蜂鸣器
unsignedcharPWM=0x7f;
//赋初值
charcodereserve[3]_at_0x3b;
//保留0x3b开始的3个字节
/*********************************************************
延时子程序
*********************************************************/
voiddelayms(unsignedcharms)
{
unsignedchari;
while(ms--)
{
for(i=0;
i<
114;
i++);
}
}
*********************************************************/
voiddelay(unsignedchart)
{
while(t--);
蜂鸣器子程序
voidBeep()
for(i=0;
i<
100;
i++)
delay(100);
BEEP=!
BEEP;
//Beep取反
}
BEEP=1;
//关闭蜂鸣器
delayms(100);
}
/*********************************************************/
voidmain()
P1=0xff;
TMOD=0x21;
TH0=0xfe;
//1ms延时常数
TL0=0x66;
//频率调节
TH1=PWM;
//脉宽调节
TL1=0;
EA=1;
ET0=1;
ET1=1;
TR0=1;
while
(1)
do{
if(PWM!
=0xff)
{PWM++;
delayms(10);
elseBeep();
while(K1==0);
=0x02)
{PWM--;
while(K2==0);
定时器0中断服务程序(频率)
voidtimer0()interrupt1
TR1=0;
TR1=1;
P0=0x00;
//启动输出
定时器1中断服务程序(脉宽)
voidtimer1()interrupt3
P0=0xff;
//结束输出
PWM脉宽调制控制直流电机装置
电路图与元件表
1
C1,C3
100uF
0805
2
C2
1500pF
3
C4,C5,C6,C7,C8
0.1uF(104)
5
4
D1
DSchottky
肖特基二极管
L1
100uH
6
P1
四针排插
CPU_interface
7
P2
+24VGND
电源端子
8
P3
outAoutB
电机端子
9
Q1,Q2,Q3,Q4
IRF3205
直插
10
R1
180
11
R2
0.22
12
R3
10K
13
R4
1K
14
R5,R7,R8,R10
47
15
R6,R9,R11,R12
270k
16
U1
MC34063AD
751-02_M
17
U2
SN74F02N
N014
18
IC插座
19
U3,U4
L6384D
20
21
31
杜邦线
32
连接细线
33
PCB板子
34
焊锡0.5mm
30mm
实训报告内容要求
1、项目原理
2、安装与调试
3、出现的问题及解决的方法
4、你准备把此项目做怎样的改进和应用
5、有关此项目的心得体会
2011年9月26日河大电子实训中心