计算机控制技术专业认知报告.doc
文本预览下载声明
计算机控制技术专业认知报告
计算机控制技术_实验二报告
计算机控制技术课程实验之二
步进电机控制
实验内容
1. 掌握KeilC51软件与Protues软件联合仿真调试的方法;
2. 掌握步进电机的工作原理及控制方法;
3. 掌握步进电机控制的不同编程方法。
1.用Proteus设计一四相六线步进电视控制电路。要求利用P1口作步进电机的控制端口,通过达林顿阵列ULN2003A驱动步进电机。
2.编写程序,实现步进电机的正反转控制。正反转时间分别持续10S时间,如此循环。
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
uchar code zheng[]={0xf3,0xf6,0xfc,0xf9};
uchar code fan[]={0xf9,0xfc,0xf6,0xf3};
uchar t;
bit flag=0;
void delay(uint z)
{
uint i,j;
for(i=0;iz;i++)
for(j=0;j110;j++);
}
void timer_init()
{
TMOD=0X01;//定时器0,方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void motor_z()
{
uchar i;
for(i=0;i4;i++)
{
P1=zheng[i];
delay(200);
}
}
void motor_f()
{
uchar i;
for(i=0;i4;i++)
{
P1=fan[i];
delay(200);
}
}
void main()
{
timer_init();
while(1)
{
if(flag==0)
motor_f();
}
else
{
motor_z();
}
}
}
void timer() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(t=200)
{
t=0;
flag=~flag;
}
t++;
}
3.设计一可调速步进电机控制电路。P3.0~P3.2分别接案件K1~K3,其中K1为正反转控制按键,K2为加速按键,K3为减速按键,要求速度7档(1~7)可调,加减速各设3档,复位时位于4档,要求每档速度变化明显。该步进电机控制电路在以上电路的基础上自行修改。
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
uchar code zheng[]={0xf3,0xf6,0xfc,0xf9};
uchar code fan[]={0xf9,0xfc,0xf6,0xf3};
bit flag=0;
uint shijian;
uchar temp,num=0;
void delay(uint z)
{
uint i,j;
for(i=0;iz;i++)
for(j=0;j110;j++);
}
/*void timer_init()
{
TMOD=0X01;//定时器0,方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
} */
void motor_z()
{
uchar i;
for(i=0;i4;i++)
{
P1=zheng[i];
delay(shijian);
}
}
void motor_f()
{
uchar i;
for(i=0;i4;i++)
{
P1=fan[i];
delay(shijian);
}
}
void keyscan()
{
P3=0XFF;
//delay(5);
while(P3!=0xff)
{
delay(5);
temp=P3;
switch(temp)
{
case 0xfe:
{flag=~flag;break;}
case 0xfd:
{
num++;
if(num=4)
num=3;
break; }
case 0xfb:
{
if(num!=0)
num--; //减速键按下,速度标志减1 else
num=0;
break; }
//default : break;
}
while(temp!=0xff)
{
temp=P3;
}
}
}
deal() //根据速度标志进行数据处理 {
switch(num)
{
case 0: P0=0xf9;//数据管显示1
shijian=320; //转速最慢break;
case 1: P0=0xa4; //数据管显示
显示全部