登录|立即注册|使用QQ帐号登录
论坛 > 24小时必答区
发帖|
看1542|回6|收藏
楼主 ID:511977 只看他
2019-4-15 18:43
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit DIR=P1^0;
sbit STP=P1^1;
sbit MS1=P1^2;
sbit MS2=P1^3;
sbit MS3=P1^4;
sbit EN=P1^5;
sbit key1=P0^0;
sbit key2=P0^1;
sbit key3=P0^2;
sbit key4=P0^3;
sbit key5=P0^4;
sbit key6=P0^5;
sbit key7=P0^6;
sbit key8=P0^7;
int i;
void delay(int ms)
{
int i;
for(i=0;i<ms;i++)
{
-nop-();
-nop-();
-nop-();
-nop-();
}
}
void step(int steps)
{
int i;
for(i=0;i<=steps;i++)
{
STP=1;
delay(100)
STP=1;
delay(100)
}
}
void main()
{
MS1=0;
MS2=0;
MS3=0;
EN=0;
for(i=0;i<200;i++)
{
DIR=0;
step(3200)
delay(1000)
DIR1;
step(3200)
delay(1000)
}
}

沙发 ID:372939 只看他
2019-4-15 21:24
这个不复杂呀,就是个时序而已
板凳 ID:511977 只看他
2019-4-16 20:59
这个程序,主函数大概看得懂,知道delay函数,STEP函数是啥,然后不懂sbit位运算之后的东西。属于萌新。
地板 ID:511977 只看他
2019-4-16 21:00

引用:

superIOT 发表于 2019-4-15 21:24
这个不复杂呀,就是个时序而已

时序?不懂
5# ID:286252 只看他
2019-4-17 11:49
sbit是位定义,例如sbit DIR=P1^0;你可以看成DIR的控制状态就是P1.0口的输入/输出状态,程序里面的DIR是控制电机的转动方向,STEP函数是电机的转动节拍(没弄过两相的步进电机,这是从程序上的个人理解)。位定义这些可以看看百度资料。
6# ID:511977 只看他
2019-4-20 19:03

引用:

忍者神龟2018 发表于 2019-4-17 11:49
sbit是位定义,例如sbit DIR=P1^0;你可以看成DIR的控制状态就是P1.0口的输入/输出状态,程序里面的DIR是控 ...

好的,谢谢。
7# ID:432823 只看他
2019-4-21 13:19
正转3200步,延时后,反转3200步,延时后,反复200次。

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版