收藏 分享(赏)

第6章 80C51的系统扩展.ppt

上传人:sjmd695 文档编号:10200967 上传时间:2019-10-18 格式:PPT 页数:120 大小:1.08MB
下载 相关 举报
第6章 80C51的系统扩展.ppt_第1页
第1页 / 共120页
第6章 80C51的系统扩展.ppt_第2页
第2页 / 共120页
第6章 80C51的系统扩展.ppt_第3页
第3页 / 共120页
第6章 80C51的系统扩展.ppt_第4页
第4页 / 共120页
第6章 80C51的系统扩展.ppt_第5页
第5页 / 共120页
点击查看更多>>
资源描述

1、本章学习目标 : 了解单片机系统扩展的意义,常用存储器的应用 特点和存储器扩展的基本方法 理解I/O接口的作用,熟悉常用I/O接口的功能和用法 了解8155的工作方式及与80C51的接口方法,能读懂教材中8155的控制实例熟悉中断优先控制的方法 熟练掌握LED数码管的显示原理及与80C51的接口方法,能独立编写与教材同等难度的LED数码管控制程序 熟练掌握LED点矩阵显示器的显示原理及驱动方法,借助资料独立编写与教材同等难度的LED点矩阵显示器控制程序 熟悉独立式按键和矩阵式键盘的结构特点,借助资料独立编写与教材同等难度的控制程序,第6章 80C51 的系统扩展,6.1.1 系统扩展的概念80

2、C51单片机中已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),使用非常方便,应用于小型控制系统已经足够了。但要构成较为复杂的应用系统,有时会感到以上资源中的一种或几种不够用,这就需要在80C51芯片外再扩展相应的芯片或电路,使相关功能得以扩充,我们称之为系统扩展(即系统资源的扩充)。,6.1系统扩展概述,6.1.2扩展系统总线结构,单片机系统扩展有并行扩展和串行扩展两种方法。并行扩展通过单片机的三总线(AB、DB、CB)来实现;串行扩展是利用SPI三总线和I2C双总线的串行系统扩展。,SPI三线同步总线: 串行外围设备接口SPI(serial periph

3、eral interface)总线技术是Motorola公司推出的一种同步串行接口。Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其它事务。,单片机外部并行扩展以单片机为核心,通过系统总线挂接存储芯片或I/O芯片来实现。挂接存储器芯片就是存储器扩展,挂接I/O接口芯片就是I/O扩展。扩展系统总线结构如图6-1所示。,图6-1 扩展系统总线结构,单片机外部并行扩展的总线结构,地址总线用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选

4、择。地址总线的位数决定着可访问的存储器或I/O口的容量。80C51单片机有16条地址线。所以能寻址64KB空间。,80C51单片机的16位地址线分为两部分:高8位地址线:由P2 口提供;低8位地址线:由P0 口提供。,由于P0口是低8位地址和8位数据的复用线,因此必须外接锁存器,用于将先发送出去的低8位地址锁存起来,然后才能传送数据。 需要注意:P0、P2口在系统扩展中用作地址线后就不能作为一般I/O口使用。,1地址总线AB(Address Bus),数据总线用于在单片机与存储器之间或单片机与I/O端口之间传送数据。数据总线是双向的,可以进行两个方向的数据传送。80C51单片机数据总线为8位,

5、由P0口提供。在数据总线上可以连接多个外围芯片,但在某一时刻只能有一个有效的数据传送通道。,2数据总线DB (Data Bus),控制总线实质上是一组控制信号线,用于协调单片机与外围芯片间的联系。在对80C51进行系统扩展时用到的控制信号有:地址锁存允许信号ALE、外部程序存储器读选通信号 、外部存储器访问允许信号 、外部数据存储器读写选通信号 、 等。,3控制总线CB (Control Bus),6.2存储器扩展,存储器是用来存放程序和数据的,它由专用的存储芯片构成。80C51单片机的程序存储器和数据存储器相互独立,均为64KB,其控制信号也各自独立。存储器扩展的内容包括:存储器的地址线与单

6、片机的地址线间的连接、相应数据线间的连接和控制线间的连接等。,6.2.1存储器的分类,存储器的分类方法较多:如果按存储器所处位置划分,可分为片内存储器和片外存储器;根据用途不同,可分为程序存储器和数据存储器;按照存取方式和使用功能,可分为随机存取存储器(Random Access Memory,简称RAM)和只读存储器(Read Only Memory,简称ROM)。,特点可以将数据任意读出和写入;存储的信息不稳定,一旦掉电就会丢失dvnamis。 由于RAM的读写操作方便,所以常用作数据存储器,1.随机存取存储器RAM,分类,特点编入程序或写入数据后只能读出不能写入(指单片机在 正常工作状态

7、下); 掉电以后所存内容不会丢失,通电后照常能够使用。因 此常用作程序存储器。 分类 根据结构和工艺不同,ROM可分为以下几种:,2.只读存储器ROM,掩模ROM 可编程的PROM(Programmable ROM) 紫外线可擦除可编程的EPROM(Erasable Programmable ROM)电可擦除可编程的EEPROM(Electrically Erasable Programmable ROM) 闪速存储器Flash,注:“自动”指断电或写入数据时,原有数据自动擦除,表6-1是半导体存储器的分类和性能对照表。,扩展程序存储器一般采用掉电信息不丢失的ROM类芯片,如EPROM和EEP

8、ROM;扩展数据存储器一般采用RAM类芯片,如静态RAM 6116、6264、62256等。目前扩展存储器以EEPROM的使用最为普遍,它既能用作程序存储器,又能用作数据存储器。常用的EEPROM芯片主要有Intel 2817A、2864A等。,6.2.2 常用存储器扩展芯片,图6-2 Intel 2864A的引脚,以2864A为例说明,其结构如图6-2所示。其中A0A12为地址线;I/O0I/O7为双向数据线; 为片选信号线; 为输出允许信号线; 为写信号线。,6.2.3 扩展EEPROM程序存储器,图6-3 80C51单片机扩展程序存储器2864A的硬件连接图,由图6-3可知此时2864A

9、用作程序存储器,在一般情况下,不需要向里面写入数据,只进行程序的读出操作,因此在接线时,将80C51的 信号直接与2864A的 引脚相连,当单片机需要从外部程序存储器读取程序时, 引脚为低电平,根据P2口和P0口提供的地址,2864A中相应的存储信息(指令的机器代码)就能从程序存储器中取出。,表6-3 74LS373的真值表,图6-4 74LS373的位结构简图,图6-4所示。表6-3列出了74LS373的真值表。 在这种连接方式下,2864A的地址范围是0000H1FFFH(未与2864A连接的A15、A14、A13视为0)。想一想如果将未与2864A连接的A15、A14、A13视为1,28

10、64A的地址范围又是什么?,6.2.4扩展EEPROM数据存储器,1.硬件电路图6-5是2864A与80C51单片机的硬件连接图,这时2864A用作数据存储器。在图中,2864A的片选 与80C51的P2.5相连,作为最高位地址A13,且要一直保持有效状态。由于2864A为8K容量,本身具有13条地址线,所以该扩展系统共有14条地址线A0A13。其中的低8位地址线通过74LS373对80C51的P0 口地址锁存后得到。2864A的 (数据读出控制)与 (数据写入控制)分别受80C51的 、 引脚控制。数据口线I/O0I/O7直接与80C51的数据口P0 相连。在这种连接方式下,2864A的地址

11、范围是0000H1FFFH(未与2864A连接的A15、A14视为0)。,图6-5 80C51单片机扩展数据存储器2864A的硬件连接图,想一想如果将未与2864A连接的多余地址线视为1,2864A的地址范围又是什么?,2读写操作,80C51访问EEPROM时采用如下指令完成读写操作:,MOVX DPTR,A ;将A中内容写入EEPROM 或 MOVX A ,DPTR ;将EEPROM中内容读入A中,需要说明,由于EEPROM的数据写入时间较长,因此在对EEPROM的某一单元执行了写数据操作后,一般需要延时20ms左右的时间才能对下一单元进行写操作。所以在“MOVX DPTR,A ”指令后常加

12、一条软件延时20ms的调用子程序语句“LCALL DELAY20”。,6.2.5存储器的综合扩展,有时在一个系统中既要扩展程序存储器,又要扩展数据存储器,这就是综合扩展。,1单个芯片扩程序存储器和数据存储器 80C51单片机的程序存储器和数据存储器虽然彼此独立,但我们可以用一定的控制电路对它们统一编址,此时数据存储器、程序存储器和I/O共同占用64KB的存储空间。如果系统对程序存储器和数据存储器的容量需求不大,可以只扩展一片EEPROM,对其内部空间进行合理划分,将某一区域定义为程序存储空间,其它区域设为数据存储空间。电路如图6-6 所示。,图6- 6 存储器综合扩展电路,在图中,将80C51

13、的 (从数据存储器中读数据)、 (选通程序存储器)信号相与后接入2864A的 引脚。这样,当 或 信号有一个为低电平时,就能从存储器中读取相应的数据或程序。,(1)读程序,由于硬件连接使 =0,所以单片机自动读取外部程序存储器。因此要求用户在编制程序时要将程序存储区和数据存储区划分清楚(伪指令ORG规定程序存储器地址,指针DPTR指示数据存储器地址),存储程序时不要占用数据存储区。,(2)读/写数据存储器,80C51读数据,是由指令性质决定的。当执行“MOVX A,DPTR”指令时,CPU时序使 引脚输出低电平,于是2864A的 引脚也为低电平,相应数据存储单元的数据会出现在数据线上,80C5

14、1读入该数据,存在累加器A中。 同理,80C51要执行写操作时,CPU时序使单片机的 引脚输出低电平,可以对2864A执行写操作。,该扩展电路的寻址范围是0000H1FFFH(未与2864A连接的A15、A14、A13视为0)。如设定其中0000H0FFFH是程序存储区;1000H1FFFH是数据存储区。为防止误将数据写入程序存储区,可采用图6-7所示的写保护电路。此时,单片机的P2.4引脚一路接写保护电路,另一路接2864A最高位地址线A12。此时0000H0FFFH只能读出不能写入。想一想如果将未与2864A连接的多余地址线视为1,2864A的地址范围又是什么?,图6-7 写保护电路,2多

15、个芯片扩程序存储器和数据存储器,当一块芯片的容量不够时,我们还可以用多块芯片来扩展程序存储器和数据存储器。这时常采用译码器产生各个芯片的片选信号,常用的译码器有74LS138(38线)、74LS139(双24线),其引脚图见附录C。下面以74LS138为例来进行扩展,74LS138的工作条件是4、5引脚接低电平,6引脚接高电平。C、B、A引脚输入不同数值时,对应 某一引脚输出0,如CBA=110时,其对应的十进制数是6,所以 引脚输出0,其它引脚输出1,当CBA=111时, 输出0,其余与此类似。图6-8给出了三块芯片的存储器扩展图,其中6264是RAM芯片,其引脚和读写与2864类似,在此不

16、详细描述,其地址空间分配情况见表6-4,其中号芯片是数据存储器,号芯片是程序存储器。,图6-8 多芯片程序存储器和数据存储器扩展,表6-4 芯片起止地址分析表,6.3 并行I/O口扩展,6.3.1 I/0接口简介,CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。,I/O接口的任务是通过系统总线实现80C51单片机与I/O电路和外围设备的联系,按照芯片能否实现编程,I/O接口通常分为两类:不

17、可编程I/O接口芯片 通常是一些锁存器或驱动器, 如74LS273、74LS373和 74LS244等;可编程I/O接口芯片 能够通过CPU输入不同的命令和参 数,并控制相关的I/O电路或外设作相应的操作,如并 行接口芯片8155、8255和8279等。,80C51单片机的I/O口线共有32条,但P3口是多用途的,若用作第二功能时,就不能作一般I/O口线;在进行存储器扩展时,P0和P2也不能作I/O口。这样,在极端情况下,只有P口的8根线可供用户作I/O口线使用。因此,在实际应用系统中,往往需要扩展I/O口。通常有简单扩展和使用可编程接口芯片来扩展两种途径。,6.3.2并行I/O口的简单扩展,

18、1扩展方法,类似于扩展数据存储器,即把每一个I/O端口当作一个片外数据存储器单元,给它分配存储空间的一个地址。直接使用访问片外数据存储器的指令(MOVX指令)来访问扩展的I/O口。但当应用系统扩展较多的I/O口时,将会占去大量的RAM地址。原则上说,I/O口的扩展容量最多可达64KB,但实际上并不需要这么多。,图6- 9 并行I/O口的简单扩展,2简单的I/O口扩展实例,扩展数量不多且功能简单的I/O口,常采用TTL电路或CMOS电路锁存器、三态缓冲器。以如图6- 9 所示电路为例,要求按下任意一个键时,点亮对应的发光二极管。,在该系统中,采用双4位三态门电路74LS244作扩展输入,8位锁存

19、器74LS273作扩展输出。P0口为双向数据线,既能从74LS244输入数据,又能将控制状态传送给74LS273输出。74LS244的位结构简图见图6-10。表6-5给出了74LS244的逻辑功能表。,图6-10 74LS244的位结构简图,表6-5 74LS244的逻辑功能表,图6-11 74LS273的位结构简图,表6-6 74LS273的逻辑功能表,图6-11是74LS273的位结构简图,表6-6是74LS273的逻辑功能表。输入控制信号由P2.0和 合成,当二者同时为低电平0时,或门输出为0,选通74LS244,将外部开关状态作为数据输入到总线。当无键按下时,输入为全1;若按下某键,则

20、相应输入端输入0。,输出控制信号由P2.0和 合成,当P2.0=0, 出现负脉冲时,该负脉冲的上升沿。选通74LS273,将P0口数据锁存到74LS273,用来控制发光二极管的亮灭。由图可见,当某条数据线上输出低电平0时,该线上的LED发光。显然,输入和输出都是在P2.0=0时有效,二者的口地址同为0FEFFH,但因分别是由 和 信号控制,故不会发生冲突。 参考程序如下:LOOP: MOV DPTR,#0FEFFH ;指向扩展I/O口地址MOVX A,DPTR ;从244读入数据, 检测开关状态MOVX DPTR,A ;向273输出数据,驱 动LEDAJMP LOOP ;循环检测除74LS27

21、3、74LS244以外,还可用74LS373、74LS377等芯片扩展80C51的I/O口。,6.3.3 可编程I/O扩展芯片8155,采用可编程接口芯片来扩展I/O口,可以完成复杂的接口功能,如扩展并行I/O口采用8255、8155,扩展串行I/O口采用8251,扩展定时/计数器采用8253等。 8155是单片机常用的接口扩展芯片。其内部含有256B的静态RAM,2个8位的并行I/O接口,1个6位的并行I/O接口和1个14位的定时/计数器。8155与80C51系列单片机的连接非常简单。,18155的结构和技术性能,(1) 内部结构8155芯片采用40脚双列直插式封装,其引脚和内部结构如图6-

22、12所示。从图中不难看出,在8155内部具有:,256字节的静态RAM,存取时间为400ns3个通用的输入/输出口PA、PB、PC1个14位的可编程定时/计数器。1个8位命令寄存器(只能写入)/8位状态寄存器(只 能读出),(2) 引脚介绍,图6-12 8155引脚和内部结构图,28155的工作方式与地址编码,8155能工作于以下3种方式:作80C51单片机片外256字节RAM使用。条件是IO/0,这时CPU对8155的256B的RAM单元寻址。 作扩展I/O口使用。条件是IO/1。这时8155片内的3个I/O接口及命令/状态寄存器被选中。作14位定时/计数器使用。条件是IO/1。由于I/O接

23、口、命令/状态寄存器和定时/计数器各自对应的口地址不同,因此不会发生冲突。,8155内部寄存器和I/O口的编址情况见下表,38155的命令/状态寄存器,8155内部的命令寄存器和状态寄存器使用同一个端口地址。命令寄存器只能写入不能读出,状态寄存器只能读出不能写入。命令字8155的 3个I/O口的工作方式由CPU写入命令寄存器的控制命令字决定。命令字的格式如图6-13所示。,图6-13 8155的控制命令字,表6-8 C口工作方式的设置,表6-9 C口用作控制信号的说明,8155的状态寄存器用于锁存8155 I/O口和定时/计数器的当前状态,供CPU查询。状态寄存器只能读出,不能写入,而且和命令

24、寄存器共用一个口地址。CPU对该地址写入的是命令字,读出的是状态字。状态字格式如图6-14 所示。,图6-14 8155的状态字,状态字,8155的定时/计数器是一个14位的减法计数器,可用来定时或对输入脉冲进行减法计数。要对计数的过程进行控制,必须首先装入计数初值。由于计数长度为14位,故定时器的计数初值由两个字节组成,每次装入8位,要分两次才能全部装入。8155定时/计数器的计数长度为2H3FFFH之间的任意值。定时/计数器格式如表6-10所示。,表6-10 定时/计数器的设置,48155的定时/计数器,图6-15 8155定时/计数器的4种输出波形,需要指出的是,硬件复位信号RESET,

25、会使定时/计数器停止工作,直至由命令/状态寄存器再次启动计数操作(TM2TM1=11)时为止。,定时/计数器有4种输出方式,分别由M2和M1定义,每一种方式的输出波形如图6-15所示。,80C51单片机可以直接和8155连接而不需要任何附加电路,直接为系统增加256字节外部RAM、22根I/O线及一个14位定时器。其基本硬件连接方法如图6 -16所示。,图6-16 80C51与8155连接的硬件电路图,580C51单片机与8155的连接与操作,图中的P2.X、P2.Y可以是P2 口的任意引脚,如果图中X取7,Y取6,则8155中RAM的地址因P2.7(A15)=0, P2.6(A14)=0,可

26、选为0011 1111 0000 0000B(3F00H)0011 1111 1111 1111B(3FFFH)。此时I/O端口地址和命令/状态寄存器地址由下表得:7F00H7F05H。表中无关位选0或1均可。,表6-11 图6-16的地址分配表,应用系统电路如图6-17所示。试编程实现如下功能:将PA口设定为输出口,PB口设定为输入口,当按钮没按下时,PA口作单一灯的左移;当按钮按下时,PA口作单一灯的右移。,分析: 首先应对8155初始化,然后判断按钮状态,据此作灯的移动,图6-17 8155应用实例硬件电路,68155应用实例,ORG 0100HSETB P2.0 ;令IO/=1,选择使

27、用8155的I/O口MOV R1,#00H ;指向命令/状态寄存器地址00HMOV A,#01H ;由命令/状态寄存器设定PA为输 出,PB口为输入MOVX R1,A ;控制字传送给命令/状态寄存器 LOOP:MOV R1,#02H ;指向PB口地址MOVX A,R1 ;读取PB口状态JB ACC.0 ,LEFT ;判断按钮是否按下?没按下, 作左移,参考程序如下:,CJNE A, #00H,LEFT;再判断MOV R2 ,#7FH ;按钮已按下,赋右移初值MOV R3,#08HMOV R1,#01H ;指向PA口地址 RIGHT: MOV A,R2MOVX R1,A ;输出至PARR AMO

28、V R2 ,ALCALL DELAYDJNZ R3 ,RIGHTAJMP LOOPLEFT: MOV R2 ,#0FEH ;按钮没按下,赋左移初值MOV R3,#08HMOV R1,#01H ;指向PA口地址,LOOP1: MOV A,R2MOVX R1,A ;输出至PARL AMOV R2 ,ALCALL DELAYDJNZ R3 ,LOOP1AJMP LOOP DELAY: MOV R4,#200D1: MOV R5,#248DJNZ R5,$DJNZ R4,D1RETEND,6.4显示器接口技术,6.4.1 LED数码显示器,1LED数码显示器结构发光二极管显示器(Light Emitt

29、ing Diode)简称LED,又称数码管,具有结构简单、价格低廉、使用方便、耗电少、与单片机接口容易等特点,在单片机应用系统使用非常普遍。,LED数码显示器由七段条形的发光二极管组成“ ”字形显示字段,用一只圆形的发光二极管做小数点。结构如图6-18(a)所示。,图 6-18 LED数码显示器结构,在LED数码显示器中,通常将各段发光二极管的阴极或阳极连在一起做公共端,这样可以使驱动电路简单。因此,LED数码显示器就有共阴极和共阳极两种接法,如图6-18(b)、6-18 (c) 所示。,要使LED数码管显示数字,只要点亮相应字段的发光二极管即可。如要显示“1”,点亮b、c段;要显示“0”,点

30、亮a、b、c、d、e、f段。从图6-17中不难看出,对于共阴极数码管,点亮字段用高电平“1”表示,而对于共阳极数码管,点亮字段则用低电平“0”来表示。这样我们就可以把要显示的数字与一串二进制代码对应起来,即对LED数码显示器实现编码。由于这种编码是与显示器结构相对应的,因此分为共阴显示码和共阳显示码两种。 不考虑小数点的编码只有七位,常称为七段显示码;如果对小数点也进行编码,则称为八段显示码。表6-10列出了常用字符的八段显示码。,2LED数码显示器的编码,表6-12 常用字符的八段显示码,续表6-12 :,3显示方式在实际LED显示系统中,常要进行多位显示。在这种情况下,LED数码显示器有静

31、态显示和动态显示两种方式。,静态显示是指显示器显示某一字符时,相应段的发光二极管处于恒定导通或截止状态,直至需要显示下一个字符时为止。静态显示又分并行输出和串行输出两种形式。,图6-19 静态显示方式下2位共阳LED作并行输出的接口电路,静态显示,图6-19给出了静态显示方式下2位共阳LED作并行输出的接口电路。图中采用两片74LS373 扩展并行输入输出接口,接口地址由2线-4线译码器74LS139的输出决定。74LS139的逻辑功能见表6-13。显然,2片74LS373的地址分别为3FFFH、0BFFFH。译码输出信号(或)与单片机的写信号共同控制对74LS373的写入操作。,由图可见,并

32、行输出时,每个LED数码管都需要8位输出口独立控制,因此该方式虽然亮度好,且不占用CPU的工作时间,但在显示器位数较多时,连线较复杂。,表6-13 74LS139的真值表,并行输出,采用串行输出可以大大节省单片机的内部资源。图6-20为2位共阳LED作串行输出的接口电路。该电路用74LS164将80C51输出的串行数据转换成并行数据输出给LED显示器,减少了接口连线。其中74LS164的TXD为移位时钟输出,RXD为移位数据输出,P17作为显示器允许控制输出线。每次能够输出2个字节(16位)的段码数据。依据此方法,可以作多位LED的串行输出显示。,串行输出,显示原理动态显示就是一位一位地轮流点

33、亮各位LED显示器(即扫描),对于每位显示器来说,每隔一段时间被80C51点亮一次,并保留一定时间(通常为110ms),以造成视觉暂留效果。这样,虽然在同一时刻,实际上只有一位LED显示器在显示,但利用人眼的“视觉暂留”和发光二极管熄灭时的余晖效应,使人感觉好像若干位LED显示器在同时显示不同的数字一样。,动态显示,图6-20 静态显示方式下2位共阳LED作串行输出的接口电路,使用特点动态显示常用于多位LED显示。其最大的优点是硬件开销省,接口电路简单,但它要求CPU频繁地为显示服务。,图6-21 经8155扩展的6位动态扫描LED显示器接口电路,图6-21是经8155扩展的6位动态扫描LED

34、显示器接口电路。图中8155的PA口作为位选口,其地址可设为7F01H,PB口作为段选口,其地址可设为7F02H,由于LED显示器需要一定的驱动电流,故在接口中增设驱动器。,6.4.2 点矩阵显示器,点矩阵显示器实际上就是LED显示,只是构成显示器的所有LED都依矩阵形式排列而得名。点矩阵显示器主要用来制作电子显示屏,广泛用于火车站、体育场、股票交易厅、大型医院等处作信息发布或广告显示。其优点是能根据需要的大小、形状、单色或彩色来汇编,能与单片机连线,作各种动态效果或图形变化。1.分类和结构矩阵显示器的种类,可分为单色、双色、三色。依LED的极性排列方式,又可分为共阴极与共阳极两种类型。如果根

35、据矩阵每行或每列所含LED 个数的不同,点矩阵显示器还可分为57、88、1616等类型。本章以单色共阳极88点矩阵显示器为例。其外观和引脚排列如图6-22所示。等效电路如图6-23所示。,图6-22 单色共阳极88点矩阵显示器外观和引脚排列,2显示原理 由图6-22可知,只要让某些LED亮,就可以组成数字、英文字母、图形和汉字。从等效电路不难看出,点亮LED的方法就是要让该LED对应的Y轴、X轴处于正向偏置状态。但如果用直接点亮的方式,则显示形状是固定的;而采用多工扫描的方式,就可以实现很多动态的效果。当然,不管使用哪种形式,都要依据LED的亮暗来组成图案,以下针对数字、字母和汉字作简要说明。

36、,图6-23 单色共阳极88点矩阵显示器等效电路,数字、字母和简单的汉字只要一片88点矩阵显示器就可以显示,但要显示一般的汉字,则必须要由几个88点矩阵显示器共同组合才能完成。图6-24 给出了几个数字、字母和简单汉字的造型表。,图6-24 数字“0”、字母“A”和简单汉字“工”的造型表,点矩阵显示器的造型表一般以数据库的形式存放在软件中。单片机使用查表指令“MOVC A, A +DPTR”或 “MOVC A, A + PC”来读取。,点矩阵显示器一般采用扫描方式显示,实际上有三种扫描方法:,3点矩阵显示器的扫描与驱动,点扫描法扫描亮点从左上角开始,从左至右,由上而下不停移动到右下角,周而复始

37、。依次轮流点亮64点。这种方法常用于鉴别点矩阵显示器的好坏。在使用时需要注意,其扫描频率必须大于1664=1024Hz,周期小于1ms。,扫描时由单片机控制驱动电路从左至右依次将点矩阵显示器每一列上8个LED的公共端(阳极)接到电源上,然后由单片机的另一驱动口对这8个LED送出行控制信号。由等效电路不难看出,行线输出“0”时,对应的LED点亮,行线输出为“1”时,对应的LED不亮。也就是说,在列扫描法中,每次选中的列上可以有多个LED同时点亮。列扫描方式示意图见图6-25。,需要注意,用列扫描法制作显示器时,其扫描频率必须大168=128Hz,周期小于7.8 ms才能符合视觉暂留要求。,图6-

38、25 列扫描方式示意图,列扫描法,方法类似于列扫描,只是单片机每次选中的是一行,而不是一列。注意事项相同。行扫描和列扫描都要求点矩阵显示器一次驱动一行或一列(8颗LED),如果不外加驱动电路,LED会因电流较小而亮度不足。常用驱动电路如图6-26 所示。也可采用74LS244、UN2003驱动。,图6-26 点矩阵显示器的常用驱动电路,行扫描法,6.4.3 课题与实训12 交通路口读秒计时显示器,一实训目的1学习LED数码管的驱动方法。2掌握两位LED数码管程序的编制方法。3掌握单片机基本I/O口的控制及应用。 二课题要求利用2只共阳极的LED数码管模拟交通路口的读秒显示器。由于各交通路口的车

39、流量不同,因此各路口的读秒显示器显示的时间也不同。本实训以60秒为例。 要求用AT89C51芯片的P1.0P1.3经 7447控制个位的七段显示器;P1.4P1.7经 74LS47控制十位的七段显示器。,17447介绍七段LED数码显示器的输入信号应该是要显示数字的七段码,而人们习惯上将要显示的数字直接以8421BCD码的形式由单片机输出,这时就需要一个转换器件,它能将单片机输出的8421BCD码转换成七段码,然后送给七段LED数码显示器。7447就是这样一种器件,它的全称是4线-七段译码器/驱动器,输入是4位8421BCD码,输出是七段码。 图6-27是它的引脚图。2在介绍LED数码管结构与

40、原理 时,没有考虑I/O口的驱动能力, 在实际使用时,如果I/O口的驱动 电流不够,要外加驱动器。,图6-27 7447引脚,三背景知识,硬件如图6-28所示。采用静态扫描方式。特别需要注意:使用数码管作为显示部件时,应在数码管的每一段加有限流电阻。,图6-28 交通路口读秒计时显示器硬件电路,四硬件电路,ORG 0000HAJMP MAINORG 0100H MAIN: MOV R4,#60 ;显示初值 LOOP: MOV P1,R4 ;送P1 显示LCALL DELAY ;延时1秒MOV A,R4 ;送A处理CLR C ;CY清0,准备减1SUBB A,#01H ;减1JB AC,BCD

41、;个位向十位有借位,转去作 BCD码处理MOV R4,A ;无借位,送R4 准备输出AJMP LOOP ;循环显示 BCD: JC MAIN ;已减至00,再从60循环显示SUBB A,#06 ;BCD码修正,五软件设计(参考程序如下),MOV R4,A ;修正结果送R4 准备输出AJMP LOOP ;循环显示 DELAY: MOV R5,#50 ;1秒D1: MOV R6,#50 ;20毫秒D2: MOV R7,#248 ;0.5毫秒DJNZ R7,$DJNZ R6,D2 DJNZ R5,D1RETEND 六总结与提高做交通路口读秒显示器,也可以不用7447,而是将09的七段码以表格的形式存

42、放在RAM单元中,然后使用查表指令实现8421BCD码到七段码的转换,请用此方法实现该课题。,6.4.4 课题与实训13 小小显示屏,一实训目的1学习88点矩阵显示器的使用。2熟悉用单片机基本I/O口扩展88点矩阵显示器的基本 原理。3掌握基本I/O口的功能及编程方法 二课题要求用P1口扩展88点矩阵显示器的列线,用P2口控制88点矩阵显示器的行线。用一片88共阳极点矩阵显示器显示心形。 三背景知识88点矩阵显示器有共阴极和共阳极两种型式。在本课题中我们采用共阳极点矩阵显示器。图6-29为88点矩阵显示器显示心形的造型图。,图6-29 造型图,要显示一个完整的图形,需要进行8次扫描。本实训是从

43、最右侧的列开始扫描的,每一次扫描的数据格式如图6-30所示。,图6-30 每次扫描的数据格式,硬件电路如图6-31所示,由于LED显示器需要的电流较大,所以在行线和列线上都要加驱动器。本电路列线上采用74LS244进行驱动,行线上采用图6-26所示三极管驱动电路。,图6-31 小小显示屏硬件电路,四硬件电路,ORG 0000HAJMP MAINORG 0100H MAIN: MOV DPTR,#TAB ;指向表地址MOV R3,#8 ;设列扫描次数MOV R0,#11111110B ;扫描右侧第一列初值 N1: MOV P2,R0 ;扫描值送P2口CLR A MOVC A,A+DPTR ;到T

44、AB取显示码MOV P1,A ;将取到的码送P1口显示INC DPTR ;取码指针加1LCALL DELAY ;延时 MOV A,R0 ; 列扫码送ARL A ;左移1位MOV R0, A ;列扫码送回R0,五软件设计(参考程序如下:),DJNE R3,N1 ;显示完8列了吗?不是,跳到N1 AJMP MAIN ;是则循环 TAB: DB 30H,48H,44H,22H,44HDB 48H,30H,00H DELAY: MOV R5,#1 D1: MOV R7,#248 DJNZ R7,$DJNZ R5,D1RETEND 六总结与提高通过编程训练,读者可以掌握88点矩阵显示器的编程方法及硬件扩

45、展方法。请用该方法实现字母“P”的显示。,6.5键盘接口,6.5.1独立式按键,1独立式按键的硬件结构在单片机应用系统中,常要使用按扭、开关或键盘对系统进行控制。在系统比较简单的情况下,只要几个开关就可以实现了。例如紧急停机按钮、部件到位的行程开关、变速开关等。这时可以把开关直接装在I/O口,这就是独立式按键。独立式按键电路与芯片的连接要视芯片内部是否含有上拉电阻而定。如图6-32所示。,图6-32 独立式按键电路与芯片的连接,电路6-32(a)中的8个按键分别与单片机的P1.0P1.7相连,按键输入一般采用低电平有效。因而按键的一端与“地”相连,只要有键按下,相连的P1口线便会出现“0”电平

46、;当没有键按下时,P1口内部的上拉电阻保证了各个,口线的输入均为高电平。对于内部没有上拉电阻的芯片,必须外接上拉电阻,以保证按键在断开和闭合时能可靠地出现两种电平“0”和“1”。如图6-32(b)所示。独立式键盘的电路连接和软件设计都比较简单,但由于一个按键就要占用一条I/O口线,故一般只用于系统中按键较少的情况。 2独立式按键的软件结构独立式按键的软件结构包括按键查询和按键功能程序转移。在图6-32(a)所示电路中,单片机判断是否有键按下,可通过不断查询P1口线的状态,并判断读入的P1口数据,当有数据位为“0”时,说明相应的按键被按下,单片机要转去执行相应的程序。如暂停键被按下,程序要跳转到

47、暂停程序段;调速键被按下,程序要跳转到调速程序段等。,例1 对图6-32(a)所示电路,请编程以查询的方式实现P1口按键的识别。要求以P00P77 作为每个按键的功能程序入口地址标号。 参考程序如下: KEY:MOV A,#0FFH ;置P1口为输入方式MOV P1,A ;MOV A,P1 ;读键状态JNB ACC.0,P00 ;0号键按下,转去0号键处理程序P00JNB ACC.1,P11 ;1号键按下,转去1号键处理程序P11JNB ACC.2,P22 ;2号键按下,转去2号键处理程序P22JNB ACC.3,P33 ;3号键按下,转去3号键处理程序P33JNB ACC.4,P44 ;4号

48、键按下,转去4号键处理程序P44JNB ACC.5,P55 ;5号键按下,转去5号键处理程序P55,JNB ACC.6,P66 ;6号键按下,转去6号键处理程序P66JNB ACC.7,P77 ;7号键按下,转去7号键处理程序P77AJMP KEY ;无键按下返回,继续查询 P00: ;0号键处理程序AJMP KEY ;0号键处理完返回 P11: ;1号键处理程序AJMP KEY ;1号键处理完返回: P77: ;7号键处理程序AJMP KEY ;7号键处理完返回END,在单片机应用系统中,为了降低成本,通常采用触点式按键,由于机械触点的弹性作用,在闭合和断开瞬间均有一个抖动过程,如图6-33 所示。抖动时间的长短与开关的机械特性有关,一般为510ms。,图6-33 抖动的产生,3独立式按键的去抖动问题,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报