单片机的系统扩展技术.ppt
第第8章章 单片机的系统扩展技术单片机的系统扩展技术 8.1 程序存储器的扩展程序存储器的扩展 8.2 数据存储器的扩展数据存储器的扩展 8.3 I/O口的扩展口的扩展系统扩展的含义系统扩展的含义 单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说,有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。l所谓系统的扩展与配置一般说来有如下两项主要任务:l 第一项是扩大单片机的容量。由于芯片结构、引第一项是扩大单片机的容量。由于芯片结构、引脚等关系,单片机内脚等关系,单片机内ROMROM,RAMRAM等功能部件的数量不可能很等功能部件的数量不可能很多、在使用中有时会感到不够。因此需要在片外进行扩展,多、在使用中有时会感到不够。因此需要在片外进行扩展,以满足实际系统的需要。以满足实际系统的需要。l 另一项是把系统所需的外设与单片机连起来,使另一项是把系统所需的外设与单片机连起来,使单片机系统能与外界进行信息交换。如通过键、单片机系统能与外界进行信息交换。如通过键、A/DA/D转换转换器、磁带机、开关等外部设备向单片机送入数据、命令等器、磁带机、开关等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行,通过显示器、发光二极管、有关信息,去控制单片机运行,通过显示器、发光二极管、打印机、继电器、音响设备等把单片机处理的结果送出去,打印机、继电器、音响设备等把单片机处理的结果送出去,向人们提供信息或对外界设备提供控制信号,这项任务实向人们提供信息或对外界设备提供控制信号,这项任务实际上就是单片机接口设计。际上就是单片机接口设计。l8.1 程序存储器的扩展程序存储器的扩展l单片机最小应用系统单片机最小应用系统:单片机的各种功能能满单片机的各种功能能满足应用系统的需要足应用系统的需要.l例例:8051/8751:由单片机和一些不能集成在芯:由单片机和一些不能集成在芯片内的晶体振荡电路、复位电路、电源部分组成。片内的晶体振荡电路、复位电路、电源部分组成。应用特点是:应用特点是:l(1)全部)全部I/O口线均可供用户使用。口线均可供用户使用。l(2)内部存储器容量有限(只有)内部存储器容量有限(只有4KB地址空间)。地址空间)。l(3)应用系统开发具有特殊性。)应用系统开发具有特殊性。l 8031/8032:由单片机和:由单片机和外接外接的的ROM或或EPOM芯片和晶体振荡电路、复位电路、电源部芯片和晶体振荡电路、复位电路、电源部分组成。分组成。(如下图如下图)图图 8.1 MCS-51 单片机最小应用系统(单片机最小应用系统(8051、8751)图 8.2 MCS-51 单片机最小应用系统(8031、8032)当单片机最小应用系统不能满足系统要求时当单片机最小应用系统不能满足系统要求时,就需要扩就需要扩展展ROM(或或EPOM)、RAM、I/O 口、口、D/A和和A/D转换及定时转换及定时/计数器等外围芯片。计数器等外围芯片。一般将外部总线变成微机三总线结构形式。一般将外部总线变成微机三总线结构形式。MCS-51的三总线:1)地址总线()地址总线(AB):):P2口提供高口提供高8位地址线(可自己位地址线(可自己 锁存)锁存)P0口提供低口提供低8位地址线(需加地址锁存器锁位地址线(需加地址锁存器锁存低存低8位的地址信息,位的地址信息,ALE正脉冲信号的下降沿控正脉冲信号的下降沿控制锁存时刻)制锁存时刻)2)数据总线(DB):由P0口提供,是双向、输入三态控制的通道口 3)控制总线(CB):扩展系统时常用的控制信号为:ALE RESET注意:所有的外部芯片都是通过这注意:所有的外部芯片都是通过这3组总线进行扩展组总线进行扩展MCS-51单片机有四个单片机有四个I/O口,共口,共32条口线,但由于系条口线,但由于系统扩展的需要,真正能作为数据统扩展的需要,真正能作为数据I/O使用的就只有使用的就只有P1口和口和P3口的部分口线。口的部分口线。图图5.3 MCS-51系列单片机三总线结构系列单片机三总线结构 8.1 单片机程序存储器的扩展单片机程序存储器的扩展 MCS51系列单片机数据存储器和程系列单片机数据存储器和程序存储器的地址空间是相互独立的。序存储器的地址空间是相互独立的。MCS51系列单片机具有系列单片机具有64K的程序的程序存储器寻址空间,以程序计数器存储器寻址空间,以程序计数器PC作为地作为地址指针,通过址指针,通过16位地址总线寻址位地址总线寻址 如果系统需要用到的存储器超过了单片如果系统需要用到的存储器超过了单片机本身具有的容量,就要进行片外程序存机本身具有的容量,就要进行片外程序存储器的扩展。储器的扩展。(主要是主要是EPROM和和EEPROM)8051/8751/89C51单片机:单片机:内部有最低内部有最低4KB地址空间的地址空间的ROM,扩展后,扩展后64KB内、外程序存储器的地址是统一编排的,内、外程序存储器的地址是统一编排的,通过对通过对 引脚引脚 设置来确定是访问内部还是外部程设置来确定是访问内部还是外部程序存储器。序存储器。8031单片机:单片机:内部无内部无 ROM,必须外接程序存储器,地址为,必须外接程序存储器,地址为0000-FFFFH,应始终接地。应始终接地。注意:访问内部和外部程序存储器的指令不同注意:访问内部和外部程序存储器的指令不同 用用MOVC访问外部程序存储器访问外部程序存储器 有关有关EPROM?l EPROM(Erasable Programmable ROM,可擦除可,可擦除可编程编程ROM)芯片可重复擦除和写入,解决了)芯片可重复擦除和写入,解决了PROM芯片芯片只能写入一次的弊端。只能写入一次的弊端。EPROM芯片有一个很明显的特征,芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。擦除器。l l EPROM内资料的写入要用专用的编程器,并且往芯内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(片中写内容时必须要加一定的编程电压(VPP=1224V,随不同的芯片型号而定)。,随不同的芯片型号而定)。EPROM的型号是以的型号是以27开头开头的,如的,如2716是一片是一片EPROM芯片。芯片。l l EPROM芯片在写入资料后,还要以不透光的贴纸或芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。损。图图 8.4 EPROM扩展芯片扩展芯片2716的引脚图的引脚图 2716容量:2KB8位 程序存储器的扩展要解决的几个问题:.程序存储器的作用程序存储器的作用 存放程序代码或常数表格存放程序代码或常数表格 .扩展时所用芯片扩展时所用芯片 一般用只读型存储器芯片(可以是一般用只读型存储器芯片(可以是 EPROMEPROM、E E2 2PROMPROM、FLASHFLASH芯片等)。芯片等)。.扩展电路连接扩展电路连接 用用EPROM 2716EPROM 2716、27322732等扩展程序存等扩展程序存 储器。储器。.存储器地址分析存储器地址分析单片机输出什么地址值时,可以单片机输出什么地址值时,可以 指向存储器中的某一单元。指向存储器中的某一单元。图 8.5 2716与8031的连接图 实例:实例:1.地址线:地址线:P0口分时提供口分时提供8位地址线位地址线A0-A7 和数据线和数据线D0-D7的信息。的信息。ALE在在P0口出现地址信息时输出高电口出现地址信息时输出高电平(锁存),出现数据信息时输出低电平。平(锁存),出现数据信息时输出低电平。每个机器周期,每个机器周期,P0口发两次地址、数据信息,口发两次地址、数据信息,在在1个机器周期中个机器周期中ALE两次有效(锁存地址)两次有效(锁存地址)P2口输出高口输出高8位地址位地址A8-A15,在,在1个机器周期中个机器周期中更新更新2次次 即:每个机器周期中至多允许执行两字节的指令即:每个机器周期中至多允许执行两字节的指令2.数据线:P0口接存储器的8位数据线D0-D7 为片选信号输入端,低电平有效,表示选中该EPROM 芯片,这里接地,表示常有效。从而确定所扩展存储器的地址空间范围。由图 可确定2716芯片的地址范围。方法是A10A0从全0开始,然后从最低位开始依次加 1,最后变为全1,相当于211=2 048个单元地址依次选通,称为字选。即 地址与单元是多对一的关系 3.控制线控制线:ALE 接至地址锁存器锁存信号接至地址锁存器锁存信号当采用当采用8031、8032时,时,应应接接地地接存储器读信号接存储器读信号5.1.3 EEPROM 的扩展的扩展 l EEPROM 是一种电擦除可编程只读存储器,是一种电擦除可编程只读存储器,掉电后信息不会丢失,掉电后信息不会丢失,+5V电源下电源下 就可以进行编就可以进行编程,而且对编程脉冲宽度一般无特殊要求。程,而且对编程脉冲宽度一般无特殊要求。EEPROM存储器主要存放数据,可在线编程,并存储器主要存放数据,可在线编程,并且在断电的情况下保持修改的结果。且在断电的情况下保持修改的结果。l 在智能化仪器仪表、控制装置等领域都普遍应在智能化仪器仪表、控制装置等领域都普遍应用。用。EEPROM 种类很多,主要有串行种类很多,主要有串行EEPROM 和并行和并行EEPROM 图图 8.6 2864A管脚管脚图 8.7 2864A与8031的接口电路1.地址线:地址线:P0口分时提供口分时提供8位地址线位地址线A0-A7 和数据线和数据线D0-D7的信息。的信息。ALE在在P0口出现地址信息时输出高电平(锁存),出现口出现地址信息时输出高电平(锁存),出现数据信息时输出低电平。数据信息时输出低电平。2.数据线数据线:P0口接存储器的口接存储器的8位数据线位数据线D0-D73.控制线控制线:ALE 接至地址锁存器锁存信号接至地址锁存器锁存信号内外程序存储器选择信号内外程序存储器选择信号接存储器读信号接存储器读信号片选信号,这里是线选法片选信号,这里是线选法8.2 数据存储器的扩展数据存储器的扩展 MCS-51单片机的内部数据存储器容量一般为单片机的内部数据存储器容量一般为128B256B,可以作为工作寄存器、堆栈、标志和数据缓冲区使,可以作为工作寄存器、堆栈、标志和数据缓冲区使用。用。对数据量较小的系统,内部对数据量较小的系统,内部RAM已足够;已足够;当数据量较大时,就需要扩展当数据量较大时,就需要扩展RAM数据存储器,扩展容量数据存储器,扩展容量最大可达最大可达64KB。最常用的最常用的RAM器件是器件是SRAM,与动态,与动态RAM相比,静态相比,静态RAM无须考虑保持而设置的刷新电路,故扩展电路简单。无须考虑保持而设置的刷新电路,故扩展电路简单。但静态但静态RAM是通过有源电路来保持存储器中的数据,因此是通过有源电路来保持存储器中的数据,因此要消耗较多的功率,价格也较高。要消耗较多的功率,价格也较高。8.2.1 单片机单片机RAM概述概述1.静态静态RAM芯片芯片 图 8.9 6264 管脚图 I/O 07:数据线A0A12:地址线CE、CE:片选线OE:输出使能WE:写入使能VCC、GND:电源NC:未使用6116、6264、62256引脚功能如下:引脚功能如下:A0Ai:地址输入线,:地址输入线,i=10(6116,12(6264),),(62256)。)。O0O7:双向三态数据线。:双向三态数据线。:片选信号输入线,低电平有效。:片选信号输入线,低电平有效。6264的的26脚(脚(CE2)为高电平,且为高电平,且 为低电平时才选中该片。为低电平时才选中该片。:选通信号输入线,低电平有效。选通信号输入线,低电平有效。:写允许信号输入线,低电平有效。:写允许信号输入线,低电平有效。Vcc:主电源,电压为:主电源,电压为5V;GND:接地端。:接地端。2.6264的工作方式的工作方式 图 8.10 MCS-51 数据存储器的扩展示意图 8.2.2 SRAM扩展实例扩展实例图 8.11 扩展6264 静态RAM 注意注意:访问内部和外部存储器时访问内部和外部存储器时,应分别使用应分别使用MOV和和MOVX指令指令.外部数据存储器的两个数据区外部数据存储器的两个数据区:1)低低8位地址线寻址的外部数据区,寻址空间为位地址线寻址的外部数据区,寻址空间为256个字节,可通过个字节,可通过Ri(R1或或R2)8位寻址,位寻址,Ri内内存放外部存放外部RAM的地址号的地址号例:例:MOVX A,Ri (读指令)(读指令)MOVX Ri,A (写指令)(写指令)若数据量不大,一般采用该寻址方式若数据量不大,一般采用该寻址方式2)16位地址线寻址的外部数据区位地址线寻址的外部数据区 当外部数据容量较大,要访问当外部数据容量较大,要访问RAM单元的地址单元的地址大于或等于大于或等于256时,采用时,采用DPTR寄存器的寄存器的16位寻址,位寻址,可寻址可寻址216=64KB单元,单元,DPTR 内存放访问的外部内存放访问的外部RAM单元的单元的16位地址号。位地址号。例:例:MOVX A,DPTR (读指令)(读指令)MOVX DPTR,A (写指令)(写指令)8.3并行并行I/O口扩展口扩展l MCS-51系列单片机有系列单片机有4个个8位并行输入位并行输入/输出口,单片输出口,单片机与外围设备的数据传送都是通过并行输入机与外围设备的数据传送都是通过并行输入/输出口或串输出口或串行口完成的。对于行口完成的。对于8051(或(或8052)/8751(或(或8752)来说,)来说,无须扩展外部存储器,无须扩展外部存储器,P0口口P3口均可作为通用口均可作为通用I/O口使口使用。但扩展存储器后,用。但扩展存储器后,P2口、口、P0口被占用,留给用户的口被占用,留给用户的只有只有P1和和P3口,而口,而P3口是多用途口,当第二功能使用时,口是多用途口,当第二功能使用时,就不能作一般就不能作一般I/O口线。因此,在实际应用中,大都需要口线。因此,在实际应用中,大都需要扩展扩展I/O口。口。l 用户可以把外部用户可以把外部64KB的数据存储器的一部分的数据存储器的一部分作为外部作为外部I/O口的地址口的地址l8.3.1 地址译码法地址译码法l(1)线选法扩展片外芯片线选法扩展片外芯片l所谓线选法,就是利用单片机高地址总线(一般所谓线选法,就是利用单片机高地址总线(一般为为P2口)作为存储器(或口)作为存储器(或I/O口)的片选信号,即口)的片选信号,即是将是将P2口的某一根地址线与存储器(或口的某一根地址线与存储器(或I/O口)的口)的片选信号直接相连,该地址线为低电平时,选中片选信号直接相连,该地址线为低电平时,选中该芯片。如图所示。该芯片。如图所示。l用用 线线 选选 方方 式式 实实 现现 片片 选选l 图中图中、都是都是4KB8位存储器芯片,地址线位存储器芯片,地址线A11A0实现片内寻址,地址空间为实现片内寻址,地址空间为4KB。现用。现用3根高位根高位地址线地址线A14、A13、A12实现片选,均为低电平有效。为实现片选,均为低电平有效。为了不出现寻址错误,当了不出现寻址错误,当A12、A13、A14之中有一根地址之中有一根地址线为低电平时,其余两根地址线必须为高电平,也就是说线为低电平时,其余两根地址线必须为高电平,也就是说每次存储器操作只能选中一个芯片,现假设剩下的每次存储器操作只能选中一个芯片,现假设剩下的A15为为高电平,这样可得到高电平,这样可得到3个芯片的地址分配,如表个芯片的地址分配,如表5.3所示。所示。l线选法地址分配表线选法地址分配表(表表8.3)l从表中看出从表中看出3个芯片的内部寻址个芯片的内部寻址A11A0都是都是00(共(共12位)到位)到11(共(共12位),为位),为4KB空间,而依靠不同的片空间,而依靠不同的片选信号高位地址线选信号高位地址线A14、A13、A12之中某一根为之中某一根为0,来,来区分这区分这3个芯片的地址空间。个芯片的地址空间。二 进 制 表 示 十六进制 A15 A14 A13 A12A11 A0芯片 1 1 1 0 0 01 1 E000HEFFFH 芯片 1 1 0 10 1 1D000HDFFFH 芯片 1 0 1 1 0 01 1 B000HBFFFH l 线选法简单,适用于不太复杂的系统。线选法简单,适用于不太复杂的系统。但每占用一根地址线,就占用了一段地址但每占用一根地址线,就占用了一段地址空间,且各地址空间不连续,不能充分利空间,且各地址空间不连续,不能充分利用存储空间或者存在地址重叠现象。用存储空间或者存在地址重叠现象。l(2)地址译码法地址译码法l 当线选法所需地址选择线多于可用地址线时,当线选法所需地址选择线多于可用地址线时,一般采用地址译码法。译码法就是利用译码器对一般采用地址译码法。译码法就是利用译码器对单片机的某些高位地址线进行译码,其译码输出单片机的某些高位地址线进行译码,其译码输出作为存储器(或作为存储器(或I/O口)的片选信号。这种方法存口)的片选信号。这种方法存储空间连续,能有效地利用存储空间,适用于多储空间连续,能有效地利用存储空间,适用于多存储器、多存储器、多I/O口的扩展。口的扩展。地址译码法必须采用地址译码法必须采用地址译码器,常用的地址译码器有地址译码器,常用的地址译码器有74LS138、74LS139、74LS154、8282等。等。l例如用译码法实现扩展容量例如用译码法实现扩展容量4KB8位的存储器芯位的存储器芯片片、的接口电路,接线图如下图所示。的接口电路,接线图如下图所示。l地址线地址线A11A0用于片内寻址,高位地址线用于片内寻址,高位地址线A14、A13、A12接到接到74LS138译码器的选择输入端译码器的选择输入端C、B、A。74LS138器的、分别作为器的、分别作为3个芯片的片选信号。个芯片的片选信号。l采 用全译码方式实现片选l根据译码器的逻辑关系和存储器的片内寻址范围,可以得到3个芯片地址空间,如表5.4。l译码法实现片选的地址分配表译码法实现片选的地址分配表 (表表8.4)二 进 制 表 示 十六进制 A15 A14 A13 A12 A11 A10 A0 芯片 1 0 0 0 0 0 0 8000H8FFFH 1 0 0 0 1 1 1 芯片 1 0 0 1 0 0 0 9000H9FFFH 1 0 0 1 1 1 1芯片 1 0 1 0 0 0 0 A000HAFFFH 1 0 1 0 1 1 1l从例子中的硬件连接图中看出,单片机除从例子中的硬件连接图中看出,单片机除了扩展存储器所需的地址线外,剩余的全了扩展存储器所需的地址线外,剩余的全部地址线都参加译码,这种译码方式称为部地址线都参加译码,这种译码方式称为全译码。全译码的优点是存储器芯片的地全译码。全译码的优点是存储器芯片的地址空间连续,且唯一确定,不存在地址重址空间连续,且唯一确定,不存在地址重叠现象,能够充分利用内存空间。叠现象,能够充分利用内存空间。l扩展并行扩展并行I/O口的方法主要有两种:口的方法主要有两种:l一是采用单片机专用的扩展一是采用单片机专用的扩展I/O接口芯片,接口芯片,如如8155、8212、8255等;等;l二是利用通用的三总线扩展三态门等接口。二是利用通用的三总线扩展三态门等接口。图8.12 这种I/O口一般都是通过P0口扩展。由于P0口是双向数据线,图中74LS244作为输入口、74LS273作为输出口,它们都可以通过P0口输入、输出数据。输出控制信号由P2.0和 合成,当二者同时为电平时,“或”门输出电平,273的,数据进入273,数据锁存在端并输出。输入控制信号由.和 合成,当二者同时为电平时,“或”门输出电平,244的(直通),将外部信息输入到总线。注意使用是P2.0(A8)必须为0。l电路可实现的功能是:按下任意键,对应的电路可实现的功能是:按下任意键,对应的LED发光。程发光。程序如下:(序如下:(MCS-51单片机把外扩单片机把外扩I/O口和片外口和片外RAM统一编统一编址,每个扩展的接口相当于一个扩展的外部址,每个扩展的接口相当于一个扩展的外部RAM单元,访单元,访问外部接口就像访问外部问外部接口就像访问外部RAM一样,用的都是一样,用的都是MOVX指令指令)LOOP:MOV DPTR,#FEFFH;数据指针指;数据指针指 向扩展向扩展I/O口口地址地址 MOVX A,DPTR ;向;向244读入数据,检测按键读入数据,检测按键 MOVX DPTR,A ;向;向273输出数据,驱动输出数据,驱动LED SJMP LOOP ;循环;循环8.3.2 采用采用Intel系列可编程接口芯片系列可编程接口芯片l完成一些较复杂的接口动作,仅靠几片完成一些较复杂的接口动作,仅靠几片74LS273、244之类的芯片已不能满足要求。必须扩展功能强之类的芯片已不能满足要求。必须扩展功能强的可编程接口芯片。常用的可编程芯片有:的可编程接口芯片。常用的可编程芯片有:8155可编程并行接口、可编程并行接口、8255可编程并行接口、可编程并行接口、8251可可编程通信接口、编程通信接口、8253可编程间隔定时器、可编程间隔定时器、8279可可编程键盘编程键盘/显示器接口等。下面通过显示器接口等。下面通过8255芯片说芯片说明可编程接口芯片的扩展。明可编程接口芯片的扩展。一、一、8255A可编程并行可编程并行I/O接口接口 1.结构 8255A由 3 个 8 位并行I/O口,称为PA口、PB口和PC口;数据缓冲器及读写控制逻辑电路组成。其中PC口又分为高 4 位和低 4 位,通过控制字设定可以选择三种工作方式:基本输入/输出;选通输入/输出;PA口为双向总线。8255A的内部结构图的内部结构图2.32.3种工作方式:种工作方式:方式方式0 0(基本(基本I/I/O方式)方式):A A口、口、B B口、口、C C口均为数据口均为数据I/OI/O。输出锁存,输入。输出锁存,输入三态,不用联络信号。三态,不用联络信号。适用于无条件或查询方式的数据传送。适用于无条件或查询方式的数据传送。方式方式1 1(选通(选通I/I/O方式):方式):A A口和口和B B口用于数据口用于数据I/OI/O,输入,输入/输出均锁存,输出均锁存,C C口口用于传送联络信号,读用于传送联络信号,读C C口可了解外设当前状态。口可了解外设当前状态。适用于查询或中断方式的数据适用于查询或中断方式的数据I/OI/O。方式方式2 2(双向数据传送方式):(双向数据传送方式):A A口为数据口为数据I/I/O,B B口无此方式,口无此方式,C C口用作口用作A A口双向口双向传送的联络信号线。传送的联络信号线。适用于查询或中断方式的数据适用于查询或中断方式的数据I/OI/O。8255A的芯片引脚信号的芯片引脚信号4040脚脚引脚(引脚(4040脚)脚):1.1.数据线:数据线:D D0 07 7:传送单片机与传送单片机与82558255之间的数据、控制字和状态字。之间的数据、控制字和状态字。PAPA0 07 7 PB PB 0 07 7 PC PC0 07 7:传送传送82558255与外设之间的数据和联络与外设之间的数据和联络 信息,信息,PCPC0 07 7可用作数据线或联络线。可用作数据线或联络线。2.2.地址线:地址线:CSCS:片选线片选线A A1 1、A A0 0:口选线,寻址口选线,寻址 PAPA、PBPB、PCPC数据口和控制口。数据口和控制口。3.3.读写控制线:读写控制线:RDRD、WRWR控制单片机与控制单片机与82558255之间的信息传送和流向。之间的信息传送和流向。4.4.复位线:复位线:RESETRESET高电平复位,使内部寄存器全部清零。高电平复位,使内部寄存器全部清零。4.8255的全部工作状态是通过读的全部工作状态是通过读/写控制逻辑和写控制逻辑和工作方式来实现工作方式来实现(见表见表)例例:求求82558255口口地地址址(写写操操作作):解:解:A A口口(7F00H)(7F00H);B B口口(7F01H)(7F01H);C C口口(7F02H)(7F02H);控制口控制口(7F03H)(7F03H)。P0 P2.780C51A0A1CS8255373Q0Q1ABABi i:15 14 13 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 012 11 10 9 8 7 6 5 4 3 2 1 0A A口:口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 7F00H7F00HB B口:口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 7F01H7F01HC C口:口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 7F02H7F02H控制口:控制口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 7F03H7F03H5.82555.8255编程规定编程规定方式选择控制字:方式选择控制字:D D7 7=1=1C C口置位口置位/复位控制字:复位控制字:D D7 7=0=082558255初始化编程:初始化编程:往控制口写入控制字,确定往控制口写入控制字,确定82558255工作方式。工作方式。方式选择控制字方式选择控制字8255A方式选择注意:方式选择注意:有三种基本工作方式:有三种基本工作方式:方式方式0基本的输入输出方式基本的输入输出方式 方式方式1选通的输入输出方式选通的输入输出方式 方式方式2双向传输方式双向传输方式 只有端口只有端口A能工作在方式能工作在方式2;同一组的两端口可分别工作在输入和输出方式。同一组的两端口可分别工作在输入和输出方式。例:例:8255PA8255PA口方式口方式0 0输出单片机片内输出单片机片内RAMRAM数据,数据,PBPB口方式口方式1 1输入输入。PIOS:M MOV DPTRV DPTR,#7F03H#7F03H;控制口地址;控制口地址 M MOV V A A,#86H#86H ;写控制字;写控制字 M MOVX DPTRVX DPTR,A A ;设工作方式;设工作方式 M MOV V DPTR DPTR,#7F00H#7F00H ;PAPA数据口地址数据口地址 M MOV V A A,R0R0 ;取;取RAMRAM的数据的数据 M MOVX DPTRVX DPTR,A A ;由;由PAPA口输出口输出例:让C3产生一个脉冲信号 若要通过C口的某一位输出一个脉冲时,只要将相应的控制字送入控制寄存器可实现(先给C3置位,再给C3清零)MOV A ,#07H MOV DPTR,#04F3H MOVX DPTR,A MOV A,#06H MOVX DPTR,A