红外遥控步进电机(C语言版)
步进电机控制设计(C程序设计语言)

接口课程设计任务书学生姓名专业班级指导老师工作单位计算机学院题目:步进电机控制设计(C程序设计语言)一、内容:在MIFID微机实验台上以双八拍的方式控制步进电机运行,用按钮控制启动和停止。
接口硬件电路图见说明书。
二、要求:1、控制步进电机运行的相序表存储在文件中。
2、按下SW1按钮,从文件中取出一个相序数据,从并行接口8255A的PA口输出,使步进电机运行。
相序数据在CRT上显示。
按下SW2按钮,步进电机运行停止。
3、SW1按钮的数字量由PC1输入,SW2按钮的数字量由PC0输入,4、设计程序运行时的界面友好。
三、进度安排:指导教师签名:年月日系主任(责任教师)签名:年月日一.设计目的和内容目的:通过步进电机控制实验,学习并行接口电路及其控制程序的设计原理与方法。
内容:在MIFID微机实验台上以双八拍的方式控制步进电机运行,用按钮控制启动和停止。
接口硬件电路图见说明书。
要求:1、控制步进电机运行的相序表存储在文件中。
2、按下SW1按钮,从文件中取出一个相序数据,从并行接口8255A的PA口输出,使步进电机运行。
相序数据在CRT上显示。
按下SW2按钮,步进电机运行停止。
3、SW1按钮的数字量由PC1输入,SW2按钮的数字量由PC0输入,4、设计程序运行时的界面友好。
二、实验预备知识可编程并行接口8255是一个具有两个8位(A端口和B端口)和两个4位(C端口)并行I/O端口的芯片。
在与外设进行数据传输时,把A、B、C3个端口分为两组。
A组由A端口和C端口的高4位组成。
B组由B端口和C端口的低4位组成。
为了满足多种数据传输的要求,可以通过对8255的编程用方式控制字设置3种工作方式来实现。
这3种工作方式为:方式0(基本I/O工作方式);方式1(选通I/O工作方式);方式2(双向传送方式)。
8255的控制字有工作方式控制字和C端口的位置位/复位控制字。
工作方式控制字是必须要预先设定的,C端口的位置位/复位控制字可视需要而定。
步进电机【C语言驱动程序】

/*C语言代码:*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code CCW[4]={0xFC,0xF6,0xF3,0xF9}; //逆时钟旋转相序表 uchar code CW[4]={0xFC,0xF9,0xF3,0xF6}; //正时钟旋转相序表sbit K1=P1^5; //反转按键sbit K2=P1^6; //正转按键sbit K3=P1^7; //停止按键sbit FMQ=P1^4; // 蜂鸣器void delaynms(uint aa){uchar bb;while(aa--){for(bb=0;bb<110;bb++) //1ms基准延时程序{;}}}void delay500us(void){int j;for(j=0;j<57;j++){;}}void beep(void){uchar t;for(t=0;t<100;t++){delay500us();FMQ=!FMQ; //产生脉冲}FMQ=1; //关闭蜂鸣器}void motor_ccw(void){uchar i,j;for(j=0;j<4;j++) //电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周{if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P0=CCW[i];delaynms(10); //调节转速}}}void motor_cw(void){uchar i,j;for(j=0;j<4;j++){if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P0=CW[i];delaynms(2); //调节转速}}}void main(void){uchar r;uchar N=64; //因为步进电机是减速步进电机,减速比的1/64 , //所以N=64时,步进电机主轴转一圈while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ccw(); //电机逆转if(K3==0){beep();break;}}}else if(K2==0){beep();for(r=0;r<N;r++){motor_cw(); //电机反转if(K3==0){beep();break;}}}elseP0=0x00; //电机停止}}。
步进电机实验C语言程序

步进电机控制(单片机C语言)

步进电机控制(单⽚机C语⾔)模块⼆简单应⽤实例调试任务2 步进电机控制(H22)⼀、任务要求⽤单⽚机P1端⼝控制步进电机,编写程序输出脉冲序列到P1⼝,控制步进电机正转、反转,加速,减速。
⼆、任务⽬的1.了解步进电机控制的基本原理。
2.掌握控制步进电机转动的编程⽅法。
三、电路连线框图步进电机电流⼩于0.5A时可采⽤ULN2003A进⾏驱动(反相)四、原理控制说明步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。
切换是通过单⽚机输出脉冲信号来实现的。
所以调节脉冲信号的频率便可以改变步进电机的转速,改变各相脉冲的先后顺序,可以改变电机的旋转⽅向。
步进电机的转速应由慢到快逐步加速。
电机驱动⽅式可以采⽤双四拍(AB→BC→CD→DA→AB)⽅式,也可以采⽤单四拍(A→B→C→D→A)⽅式,或单、双⼋拍(A→AB→B→BC→C→CD→D→DA→A)⽅式。
控制时公共端是接在VCC上的,所以实际控制脉冲是低电平有效。
单⽚机的P1⼝输出的脉冲信号经(MC1413或ULN2003A)倒相驱动后,向步进电机输出脉冲信号序列。
五、程序框图# include#define Astep 0x01#define Bstep 0x02#define Cstep 0x04#define Dstep 0x08unsigned char dly_c;void delay(){unsigned char tt,cc;cc = dly_c; //外循环次数tt = 0x0; //内循环次数do{do {}while(--tt);}while(--cc);}void main(){dly_c = 0x10;// 双四拍⼯作⽅式while(1){P1= Astep+Bstep;delay();P1= Bstep+Cstep;delay();P1= Cstep+Dstep;delay();P1= Dstep+Astep;delay();if (dly_c>3) dly_c --; // 加速控制};。
自己写的51单片机的红外线遥控接收程序(C语言)

//51单片机做的红外遥控实验(C语言)#include<reg51.h>#define u8 unsigned char#define u16 unsigned int#define ID 0x00 //本遥控器的ID号sbit ir=P3^3;code u8 seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9的段码code u8 s[]={1,0x40,0x48,0x04,0x02,0x05,0x54,0x0A,0x1E,0x0E}; u8 buf[4];bit ir_f=0;u8 nu;void delay(u16 x){while(x--);}void show(u16 x){u8 i=0,k=0;u8 s[4];kk:s[i]=x%10;if((x/10)>=1){x=x/10;i++;goto kk;}k=i+1;for(i=0;i<k;i++){P0=seg[s[i]];P2=~(8>>i);delay(300);P0=0XFF;P2=0XFF;}}void timer0_init(){TH0=0;TL0=0;TMOD|=0x01;TR0=0;}u16 low_test(){u16 t;TR0=1;while((ir==0)&&((TH0&0X80)!=0X80));TR0=0;t=TH0;t<<=8;t|=TL0;TH0=0;TL0=0; //t=(TH*256+TL0);//机器周期数return t;}u16 high_test(){u16 t;TR0=1;while((ir==1)&&((TH0&0X80)!=0X80));TR0=0;t=TH0;t<<=8;t|=TL0;TH0=0;TL0=0;return t;}/*u16 time_test(bit x){}*/u8 receive_8bit(){u8 d,i;u16 t;for(i=0;i<8;i++){t=low_test();t=high_test();d>>=1;if((t>=2750)&&(t<=3100)){d|=0x80;}}return d;}void ir_decode(){u16 t;u8 i;if(ir==0)//有遥控信号{t=low_test();//8295-9000us,倍频的是16590-18000if((t>=14500)&&(t<=18000))//检查引导码低电平时间{t=high_test();if((t>=8000)&&(t<=9000))//检查高电平{for(i=0;i<4;i++){buf[i]=receive_8bit();}if(buf[0]==(~buf[1]))//检查系统码是否正确{if(buf[0]==ID){if(buf[2]==(~buf[3])){//具体按键处理ir_f=1; //遥控有效}}}}}}}/*void key(){if(buf[2]==0x40){P1^=(1<<0);}if(buf[2]==0x48){P1^=(1<<1);}}*/void ir_execuse(){if(ir_f==1){switch(buf[2]){case 0x40:P1^=(1<<0);break;case 0x48:P1^=(1<<1);break;case 0x04:P1^=(1<<2);break;case 0x02:P1^=(1<<3);break;case 0x05:P1^=(1<<4);break;case 0x54:P1^=(1<<5);break;case 0x0A:P1^=(1<<6);break;case 0x1E:P1^=(1<<7);break;}ir_f=0;}}void show_d(){u8 j;for(j=0;j<10;j++){if(s[j]==buf[2]){nu=j;break;}}show(nu);}void isr_init(){EA=1;EX1=1;//外部中断,一直看3.3有没有下降沿。
红外遥控控制步进电机

唐山学院毕业设计设计题目:基于单片机的步进电机控制系统设计与实现系别:信息工程系班级:姓名:指导教师:2013年6月10 日基于单片机的步进电机控制系统设计与实现摘要步进电机是一种纯粹的数字控制电动机,是一种受电脉冲信号控制的无刷式直流电动机,是现代定位驱动装置的核心,广泛应用在机械、电力、纺织、电子、仪表、印刷以及航空航天、船舶、兵器等国防工业等领域。
基于单片机的步进电机控制系统具有稳定度高、成本低、控制方便、应用范围广等特点。
本系统是由STC89C52单片机核心处理模块,遥控器命令输入模块,ULN2003及28BYJ-48步进电机组成的电机模块,12864液晶输出模块共同组成的基于单片机的步进电机控制系统。
本设计以载波为38KHZ的红外遥控器作为用户的控制端,它的功能是把用户的命令转换为红外信号。
红外信号由TL1838接收,它可以将光信号转换为电信号,并将其发送给微控制器STC89C52。
STC89C52对电信号进行相应处理即可获得用户所发出的指令,并依此来控制28BYJ48型四相八拍电机并以12864液晶作为当前状态的显示器。
用户可以对步进电机进行加速、减速、正转、反转的控制。
本步进电机控制系统具有精度高、运行稳定、控制方便、维护简单、应用范围广等特点。
关键词:STC89C52 12864液晶步进电机红外遥控Design and Implementation of Stepper Motor Control System Based on MCUAbstractStepper motor is a kind of pure digital control motor and brushless dc motor controlled by electric pulse signal type. Stepper motor is the core of the modern orientation drive, widely used in machinery, electric power, textile, electronics, instruments, printing and aerospace, ships, weapons, and other areas of the defense industry, etc. The characteristics of the stepping motor control system based on single chip microcomputer include high stability, low cost, convenient control and wide application , etc.The stepper motor control system consists of core processor using the single chip processor, command input control module using IR remote control , display module using 12864 LCD and 28BYJ48 stepping motor module which using ULN2003 as driver.The infrared remote control with carrier for 38 KHZ is used as the control end of the user, which can convert the users’ commands into the infrared signal. The TL1838 can receive the infrared signal and convert it into electrical signal, which input to tSTC89C52.The MCU can obtain instructions of users by processing the incoming signal and control stepping motor of the 28BYJ48 type, the current status can be shown by 12864 LCD. Users could control acceleration, deceleration, forward, inversion for the stepping motor. The features of the control system of stepper motor includes high precision, stable running, convenient control and simple maintenance and wide application, etc.Key word:MCU; 12864 LCD; Stepper Motor; Infrared remote control目录1 引言 (1)2 总体设计方案 (2)2.1系统设计原理 (2)2.2总体设计框图 (2)3系统硬件模块的组成 (3)3.1单片机控制模块 (3)3.1.1 STC89C52主要结构 (3)3.1.2 STC89C52功能特性描述 (3)3.1.3 时钟电路 (6)3.1.4复位电路 (6)3.2步进电机模块 (7)3.2.1 步进电机简介 (7)3.2.2步进电机的结构 (8)3.2.3 28BYJ-48步进电机工作原理 (8)3.3ULN2003芯片概述与特点 (9)3.4红外线发射接收模块 (10)3.4.1 红外线遥控的介绍 (10)3.4.2红外通信基本原理 (10)3.4.3 红外遥控发射系统 (12)3.4.4 红外遥控接收系统 (12)3.4.5 TL1838与单片机的接口 (14)3.512864显示模块 (14)3.5.1 12864液晶的特点 (14)3.5.2 12864液晶的引脚说明 (15)3.5.3 12864液晶的读写操作 (17)3.5.4 12864液晶的控制指令 (17)3.5.5 12864液晶接口电路 (20)3.6蜂鸣器模块 (20)3.6.1 蜂鸣器介绍 (20)3.6.2 蜂鸣器的接口电路 (21)4 软件设计与调试 (22)4.1主程序流程图 (22)4.2程序设计思路 (23)4.2.1 遥控器的解码 (23)4.2.2 步进电机的控制 (23)4.2.3 显示屏的控制 (24)4.2.4 蜂鸣器的控制 (24)4.2.5 模块中的通信 (24)5 编程与下载软件 (25)5.1 Keil软件 (25)5.2STC-ISP下载软件 (26)6 硬件电路制作 (27)6.1原理图的绘制 (27)6.2电路实现的基本步骤 (27)7 结论 (30)谢辞 (31)参考文献 (32)附录 (33)1 引言步进电机是一种纯粹的数字控制电动机,又称为阶跃电机或脉冲电机[1]。
红外遥控器C语言参考例程

/*检查LCD忙状态*/
/*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。*/
/* */
/*******************************************************************/
bit lcd_busy()
{
bit result;
void delay(uchar x); //x*0.14MS
void delay1(int ms);
void beep();
sbit IRIN = P3^2; //红外接收器数据线
sbit BEEP = P1^5; //蜂鸣器驱动线
sbit RELAY= P1^4; //继电器驱动线
uchar IRCOM[7];
while (IRIN)
{
delay(1);
N++;
if (N>=30)
{ EX0=1;
return;}
}
IRCOM[j]=IRCOM[j] >> 1;
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
}//end for k
}//end for j
if (IRCOM[2]!=~IRCOM[3])
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
_nop_();
_nop_();
P0 = cmd;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
/*******************************************************************/
步进电机控制程序(c语言51单片机)

// pri_dj = Pme );
if( i == set_pwm_width ) { P1 = 0xff; i = 0; one _round_flg = 0; while ( !one_round_flg & key_puse );}
if(!key_puse) { delay(4ms); if(!key_puse) break; }
while ( key_puse & key_clear ); delay ( 8ms );
if ( !key_clear ) { round_num = 0; display(); }
if ( !key_puse ) break; }
while( !key_puse ); delay(8ms);
while( !key_puse ); }
set_display_num(); for(i = 0; i < LEDLen ; i ++){
P0 = 0xf0; P0 = P0 | LEDBuf[i] ; if(i==0) led_1000 = 0; //P0^4 if(i==1) led_100 = 0; //P0^5 if(i==2) led_10 = 0; //P0^6 if(i==3) led_1 = 0; //P0^7
delay ( 1ms ); tmp = (~(P2 | 0xF0)); P2 = 0x7F; // 0111 1111
delay ( 1ms ); tmp = (~(P2 | 0xF0)) * 10 + tmp; set_round_num = set_round_num + tmp * 100; set_round_num = set_round_num * Chilun_Num;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书学生姓名:专业班级:电信0806指导教师:工作单位:信息工程学院题目: 单片机原理与应用课程设计——设计并实现红外遥控步进电机初始条件:(1)Proteus仿真软件或XL1000综合仿真试验仪一台;(2)先修课程:微机原理与接口技术、单片机原理。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)利用红外遥控器控制步进电机的动作,动作要有正、反方向转动;单步;连续;快慢等动作。
具体完成以下任务:1. 完成系统的方案设计,给出系统框图。
2. 完成系统的硬件设计,给出硬件电路图和系统资源分配表。
3. 完成系统的软件设计,给出程序流程图和程序清单。
4. 运用Proteus仿真软件对所设计的系统进行调试和仿真,直到预定的功能全部仿真通过,给出仿真结果;如果条件允许,将程序下载到XL1000综合仿真试验仪,验证系统功能。
5. 对所设计的系统进行性能分析(精度、实用性、成本等)。
完成课程设计报告。
时间安排:总体设计和硬件设计二天软件设计一天调试一天写报告,答辩一天参考书目:[1] 李群芳、张士军,单片微型计算机与接口技术, 电子工业出版社,2008[2] 张毅刚、彭喜元、董继成,单片机原理及应用,高等教育出版社,2004[3] 赵晓安,MCS-51单片机原理及应用,天津大学出版社,2001指导教师签名:年月日系主任(或责任教师)签名:年月日目录1系统设计原理 (1)1.1总体方案设计 (1)2主要模块设计 (2)2.1红外遥控及LED模块 (2)2.2 步进脉冲产生模块 (6)3系统硬件线路设计 (10)4系统软件设计 (11)5系统分配表 (13)6源程序 (14)7仿真分析 (15)8性能分析 (16)9心得及体会 (17)10参考文献 (18)附录一(红外控制程序) (19)1.系统设计原理:利用红外遥控器控制步进电机其实和用键盘控制步进电机原理类似,只不过按键是用导线传递键是否按下的信号,而红外则是利用LED发射红外线传递按键信息。
由于红外采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”,在解码时通过判断高低电平持续时间的长短来识别发送的键值。
控制步进电机正、反方向转动、单步、连续、快慢等动作,原理其实并不困难。
步进电机将电脉冲信号转换成角位移,即给一个脉冲,步进电机就转动一个角度,转动的角度大小与施加的脉冲数成正比,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。
每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的。
单片机的晶振为12MHz,单周期指令执行时间为1MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。
电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。
步进电机的转动需要向电机以一定的顺序分配驱动脉冲。
如四相单四拍,其脉冲分配的方式和顺序为A-B-C-D-A,如此周而复始,即可转动。
转动方向与脉冲顺序有关,如果给相反脉冲,那么电机就会反转。
1.1总体方案设计:根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中6个按键就可满足需求,外加8位LED数码显示管即可。
由于实验箱上只有8个连体数码管,因此需要动态扫描。
通过从键盘上输入正、反转命令,按键数值显示在数码管上,CPU再读取正、反转命令,加减速后执行。
经键盘可完成启动、停止、正转、反转、速度设置控制功能。
按下红外遥控器上的相关按钮电机执行相关动作,同时数码管上显示按键的数值,系统大部分都是软件实现的,整个设计框图如下:2主要模块设计:2.1红外遥控及LED模块:本模块应完成对红外遥控器有无键按下进行确认,当有键按下时,确定按键值,并根据所得键值进行处理(包括所按键是不是停止键还是执行键。
如是停止键,不断扫描键盘程序,等待执行键按下;如是执行键就启动产生步进电机控制信号程序)。
显示模块主要是完成在进行键盘按下时,显示输入的数据值(转矩数、转动方向、转动速率及运行方式)。
2.1.1红外遥控编解码原理:红外遥控系统由发射和接收两大部份组成,应用编/解码专用集成电路芯片来进行控制操作,如图1 所示。
发射部份包括键盘矩阵、编码调制、LED红外发送器;接收部份包括光、电转换放大器、解调、解码电路。
由于采用不同芯片其发送和接受的过程是不一样的,我们用的实验箱采用的是HT6221红外编码芯片,因此以HT6221为例来说明红外遥控器编码和解码原理。
1 HT6221 键码的形成当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。
这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。
当一个键按下超过36ms 振荡器使芯片激活如果这个键按下且延迟大约108ms,这108ms 发射代码由一个起始码9ms ,一个结果码4.5ms ,低 8 位地址码9ms~18ms ,高 8 位地址码9ms~18ms ,8 位数据码9ms~18ms 和这 8 位数据的反码9ms~18ms 组成如果键按下超过108ms 仍未松开接下来发射的代码连发代码将仅由起始码9ms 和结束码2.5ms 组成。
1.12ms为0,2.24ms 为1,如下图:每发送一个码,HT6221 会先送出一个9ms 的头码和4.5ms 的间隙,然后依次送出16 位的地址码(18ms~36ms)、8 位数据码(9ms~18ms)和8 位数据反码,如下图:注:代码宽度算法:16 位地址码的最短宽度:1.12 *16=18ms16 位地址码的最长宽度2.24ms *16=36ms易知 8 位数据代码及其8 位反代码的宽度和不变:(1.12ms+2.24ms)* 8=27ms32 位代码的宽度为18ms+27ms ~(36ms+27ms)2 代码格式(以接收代码为准,接收代码与发射代码反向)位定义单发代码格式3解码方法1.解码的关键是如何识别0 和 1 从位的定义我们可以发现0 1 均以 0.56ms的低电平开始不同的是高电平的宽度不同0 为 0.56ms, 1 为 1.68ms,所以必须根据高电平的宽度区别0 和 1 如果从 0.56ms 低电平过后开始延时0.56ms 以后若读到的电平为低说明该位为0 反之则为1 为了可靠起见延时必须比0.56ms 长些但又不能超过1.12ms,否则如果该位为0 读到的已是下一位的高电平因此取1.12ms+0.56ms /2=0.84ms 最为可靠一般取0.84ms2.根据码的格式应该等待9ms 的起始码和4.5ms 的结果码完成后才能读码左右均可这样接收到的仅仅是普通的代码要得到标准的键值还必须进行代码识别和代码转换2.1.2 LED部分:共阳接法:低电平亮,高电平灭数码管部分 JP5(控制数码管的8段)JP8(输入高电平选中相应的数码管)数码管实际上是由7个发光管组成的8字形构成的,加上小数点就是8个。
分别把它命名为ABCDEFGH,由于接法是共阳接法,所以低电平是亮,高电平是灭。
例如,要显示一个数字2则是C、F、H(小数点)不亮,P0.0-P0.7控制数码管的8段,0为亮,1为灭,从高往低排列,P0.0-P0.7写成二进制为10100010,把它转化为十六进制数为A2H,当然在此之前,还必须指定哪一个数码管亮。
原理图中把所有数码管的a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受IO线控制。
CPU向字段输出口送出字形码,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪位工作如果要选中第一位,只需将该位清零即可。
所有数码管的8个笔划段a-h同名端连在一起,在这种接法中同一瞬间所有的数码管显示都是相同的,不能显示不同的数字。
在单片机里,首先显示一个数,然后关掉,然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每个显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会由闪烁感。
特别说明:实验箱采用的数码管较为特殊,和一般的共阴、共阳数码管都不一样,在Proteus中共阳数码管给高电平才表示选中,而实验箱采用低电平选中,各字段表也不一样。
如一般共阳给"C0H"表示"0",但实验箱需要给"28H",为了仿真的需要,后面的程序均采用的是一般共阳数码管写法,在实验箱上调试程序时进行了变更!2.2步进脉冲产生模块:步进电机原理说明2.2.1基本原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。
该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。
当定子的矢量磁场旋转一个角度。
转子也随着该磁场转一个角度。
每输入一个电脉冲,电动机转动一个角度前进一步。
它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。
改变绕组通电的顺序,电机就会反转。
所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。
仅仅处于一种盲目的仿制阶段。
这就给户在产品选型、使用中造成许多麻烦。
签于上述情况,我们决定以广泛的感应子式步进电机为例。
叙述其基本工作原理。
望能对广大用户在选型、使用、及整机改进时有所帮助。