单片机C语言应用与开发第6章.ppt

上传人:牧羊曲112 文档编号:6449632 上传时间:2023-11-01 格式:PPT 页数:134 大小:797KB
返回 下载 相关 举报
单片机C语言应用与开发第6章.ppt_第1页
第1页 / 共134页
单片机C语言应用与开发第6章.ppt_第2页
第2页 / 共134页
单片机C语言应用与开发第6章.ppt_第3页
第3页 / 共134页
单片机C语言应用与开发第6章.ppt_第4页
第4页 / 共134页
单片机C语言应用与开发第6章.ppt_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《单片机C语言应用与开发第6章.ppt》由会员分享,可在线阅读,更多相关《单片机C语言应用与开发第6章.ppt(134页珍藏版)》请在三一办公上搜索。

1、51单片机C语言应用与开发,第6章 ELITE-III开发应用实例,本章主要介绍利用ELITE-III开发板的现有资源进行简单单片机控制系统开发的几个实例本章重点流水灯控制系统的设计与开发数码管和键盘接口的软硬件设计点阵显示系统的设计与开发步进电机控制系统的设计与开发单片机串行通信接口的应用及软件设计特殊串行总线的应用及软件设计LCD显示系统的控制及软件设计,第6章 ELITE-III开发应用实例,本章难点中断函数的定义及设计方法矩阵键盘的设计及键盘识别点阵显示系统的工作原理及软件设计步进电机的驱动及时序设计A/D转换的原理及软件驱动串行通信的中断程序设计特殊总线串行通信接口芯片的工作原理及其

2、寄存器的应用LCD显示模块的工作原理及编程控制,第6章 ELITE-III开发应用实例,本章各章节安排6.1 流水灯控制系统设计6.2 I/O 口的高级应用6.3 点阵显示设计6.4 步进电机控制6.5 A/D 转换设计6.6 单片机串行通信6.7 I2C总线技术 6.8 特殊总线串行通信 6.9 LCD显示设计,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,6.1 流水灯控制系统设计 流水灯是指若干个灯泡(或LED发光二极管)按一定顺序依次点亮的一种装置,有时也称跑马灯,可用在夜间建筑物的装饰等方面。流水灯控制系统是单片机最简单的控制系统之一,具有电路简单、

3、设计灵活、控制方便等特点,是单片机入门开发的首选,几乎所有的单片机开发板都提供流水灯控制系统。本节以ELITE-III开发板为例,介绍流水灯控制系统的设计。6.1.1 流水灯的硬件电路1.发光二极管与单片机的接口 发光二极管 发光二极管简称为LED,是一种特殊的二极管,也具有单向导电性,其正向导通电压一般为1.75V左右。发光二极管通常由镓(Ga)与砷(AS)、磷(P)的化合物制成,可以把电能转化成光能,在电子仪器及其他电器设备中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发 黄光。发光二极管的电路符号如图6-1所示。,第6章 ELITE-III开

4、发应用实例,(2)发光二极管与单片机的接口,第6章 ELITE-III开发应用实例,LED发光二极管与单片机的接口一般可以分为直接式、扫描式与多路复用式三种,其接口电路如图7-2所示。直接式:LED发光二极管的一端(一般是阴极)直接连到对应单片机的一个输出引脚,另一端通过限流电阻接到电源VCC,如图6-2(a)。使用这种连接方式时,单片机的一个I/O端口(P0、P1或P2)最多只能控制8个LED发光二极管。当单片机的对应管脚输出低电平时,电流从VCC经限流电阻、发光二极管后流入单片机,发光二极管开始发光,其发光亮度可由串联的限流电阻控制;当对应管脚输出高电平时,没有电流通过LED发光二极管,发

5、光二极管熄灭。,第6章 ELITE-III开发应用实例,扫描式:LED发光二极管被设计成行列形式的矩阵,其中,各行各列分别接到对应单片机的一个唯一输出引脚,如图6-2(b)。当单片机对应行、列的管脚分别输出高和低电平时,电流从单片机输出高电平的管脚经限流电阻和LED流入到另一个引脚,LED发光二极管开始发光。在扫描式连接时,为了让LED发光二极管显示一个固定的状态,必须有相应的软件扫描程序维持输出的信号。在此种方式下,单片机的一个端口最多可控制16个LED发光二极管。如果两个端口结合使用,一个端口控制行信号,另一个端口控制列信号,则可以控制64个LED的状态。复用式:多路复用式与扫描式类似,也

6、是将LED发光二极管组织成行列形式的矩阵,但是矩阵的行、列信号是由单片机外置的多路解码及锁存芯片进行控制,因此实现了多于单片机输出端口数目的LED发光二极管阵列,本质上就是扫描式的扩充,如图6-2(c)所示。,第6章 ELITE-III开发应用实例,2.流水灯硬件电路单片机控制的流水灯系统如图6-3所示。图中,单片机的P1口接8个发光二极管(LD1LD8)的阴极,控制发光二极管的亮灭。电源VCC经开关JP1后,通过8个限流电阻(R57R64)接到发光二极管的阳极。开关JP1接通时,发光二极管可以发光,显示流水灯的工作状态;断开时,发光二极管不能发光。,第6章 ELITE-III开发应用实例,6

7、.1.2 流水灯软件设计 本节的流水灯由8个LED发光二极管组成,通过单片机的P1口进行驱动,电路如图6-3所示。当8个发光二极管按一定顺序依次点亮时,显示流水灯的工作状态。在流水灯控制系统中,每个发光二极管亮的状态都需要持续一段时间,这段持续时间在单片机控制系统中一般有两种方法实现:定时器中断延时或软件延时。由于51系列单片的定时器资源有限(8051只有的2个定时器,8052也只有3个),所以在流水灯这种系统任务不多且对定时时间要求不是十分严格的情况下,一般采用软件延时。1.软件延时程序软件延时一般通过重复运行一段程序(循环程序)来实现,以下程序可实现软件延时功能:,void delay()

8、unsigned int j;for(j=0;j 20000;j+);,第6章 ELITE-III开发应用实例,改变变量j的取值范围,可以改变延时时间。如果延时时间不够,可以通过两层或多层循环来增加延时时间。延时时间是原来单层循环的20倍。2.流水灯的软件实现由于图6-3的8个发光二极管阳极通过限流电阻接电源VCC,阴极则分别连接到单片机P1口的8根口线。因此,要使某个发光二极管亮,只须在对应口线输出低电平即可;反之,如果要让某个发光二极不亮,则只须在对应口线输出高电平。,第6章 ELITE-III开发应用实例,在C51程序设计语言中,单片机的4个并行I/O口作为特殊功能寄存器使用,以变量的形

9、式在库函数REG52.h(或REG51.h)中进行定义(各并行口的口线,可以以位变量的形式使用)。因此,要使某个并行I/O口各位输出指定的电平,只须对该口所对应的变量赋值即可。例如:要让P1口输出二进制数10100110对应的电平,则只须在C51程序中执行下列语句即可:对于图7-3的硬件电路,如果要使8个发光二极管以流水灯的效果按顺序点亮,则只须对P1口的各位从最低位开始依次赋“0”(其他各位赋值为“1”)。完成这一操作,可在一循环中用左移1位再加“1”的算法实现。假定用变量disp为P1进行赋值,且disp初始值为0 xFE。,P1=0 x0A6;,第6章 ELITE-III开发应用实例,3

10、.花样流水灯对上述程序稍加修改,可以显示花样流水灯的效果,如亮灯左移、亮灯右移、亮灯从两边向中间移再从中间向两边移等。以下为亮灯从两边向中间移动再由中间向两边移动的花样流水灯程序程序,程序中实现流水灯效果的算法采用两个变量移位相加再取反的算法,变量的初值分别为0 x01和0 x80(若采用上述程序的方法,则可用两个变量分别移位加1,再相与的算法,变量初值分别为0 xFE和0 x7F)。,第6章 ELITE-III开发应用实例,4.蛇形花样所谓蛇形花样是指流水灯显示的花样像蛇一样不停地游走,与前述流水灯不同的是:蛇形花样需要多个连续的发光二极管同时亮并流动。一段4位长的蛇形花样流水灯随时间变化的

11、示意图如图6-4所示。,第6章 ELITE-III开发应用实例,6.1.3 利用定时器中断产生延时定时器中断延时属硬件延时,是利用单片机自带(或外接)的定时/计数器每隔一定时间产生一个中断,当中断产生时,才做相应工作来完成延时任务的。利用定时器中断产生延时,不会使程序停留在某一个地方等待延时时间到,CPU可以继续做其他的工作,提高了CPU的工作效率。在单片机系统比较复杂、CPU任务比较繁重或者系统要求的延时时间比较精确时,常使用定时器中断来实现延时功能。定时器中断延时产生的延时时间,其长短主要由系统时钟频率和定时器的计数初值决定。在系统要求的延时时间较短时,可直接在中断服务程序中执行有延时要求

12、的任务;当要求的延时时间较长、需产生多次定时器中断才能到达延时时间时,不能在中断服务程序中执行有延时要求的任务。此时一般用1个(或多个)变量来记录中断的次数,当中断次数与1次中断产生的延时时间相乘达到延时时间要求时,再在主程序中执行有延时要求的任务。对于前述基本流水灯控制程序,若采用定时器0中断产生延时,假定系统时钟频率为11.0592MHz,每个灯亮的延时时间为0.5s,则可求得计数次数X为:,第6章 ELITE-III开发应用实例,当定时器0工作于方式1时,最大计数次数为65536,显然需要多次中断才能达到系统规定的延时时间。为简便起见,可设中断次数number=10,则定时器的计数初值x

13、为:根据以上计算和说明,可写出利用定时器中断实现延时的基本流水灯程序为:,第6章 ELITE-III开发应用实例,6.2 I/O口的高级应用6.2.1 数码管显示器 在单片机系统中,常用LED数码管作为显示输出设备来显示单片机控制系统的工作状态、运算结果等相关信息。虽然LED数码管显示器显示的信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,是单片机控制系统进行人机对话的重要输出设备。1.LED数码管 LED数码管的构造及特点,第6章 ELITE-III开发应用实例,LED数码管的内部实际上由8个发光二极管构成,其中7个发光二极管为线段形(叫做字段),排列成的字符

14、“8”的形状,另一个发光二极管为圆点形状,安放在显示器的右下角作为小数点用。通过发光二极管亮暗的不同组合,可以显示09的数字符号或其它能由这些字形线段构成的各种字符。LED数码管的字形结构如图6-5所示。,第6章 ELITE-III开发应用实例,从内部结构上看,LED数码管中的发光二极管有两种连接方式:一种是共阳极连接,数码管内部8个发光二极管的阳极(正极)全部连接在一起组成公共端,阴极则各自独立引出,其内部电路如图6-6所示。使用时一般将公共端(阳极)接电源VCC,阴极通过限流电阻接至驱动电路的输出端(或单片机的I/O口)。单片机的口线输出低电平时,对应的发光二极管点亮,输出高电平时则不亮;

15、另一种是共阴极连接方式,数码管内部8个发光二极管的阴极(负极)连接在一起组成公共端,阳极则各自独立引出,其内部电路如图6-7所示。使用时公共端(阴极)接地,阳极通过限流电阻接至驱动电路的输出端(或单片机的I/O口),单片机的口线输出高电平时,对应的发光二极管亮,输出低电平时则不亮驱动电路中限流电阻R的值通常根据LED的工作电流计算得到,即R=(VCC-VLED)/ILED。式中,VCC为电源电压(+5V),VLED为LED的正向压降(约1.8V),ILED为数码管中单片LED的工作电流(120mA)。因此,限流电阻一般取几百欧姆。,第6章 ELITE-III开发应用实例,LED数码管的字形编码

16、为了让LED数码管显示数字或符号,需要为数码管提供相应的显示代码,由于这些代码是为了显示字形的,所以也称为字形码或字段码。七段发光二极管,加上一个小数点位,共8位代码,由一个字节的二进字数组成。这个字节的各数据位与数码管各字段的对应关系如表6-1所示。与16进制数对应的LED数码管显示器的7段字形(段)二进制编码如表6-2所示。,第6章 ELITE-III开发应用实例,需要指出的是:上表的字段码并不是绝对的,字段码其实由各字段在字节中的位置决定。如果字段码按格式“gfedcba”形成,则对于字符“0”,其字段码为0 x3F(共阴);而如果字段码按格式“abcdefg”而定,则字符“0”的字段码

17、将变成0 x7E(共阴)。也就是说,字符的字段码可由设计者自行设计,不必拘泥于表6-1和表6-2。,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,2.数码管的静态显示在实际应用中,LED数码管显示器的显示方式有两种:静态显示法和动态扫描显示法。静态显示就是数码管的段线在一定时间内输入固定不变的字段码,静态的显示同一个字符。数码管工作于静态显示方式时,各位数码管的公共端阴极(或阳极)直接接地(或+5V电源),每位的段线(ah)分别独占一个具有锁存功能的输出口线,CPU把欲显示的字形代码送到输出口上,就可以使显示器显示所需的数字或符号。此后,即使CPU不再去访问它

18、,数码管显示的内容也不会消失。静态显示法的优点是显示程序简单,显示亮度高,占用CPU的工作时间少(CPU不必经常去扫描显示器);缺点是占用I/O口较多,硬件成本也较高。静态显示常用在显示器数目较少的系统中。图6-8是一种两个共阳极数码管静态显示电路的示意图,利用图6-8所示电路,在两个数码管上静态显示“78”两个字符的程序段为:,第6章 ELITE-III开发应用实例,3.动态扫描显示动态扫描显示是单片机应用系统中最常见的显示方法之一。它是把所有显示器的8个字段ah的各同名端并联在一起,并把它们接到字段码I/O输出口上。为了防止各个显示器同时显示同一个字符,各显示器的公共端并不接到电源或地,而

19、是接到另一组控制信号,即位输出口上。在动态扫描显示方式下,一组数码管显示器需要两组信号来控制:一组是字段码输出口输出的字形代码,用来控制显示的字符形状;另一组是位输出口输出的控制信号,用于控制哪一位显示器工作,也称为位码。在两组信号的共同控制下,可以按顺序一位一位地轮流点亮每个显示器,显示各自的字符,以实现数码管的动态扫描显示。由于LED具有的余辉特性及人眼的视觉残留现象,尽管各位显示器实际上是分时断续地显示的,但只要选取适当的扫描频率,给人眼的感觉就会是连续稳定的显示,不会察觉有闪烁现象。,P0=0 xF8;P2=0 x80;,第6章 ELITE-III开发应用实例,由于动态扫描显示方式中,

20、各个数码管的字段线是并联使用的,极大地简化了硬件电路,所以特别适用于多个数码管的显示系统。在ELITE-III开发板中,有6个共阳极数码管的动态扫描显示电路如图6-9所示。,第6章 ELITE-III开发应用实例,当单片机P2口低6位输出低电平有效的扫描信号后,6个数码管按顺序轮流工作,此时如果锁存器74HC574输出对应的字段码,则由于LED具有的余辉特性及人眼的视觉残留现象,我们将会看到在6个数码管上连续稳定地显示指定的字符。,第6章 ELITE-III开发应用实例,6.2.2 键盘接口 键盘是单片机应用系统中最常用的输入设备之一,能够向单片机输入数据、传送命令,实现简单的人机对话功能,是

21、人工干预单片机系统的主要手段。在单片机应用系统中,键盘的结构一般有两种形式:独立式键盘和矩阵式键盘。独立式键盘的各键相互独立、互不干扰,每个按键都单独接在单片机的一根I/O口线上;矩阵式键盘也称为行列式键盘,由I/O口线组成行、列式结构,键位则设置在行、列线的交叉点上。1键盘的工作原理键盘实质上是一组按键开关的集合,开关在平时总是处于断开的状态,只有在按键被按下时,开关才闭合。按键的结构和产生的波形如图6-11所示。在图6-11(a)中,按键开关的一端接地,另一端分两路:一路接单片机的P1.0;另一路经上拉电阻接电源VCC。当按键未被按下时,开关处于断开状态,输出高电平;当按下按键后,开关闭合

22、,输出低电平。,第6章 ELITE-III开发应用实例,按键的检测由于按键未被按下时,开关输出高电平;按下后,开关输出低电平。因此,系统可以通过读P1.0口,然后根据P1.0输入电平的状态来判断按键是否被按下:如果P1.0输入为高电平,则说明键没有按下;如果输入低电平,则表示按键已经被按下。在C51程序设计语言中,读取按键值的操作可通过赋值语句完成。假定某按键接在单片机的P1.0口线上(如图6-11),则下列程序段可实现按键的读取和检测:有时为了简化程序,也可直接通过一判断语句完成按键的读取与检测:,sbit key0=P10;a=key0;/读按键的值if(a=0)/检测按键是否被按下,第6

23、章 ELITE-III开发应用实例,抖动的消除通常按键开关都是机械式开关,由于机械触点的弹性作用,按键开关在闭合时并不会马上稳定地接通,弹开时也不会马上断开。在闭合与断开的瞬间都会伴随着一连串的抖动,其波形大致如图6-11(b)所示。抖动时间的长短由按键开关的机械特性决定,一般为510ms。这种抖动对人来说可能感觉不到,但对于单片机系统来说,完全可以检测到。在单片机系统中,如果对抖动不作处理,必然会出现按一次键,系统会多次读入同一个按键值的现象。为确保按一次键,系统只能读到一次按键值,必须消除按键抖动的影响。消除按键抖动的方法通常有两种:硬件去抖和软件去抖。,sbit key0=P10;if(

24、key0=0)/读按键并检测按键是否被按下;,第6章 ELITE-III开发应用实例,硬件去抖是利用在按键的输出部分增加一定的处理电路来消除抖动的。实际应用中,一般采用R-S触发器或单稳态电路。一种采用R-S触发器构成的硬件去抖电路如图6-12所示。综合图6-11(b)所示按键开关的波形和在图6-12所示的硬件去抖电路可知:当开关接到触点1后,第一个抖动波形的低电平到来时,与非门1的一个输入端输入低电平,则输出为高电平。此时与非门2的两个输入端都输入高电平,则与非门2输出低电平,反过来使与非门1的另一个输入端也输入低电平。当第一个抖动波形变为高电平后,由于与非门1的另一个输入端输入的仍是低电平

25、,所以输出能保持高电平不变,将会使与非门2保持低电平输出不变,这样就可以去除掉开关闭合产生的抖动影响,使与非门2的输出端输出稳定不变的低电平;当开关接到触点2后,由于两个与非门的共同作用,同样可以去除掉接触瞬间抖动的影响,使与非门2能输出稳定不就的高电平。,第6章 ELITE-III开发应用实例,键位的编码 键位的编码用于确定按键在键盘中所处的位置。在一个单片机应用系统中,键盘通常包含多个按键,这些键一般都通过I/O口线来进行连接。按下一个键后,单片机通过键盘接口电路可以得到该键的编码。键盘的键位怎样进行编码,是键盘工作过程中一个很重要的问题,常用的键盘编码方式有两种:用连接键盘的I/O口线的

26、二进制数组合进行编码。顺序排列编码。,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,2.独立式键盘与单片机的接口独立式键盘的各键相互独立、互不干扰,每个按键都单独接在一根I/O口线上。实际应用时,可以通过直接检测I/O口线的电平状态来判断哪个按键被按下了。独立式键盘的电路灵活、程序简单。但由于每个按键都要占用一根I/O口线,在按键数量较多时,I/O口线的浪费很大,故独立式键盘常用在按键数量不多的场合。独立式键盘的按键获取有中断方式与查询方式两种。在MCS-51系列单片机中,使用中断方式时,键盘只能直接(或通过一个门电路)接到单片机的P3.0或P3.1口上,查询

27、方式则可以接到单片机的任意口线。独立式键盘与单片机的接口电路如图6-14所示。,第6章 ELITE-III开发应用实例,3.矩阵式键盘与单片机的接口矩阵式键盘也称为行列式键盘,由I/O口线组成行、列式结构,键位则设置在行、列线的交叉点上,其结构如图6-13所示。图中,P1口的8根线分成两组,构成4行、4列的矩阵键盘,可控制16个按键。与一根线控制一个按键的独立式键盘相比,矩阵式键盘少用了一半的接口线,节约了硬件资源,而且需要的按键越多,情况越明显。因此,在按键数量较多时,常采用矩阵式键盘。矩阵式键盘的连接方法有多种:可直接与单片机的I/O口线相连;也可通过扩展的并行接口芯片(如74HC244、

28、8255A等)与单片机相连;还可利用可编程的键盘、显示接口芯片(如8279等)与单片机相连。图6-15是ELITE-III开发板上矩阵键盘与单片机的接口电路,图中,矩阵键盘的列线通过74HC244接到单片机的P0口(74HC244的片选信号RDkey由地址译码器74HC138的/Y4提供);行线分别接单片机的P2.0、P2.1以输出行扫描信号。,第6章 ELITE-III开发应用实例,矩阵式键盘的工作过程 矩阵式键盘的工作过程大体可分为两步:第一步,按键检测,CPU检测键盘上是否有键按下。第二步,按键识别,判断是哪一个键被按下。按键检测。按键识别。注:在ELITE-III开发板上,为了硬件系统

29、总体设计的方便,电路设计时16个按键设计成28的矩阵键盘形式,但在印刷电路板的布局上仍然将16个按键设计44的矩阵键盘形式。,第6章 ELITE-III开发应用实例,矩阵键盘的工作方式 在单片机系统中,检测键盘上有无按键被按下常采用3种方式:查询方式、定时扫描方式和中断方式。查询方式。定时扫描方式。中断方式。,2.简易电子钟的硬件电路本简易电子钟的显示电路和键盘输入电路如图6-9、6-15所示。显示电路中,锁存器74HC574的片选由译码器74HC138的/Y2(LCKDisp)提供,键盘输入电路中,缓冲器74HC244的片选由译码器74HC138的/Y4(RDkey)提供。3.简易电子钟的软

30、件实现综合图6-9和图6-15电路,可实现简易电子钟。,第6章 ELITE-III开发应用实例,6.3 点阵显示设计 随着大规模集成电路和计算机技术的高速发展,LED显示屏作为一种新兴的显示媒体,得到了飞速发展。与传统的显示媒体相比较,LED显示屏具有亮度高、动态影像显示效果好、故障低、能耗少、使用寿命长、显示内容多样、显示方式丰富、性价比高等优势,成为新一代大屏幕显示媒体的首选,已广泛应用于各行各业。本节先介绍了ELITE-III开发板上的88点阵显示系统,然后介绍了一种扩展的1616点阵显示系统设计方法。6.3.1 88点阵显示设计 所谓LED点阵显示,就是将多个LED发光二极管按行列顺序

31、排列组合起来。每个LED构成点阵中的一个像素,把每个LED的阴极和阳极都引出来,就可以对点阵中的任何一个LED像素加以控制,从而达到需要的显示效果,88点阵显示器就是由64个LED组合而成。1.点阵模块目前市面上的LED点阵显示屏一般是将列输入线接至内部LED的阴极,行输入线接至内部LED的阳极,当阳极(行线)输入高电平,阴极(列线)输入低电平时,对应的LED发光二极管点亮。常见的88点阵显示模块外观及引脚如图6-16所示:,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,2.字符取模点阵显示模块是通过LED发光二极管的亮灭组合来显示字符的,而LED的亮灭由点阵

32、显示模块行、列线的高低电平进行控制。当行线输入高电平有效的行扫描信号时,每一行的列线编码信号叠加在一起,就构成了一个对应的点阵字符(列扫描的原理相同)。,第6章 ELITE-III开发应用实例,3.硬件电路 ELITE-III开发板上自带一个88的点阵显示模块,由2片8D锁存器74HC574(U2、U10)分别锁存列编码数据和行扫描信号,锁存器的片选信号由3-8译码器(U12)的/Y1和/Y0提供,其电路组成模块如图6-20所示。,第6章 ELITE-III开发应用实例,信号锁存与驱动模块,第6章 ELITE-III开发应用实例,信号的锁存与驱动电路如图6-21所示。电路由2片并行输入8D锁存

33、器74HC574(U2、U10)、8个晶体管反相放大电路及8个限流电阻组成。其中,列编码锁存器(U2)接收单片机输出的字符点阵编码,其输出经220限流电阻后控制点阵模块的列线,显示字符的点阵图形;行扫描锁存器(U10)接收单片机输出的行扫描信号,其输出经8个晶体管组成的驱动电路将电平反相、电流放大后驱动点阵模块的行线,以扫描的方式分行显示点阵字符各列,第6章 ELITE-III开发应用实例,的图形,由于人眼的视觉残留现象,当扫描速度足够快时,人们将会看到在点阵显示屏上显示一个完整的字符形状;限流电阻负责保护点阵模块的发光二极管,以免二极管两端电压过高、电流过大而烧坏发光二极管。点阵显示模块 点

34、阵显示模块由1片88点阵模块组成,行编码锁存器和列扫描锁存器输出信号经放大或限流后,与点阵模块的连接电路如图6-22所示。4.软件实现在上述点阵显示系统硬件电路的基础上结合汉字取模软件所得的字符点阵编码,编写适当的软件就可以控制点阵显示屏显示相应的汉字或英文字符。例如,汉字“中”,其点阵编码为:0 xFF、0 xF7、0 x81、0 xB5、0 x81、0 xF7、0 xF7、0 xFF。程序中,将其编码定义为一个字符型数组:,第6章 ELITE-III开发应用实例,根据硬件电路的工作原理可知,LED点阵显示系统通过行扫描、列编码的方式实现字符的显示。因此,程序中可先让列编码锁存器U2锁存第1

35、列的点阵编码word0,然后由行扫描锁存器U10锁存第1行扫描数据,延时一段时间(如50us)后,再由U2锁存第2列的编码word1,然后再由U10锁存第2行扫描数据并延时一段时间(50us)。如此下去直到8行全部扫描完,再从头开始扫描。由于人眼的视觉残留现象,当扫描速度足够快时,看上去就是一个完整的汉字“中”。程序流程如图6-23所示。,unsigned char word8=0 xFF,0 xF7,0 x81,0 xB5,0 x81,0 xF7,0 xF7,0 xFF,6.3.2 1616动态点阵显示1616点阵显示屏通常由4片88点阵显示模块组合而成(市面上一般很少有1616点阵显示模块

36、出售)。在了解了88点阵模块和点阵显示系统的工作原理及软件编程后,通过扩展锁存器和点阵模块,可以设计成1616(及以上)的点阵显示系统。但如果使用74HC574等并入/并出锁存器进行扩展,硬件电路设计会比较麻烦。因此,在使用多片88点阵模块设计大屏幕点阵显示器时,一般使用74HC595等串行输入/并行输出锁存器以简化硬件电路的设计,如图6-24所示。,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,1.硬件电路设计图6-24所示电路是一种采用2片串入/并出锁存器74HC595和2片3-8译码器74HC138设计的1616点

37、阵系统硬件电路。图中,2片74HC595(U4、U5)采用级联的方式构成16位并行输出,锁存单片机串行输出的16位列编码数据,控制4片88点阵模块组合而成的1616点阵屏的列线;2片74HC138采用级联的方式,连接成4-16译码器,输出行扫描信号。行扫描信号经驱动电路(PNP型晶体管9012)反相放大后,控制1616点阵显示屏的行线。1616点阵屏由4片88点阵模块的根据同名行、列组合连接而成。点阵屏的显示正确与否,主要取决于两个因素:一是正确的显示效果,主要靠软件编程控制来实现;,第6章 ELITE-III开发应用实例,二是决定待显示文字(或图形)本身的字模格式(C51或A51)。点阵字模

38、的提取软件很多,且每种软件都提供多种提取方式,实际使用时要根据硬件电路的设计选择可行的字模提取方式。本例使用PCtoLCD2002完美版,以C51格式提取“上午天气好”等5个汉字的1616点阵字模,在点阵屏上滚动显示。2.系统软件实现,第6章 ELITE-III开发应用实例,6.4 步进电机控制 步进电机是一种将电脉冲信号转换成相应的角位移或转速的精密执行元件。在非超载的情况下,电机的转速、停止位置只取决于脉冲信号的频率与脉冲数,而不受电源电压、负载大小、环境条件变化的影响,给电机加一个脉冲信号,电机则转过一个步距角。步进电机采用开环控制,避免了闭环控制的复杂性、减小了系统的成本,却可以获得接

39、近闭环的良好控制性能。基于以上优点,加上步进电机只有周期性的误差而无累积误差等特点,使得其在精确控制速度、位置等领域应用非常广泛。本节详细介绍了步进电机的特点、类型、原理及技术参数和ELITE-III开发板上步进电机的控制电路及软件编程等内容。6.4.1 步进电机 步进电机分为很多种,常见的步进电机实物图如图6-25所示:1.步进电机的特点步进电机是一种将电脉冲信号转变为角位移(或线位移)的开环控制元件,其主要特点如下:,第6章 ELITE-III开发应用实例,控制精度高。一般步进电机的精度为步进角的3-5%,且不累积。步进电机外表允许的最高温度有限。步进电机温度过高会使电机的磁性材料退磁,从

40、而导致力矩下降乃至于失步。因此,电机外表允许的最高温度主要取决于不同电机磁性材料的退磁点。但一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机在一般工作环境下完全可以正常运行。步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势,且频率越高,反向电动势越大。在这个反相电动势的作用下,电机随频率(或速度)的增大相电流将减小,从而导致力矩下降。,第6章 ELITE-III开发应用实例,步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正

41、常启动的脉冲频率,如果脉冲频率高于该值,电机将不能正常启动,会出现丢步或堵转的现象。在有负载的情况下,启动频率则更低。如果要使电机达到高速转动,脉冲频率应有一个加速的过程,即启动时频率较低,然后按一定加速度升到所希望的高频(电机转速应从低速升到高速)。2.步进电机的分类常见的步进电机一般分为三种类型:永磁式(PM)、反应式(VR)及混合式(HB),各种类型步进电机的主要特点为:永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度。反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。混合式步进混合了永磁式和反应式的优点,又分为两相、三相和五相等几种。其

42、中两相步进角一般为1.8度,这种步进电机的应用最为广泛。它的步距角小,出力大,动态性能好,是目前性能最高的步进电动机,有时也被称作永磁感应式步进电动机。,第6章 ELITE-III开发应用实例,3.步进电机的工作原理通常步进电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一个矢量磁场。该磁场会带动转子旋转一角度,使得某对转子的磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度,转子也随着该磁场转一个角度。每输入一个电脉冲,电机转子转动一个角度,即前进一步。转子输出的角位移与输入的脉冲数成正比,转速与脉冲频率成正比,定子绕组的通电顺序决定电机的转动方向,所以可通过控制输入脉冲的数量

43、、频率及电机各相绕组的通电顺序来控制步进电机的转动。步进电机的内部结构如图6-26所示。,第6章 ELITE-III开发应用实例,当三相绕组按ABCA顺序循环通电时,转子将会按顺时针方向,以每个通电脉冲转动3的规律步进式转动起来。若改变通电顺序,按ACBA顺序循环通电,则转子将按逆时针方向并以每个通电脉冲转动3的规律转动。因为在步进电机转动的过程中,每一瞬间只有一相绕组通电,并且按三种通电状态循环通电,故称为单三拍运行方式,单三拍运行时的步矩角b为30。三相步进电动机还有另外两种通电方式:双三拍运行方式和单、双六拍运行方式。双三拍运行方式按ABBCCAAB顺序循环通电运行;单、双六拍运行方式按

44、AABBBCCCAA顺序循环通电运行,六拍运行时的步矩角将减小一半。反应式步进电动机的步距角可按下式计算:b=360/NEr 式中:Er 转子齿数;N 运行拍数,N=km,m为步进电动机的绕组相数,k=1或2。,第6章 ELITE-III开发应用实例,4.步进电机的技术参数步进电机的技术参数包括静态指标和动态指标两大类。步进电机的静态指标 相数。产生不同对N、S磁场的激磁线圈对数,常用m表示。拍数。完成一个磁场周期性变化所需脉冲数(或指电机转过一个齿距角所需脉冲数),用n表示。以四相步进电机为例,有四相四拍运行方式A-B-C-D-A(或AB-BC-CD-DA-AB),四相八拍运行方式A-AB-

45、B-BC-C-CD-D-DA-A。步距角。指对应一个脉冲信号,电机转子转过的角位移,用表示,=360/(转子齿数J运行拍数)。以转子齿数为50齿的电机为例,四拍运行时步距角为=360/(504)=1.8(俗称整步),八拍运行时步距角为=360/(508)=0.9(俗称半步)。定位转矩。电机在不通电状态下,电机转子自身的锁定力矩,由磁场齿形的谐波以及机械误差形成。,第6章 ELITE-III开发应用实例,静转矩。电机在额定静态电流的作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气

46、隙有关,但过份采用减小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械噪音。步进电机的动态指标 步距角精度。失步。指电机运转时,运转的实际步数不等于理论上的步数。失调角。最大空载起动频率。最大空载的运行频率。运行矩频特性。电机共振点。,第6章 ELITE-III开发应用实例,6.4.2 步进电机驱动系统1驱动电路的组成 步进电机需要专门的驱动电路进行驱动,驱动电路和步进电机构成一个有机的整体。在电机一定的情况下,电机的运行性能主要取决于驱动电路。驱动电路一般由变频信号源、环形分配器、功率放大器等3部分组成。变频信号源是一个频率可变的脉冲信号发生器;脉冲分配器将脉冲信号按一定

47、的逻辑关系加到放大器上。变频信号源和环形分配器共同作用,产生驱动步进电机的环形脉冲序列,使步进电机按一定的运行方式运转;功率放大电路对脉冲信号的电流进行放大。步进电机控制系统的基本结构如图6-27所示。,环形脉冲序列可由常规数字逻辑电路、可编程逻辑芯片等硬件电路产生,也可由单片机控制系统通过软件编程产生。通过单片机控制系统软件编程产生脉冲序列,具有电路设计简单、控制灵活等优点,在条件允许的情况下,一般由单片机系统产生控制步进电机的环形脉冲序列。实际应用中,脉冲信号的占空比一般设定为0.30.4左右。占空比越大,电机转速可调得越高。2.功率放大电路功率放大电路是驱动系统中最重要的组成部分。步进电

48、机在一定转速下的转矩取决于它的动态平均电流(非静态电流),动态平均电流越大电机力矩越大。要使平均电流大,就需要驱动系统尽量克服电机的反电动势,因而不同的场合需要采取不同的的驱动方式。驱动方式一般有单一电压源、高低压切换型电源、单电压斩波恒流电源、细分电路等形式。ELITE-III开发板采用单电压斩波恒流控制芯片ULN2003设计功率放大电路,如图6-28所示。,第6章 ELITE-III开发应用实例,第6章 ELITE-III开发应用实例,图中,锁存器74HC574(U13)接收并锁存单片机P0口输出的环形脉冲信号,其片选输入端/OC接地,锁存输入端CLK接ELITE-III开发板上地址译码器

49、(U12)的/Y5(LCKMOTOR),锁存器输出的环形脉冲信号经驱动芯片ULN2003(U14)将电流放大后,通过开发板上的电机接口驱动步进电机。,第6章 ELITE-III开发应用实例,6.4.3 简单步进电机控制程序 从图6-28可以看出,ELITE-III开发板上的电机接口为6针接口,可接二相、三相、四相等步进电机。本书以四相步进电机为例,介绍简单步进电机控制程序(正、反转程序)的设计。1.脉冲分配四相步进电机的工作方式有四相四拍(步距角1.8度)和四相八拍(步距角0.9度)两种。在四相四拍方式下,脉冲序列可为A-B-C-D-A或AB-BC-CD-DA-AB;在四相八拍方式下,脉冲序列

50、为A-AB-B-BC-C-CD-D-DA-A。为了提高步进电机的控制精度,本例选择四相八拍工作方式。2.设计思路根据步进电机的工作特点(低速时可以正常启动并运转,但若高于一定速度就无法启动,并伴有啸叫声),为了使步进电机正常启动并防止失步现象的发生,步机电机应在一个较低的转速下启动,然后再现逐渐加速到需要的转速。停止时,也应该先逐渐降低转速,最后再停止步进电机的转动。,第6章 ELITE-III开发应用实例,因此,控制步进电机正、反转的程序应具备如下功能:正转加速后匀速 正转减速后停止 反向加速后匀速 反向减速后停止。控制步进电机正、反转工作的程序流程如图6-29所示。3.正、反转步进电机控制

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号