1、第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展学习目的学习目的 1、了解80C51单片机的三总线即数据、地址和控制总线的构成。2、掌握80C51单片机扩展ROM和RAM的方法。3、掌握80C51单片机扩展8255和8155的方法及应用。学习重点和难点学习重点和难点 1、ROM和RAM的扩展和分析方法。2、可编程芯片8255A与8155的应用。80C51系列单片机内部已有ROM、RAM、I/O和定时计数器等基本功能部件,对于小的应用系统已经可以满足系统要求。但对于较大的应用系统,还需进行系统扩展,如程序存储器ROM、数据存储器RAM和并行I/O接口电路的扩展。本章介绍80C
2、51系统扩展。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 6.1 程序存储器扩展程序存储器扩展 6.1.1扩展总线扩展总线 由于80C51单片机受引脚数量的限制,80C51系列单片机的地址总线的低8位(A7A0)和数据总线合用P0口,因此P0口是地址/数据复用口;P2口做地址线的高8位(A15A8);P3口的RD、WR加上控制线EA、ALE、PSEN等组成控制总线。80C51单片机的三总线结构如图6-1所示,功能如下:第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展1、数据总线、数据总线D0D7 (1)数据总线的宽度为8位,由P0口提供。(2)在读
3、信号RD与写信号WR有效时,P0口上出现的为数据信息。2、地址总线、地址总线A0A15 80C51单片机的地址总线宽度为16位,可寻址范围为2的16次方=64KB。可扩展的片外ROM的最大容量为64KB,地址为0000HFFFFH。可扩展的片外RAM的最大容量也为64KB,地址为0000HFFFFH。地址总线A0A15是由P0口和P2口共同组成,具体为:(1)地址总线的高8位(A15A8)是由P2口提供的,低8位(A7A0)是由P0口提供的。(2)在访问外部存储器时,由于P0口是地址/数据复用口,因此需要加一个8位锁存器(74LS373)。由地址锁存信号ALE的下降沿把P0口的低8位锁存至地址
4、锁存器中,再加上P2口提供的地址高8位,构成单片机的16位地址总线。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展(3)在实际应用系统中,P2口的高8位地址线并不需要这么多,需要用几位就引出几根口线。3、控制总线、控制总线 控制总线由RD、WR、EA、ALE和PSEN等信号组成,具体功能如下:(1)读信号RD和写信号WR作为扩展数据存储器RAM和I/O端口的读、写选通信号。执行MOVX指令时,这两个信号分别自动有效。(2)EA信号作为内、外程序存储器ROM的控制信号。(3)ALE信号作为地址锁存的选通信号,以实现低8位地址的锁存。(4)PSEN信号作为扩展程序存储器ROM
5、的读选通信号。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.1.2 常用程序存储器芯片常用程序存储器芯片 1、常用的、常用的EPROM芯片芯片 扩展程序存储器常用的芯片是EPROM(Erasable Programmable Read Only Memory)型(紫外线可擦除型),主要是Intel公司生产的27XXX系列,如2716(2K8)、2732(4K8)、2764(8K8)、27128(16K8)、27256(32K8)、27512(64K8)等,其中高位数字27表示该芯片是EPROM,XXX数字能被8整除,表明存储器容量,如2732(32/8=4KB)表示4
6、KB存储容量的EPROM。常用EPROM芯片管脚和封装如图6-2所示,主要技术特性见表6-1。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展返回第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展返回第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 EPROM除2716、2732外均为28线双列直插式封装,各引脚功能如下。A0A15:地址输入线。D0D7:双向三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。其余时间呈高阻状态。CE:片选线,低电平有效。OE:读出选通线,低电平有效。PGN:编程脉冲输入线。VPP:编程电源线
7、,其值因芯片生产厂商而有所不同。VCC:电源线,接+5V电源。NC:空。GND:接地。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展2、典型、典型EEPROM芯片芯片 Intel公司生产的28系列EEPROM是电可擦除只读存储器,即可像RAM哪样可读可写,又具有ROM在掉电后仍能长期保持所存储的数据,因此,它被广泛用作单片机的程序存储器和数据存储器。常用的EEPROM的芯片引脚和容量如表6-2,芯片管脚和封装如图6-3所示。EEPROM共同特点是:单一的+5V电源供电,用+5 V电可擦除可写入.使用次数为1万次,信息保存时间为10年。读出时间为ns级,写入时间为ms级。第
8、第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展返回第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展EEPROM各引脚功能如下:A0A15:地址输入线。D0D7:双向三态数据总线,有时也用I/O0I/O7表示。CE:片选线,低电平有效。OE:读选通线,低电平有效。WE:写选通线,低电平有效。RDY/BUSY:2817A的状态输入线,低电平表示在写操作,高电平表示准备好接收数据。VCC:电源线,接+5V电源。NC:空。GND:接地。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展3、Flash(闪速闪速)ROM FlashROM是一种新型
9、的电擦除式存储器,它是在EPROM工艺的基础上增添了芯片整体电擦除和可再编程功能。它即可作数据存储器用,又可作程序存储器用,其主要性能特点为:(1)电可擦除、可改写、数据保持时间长。(2)可重复擦写/编程大于1万次。(3)有些芯片具有在系统可编程ISP功能。(4)读出时间为ns级,写入和擦除时间为ms级。(5)低功耗、单一电源供电、价格低、可靠性高,性能比EEPROM优越。FlashROM型号很多,常用的有29系列和28F系列。29系列有29C256(32K8)、29C512(64K8)、29C010(128K8)、29C020(256K8)、29040(512K8)等,28F系列有28F51
10、2(64K8)、28F010(128K8)、28F020(256K8)、28F040(512K8)等。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 常用的29系列FlashROM芯片管脚和封装如图6-4所示,引脚功能如下。A0A17:地址输入线。80C51系列单片机的地址总线为16根,只有64K的寻址能力,如果扩展的存储器寻址范围大于64K,多余16根地址线就需要通过P1口或逻辑电路来解决。I/O0I/O7:双向三态数据总线,有时也用D0D7表示。CE:片选线,低电平有效。OE:读选通线,低电平有效。WE:写选通线,低电平有效。VCC:电源线,接+5V电源。GND:接地
11、。NC:空。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展返回第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.1.3 程序存储器扩展实例程序存储器扩展实例 程序存储器的扩展问题实际上就是研究程序存储器与单片机的连线问题,程序存储器与单片机的连线主要是三总线,具体是:数据线数据线:存储器的数据线D7D0有8位,由单片机的P0口的P0.7P0.0提供。地址线地址线:地址线的根数决定了程序存储器的容量。程序存储器的A7A0低8位地址线由P0口提供,程序存储器的A15A8的高8位地址线由P2口提供,具体使用多少条地址线视扩展容量而定。控制线控制线:常用的有
12、三根控制线。程序存储器的读允许信号OE与单片机的读选通信号PSEN相连;程序存储器片选线CE的接法决定了程序存储器的地址范围,当只采用一片程序存储器芯片时,可以直接接地,当采用多片程序存储器芯片时需要使用译码器来选中,可直接接译码器的输出。下面通过实例来介绍程序存储器扩展。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展一、用线选法扩展一片程序存储器。一、用线选法扩展一片程序存储器。线选法是指用一根线连接片选CE信号。此方法连接简单、成本低、容易掌握,但是,缺点是存储器的地址不唯一。下面通过举例来说明。例6.1 在80C31单片机上用27128A EPROM芯片扩展程序存储
13、器。分析:1、确定需要几根地址线。27128A EPROM芯片是16 KB8存储器,其中16K=161024=24210=214,因此,需要14根地址线,即A0A13。2、确定三总线。数据线:27128A的数据线D7D0直接接80C31的P0.7P0.0。地址线:27128A的地址线低8位A7A0通过锁存器74LS373与P0口连接,高6位A8A13直接与P2口的P2.0P2.5连接,P2口本身有锁存功能。控制线:CPU对EPROM只能进行读操作,不能进行写操作。CPU对27128A的读操作控制都是通过控制线实现的。27128A控制线的连接有以下几条:第第6 6章章 80C5180C51单片机
14、的系统扩展单片机的系统扩展 CE片选线:片选线:直接接地。由于系统中只扩展了一片程序存储器芯片,因此,27128A的片选端直接接地,表示27128A一直被选中。若同时扩展多片,需通过译码器来完成片选工作。OE读选通线:读选通线:接80C31的读选通信号PSEN端。在访问片外程序存储器时,只要PSEN端出现负脉冲,即可从27128A中读程序。根据上述分析可画出80C31扩展一片27128A的电路图如图6-5所示。3、27128A程序存储器地址范围的确定。程序存储器地址范围的确定。其中,“”表示与27128A管脚无关,数值可取0或1(地址范围不是唯一的),通常取0。因此,27128A程序存储器地址
15、范围为0000H3FFFH(“”取0),共计16KB存储容量。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 例例6.2:用:用80C31单片机扩展一片单片机扩展一片29C256 Flash PEROM存储器。存储器。分析:1、确定需要几根地址线。29C256 Flash PEROM芯片是32KB8存储容量,其中32K=321024=25210=215,因此,需要15根地址线,即A0A14。2、确定三总线。数据线:29C256的数据线D7D0直接接80C31的P0.7P0.0。地址线:29C256的地址线低8位A7A0通过锁存器74LS373与P0口连接,高7位A8A14
16、直接与P2口的P2.0P2.6连接,P2口本身有锁存功能。控制线:80C31单片机与29C256的控制线连接采用了将外部数据存储器空间和程序存储器空间合并的方法,使得29C256既可以作为程序存储器使用,又可以作为数据存储器使用。CE片选线:直接接地。由于系统中只扩展了一片程序存储器芯片,因此,29C256的片选端直接接地,表示29C256一直被选中。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 OE读选通线:80C31的程序存储器读选通信号PSEN和数据存储器读信号RD经过“与”门后,接到29C256的读选通线OE上。因此,只要PSEN和RD中一个有效,就可以对29C
17、256进行读操作。也就是说,对29C256既可以看作程序存储器取指令,也可以看作数据存储器读出数据。WE写选通线:与80C31的数据存储器写信号WR相连,只要执行数据存储器写操作指令,就可以往29C256中写入数据。根据上述分析可画出80C31扩展一片29C256的电路图如图6-6所示。3、29C256存储器地址范围的确定。存储器地址范围的确定。因此,29C256存储器地址范围为0000H7FFFH(“”取0),共计32KB存储容量。这样来,29C256的数据写入和读出与静态RAM完全相同,采用MOVX A,DPTR和MOVX DPTR,A指令来完成读写操作。第第6 6章章 80C5180C5
18、1单片机的系统扩展单片机的系统扩展二、用译码法扩展一片二、用译码法扩展一片2764 译码法又称全地址译码法,所有的地址线都参与译码。下面通过举例来说明。例6.3:用译码法扩展一片2764 EPROM存储器。分析:1、确定需要几根地址线。2764 EPROM芯片是8 KB8存储器,其中8K=81024=23210=213,因此,需要13根地址线,即A0A12。2、确定三总线。数据线:2764的数据线D7D0直接接80C31的P0.7P0.0。地址线:2764的地址线低8位A7A0通过锁存器74LS373与P0口连接,高6位A8A12直接与P2口的P2.0P2.4连接。第第6 6章章 80C518
19、0C51单片机的系统扩展单片机的系统扩展 控制线:CPU对EPROM只能进行读操作,不能进行写操作。CPU对2764的读操作控制都是通过控制线实现的。2764控制线的连接有以下几条:CE片选线:由于采用译码法,因此,它是通过74LS138译码器的输出端Y0来控制,当Y0=0时,才能够选中2764芯片。OE读选通线:接80C31的读选通信号PSEN端。在访问片外程序存储器时,只要PSEN端出现负脉冲,即可从2764中读程序。根据上述分析可画出80C31扩展一片2764的电路图如图6-7所示。3、2764程序存储器地址范围的确定。程序存储器地址范围的确定。因此,2764存储器地址范围为0000H1
20、FFFH,共计8KB存储容量,而且地址范围是唯一的。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 6.2 数据存储器扩展数据存储器扩展 80C51单片机片内数据存储器RAM只有128B,在应用时若RAM容量不够,就要在片外进行数据存储器RAM的扩展,片外数据存储器RAM可扩展的最大容量为64KB。RMA分为动态存储器(DRAM)和静态存储器(SRAM),DRAM需要定时刷新,一般用在微机中,单片机中不适用,单片机中主要采用SRAM。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.2.1 常用数据存储器芯片常用数据存储器芯片 静态存储器(SRAM)
21、具有存取速度快、使用方便和价格低等优点。但它的缺点是,一旦掉电,内部所有数据信息都会丢失。常用的SRAM有6116(2KB8)、6264(8KB8)、62128(16KB8)、62256(32KB8)等芯片。常用SRAM芯片管脚和封装如图6-8所示,引脚功能如下。A0A15:地址输入线。D0D7:双向三态数据总线,有时也用I/O0I/O7表示。CE:片选线,低电平有效。6264的26脚(CS)必须接高电平,并且CE为低电平时才选中该芯片。OE:读选通线,低电平有效。WE:写选通线,低电平有效。VCC:电源线,接+5V电源。NC:空。GND:接地。第第6 6章章 80C5180C51单片机的系统
22、扩展单片机的系统扩展返回第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.2.2 数据存储器扩展实例数据存储器扩展实例 一、用线选法扩展一片数据存储器SRAM。例6.4:在单片机应用系统中需要扩展8KB SRAM。分析:选用静态存储器6264芯片,具体分析方法如下:1、确定需要几根地址线。6264 SRAM芯片是8KB8存储容量,其中8K=81024=23210=213,因此,需要13根地址线,即A0A12。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展2、确定三总线。数据线:6264 SRAM的数据线D7D0直接与80C31的P0.7P0.0相接。
23、地址线:6264 SRAM的地址线低8位A7A0通过锁存器74LS373与P0口连接,高7位A8A12直接与P2口的P2.0P2.4连接,P2口本身有锁存功能。控制线:CE片选线:直接接地。由于系统中只扩展了一片数据存储器芯片,因此,6264 SRAM的片选端直接接地,表示6264 SRAM一直被选中。OE读选通线:直接与80C31的RD端相连,只要执行数据存储器读操作指令,就可以把6264 SRAM中的数据读出。WE写选通线:与80C31的数据存储器写信号WR相连,只要执行数据存储器写操作指令,就可以往6264 SRAM中写入数据。第第6 6章章 80C5180C51单片机的系统扩展单片机的
24、系统扩展 根据上述分析可画出80C31扩展一片6264 SRAM的电路图如图6-9所示。3、6264 SRAM存储器地址范围的确定。存储器地址范围的确定。80C31单片机读/写外部数据SRAM的操作使用MOVX指令,用Ri(i=0,1)间接寻址或用DPTR间接寻址,指令如下:MOVXDPTR,A ;64 KB内写入数据 MOVXA,DPTR ;64 KB内读取数据 对低256 B的读写指令:MOVXRi,A;低256 B内写入数据 MOVX A,Ri ;低256 B内读取数据 第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 例6.5:把外部数据存储器1000H单元中的数据
25、传送到外部数据存储器1200H单元中去。解:程序如下 ORG 0000H LJMP MAIN ORG 0200H MAIN:MOV DPTR,#1000H MOVX A,DPTR ;先将1000H单元的内容传送到累加器A中 MOV DPTR,#1200H MOVX DPTR,A ;再将A中的内容传送到1200H单元中 END 第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展二、用译码法扩展 例6.6:80C51用译码法扩展一片62256 RAM和一片27256 ROM。分析:分析:1、确定需要几根地址线。62256 RAM和27256 ROM芯片都是32KB8存储容量,其中
26、32K=321024=25210=215,因此,需要15根地址线,即A0A14。2、确定三总线。数据线:62256 RAM和27256 ROM芯片的数据线D7D0直接与80C51的P0.7P0.0相接。地址线:62256 RAM和27256 ROM芯片的地址线低8位A7A0通过锁存器74LS373与P0口连接,高7位A8A14直接与P2口的P2.0P2.6连接。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 控制线:CE片选线:由于采用译码法,因此,它是通过74LS138译码器的输出端Y0来控制27256 ROM芯片,当Y0=0时(即P1.1、P1.0、P2.7都为0),
27、才能选中27256 ROM芯片;用Y1来控制62256 RAM芯片,当Y1=0时(即P1.1、P1.0=0,P2.7=1),才能选中62256 RAM芯片。OE读选通线:62256 RAM芯片OE线直接与80C51的RD端相连,只要执行数据存储器读操作指令MOVX A,DPTR就可以把62256 RAM芯片中的数据读出;27256 ROM芯片OE线直接与80C51的PSEN端相连。WE写选通线:62256 RAM芯片WE线与80C51的写信号WR相连,只要执行数据存储器写操作指令MOVX DPTR,A,就可以往62256 RAM芯片中写入数据。根据上述分析可画出80C51用译码法扩展一片622
28、56 RAM和一片27256 ROM的逻辑电路图如图6-10所示。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 3、62256 RAM和和27256 ROM存储器地址范围的确定。存储器地址范围的确定。(1)27256 ROM存储器地址范围的确定存储器地址范围的确定 因此,27256 ROM存储器地址范围为0000H7FFFH,共计32KB存储容量。(2)62256 RAM存储器地址范围的确定存储器地址范围的确定 而62256 RAM存储器地址范围为8000HFFFFH,共计32KB存储容量。第第6 6章
29、章 80C5180C51单片机的系统扩展单片机的系统扩展6.3 简单并行简单并行I/O接口的扩展接口的扩展 80C51系列单片机内部有4个8位并行I/O口P0P3,共32根引脚,当需要片外扩展存储器时,P0口分时地作为低8位地址线和数据线,P2口作为高8位地址线。P3口具有第二功能,在应用系统中也常被使用。因此在大多数的应用系统中,真正能够提供给用户使用的只有P1和部分P2、P3口,当所接外设较多时,就必须扩展I/O接口。80C51单片机扩展的I/O口和片外数据存储器采用统一编址、相同的寻址方法,因此,对片外I/O口的输入/输出指令就是访问片外RAM的指令,扩展方法与片外数据存储器相同。6.3
30、.1 简单简单I/O接口扩展芯片接口扩展芯片 所谓简单的I/O口扩展就是采用通用TTL、CMOS锁存器和缓冲器等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活等特点,因此,在单片机应用系统中经常被采用。常用的芯片有74LS237(8D触发器)、74LS373(8D锁存器)、74LS377(带使能的8D触发器)、74LS244(带三态8缓冲线驱动器)和74LS245(8双向总线收发器)等。74LS244的内部结构如图6-11所示,74LS373的内部结构如图6-12所示。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展第第6 6章章 80C51
31、80C51单片机的系统扩展单片机的系统扩展6.3.2 简单并行简单并行I/O接口扩展实例接口扩展实例 图6-13所示是80C51单片机扩展一个输入接口74LS244和一个输出接口74LS273电路。P0口作为双向数据总线,用74LS244扩展8位输入,输入由8只开关K0K7控制,开关闭合为低电平,开关断开为高电平;用74LS273扩展8位输出,输出信号控制8只发光二级管,74LS273输出为低电平时,发光二极管亮,74LS273输出为高电平时,发光二极管灭。只要P2.0为0,就选中74LS244或74LS273,所以74LS244和74LS273的地址均为FEFFH。编写控制程序编写控制程序,
32、程序实现的功能是闭合任意开关,对应的程序实现的功能是闭合任意开关,对应的LED发光发光 参考程序:参考程序:ORG 0000H LJMP MAIN ORG 0200H MAIN:MOV DPTR,#0FEFFH ;数据指针指向口地址 MOVX A,DPTR ;检测开关状态,读入74LS244数据 MOVX DPTR,A ;向74LS273输出数据,驱动LED SJMP MAIN END 第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展仿真链接返回第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.4 8255可编程并行接口扩展可编程并行接口扩展 所谓可编
33、程的接口芯片是指其功能可由单片机的指令来加以改变,通过编程,可以使接口芯片执行不同的接口功能。8255A是Intel公司为单片机配套的通用可编程并行接口芯片,8255A接口芯片有3个8位并行输入/输出端口,可利用编程方法设置3个端口是作为输入端口还是作为输出端口。6.4.1 Intel 8255A的结构与功能的结构与功能 Intel 8255A是一个40引脚双列直插的芯片,其引脚如图6-14所示。1、8255A的引脚 1)、与单片机相连的引脚 D7D0:数据线,双向、三态。RD:读信号,输入、低电平有效。WR:写信号,输入、低电平有效信号。CS:片选信号,输入、低电平有效。A1、A0:地址线,
34、输出。A1、A0与8255内部寄存器的关系如表6-3所示。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展2)、与外设相连的引脚 PA7PA0:A端口数据信号引脚 PB7PB0:B端口数据信号引脚。PC7PC0:C端口数据信号引脚。3)、其它引脚 RESET:复位信号,输入、高电平有效。VCC、GND:电源+5V和接地引脚。2、8255A的内部结构与功能的内部结构与功能 8255A的内部结构如图6-15所示。它包括四个部分:数据总线缓冲器;读写控制逻辑;A组控制;B组控制。端口A和端口C的高4位(PC7PC4)构成A组,由A组控制部件来对它进行控制;端口B和端口C的低4位(
35、PC3PC0)构成B组,由B组控制部件对它进行控制。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展各部分的组成和功能如下:1)、数据总线缓冲器 数据总线缓冲器是一个双向、三态、8位的数据缓冲器,8255A通过数据缓冲器与单片机的数据总线相连,输入数据、输出数据、CPU发送的控制命令字都是通过数据总线缓冲器来传送的。2)、读/写控制逻辑 读/写控制逻辑接收来自单片机地址总线的地址信号和控制总线的控制信号,实现对8255A的复位、片选、端口寻址,并发出命令到A组控制部件或B组控制部件。3)、数据端口A、端口B和端口C 8255A有三个8位的数据端口:端口A、端口B和端口C。可
36、以通过程序设定,使它们作为输入端口或输出端口与单片机或外部设备进行数据、控制和状态信息的交换。4)、A组控制部件和B组控制部件 A组控制部件控制由端口A和端口C的高4位(PC7PC4)组成的A组;B组控制部件控制由端口B和端口C的低4位(PC3PC0)组成的B组。这两个组控制部件接收8255A内部数据总线送来的控制字,以及读/写控制逻辑送来的读/写命令,确定对这两个组的具体操作。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.4.2 Intel 8255A的控制字的控制字 8255A是可编程接口芯片,要使8255A工作,必须把工作命令控制字写入8255A的控制字寄存器。
37、8255A共有两种控制字:-工作方式选择控制字;-对端口C置位/复位控制字。1、方式选择控制字 8255A的选择工作方式的控制字格式和各位的含义如图6-16所示。小结:(1)、端口A可以工作于方式0、方式1、方式2共三种工作方 式,可以作为输入端口或输出端口;(2)、端口B可以工作于方式0、方式1两种工作方式,可以作 为输入端口或输出端口;(3)、端口C分成高4位(PC7PC4)和低4位(PC3PC0),可 分别设置成输入端口或输出端口;端口C的高4位与端 口A配合组成A组,端口C的低4位与端口B配合组成B组 (4)、D71表明是设定方式选择控制字。第第6 6章章 80C5180C51单片机的
38、系统扩展单片机的系统扩展例6.6:设8255A的控制字寄存器端口地址为3003H,使端口A、端口B都工作于方式0,端口A、端口B、端口C都作为输入端口,则控制字为10011011B,设置8255A控制字的程序段如下:MOV DPTR,#3003H MOV A,#9BH MOVX DPTR,A2、端口C按位置位/复位控制字 端口C可以按位进行置位/复位操作,也就是使端口C的各位分别设置为1或0。控制字的格式如图6-17所示。控制字中,D70(特征位),表示是端口C按位置位/复位控制字。D3、D2、D1选择端口C要进行置位/复位操作的位。例6.7:设8255A的控制字寄存器的端口地址为3003H,
39、要设置PC31,则按位置位/复位控制字为00000111B,设置8255A置位/复位控制字的程序段如下:MOV DPTR,#3003H MOV A,#07H MOVX DPTR,A 第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.4.3 Intel 8255A的工作方式的工作方式 1、方式、方式0 方式0也被称为基本输入/输出工作方式,不需要应答联络信号。端口A、端口B和端口C的高4位及低4位都可以作为输入或输出端口。2、方式、方式1 方式1是一种选通输入/输出方式,也称为应答方式。在这种工作方式下,端口A和端口B作为输入或输出数据的数据端口。端口C的某些位作为联络信号
40、,配合端口A和端口B工作。端口C联络信号如表6-4所示。3、方式、方式2 方式2也被称为双向选通输入/输出方式,只有端口A可以工作于这种方式。在这种方式下,利用端口A既可以进行数据输入,也可以进行数据输出。输入或输出的数据都被锁存。端口B仍可独立工作于方式0或方式1。8255A工作于方式2时,端口C的PC3PC7作为方式2的控制和状态信息,端口C联络信号如表6-4所示。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.4.4 8255A与单片机与单片机89S51的连接的连接 8255A和89S51单片机的连接非常简单,只需将相互的数据线、RD和WR对接,将8255A的地址
41、线和片选线与89S51地址线相接,PA、PB和PC与外设相接即可。图6-18是一个用89S51(89C51)单片机扩展1片2764 EPROM(8K8)、2片6264 SRAM(8K8)和1片可编程并行接口8255A的电路。8255A的PA、PB和PC接外部设备。1、连线说明、连线说明 数据线:8255A的8根数据线D0D7直接和P0口相连。控制线:8255A的复位线RESET与89S51的复位端相连(在图6-18中未画出)。8255的RD和WR与89S51的RD和WR相连。图中采用了74LS138译码器,作为各芯片的片选信号。其中Y0接2764芯片的CE,Y1接6264(1)芯片的CE,Y2
42、接6264(2)芯片的CE,Y3接8255A芯片的CS。2、地址范围的确定、地址范围的确定 2764、6264和8255A地址范围确定如下:第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.4.5 8255A可编程并行接口扩展应用实例可编程并行接口扩展应用实例 8255A在使用前必须进行初始化,8255A初始化编程基本包括两个步骤:首先根据问题要求写出方式选择控制字,然后编写初始化程序,把方式选择控制字写入控制字寄存器。例6.7:如图6-19所示,在8255的B口接有8个按键,A口接有8个发光二极管,按下
43、某一按键,相应的发光二极管发光,试设计程序完成这一功能。解:根据电路图6-19,可确定8255A的端口地址如下:第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展参考程序如下:参考程序如下:ORG 0000H LJMP MAIN ORG 0200H MAIN:MOV DPTR,#0003H ;指向8255的控制口 MOV A,#83H MOVX DPTR,A ;向控制口写控制字,A口输出,B口输入 MOV DPTR,#0001H ;指向8255的B口 LOOP:MOVX A,DPTR ;检测按键,将按键状态读
44、入A累加器 MOV DPTR,#0000H ;指向8255的A口 MOVX DPTR,A ;驱动LED发光 SJMP LOOP ;循环 END第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.5 8155/8156可编程并行接口扩展可编程并行接口扩展 Intel公司研制的8155/8156芯片内包含:两个8位的I/O端口(A口、B口)、一个6位的I/O端口(C口);256B的静态SRAM存储器;一个14位的定时/计数器。8155和80C51单片机的接口非常简单,目前得到广泛应用。8155/8156的引脚和内部结构基本相同,唯一区别是片选信号的电平不同,其它功能完全一样,因
45、此,下面介绍8155。6.5.1 8155的结构和引脚的结构和引脚 8155有40个引脚,采用双列直插封装,其引脚图和内部组成框图如图6-20所示。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展1、8155A的引脚的引脚 8155各引脚定义如下:(1)AD0AD7(8条):地址/数据线复用线,因8155片内有地址锁存器,该组引脚直接与80C51单片机的P0口直接相连。(2)(2)I/O口总线(22条):PA0PA7、PB0PB7分别为端口A和端口B用于传送数据;PC0PC5为端口C既可用于传送数据,也可用作端口A和端口B的控制联络信号线。(3)控制总线(8条):RESET
46、:复位输入信号,高电平有效,复位后,8155的3个端口都为输入方式。CE:片选信号,低电平有效。RD:读选通信号,低电平有效,控制8155的读操作 WR:写选通信号,低电平有效,控制8155的写操作。IO/M:RAM及I/O选择。在片选信号有效的情况下,该信号为高电平,表明80C51单片机选择的是8155的I/O读写;为低电平,表明80C51单片机选择的是8155的RAM读写。ALE:地址锁存信号,高电平有效。8155片内有地址锁存器,该信号的下降沿将AD0AD7上的地址信息以及CE、IO/M的状态锁存在8155的内部寄存器内。因此,单片机的P0口和8155连接时,无需外接锁存器。TIMER
47、IN:定时/计数器的输入端。其输入脉冲对8155内部的14位定时/计数器减1。TIMER OUT:定时/计数器的输出端。当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展2、8155 RAM和和I/O的端口地址的端口地址 当片选信号CE=0,RAM及I/O选择位IO/M=0时,8155只能做片外RAM使用,共256B。地址的高8位由片选信号确定,地址的低8位为00HFFH。当系统同时扩展有片外数据存储器RAM时,二者是统一编址。对8155内部RAM的操作要使用片外RAM的读/写指令MOVX进行访
48、问。当片选信号CE=0,RAM及I/O选择位IO/M=1时,对8155片内3个I/O端口(PA、PB、PC)以及命令/状态寄存器和14位定时/计数器进行操作。8155内部RAM、I/O端口及定时/计数器的地址如表6-5。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展6.5.2 8155的工作方式的工作方式 1、工作方式设置及状态寄存器格式、工作方式设置及状态寄存器格式 8155的工作方式由可编程命令寄存器内容决定,因此在8155操作前,80C51单片机须向命令寄存器送命令字,设定其工作方式,命令字只能写入不能读出。8155内部还有一个状态寄存器,只能读出不能写入。8155
49、的状态寄存器和命令寄存器是两个独立的8位寄存器,8155的状态寄存器和命令寄存器共用一个地址,若8155的00H口是命令/状态口,CPU往00H写入的是命令字,而从中读出的是状态字。(1)工作方式设置)工作方式设置 8155的工作方式的确定也是通过对8155的命令寄存器写入控制字来实现的。8155控制字的格式如图6-21所示。控制字只能通过指令MOVX DPTR,A或或MOVX Ri,A写入命令寄存器。例6.8:若8155的命令/状态寄存器地址为00H,设A、B口为基本输出方式,C口为基本输出方式,试编写8155的初始程序。解:根据题意控制字为0FH,8155的初始程序如下:MOV R0,#0
50、0H ;送命令寄存器的地址 MOV A,#0FH ;A、B口为基本输出方式,C口为基本输出方式 MOVX R0,A 第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展(2)状态寄存器格式状态寄存器格式 8155的状态寄存器由8位锁存器组成,状态寄存器中存放有状态字,状态字反映了8155的工作情况,只能读出不能写入只能读出不能写入,8155状态字的各位定义如图6-22所示。状态寄存器只能通过指令MOVX A,DPTR或或MOVX A,Ri来读出,以此来了解8155的工作状态。第第6 6章章 80C5180C51单片机的系统扩展单片机的系统扩展 2、8155作定时作定时/计数器计