c51单片机编程语言转换到arduino,avr单片机能识别的语言求好人!本人用的是l298n驱动两相四线步进电机。

#include <iom16v.h>
#include <macros.h>

/*------宏定义------*/
#define uchar unsigned char
#define uint unsigned int
uchar run[8]={0x05,0x01,0x09,0x08,0x0a,0x02,0x06,0x04}; //两相四线八拍工作方式数组
/*******************************************************************
端口初始化
*******************************************************************/
void port_init(void)
{
PORTB = 0xFF;
DDRB = 0xFF;
}
/*******************************************************************
延时函数
*******************************************************************/
void delay(uint i)//延时函数
{
uint j,k;
for(j=0;j<i;j++)
for(k=0;k<1000;k++);
}
/*******************************************************************
主函数
*******************************************************************/
main()
{
uint z,y;
y=40; //定义延时时间,时间越长电机转速越慢反之则快
port_init();
while(1)
{
for(z=0;z<8;z++) //改变数组的长度值需改变这个数字8,8为数组的长度。
{
PORTB=run[z];
delay(y);
}
}
}

#include <REG52.h>//通用89C52头文件

/*------宏定义------*/
#define uchar unsigned char
#define uint unsigned int

uchar run[8]={0x05,0x01,0x09,0x08,0x0a,0x02,0x06,0x04}; //两相四线八拍工作方式数组

/*******************************************************************
延时函数
*******************************************************************/
void delay(uint i)//延时函数
{
uint j,k;
for(j=0;j<i;j++)
for(k=0;k<1000;k++);
}
/*******************************************************************
主函数
*******************************************************************/
void main()
{
uint z,y;

P1 = 0xFF; // 端口初始化,如果不是你用的端口,可以随意改
// 例如:P0,P1,P2,P3,C51单片机就这四个端口

y=40; //定义延时时间,时间越长电机转速越慢反之则快
while(1)
{
for(z=0;z<8;z++) //改变数组的长度值需改变这个数字8,8为数组的长度。
{
P1=run[z];
delay(y);
}
}
}
/*******************************************************************************************************/
/*******************************************************************************************************/

只做了简单的修改既可以

头文件换了,端口名改了,其余没变化

另外,你的程序中有个函数,单片机是没有的,也没有对应的头文件

port_init();这一句是什么功能,只能自己编写了

不过看程序,步进电机应该可以转动了,延时间隔可以适当调节下,已达到理想状态
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-28
你的初始化,是不是应该DDRB=0xff,再PORTB=0xff.....还没配置输出,就直接输出....程序似乎没错

用单片机控制风扇的转速希望提供具体电路,我是新手希望大家多多帮助...
开关元件可以在淘宝上买到现成的模块。其中最常用的是L298N做的电机控制板(楼上图中上方的那个就是),有两路双向调速(用H桥实现)的输出,单路最大电流2A,工作电压是12V以下(记不清是12还是24,你查一下。。)。如果需要更大功率,可以找BTS7960做的模块,容量是40A。。。至于单片机,如果你有5...

制作机器人要哪些知识
单片机起到的就是一个机器人的司令部,控制着机器人的各部分的行动。arduino 既然有了大脑,那么机器人还需要和人一样有感官,而机器人的感官就是传感器,这些传感器就是机器人的眼睛、耳朵、鼻子感受周围的环境物理量 ,传感器感受到相关外界信息后,就会信息传给单片机,单片机会做出相应的处理。传感器的...

相似回答