C语言测控系统程序设计
步进电机控制实验报告
学生姓名:XXX 学号:XXXXXXXXX
实验的目的:
1.掌握计算机并行接口的工作原理与使用方法。
2.了解步近电机的工作原理与步进电机驱动器的使用。
3.学习控制步进电机位置、速度的实时软件设计。
实验用设备:
1.具有ISA总线插槽和USB接口的PC系列微型计算机。
2.23HS2001型步进电机。
3.SH-2H042Ma步进电机驱动器。
4.24V直流稳压电源。
试验设备连接:
采用打印机口的数字口(I/O端口地址0x378)控制步进电机驱动器。采用共阴极接法,正脉冲有效。打印机数字口的D0 控制方向,接 步进电机驱动器DIR+端,D1 控制步进,接步进电机驱动器CP+ 端,步进电机驱动器DIR- 和 CP- 接地。步进电机驱动器细分开关置成 2细分状态,步距角 0.9o
实验要求:
1.步进电机旋转2周,然后向相反方向转2周。注意观察是否后到原来的起始位置。
2.提高步进电机转速,旋转360°的整数倍。注意观察是否出现失步现象,估计步进电机的带载启动频率。
3.编写“升速-恒速-减速”控制程序。(选作)
设计和计算:
正旋转2周,在后旋转两周。
步距角:0.9 o
所以:360*4/0.9 o
程序框图:
输入转速,圈数
输入转速,圈数
输入转速
高速转动
程序结束
开始
按设定 正转,反转
程序清单和注释:
#include
#include
void left(int m);
void right(int m);
void main()
{
long n;
int m,b;
printf("Input speed(450): \t");
scanf("%d",&m);
printf("Input cycle(num): \t");
scanf("%d",&b);
for(n=0;n
{
left(m);
}
for(n=0;n
{
right(m);
}
printf("A higher speed: \t");
scanf("%d",&m);
for(b=0;b<100;b++)
{
for(n=0;n<40;n++)
{
left(m);
}
m-=2;
}
for(b=0;b<100;b++)
{
for(n=0;n<40;n++)
{
left(m);
}
m+=2;
}
printf("end \n");
}
void left(int m)
{
outportb(0x378,0x00);
delay(m);
outportb(0x378,0x02);
delay(m);
}
void right(int m)
{
outportb(0x378,0x01);
delay(m);
outportb(0x378,0x03);
delay(m);
}
调试中出现的错误及分析: