基于单片机系统的步进电机控制毕业论文.doc_第1页
基于单片机系统的步进电机控制毕业论文.doc_第2页
基于单片机系统的步进电机控制毕业论文.doc_第3页
基于单片机系统的步进电机控制毕业论文.doc_第4页
基于单片机系统的步进电机控制毕业论文.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文论 文 题 目:基于单片机系统的步进电机控制 专 业 领 域: 电气自动化技术 指 导 教 师: 作 者 姓 名: 班 学 号: 二O一O年 十 月 十 日25摘 要单片计算机即单片微型计算机。由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。本文主要研究基于AT89C51 单片机的步进电机的驱动器控制,驱动系统采用74LS04和达林顿管,使步进电机可在智能化程序控制下完成正转、反转、转数设定等各种操作。文中在单片机与驱动器之间增加一级光电隔离可使步进电机具有更高的性能,同时把数字电路与驱动电路隔离开,避免了步进电机运行时所产生的冲击电压和电流干扰单片机。要想达到步进电动机的快速启停、高精度步进运行从而实现工业生产的控制,则采用单片机控制系统可将问题大大的简化。不仅能简化线路,降低成本,而且能大大的提高其可靠性。整个系统采用模块化设计,结构简单,可靠,通过人机交互换接口可实现各功能设置,操作简单,易于掌握。该系统可应用于步进电机在机电一体化控制等大多数场合。实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件步进电机。在这科技越来越发达的时代,人们对步进电动机控制技术的要求也越来越高。运用单片机对其高精度和智能化控制一直备受关注,对其高新技术的开发持续不断,单片机系统控制的研究具有很大的开发潜能!关键词:AT 89C51,步进电动机,智能化控制,单片机。目 录前 言1第一章 系统方案论证21.1 系统基本功能21.2设计方案介绍21.3 系统设计3第二章 硬件设计42.1 单元模块设计42.1.1 单片机AT89C51介绍42.1.2 步进电动机工作原理82.1.3 键盘输入块102.1.4 光电耦合器与驱动系统122.1.5 显示快132.2 单片机与步进电机的接口电路图15第三章 控制系统的软件设计173.1 程序设计流程图173.2 汇编程序18第四章 仿真与调试22第五章 结果分析22第六章 总结23致谢24参考文献25前 言前 言步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为数字式执行元件,相当于一个将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电动机具有结构简单、成本低、易于控制、吴累计误差和计算机接口方便等优点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单,被广泛应用于各种自动化控制系统中,但传统的控制电路存在许多不足之处,如低频振荡、易发热等缺点、噪声大、步距角较大、分辨率低等,往往满足不了工业上的精确定位和大扭矩控制。目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。现各界都运用单片机进行控制,并进行不断更新和完善,本研究主要采用AT80C51单片机控系统,并采用光电隔离技术,对其进一步的设计和研究。第一章 系统方案论证第一章 系统方案论证1.1 系统基本功能设计的步进电机控制器。要求内能从键盘上输入步进电机转数,控制步进电机的正反转及启停,并显示转数。具体要求如下:(1) 键盘设计09: 数字键。*:正逆转数设定完成后,按“*”启动步进电动机。#:清除设定为正转及转数为00。A:设定正逆转。按“A”键则LED指示灯亮,表示逆转,再按则LED只是等灭,表示正转。(2) 控制过程 送电时,设定为正转,显示器显示为“00”。 输入转数,显示器显示输入的转数,按“A”设定正逆转,LED指示灯亮表示逆转,LED指示灯灭表示正转,然后按“*”步进电动机开始运行。 步进电机每转一转,显示器减1,直至为00,步进电动机停止运转。 1.2设计方案介绍根据功能设计的要求本设计采用AT89C51单片机系统控制运用矩阵式键盘作为输入控制端驱动系统采用74LS04和达林顿管,使步进电机可在智能化程序控制下完成正转、反转、转数设定等各种操作。文中在单片机与驱动器之间增加一级光电隔离。可使步进电机具有更高的性能,同时把数字电路与驱动电路隔离开,避免了步进电机运行时所产生的冲击电压和电流干扰单片机。1.3 系统设计要想实现以上论述的功能只要通过P1口的键盘输入并按一定的顺序改变P0口输出的脉冲信号,从而改变步进电动机四端通电的状况,即可控制步进电机依选定的方向步进。同时通过显示器同步的显示相应数据。依据以上描述可画出控制系统的结构框图如图 1.1所示 键 盘单 片 机显 示步进电机控制图1.1 步进电机控制器结构框图控制系统包括:键盘输入模块、显示、指示模块以及步进电机控制及驱动模块。键盘输入模块主要完成数据输入及控制输入,显示模块完成转数的显示。步进电机模块主要是由单片机输出控制码到驱动机构控制步进电动机的运转。第二章 硬件设计第二章 硬件设计2.1 单元模块设计2.1.1 单片机AT89C51介绍AT89C51 是一种带4K 字节闪烁可编程可擦除只读存储器( FPEROMFalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8 位微处理器,俗称单片机。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.2 是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。 图2.2 AT89C51 芯片它有40 个管脚,分成两排,每一排各有20 个脚,其中左下角标有箭头的为第1 脚,然后按逆时针方向依次为第2 脚、第3 脚第40 脚。在40 个管脚中,其中有32 个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32 个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。AT89C51 单片机的功能:1主要特性:与MCS-51 兼容4K 字节可编程闪烁存储器寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部RAM32 可编程I/O 线两个16 位定时器/计数器5 个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2管脚说明(图2.3):图2.3 AT89C51 管脚分布VCC:供电电压,GND:接地。P0 口:P0 口为一个8 位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。当P1 口的管脚第一次写1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0 输出原码,此时P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的8 位双向I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的8 位双向I/O 口,P2 口缓冲器可接收,输出4 个TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。第15 页共35页P3 口:P3 口管脚是8 个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89C51 的一些特殊功能口。P3 口管脚备选功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0 外部输入)P3.5 T1(记时器1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE 只有在执行MOVX,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3振荡器特性:XTAL1 和XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.1.2 步进电动机工作原理(1) 步进电机控制系统组成如下图2.4图2.4用微型机控制步进电机原理系统图与传统步进控制器相比较有以下优点:1、 用微型机代替了步进控制器把并行二进制码转换成串行脉冲序列,并实现方向控制。2、只要负载是在步进电机允许的范围之内,每个脉冲将使电机转动一个固定的步距角度。3. 根据步距角的大小及实际走的步数,只要知道初始位置,便可知道步进电机的最终位置。(2) 步进电机控制系统原理A、脉冲序列的生成 图2.5 脉冲的生成脉冲幅值:由数字元件电平决定。 TTL 0 5V CMOS 0 10V 接通和断开时间可用延时的办法控制。要求:确保步进到位。B、方向控制步进电机旋转方向与内部绕组的通电顺序相关。 三相六拍,通电顺序为: 正转: ABBCCDDA AB 反转: ADDCCBBAAD改变通电顺序可以改变步进电机的转向 C、脉冲分配 实现脉冲分配(也就是通电换相控制)的方法有两种:软件法和硬件法本设计通过软件法实现脉冲分配,软件法是完全用软件的方式,按照给定的通电换相顺序,通过单片机的IO向驱动电路发出控制脉冲。该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。左图是该进电机工作原理示图。开始时,开关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方向转动。图2.6 步进电动机工作原理图四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。2.1.3 键盘输入块 (1) 矩阵式连接非编码键盘矩阵式又称为行列式。 在按键数量较多时,可以少占用IO线。用IO线组成行、列结构,行、列线不相通, 而是通过一个按键设置在行、列交叉点上来连通。 若需要设置NM 个按键,则需要MN根IO线 矩阵式键盘工作原理:4行4列键盘工作原理如图2.7所示: 键盘上的字符0123456789ABCDEF键值81H82H42H22H84H44H24H88H48H28H18H14H12H11H21H41H图2.7 44简单键盘结构 由图可见,16个键分两部分,十个数字键09;六个命令键AF。 对按键的识别由软件来完成。 用两个并行IO接口电路,采用步进式行扫描法。CPU每次通过接口对某一行Xi输出扫描信号0,然后输入列线Yj的状态来确定键闭合的位置。 列线Y接+5 V。无按键时,行X和列Y线断开,列线Y1Y4呈现高电平。当某一按键闭合时,该键所在行、列线短接。若该行线输出为0,则该列线电平被拉成0(其余3根列线仍为1),此时CPU可判断出按键闭合所在行、列及键号。 (2) 本控制系统的键盘设计如下图2.8所示 键 盘键 盘 内 码123A456B789C*0#D0102030C0405060D0708090E0A000B0F 图2.8 控制步进电机键盘的设计2.1.4 光电耦合器与驱动系统(1) 4N25光电耦合器光电耦合器是把发光器件和光敏器件组装在一起,通过光线实现耦合,构成电一光一电的转换器件。将电信号送入光电耦合器输入端的发光器件时,发光器件将电信号转换成光信号,光信号经光接收器接收,并将共还原成电信号。由于输出与输入之间没有直接的电气联系,信号传输是通过光耦合的,所以也称为光电隔离器。其结构如图2.9 图2.9 光电耦合器机构图光电耦合器由发光源和受光器两部分组成,并封闭在同一不透明的管壳内由绝缘的透明树脂隔开,发光源引出的管脚为输入端,受光器引出的管脚为输出端. 光电隅合器的发光源常用砷化镓红外发光二极管,受光器常用光电三极管、光敏晶闸管和光敏集成电路等。光电耦合器具有以下特点,首先其信号传递采取电一光一电的形式,发光部分和受光部分不接触,因此具有很高的绝缘电阻,可以达到1010欧姆以上。并能承受2000伏以上的高压,因而被耦合的两个部分可以自成系统也不需要“共地”,绝缘和隔离性都很好,能够避免输出端对输入端可能产个的反馈和干扰。其次光电耦合器的发光二极管是电流驱动器件,动态电阻很小,对系统内外的噪音干扰信号形成低阻抗旁路,所以有很强的抑制噪音下扰能力。 最后光电耦合器作为开关应用时,具有耐用、可靠性高和速度快等优点,响应时间一般为数us以内,高速型光电耦合器的响应时间有的甚至小于10ns。 光电耦合器的用途很多,如作为高压开关,信号隔离转换脉冲系统间的电平匹配以及各种逻辑电路等。 (2) 在设计中为了抗干扰, 或避免一旦驱动电路发生故障,造成功率放大器中的高电平信号进入微型机而烧毁器件, 通常在驱动器与微型机之间加一级光电隔离器, 其原理接口电路如图3-17和3-18所示。 在XXXXXXX微型机与驱动器之间增加一级光电隔离。当P1.0输出为1,发光二极管不发光,因此光敏三极管截止, 从而使达林顿管导通,A相绕组通电。反之,当P1.0=0时,经反相后,使发光二极管发光, 光敏三极管导通, 从而使达林顿管截止,A相绕组不通电。 图2.10 达林顿管达林顿管又称复合管。它将二只三极管适当的连接在一起,以组成一只等效的新的三极管。这等效于三极管的放大倍数是二者之积。在电子学电路设计中,达林顿接法常用于功率放大器和稳压电源中。 达林顿管广泛应用于音频功率输出。开关控制。电源调整。继电器驱动。高增益放大等电路中。继电器驱动电路与高增益放大电路中使用的达林顿管,可以选用不带保护电路的中。小功率普通达林顿晶体管。而音频功率输出。电源调整等电路中使用的达林顿管,可选用大功率。大电流型普通达林顿晶体管或带保护电路的大功率达林顿晶体管。 2.1.5 显示快2.1.5.1 74LS47的功能本设计采用74LS47作为七段数码管的驱动器。74LS47的功能用于将BCD码转化成数码块中的数字,通过它解码, 可以直接把数字转换为数码管的显示数字, 从而简化了程序,节约了 单片机的IO开销。 因此是一个非常好的芯片!但是由于目前从节约成本的角度考虑, 此类芯片已较少用, 大部份情况下都是用动态扫描数码管的形式来实现数码管显示。74LS47译码器原理:译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用 图2.11 74LS47译码器2.1.5.2 7段LED显示器结构与原理7段LED显示器由7个发光二极管组成显示字段,并按“8”字形排列。 这7段发光管分别称为a、b、c、d、e、f、g,有的还带有一个小数点dp,7段LED由此得名。将7段发光二极管阴极都连在一起, 称为共阴极接法,当某个字段的阳极为高电平时, 对应的字段就点亮。共阳极接法是将LED显示器的所有阳极并接后连到+5 V电源上,当某一字段的阴极为0时,对应的字段就点亮, 如图所示。 图2.12 7段LED显示器结构与原理显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0H466H99H106HF9H56DH92H25BHA4H67DH82H34FHB0H707HF8H表2.1 LED段选码和显示字符之间的关系点亮LED显示器有两种方式:静态显示和动态显示, 下面以共阴极接法为例说明。LED静态显示方式: 所谓静态显示就是将N位共阴极LED显示器的阴极连在一起接地,每一位LED的8位段选线与一个8位并行口相连,当显示某一个字符时,相应的发光二极管就恒定地导通或截止。所谓动态显示就是用扫描方式轮流点亮LED显示器的各个位。 特点是将多个7段LED显示器同名端的段选线复接在一起,只用一个8位IO控制各个LED显示器的公共阴极轮流接地,逐一扫描点亮, 使每位LED显示该位应当显示的字符。恰当地选择点亮LED的时间间隔(15 ms),会给人一种视觉暂停效应, 似乎多位LED都在“同时”显示。2.2 单片机与步进电机的接口电路图由于步进电机的驱动电流较大,所以微型机与步进电机的连接都需要专门的接口及驱动电路。驱动器可用大功率复合管,也可以是专门的驱动器。总之,只要按一定的顺序改变P0口输出的脉冲信号,从而改变步进电动机四端通电的状况,即可控制步进电机依选定的方向步进。由于步进电机运行时功率较大,可在微型机与驱动器之间增加一级光电隔离器(一是抗干扰,二是电隔离。)以防强功率的干扰信号反串进主控系统。电路图如下所示:图2.13 单片机与步进电机的接口电路图第三章 控制系统的软件设计第三章 控制系统的软件设计3.1 程序设计流程图根据设计任务,可画出控制步进电机在程序控制下完成正转、反转、转数设定等各种操作。,程序框图如下图2.1:开 始初始化键盘扫描程序根据设定控制电机转动并显示改控制码取码指针显 示数据处理存30H、31HP3.0取反数字键“A”键 “*”键图3.1 基于单片机的步进电机控制程序框图3.2 汇编程序ORG 000HSTART: MOV 30H,#00H ; 清除键盘显示器RAM地址30H32H MOV 31H,#00H MOV 32H,#00H MOV P2,#0FFH ; 步进电机停止运行 SETB P3.0 ; LED灭,表示正转 MOV 21H,#00H ; 正转至TABLE1取码指针初值 L1: ACALL KEY ; 调用键盘扫描子程序 MOV 20H,A ; 键盘码值存入20H XRL A,#0AH ; 是否按* JZ SET0 ; 是则启动电机 MOV A,20H ; 取码值载入ACC XRL A,#0BH ; 是否按# JZ START ; 是则步进电机停止 MOV A,20H ; 取码值载入20H XRL A,#0CH ; 是否按A JZ CCW ; 是则设定正逆转 MOV A,20H ; 取码值载入20H XCH A,30H ; 现按键值存入(30H)地址 XCH A,31H ; 旧(30H)地址存入(31H)地址 MOV A,31H ; 将(30H)、(31H)合并为两位数 SWAP A ; 31H为十位数 ORL A,30H ; 加30H个位数 MOV 32H,A ; 存入(32H)地址 JMP L1*键盘扫描子程序*KEY: MOV R3,#0F7H ; 键盘列扫描初值 MOV R1,#00H ; 至TABLE取码的键盘计数指针 L2: MOV A,R3 ; 列扫描输出 MOV P1,A MOV A,P1 ; 暂存入R4,以判断按键是否放开 MOV R4,A SETB C ; C=1 MOV R5,#04H ; 检测4行 L3: RLC A ; 将检测的行位左移C内 JNC KEYIN ; 检测C=0?C=0表示有键按下 INC R1 ; 未按,则计数指针加1 DJNZ R5,L3 MOV A,#32H ; 显示器地址32H输出至P0显示 MOV P0,A MOV A,R3 SETB C RRC A ; 扫描下一列 MOV R3,A JC L2 JMP KEYKEYIN: MOV R7,#60H ;清除抖动 D2: MOV R6,#248 DJNZ R6,$ DJNZ R7,D2 D3: MOV A,P1 ; 读入键盘值 XRL A,R4 ; 比较刚才键盘值是否相同,是表示未放开 JZ D3 MOV A,R1 ; 按键放开,载入计数指针值 MOV DPTR,#TABLE ; 键码表首地址 MOVC A,A+DPTR ;查表所得值存入A RET*正反转设定程序*CCW: CPL P3.0 ; 将P3.0反相,正逆转换 JB P3.0,FOR ; 检测P3.0=1? 1为正,0为反REV: MOV 21H,#00H ; 逆转至TABLE1的取码指针存入(21H) JMP L1 ; 返回继续进行键盘扫描FOR: MOV 21H,#05H ; 正转至TABLE1的取码指针存入(21H) JMP L1 ; 返回继续进行键盘扫描*步进电动机驱动控制程序*SET0: MOV A,32H ; 载入显示器值 CJNE A,#00H,SETX ;是否为00,是则表示未设转数 JMP L1 ; 继续进行键盘扫描SETX: MOV R3,#20 ; 一转为20步SET1: MOV R0,21H ; 载入取码指针值SET2: MOV A,R0 MOV DPTR,#TABLE ; 至TABLE1取码 MOVC A,A+DPTR JZ SET1 ;是否取到0 MOV P2,A ;输出至P2运转 LCALL DELAY ;延时时间决定转数 INC R0 ; 取下一步 DJNZ R3,SET2 ;20步完? MOV A,30H ; 是,载入显示的个位数 CJNE A,#00H,B1 ; 个位是否为00 MOV A,31H ; 个位数为0,则载入十位 CJNE A,00H,B2 ; 十位是否为0 JMP START ; 个位,十位都伪,则停止运转,返回B1: DEC 30H ; 个位数不为0,则个位减1 JMP B3B2: MOV 30H,#09H ; 个位数为0,十位数不为0,则个位数为9 DEC 31H ; 十位数减1 JMP B3B3: MOV A,31H ; 将十位数与个位数合并送32H SWAP A ORL A,30H MOV 32H,A MOV P0,A ; 输出至P0显示 JMP SETX ; 开始下一转*延时子程序*DELAY: MOV R7,#20H ; 延时,步进电机转速为20毫秒 D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 RET*键码表*TABLE: DB 01H,02H,03H,0CH ; 键盘码 DB 04H,05H,06H,0DH DB 07H,08H,09H,0EH DB 0AH,00H,0BH,0FH*电机控制码表*TABLE1: DB 03H,09H,0CH,06H DB 00 DB 03H,06H,0CH,09H DB 00 END第四章 仿真与调试软件测试步骤如下:(1)打开Proteus软件。(2)选择file菜单下的 open design.选项,找到所需的元器件,按照电路图连接后并保存。(3)将用ISIS编译过的HEX格式程序,下载到单片机中:右击51单片机再左击,再弹出的对话框中,选择program file文本框或单击文件图标,浏览找到所编译的程序。单击确定。(4)单击左下角运行按钮,进行软件仿真、调试,直到出现正确的结果。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,若在5V4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。第五章 结果分析仿真中,只要按一定的顺序改变P0口输出的脉冲信号,从而改变步进电动机四端通电的状况,即可控制步进电机依选定的方向步进。由于步进电机运行时功率较大,可在微型机与驱动器之间增加一级光电隔离器(一是抗干扰,二是电隔离。)以防强功率的干扰信号反串进主控系统。有时会出现数码管显示不全情况,多为连线有误,或程序编写时出现问题。数码管一直显示00而不跳动,原因就是少了返回指令SJMP;数码管的十位、个位乱跳就是标志位设置有问题;另外在程序中用到的单元地址都要赋值0;中断程序有多个时的优先级要确定正确。另外刚开始个别键盘不能起控制作用,进过对程序的多次修改才得以实现起功能。在解决这些问题时也是一个再次学习的过程,虽然是步履维艰但最后的仿真效果非常好,实现了预期的效果,能过通过多功能控制键。第六章 总结第六章 总结本设计通过单片机AT89C51来控制步进电机的正反转、转数,以实现对步进电机的运动控制。实现了占用CPU时间少,效率高;易于控制步进电机的转向转速;提高了步进电机的步进精度等。再有,本设计过程考虑比较周全,系统中不仅采用光电隔离电路有效地抑制电磁干扰以提高系统的可靠性,而且还可以方便灵活地控制步进电机的运行状

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论