基于c51单片机的步进电机控制系统大学本科毕业论文.doc
扬州大学本科毕业设计(论文) 毕业设计用纸摘 要本设计中首先介绍了步进电机的工作原理、控制特点和运行状态,然后给出了步进电机的单片机控制系统的总体设计方案。在这个控制系统中,单片机选用AT89C51,其作为控制核心,担负着产生脉冲,发送、接受控制命令等任务;脉冲分配采用硬件方法,由8713接收到单片机的控制信号后产生相应的控制脉冲,避免了软件法在不停地产生脉冲时占用的时间;采用单电压驱动的方法驱动电机带动负载运行;利用键盘、显示专用芯片8279能够以较简单的硬件电路和较少的软件开销实现微型机与键盘和LED显示器接口。本设计最后详细介绍了硬件部分和软件部分的实现方法。关键词:单片机;步进电机;速度控制;ZLG7290;显示器Abstract The design introduces the working principle of stepper motor, control features and operations, and then gives the stepper motor microcontroller control system design programs. In this control system, the SCM selecting AT89C51, the control center of the shoulder produces pulses, sending, receiving control commands and other tasks; pulse distribution method using hardware from the 8713 chip control signals received resulting from the corresponding control pulse, to avoid software method to generate pulses in constant time occupied; adopt a single voltage-driven approach drive motor to drive the load operation; use of keyboard, display 8279 can be dedicated to simple hardware and less software overhead to achieve keyboard and LED display interface. Finally introduce the hardware and software implementation methods in detail. Key words: SCM; stepper motor; speed control;ZLG7290;display; 目 录摘 要IAbstractII第一章 绪论11.1步进电机概述11.2课题研究的主要内容21.2.1研究内容21.2.2论文安排2第二章步进电机控制系统设计方案32.1步进电机的系统32.2步进电机的失步现象52.3步进电机控制系统的组成62.4系统的控制过程7第三章 步进电机控制系统硬件部分93.1硬件电路图93.2采用51系列单片机AT89C51作为控制器103.2.1 AT89C51的主要性能103.2.2 AT89C51引脚功能说明103.3步进电机的驱动电路153.4 LED显示电路163.4.1 LED显示器的结构原理163.4.2 LED显示接口183.5可编程键盘/显示控制器ZLG7290电路工作原理193.5.1 ZLG7290概述193.5.2管脚、引线与功能213.5.3 ZLG7290键盘、显示接口电路设计233.6脉冲分配26第四章 步进电机控制系统软件部分304.1定时器中断服务304.1.1定时器初值304.1.2定时器中断服务子程序314.2 速度控制31第五章 总结35致谢36参考文献37附录38IV第一章 绪论 本章将简要介绍步进电机的发展过程、步进电机在日常生活中的广泛应用、步进电机作为数字控制电动机的主要特点以及本次研究的主要内容和论文安排。1.1步进电机概述步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有累积误差的特点,广泛应用于各种开环控制。步进电机和普通电机的区别主要就在于其脉冲驱动的形式,正是这个特点,步进电机可以和现代的数字控制技术相结合。步进电机在控制精度、速度变化范围、低速性能方面比传统的闭环控制直流伺服电动机有较好的性能。1.2课题研究的主要内容1.2.1研究内容本设计以实现基于单片机的步进电机控制为主要目标,主要内容有: 1. 了解步进电机的结构及工作原理; 2. 了解步进电机的控制方法; 3选择、设计控制系统所需的控制电路,设计控制系统;控制电路主要由AT89C51单片机、晶振电路、地址锁存器、译码器、ZLG7290芯片等组成,ZLG7290芯片能自动完成对显示的刷新,同时还可以对键盘自动扫描,识别闭合键的键号,使用非常方便。 4绘制系统原理图、方框图和线路图等。1.2.2论文安排1. 原理部分:第一章和第二章主要介绍了步进电机的特点,结构和工作原理以及步进电机的控制特点和运行状态。2. 硬件电路部分:第三章详细介绍了系统的控制核心AT89C51单片机,驱动电路,显示电路和ZLG7290芯片。第二章步进电机控制系统设计方案2.1步进电机的系统2.1,1步进电动机的定义步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。2.1,2步进电动机的结构分类一般说来步进电动机可分为三大类:反应式步进电动机、永磁式步进电动机和混合式步进电动机。反应式步进电动机的转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本低,步距角可以做得很小,但动态性能较差。永磁式步进电动机的转子使用永磁材料制成的,转子本身就是一个磁源。它的输出转矩大,动态性能好。转子的极数和定子的极数相同,所以步距角一般很大。需要供给正负脉冲信号。反应式步进电动机的性价比比较高,应用得非常广泛,下面就以反应式步进电动机为例来说明步进电动机的结构和工作原理。图2-1 三相反应式步进电动机结构图如图2-1是一个三相反应式步进电动机结构图。从图中可以看出,它分成转子和定子两部分。定子上有六个磁极(大极),每两个相对的磁极(N、S极)组成一对,共有三对2,1.3步进电动机的工作方式对于三相步进电动机,其工作方式如下:1、单三拍工作方式正转:ABCA反转:ACBA其中“单”指的是每次对一相通电;“三拍”指的是磁场旋转一周需要换相3次,这时转子转动一个齿距角。如果对多相步进电动机来说,每次只对一相通电,要使磁场旋转一周就需要多拍。2、双三拍工作方式正转:ABBCCAAB反转:BAACCBBA双三拍工作方式是:每次对两相通电,即所谓“双”;磁场旋转一周需要换相3次,即所谓“三拍”,转子转动一个齿距角。3、三相六拍工作方式正转:AABBBCCCA反转:AACCCBBBA六拍工作方式是单三拍与双三拍交替使用的一种方法,磁场旋转一周,通电需要换相6次,即所谓“六拍”,转子才转动一个齿距角。这是与单三拍和双三拍最大的区别。同样,对于四相电动机其工作方式有单四拍、双四拍和八拍。其通电时序和波形如图2-2(a)、(b)、(c)所示。图2-2(a)单四拍 (b)双四拍 (c)八拍2.2步进电机的失步现象步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。2.2.1步进电动机的振荡、失步及解决方法步进电动机的振荡和失步是一种普遍存在的现象,它影响应用系统的正常运行,因此要尽力去避免。下面对振荡和失步的原因进行分析,并给出解决方法。1、振荡步进电动机的振荡现象主要发生于:步进电动机工作在低频区,步进电动机工作在共振区,步进电动机突然停车时。当步进电动机工作在共振区时,步进电动机的脉冲频率接近步进电动机的振荡频率或振荡频率的分频或倍频,这会使振荡加剧,严重时造成失步。步进电动机的振荡频率可由下式求出:式中:J转动惯量;Z转子齿数; 最大转矩。振荡失步的过程如下:在第1个脉冲到来后,转子经历了一次振荡。当转子回摆到最大振幅时,恰好第2个脉冲到来,转子受到的电磁转矩为负值,使转子继续回摆。接着第3个脉冲到来,转子受正电磁转矩的作用回到平衡点。这样,转子经过3个脉冲仍然回到原来位置,也就是丢了3步。2、失步步进电动机失步的原因有2种: 转子的转速慢于旋转磁场的速度,或者说慢于换相速度。例如,步进电动机在启动时,如果脉冲的频率较高,由于电动机来不及获得足够的能量,使其无法令转子跟上旋转磁场的速度,所以引起失步。因此,步进电动机有一个启动频率,超过启动频率启动时,肯定会产生失步。注意,启动频率不是一个固定值,提高电动机的转矩、减小负载转动惯量、减小步距角都可以提高步进电动机的启动频率。 转子的平均速冻大于旋转磁场的速度。这主要发生在制动和突然换向时,转子获得过多的能量,产生严重的过冲,引起失步。3、怎样解决失步使步进电机本身产生的电磁转矩增大。使步进电机克服转矩减小或者更换大一点的电机。4、阻尼方法消除振荡市通过增加阻尼的方法来实现的,主要有机械阻尼和电子阻尼两大类。其中机械阻尼法比较单一,就是在电动机轴上加阻尼器。2.3步进电机控制系统的组成基于单片机实现步进电动机的正反转、启动、停止和加减速。单片机是本次设计的控制核心,本次设计选用AT89C51。单片机通过脉冲分配和驱动电路带动步进电动机运转。系统原理框图如2-3所示。AT89C51脉冲分配键盘LED显示驱动电路步进电动机负载图2-3系统原理框图AT89C51不仅功能强大,而且性能十分灵活性高。价格合理的单片机,可方便地应用在各种控制领域,因此本系统中采用AT89C51单片机作为控制核心。单片机的控制信号作用于脉冲分配器,本设计中采用8713脉冲分配器可以很好的减轻单片机的工作量。驱动电路得到脉冲信号就可以按照控制要求带动步进电机工作。采用LED数码管进行显示是由于其具有结构简单、体积小、功耗低、配置灵活、显示清晰、可靠性高的优点。2.4系统的控制过程步进电动机的驱动电路根据控制信号工作。在步进电动机的单片机控制中,控制信号由单片机产生。其基本控制作用如下:1、控制换相顺序。步进电动机的通电换相顺序严格按照步进电动机的工作方式进行。通常我们把通电换相这一过程称为脉冲分配。例如,三相步进电动机的单三拍工作方式,其各相通电的顺序为ABC,通电控制脉冲必须严格按照这一顺序分别控制A、B、C相的通电和断电。2、控制步进电动机的转向。如果按给定的工作方式正序通电换相,步进电动机就正转;如果按反序通电换相,则电动机就反转。例如,四相步进电动机工作在单四拍方式,通电换相的正序是ABCD,电动机就正转;如果按反序ADCB,电动机就反转。对于步进电机的驱动一般有两种方法,一种是通过单片机直接来驱动,这种方法一般不宜采用,因为单片机的输出电流脉冲是特别小的它不能足以让步进电机的转动;别一种是通过单片机来间接驱动,就是把从单片机输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。固本次设计应采用单片机间接驱动步进电机。如图2-4所示。图2-4 步进电机驱动电路第三章 步进电机控制系统硬件部分3.1硬件电路图本设计中AT89C51是控制核心,利用键盘、显示专用芯片zlg7290能够以较简单的硬件电路和较少的软件开销实现单片机与键盘和LED显示器接口,脉冲分配器zlg7290产生驱动脉冲,减少单片机的工作负担。本系统的硬件电路图如4-1所示。图3-1 系统硬件电路图3.2采用51系列单片机AT89C51作为控制器AT89C51是一种高性能的8位单片机。片内带有一个4KB的Flash可编程,可擦除只读存储器(EPROM),它采用了COMS工艺和公司ATMEL的高密度非易失性存储器技术,而且其输出引角和指令系统都与MSC51兼容。片内的Flash存储器允许在系统内改编程序或常规的非易失性存储器编程器来编程。因此AT89C51是一种功能强,灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。3.2.1 AT89C51的主要性能内含4KB的Flash存储器,擦写次数1000次;内含128字节的RAM;具有32根可编程I/O线;具有2个16位可编程定时器;具有6个中断源、5个中断矢量、2级优先权的中断结构;具有一个全双工的可编程串行通信接口;具有一个数据指针DPTR;两种低功耗工作模式,即空闲模式和掉电模式;具有可编程的3级程序锁定位;AT89C51的工作电压为5(1±0.2)V且典型值为5V;AT89C51最高工作频率为24MHz.3.2.2 AT89C51引脚功能说明图3-2是AT89C51的引脚结构图,有双列直插封装(DIP)方式和方形封装方式,下面分别叙述这些引脚的功能。1、电源线 Vcc:电源电压输入引脚。 GND:电源地。12345678910111213141516171819203940313234353837363330212223242526272829AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.7P1.6P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.6/AD6P0.5/AD5P0.4/AD4P0.7/AD7/RXD/P3.0TXD/P3.1/P3.2/P3.3T0/P3.4T1/P3.5/P3.6/P3.6RSTXTAL2XTAL1GNDALE/P2.7/A15P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P2.6/A14图3-2 AT89C51引脚排列2、外接晶振引脚XTAL1和XTAL2 XTAL1:接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器反相放大器和时钟发生线路的输入端。当采用片内振荡器时,连接外部石英晶体和微调电容。 XTAL2:接外部晶体的另一个引脚。在单片机内部,它是构成片内振荡器反相放大器和时钟发生线路的输出端。当采用片内振荡器时,连接外部石英晶体和微调电容。单片机外接电路。时钟产生和复位电路。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz12MHz之间选取。C1、C2是反馈电容,其值在5pF30pF之间选取,典型值为30pF。本电路选用的电容为30pF,晶振频率为12MHz。这样就确定了单片机的4个周期分别是:振荡周期1/12; 机器周期(SM);指令周期。XTAL1XTAL2AT89C5130pF30pF12MHz图3-3 时钟产生电路 XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容。在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。即用来连接AT89C51片内OSC的定时反馈回路,如图3-3所示。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率fOSC为0.5MHz16MHz,典型值为12MHz或11.0592MHz。电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fOSC的目的。图3-4为单片机复位电路。单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。MCS-51单片机的RST引脚是复位信号的输入端。例如:若MCS-51单片机时钟频率为12MHz,则复位脉冲宽度至少应该为2s。RSTAT89C51200 221K5V图3-4 复位电路 上图为上电复位和按键复位电路。上电瞬间,RST端的电位与Vcc相同,随着电容的逐步充电,RST端的电位逐渐下降,此时=22×10-6×1×103=22ms.当按下键时,RST端出现5×100012004.2V,使单片机复位。3、控制信号线 RST:复位输入信号,高电平有效。在振荡器稳定工作时,在该引脚上施加两个机器周期(即24个晶振周期)以上的高电平将使单片机复位。 ALE/:低字节地址锁存信号 ALE(Address Latch Enable)在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。此外ALE端连续输出正脉冲,频率为振荡器频率的1/6,可用作对外输出的时钟,或用于定时目的。但是要注意的是:每当访问RAM时要丢失一个ALE脉冲。在编程期间,该引脚还用于输入编程脉冲()。如果需要的话,通过对专用寄存器(SFR)区中8EH单元的D0位置数,可禁止ALE操作.该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活.另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。:片外程序存储器读选通信号允许,低电平有效。在片外程序存储器取指期间,当有效时,程序存储器的内容被送至口(数据总线);在访问外部RAM时,无效。/Vpp:外部程序存储器访问允许信号EA(External Access Enable)。当信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000HFFFFH;当接Vcc时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。在编程时,该引脚可接编程电压(AT89C51的Vpp为5V或12V)。在编程校验时,该引脚可接Vcc。4、输入/输出引脚P0.0P0.7,P1.0P1.7,P2.0P2.7,P3.0P3.7 P0端口(P0.0P0.7):8位、漏极开路的双向I/O口。当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;在程序校验时,P0口可输出指令字节(这时需要加外部上拉电阻)。P0口也可作通用I/O口使用,但需加上拉电阻,变为准双向口。当作为普通输入时,应将输出锁存器置1。P0口可驱动8个TTL负载。 P1端口(P1.0P1.7):8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 P2端口(P2.0P2.7):8位、准双向I/O口,具有内部上拉电阻。当使用片外存储器或外扩I/O口时,P2口输出高8位地址。在编程/校验时,P2口可接收高字节地址和某些控制信号。 P2口也可作普通I/O口使用。用作输入时,应先将输出锁存器置1。P2口可驱动4个TTL负载。 P3端口(P3.0P3.7):8位、准双向I/O口,具有内部上拉电阻。P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。在AT89C51中,P3端口还用于一些复用功能。复用功能如表3-1所示。表3-1 P3各端口引脚与复用功能表端口引脚复用功能P3.0RXD(串性输入口)P3.1TXD(串性输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据寄存器写选通)P3.7(外部数据寄存器读选通)3.3步进电机的驱动电路步进电动机的驱动电路有多种,但最为常用的就是单电压驱动、双电压驱动、高低压驱动、斩波驱动、细分控制驱动等。单电压驱动是步进电机控制中最为简单的一种驱动电路,电动机绕组在工作时只用一个电压源对绕组供电。它的最大特点是结构简单,因它的工作效率低,特别是在高频下更显的突出。它的外接电阻R要消耗相当一部分的热量,这样就会影响电路的稳定性所以此种驱动方式一般只用在小功率的步进电机的驱动电路中。双电压驱动是电路一般采用两种电源电压来驱动,在低频段使用较低的电压驱动,在高频段使用较高的电压驱动。这种驱动方法保证了低频段仍然具有单电压驱动的特点,在高频段具有良好的高频性能,但仍没摆脱单电压驱动的弱点,在限流电阻上仍然会产生损耗和发热。高低压驱动不论电动机工作的频率如何,在绕组通电的开始用高压供电,使绕组中电流迅速上升,而后用低压来维持绕组中的电流。这种驱动电路的缺点是在高低压连接处电流出现谷点,这样必然引起转矩在谷点处下降。不宜于电机的正常运行。对于斩波电路驱动则可以克服这种缺点,并且还可以提高步进电机的效率。所以从提高效率来看这是一种很好的驱动电路,它可以用较高的电源电压,同时无需外接电阻来限定期额定电流和减少时间常数。但由于其波形顶部呈现锯齿形波动,所以会产生较大的电磁噪声。细分驱动是用脉冲电压来供电的,对于一个电压脉冲,转子就可以转动一步,一般会根据电压脉冲的分配方式,步进电机各相绕阻会轮流切换,固可以使步进电机的转子旋转。细分控制的电路一般分为两类,一类是采用线性模拟功率放大器的方法获得阶梯形电流,这种方法简单,但效率低。别一种是用单片机采用数字脉宽调制的方法获得阶梯电流,这种方法需要复杂的计算可使细分后的步距角一致。3.4 LED显示电路在控制系统中,显示装置是一个重要组成部分,主要用来显示生产过程的工艺状况与运行结果,以便于现场工作人员的正确操作。LED数码管由于具有结构简单、体积小、功耗低、配置灵活、显示清晰、可靠性高的优点,目前被广泛采用。3.4.1 LED显示器的结构原理发光二极管LED是利用PN结把电能转换成光能的固体发光器件,根据制造材料的不同,可以发出红、黄、绿、白等不同色彩的可见光束。LED的伏安特性类似于普通二极管,正向压降为2V左右,工作电流一般在10mv20mv之间较为合适。GNDcdfaGNDedpbg 图3-5 8段LED显示器的结构原理(a) 段排列;(b)共阴极;(c)共阳极一个8段LED显示器的结构与工作原理如图3-5所示。它是由8个发光二极管组成,各段依次记为a、b、c、d、e、f、g、dp,其中dp表示小数点(不带小数点的称为7段LED)。8段LED显示器有共阴极和共阳极两种结构,分别如图3-5(b)、(c)所示。共阴极LED的所有发光管的阴极并接成公共端COM,而共阳极LED的所有发光管的阳极并接成公共端COM。当共阴极LED的COM端接地,则某个发光二极管的阳极加上高电平时,则该管有电流流过因而点亮发光;当共阳极LED的COM端接高电平,则某个发光二极管的阴极加上低电平时,则该管有电流流过因而点亮发光。 8段LED通过不同段点亮时的组合,可以显示09、AF等十六进制数。显然,将CPU的数据线与LED各段引脚相连,控制输出的数据就可以使LED显示不同的字符。通常把控制LED数码管发光显示字符的8位字节数据称为段选码、字符译码或字模,当段引脚dpa与CPU数据位D7D0一一对应相连时,共阴极8段LED显示器的段选码如表4-2所列。以显示字符“3”的段选码为例,“3”的段选码是十六进制的4FH,也就是二进制的01001111。结合图3-5(a)(b),即意味着CPU输出的数据位D7D0 为01001111,则使LED显示器的dp、f、e段接地,g、d、c、b、a段接高电平,当COM端接地时,显示器就显示出数字“3”。如此,通过不同的段选码,即可显示出不同的相应字符。表3-2 8段LED显示器的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7CH83H466H99HC39HC6H56DH92HD5EHA1H67DH82HE79H86H707HF8HF71H8EH数码管共阳极的段选码恰好与共阴极的段选码相反,如共阳极数码管“3”的段选码B0H(10110000)是共阴极数码管“3”的段选码4FH(01001111)的反码。需要注意的是,表3-2只是基于段引脚dpa与数据位D7D0 对应相连这一模式的,如果对应连线改变,则段选码也随之改变。3.4.2 LED显示接口LED静态显示:静态显示虽然占用CPU机时少,显示稳定可靠。占用I/O口资源多,线路复杂、硬件成本高;又因为同时显示,所以功耗大,为了简化硬件电路,降低成本,在单片机应用系统中常采用动态显示的方法,解决多位LED显示的问题。动态显示的硬件接口简单,只需一个公共的七段码输出口(字形口),一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证稍描周期不超过一定的限度(一般在20ms以下)由于视觉的暂留,则可达到“同时”显示各位不同的数字或字符的目的。动态显示的优点是硬件成本低,接口电路简单,但它要求CPU频繁地为显示服务。LED动态显示就是将所有显示位的段选线并联在一起,由一个8位I/O口控制,而位选线则由其它的I/O口控制。8位动态显示电路只需要两个8位的口。一个控制段选码,另一个控制位选线。由于所有位的段选码由同一个口控制,因此要使每位显示不同的字符,必须采用扫描方式。即每一时刻位选只选通一个显示位,同时段选控制口输出显示字符对应的段选码,使该位显示相应的字符,显示一定时间后,再选通其它显示位。如此循环,使每个显示器件显示该位应显示的字符。通过程序控制,不断显示输出相应的段选码和位选码,由于人的视觉暂留效应,就可以获得视觉稳定的显示状态。3.5可编程键盘/显示控制器ZLG7290电路工作原理3.5.1 ZLG7290概述1. I/O控制及数据缓冲器数据缓冲器是双向缓冲器,连接内、外总线,用于传送单片机和ZLG7290之间的命令或数据。I/O控制线是单片机对8279进行控制的引线,CS是8279的片选信号,当CS=0时,ZLG7290才被允许读出或写入信息。WR、RD为来自单片机的读、写控制信号。A0用于区别信息特性:A0=1时,表示数据缓冲器输入为指令、输出为状态字;A0=0时,输入、输出皆为数据。2. 控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示的工作方式,以及有单片机编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。定时控制包含基本计数器。其中计数器是一个可编程的N级计数器。N可以为231之间的数据,由软件编程,以便从外界时钟CLK分频得到内部所需要的100kHZ的时钟。然后再经过分频,为键盘扫描提供适当的逐行扫描频率和显示扫描时间。3. 扫描计数器扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制计数。4位计数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供扫描线(16条);按译码方式工作时,扫描计数器的最低二位被译码后,从SL0SL3输出。因此,SL0SL3提供了4中取1的扫描译码。4. 回复缓冲器、键盘去抖动及控制来自RS0RS7的8根回复线的回复信号,由回复缓冲器缓冲并锁存。在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖电路被置位,延时等待10ms后,再检验该键是否继续闭合,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入ZLG7290内部FIFO(先进先出)存储器。键盘数据格式如下:D7D6D5 D4 D3 D2 D1 D0控制移位扫描回复控制和移位(D6D7)的状态由两个独立的附加开关决定,而扫描(D5D4D3)和回复(D2D1D0)则是被按键置位的数据。D5D4D3来自扫描计数器,是按下键的行列编码,而D2D1D0则来自行/列计数器,它们是根据回复信号而确定的行/列编码。在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的传感器RAM(即FIFO存储器)。在选通输入方式工作时,CNTL/STB为选通输入信号,回复线的内容在CNTL/STB线的脉冲上升沿送入FIFO存储器。5. FIFO/传感器及其状态寄存器FIFO/传感器RAM是一个双重功能的8×8RAM。在键盘或选通方式工作时,它是FIFO寄存器,其输入或读出遵循先入先出的原则。FIFO状态寄存器用来存放FIFO的工作状态。例如,RAM是满还是空;其中存有多少数据;是否操作出错等。当FIFO寄存器不空,状态逻辑将产生IRQ=1信号向单片机申请中断。在传感器矩阵方式工作中,这个存储器又是传感器存储器。它存放着传感器中的每一个状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向单片机申请中断,同时该状态被送入传感器RAM。6. 显示RAM和显示地址寄存器显示RAM用来存储显示数据,容量为16×8位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA03和OUTB03可以单独送数,也可以组成一个8位的码(由编程控制)。显示寄存器的输出与显示扫描结合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存由单片机进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读出或写入后自动递增。3.5.2管脚、引线与功能 图3-6 ZLG7290芯片引脚 采用40引脚封装,其管脚,引线功能如图4-7所示。其引脚功能分述如下: D0D7(数据总线):双向,三态总线,和系统的数据总线相连,用于CPU和ZLG7290间的数据/命令传送。CLK(系统时钟):输入线,为ZLG7290提供内部时钟的输入端。RESET(复位):输入线,当RESET=1时,ZLG7290复位,其复位状态为:16个字符显示;编码扫描键盘;程序时钟编程为31。CS(片选):输入线,当CS=0时ZLG7290被选中,允许CPU对其读,写,否则被禁止。A0(数据选择):输入线.当A0=1时CPU写入的数据为命令字,读出数据为状态字;A0=0时CPU读,写的字节均为数据。RD、WR(读、写信号):输入线.低电平有效,来自CPU的控制信号,控制ZLG7290的读、写操作。IRQ(中断请求):输出线.高电平有效。在键盘工作方式中,当FIFO/传感器RAM村有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。SL0SL3(扫描线):输出线.用来扫描键盘和显示器。它们可以编程设定为译码(4中取1)或