步进电机正反转控制及转速显示

  • 格式:docx
  • 大小:105.85 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

uchar
code
table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3};// 电 机正
反转
void delay(uchar x)
{
uint y;
for(;x>0;x--)
for(y=0;y<124;y++);
//反转标识
F_LED=0;
delay(100);
F_LED=1;
while(F_key==0);
}
}
}
void dispose()
//根据速度标识进行数据处理
{
if(flag==1||flag==0)
{
if(flag==1)
{
table_begin=0;
//flag 为 0,正转
}
else
table_begin=8;
wale=0;
dula=1;
P0=SHU[flag];
dula=0;
delay(25);
wale=1;
P0=0xf7;
wale=0;
dula=1;
P0=SHU[a];
dula=0;
delay(10);
}
void SpeedUp() interrupt 0
{
if(num==19)
num=19;
else num++;
J_LED=0;
delay(200);
J_LED=1;
}
void SpeedDowm() interrupt 2
{
if(num==0)
num=0;
//速度标示减 1
else num--;
//达到最小 0 则保持
JA_LED=0;
delay(200);
JA_LED=1;
}
void key ()
//按键检测处理函数
sbit J_LED=P1^2;
sbit JA_LED=P1^3;
uint flag;
uchar num,show_num=2,maichong=4,table_begin;
uchar code SHU[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阳数码管驱动信 号 0---9,不显示
仿真效果(反转)
正转
//读取控制电机转动 I/O 口表
for(i=0;i<(num*-1+20);i++)
{
P0=0xff;
display();
}
}
} else P2=0,P1=0xff; } void main() {
EA=1; IT0=1; //脉冲方式 EX0=1; //开外部中断 0:加速 IT1=1; //脉冲方式 EX1=1; //开外部中断 1:减速 flag=3; table_begin=4; while(1) {
//flag 为 1,反转
}
else P2=0;P1=0xff;
}
void qudong()
//电机速度,和正反转控制
{
uchar i,j;
if(table_begin==0||table_begin==8)
{
for(j=0+table_begin;j<8+table_begin;j++)
{
P2=table[j];
{
if(Z_key==0)
{
delay(5);
//正转按键按下
if(Z_key==0)
{
flag=0;
//正转标识
Z_LED=0;
delay(200);
Z_LED=1;
while(Z_key==0);
}
}
if(F_key==0)
{
delay(5);
//反转按键按下
if(F_key==0)
{
flag=1;
#define uint unsigned int
sbit wale = P1^4;
sbit dula = P1^5;
sbit jia_key=P3^3;
sbit jian_key=P3^2;
sbit Z_key=P3^0;
sbit F_key=P3^1;
sbit Z_LED=P1^0;
sbit F_LED=P1^1;
/*****************************************************
程序调试成功
*********************************************************/
#include<reg51.h>
#define uchar unsigned char
} void display() {
uint a; a=num; if(a<10)
a=a+1; else a=a%10; wale=1; P0=0xfb; wale=0; dula=1; P0=SHU[(num/10)]; dula=0; delay(10);
//显示函数
Hale Waihona Puke Baiduale=1;
P0=0xfd;
key(); dispose(); qudong(); } } /******************************************************** 电路图连接方法 **********************************************************/