#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define MotorData P0 //步进电机控制接口定义
sbit KEY1 = P3^2; //定义按键的输入端S1键
sbit KEY2 = P3^3;
sbit KEY3 = P3^4;
sbit P2_0 = P2^0;
uchar code table[]={0x8E,0x80,0xc0};//共阳数字编码 F,B.0
uchar phasecw[4] ={0x08,0x04,0x02,0x01};//正转 电机导通相序 D-C-B-A
uchar phaseccw[4]={0x01,0x02,0x04,0x08};//反转 电机导通相序 A-B-C-D
static speed=5;
static a=0;
//ms延时函数
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<112;j++);
}
void delay(uchar i) //延时函数
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
/*数码管显示函数*/
void display() //显示函数
{
P0=table[a-1];
P2_0 = 0;
delay(5);
P2_0 = 1;
}
//顺时针转动
void MotorCW(void)
{
uchar i;
for(i=0;i<4;i++)
{
MotorData=phasecw[i];
Delay_xms(speed);//转速调节
}
}
//逆时针转动
void MotorCCW(void)
{
uchar i;
for(i=0;i<4;i++)
{
MotorData=phaseccw[i];
Delay_xms(speed);//转速调节
}
}
//停止转动
void MotorStop(void)
{
MotorData=0x00;
}
//按键检测函数
int anjian(void)
{
if(KEY1 == 0)
{
Delay_xms(100);
if(KEY1 == 0)
a = 1;
}
if(KEY2 == 0)
{
Delay_xms(100);
if(KEY2 == 0)
a = 2;
}
if(KEY3 == 0)
{
Delay_xms(100);
if(KEY3 == 0)
a = 3;
}
return a;
}
void main(void)
{
uint m;
// m=anjian();
Delay_xms(50);//等待系统稳定
while(1)
{
m=anjian();
switch (m)
{
case 1:
while(1)
{
MotorCW(); //顺时针转动
m=anjian();
display();
if(m != 1)
break;
}
break;
case 2:
while(1)
{
MotorCCW(); //逆时针转动
m=anjian();
display();
if(m != 2)
break;
}
break;
case 3:
MotorStop();
while(1)
{
m=anjian();
display();
if(m != 3)
break;
}
break;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
12-步进电机的按键控制及显示.zip
共15个文件
lst:2个
bak:2个
obj:2个
需积分: 0 0 下载量 118 浏览量
2023-08-11
16:39:29
上传
评论
收藏 27KB ZIP 举报
温馨提示
51单片机程序,步进电机的按键控制及状态显示。
资源推荐
资源详情
资源评论
收起资源包目录
12-步进电机的按键控制及显示.zip (15个子文件)
12-步进电机的按键控制及显示
步进电机的按键控制及显示_uvproj.bak 0B
步进电机的按键控制及显示.plg 216B
步进电机的按键控制及显示.uvproj 13KB
步进电机的按键控制及显示.lnp 61B
STARTUP.LST 14KB
main.OBJ 6KB
STARTUP.A51 6KB
步进电机的按键控制及显示.hex 1KB
main.LST 6KB
步进电机的按键控制及显示.M51 10KB
步进电机的按键控制及显示.uvopt 54KB
STARTUP.OBJ 749B
步进电机的按键控制及显示_uvopt.bak 54KB
步进电机的按键控制及显示 6KB
main.c 2KB
共 15 条
- 1
资源评论
三依CC
- 粉丝: 31
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功