Intel 8155H芯片内包含有256B的RAM存储器(静态),RAM的存取时间为400ns。两个可编程的8位并行口PA和PB,一个可编程的6位并行口PC,以及一个14位减法定时器/计数器。PA口和PB口可工作于基本输入输出方式(同8255A芯片的方式0)或选通输入输出方式(同8255A的方式1)。8155 H芯片可直接和MCS-51单片机相连,不需要增加任何硬件逻辑。由于8155H既有I/O口又具有RAM和定时器/计数器,因而是MCS-51单片机系统中最常用的外围接口芯片之一。
1.8155H芯片
(1)8155H芯片的结构与引脚
8155H的逻辑结构如图6-45所示。
图6-45 8155H芯片的逻辑结构
8155H共有40条引脚线,如图6-46所示,采用双列直插式封装,其引脚说明如下:
1)AD7~AD0(8条):AD7~AD0为地址/数据总线,通常可和MCS-51的P0口相接,用于分时传送地址/数据信息。
2)I/O总线(22条):PA7~PA0为通用I/O线,用于传送A口上的外设数据,数据传送方向由8155H命令字决定[见图6-47(a)]。PB7~PB0为通用I/O线,用于传送B口上的外设数据,数据传送方向也由8155H命令字决定。PC5~PC0为I/O数据/控制线,共有6条,在通用I/O方式下,用作传送I/O数据;在选通I/O方式下,用作传送命令/状态信息。
3)控制总线(8条):RESET:复位输入线,在RESET线上输入一个大于600ns宽的正脉冲时,8155 H立即处于复位状态,A、B、C三口也定义为输入方式。
和为8155H芯片选输入线,若0,则CPU选中本8155H工作;否则,本8155H不工作。为I/O端口或RAM存储器的选通输入线;若=0,则CPU选中8155H的RAM存储器;若=1,则CPU选中8155 H芯片内某一寄存器。
和是8155 H的读命令输入线,为写命令线,当和时,8155H处于读出数据状态;当和时,8155 H处于写入数据状态。
ALE:为允许地址输入线,高电平有效。若ALE=1,则8155H允许AD7~AD0上地址锁存到“地址锁存器”;否则8155H的地址锁存器处于封锁状态。8155H的ALE常和MCS-51的同名端相连。
TIMERIN和TIMERIN是计数器输入线,其脉冲上跳沿用于对8155 H芯片内14位计数器减1。TIMEROUT为计数器输出线,当14位计数器从计满回零时就可以在该引线上输出脉冲或方波输出信号的形状和计数器工作方式有关。
图6-46 8155H的引脚
4)电源线(2条):VCC为+5V电源输入线,VSS为接地线。
(2)CPU对8155 H I/O口的控制
8155H A、B、C三个端口的数据传送是由命令字和状态字控制的。
1)8155 H端口地址。8155 H内部有7个寄存器,需要三位地址来加以区分。表6-16列出了端口地址分配。
2)8155 H的命令字。在8155 H的控制逻辑部件中,设置有一个控制命令寄存器和一个状态标志寄存器。8155H的工作方式由CPU写入命令寄存器中的命令字来确定。命令寄存器只能写入不能读出,命令寄存器的4位用来设置A口、B口和C口的工作方式。D4、D5位用来确定A口、B口以选通输入输出方式工作时是否允许中断请求。D6、D7位用来设置定时器/计数器的操作。命令字的格式如图6-47(a)所示。
3)8155H的状态字。在8155H中还设置有一个状态标志寄存器,用来存入A口和B口的状态标志。状态标志寄存器的地址与命令寄存器的地址相同,CPU只能对其读出,不能写入。状态寄存器的格式如图6-47(b)所示,CPU可以直接查询。
下面仅对状态字中的D6位作以说明:
D6为定时器中断状态标志位。若定时器正在计数或开始计数前,则D6=0;若定时器的计数长度已计满,则D6=1。在硬件复位或对它读出后又恢复为0。
图6-47 8155H的命令字和状态字
(a)8155H的命令字;(b)8155H的状态字
(3)8155H的工作方式
1)存储器方式。8155H的存储器方式用于对片内256B RAM单元进行读写,若=0和则8155H立即处于本工作方式。此时,CPU可以通过AD7~AD0上的地址选择RAM存储器中任一单元读写。
表6-16 8155H端口地址分配
2)I/O方式。8155H的I/O方式又可分为基本I/O和选通I/O两种工作方式,见表6-17。在I/O方式下,8155 H可选择对片内任一寄存器读写,端口地址由A2、A1、A0三位决定。
表6-17 C口在两种I/O工作方式下各位定义
①基本I/O方式。在本方式下,A、B、C三口用作输入/输出,由图6-47(a)所示的命令字决定。其中,A、B两口的输入/输出由D1、D0决定,C口各位由D3、D2状态决定。例如:若把02H的命令字送到8155H命令寄存器,则8155H A口和C口各位设定为输入方式,B口设定为输出方式。
②选通I/O方式。由命令字中D3、D2状态设定,A口和B口都可独立工作于这种方式。此时,A口和B口用作数据口,C口用作A口和B口的联络控制。C口各位联络线的定义是在设计8155H时规定的,其分配和命名见表6-17。选通I/O方式又可分为选通输入和选通输出两种方式。
选通输入:A口和B口都可设定为本工作方式:若命令字中D0=0和D3、D2=10B(或11B),则A口设定为本工作方式;若命令字中D1=0和D3、D2=11B,则B口设定为本工作方式。选通输入的工作过程和8255 A的选通输入的情况类似,如图6-48所示。
选通输出:A口和B口都可设定为本工作方式;若命令字中D0=1和D3、D2=10B(或11B),则A口设定为本工作方式;若命令字中D1=1和D3、D2=11B,则A口设定为本工作方式。选通输出过程也和8255 A选通输出时情况类似,如图6-49所示。
图6-48 选通I/O数据输入示意图(www.daowen.com)
图6-49 选通I/O数据输出示意图
(4)8155H内部定时器/计数器及使用方法
在8155H中还设置有一个14位的减1计数器,可用来定时或对外部事件计数,CPU可通过程序选择计数长度和计数方式。计数长度和计数方式由输入给计数寄存器的计数控制字来确定,计数寄存器的格式如图6-50所示。
图6-50 8155H计数寄存器的格式
其中T13~T0为计数长度。M2、M1用来设置定时器的输出方式。8155H定时器4种工作方式及相应的脚输出波形如图6-51所示。
图6-51 8155H定时器方式及
TIMEROUT脚输出波形
任何时候都可以设置定时器的长度和工作方式,但是必须将启动命令字写入命令寄存器。如果定时器正在计数,只有在写入启动命令之后,定时器才接收新的计数长度并按新的工作方式计数。
若写入定时器的初值为奇数,方波输出是不对称的,例如初值为9时,定时器输出的5个脉冲周期内为高电平,4个脉冲周期内为低电平。
值得注意的是,8155H的定时器初值不是从0开始,而要从2开始。这是因为如果选择定时器的输出为方波形式(无论是单方波还是连续方波),则规定是从启动计数开始,前一半计数输出为高电平,后一半计数输出为低电平。如果计数初值是0或1,就无法产生这种方波。因此写入8155H计数器的计数初值是2 H~3FFFH。
如果硬要将0或1作为初值写入,其效果将与送入初值2的情况一样。
8155 H复位后并不预置定时器的方式和长度,但是停止计数器计数。
2.MCS-51与8155H的接口及软件编程
(1)MCS-51与8155H的硬件接口电路
MCS-51单片机可以和8155H直接连接而不需要任何外加逻辑器件。8031和8155H的接口电路如图6-52所示。
图6-52 8155H和8031的接口电路
在图6-52中,8031单片机P0口输出的低8位地址不需要另加锁存器而直接与8155H的AD0~AD7相连,既作低8位地址总线又作数据总线,地址锁存直接用ALE在8155H锁存。8155H的CE端接P2.7,IO/M端与P2.0相连。当P2.7为低电平时,若P2.0=1,访问8155H的I/O口;若P2.0=0,访问8155H的RAM单元。由此得到图6-52中8155H的地址编码如下:
RAM单元地址: 7E00H~7EFFH
I/O口地址;
命令/状态口: 7F00H
PA口: 7F01H
PB口: 7F02H
PC口: 7F03H
定时器低8位: 7F04H
定时器高8位: 7F05H
(2)初始化程序设计
【例6-9】 若A口定义为基本输出方式,B口定义为基本输出方式,对输入脉冲进行24分频(8155 H的计数器的最高计数频率为4MHz),则8155 H的I/O初始化程序如下:
【例6-10】 读8155HRAM的F1H单元内容。
解 程序如下:
【例6-11】 将立即数41H写入8155H RAM的20 H单元。
解 程序如下:
在同时需要扩展RAM和I/O的MCS-51应用系统中,选用8155H特别经济。8155 H的RAM可以作为数据缓冲器,8155 H的I/O口可以外接打印机、BCD码拨盘开关,以及作为控制信号输入输出口。8155 H的定时器还可以作为分频器或定时器。所以8155 H芯片是单片机应用系统中最常用的外围接口芯片之一。
本节介绍了8155H芯片及其工作方式、接口电路和软件编程。还有与之类似芯片如8156H,该芯片除片选端高电平有效外,其他功能及引脚与8155H完全相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。