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

下载本文档

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

文档简介

摘要本设计中首先介绍了步进电机的工作原理、控制特点和运行状态,然后给出了步进电机的单片机控制系统的总体设计方案。在这个控制系统中,单片机选用AT89C51,其作为控制核心,担负着产生脉冲,发送、接受控制命令等任务;脉冲分配采用硬件方法,由8713接收到单片机的控制信号后产生相应的控制脉冲,避免了软件法在不停地产生脉冲时占用的时间;采用单电压驱动的方法驱动电机带动负载运行;利用键盘、显示专用芯片8279能够以较简单的硬件电路和较少的软件开销实现微型机与键盘和LED显示器接口。本设计最后详细介绍了硬件部分和软件部分的实现方法。关键词单片机;步进电机;速度控制ZLG7290显示器ABSTRACTTHEDESIGNINTRODUCESTHEWORKINGPRINCIPLEOFSTEPPERMOTOR,CONTROLFEATURESANDOPERATIONS,ANDTHENGIVESTHESTEPPERMOTORMICROCONTROLLERCONTROLSYSTEMDESIGNPROGRAMSINTHISCONTROLSYSTEM,THESCMSELECTINGAT89C51,THECONTROLCENTEROFTHESHOULDERPRODUCESPULSES,SENDING,RECEIVINGCONTROLCOMMANDSANDOTHERTASKSPULSEDISTRIBUTIONMETHODUSINGCONSTANTTIMEOCCUPIEDADOPTASINGLEVOLTAGEDRIVENAPPROACHDRIVEMOTORTODRIVETHELOADOPERATIONUSEOFKEYBOARD,DISPLAY8279CANBEDEDICATEDTOSIMPLEMETHODSINDETAILKEYWORDSSCMSTEPPERMOTORSPEEDCONTROL;ZLG7290DISPLAY;目录摘要IABSTRACTII第一章绪论111步进电机概述112课题研究的主要内容2121研究内容2122论文安排2第二章步进电机控制系统设计方案321步进电机的系统322步进电机的失步现象523步进电机控制系统的组成624系统的控制过程7第三章步进电机控制系统硬件部分931硬件电路图932采用51系列单片机AT89C51作为控制器10321AT89C51的主要性能10322AT89C51引脚功能说明1033步进电机的驱动电路1534LED显示电路16341LED显示器的结构原理16342LED显示接口1835可编程键盘显示控制器ZLG7290电路工作原理19351ZLG7290概述19352管脚、引线与功能21353ZLG7290键盘、显示接口电路设计2336脉冲分配26第四章步进电机控制系统软件部分3041定时器中断服务30411定时器初值30412定时器中断服务子程序3142速度控制31第五章总结35致谢36参考文献37附录38第一章绪论本章将简要介绍步进电机的发展过程、步进电机在日常生活中的广泛应用、步进电机作为数字控制电动机的主要特点以及本次研究的主要内容和论文安排。11步进电机概述步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有累积误差的特点,广泛应用于各种开环控制。步进电机和普通电机的区别主要就在于其脉冲驱动的形式,正是这个特点,步进电机可以和现代的数字控制技术相结合。步进电机在控制精度、速度变化范围、低速性能方面比传统的闭环控制直流伺服电动机有较好的性能。12课题研究的主要内容121研究内容本设计以实现基于单片机的步进电机控制为主要目标,主要内容有1了解步进电机的结构及工作原理;2了解步进电机的控制方法;3选择、设计控制系统所需的控制电路,设计控制系统;控制电路主要由AT89C51单片机、晶振电路、地址锁存器、译码器、ZLG7290芯片等组成,ZLG7290芯片能自动完成对显示的刷新,同时还可以对键盘自动扫描,识别闭合键的键号,使用非常方便。4绘制系统原理图、方框图和线路图等。122论文安排1原理部分第一章和第二章主要介绍了步进电机的特点,结构和工作原理以及步进电机的控制特点和运行状态。2硬件电路部分第三章详细介绍了系统的控制核心AT89C51单片机,驱动电路,显示电路和ZLG7290芯片。第二章步进电机控制系统设计方案21步进电机的系统21,1步进电动机的定义步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。21,2步进电动机的结构分类一般说来步进电动机可分为三大类反应式步进电动机、永磁式步进电动机和混合式步进电动机。反应式步进电动机的转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本低,步距角可以做得很小,但动态性能较差。永磁式步进电动机的转子使用永磁材料制成的,转子本身就是一个磁源。它的输出转矩大,动态性能好。转子的极数和定子的极数相同,所以步距角一般很大。需要供给正负脉冲信号。反应式步进电动机的性价比比较高,应用得非常广泛,下面就以反应式步进电动机为例来说明步进电动机的结构和工作原理。图21三相反应式步进电动机结构图如图21是一个三相反应式步进电动机结构图。从图中可以看出,它分成转子和定子两部分。定子上有六个磁极(大极),每两个相对的磁极(N、S极)组成一对,共有三对2,13步进电动机的工作方式对于三相步进电动机,其工作方式如下1、单三拍工作方式正转ABCA反转ACBA其中“单”指的是每次对一相通电;“三拍”指的是磁场旋转一周需要换相3次,这时转子转动一个齿距角。如果对多相步进电动机来说,每次只对一相通电,要使磁场旋转一周就需要多拍。2、双三拍工作方式正转ABBCCAAB反转BAACCBBA双三拍工作方式是每次对两相通电,即所谓“双”;磁场旋转一周需要换相3次,即所谓“三拍”,转子转动一个齿距角。3、三相六拍工作方式正转AABBBCCCA反转AACCCBBBA六拍工作方式是单三拍与双三拍交替使用的一种方法,磁场旋转一周,通电需要换相6次,即所谓“六拍”,转子才转动一个齿距角。这是与单三拍和双三拍最大的区别。同样,对于四相电动机其工作方式有单四拍、双四拍和八拍。其通电时序和波形如图22(A)、(B)、(C)所示。图22(A)单四拍(B)双四拍(C)八拍22步进电机的失步现象步进电机有一个技术参数空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。221步进电动机的振荡、失步及解决方法步进电动机的振荡和失步是一种普遍存在的现象,它影响应用系统的正常运行,因此要尽力去避免。下面对振荡和失步的原因进行分析,并给出解决方法。1、振荡步进电动机的振荡现象主要发生于步进电动机工作在低频区,步进电动机工作在共振区,步进电动机突然停车时。当步进电动机工作在共振区时,步进电动机的脉冲频率接近步进电动机的振荡频率或振荡频率的分频或倍频,这会使振荡加剧,严重时0F造成失步。步进电动机的振荡频率可由下式求出0FJZTFMAX021式中J转动惯量;Z转子齿数;最大转矩。MAXT振荡失步的过程如下在第1个脉冲到来后,转子经历了一次振荡。当转子回摆到最大振幅时,恰好第2个脉冲到来,转子受到的电磁转矩为负值,使转子继续回摆。接着第3个脉冲到来,转子受正电磁转矩的作用回到平衡点。这样,转子经过3个脉冲仍然回到原来位置,也就是丢了3步。2、失步步进电动机失步的原因有2种转子的转速慢于旋转磁场的速度,或者说慢于换相速度。例如,步进电动机在启动时,如果脉冲的频率较高,由于电动机来不及获得足够的能量,使其无法令转子跟上旋转磁场的速度,所以引起失步。因此,步进电动机有一个启动频率,超过启动频率启动时,肯定会产生失步。注意,启动频率不是一个固定值,提高电动机的转矩、减小负载转动惯量、减小步距角都可以提高步进电动机的启动频率。转子的平均速冻大于旋转磁场的速度。这主要发生在制动和突然换向时,转子获得过多的能量,产生严重的过冲,引起失步。3、怎样解决失步使步进电机本身产生的电磁转矩增大。使步进电机克服转矩减小或者更换大一点的电机。4、阻尼方法消除振荡市通过增加阻尼的方法来实现的,主要有机械阻尼和电子阻尼两大类。其中机械阻尼法比较单一,就是在电动机轴上加阻尼器。23步进电机控制系统的组成基于单片机实现步进电动机的正反转、启动、停止和加减速。单片机是本次设计的控制核心,本次设计选用AT89C51。单片机通过脉冲分配和驱动电路带动步进电动机运转。系统原理框图如23所示。图23系统原理框图AT89C51不仅功能强大,而且性能十分灵活性高。价格合理的单片机,可方便地应用在各种控制领域,因此本系统中采用AT89C51单片机作为控制核心。单片机的控制信号作用于脉冲分配器,本设计中采用8713脉冲分配器可以很好的减轻单片机的工作量。驱动电路得到脉冲信号就可以按照控制要求带动步进电机工作。采用LED数码管进行显示是由于其具有结构简单、体积小、功耗低、配置灵活、显示清晰、可靠性高的优点。24系统的控制过程步进电动机的驱动电路根据控制信号工作。在步进电动机的单片机控制中,控制信号由单片机产生。其基本控制作用如下1、控制换相顺序。步进电动机的通电换相顺序严格按照步进电动机的工作方式进行。通常我们把通电换相这一过程称为脉冲分配。例如,三相步进电动机的单三拍工作方式,其各相通电的顺序为ABC,通电控制脉冲必须严格按照这一顺序分别控制A、B、C相的通电和断电。2、控制步进电动机的转向。如果按给定的工作方式正序通电换相,步进电动机就正转;如果按反序通电换相,则电动机就反转。例如,四相步进电动机工作在单四拍方式,通电换相的正序是ABCD,电动机就正转;如果按反序ADCB,电动机就反转。对于步进电机的驱动一般有两种方法,一种是通过单片机直接来驱动,这种方法一般不宜采用,因为单片机的输出电流脉冲是特别小的它不能足以让步进电机的转动;别一种是通过单片机来间接驱动,就是把从单片机输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。固本次设计应采用单片机间接驱动步进电机。如图24所示。图24步进电机驱动电路第三章步进电机控制系统硬件部分31硬件电路图本设计中AT89C51是控制核心,利用键盘、显示专用芯片ZLG7290能够以较简单的硬件电路和较少的软件开销实现单片机与键盘和LED显示器接口,脉冲分配器ZLG7290产生驱动脉冲,减少单片机的工作负担。本系统的硬件电路图如41所示。图31系统硬件电路图32采用51系列单片机AT89C51作为控制器AT89C51是一种高性能的8位单片机。片内带有一个4KB的FLASH可编程,可擦除只读存储器EPROM,它采用了COMS工艺和公司ATMEL的高密度非易失性存储器技术,而且其输出引角和指令系统都与MSC51兼容。片内的FLASH存储器允许在系统内改编程序或常规的非易失性存储器编程器来编程。因此AT89C51是一种功能强,灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。321AT89C51的主要性能内含4KB的FLASH存储器,擦写次数1000次;内含128字节的RAM;具有32根可编程IO线;具有2个16位可编程定时器;具有6个中断源、5个中断矢量、2级优先权的中断结构;具有一个全双工的可编程串行通信接口;具有一个数据指针DPTR;两种低功耗工作模式,即空闲模式和掉电模式;具有可编程的3级程序锁定位;AT89C51的工作电压为5(102)V且典型值为5V;AT89C51最高工作频率为24MHZ322AT89C51引脚功能说明图32是AT89C51的引脚结构图,有双列直插封装DIP方式和方形封装方式,下面分别叙述这些引脚的功能。1、电源线VCC电源电压输入引脚。GND电源地。图32AT89C51引脚排列2、外接晶振引脚XTAL1和XTAL2XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器反相放大器和时钟发生线路的输入端。当采用片内振荡器时,连接外部石英晶体和微调电容。XTAL2接外部晶体的另一个引脚。在单片机内部,它是构成片内振荡器反相放大器和时钟发生线路的输出端。当采用片内振荡器时,连接外部石英晶体和微调电容。单片机外接电路。时钟产生和复位电路。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在12MHZ12MHZ之间选取。C1、C2是反馈电容,其值在5PF30PF之间选取,典型值为30PF。本电路选用的电容为30PF,晶振频率为12MHZ。这样就确定了单片机的4个周期分别是振荡周期112;S机器周期(SM);1指令周期。S4图33时钟产生电路XTAL1和XTAL2片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。即用来连接AT89C51片内OSC的定时反馈回路,如图33所示。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率FOSC为05MHZ16MHZ,典型值为12MHZ或110592MHZ。电容C1和C2可以帮助起振,典型值为30PF,调节它们可以达到微调FOSC的目的。图34为单片机复位电路。单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。MCS51单片机的RST引脚是复位信号的输入端。例如若MCS51单片机时钟频率为12MHZ,则复位脉冲宽度至少应该为2S。图34复位电路上图为上电复位和按键复位电路。上电瞬间,RST端的电位与VCC相同,随着电容的逐步充电,RST端的电位逐渐下降,此时22106110322MS当按下键时,RST端出现51000120042V,使单片机复位。3、控制信号线RST复位输入信号,高电平有效。在振荡器稳定工作时,在该引脚上施加两个机器周期(即24个晶振周期)以上的高电平将使单片机复位。ALE低字节地址锁存信号ALE(ADDRESSLATCHENABLE)PROG在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外ALE端连续输出正脉冲,频率为振荡器频率的16,可用作对外输出的时钟,或用于定时目的。但是要注意的是每当访问RAM时要丢失一个ALE脉冲。在编程期间,该引脚还用于输入编程脉冲。PROG如果需要的话,通过对专用寄存器SFR区中8EH单元的D0位置数,可禁止ALE操作该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。片外程序存储器读选通信号允许,低电平有效。PSEN在片外程序存储器取指期间,当有效时,程序存储器的内容被送PSEN至口(数据总线);在访问外部RAM时,无效。0VPP外部程序存储器访问允许信号EA(EXTERNALACCESSEAENABLE)。当信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000HFFFFH;当接VCC时,对ROM的读操作从内部程序存储器EA开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压(AT89C51的VPP为5V或12V)。在编程校验时,该引脚可接VCC。4、输入输出引脚P00P07,P10P17,P20P27,P30P37P0端口P00P078位、漏极开路的双向IO口。当使用片外存储器及外扩IO口时,P0口作为低字节地址数据复用线。在编程时,P0口可用于接收指令代码字节;在程序校验时,P0口可输出指令字节(这时需要加外部上拉电阻)。P0口也可作通用IO口使用,但需加上拉电阻,变为准双向口。当作为普通输入时,应将输出锁存器置1。P0口可驱动8个TTL负载。P1端口P10P178位、准双向IO口,具有内部上拉电阻。P1口是为用户准备的IO双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。P2端口P20P278位、准双向IO口,具有内部上拉电阻。当使用片外存储器或外扩IO口时,P2口输出高8位地址。在编程校验时,P2口可接收高字节地址和某些控制信号。P2口也可作普通IO口使用。用作输入时,应先将输出锁存器置1。P2口可驱动4个TTL负载。P3端口P30P378位、准双向IO口,具有内部上拉电阻。P3口可作为普通IO口。用作输入时,应先将输出锁存器置1。在编程校验时,P3口接收某些控制信号。它可驱动4个TTL负载。在AT89C51中,P3端口还用于一些复用功能。复用功能如表31所示。表31P3各端口引脚与复用功能表端口引脚复用功能P30RXD串性输入口P31TXD串性输出口P32外部中断00INTP33外部中断11INTP34T0定时器0的外部输入P35T1定时器1的外部输入P36外部数据寄存器写选通WRP37外部数据寄存器读选通D33步进电机的驱动电路步进电动机的驱动电路有多种,但最为常用的就是单电压驱动、双电压驱动、高低压驱动、斩波驱动、细分控制驱动等。单电压驱动是步进电机控制中最为简单的一种驱动电路,电动机绕组在工作时只用一个电压源对绕组供电。它的最大特点是结构简单,因它的工作效率低,特别是在高频下更显的突出。它的外接电阻R要消耗相当一部分的热量,这样就会影响电路的稳定性所以此种驱动方式一般只用在小功率的步进电机的驱动电路中。双电压驱动是电路一般采用两种电源电压来驱动,在低频段使用较低的电压驱动,在高频段使用较高的电压驱动。这种驱动方法保证了低频段仍然具有单电压驱动的特点,在高频段具有良好的高频性能,但仍没摆脱单电压驱动的弱点,在限流电阻上仍然会产生损耗和发热。高低压驱动不论电动机工作的频率如何,在绕组通电的开始用高压供电,使绕组中电流迅速上升,而后用低压来维持绕组中的电流。这种驱动电路的缺点是在高低压连接处电流出现谷点,这样必然引起转矩在谷点处下降。不宜于电机的正常运行。对于斩波电路驱动则可以克服这种缺点,并且还可以提高步进电机的效率。所以从提高效率来看这是一种很好的驱动电路,它可以用较高的电源电压,同时无需外接电阻来限定期额定电流和减少时间常数。但由于其波形顶部呈现锯齿形波动,所以会产生较大的电磁噪声。细分驱动是用脉冲电压来供电的,对于一个电压脉冲,转子就可以转动一步,一般会根据电压脉冲的分配方式,步进电机各相绕阻会轮流切换,固可以使步进电机的转子旋转。细分控制的电路一般分为两类,一类是采用线性模拟功率放大器的方法获得阶梯形电流,这种方法简单,但效率低。别一种是用单片机采用数字脉宽调制的方法获得阶梯电流,这种方法需要复杂的计算可使细分后的步距角一致。34LED显示电路在控制系统中,显示装置是一个重要组成部分,主要用来显示生产过程的工艺状况与运行结果,以便于现场工作人员的正确操作。LED数码管由于具有结构简单、体积小、功耗低、配置灵活、显示清晰、可靠性高的优点,目前被广泛采用。341LED显示器的结构原理发光二极管LED是利用PN结把电能转换成光能的固体发光器件,根据制造材料的不同,可以发出红、黄、绿、白等不同色彩的可见光束。LED的伏安特性类似于普通二极管,正向压降为2V左右,工作电流一般在10MV20MV之间较为合适。图358段LED显示器的结构原理(A)段排列;(B)共阴极;(C)共阳极一个8段LED显示器的结构与工作原理如图35所示。它是由8个发光二极管组成,各段依次记为A、B、C、D、E、F、G、DP,其中DP表示小数点(不带小数点的称为7段LED)。8段LED显示器有共阴极和共阳极两种结构,分别如图35(B)、(C)所示。共阴极LED的所有发光管的阴极并接成公共端COM,而共阳极LED的所有发光管的阳极并接成公共端COM。当共阴极LED的COM端接地,则某个发光二极管的阳极加上高电平时,则该管有电流流过因而点亮发光;当共阳极LED的COM端接高电平,则某个发光二极管的阴极加上低电平时,则该管有电流流过因而点亮发光。8段LED通过不同段点亮时的组合,可以显示09、AF等十六进制数。显然,将CPU的数据线与LED各段引脚相连,控制输出的数据就可以使LED显示不同的字符。通常把控制LED数码管发光显示字符的8位字节数据称为段选码、字符译码或字模,当段引脚DPA与CPU数据位D7D0一一对应相连时,共阴极8段LED显示器的段选码如表42所列。以显示字符“3”的段选码为例,“3”的段选码是十六进制的4FH,也就是二进制的01001111。结合图35(A)(B),即意味着CPU输出的数据位D7D0为01001111,则使LED显示器的DP、F、E段接地,G、D、C、B、A段接高电平,当COM端接地时,显示器就显示出数字“3”。如此,通过不同的段选码,即可显示出不同的相应字符。表328段LED显示器的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7CH83H466H99HC39HC6H56DH92HD5EHA1H67DH82HE79H86H707HF8HF71H8EH数码管共阳极的段选码恰好与共阴极的段选码相反,如共阳极数码管“3”的段选码B0H(10110000)是共阴极数码管“3”的段选码4FH(01001111)的反码。需要注意的是,表32只是基于段引脚DPA与数据位D7D0对应相连这一模式的,如果对应连线改变,则段选码也随之改变。342LED显示接口LED静态显示静态显示虽然占用CPU机时少,显示稳定可靠。占用IO口资源多,线路复杂、硬件成本高;又因为同时显示,所以功耗大,为了简化硬件电路,降低成本,在单片机应用系统中常采用动态显示的方法,解决多位LED显示的问题。动态显示的硬件接口简单,只需一个公共的七段码输出口(字形口),一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证稍描周期不超过一定的限度(一般在20MS以下)由于视觉的暂留,则可达到“同时”显示各位不同的数字或字符的目的。动态显示的优点是硬件成本低,接口电路简单,但它要求CPU频繁地为显示服务。LED动态显示就是将所有显示位的段选线并联在一起,由一个8位IO口控制,而位选线则由其它的IO口控制。8位动态显示电路只需要两个8位的口。一个控制段选码,另一个控制位选线。由于所有位的段选码由同一个口控制,因此要使每位显示不同的字符,必须采用扫描方式。即每一时刻位选只选通一个显示位,同时段选控制口输出显示字符对应的段选码,使该位显示相应的字符,显示一定时间后,再选通其它显示位。如此循环,使每个显示器件显示该位应显示的字符。通过程序控制,不断显示输出相应的段选码和位选码,由于人的视觉暂留效应,就可以获得视觉稳定的显示状态。35可编程键盘显示控制器ZLG7290电路工作原理351ZLG7290概述1IO控制及数据缓冲器数据缓冲器是双向缓冲器,连接内、外总线,用于传送单片机和ZLG7290之间的命令或数据。IO控制线是单片机对8279进行控制的引线,CS是8279的片选信号,当CS0时,ZLG7290才被允许读出或写入信息。WR、RD为来自单片机的读、写控制信号。A0用于区别信息特性A01时,表示数据缓冲器输入为指令、输出为状态字;A00时,输入、输出皆为数据。2控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示的工作方式,以及有单片机编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。定时控制包含基本计数器。其中计数器是一个可编程的N级计数器。N可以为231之间的数据,由软件编程,以便从外界时钟CLK分频得到内部所需要的100KHZ的时钟。然后再经过分频,为键盘扫描提供适当的逐行扫描频率和显示扫描时间。3扫描计数器扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制计数。4位计数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供扫描线(16条);按译码方式工作时,扫描计数器的最低二位被译码后,从SL0SL3输出。因此,SL0SL3提供了4中取1的扫描译码。4回复缓冲器、键盘去抖动及控制来自RS0RS7的8根回复线的回复信号,由回复缓冲器缓冲并锁存。在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖电路被置位,延时等待10MS后,再检验该键是否继续闭合,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入ZLG7290内部FIFO(先进先出)存储器。键盘数据格式如下D7D6D5D4D3D2D1D0控制移位扫描回复控制和移位(D6D7)的状态由两个独立的附加开关决定,而扫描(D5D4D3)和回复(D2D1D0)则是被按键置位的数据。D5D4D3来自扫描计数器,是按下键的行列编码,而D2D1D0则来自行列计数器,它们是根据回复信号而确定的行列编码。在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的传感器RAM(即FIFO存储器)。在选通输入方式工作时,CNTLSTB为选通输入信号,回复线的内容在CNTLSTB线的脉冲上升沿送入FIFO存储器。5FIFO传感器及其状态寄存器FIFO传感器RAM是一个双重功能的88RAM。在键盘或选通方式工作时,它是FIFO寄存器,其输入或读出遵循先入先出的原则。FIFO状态寄存器用来存放FIFO的工作状态。例如,RAM是满还是空;其中存有多少数据;是否操作出错等。当FIFO寄存器不空,状态逻辑将产生IRQ1信号向单片机申请中断。在传感器矩阵方式工作中,这个存储器又是传感器存储器。它存放着传感器中的每一个状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向单片机申请中断,同时该状态被送入传感器RAM。6显示RAM和显示地址寄存器显示RAM用来存储显示数据,容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA03和OUTB03可以单独送数,也可以组成一个8位的码(由编程控制)。显示寄存器的输出与显示扫描结合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存由单片机进行读写显示RAM的地址,它可以由命令设定,也可以设置成每次读出或写入后自动递增。352管脚、引线与功能图36ZLG7290芯片引脚采用40引脚封装,其管脚,引线功能如图47所示。其引脚功能分述如下D0D7数据总线双向,三态总线,和系统的数据总线相连,用于CPU和ZLG7290间的数据命令传送。CLK系统时钟输入线,为ZLG7290提供内部时钟的输入端。RESET复位输入线,当RESET1时,ZLG7290复位,其复位状态为16个字符显示;编码扫描键盘;程序时钟编程为31。CS片选输入线,当CS0时ZLG7290被选中,允许CPU对其读,写,否则被禁止。A0数据选择输入线当A01时CPU写入的数据为命令字,读出数据为状态字;A00时CPU读,写的字节均为数据。RD、WR读、写信号输入线低电平有效,来自CPU的控制信号,控制ZLG7290的读、写操作。IRQ中断请求输出线高电平有效。在键盘工作方式中,当FIFO传感器RAM村有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。SL0SL3扫描线输出线用来扫描键盘和显示器。它们可以编程设定为译码4中取1或编码输出16取1。RL0RL7回复线输入线它们是键盘矩阵或传感器矩阵的列或行信号输入线。SHIFT移位信号输入线,高电平有效。该输入信号是ZLG7290键盘数据的次高位D6,通常用来扩充键的功能,可以用作键盘上、下档功能键。在传感器方式和选通方式中,SHIFT无效。CNTLSTB控制选通输入线,高电平有效。在键盘工作方式时,该输入信号是键盘数据的最高位D7,通常用来扩充键开关的控制功能,作为控制功能键用。在传感器方式下,该信号无效。OUTA0OUTA3A组显示信号输出线OUTB0OUTB3B组显示信号输出线这两组引线都是数据输出线,与多位数字显示LED数码管的扫描线SL0SL3同步。两组可以独立使用,也可以合并使用,合并使用时OUTA0为最低位,OUTB3为最高位。BD显示消隐输出线,低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。ZLG7290的数据输入输出对ZLG7290输入数据(如显示数据,输入键扫描数据、传感器矩阵数据等)时,要选择数据输入输出口地址。ZLG7290的数据输入输出口地址由CS0,A00确定。在键盘扫描方式中,ZLG7290中键入数据时按下列格式存放。D7D6D5D4D3D2D1D0CNTLSHIFTSCANRETURNRETURND2D1D0为键所在的行号,由RL0RL7状态确定。SCAND5D4D3为键所在列号,由SL0SL2状态确定。SHIFTD6为控制键SHIFT的状态位。CNTLD7为控制键CNTL的状态位。控制键SHIFT、CNTL为单独的开关。CNTL与其它键连用作特殊命令键,SHIFT可作为上、下档控制键。在传感器方式或选通方式中,8位输入数据为RL0RL7。D7D6D5D4D3D2D1D0RL7RL6RL5RL4RL3RL2RL1RL0353ZLG7290键盘、显示接口电路设计利用键盘、显示专用芯片ZLG7290能够以较简单的硬件电路和较少的软件开销实现微型机与键盘和LED显示器接口。下面讨论其硬件电路的工作原理和设计问题。1外时钟脉冲产生AT89C51的ALE既可用作低8位地址的锁存信号,也把它接到ZLG7290的CLK引脚用作ZLG7290的外时钟脉冲信号的输入。脉冲信号频率并非固定不变,好在ZLG7290并不要求时钟频率固定不变,因此,这样安排还是可以的。不过应该注意,对于MCS51系列单片机来说,ALE脉冲频率经常是振荡周期频率FOSC的六分之一,这也是MCS51单片机的ALE最高频率,通过对ZLG7290的程序时钟命令字节的编程,ZLG7290可以对来自CLK引脚的脉冲实行231分频,从而得到ZLG7290内部工作所需要的100KHZ内部时钟。如果FOSC12MHZ,分频应为20。2译码电路1ZLG7290片选译码电路对ZLG7290的片选译码电路可根据实际电路的地址分配设计。2)键盘、显示扫描译码器在对“键盘显示方式设置命令字”的编程设置为编码凡是(D00)时,那么ZLG7290内部不译码,从SL3SL0输出的不是键盘的列和显示器的位信号(高电平有效)。而是列和位号的编号的BCD码(SL3是最高位)。在这种情况下应外接译码器,对SL3SL0译码,以产生列和位信号。ZLG7290可以对8位或16位显示器以及8列8行键盘扫描。在16位显示时,对显示器扫描和对键盘扫描必须各有自己的译码器,显示器采用416线译码器,例如74LS154;键盘采用38译码器,例如74LS138。BD是消隐信号输出端,当BD0时,74LS138不译码,显示器均为暗。应该说明,在初始化时必须置“键盘显示方式设置命令字”的D30,以设定8279工作于8位显示方式,否则会出现混乱现象。这是因为,如果设置为16位显示,74LS138只对SL2SL0译码,这样,当SL3,SL2,SL1,SL0000时,Y0为低,选中0号显示器(最左端),OUTA3OUTB0上出现显示RAM的0单元的内容,从而使0号RAM所规定的字符。但是当扫描到SL3,SL2,SL1,SL01000H(8)时,仍使Y00,选中0号显示器,但此时OUTA3OUTB0上出现的却是显示RAM中8号单元内容,从而使0号显示器现在显示8号单元所规定的字符。可见出现显示混乱。反之,如果硬件电路设计为16位显示。而软件却设置为8位,另外8位得不到显示。3驱动电路由74LS138输出(Y0Y7)的显示器的位选信号和由A3B0输出的段选信号的输出电流太小,不足以点亮LED显示器。可采用共阴极LEDBS202(发红光的BSR202或发绿光的BSG202),因此位驱动器选用集电极开路(OC门)同相输出门电路72LS07,段选信号由两个同相输出的功率驱动器75491提供。表42“八段码(字形码)”表的内容。4中断请求线在键盘中的某键按下,ZLG7290在测得其按下并在去抖动(延时10MS之后再检测认为此键仍在按下状态,便确认此键已按下。在ZLG7290确认某键已按下时,便把此键的键只存于FIFO寄存器中,此时FIFO内有内容,称为FIFO存储器不空。只要FIFO存储器不空,便使IRQ为高电平,就直接通过EXINT端向8089请求中断。但由于AT89C51的INT0或INT1是低电平或下降沿请求中断。因此应把IRQ反相后加到AT89C51的INT1端。当单片机读取FIFO的内容后,IRQ就回到低电平。如果FIFO存储器中还有未读到的键值,会重新使IRQ变为高电平,向单片机请求中断。由于FIFO存储器是先进先出RAM,因此先读走的键值对应于先按下的键。5SHIFT和CNTL可用这两个键增加键盘的功能。例如上档键和下档键。这两键在按下时使SHIFT(或CNTL)为低电平。当这两个弹起时,使SHIFT(或CNTL)脚悬空,但由于此两引脚内部有上拉电阻,当它们悬空时实际上是高电平。36脉冲分配实现脉冲分配的方法有两种软件法和硬件法。1、软件法图37是用这种方法控制三相步进电动机的硬件接口例子利用AT89C51的P10P12这3条IO线,向三相步进电动机传送控制信号。37用软件实现脉冲分配的接口电路下面以三相步进电动机工作在六拍方式为例,说明如何设计软件。三相六拍工作方式通电换相的正序为AABBBCCCA,共有6个通电状态。如果P1口输出的控制信号中,0代表使绕组通电,1代表绕组断电,则可用6个控制字来对应这6个通电状态。这6个控制字如表33所列。表33三相六拍工作方式的控制字通电状态P12CP11BP10A控制字A110FEHAB100FCHB101FDHBC001F9HC011FBHCA010FAH在程序中,只要依次将这6个控制字送到P1口,步进电动机就会转动一个齿距角。每送一个控制字,就完成一拍,步进电动机转过一个步距角。程序就是根据这个原理进行设计的。用R0作为状态计数器,用来指示第几拍,正转时加1,反转时减1的操作规律,则正转程序为CWINCR0;正转加1CJNER0,06H,ZZ;如果计数器等于6修正为0MOVR0,00HZZMOVA,R0;计数器值送AMOVDPTR,ABC;指向数据存放首地址MOVCA,ADPTR;取控制字MOVP1,A;送控制字到P1口RETABCDB0FEH,0FCH,0FDH,;6个控制字0F9H,0FBH,0FAH反转程序CCWDECR0;反转减1CJNER0,0FFH,FZ;如果计数器等于FFH修正为5MOVR0,05HFZMOVA,R0;计数器值送AMOVDPTR,ABC;指向数据存放首地址MOVCA,ADPTR;取控制字MOVP1,A;送控制字到P1口RET软件法在电动机运行过程中,要不停产生控制脉冲,占用大量CPU时间,可能使单片机无法同时进行其他工作,所以硬件法使用更广泛。2、硬件法硬件法是使用脉冲分配器芯片,来进行通电换相控制。脉冲分配器有很多中,下面介绍8713集成电路芯片。8713属于单极性控制,用于控制三相和四相步进电动机,可以选择不同的工作方式三相步进电动机单三拍、双三拍、六拍;四相步进电动机单四拍、双四拍、八拍。8713可以选择单时钟输入和双时钟输入;具有正反转控制、初始化复位、工作方式和输入脉冲监视等功能;所有输入端内部都设有斯密特整形电路,提高抗干扰能力;使用48V直流电源,输出电流为20MA。8713有16个引脚,各引脚功能如表34所示。表348713引脚功能引脚功能说明1正转脉冲输入端2反转脉冲输入端1、2脚为双时钟输入端3脉冲输入端4转向控制端0反转;1正转3、4脚为单时钟输入端5、6工作方式选择00为双三(四)拍;01、10为单三(四)拍;11为六(八)拍7三四相选择;0三相;1四相8地9复位端。低电平有效10、11输出端。四相用13、12、11、10脚,分别代表A、B、C、D;三相用、12、1313、12、11脚,分别代表A、B、C14工作方式监视。0为单三(四)拍;1为双三(四)拍;脉冲为六(八)拍15输入脉冲状态监视,与时钟同步16电源第四章步进电机控制系统软件部分41定时器中断服务步进电机的速度控制通过控制单片机发出的步进脉冲频率来实现。步进电机启动时如果一次将速度升到给定速度,由于启动频率超过极限启动频率FQ,会发生失步现象,而到终点时若突然停下,由于惯性作用,又会发生过冲现象而影响定位精度;若缓慢升降速,又会影响执行机构的工作效率。所以对步进电机的加减速要严格控制,在保证不失步和过冲的前提下,用最快的速度移动到指定位置。411定时器初值本设计的步进电机的齿数为40,齿距角为360409,采用三相六拍时步距角为9615。程序中用T0定时中断控制步进电机每走一步所用的时间(单步时间),改变T0定时中断的定时时间,就改变了步进电机的转速。定时器T0用方式一,由于步进电机的步距角为15,转一圈要240个脉冲,步进电机转速为NRMIN,则每分钟需送脉冲数据的个数为240N,既每送一个脉冲数据需时T1S240N(MIN)250000N(US)定时器T0的计数初值T65536110592T126553611059225000012N65536230400N单片机晶振为110592MHZ412定时器中断服务子程序SPEEDCPLP10;改变P10电平状态PUSHACC;累加器A进栈保护PUSHPSW;程序状态字进栈保护CLRC;进位位清零CLRTR0;关定时器MOVA,TL0;取T0低8位当前值ADDA,08H;加8个机器周期ADDA,30H;低8位加定时常数MOVTL0,A;低8位重装定时常数MOVA,TH0;取T0高8位当前值ADDCA,31H;高8位加定时常数MOVTH0,A;高8位重装定时常数SETBTR0;开定时器POPPSW;程序状态字出栈POPACC;累加器出栈RETI;返回42速度控制步进电动机启动时如果一次将速度升到给定速度,由于启动频率超过极限启动频率,会发生失步现象,而到终点时若突然停下,由于惯QF性作用,又会发生过冲现象而影响定位精度;若缓慢升降速,又会影响执行机构的工作效率。所以对步进电动机的加减速要严格控制,在保证不失步和过冲的前提下,用最快的速度移动到制定位置。升降频方法步进电动机常用的升降频控制方法有3种1、直线升降频。如图41所示,这种方法是以恒定的加速度进行升降,平稳性好,适用于速度变化较大的快速定位方式。加速时间虽然长,但软件实现比较简单。图41直线升降频2、抛物线升降频。如图42所示,抛物线升降频将直线升降频和指数升降频融为一体,充分利用步进电动机低速时的有效转矩,使升降速的时间大大缩短,同时又具有较强的跟踪能力,这是一种比较好的方法。图42抛物线升降频3、指数曲线升降频。如图43所示,这种方法是从步进电动机的矩频特性出发,根据转矩随频率的变化规律推导出来的。它符合步进电动机加减速过程的运动规律,能充分利用步进电动机的有效转矩,快速响应性能较好,升降时间短。图43指数曲线升降频采用指数加、减速曲线是最好的选择,这是因为电动机的电磁转矩与转速的关系接近指数规律。1步进电动机的运行还可以根据距离的长短,分如下3种情况处理短距离由于距离较短,来不及升到最高速,因此,在这种情况下,步进电动机以接近启动频率运行,运行过程没有加、减速。中、短距离该距离里,步进电动机只有加、减速过程,而没有恒速过程。中、长距离该距离里,步进电动机不仅有加、减速过程,还有恒速过程。由于距离较长,尽量缩短用时,保证快速反应性。因此,在加速时,尽量用接近启动频率启动;在恒速时,尽量工作在最高速。下面举例来说明步进电动机加、减速控制程序的编制。图44近似指数加速曲线。有图可见,离散后速度并不是一种上升的,而是一级都要在该级上保持一段时间,因此实际加速轨迹呈阶梯状。如果速度是等间距分布,那么在该速度级上保持的时间不一样长。为了简化,用速度级数N与一个常数C的乘积去模拟,并且保持的时间用步数来代替。因此,速度每升一级,步进电动机都要在该速度极上走NC步(其中N为该速度级数)。本程序的参数除了有速度极数N和级步数NC以外,还有以下参数。图44加速曲线离散化加速过程的总步数电动机在升速过程中每走一步,加速总步数就减1,直到减为0,加速过程结束,进入恒速过程。恒速过程的总

温馨提示

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

评论

0/150

提交评论