《单片机原理及应用-第6章 mcs-51单片机系统扩展与接口技术》由会员分享,可在线阅读,更多相关《单片机原理及应用-第6章 mcs-51单片机系统扩展与接口技术(96页珍藏版)》请在金锄头文库上搜索。
1、第6章 MCS-51单片机的系统扩展与接口技术,本章学习目标: 了解单片机系统外部系统总线的构成。 掌握I/O接口电路的概念及主要功能。 掌握存储器芯片的功能及外部存储器的扩展方法。 掌握简单I/O扩展的方法及典型I/O接口芯片8255A、8155的 结构和使用方法。 掌握显示器接口电路和键盘接口电路。 了解功率驱动接口电路。,6.1 概述,6.1.1 外部系统总线的构成,1数据总线DB(Data Bus)数据总线用于单片机与存储器之间或单片机与接口电路之间双向传送数据信息。8051单片机的数据总线由P0口提供,宽度为8位。 2地址总线AB(Address Bus)地址总线用于单向传送由单片机
2、发出的地址信息,以对存储单元和I/O口进行选择。地址总线的位数决定了外部扩展的存储单元或I/O口的数量。8051单片机的地址总线宽度为16位,所以其外部扩展的存储单元或I/O口的数量为64K个。8051单片机的地址总线由P0口提供低8位地址总线,由P2口提供高8位地址总线。P0口既作为8位数据总线,又作为低8位地址总线,所以它是分时工作的。在工作时,P0口先将低8位地址信息发送出去,由锁存器锁存,然后再传送数据信息。注意,P0口、P2口在系统扩展用作地址总线后,就不能作为基本I/O口使用了。,3控制总线CB(Control Bus)ALE:地址锁存允许信号输出。用于实现对P0口上送出的低8位地
3、址信息的锁存控制。:外部程序存储器选择信号输入。当为低电平时,只访问外部程序存储器。:外部程序存储器的读选通信号输出。当为低电平时,单片机读取外部程序存储器中的指令信息。(P3.7):外部数据存储器的读选通信号输出。当为低电平时,单片机读取外部数据存储器中的数据信息。注意,外部数据存储器和外部程序存储器的读选通信号是不同的。(P3.6):外部数据存储器的写选通信号输出。当为低电平时,单片机将数据写入相应的外部数据存储单元中。,6.1.2 地址空间的分配,1程序存储器的地址空间分配程序存储器的地址空间为64KB,它包括片内ROM和扩展的片外ROM。,2数据存储器地址空间的分配8051单片机的内部
4、数据存储器的容量为128B,其地址范围为00H7FH。因为其容量较小,在用户需求超过此容量时可在单片机外部进行扩展,扩展的最大容量是64KB,其地址范围是0000HFFFFH。,3I/O端口地址空间的分配8051单片机有4个I/O端口(P0口P3口),在单片机需要扩展时,只剩下了P1口能供用户作为I/O口使用。因此,在实际应用系统中,往往需要再扩展I/O端口。在连接外设的接口电路中,往往有若干个用于保存数据、状态、命令等信息的寄存器,我们也把它们归到扩展的I/O端口之列。单片机的CPU要经常与I/O端口之间进行数据的传送操作(称I/O操作),所以每个I/O端口也需要分配一个地址,以便于CPU的
5、访问。8051单片机把每一个扩展的I/O端口看作一个片外数据存储单元,并给它分配一个地址,即扩展的I/O端口与外部数据存储器是统一编址的。这样做的优点是单片机无需专用的I/O指令,使用MOVX指令访问即可;其缺点是当扩展较多I/O端口时,将会占用过多的片外RAM地址。理论上,如果不对外部RAM进行扩展,则扩展I/O端口的数量可达64K个,但实际上并不需要这么多。,6.1.3 I/O接口电路,1I/O接口电路的主要功能 (1)实现地址译码。接口电路必须能够实现外设端口的地址译码功能 (2)实现信息的转换。如串并行转换、电平转换、A/D转换、D/A转换等 。 (3)实现数据的缓冲与锁存。 如果有多
6、个输入设备同时利用数据总线传输数据时,就会造成信号叠加产生数据错误,导致系统不能正常工作。当数据经数据总线向输出设备输出时,由于CPU工作速度远远高于外设的工作速度,致使CPU等待输出设备取走数据,降低了CPU的工作效率,故在接口电路中设置数据锁存器,保存数据直至输出设备有足够的时间来接收。,(3)实现数据的缓冲与锁存。 如果有多个输入设备同时利用数据总线传输数据时,就会造成信号叠加产生数据错误,导致系统不能正常工作。当数据经数据总线向输出设备输出时,由于CPU工作速度远远高于外设的工作速度,致使CPU等待输出设备取走数据,降低了CPU的工作效率,故在接口电路中设置数据锁存器,保存数据直至输出
7、设备有足够的时间来接收。 (4)实现通信联络。为了协调单片机与外设之间的信息传送,一般需要设置一些联络信号线来传送双方的状态信息以保证数据信息的可靠传送,2I/O接口电路的组成 单片机通过这些端口与外设之间进行信息的传送,这些信息按各自的作用分成以下三种: (1)数据信息。它是一种最基本的信息,可以分为数字量、模拟量和开关量。 (2)状态信息。作为单片机与外设之间交换信息的联络信号。如输入设备的“准备好”或输出设备的“忙”信号,单片机可以根据外设的状态来决定是否传送数据。 (3)控制信息。单片机发给外设的命令,用于控制外设的工作。如:外设的启动或停止等。,6.2 外部存储器的扩展,6.2.1
8、外部程序存储器的扩展,1程序存储器芯片的类型 (1)掩膜ROM(Mask ROM) (2)可编程ROM(EPROM-Erasable RO (3)可擦除PROM(EPROM-Erasable PROM) (4)电擦除EPROM(EEPROMElectrically EPROM 也可写作E2POM) (5)快闪式ROM(Flash ROM),2典型EPROM芯片介绍,(1)2764芯片的引脚功能, 电源:VCC端接+5V工作电压。GND端接地。 VPP端接编程电压。芯片型号不同,有+25V或+12.5V两种。 数据线:D0D7共8位,表明每个存储单元存储二进制数的位数为8位,与单片机数据总线宽度
9、相同。, 地址线:A12A0共13位,可编址的存储单元数目为2138K个。存储芯片的容量不同,地址线引脚的数量亦不同。 控制线:片选信号控制端,输入,低电平有效。当该端为高电平时,不能对芯片进行任何操作;在扩展时,对该端的连接与使用要特别注意。:输出允许信号控制端,输出,低电平有效。当该端有效时,允许数据从 芯片向外输出。:编程脉冲输入端。,(2)2764芯片的工作方式,6.3 并行I/O口扩展,6.3.1 简单I/O口扩展电路 1简单输入I/O口的扩展简单输入I/O口扩展实际上就是扩展数据缓冲器。它的作用是当输入设备被选通时,使数据源通过数据总线直接进行数据的输入操作;而当输入设备处于非选通
10、状态时,缓冲器输出为高阻状态,即把数据源与数据总线隔离。常用的扩展输入I/O口的TTL芯片有74LS244、74LS373等。,2简单输出接口扩展,6.3.2 利用可编程并行接口芯片8255A扩展I/O口,(1)端口部分。8255A有三个8位并行I/O口,都可以设定为输入或输出工作方式。C口又分成两个4值端口,可分别设定为输入或输出工作方式。通常A口和B口作为数据端口,而C口作为A口或B口控制、状态信息端口。A口和C口高位部分(PC7PC4)合在一起称为A组;把B口和C口的低位部分(PC3PC0)合在一起称为B组。,三个端口的特点有所不同: A口具有一个8位数据输出锁存器和缓冲器,一个8位数据
11、输入锁存器。 B口具有一个8位数据输入/输出的锁存/缓冲器,一个8位数据输入缓冲器(不锁存)。 C口具有一个8位数据输出锁存/缓冲器,一个8位数据输入缓冲器(不锁存)。 (2)A组和B组控制逻辑。这两组控制逻辑根据CPU发送给控制寄存器的命令字来设定A、B两组的工作方式,也可以根据命令字对C口的每一位实现按位“复位”或“置位”操作。 (3)数据总线缓冲器。数据总线缓冲器是一个可直接与MCS-51单片机的数据总线连接的三态双向8位缓冲器,实现单片机与8255A芯片之间的数据、命令控制字及外设的状态信息的传送。,(4)读/写控制逻辑。读/写控制逻辑电路依据CPU发来的地址与控制信息,对8255A进
12、行硬件管理,如芯片选择、端口选择、数据传送方向控制及复位操作。与读写操作有关的地址信号和控制信号有: A0、A1:端口地址线。8255A的A、B、C口和控制寄存器共4个端口,需要2根地址线编址。:片选信号,输入低电平有效。:读信号,输入低电平有效。控制将8255A端口中的数据或状态信息送到数据总线上。:写信号,输入低电平有效。控制将CPU输出的数据或命令传送到8255A相应端口中。 RESET:复位信号,输入高电平有效。8255A复位后,各端口均被置为输入方式,控制寄存器清零。,方式1(选通输入/输出方式),方式1输出的状态控制信号,方式2(双向数据传送方式) A口工作在方式2实质上是方式1的
13、输入与输出的组合,输入输出过程与方式1相同。输出是由CPU执行输出指令开始,输入是由选通信号开始。,18155的内部结构与引脚功能8155芯片包含三个并列I/O端口,即A口、B口和C口其中A口和B口为8位端口,C口是6位端口。此外,它还集成了256B的静态RAM、一个14位减法计数器。,8155的主要引脚功能如下: AD7AD0:地址数据复用线,8位。:片选信号,输入低电平有效。:写选通信号,输入低电平有效。信号有效时,将CPU输出到数据总线上的数据写入到8155相应的端口或内部RAM单元中。:读选通信号,输入低电平有效。它控制把8155中数据送至地址、数据线上。:I/O端口与内部RAM选择信
14、号,输入;当 0时,对8155的内部RAM进行读写操作;当 l时,对8155的I/O口进行读写操作。,ALE:地址锁存信号,输入。该信号的下降沿将AD7AD0端的地址信息和 , 信号锁存到8155的内部锁存器。 RESET:复位信号,输入。8155复位后,A口、B口、C 口均置为输入方式,并清除命令状态寄存器。 TIMER IN:定时器材数器的计数脉冲输入端。计数脉冲的上升沿使计数器减1计数。 TIMER OUT:定时器/计数器输出端。当14位计数器不断减1计数到0时,输出脉冲或方波。输出信号的形式取决于定时器计数器的工作方式。,PA7PA0:A口输入/输出线。 PB7PB0:B口输入/输出线
15、。 PC7PC0:C口输入/输出线,也可用作A口、B口选通输入输出时的联络控制信号线。,38155作为扩展片外RAM使用,48155作为扩展I/O端口使用 (1)命令字与状态字8155的命令字用于定义I/O端口和定时器/计数器的工作方式,只能写入到命令状态字寄存器。命令字的格式如图6-28所示。8155状态字用于存放A口、B口和定时器、计数器的工作状态,只能从状态字寄存器读出状态字只使用了7位,最高位未定义,其格式如图6-29所示。,图6-28 8155命令字的格式,图6-29 8155状态字格式,(2)I/O口的工作方式 由8155的命令字可知,8155的三个I/O端口都可以作为基本输入/输
16、出端口;A口和B口还可以作为选通输入/输出端口,此时,C口作为它们的控制或状态信号。 当以无条件方式进行数据的I/O传送时,由于不需要任何联络信号,因此,A口、B口和C口都可以进行数据的输入输出。 当A口或B口以选通I/O方式进行数据传送时,由C口提供联络信号。各联络信号的定义见表6-9。,58155作为扩展定时器/计数器使用,图6-30 定时器/计算器的计数结构,从8155的TIMER IN端输入外部计数脉冲时,进行减1计数。当计数器中计数值为0时,由TIMER OUT端输出信号,该信号有脉冲和方波两种形式,具体由M2、M1两位设置,有四种输出信号波形,如图6-31所示。,图6-31 8155定时器/计数器的输出信号波形,例6-10 要求对计数脉冲进行千分频,即计数1000后、定时器的输出电平状态发生变化,产生连续方波。此外设定A口和C口为基本输入方式,B口为基本输出方式,禁止中断。解:由于定时器输出连续方波,因此计数器的高两位设置为;M2M101计数器的计数初值为1000(3E8H),于是装入计数器的高8位为43H,低8位为E8H。,