用51单片机控制3个步进电机时的程序!越详细越好。

3个步进电机同时转动,转动的角度是预先给的角度值。
主要是要程序,还有角度转换成脉冲数时有困难。

程序是指基本指令,通过范围内的修改达到使用目的。
一个步进电机控制器和3个步进电机的控制器只是脉冲输出点位不一样而已(芯片不一样)当然,输出的IO点也会增加,3个步进电机的控制器可以控制1~3个步进电机不同的工作,基于51单片机的开发代码指令和软件由芯片生产商提供,基础代码由控制器工程师提供,一款产品是基于硬件和软件的结合,开发者一般从硬件设计开始,如果你可以提供控制器硬件,我相信软件就会非常简单。
程序其实就是写代码,和PLC接近,但比PLC复杂,因为PLC是开放式的。
下面是我们的三轴控制器。
三轴运动控制器简介

控制器的功能:
⑴ 显示屏分辨率可选两种128×64点、192×64点单色图形屏(黄绿屏或蓝屏),分别可显示16×16标准点阵汉字4行8列、4行12列。
⑵ 内置蜂鸣器,可以通过软件配合按键发声,或做报警等其他通途。
⑶ 控制器须外接DC5V工作电源。如果系统要用到模拟量输出(0~10VDC)功能,则需要外部的±12VDC电源。
⑷ 用宏晶STC12C系列高性能CPU,同时钟频率下,运算速度比其他51系列CPU快8~12倍。
⑸ 64KB程序空间,8KB + 256KB数据空间,带实时日历时钟。
⑹ 自带512KB字库,含16×16点阵汉字、16×16点阵字符、8×16点阵ASCII字符、12×12点阵汉字、12×12点阵字符、6×12点阵ASCII字符。两种汉字字库均包含全部一、二级汉字。
⑺ 19个按键,其中6个按键上可配有LED指示灯。LED指示灯可单独控制亮暗,和按键本身不直接关联,用于系统中一些常用功能选择之用。
⑻ 3轴运动控制,脉冲+方向,差分输出,最大脉冲频率50KHz,极强的抗干扰能力。也可以接成共阳极输出,系统有+5V输出端子。16位脉冲计数,也可无限发脉冲。
⑼ 2路AB相输入解码。
⑽ 20路DI输入,12~24VDC共阳极。
⑾ 16路DO输出,晶体管输出,可以外接继电器等,外接继电器等感性负载时,须在继电器线圈两端并联反向二极管。
⑿ 支持RS232、RS485通信。
⒀ 串口下载,宏晶官方提供的下载软件。
⒁ 开发环境是KEIL公司的C51开发平台μVision3,也可以自行在网上升级更高版本。
⒂ 开发库是C51格式的库文件。
DFC111.h---------------------------------------基本头文件
DFC_MU102_Sys.h---------------------------系统头文件
DFC_MU102_SYS.LIB---------------------------系统库文件
DFC_MU102_LCD.h------------------------LCD控制头文件
DFC_MU102_LCD.Lib------------------------LCD控制库文件
DFC_MU102_KB19.h------------------------按键控制头文件
DFC_MU102_KB19.Lib------------------------按键控制库文件
DFC_IO111.h------------------------------输入输出头文件
DFC_IO111.Lib------------------------------输入输出库文件
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-06
我可以帮你写程序,做Proteus仿真追问

有什么要求?

第2个回答  2014-06-06
三个和一个有区别?追答

哪种步进电机?

追问

普通4相步进电机

如何用c51编写51单片机控制步进电机转动程序
A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次...

51单片机控制步进电机
我们采用P1口来采集ADC0832的8位数据,用P0.0口控制步进电机动作,利用T0的时间中断来采集P1口的ADC0832数据并做出比较后设置步进电机启动标志位start=1;并设置他的运行频率,当然,楼主没说怎么比较,我这就只是写了个简单的例子,一通百通,希望对你有帮助 下面是程序:include <reg51.h> \/\/选用...

51单片机步进电机正反转程序
单片机控制步进电机,我想你说的是两相步进电机,一般是控制其相序分配的顺逆从而控制正反转,一般而言,步进电机相序分配你可以做成一个数组比如step[]={0x03,0x06,0x0c,0x09},这样来说可以假设P0口是步进电机控制口,那么可以按如下方式来控制: while(1) { for(i=0;i<4;i++) { if(fx==1...

求51单片机控制步进电机,实现其间歇运动的程序,最好要有C语言的
\/\/#include"delay.h" \/\/在本文件中加入一个延时函数,或添加带有延时函数的.c文件 unsigned char code table1[]={0x00,0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};\/\/0x00表示停止转动 \/\/ \/\/bit flag;\/\/正反转标志 void delayus(unsigned int t) \/\/延时函数 { while(--t);}...

关于51单片机控制步进电机编程(c语言),求助
include <reg52.h> define uchar unsigned char define uint unsigned int uchar key_l,key,i;uchar code temp1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar code temp2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};uchar code aa[16]=" :";uchar code smg[...

51单片机控制步进电机正反转、加减速
51单片机控制步进电机正反转、加减速 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能加速了并且减几下就变得很慢了(经测试上下限都是可以正常速度运转的)求各位路过的大侠指点... 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能...

谁能告诉如何用51单片机控制电机使其三天转一圈,程序要怎么写?注释尽量...
625度,减速比为64,那么转一圈需要的脉冲数目为:360\/(5.625\/64)=4096,也就是说这三天时间里你要给电机4096个脉冲。然后算算3天时间有多长,24*3*60*60=259200秒,那么需要多少秒给个脉冲就可以算出来了:259200\/4096=63.28125秒,只要控制这么长的时间给步进电机一个脉冲就可以了。

求步进电机接线方法与51单片机程序
接线不对吧,控制一个电机就需要四根控制线也就是说outa,outb,outc,outd只能控制一个电机,不可能控制两个电机。假设用P0.0~P0.3控制步进电机 include<reg51.h> define uchar unsigned char uchar step[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09} sbit key1=P1^0;sbit key2=P1...

求用51型的单片机控制步进电机,要求步进电机转90度后停5秒,再转90度...
另一种是带脉冲分配的,单片机发过来一串方波脉冲,脉冲个数决定转动的步数,另外输出一个控制正转和反转的信号 这两种驱动器的单片机程序当然是不一样的 用C语言编程很简单:(第一种驱动器)for(i=0;i<4;i++){ for(j=0;j<3;j++)\/\/循环3次每次4步,12步是90度 { P0=1;delay_ms(2);...

步进电机驱动程序C语言
步进电机控制程序(c语言+51单片机)include<reg51.h> define uint unsigned int define uchar unsigned char define ms *77 \/\/ f = 12 M define LEDLen 4 define Dj_star() {IE=0x81; pri_dj=0; } define Dj_stop() {IE=0x00; pri_dj=1; P1=0xff; shache="0"; delay(800ms);...

相似回答