单片机实验报告步进电机控制系统.docx
《单片机实验报告步进电机控制系统.docx》由会员分享,可在线阅读,更多相关《单片机实验报告步进电机控制系统.docx(7页珍藏版)》请在冰豆网上搜索。
单片机实验报告步进电机控制系统
信息科学与技术学院
单片机及嵌入式课程设计
设计题目:
步进电机控制系统
指导老师:
林凡强
姓名:
学号:
班级:
二零一二年6月
1.实验要求:
(1)正反转
(2)调速
(3)键盘输入
(4)数码管显示
2.设计要求:
(1)、按下不同的键,分别使步进电机实现顺时针和逆时针旋转。
(2)、电机运转状态可以是正反转,加速减速,几种不同速度的组合。
3、设计目的:
(1)学习基本电机系统程序编写等
(2)掌握电机的控制方法等
4、设计实验设备
硬件:
PC机 一台
自制单片机实验仪一套
其他小工具等
软件:
Windows98/XP/2000系统,keil7.0集成开发环境
5、程序:
#include"reg51.h"
#defineuintunsignedint
//#definedelay_ms5//延时
sbitW=P3^6;
sbitR=P3^7;
sbitSEND=P3^0;
sbitCLOCK=P3^1;
intdelay_ms=30;
sbitbu1=P1^4;
sbitbu2=P1^5;
sbitbu3=P1^6;
sbitbu4=P1^7;
uintflag=0;
unsignedinttable[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,0xff};
uinth=0;
voiddelay(uintn)//延时程序
{
uinti,j;
for(i=0;i<100;i++)
for(j=0;j}
voidzhengzhuan()//正转
{
bu1=~bu1;
delay(delay_ms);
bu1=~bu1;
bu2=~bu2;
delay(delay_ms);
bu2=~bu2;
bu3=~bu3;
delay(delay_ms);
bu3=~bu3;
bu4=~bu4;
delay(delay_ms);
bu1=~bu1;
}
voidfanzhuan()//反转
{
bu4=~bu4;
delay(delay_ms);
bu4=~bu4;
bu3=~bu3;
delay(delay_ms);
bu3=~bu3;
bu2=~bu2;
delay(delay_ms);
bu2=~bu2;
bu1=~bu1;
delay(delay_ms);
bu1=~bu1;
}
voidsenddata(unsignedintdat)//发送数据程序
{
unsignedinti=0;
for(;i<8;i++)
{
CLOCK=0;
SEND=dat>>i&1;
;
CLOCK=~CLOCK;
}
}
uintsaomiao()//键盘扫描程序
{
uinti,j,k1,k2=0x01,n;
uintA[]={0xfe,0xfd,0xfb,0xf7};
for(i=0;i<4;i++)
{
k2=0x01;
W=0;
P2=0x60;
P0=A[i];
delay
(1);
W=1;
P2=0xA0;
W=0;
//k1=P0&0x0f;
//if(k1!
=0x0f)
//{
for(j=0;j<4;j++)
{
n=P0&0x0F;
if(!
(n&k2))
{
return(4*i+j);
}
k2<<=1;
}
//}
}
delay(100);
return(10);
}
voidmain()
{
uintm,r;
//W=0;
//P2=0x60;
//P0=0x00;
//;
//W=1;//锁存P0口输出数据
//P2=0xA0;
//W=0;
while
(1)
{
W=0;
P2=0x60;
P0=0xf0;
W=1;//锁存P0口输出数据
P2=0xA0;
W=0;
m=P0&0x0F;
if(m!
=0x0f)
{
delay(50);
m=P0&0x0f;
if(m!
=0x0f)
{
//flag=!
flag;
//switch(flag)
//{
//case0:
zhengzhuan();
//break;
//case1:
fanzhuan();
//break;
//default:
;
//}
h=saomiao();
senddata(table[h]);
}
}
r=h;
if(r==1)
{
zhengzhuan();
}
if(r==2)
{
fanzhuan();
}
if(r==5)
{delay_ms+=5;
if(delay_ms>100)delay_ms=200;
}
if(r==4)
{delay_ms-=5;
if(delay_ms<=5)
{
delay_ms=5;
}
}
}
}
6、实验心得:
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快
步进电机是一种将电脉冲信号转换成相应的角位移(或线位移)的电磁机械装置[1]。
现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)等。
整个实验过程中呢,源程序的编写比较麻烦,调试多次也没有得出理想的结果!
采用提出的步进电机控制系统,步进电机在工作频率内运行平稳,定位精度高。
该系统有效,实用,已在无人机器人系统中得到验证,结果有效可行。
欢迎下载,谢谢观看!
资料仅供参考学习