单片机课设步进电机控制正反转
51单片机步进电机正反转停止实验[1]
![51单片机步进电机正反转停止实验[1]](https://img.taocdn.com/s3/m/7536206ea45177232f60a221.png)
51单片机步进电机正反转停止实验 - C51源代码#include <reg51.h> //51芯片管脚定义头文件#include <intrins.h> //内部包含延时函数 _nop_();#define uchar unsigned char#define uint unsigned intuchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正转编码uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反转编码sbit K1 = P3^2; //正转sbit K2 = P3^3; //反转sbit K3 = P3^4; //停止sbit BEEP = P3^6; //蜂鸣器/********************************************************//*/* 延时t毫秒/* 11.0592MHz时钟,延时约1ms/*/********************************************************/void delay(uint t){uint k;while(t--){for(k=0; k<125; k++){ }}}/**********************************************************/void delayB(uchar x) //x*0.14MS{uchar i;while(x--){for (i=0; i<13; i++){ }}}/**********************************************************/void beep(){uchar i;for (i=0;i<100;i++){delayB(4);BEEP=!BEEP; //BEEP取反}BEEP=1; //关闭蜂鸣器}/********************************************************//*/*步进电机正转/*/********************************************************/ void motor_ffw(){uchar i;uint j;for (j=0; j<8; j++) //转1*n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = FFW[i]; //取数据delay(2); //调节转速}}}/********************************************************/ /*/*步进电机反转/*/********************************************************/ void motor_rev(){uchar i;uint j;for (j=0; j<8; j++) //转1×n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = REV[i]; //取数据delay(2); //调节转速}}}/******************************************************** ** 主程序**********************************************************/ main(){uchar r,N=64; //N 步进电机运转圈数while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ffw(); //电机正转if(K3==0){beep();break;} //退出此循环程序}}else if(K2==0){beep();for(r=0;r<N;r++){motor_rev(); //电机反转if(K3==0){beep();break;} //退出此循环程序}}elseP1 = 0xf0;}}/********************************************************/按实验板上的K1按键步进电机正转按实验板上的K2按键步进电机反转按实验板上的K3按键步进电机停止。
单片机课程设计步进电机正反转

单片机课程设计课题:单片机控制步进电机正反转设计系别:物理与电气工程学院专业:电气工程与其自动化姓名:陈玉琦(组长)学号:1411540指导老师:陈永超目录一.设计目的··4二.设计要求··4三.总体设计思路··4四.硬件设计··51 系统复位电路··52 系统时钟电路··63 系统电机与驱动部分··74 系统的显示电路··8五.软件设计··91 主程序的设计··92 显示子程序的设计··10六.整体电路图··14七.电路仿真··15八.设计总结··16附录··18参考文献··21步进电机正反转设计一、设计目的目的:系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。
培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案;任务:完成所选题目的分析与设计,达到技术性能要求。
提交正式课程设计总结报告一份。
二、设计要求:1.具有速度和转向设定功能。
2.设置开始、停止以与正反转键。
3.转速以与转向由数码管显示。
三、总体设计思路方案与思路因为步进电机的控制是通过脉冲信号来控制的,将电脉冲信号转变为角位移或线位移的开环控制元件。
所以怎样产生这个脉冲信号和产生怎样的信号是电机控制的关键。
用软件控制单片机产生脉冲信号,通过单片机的P1口输出脉冲信号,因为所选电机是两相的,所以只需要P1口的低四位P1.0~P1.3分别接到电机的四根电线上。
可以通过调整输出脉冲的频率来调整电机的转速,通过改变输入脉冲的顺序来改变转动方向,P0口接LED数码管,可以显示当前的电机转速和转向,设置复位键可使正在转动的电机停止转动,大概可分为如下图所示的几部分。
步进电机正反转控制实现

任务(课题)名称任务1 步进电机的基本运行授课班级课型理实一体化课时 4 授课时间任务(教学内容)描述本任务主要学习步进电机的结构及工作过程;反向器ULN2003的应用等内容。
教学目标知识目标理解四相六线步进电机的工作过程;理解反向器ULN2003的应用。
能力目标会编写步进电机的基本运行程序;会绘制步进电机的控制电路图;会调试仿真步进电机的基本运行程序及电路。
情感态度与价值观目标培养学生自主讨论学习的能力;教学重难点重点四相六线步进电机的基本运行程序编写;难点四相六线步进电机的工作过程;教学方法讲授法、分组讨论教学资源多媒体教学设备、PPT、EDA仿真机房教学过程教学环节教学内容知识点与技能点一、布置任务任务描述单片机控制四相六线步进电机,先正转5圈,再反转5圈,然后停止。
二、新课讲解1.步进电机的分类进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。
电磁式步进电机可分为反应式(VR)、永磁式(PM)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。
目前使用最为广泛的为反应式和混合式步进电机。
ADD C来选通一路。
2.步进电机的结构及工作原理开始时,开关 SB 接通电源,SA、SC、SD断开,B 相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和 D、A 相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D 四相绕组轮流供电,则转子会沿着 A、B、C、D 方向转动。
3.七路反向器ULN2003AULN2003A是一个7路反向器,当输入端为高电平时ULN2003A输出端为低电平,当输入端为低电平时ULN2003A输出端为高电平。
单片机课程设计-单片机控制步进电机

单片机课程设计-单片机控制步进电机单片机课程设计单片机控制步进电机一、引言在现代自动化控制领域,步进电机以其精确的定位和可控的转动角度,成为了众多应用场景中的关键组件。
而单片机作为一种灵活、高效的控制核心,能够实现对步进电机的精确控制,为各种系统提供了可靠的动力支持。
本次课程设计旨在深入研究如何利用单片机来有效地控制步进电机,实现特定的运动需求。
二、步进电机的工作原理步进电机是一种将电脉冲信号转换为角位移或线位移的开环控制电机。
它由定子和转子组成,定子上有若干个磁极,磁极上绕有绕组。
当给绕组依次通电时,定子会产生磁场,吸引转子转动一定的角度。
通过控制通电的顺序和脉冲数量,可以精确地控制电机的转动角度和速度。
三、单片机控制步进电机的硬件设计(一)单片机的选择在本次设计中,我们选用了常见的_____单片机。
它具有丰富的引脚资源、较高的运算速度和稳定的性能,能够满足控制步进电机的需求。
(二)驱动电路为了驱动步进电机,需要使用专门的驱动芯片或驱动电路。
常见的驱动方式有全桥驱动和双全桥驱动。
我们采用了_____驱动芯片,通过单片机的引脚输出控制信号来控制驱动芯片的工作状态,从而实现对步进电机的驱动。
(三)接口电路将单片机的引脚与驱动电路进行连接,需要设计合理的接口电路。
接口电路要考虑信号的电平匹配、抗干扰等因素,以确保控制信号的稳定传输。
四、单片机控制步进电机的软件设计(一)控制算法在软件设计中,关键是确定控制步进电机的算法。
常见的控制算法有脉冲分配法和步距角细分法。
脉冲分配法是根据电机的相数和通电顺序,按照一定的时间间隔依次输出控制脉冲。
步距角细分法则是通过在相邻的两个通电状态之间插入中间状态,来减小步距角,提高电机的转动精度。
(二)程序流程首先,需要对单片机进行初始化设置,包括引脚配置、定时器设置等。
然后,根据用户的输入或预设的运动模式,计算出需要输出的脉冲数量和频率。
通过定时器中断来产生控制脉冲,并按照预定的顺序输出到驱动电路。
基于51单片机的步进电机正反转可控设计与仿真

2020.19设计研发基于51单片机的步进电机正反转可控设计与仿真李建中(江苏省海门中等专业学校,江苏南通,226100)摘要:步进电机是伺服控制中的关键部件,对步进电机进行精确高效地控制,是实现精密运动、制造等的重要手段。
釆用51单片机作为电机的控制核心-ULN2003A作为电机的驱动芯片,选用额定电压为5V的小型步进电机,设置正转、反转、停止、加速、减速5个按钮,其中正转、反转和停止均有对应的LED指示灯。
通过Keil进行控制程序的编写,在Proteus 中进行仿真电路的连接,结果表明:电路设计正确;步进电机能够根据按钮指令进行运转,达到了设计预期;系统可应用于某些需要高精度控制的场合。
关键词:步进电机;51单片机;ULN2003A;Keil;ProteusDesign and Simulation of Positive and Negative Rotation ofStepping Motor Based on51Single Chip MicrocomputerLi Jianzhong(Jiangsu Province Haimen Secondary Vocational School,Narrtong Jiangsu,226100)Abst r act;St epper motor is the key compone n t in servo cont r ol.It is an import a n t means to realize precise motion and manufacture to control stepping motor accurately and efficiently.51single chip microcomputer is used as the cont r ol core of the mot o r,uln2003a is used as the driving chip of the motor,the small st e pping motor with:r ated volt a ge of5V is selec t ed,and five buttons of forward rotation,reverse rotation,stop,acceleration and deceleration are set,and the corresponding LED indicator lights are used for forward rotation,reverse rotation and stop.The resuIts show that:the circuit design is correct;the stepper motor can operate according to the button command,which meets the design expectation;the system can be applied to some occasions requiring high-precision control.Keywords:stepper motor;51single chip microcomputer;ULN2003A;Keil;Proteus0引言步进电机在工业制造、数控机床、各种伺服系统中均有应用。
基于单片机原理的步进电机的正反转程89397460

电机控制课程设计报告书题目基于单片机原理的步进电机的正反转目录目录 (1)摘要 (1)1.概述 (2)1.1课程设计的任务和要求 (2)1.2设计思路框架 (3)1.3设计方案的模块解释 (3)2.系统硬件设计 (3)2.1单片机最小系统原理介绍 (3)2.1.1 AT89C51的工作原理 (4)2.1.2复位电路的工作原理 (7)2.1.3晶振电路的工作原理 (8)2.2电机驱动电路原理介绍 (9)3.系统软件设计 (10)3.1系统流程图 (10)3.2系统程序分析 (11)4.调试过程与结果 (19)5.总结与体会 (20)6.参考资料 (21)7.附录 (22)摘要介绍了步进电机正反转控制原理及其接口驱动控制电路,编制了基于MCS-51单片机的步进电机正反转控制的子程序,并应用wave软件进行了仿真。
证明在并行口控制中,可以利用软件实现环行脉冲分配,实现程序较简单,同时还可以节省硬件投资。
结合单片机控制步进电动机的实际工作环境,从提高控制系统运行的可靠性角度,讨论了实际应用的软件抗干扰技术。
关键词单片机;步进电机;正反转控制1.概 述1.1课程设计的任务和要求电机控制课程设计是考察学生利用所学过的电机控制专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。
最终形成一篇符合规范的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。
本次设计考核的能力主要有:专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电机与拖动、微特电机及其驱动、计算机高级语言、计算机辅助设计、计算机办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。
项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT 汇报与口头表达能力。
电气与自动化系统的设计与实际应用能力。
单片机课程设计步进电机

单片机课程设计-步进电机江南大学物联网工程学院课程设计报告课程名称:单片机原理及应用设计题目:基于单片机的步进电机控制器设计班级:姓名:学号:指导教师:评分:年月日基于单片机的步进电机控制器设计摘要:本设计是用80C52单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C 语言编程设计来进行步进电机的控制。
通过人手动按开关实现步进电机的启动与停止、步进电机的正转反转,加速及减速等功能,此外还有LCD 数码管进行实时显示功能。
同时本文也通过了proteus软件的仿真,在仿真结果中能看出近似真实的效果。
经过proteus仿真,结果表明,系统实现了要求。
该系统电路简单,可靠性强,运行稳定。
关键词:步进电机单片机LCD proteus 仿真1课题主要研究内容和要求本设计采用单片机80C52来作为整个步进电机控制系统的运动控制核心部件。
所选的步进电机是四相五线的,由于步进电机需要高功率驱动,单片机不能与步进电机直接相连,因此我们需要采用了电机驱动芯片ULN2003连接步进电机和单片机。
为了显示步进电机转速,我用数码管来显示速率。
再加上一些独立按键来实现步进电机调速、改变转向的功能。
这样就构成了一个基本的步进电机控制系统。
系统的具体功能和要求如下:1、电机转速可以平稳控制;2、通过键盘和显示器可以设置电机的转速;3、能显示电机的运动趋势;2所需仪器设备所需器件备注所需器件备注STC89C52一片12M晶振一个单片机ULN2003驱一片按键五个动芯片八位共阳数一片异步电机一个码管芯片不同阻值电若干+5V电源一个阻30pF电容两个3系统总体设计本设计的硬件电路包括独立按键控制模块、步进电机驱动模块、数码管显示模块和单片机最小系统四部分。
单片机最小系统由时钟电路和复位电路组成,保证单片机正常运行;独立按键控制模块由开关和按键组成,当按下按键时,该系统就按照该按键控制的功能运作;显示模块主要是为了显示电机的工作状态和转速;驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。
基于51单片机控制步进电机正反转

基于51单片机控制步进电机正反转此次采用uln2003模块来链接步进电机;## 步进电机工作原理步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。
每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。
步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。
因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。
因此这种通电方式叫做四相单四拍工作方式。
1.电机正转代码unsigned char code tableZ[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};2.电机反转代码unsigned char code tableF[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};代码如下#include <reg52.h>#define uint unsigned int #define uchar unsigned charunsigned char code tableZ[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};unsigned char code tableF[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};//²½½øµç»úzhengvoid delay(unsigned int t);sbit S3=P3^4; //反转sbit S4=P3^5; //反停sbit S5=P3^6; // 正停//正转写入数据void motor_z() { unsigned char i,j; for (i=0; i<8; i++) { if(S5==0){break;} for(j=0;j<8;j++){ P1 = tableZ[i]&0x1f; delay(50); } } }//反转写入数据void motor_f(){ unsigned char i,j; for (i=0; i<8; i++) { if(S4==0){break;} for(j=0;j<8;j++){ P1 = tableF[i]&0x1f;delay(50); } }}void delay(unsigned int t)//延时函数{ unsigned int k; while(t--) { for(k=0; k<60; k++) { } }}void main(){while(1){motor_z();if(S3 == 0){motor_f();}}}•1•2•3•4•5•6•7•8•9•10•11•12•13•14•15•16•17•18•19•20•21•22•23•24•25•26•27•29 •30 •31 •32 •33 •34 •35 •36 •37 •38 •39 •40 •41 •42 •43 •44 •45 •46 •47 •48 •49 •50 •51 •52 •53 •54 •55 •56 •1•3 •4 •5 •6 •7 •8 •9 •10 •11 •12 •13 •14 •15 •16 •17 •18 •19 •20 •21 •22 •23 •24 •25 •26 •27 •28 •29 •30 •31•33•34•35•36•37•38•39•40•41•42•43•44•45•46•47•48•49•50•51•52•53•54•55•56protel仿真图如下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告设计题目:步进电机控制系统学院自动化与信息工程学院专业电气工程及其自动化班级姓名学号指导教师王水鱼2010 年秋季学期平时(10%)任务完成(30%)答辩(30%)课设报告(30%)总评成绩目录1.设计目的 (2)2.设计的主要内容和要求 (2)3.题目及要求功能分析 (2)4.设计方案 (5)4.1 整体方案 (5)4.2 具体方案 (5)5.硬件电路的设计 (6)5.1 硬件线路 (6)5.2 工作原理 (7)5.3 操作时序 (8)6. 软件设计 (8)6.1 软件结构 (8)6.2 程序流程 (9)6.3 源程序清单 (9)7. 系统仿真 (9)8. 使用说明 (10)9. 设计总结 (10)参考文献 (11)附录 (12)步进电机的控制1.设计目的(1)熟悉单片机编程原理。
(2)熟练掌握51单片机的控制电路和最小系统。
(3)单片机基本应用系统的设计方法。
2.设计的主要内容和要求(1)查阅资料,了解步进电机的工作原理。
(2)通过单片机给参数控制电机的转动。
(3)通过按钮控制启停及反转。
(4)其他功能。
3.题目及要求功能分析步进电机:步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,利用其精度高等特点,广泛应用于各种工业控制系统中。
三相单、双六拍步进电机的结构和工作原理:三相单、双六拍步进电机通电方式:这种方式的通电顺序是:U-U V-V-VW-W-WU-U或为U-UW-W-WV-V-VU-U。
按前一种顺序通电,即先接通U相定子绕组;接着是U、V两相定子绕组同时通电;断开U相,使V相绕组单独通电;再使V、W两相定子绕组同时通电;W 相单独通电;W、U两相同时通电,并依次循环。
这种工作方式下,定子三相绕组需经过六次切换才能完成一个循环,故称为“六拍”,而“单、双六拍”则是因为单相绕组与两相绕组交替接通的通电方式。
步进电机的驱动电源步进电机应由专用的驱动电源来供电,由驱动电源和步进电机组成一套伺服装置来驱动负载工作。
步进电机的驱动电源,主要包括边频信号源、脉冲分配器和脉冲放大器等三个部分,如图1-4所示。
边频信号源是一个频率从几十赫兹到几千赫兹的可连续变化的信号发生器。
变频信号员可以采用多种线路。
最常见的有多谐振荡器和单结晶体管构成的驰张振荡器两种。
它们都是通过调节电阻和电容的大小来改变电容充放电的时间常数,以达到选取脉冲信号频率的目的。
脉冲分配器是由门电路和双稳态处发起组成的逻辑电路,它根据指令把脉冲信号按一定的逻辑关系加到放大器上,使步进电机按一定的运行方式运转。
步进电机的钉子绕组可以是任意相数,常有三相制,四相制,五相制,六相制4种。
根据转子结构不同,步进电机分为3种:反应式步进电机(VR)、永磁式步进电机(PM)和混合式步进电机(HB)。
其中反应式步进电机结构最为简单,应用最广泛。
绕组通电方式通常有单排方式、双拍方式和单双拍方式3种。
通过软件编程,用单片实现步进电机控制的脉冲分配;实现步进电机的正常工作。
根据题目要求,开机后,电机不转,按下前进,后退,左转,右转任意一按钮,电机按设置的方式转动,当按下停止按钮后,电机停止转动。
电机的不同转速通过设置延时时间常数来确定。
延时时间常数越小电机转速越快.反之越快。
4. 设计方案4.1 整体方案本系统主要是由AT89C51,步进电机控制器ULN2004,步进电机,通过单片机编程,实现步进电机控制的脉冲分配,使电机实现正转,反转以及停止等功能。
4.2具体实现方案根据系统要求画出单片机控制步进电机的控制框图,见下图(1)。
系统包括单片机、按键和步进电机。
(1)单片机控制步进电机的控制框图开始通电后,步进电机停止转动,单片机分别接有按钮开关K1,K2,K3,K4用来控制步进电机的不同转向,不同转速,当按下K1后,电机正转;当按下K2后,电机反转,当按下K3,电机停转。
为实现电机加速,减速,给电机设置不同延时时间常数,根据时间常数的不同,电机转速不同,延时时间常数越大,电机转速越慢,延时时间常数越小,电机转速越快。
5.硬件电路的设计5.1 硬件线路根据系统框图,可以设计出单片机控制步进电机的硬件电路图,电路图见附录图(2),图(3),图(4)为提高部分电5.2工作原理:单片机的选择,单片机的种类较多,选择时应根据控制系统的程序和数据量的大小来确定。
由于本系统控制简单,程序和数据量都不大,因此我们选用89C51单片机,89C51晶振频率采用12MHZ。
外接晶体引脚XTAL1和XTAL2①XTAL1:接外部晶体的一个引脚.在单片机内部,它是构成片内振荡器的反相放大器的输入端.当采用外部振荡器时,该引脚接受振荡器的信号,即把此信号直接接到内部时钟发生器的输入端.②XTAL2:接外部晶体的另一个引脚.在单片机内部,它是上述振荡器的反相放大器的输出端.采用外部振荡器时,此引脚应悬浮不连接.③单片机外接电路时钟产生产生和复位电路片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~12MHz之间选取。
C1、C2是反馈电容,其值在5pF~30pF之间选取,典型值为30pF。
本电路选用的电容为30pF,晶振频率为12MHz。
这样就确定了单片机的4个周期分别是:振荡周期=1/12sμ;机器周期(SM)=sμ1;指令周期=sμ41。
~晶振电路如下图所示。
按键采用5个功能,前进,后退,左转,右转按键分别接在单片机的P2.0至P2.4引脚上,用来控制步进电机的转向,作为控制信号的输入端键,按下不同键,电机按要求实现正转反转。
提高电路图,则用8个按键,K1至K6为设置电机的不同转速,K7和K8为电机的正转和反转。
驱动电路,单片机的输出电流太小,不能直接接与步进电机相连,需要增加驱动电路。
对于小直流0.5A的步进电机,可采用ULN2003类的驱动IC。
ULN2003的技术参数如下所示最大输出电压:50V。
最大连续输出电流:0.5A。
最大连续输入电流:25mA。
功率:1W。
如下图(4)为ULN2003系列驱动器的引脚图,左边1-7为输入端,接单片机P1口的输出端,引脚8接地;左侧10-16引脚为输出端,接步进电机,引脚9接电源5V,该驱动器可提供最高0.5A的电流。
正转采用1相激磁方式,反转采用一到俩相激磁方式。
5.3 操作时序按电路图再Proteus中连接号电路图,检查无误后导入程序,编译连接后进行仿真。
按不同的键实现不同的功能。
从而控制电机正转,反转,停止以及电机以不同的速度转动。
6. 软件设计6.1 软件结构对单片机的P2口设置堆栈,开始时步进电机停转,按键进行扫描,判断是否有按键按下,由于按键的时间特性,程序中加入了消抖程序,当判断按键按下时消除按键的抖动,按下不通的键跳至不同的转动模块,调用转动程序,转动程序通过查表实现,当执行完之后继续扫描看是否有按键按下,没有则继续当前循环,有则跳至相应的模块。
6.2 程序流程图附录(二)6.3 源程序清单程序采用ASM51汇编语言编写。
附录(三)7. 系统仿真连接好电路后,对程序进行装载编译连接后,仿真。
结果:按下前进按钮电机1正转,电机2反转按下后退按钮电机1反转,电机2正转按下左转按钮电机1正转,电机2正转按下右转按钮电机1反转,电机2反转注:步进电机控制模拟小车的轮子转动模型。
提高要求:按下K7,按下K1时电机正转且转速较快,当按下K1至K6不同键时,电机的转速不同,越来越慢。
按下K8,按下K1时电机正转且转速较快,当按下K1至K6不同键时,电机的转速不同,越来越慢。
8. 使用说明步进电机控制模拟小车使用说明,系统上有5个按键,每个按键都有不同的功能:按下前进按钮,电机1正转,电机2反转,小车前进按下后退按钮,电机1反转,电机2正转,小车后退按下左转按钮,电机1正转,电机2正转,小车左转按下右转按钮,电机1反转,电机2反转,小车后退9. 设计总结体会一周的课设很快的就结束了,本次课设主要以单片机为基础,用单片机来控制电机的转动,熟悉单片机的一般搭建电路,了解一般电子电路与单片机构成简单系统及简单编程的方法。
熟练掌握了KeilC51集成开发环境的使用方法,进一步加深对单片机常用指令的理解与运用。
能够较熟练的运用protues绘制电路原理图以及进行仿真。
以及keilc51和protues的联合调试。
在课设过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及常用编程设计思路技巧的掌握方面有了很大的提高。
同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习计算机方面的知识有极大的帮助,使我们积累实际电子制作经验,达到学以致用的目的,真正的吧理论和实践结合起来,让我们进一步体验到实践的重要性。
对我们以后的工作有很大的帮,同时锻炼了我们团队合做精。
同时非常感谢老师的细心指导,当我们遇到困难时,能及时给予我们帮助。
参考文献:[1]潘晓宁,朱耀东。
单片机程序设计实践教程[2]刘海宽,包建华。
单片机实验与实训教程[3]杨居义,马宁。
单片机原理与工程应用[4]胡健,刘玉宾。
单片机原理及接口技术实践教程[5]韩志军,刘新民。
单片机系统设计与应用实例[6]朱博,马鸣鹤。
单片机应用技术教程(3)程序流程图附录(二)硬件原理图(2)基本电路图(3)基本电路图(4)提高电路图附录(三)源程序QJ EQU P2.0 ; 前进HT EQU P2.1 ; 后退LZ EQU P2.2 ; 左转RZ EQU P2.3 ; 右转TZ EQU P2.4 ; 停止OUT EQU P1 ;p1口输出`;-----------------------------------------------------ORG 40HSTOPS1: ORL OUT,#0FFH ;步进电机停转LOOP: JNB QJ,ZZ1 ;判断是否按下前进按钮JNB HT,FZ1JNB LZ,LZ1JNB RZ,RZ1JNB TZ,STOPSJMP LOOP ;循环;----------------------------------------------ZZUAN: MOV R0,#00H ; 前进-----》1正转,2反转;制表初值ZZUAN1: MOV A,R0MOV DPTR,#TAB ;表指针MOVC A,@A+DPTR ;取表代码JZ ZZUAN ;是否取到结束码?MOV OUT,A ;从P1输出,前进JNB HT,FZ1JNB LZ,LZ1JNB RZ,RZ1JNB TZ,STOPSCALL DELAY ;步进电机转速INC R0 ;取下一个码JMP ZZUAN1;-------------------------------------------------FZUAN: MOV R0,#05H ; 后退-----》2正转,1反转FZUAN1: MOV A,R0MOV DPTR,#TABMOVC A,@A+DPTRJZ FZUAN;CPL AMOV OUT,AJNB QJ,ZZ1JNB LZ,LZ1JNB RZ,RZ1JNB TZ,STOPSCALL DELAYJMP FZUAN1;----------------------------------------------------ZZ1: CALL DELAY ;键盘去干扰;按前进按钮消除抖动JNB QJ,$ ;放开了前进按钮吗?CALL DELAY ;放开消除抖动JMP ZZUAN ;步进电机正转FZ1: CALL DELAYJNB HT,$CALL DELAYJMP FZUANLZ1: CALL DELAYJNB LZ,$CALL DELAYJMP LZUANRZ1: CALL DELAYJNB RZ,$CALL DELAYAJMP RZUANSTOPS: CALL DELAYJNB TZ,$CALL DELAYJMP STOPS1;-------------------------------------------------------LZUAN: MOV R0,#0AH ;左转-----》1,2正转LZUAN1: MOV A,R0MOV DPTR,#TABMOVC A,@A+DPTRJZ LZUAN;CPL AMOV OUT,AJNB QJ,ZZ1JNB HT,FZ1JNB RZ,RZ1JNB TZ,STOPSCALL DELAYINC R0JMP LZUAN1;-------------------------------------------------------RZUAN: MOV R0,#0fH ;右转---》1,2反转RZUAN1: MOV A,R0MOV DPTR,#TABMOVC A,@A+DPTRJZ RZUAN;CPL AMOV OUT,AJNB QJ,ZZ1JNB HT,FZ1JNB LZ,LZ1JNB TZ,STOPSCALL DELAYINC R0JMP RZUAN1;-------------------------------------------------DELAY: MOV R1,#255 ;延时D1: MOV R2,#255DJNZ R2,$DJNZ R1,D1RET;DelayS: MOV R5,#0AH;L1: MOV R6,#0FFH;Delay0: MOV R7,#0FFH;Delay1: DJNZ R7,Delay1; DJNZ R6,Delay0;DJNZ R5,L1;RET;-----------------------------------------------------TAB: DB 33H,96H,0CCH,69H,00H ;正转码DB 33H,69H,0CCH,96H,00H ;反转码DB 33H,66H,0CCH,99H,00H ;左转码DB 33H,99H,0CCH,66H,00H ;右转码END;。