ZKX's LAB

单片机控制步进电机的程序

2020-07-16知识10

求单片机控制步进电机简单的c程序 给你一段简单的程序代码,控制步进电机的,不过你要好好看看程序的编写,以适应你的硬件(主要是连线),你可以在实现这个的基础上实现你所说的目标,个人觉得你参考这个程序然后自己实现你所说的功能比较好:includeunsigned char code F_Rotation[4]={0x08,0x10,0x20,0x40};正转表格unsigned char code B_Rotation[4]={0x40,0x20,0x10,0x08};反转表格void Delay(unsigned int i)/延时{while(-i);}main(){unsigned char i;while(1){for(i=0;i;i+)/4相{P1=F_Rotation[i];输出对应的相 可以自行换成反转表格Delay(500);改变这个参数可以调整电机转速}}}求单片机控制步进电机的C语言程序,急啊 #includedefine uchar unsigned charsbit dula=P2^6;数码管段选sbit wela=P2^7;数码管位选sbit jia_key=P3^6;加速键sbit jian_key=P3^7;减速键sbit zf_key=P3^5;正反转键bit flag=0;正反转标志位uchar num=0,show_num=2,maichong=4,table_begin=0;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar code table1[]={0x01,0x02,0x04,0x08,0x04,0x02,0x01};电机正反转I/O口电平对应表void delay(uchar i){uchar j,k;for(j=i;j>0;j-)for(k=125;k>0;k-);}void display(){dula=0;P0=table[show_num];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table[0];dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);}void key(){if(jia_key=0){delay(5);if(jia_key=0){num+;if(num=4)num=3;while(jia_key=0);}}if(jian_key=0){delay(5);if(jian_key=0){if(num!0)num-;elsenum=0;while(jian_key=0);}}if(zf_key=0){delay(5);if(zf_key=0){flag=~flag;while(zf_key=0);}}}void dispose(){switch(num){case 0:show_num=2;maichong=5;break;case 1:show_num=4;51单片机控制两个步进电机的程序 不要使用89C52或者51,用12C5A60S2或其他1T单片机,因为89C51控制2个,速度跟不上,指令执行较慢用2个定时器,在定时器中断种处理步进电机有4相的,2相的,等,4线的,6线的,5线的等,控制起来,只有5线跟别人不怎么相同,但却是最简单的,4线只要控制好A+A-B+B-也是差不多单片机接控制步进电机的程序 很简单的 过来看看吧 把break改为while(1)试下,当a=100,时,让程序停在那里。如果你用break,当a=100时,程序退出去了,这时单片机不知道该干什么事了,所以他有可能又再次进入主函数运行,就一直转了,步进电机旋转一定角度用单片机控制的程序怎么写 现在控制步进电机方便的方法用步进电机驱动器。步进电机驱动器控制电机运转的信号有3个;使能、转向、时钟。运转时使能、置为有效,转向按需要设定。此时给驱动器发一个时钟脉冲,电机就按转向转一个步距角。步进电机驱动器都有细分,电机本身的步距也不同,2相电机步距角有1.8和0.9度两种。如果用1.8度的电机,驱动器选择整步,那么给一个时钟电机就转1.8度。如再选1/2细分,一个时钟电机转0.9度,以此类推。要控制电机的转角就用转角除以前面的步距角,得出转角需要的脉冲数。写程序时按这个脉冲数给驱动器发时钟脉冲,电机就可以转过所要的转角。单片机控制步进电机求汇编程序 ORG 00HSTART:MOV DPTR,#TAB1MOV R0,#03HMOV R1,#4HMOV R4,#00HMOV P0,#03HWAIT:MOV P0,R0MOV P0,#0FFHJNB P3.4,TIZ;P3.4有停止键按下时,跳到停止子程序JNB P3.0,ZHENG;P3.0有启动正转键按下时,跳到停止子程序JNB P3.1,FANSJMP WAITZHENG:;正转子程序MOV A,R4MOVC A,@A+DPTRACALL DELAYINC R4AJMP KEYFAN:;反转子程序MOV R4,#6MOV A,R4MOVC A,@A+DPTRMOV P3,A;ACALL DELAYAJMP KEYKEY:MOV P3,#0FFH;KEY检测,赋初值JB P3.4,ZZ1AJMP TIZTIZ:MOV P0,#00H;停止子程序AJMP KEYZZ1:JB P3.0,FZ1;正转按键检测,有键按下转到FZICJNE R4,#8,LOOPZ;循环次数是否为8,为8则清0MOV R4,#0LOOPZ:MOV A,R4;读电机状态显示MOVC A,@A+DPTRMOV P0,A;赋给P0,显示1为正转,2为反转,3为加速,4为减速SETB P1.1;赋高电平,关闭反向状态灯CPL P1.0;开正转状态灯JNB P3.2,JIASUZ;加速子程序JNB P3.3,JIANSUZ;减速子程序ACALL DELAYINC R4AJMP KEYFZ1:JB P3.1,KEYCJNE R4,#255,LOOPFMOV R4,#8LOOPF:DEC R4MOV A,R4MOVC A,@A+DPTR;读脉冲MOV P0,A;给步进电机输入脉冲SETB P1.0CPL P1.1JNB P3.2,JIASUF;加速按键检测JNB P3.3,JIANSUF单片机控制步进电机程序,我想设定个角度,控制电机转过设定的角度停止,怎么弄? 这个很简单用一个输出端口输出一个角度的方波只不过加一个按键的问题步进电机在转的过程中,按下按键就会停止。按键采用外部定时中断即可。单片机步进电机控制实验 实验八步进电机控制实验 一、实验目的 1.掌握Keil C51软件与Protues软件联合仿真调试的方法;2.掌握步进电机的工作原理及控制方法;3.掌握步进电机控制的不同编程方法。跪求!单片机控制步进电机程序。 这太简单了!同学好好学吧!不难真的,一点不难!我原来就是一点都不会,到处问,找了不少例程,但是用在我的环境下就不行了,最后我就自己学,发现很简单的!谁能帮我编写单片机控制步进电机的程序 你得告知驱动器的控制信号。如果你不用驱动器,可能没人愿意帮你写,因为太麻烦!

#步进电机#num#单片机#电机控制器

随机阅读

qrcode
访问手机版