《单片机技术及应用第十章MCS51系统扩展及接口技术.ppt》由会员分享,可在线阅读,更多相关《单片机技术及应用第十章MCS51系统扩展及接口技术.ppt(187页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 单片机技术及应用单片机技术及应用第第10章章 MCS-51系统扩展及系统扩展及接口技术接口技术 单片机技术及应用 单片机技术及应用教学提示教学提示本章重、难点在于单片机存储器扩展方法、并行I/O口的扩展方法、可编程芯片8255及8155的应用、显示技术与键盘接口技术、A/D转换和D/A转换的工作原理。教学目标教学目标理解单片机最小系统与外围扩展的必要性。理解单片机系统扩展接口技术。掌握单片机系统扩展显示技术与键盘接口技术。MCS-51单片机存储器扩展的实现。MCS-51单片机并行接口扩展的实现。MCS-51单片机A/D转换和D/A转换的实现。单片机技术及应用 单片机技术及应用10.1 单片机
2、系统扩展概述单片机系统扩展概述 虽然MCS-51系列单片机芯片内部集成了计算机的基本功能部件,但由于片内ROM、RAM的容量及输入/输出端口等是有限的,在许多实用系统中,还需要在片外连接相应的外围芯片对功能进行扩展,以满足应用要求。单片机技术及应用10.1.1 10.1.1 单片机应用系统扩展要求单片机应用系统扩展要求MCS-51系列单片机能提供很强的扩展功能,可以直接外接标准的存储器电路和I/O接口电路,以构成功能很强、规模较大的系统。所谓系统扩展一般说来有以下两项主要任务:第一项是把系统所需的外设与单片机连起来,使单片机系统能与外界进行信息交换。例如,通过键盘、传感器、A/D转换器、磁带机
3、、开关等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行,通过显示器、发光二极管、打印机、继电器、音响设备等把单片机处理的结果送出去,向人们提供信息或对外界设备提供控制信号,这项任务实际上就是单片机接口设计。另一项是扩大单片机的容量。由于芯片结构、引脚等关系,单片机内ROM、RAM、I/O口等功能部件的数量不可能很多,在使用中有时会感到不够,因此需要在片外进行扩展,以满足实际系统的需要。单片机技术及应用10.1.2 单片机常用扩展芯片单片机常用扩展芯片 在单片机应用系统中,单片机本身所提供的资源如I/O口、定时器/计数器、串行口等往往不能满足要求,因此需要在单片机上扩展其他外围接口芯
4、片。由于MCS-51系列单片机的外部RAM和I/O口是统一编址的,因此用户可以把单片机外部64KB的RAM空间的一部分作为扩展I/O的地址空间。这样,单片机就可以像访问外部RAM存储器那样访问外部接口芯片,对其口进行读写操作。单片机技术及应用表表10-1 MCS-5110-1 MCS-51单片机常用外围芯片单片机常用外围芯片 单片机技术及应用10.2 10.2 存储器扩展存储器扩展10.2.1 存储器扩展概述存储器扩展概述1存储器扩展总线的组成存储器扩展总线的组成(1)数据传送:由数据总线DB(D0D7)完成;D0D7由P0口提供。(2)单元寻址:由地址总线AB(A0A15)完成;低8位地址线
5、A0A7由P0口提供,高8位地址线A8A15由P2口提供。(3)交互握手:由控制总线CB完成。控制线有PSEN、WR、RD、ALE、EA。单片机技术及应用2存储器扩展能力存储器扩展能力存储器可分别扩展64KBROM(包括片内ROM)和64KB片外RAM。地址为0000HFFFFH。因为程序存储器和数据存储器通过不同的控制信号和指令进行访问,允许两者的地址空间重叠,所以片外可扩展的程序存储器和数据存储器都为64KB。另外,在MCS-51单片机中,扩展的外部设备与片外数据存储器统一编址,即外部设备占用片外数据存储器的地址空间。因此,片外数据存储器同外部设备总的扩展空间是64KB。单片机技术及应用
6、MCS-51控制总线,有以下几条:(1)ALE:输出,用于锁存P0口输出的低8位地址信号,与地址锁存器门控端G连接。(2)PSEN:输出,用于片外ROM读选通控制,与片外ROM输出的允许端OE连接。(3)EA:输入,用于选择读片内/外ROM。EA=1,读片内ROM;EA=0,读片外ROM。一般情况下,有并且使用片内ROM时,EA接VCC;无片内ROM或仅使用片外ROM时,EA接地。这里要注意的是,MCS-51单片机有一个管脚EA跟程序存储器的扩展有关。如果EA接高电平,那么片内存储器地址范围是0000H0FFFH(4KB),片外程序存储器地址范围是1000HFFFFH(60KB)。如果EA接低
7、电平,单片机技术及应用不使用片内程序存储器,片外程序存储器地址范围为0000HFFFFH(64KB)。8031单片机没有片内程序存储器,因此EA管脚总是接低电平。(4)RD:输出,用于读片外RAM选通,执行MOVX读指令时RD会自动有效,与片外RAM读允许端OE连接。(5)WR:输出,用于写片外RAM选通,执行MOVX写指令时WR会自动有效,与片外RAM写允许端WE连接。(6)P2.X:并行扩展片外RAM和I/O时,通常需要片选控制 一般由P2口高位地址线担任。单片机技术及应用10.2.2 10.2.2 程序存储器扩展程序存储器扩展MCS-51应用系统通常为特定功能的专用计算机系统。在系统调试
8、完毕后,其软件基本上定型,因此,MCS-51的程序存储器通常由ROM或EPROM或E2PROM电路构成。其特点是掉电以后,内部的程序信息不会丢失,因而提高了系统的可靠性。扩展程序存储器常用芯片有EPROM(ErasableProgrammableReadOnlyMemory)型(紫外线可擦除型),另外还有+5V电可擦除E2PROM等。如果程序总量不超过4KB,一般选用具有内部4KB存储器的单片机,若不够还可选用8KB或16KB内存的单片机,如89S52等。单片机技术及应用如果程序总量较大时超过上述字节,则利用外部扩展存储器来存放程序。但在单片机应用系统硬件设计中应注意,原则上一般尽量不扩展外部
9、程序存储器,尽量减少芯片使用个数MCS-51单片机扩展外部程序存储器的硬件电路如图10-1所示。单片机技术及应用 单片机技术及应用在CPU访问外部程序存储器时,P2口输出地址高8位(PCH),P0口分时输出地址低8位(PCL)和送指令字节,其时序波形如图10-2所示。单片机技术及应用 单片机技术及应用 控制信号ALE上升为高电平后,P0口输出地址低8位(PCL),P2口输出地址高8位(PCH),由ALE的下降沿将P0口输出的低8位地址锁存到外部地址锁存器中。接着P0口由输出方式变为输入方式即浮空状态,等待从程序存储器读出指令,而P2口输出的高8位地址信息不变,紧接着程序存储器选通信号PSEN
10、变为低电平有效,由P2口和地址锁存器输出的地址对应单元指令字节传送到P0口上供CPU读取。单片机技术及应用 从图10-2中还可以看到,MCS-51的CPU在访问外部程序存储器的机器周期内,控制线ALE上出现两个正脉冲,程序存储器选通线PSEN上出现两个负脉冲,说明在一个机器周期内CPU访问两次外部程序存储器。对于时钟选为12MHz的系统,PSEN的宽度为230ns,在选用EPROM芯片时,除了考虑容量之外,还必须使EPROM的读取时间与主机的时钟匹配。单片机技术及应用 下面分别介绍外部扩展程序存储器EPROM和E2PROM的方法及这两种形式的存储器与MCS-51系列芯片的连接。1 1EPROM
11、EPROM接口设计接口设计 紫外线擦除电可编程只读存储器EPROM可作为MCS-51系列芯片的外部程序存储器,其典型的产品有2716(2K8bit)、2732(4K8bit)、2764(8K8bit)、27128(16K8bit)和27256(32K8bit)等。这些芯片上均有一个玻璃窗口,在紫外光下照射520min,存储器中的各位信息均变为1,此时,可以通过相应的编程器将工作程序固化到这些芯片中。2716、2732现在停产了,要买很难且价又贵。下面介绍2764的EPROM存储器。2764是一种8K8bit的紫外线擦除电可编程只读存储器,单一+5V供电,工作电流为100mA,维持电流为50mA
12、,读出时间最大为250ns。单片机技术及应用2764为28线双列直插式封装,其管脚配置如图10-3所示 单片机技术及应用A0A12:地址线。OE:数据输出选通线。D0D7:数据输出线。PGM:编程脉冲输入。CE:片选线。VPP:编程电源。2764的5种工作方式如表10-2所示。图10-4给出了2764与8031的硬件连接。单片机技术及应用表10-22764工作方式选择 单片机技术及应用 单片机技术及应用2 2E E2 2PROMPROM接口设计接口设计 电可擦除可编程只读存储器E2PROM是近年来国外厂家推出的新产品,它的主要特点是能在计算机系统中进行在线修改,并能在断电的情况下保持修改的结果
13、。因此,自从E2PROM问世以来,在智能化仪器仪表、控制装置、终端机、开发装置等各种领域中受到极大的重视。下面介绍2864A型E2PROM存储器。Intel的2864A是8K8bit的电可擦除可编程只读存储器,单一+5V供电,最大工作电流为140mA,维持电流为60mA。由于其片内设有编程所需的高压脉冲产生电路,因而无需外加编程电源和写入脉冲即可工作。采用典型的28脚结构,与常用的8KB静态RAM的6264管脚完全兼容。内部地址锁存,并且有16B的数据“页缓冲器”,允许对页快速写入,在片上保护和锁存数据信息。提供软件查询的标 单片机技术及应用 志信号,以判定数据是否完成对E2PROM的写入,芯
14、片的引脚、结构如图10-5所示。其引脚功能如下:A0A12:地址线。OE:输出使能端。I/O0I/O7:数据线。WE:写使能端。CE:片选线。单片机技术及应用 单片机技术及应用2864A与8031的硬件连接如图10-6所示。图中采用了将外部数据存储器空间和程序存储器空间合并的方法,即将PSEN信号与RD信号相“或”,其输出作为单一的公共存储器读选通信号。这样,8031即可对2864A进行读/写操作了。此外,为了简单起见,图中2864A的片选信号端接P2.5,在实际应用中通过74LS138译码器输出片选信号。单片机技术及应用 单片机技术及应用10.2.3 数据存储器的扩展数据存储器的扩展 MCS
15、-51芯片内部具有128B的RAM存储器,它们可以作为工作寄存器、堆栈、软件标志和数据缓冲器。CPU对其内部RAM有丰富的操作指令,因此这个RAM是十分珍贵的资源,应合理、充分地使用片内RAM存储器,发挥它的作用。在诸如数据采集处理的应用系统中,仅有片内的RAM存储器往往是不够的,在这种情况下,可利用MCS-51系列产品扩展外部RAM存储器。本节以8051为例讨论外部数据存储器的扩展方法。单片机技术及应用1 1MCS-51MCS-51访问外部访问外部RAMRAM的定时波形的定时波形 图10-7给出了单片机扩展RAM的电路结构。图中P0口为分时传送的RAM低8位地址/数据线,P2口的高8位地址线
16、用于对RAM进行页寻址。在外部RAM读/写周期,CPU产生RD/WR信号。单片机技术及应用 单片机技术及应用 MCS-51单片机与外部RAM单元之间数据传送的定时波形如图10-8所示。单片机技术及应用 单片机技术及应用 在图10-8(a)所示的外部数据存储器读周期中,P2口输出外部RAM单元的高8位地址(页面地址),P0口分时传送低8位地址及数据。当地址锁存允许信号ALE为高电平时,P0口输出的地址信息有效,ALE的下降沿将此地址打入外部地址锁存器,接着P0口变为输入方式,读信号RD有效,选通外部RAM,相应存储单元的内容出现在P0口上,由CPU读入累加器.单片机技术及应用 外部数据存储器写周
17、期波形如图10-8(b)所示,其操作过程与读周期类似。写操作时,在ALE下降为低电平以后,WR信号才有效,P0口上出现的数据写入相应的RAM单元。常用的数据存储器有静态RAM和动态RAM两种,由于静态RAM无需考虑刷新问题,所以接口简单且是最常用的。下面就以静态RAM为例加以讨论。单片机技术及应用 2 2数据存储器的扩展设计数据存储器的扩展设计 (1)6264静态RAM 6264是8K8bit的静态随机存储器芯片,它采用CMOS工艺制造,由单一+5V供电,额定功耗200mW,典型存取时间为200ns。为28线双列直插式封装,其管脚配置如图10-9所示。引脚功能如下:单片机技术及应用 单片机技术
18、及应用 单片机技术及应用 单片机技术及应用 由于数据存储器的地址空间和程序存储器占有的地址空间是相同的,所以在某些应用中,要执行的程序的地址与存放数据的地址相同。在8051中可以用PSEN信号和RD信号相或,使外部程序存储器与外部数据存储器的存储空间重叠而又能分别访问。单片机技术及应用10.3 I/O 口扩展设计口扩展设计 当CPU与外部设备连接时,并行接口是经常使用的。对51系列来说,如果带有外部存储器,则只有P1口可以完全用作并行口对外部设备连接,I/O接口的数目显然很不够。可以用来进行并行口扩展的芯片种类主要有:专用并行口电路,如前面介绍的专用并行口电路,如8255;综合扩展电路,如81
19、55;TTL或CMOS电路,如74LS373、74LS377、74LS244等。单片机技术及应用10.3.1 825510.3.1 8255可编程并行接口芯片可编程并行接口芯片 8255是一种可编程序的并行I/O接口芯片。8255有24条I/O引脚,分成A、B两大组(每组12条),允许分别编程,工作方式可分为方式0、方式1和方式2这3种。使用8255可实现以下各项功能:(1)并行输入或输出多位数据。(2)实现输入数据锁存和输出数据缓冲。(3)提供多个通信接口联络控制信号(如中断请求、外设准备好及选通脉冲等)。(4)通过读取状态字可实现程序对外设的查询。显而易见,这些功能可适应于很大一部分外设接
20、口的要求,因而并行I/O接口芯片几乎已成为微机中(尤其是单片机)应用最为广泛的一种芯片。单片机技术及应用 1.8255的内部结构和引脚排列的内部结构和引脚排列 图10-11所示为8255的内部结构和引脚排列。1)内部结构 8255可编程接口由以下4个逻辑结构组成:(1)A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。B口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲器组成(无锁存,决定了B口不能工作在方式2)。在使用上3个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。单
21、片机技术及应用 (2)A、B组控制电路。这是两组根据CPU的命令字控制8255工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。(3)数据缓冲器。这是一个双向三态8位的驱动口,用于和单片机的数据总线相连,传送数据或控制信息。(4)读、写控制逻辑。这部分电路接收MCS-51送来的读、写命令和选口地址,用于控制对8255的读、写。单片机技术及应用 单片机技术及应用 2)引脚 8255采用40线双列直插式封装,如图10-11所示。(1)数据线(8条)。D0D7为数据总线,用于传送CPU和8255之间的数据、命令和状态字。(2)控制线和寻址线(6条)。RESET:复位信号,输入高
22、电平有效。一般和单片机的复位端相连,复位后,8255所有内部寄存器清0,所有口都为输入方式。RD和WR:读、写信号线,输入,低电平有效。当RD为0时(WR必为1),所选的8255处于读状态,8255送出信息到CPU;反之亦然。单片机技术及应用 CS:片选线,输入,低电平有效。A0、A1:地址输入线。当CS=0芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。(3)I/O口线(24条)。PA0PA7、PB0PB7、PC0PC7为32条双向三态I/O总线,分别和A、B、C口相对应,用于8255和外设之间传送数据。(4)电源线(2条):VCC为+5V,GND为
23、地线。单片机技术及应用 2.2.并行端口信号并行端口信号 (1)PA7PA0(双向):A端口的并行I/O数据线。(2)PB7PB0(双向):B端口的并行I/O数据线。(3)PC7PC0(双向):当8255工作于方式0时,PC7PC0为两组并行I/O数据线。当8255工作于方式1或方式2时,PC7PC0将分别供给A、B两组转接口的联络控制线,此时每根线赋予新的含义。端口地址:8255中有3个输入输出端口。另外,内部还有一个控制寄存器,共有4个端口,有A1、A0来加以选择。A1、A0和RD、WR及CS组合所实现的各种功能如表10-4所示。单片机技术及应用 使用时一般将A1、A0接入地址总线的低2位
24、,因而一块8255芯片占用4个设备地址,分别对应于端口A、端口B、端口C和控制寄存器。单片机技术及应用 3 3三种工作方式及控制字三种工作方式及控制字/状态字状态字 8255有两个控制字和一个状态字。两个控制字均在A1A0为11的情况下发送,共用一个设备地址。如果控制字的最高位为1,表示是工作方式控制字,最高位为0,则表示是按位置数控制字(图10-12)。工作方式控制字用于规定端口的工作方式,分别由3位及4位对B、A两组进行设定。按位置数控制字用于对端口C的I/O引脚的输出进行控制。其中D3D1指示输出的位数;D0指示输出的值;“0”输出低电平,“1”输出高电平。显然,利用按位置位/复位控制字
25、可使端口C中每一位分别产生输出,而对其他各位不造成影响。单片机技术及应用 单片机技术及应用 单片机技术及应用 8255没有专门的状态字,而是当工作于方式1和方式2时,读取端口C的数据,即得状态字,如图10-13所示。当状态字中有效信息位不满8位时,所缺的即为对应端口C引脚的输入电平。单片机技术及应用 下面根据8255的不同工作方式,对控制字和状态字进行叙述。(1)方式0(基本输入/输出)。采用图10-14所示格式的工作方式控制字,可设定8255工作于方式0。方式0将24条I/O引脚分成4组(PA7PA0,PB7PB0,PC7PC4,PC3PC0),可提供基本的输入/输出功能,但不带联络信号或选
26、通脉冲。方式0可将数据并行写到(输出)某个端口锁存,外部数据也可通过某个端口缓冲后并行读入(输入)到CPU。方式0共有16种不同的输入/输出结构组合。单片机技术及应用 单片机技术及应用 (2)方式1(带联络信号的输入/输出)。根据图10-15所示的控制字格式,可设定8255工作于方式1。方式1能分别指定PA、PB作为两个独立的8位并行I/O端口,并采用原端口C中的部分引脚作为PA和PB的控制联络信号线(每组3条)。当采用方式1工作时,PA和PB的功能是完全相同的,但端口作为数据输入口或数据输出口时都具有不同的联络信号线和不同的工作波形。现分别叙述如下。单片机技术及应用 端口A(或B)被定义为方
27、式1并行输入时,内部控制电路便自动提供两个状态触发器,即中断允许触发器INTE和“输入数据缓冲器满”触发器IBF,同时还借用原端口C引脚作为IBF的输出端、选通信号STB的输入端和中断请求INTR信号的输出端。INTE触发器用于控制本端口是否允许请求中断,也即只有当INTE为1时才能允许该端口发出中断请求信号(INTR)。INTE的取值与原端口C的某一位相连,因此在启用端口前应通过按位置数控制字将INTE置位,结束前又可将之清零,如表10-5所示。INTE对外没有输出端,只能通过读状态字了解它的状态。单片机技术及应用 单片机技术及应用 当CPU从端口读入数据以后,由于RD低电平的来到及IBF被
28、清零,INTR也被复位。数据输入的整个过程如下:当端口被控制字指定为采用方式1输入以后,工作前还应发送按位设置控制字,将INTE置1。由于端口没有数据,IBF触发器为0。当外设通过IBF输出端了解到端口状态以后,便送出数据,并发出选通脉冲STB将数据打入端口。IBF触发器在STB的下降沿被置1。当STB恢复到高电平以后,由于IBF为1,INTR也为1,故发出中断请求信号INTR。单片机技术及应用 当CPU通过中断或询问方式接收到端口的请求(INTR=1)以后,即可向端口发出RD信号,将数据读入。在CPU读入数据的同时,由于RD下降为低电平,INTR也被清零。在RD的上升沿,IBF触发器被复位(
29、表示数据已被输入),外设便可再次发送数据,从而又重复上述过程。当CPU不需要接收数据时,可通过按位设置控制字将INTE清零,从而关闭该端口的请求。单片机技术及应用 当端口PA(或PB)被定义为方式1并行输出时,内部控制电路也相应提供两个状态触发器;中断允许触发器INTE和“输出数据缓冲器满”触发器OBF,同时还借用端口C的3条引脚分别作为OBF的输出端、回答信号ACK的输入端和中断请求信号INTR的输入端。INTE触发器的意义与输入时相同,用以控制该端口输入数据的中断请求信号INTR。启用端口前,也应通过按位设置控制字将它置位,如表10-5所示。单片机技术及应用 单片机技术及应用 OBF触发器
30、用于表征输出数据缓冲器的状态。当CPU将数据输出到端口以后,OBF自动置1,当外设将数据取走发出回答信号ACK时,OBF又被ACK的下降沿清零。OBF可通过状态字读得,同时它还以反码形式从芯片的OBF引脚输出。INTR引脚为端口中断请求信号输出端,可接至系统的中断处理部件。INTR输出高电平的条件是:INTR=INTEOBFWRACK 当CPU向端口发出数据以后,由于WR低电平的来到及OBF位置位,INTR即被清零。单片机技术及应用 此外,当8255以方式1工作时,由于只利用了端口C的6个引脚作应答联络线,剩余的两个引脚可用于一般的I/O。即:通过按位设置控制字可从其中某一位输出数据,通过读取
31、状态字又可从I/O引脚读入数据。(3)方式2(带联络信号的双向I/O端口)。通过图10-16所示的控制字格式,可设定8255的端口A工作于方式2,即成为一个8位的双向I/O转接口,并借用端口C的5条引脚作为联络信号线;该控制字中后3位(D2D0)可设定端口B的工作方式(方式0或方式1)及剩余3条端口C引脚的作用。单片机技术及应用 由于端口B的工作方式不同,当端口A工作于方式2双向I/O时,8255芯片可有4种组合。当端口A被定义为双向I/O工作方式以后,内部控制电路便自动提供4个状态触发器INTE1、INTE2、OBFA和IBFA,同时还借用端口C的5条引脚作为OBFA、STBA、INFA、A
32、CKA和INTRA的输入/输出。触发器OBFA和IBFA与方式1工作时的作用完全相同,即为输出数据缓冲器满和输入数据缓冲器满这样两个标志触发器,其状态可通过读状态字得到,也可通过引脚OBFA和IBFA输出至外设。INTE1为输出请求允许触发器,其作用和功能与方式1输出时的INTE相同;INTE2为输入请求允许触发器,其作用和功能与方式1输入时的INTE相同。INTE1和INTE2对外没有输出,只能通过读状态字了解其当前取值。单片机技术及应用 INTRA为端口A发出的中断请求信号。INTRA为高电平的条件是:INTRA=INTE1OBFAWRACKA+INTE2IBFARD)STBA 不难看出,
33、当端口A被设定为双向I/O时,INTRA能对数据的输入和输出都提供中断请求信号。单片机技术及应用 4 480318031和和82558255的接口方式的接口方式 MCS-51可以和8255直接接口,图10-17给出了8031和8255的一种接口原理。8255的数据总线D0D7和8031的P0口相连,8255的片选信号CS、A0、A1分别和8031的P0.7、P0.0、P0.1相连,所以8255的A口、B口、C口、控制口地址可分别选为FF7CH、FF7DH、FF7EH、FF7FH。8255的读、写线WR、RD分别和8031的读/写选通线WR、RD相加。8255的复位端RESET与8031的RES
34、ET端相连(也可单独接成加电复位方式)。单片机技术及应用 单片机技术及应用10.3.2 815510.3.2 8155可编程并行接口芯片可编程并行接口芯片 8155芯片内具有256B的RAM,两个8位,一个6位的可编程I/O和一个14位计数器,与MCS-51单片机接口简单,是单片机应用系统中广泛使用的芯片。1.8155 1.8155的结构的结构 按照器件的功能,8155可由下列3部分组成:1)随机存储器部分 容量为2568bit的静态RAM。2)I/O接口部分 单片机技术及应用(1)端口A。可编程序8位I/O端口PA0PA7。(2)端口B。可编程序8位I/O端口PB0PB7。(3)端口C。可编
35、程序6位I/O端口PC0PC5。(4)命令寄存器。8位寄存器,只允许写入。(5)状态寄存器。8位寄存器,只允许读出。3)计数器/定时器部分这是一个14位的二进制减法计数器/定时器。单片机技术及应用 2 281558155的引脚功能的引脚功能 8155具有40个引脚,采用双列直插式封装,引脚分布如图10-18所示,其功能定义如下。图图10-18 8155的引脚排列的引脚排列 单片机技术及应用 (1)AD0AD7(三态):数据总线,可以直接与8031的P0口相连接。在允许地址锁存信号ALE的后沿(即下降沿),将8位地址锁存在内部地址寄存器中。该地址可作为存储器部分的低8位地址,也可是I/O接口的通
36、道地址,这将由输入的IO/M 信号的状态来决定。在AD0AD7引脚上出现的数据信息是读出还是写入8155,由系统控制信号WR或RD来决定。(2)RESET:这是由8031提供的复位信号作为总清器件使用,RESET信号的脉冲宽度一般为600ns。当器件被总清后,各转接口被置成输入工作方式。单片机技术及应用(3)ALE:允许地址锁存信号。该控制信号由8031发出,在该信号的后沿,将AD0AD7上的低8位地址、片选信号CE以及IO/M信号锁存在片内的锁存器内。(4)CE:这是低电平有效的片选信号。当8155的引脚CE=0时,器件才允许被启用,否则为禁止使用。(5)IO/M:为上一个I/O转接口或存储
37、器的选择信号。当IO/M=1时,选择I/O电路,当IO/M=0时,选择存储器件。单片机技术及应用 (6)WR(写):在片选信号有效的情况下(即CE=0),该引脚上输入一个低电平信号(WR=0)时,将AD0AD7线上的数据写入RAM某一单元内(当IO/M=0时),或写入某一I/O端口电路(当IO/M=1时)。(7)RD(读):在片选信号有效的情况下(即CE=0),如果该引脚上输入一个低电平信号(RD=0)时,将8155 RAM某单元的内容读至数据总线。若输入一个高电平(RD=1),则将某一I/O转接口电路的内容读至数据总线。单片机技术及应用 由于系统控制的作用,WR(写)和RD(读)信号不会同时
38、有效。根据上面分析:写RAM的必要条件是:(IO/M=0)(WR)=0)(CE)=0)。写I/O端口电路的必要条件是:(IO/M)=1)(WR)=0)(CE=0)。读RAM的必要条件是:(IO/M=0)(RD)=0)(CE)=0)。读I/O端口电路的必要条件是:(IO/M)=1)(RD)=0)(CE=0)。单片机技术及应用 (8)PA0PA7:这是一组8根通用的I/O端口线,其数据输入或输出的方向由可编程序的命令寄存器的内容决定。(9)PB0PB7:这是一组8位的通用I/O端口,其数据输入或输出的方向由可编程序的命令寄存器的内容决定。(10)PC0PC5:这是一组6位的既具有通用I/O端口功能
39、,又具有对PA和PB起某种控制作用的I/O电路。各种功能的实现均由可编程序的命令寄存器的内容决定。PA、PB和PC各I/O端口的状态,可由读出状态寄存器的内容得到。(11)TIMER IN:这是14位二进制减法计数器的输入端。单片机技术及应用 (12)TIMER OUT:这是一个计时器的输出引脚。可由计量器的工作方式决定该输出信号的波形。(13)VCC为+5V电源引脚。(14)VSS为+5V电源的地线。单片机技术及应用 38155的工作原理的工作原理8155的内部结构较复杂。这里主要介绍它的3组I/O端口电路及14位二进制减法器的工作原理。1)8155的I/O端口工作原理8155的3组I/O端
40、口电路的工作方式,均由可编程序的命令寄存器的内容所规定,而其状态可由读出状态寄存器的内容获得。上面已经叙述,8155的命令寄存器和状态寄存器分别为各自独立的8位寄存器。在8155的器件内部,从逻辑上来说,是只允许写入命令寄存器和读出状态寄存器内容的。而实际上,读命令寄存器内容及写入状态寄存器的操作是既不允许也不可能实现的。因此完全可将命令寄存器和状态寄存器的地址合用一个通道地址,以减少器件占用的通道地址;同时将两个寄存器简称为命令/状态寄存器,有时以C/S寄存器来表示。单片机技术及应用 (1)8155的命令字格式。命令寄存器由8位组成,每一位都能锁存。其中低4位(03位)用来定义PA、PB和P
41、C转接口的工作方式;当PC用作控制PA或PB的端口工作时,第4、5两位分别用来允许或禁止PA和PB的中断,而最高两位(第6、7两位)则用来定义定时器/计数器的工作方式。利用输出指令,可以将对命令寄存器的各位编码打入其中。8155命令寄存器各位的定义如图10-19所示。单片机技术及应用第0位(PA):定义PA0PA7数据信息传送的方向。“0”输入方式;“1”输出方式。第1位(PB):定义PB0PB7数据信息传送方向。“0”输入方式;“1”输出方式。第3、2位(PCII,PC1):定义PC0PC5的工作方式。“00”方式I,“11”方式II;“01”方式III“10”方式IV,方式IIV时,PC0
42、PC5的各位功能如表10-6所示。第4位(IEA):在端口C对PA0PA7起控制作用的工作方式时,IEA位用来定义允许端口A的中断。“0”禁止;“1”允许。单片机技术及应用 第5位(IEB):当端口C工作在对PB0PB7起控制作用的工作方式时,IEB位用来定义允许端口B的中断。“0”禁止;“1”允许。第7、6位(TM2、TM1):用来定义定时器/计数器工作的命令。有4种情况,分别列于表10-7中。(2)8155的状态字格式。状态寄存器为8位,各位均可锁存,其中最高位为任意位,低6位用于指定转接口的状态,另一位用作指示定时器/计数器的状态之用。通过读C/S寄存器的操作(即用指令系统的输入指令),
43、可读出状态寄存器的内容,8155的状态字格式如图10-20所示。单片机技术及应用 单片机技术及应用(3)8155的端口电路。8155器件的I/O部件由5个寄存器组成。其中两个是命令/状态寄存器(C/S),地址为000。如前所述,当写操作期间选中C/S寄存器时,就把一个命令(按图10-19所示的定义)写入命令寄存器中,并且命令寄存器的状态信息不能通过其引脚来读取;当读操作期间选中C/S寄存器时,将I/O端口和定时器的状态信息(按图10-19所示的格式)读出。另外两个寄存器为PA和PB。根据C/S寄存器的内容,分别对PA0PA7和PB0PB7编程,使相应的I/O电路处于基本的输入或输出方式,或选通
44、方式。PA和PB寄存器的地址分别为001和010。单片机技术及应用最后一个寄存器是PC,其地址为011。该寄存器仅6位,可以对I/O端口电路PC0PC5进行编程,或对命令寄存器命令字的第2、3位(PC1和PC11)进行适当编程,使其成为PA和PB的控制信号,详见表10-6所示。2)8155定时器/计数器工作原理8155的定时器是一个14位的减法计数器,它能对输入定时器的脉冲进行计数,在达到最后计数值时,有一矩形波或脉冲输出。单片机技术及应用 单片机技术及应用为了对定时器进行程序控制,首先装入计数长度。由于计数长度为14位(第013位),因每次装入的长度只能是8位,所以必须分两次装入。而第14、
45、15位用来规定定时器的输出方式。定时器格式如图10-21所示。单片机技术及应用图10-21中最高两位(M2、M1)定义的定时器方式如表10-7所示。应该注意,硬件复位信号的到达会使8155计数器停止计数,直至由C/S寄存器发出启动定时器命令为止。单片机技术及应用 单片机技术及应用 4.MCS-51 4.MCS-51和和81558155的接口方法的接口方法 MCS-51单片机可以和8155直接连接,不需要任何外加电路,对系统增加256B的RAM、22位I/O线及一个计数器。8031和8155的接口方法如图10-22所示。8155中RAM的地址,因P2.0即As=0,P2.7=0,所以可选为011
46、1 1110 0000 0000B(7E00H)0111 1110 1111 1111B(7EFFH);I/O口地址由表10-8得:7F00H7F05H。单片机技术及应用 单片机技术及应用 单片机技术及应用在同时需要扩展RAM和I/O口及计数器的MCS-51应用系统中选用8155是特别经济的。8155的RAM可以作为数据缓冲器,8155的I/O口可以外接打印机、A/D、D/A、键盘等控制信号的输入/输出。8155的定时器可以作为分频器使用。单片机技术及应用10.4 10.4 显示器接口扩展技术显示器接口扩展技术 显示器是最常用的输出设备。特别是发光二极管显示器(LED)和液晶显示器(LCD),
47、由于其结构简单、价格便宜、接口容易,从而得到广泛的应用,尤其在单片机系统中大量使用。下面分别介绍发光二极管显示器与8031的接口设计和相应的程序设计。液晶显示器与8031的接口设计和相应的程序设计各厂家都有详细说明,而且种类很多,这里不多叙述。单片机技术及应用 1.LED结构与原理结构与原理发光显示器是单片机应用产品中常用的廉价输出设备。它是由若干个发光二极管组成的,当发光二极管导通时,相应的一个点或一个笔画发光,控制不同组合的二极管导通,就能显示出各种字符,常用七段显示器结构如图10-23所示。点亮显示器有静态和动态两种方法。所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定地
48、导通或截止。例如,七段显示器要显示7,则a、b、c导通,d、e、f、g截止。这种显示器方式,每一位数字都需要有一个8位输出口控制,所以占用硬件多,一般用于显示器位数较小(很少)的场合。当位数较多时,用静态显示所需的I/O口太多,一般采用动态显示方法。单片机技术及应用所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。显示器的点亮既跟点亮时的导通电流有关,也跟点亮时间和间隔时间的比例有关。调整电流和时间的参数,可实现亮度较高、较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个I/O口(称为扫描口),控制各位显示器所显示的字形也需一
49、个8位口(称为段数据口)。8位共阴极显示器和8255的接口逻辑电路如图10-24所示。8255的A口作为扫描口,经同相驱动器7545N接显示器公共极,B口作为段数据口,经同相驱动器7407接显示器的各个极。单片机技术及应用 单片机技术及应用 2.动态显示程序设计动态显示程序设计对于图10-24中的8位显示器,在8031的RAM存储器中设置8个显示缓冲单元77H7EH,分别存放8位显示器的显示数据,8255的A口扫描输出总是有一位为高电平,8255的B口输出相应位(共阴极)的显示数据的段数据使某一位显示出一个字符,其他位为暗,依次地改变A口输出为高电平的位,B口输出对应的段数据,8位显示器就显示
50、出缓冲器中显示数据所确定的字符。在编此显示子程序之前,必须明确以下3个问题:(1)要初始化8255。任何接口芯片不初始化,它是不工作的,也就是说不由你控制,初始化就是根据你怎样使用它而设定控制字,此题是将A口、B口用作输出口,C口用作输入口(下节讲键盘时用),可查得在方式0下的控制字为89H。单片机技术及应用 (2)各口的地址计算。从图10-24可见,是将片选信号线CE接P2.6,A0接P2.0,A1接P2.1,结合表10-4可算得控制口地址为BFFFH,A口地址为BCFFH,B口地址为BDFFH,C口地址为BEFFH。(3)显示过程是:先让第一块点亮(向A口送FEH),然后根据第一个显示缓冲