单片机步进电机控制实训报告
基于stm32单片机的步进电机实验报告

基于stm32单片机的步进电机实验报告步进电机是一种将电脑控制信号转换为机械运动的设备,常用于打印机、数码相机和汽车电子等领域。
本实验使用STM32单片机控制步进电机,主要目的是通过编程实现步进电机的旋转控制。
首先,我们需要了解步进电机的基本原理。
步进电机是一种能够按照一定步长精确旋转的电机。
它由定子和转子两部分组成,通过改变定子和转子的电流,使转子按照一定的角度进行旋转。
在本实验中,我们选择了一种四相八拍步进电机。
该电机有四个相位,即A、B、C、D相。
每个相位都有两个状态:正常(HIGH)和反向(LOW)。
通过改变相位的状态,可以控制步进电机的旋转。
我们使用STM32单片机作为控制器,通过编程实现对步进电机的控制。
首先,我们需要配置STM32的GPIO口为输出模式。
然后,编写程序通过改变GPIO口的状态来控制步进电机的旋转。
具体来说,我们将A、B、C、D相分别连接到STM32的四个GPIO口,设置为输出模式。
然后,通过改变GPIO口输出的电平状态,可以控制相位的状态。
为了方便控制,我们可以定义一个数组,将表示不同状态的四个元素存储起来。
通过循环控制数组中的元素,可以实现步进电机的旋转。
在实验中,我们通过实时改变数组中元素的值,可以实现不同的旋转效果。
例如,我们可以将数组逐个循环左移或右移,实现步进电机的正转或反转。
在实验过程中,我们可以观察步进电机的旋转情况,并根据需要对程序进行修改和优化。
可以通过改变步进电机的旋转速度或步进角度,来实现更加精确的控制。
总结起来,通过本次实验,我们了解了步进电机的基本原理,并通过STM32单片机控制步进电机的旋转。
通过编写程序改变GPIO口的状态,我们可以实现步进电机的正转、反转和精确控制。
这对于理解和应用步进电机技术具有重要意义。
单片机实验报告步进电机控制系统

信息科学与技术学院单片机及嵌入式课程设计设计题目:步进电机控制系统指导老师:林凡强姓名:学号:班级:二零一二年6月1. 实验要求:(1)正反转(2)调速(3)键盘输入(4)数码管显示2.设计要求:(1)、按下不同的键,分别使步进电机实现顺时针和逆时针旋转。
(2)、电机运转状态可以是正反转,加速减速,几种不同速度的组合。
3、设计目的:(1)学习基本电机系统程序编写等(2)掌握电机的控制方法等4、设计实验设备硬件:PC机一台自制单片机实验仪一套其他小工具等软件:Windows98/XP/2000系统,keil7.0集成开发环境5、程序:#include"reg51.h"#define uint unsigned int//#define delay_ms 5 //延时sbit W=P3^6;sbit R=P3^7;sbit SEND=P3^0;sbit CLOCK=P3^1;int delay_ms=30;sbit bu1=P1^4;sbit bu2=P1^5;sbit bu3=P1^6;sbit bu4=P1^7;uint flag=0;unsigned int table[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,0xff}; uint h=0;void delay(uint n) //延时程序{uint i,j;for(i=0;i<100;i++)for(j=0;j<n;j++);}void zhengzhuan() //正转{bu1=~bu1;delay(delay_ms);bu1=~bu1;bu2=~bu2;delay(delay_ms);bu2=~bu2;bu3=~bu3;delay(delay_ms);bu3=~bu3;bu4=~bu4;delay(delay_ms);bu1=~bu1;}void fanzhuan() //反转{bu4=~bu4;delay(delay_ms);bu4=~bu4;bu3=~bu3;delay(delay_ms);bu3=~bu3;bu2=~bu2;delay(delay_ms);bu2=~bu2;bu1=~bu1;delay(delay_ms);bu1=~bu1;}void senddata(unsigned int dat) //发送数据程序{unsigned int i=0;for(;i<8;i++){CLOCK=0;SEND=dat>>i&1;;CLOCK=~CLOCK;}}uint saomiao() //键盘扫描程序{uint i,j,k1,k2=0x01,n;uint A[]={0xfe,0xfd,0xfb,0xf7};for(i=0;i<4;i++){k2=0x01;W=0;P2=0x60;P0=A[i];delay(1);W=1;P2=0xA0;W=0;// k1=P0&0x0f;// if(k1!=0x0f)// {for(j=0;j<4;j++){n=P0&0x0F;if(!(n&k2)){return(4*i+j);}k2<<=1;}// }}delay(100);return(10) ;}void main(){uint m,r;// W=0;// P2=0x60;// P0=0x00;// ;// W=1; //锁存P0口输出数据// P2=0xA0;// W=0;while(1){W=0;P2=0x60;P0=0xf0;W=1; //锁存P0口输出数据P2=0xA0;W=0;m=P0&0x0F;if(m!=0x0f){delay(50);m=P0&0x0f;if(m!=0x0f){// flag=!flag;// switch(flag)// {// case 0: zhengzhuan();// break;// case 1: fanzhuan();// break;// default : ;// }h=saomiao();senddata(table[h]);}}r=h;if(r==1){zhengzhuan();}if(r==2){fanzhuan();}if(r==5){delay_ms+=5;if(delay_ms>100)delay_ms=200;}if(r==4){delay_ms-=5;if(delay_ms<=5){delay_ms= 5;}}}}6、实验心得:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快步进电机是一种将电脉冲信号转换成相应的角位移(或线位移)的电磁机械装置[1]。
单片机步进电机控制实验报告

单片机步进电机控制实验报告单片机步进电机控制实验报告引言:步进电机是一种常用的电动机,具有结构简单、体积小、转速稳定等优点,广泛应用于工业自动化、机械设备等领域。
本实验旨在通过单片机控制步进电机,实现电机的正转、反转、加速、减速等功能。
通过实验,深入了解步进电机的工作原理和控制方法,提高对单片机的编程能力。
一、实验目的本实验的主要目的是掌握步进电机的工作原理,了解单片机控制步进电机的方法和步骤,并通过实验验证控制效果。
二、实验器材1. 步进电机:XX型号,XXV,XXA2. 单片机开发板:XX型号3. 驱动电路:包括电源、驱动芯片等三、实验原理步进电机是一种特殊的电动机,其转子通过电磁螺线管的工作原理实现转动。
步进电机的转子分为若干个极对,每个极对上都有一个螺线管,通过对这些螺线管施加电流,可以使转子转动。
单片机通过控制螺线管的电流,实现步进电机的控制。
四、实验步骤1. 连接电路:根据实验器材提供的电路图,将步进电机与单片机开发板相连接。
2. 编写程序:使用C语言编写单片机控制步进电机的程序。
程序中需要包括电机正转、反转、加速、减速等功能的实现。
3. 上传程序:将编写好的程序通过编程器上传到单片机开发板上。
4. 实验验证:通过按下开发板上的按键,观察步进电机的运动情况,验证程序的正确性。
五、实验结果与分析经过实验验证,编写的程序能够准确控制步进电机的运动。
按下不同的按键,电机可以实现正转、反转、加速、减速等功能。
通过调整程序中的参数,可以实现不同速度的控制效果。
实验结果表明,单片机控制步进电机具有较高的精确性和可靠性。
六、实验总结通过本次实验,我深入了解了步进电机的工作原理和控制方法,掌握了单片机控制步进电机的编程技巧。
实验中遇到了一些问题,如电路连接不正确、程序逻辑错误等,但通过仔细分析和排除,最终解决了这些问题。
通过实验,我不仅提高了对步进电机的理论认识,还锻炼了自己的动手实践能力和问题解决能力。
步进电控制实验报告

一、实验目的1. 理解步进电机的工作原理及其应用领域。
2. 掌握单片机控制步进电机的技术方法。
3. 熟悉步进电机的驱动电路设计。
4. 通过实验验证步进电机控制系统的性能。
二、实验原理步进电机是一种将电脉冲信号转换为角位移的电机,具有精度高、响应快、控制简单等优点。
其工作原理是:当输入一定频率的脉冲信号时,步进电机按照一定的步距角转动。
步进电机的步距角与线圈匝数、绕组方式有关。
本实验采用单片机控制步进电机,通过编写程序实现步进电机的正转、反转、停止、转速调节等功能。
三、实验设备1. 单片机实验平台:包括51单片机、电源、按键、数码管等。
2. 步进电机驱动模块:用于驱动步进电机,包括驱动电路和步进电机本体。
3. 实验指导书。
四、实验步骤1. 搭建实验电路(1)连接单片机实验平台,包括电源、按键、数码管等。
(2)连接步进电机驱动模块,包括电源、控制线、步进电机本体等。
(3)检查电路连接是否正确,确保无误。
2. 编写控制程序(1)初始化单片机相关端口,包括P1口、定时器等。
(2)编写步进电机控制函数,包括正转、反转、停止、转速调节等功能。
(3)编写主函数,根据按键输入实现步进电机的控制。
3. 下载程序(1)将编写好的程序下载到单片机实验平台。
(2)检查程序是否下载成功。
4. 测试实验(1)观察数码管显示的转速挡次和转动方向。
(2)通过按键控制步进电机的正转、反转、停止和转速调节。
(3)观察步进电机的转动情况,验证控制程序的正确性。
五、实验结果与分析1. 实验结果(1)通过按键控制步进电机的正转、反转、停止和转速调节。
(2)数码管显示转速挡次和转动方向。
(3)步进电机按照设定的方向和转速转动。
2. 实验分析(1)通过实验验证了单片机控制步进电机的可行性。
(2)实验结果表明,控制程序能够实现步进电机的正转、反转、停止和转速调节等功能。
(3)实验过程中,需要对步进电机驱动模块进行合理设计,以确保步进电机的稳定运行。
步进电机控制实训报告

一、实训背景随着科技的飞速发展,步进电机在工业自动化、精密定位、医疗设备等领域得到了广泛的应用。
为了深入了解步进电机的原理和应用,提高自身的动手实践能力,我们进行了步进电机控制实训。
二、实训目标1. 理解步进电机的原理和工作方式。
2. 掌握步进电机的驱动方法和控制方法。
3. 学会使用单片机对步进电机进行编程和控制。
4. 提高团队协作能力和问题解决能力。
三、实训内容1. 步进电机原理步进电机是一种将电脉冲信号转换为角位移或线位移的执行元件。
其特点是响应速度快、定位精度高、控制简单。
步进电机每输入一个脉冲信号,就转动一个固定的角度,称为步距角。
步距角的大小取决于电机的结构,常见的步距角有1.8度、0.9度等。
2. 步进电机驱动步进电机的驱动通常采用步进电机驱动器。
驱动器将单片机输出的脉冲信号转换为驱动步进电机的电流信号,实现对步进电机的控制。
常见的驱动器有L298、A4988等。
3. 单片机控制本实训采用AT89C51单片机作为控制核心。
通过编写程序,控制单片机输出脉冲信号,实现对步进电机的正转、反转、停止、速度等控制。
4. 实训步骤(1)搭建步进电机驱动电路,连接单片机、步进电机、按键等外围设备。
(2)编写程序,实现以下功能:- 正转、反转控制;- 速度控制;- 停止控制;- 按键控制。
(3)使用Proteus仿真软件进行程序调试,验证程序的正确性。
(4)将程序烧录到单片机中,进行实际硬件测试。
四、实训结果与分析1. 正转、反转控制通过编写程序,实现了对步进电机的正转和反转控制。
在Proteus仿真软件中,可以观察到步进电机按照设定的方向转动。
2. 速度控制通过调整脉冲信号的频率,实现了对步进电机转速的控制。
在Proteus仿真软件中,可以观察到步进电机的转速随脉冲频率的变化而变化。
3. 停止控制通过编写程序,实现了对步进电机的停止控制。
在Proteus仿真软件中,可以观察到步进电机在停止信号后立即停止转动。
单片机步进电机控制实训报告

单片机步进电机控制实训报告一、引言随着工业自动化技术的不断发展,步进电机作为一种能够将电脉冲转化为机械转动的装置,在各种自动化控制系统中得到了广泛的应用。
而单片机作为现代电子计算机技术的重要分支,具有体积小、价格低、抗干扰能力强等特点,被广泛应用于各类电机的控制中。
本次实训旨在通过单片机实现对步进电机的控制,加深对步进电机和单片机理论知识的理解,提高实际操作技能。
二、实验目标本次实训的目标是通过单片机控制步进电机,实现电机的正转、反转、停转等操作。
同时,通过对电机的控制,进一步了解步进电机的特性和工作原理。
三、实验原理步进电机是一种将电脉冲转化为机械转动的装置。
当给步进电机施加一个电脉冲信号时,电机就会转动一个固定的角度,这个角度通常称为“步进角”。
通过控制电脉冲的数量和频率,可以实现对电机的速度和位置的控制。
而单片机的GPIO口可以输出高低电平信号,通过控制输出信号的频率和占空比,可以实现对步进电机的控制。
四、实验步骤1、准备器材:单片机开发板、步进电机、杜邦线、面包板、焊锡等。
2、连接电路:将步进电机连接到单片机开发板上,使用杜邦线连接电源和信号接口。
3、编写程序:使用C语言编写程序,通过单片机控制GPIO口输出电脉冲信号,控制步进电机的转动。
4、调试程序:在调试过程中,需要不断调整程序中的参数,观察电机的反应,直到达到预期效果。
5、测试结果:完成程序调试后,进行实际测试,观察步进电机是否能够实现正转、反转、停转等操作。
五、实验结果及分析通过本次实训,我们成功地实现了通过单片机控制步进电机的正转、反转、停转等操作。
在实验过程中,我们发现步进电机的转速和方向可以通过改变单片机输出信号的频率和占空比来控制。
我们还发现步进电机具有较高的精度和稳定性,适用于需要精确控制的位置和速度控制系统。
六、结论与展望通过本次实训,我们深入了解了步进电机的工作原理和单片机的应用。
实践证明,单片机控制步进电机是一种高效、精确、可靠的方法。
步进电机单片机实习报告

步进电机单片机实习报告一、实习目的本次实习旨在将所学理论知识与实际操作相结合,深入理解步进电机的工作原理和单片机控制技术。
通过实习,锻炼自己的动手能力,提高自己在电机控制领域的实践经验,为将来的学习和工作打下坚实的基础。
二、实习内容1. 步进电机的基本原理及其特性步进电机是一种将电脉冲信号转换为机械角位移的电机。
每接收到一个脉冲信号,步进电机就转动一个固定的角度(步距角)。
步进电机的转速、停止位置取决于脉冲信号的频率和脉冲数,而与负载无关。
通过控制脉冲个数,可以实现对步进电机角位移的精确控制;通过控制脉冲频率,可以实现对电机转速和加速度的控制。
2. 单片机控制步进电机的基本原理及方法单片机控制步进电机主要通过单片机发出的脉冲信号来驱动步进电机。
单片机根据程序的指令,控制步进电机的转向、速度和步数。
通过改变单片机发出的脉冲信号的频率和脉冲数,可以实现对步进电机运动状态的精确控制。
3. 实习过程(1)搭建步进电机和单片机的控制系统硬件平台,包括步进电机驱动器、电源、控制电路等。
(2)编写单片机控制程序,实现对步进电机的转向、速度和步数的控制。
(3)通过实验验证程序的正确性,并对程序进行优化和改进。
三、实习心得与体会本次实习使我深入理解了步进电机的工作原理和单片机控制技术,提高了自己在电机控制领域的实践经验。
在实习过程中,我学会了如何搭建步进电机和单片机的控制系统硬件平台,掌握了编写单片机控制程序的基本方法。
同时,通过实验验证程序的正确性,我对步进电机的控制有了更深刻的认识。
此外,实习过程中我意识到理论知识与实际操作的重要性。
在实际操作中,我发现理论知识能够为解决问题提供指导,而实际操作则能够加深对理论知识的理解。
在未来的学习中,我将更加注重理论知识的学习,努力提高自己的实践能力。
四、总结通过本次实习,我对步进电机和单片机控制技术有了更深入的了解,收获颇丰。
在今后的学习和工作中,我将继续努力提高自己在电机控制领域的实践经验,为实现理论知识与实际操作的有机结合而努力。
控制步进电机实验报告(3篇)

第1篇一、实验目的1. 理解步进电机的工作原理及控制方法。
2. 掌握单片机与步进电机驱动模块的接口连接方法。
3. 学习使用C语言编写程序,实现对步进电机的正反转、转速和定位控制。
4. 通过实验,加深对单片机控制系统的理解。
二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是控制精度高、响应速度快、定位准确。
步进电机控制实验主要涉及以下几个方面:1. 步进电机驱动模块:常用的驱动模块有ULN2003、A4988等,它们可以将单片机的数字信号转换为步进电机的控制信号。
2. 单片机:单片机是整个控制系统的核心,负责接收按键输入、处理数据、控制步进电机驱动模块等。
3. 步进电机:步进电机分为单相、双相和三相等类型,本实验使用的是双相四线步进电机。
三、实验设备1. 单片机开发板:例如STC89C52、STM32等。
2. 步进电机驱动模块:例如ULN2003、A4988等。
3. 双相四线步进电机。
4. 按键。
5. 数码管。
6. 电阻、电容等元件。
7. 电源。
四、实验步骤1. 硬件连接(1)将步进电机驱动模块的输入端(IN1、IN2、IN3、IN4)分别连接到单片机的P1.0、P1.1、P1.2、P1.3口。
(2)将按键的输入端连接到单片机的P3.0口。
(3)将数码管的段选端连接到单片机的P2口。
(4)将步进电机驱动模块的电源端连接到电源。
(5)将步进电机连接到驱动模块的输出端。
2. 编写程序(1)初始化单片机I/O端口,设置P1口为输出端口,P3.0口为输入端口,P2口为输出端口。
(2)编写按键扫描函数,用于读取按键状态。
(3)编写步进电机控制函数,实现正反转、转速和定位控制。
(4)编写主函数,实现以下功能:a. 初始化数码管显示;b. 读取按键状态;c. 根据按键状态调用步进电机控制函数;d. 更新数码管显示。
3. 调试程序(1)将程序烧写到单片机中;(2)打开电源,观察数码管显示和步进电机运行状态;(3)根据需要调整程序,实现不同的控制效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D
1
1
0
0
0
2
0
1
0
0
3
0
0
1
4
0
0
0
1
设计环境介绍
本次设计使用的软件有电路绘制软件Proteus和C语言的转换软件Keil。我们最终完成的硬件设计要通过Proteus将之绘制成电路图。Proteus软件的使用方法,我们通过在网上找相关的资料,可以很容易的学习。Keil这个软件,我们只是粗略的了解大概,将我们所写的C语言程序转换成我所需要的HEX格式的文件,即可。
SPEED:
JB ACC.2,SPEED0 ;判定转速开关
JB ACC.3,SPEED1
JB ACC.4,SPEED2
JB ACC.5,SPEED3
JB ACC.6,SPEED4
JB ACC.7,SPEED5
AJMP READ ;无任何速度开,则重读开关
SPEED0: MOV R6,#61H ;设置转速0常数
步进电动机有如下特点:
①步进电动机的角位移与输入脉冲数严格成正比。因此,当它转一圈后,没有累计误差,具有良好的跟随性。
②由步进电动机与驱动电路组成的开环数控系统,既简单、廉价,叉非常可靠。同时,它也可以与角度反馈环节组成高性能的闭环数控系统。
③步进电动机的动态响应快,易于启停、正反转及变速。
④速度可在相当宽的范围内平稳调整,低速下仍能获得较大转矩,因此一般可以不用减速器而直接驱动负载。
单片机课程设计——
步进电动机系统实训报告
李会民
电子工程系应用电子高职(3)08-1班
二00九年十二月
步进电机控制实训报告
一、实验要求
利用P0输出脉冲序列,74LS244输入开关量,开关K2-K8控制步进电机转换(分6挡).K0,K1控制步进电机转向.必须要K2-K8中一开关和K0,K1中一开关同时为‵1′时步进电机才启动,其他情况步进电机不工作.
NEG: POP PSW
RRC A ;改变相位
SSS:
PUSH PSW
MOV R5,A ;保存相位
ANL A,#07H
MOVX @DPTR,A ;相位输出
AJMP READ
DELAY: ;延时子程序
MOV R0,#40H
delay1: mov r1,#04fh
djnz r1,$
DJNZ R0,delay1
四、实验说明
(a)本实验使用的步进电机用直流+12V电压,电机线圈由A,B,C,D四相组成.
(b)驱动方式为四相四拍方式,各线圈通电顺序如下表.按表中顺序切换,电机按顺时针方向旋转,若通点顺序相反,则电机轴按逆时针方向旋转.
(注:为提高步进电机负载能力和运行平稳,可使用四相八拍驱动方式)
顺序/相
A
B
MOVX A,@DPTR ;读开关状态
JB ACC.0,DIRECT0 ;判断转动方向
JB ACC.1,DIRECT1 ;
SJMP READ ;正反向开关均未开则重读开关
DIRECT0: MOV R7,#00H ;设置方向标志
SJMP SPEED
DIRECT1: MOV R7,#0FFH ;设置方向标志
SPEED5: MOV R6,#09H ;设置转速5常数来自MOV B,R6WAVE:
LCALL DELAY ;延时,决定转速
DJNZ R6,WAVE
MOV DPTR,#PO ;置输出口地址
MOV A,R5
CJNE R7,#00H,NEG ;判断转向标志
POP PSW
RLC A ;改变相位
SJMP SSS
RET
END
五、实验框图
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
六、步进电机资料
步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变成角位移,即给一个脉冲,步进电机就转一个角度,因此非常适合单片机控制。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,电机则转过一个步距角,同时步进电机只有周期性的误差而无累积误差,精度高。
AJMP WAVE
SPEED1: MOV R6,#51H ;设置转速1常数
AJMP WAVE
SPEED2: MOV R6,#31H ;设置转速2常数
AJMP WAVE
SPEED3: MOV R6,#21H ;设置转速3常数
AJMP WAVE
SPEED4: MOV R6,#11H ;设置转速4常数
AJMP WAVE
步进电机驱动原理是通过对它每线圈中的电流的顺序切换来使电机作步进式旋转.驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速.微电脑控制电机步进电机最合适.
二、实验目的
(a)了解步进电机控制的基本原理
(b)掌握控制步进电机转动编程方法
三、单片机控制原理及电路连线
单片机是用来为步进电机进行控制的,给电机提供时序脉冲,让电机以某一种方式进行运转。硬件部分设计
AT89C51外围电路设计包含有三部分的设计:键盘模块,晶振模块及复位模块。
通过按键的输入,单片机作为控制的中心决定步进电机的正转,反转,启动及停止等操作。同时通过单片机实现电子时钟控制步进电机。
键盘设计。考虑有两种方式:需要上拉电阻的方式和不需要上拉电阻的方式。由于单片内部设有小的上拉电阻,当外围电路很小时,是可以不考虑前一种方式的。我们的键盘只是起到输入时序的作用,并没有外带大的电路,所以我们选择第二种方式:
⑤步进电机只能通过脉冲电源供电才能运行,不能直接使用交流电源和直流电源。
⑥步进电机存在振荡和失步现象,必须对控制系统和机械负载采取相应措施。
步进电机在低频工作时.会有振动大、噪声大的缺点。如果使用细分方式,就能很好的解决这个问题。步进电机的细分控制,从本质上讲是通过对步进电机励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电机步距角的细分。一般情况下,合成磁场矢量的幅值决定了步进电机旋转力矩的大小,相邻两合成磁场矢量之间的夹角大小决定了步距角的大小。步进电机半步工作方式就蕴涵了细分的工作原理。
设计软件部分
PI EQU 8200H ;开关输入口地址
PO EQU 8300H ;输出口地址
ORG 0000H
SJMP START
ORG 0040H
START:
MOV SP,#60H
CLR C
PUSH PSW
MOV R5,#10010010B ;R5与C一起组成状态存储器
READ:
MOV DPTR,#PI
当K_1按下时:步进电机处于启动状态;
当K_2按下时:步进电机处于停止状态;
当K_3按下时:步进电机处于正向状态;
当K_4按下时:步进电机处于反向状态;
基于AT89C51的步进电机驱动器控制系统电路原理可以表示为如下图:
在AT89C51外围设有键盘模块,对单片机输入时序脉冲,不仅让单片机正常工作,而且使之输出可以使电机工作的时序脉冲。这便实现了单片机对步进电机驱动系统的控制。控制信号的来源是按键的按与松,按键输入的时序经AT89C51处理后输出给电机驱动电路。