8155详细说明

  • 格式:doc
  • 大小:249.00 KB
  • 文档页数:23

8155可编程通用并行接口芯片7.4.1 8155的外部引脚及内部逻辑结构1. 外部引脚8155芯片为40引脚双列直插封装,单一的+5V电源,其引脚排列如图7.16所示。

其中::A口的输入输出信号线。

该口作输入还是输出,由软件决定。

:B口的输入输出信号线。

该口作输入还是输出,由软件决定。

:C口信号线。

该口可作输入、输出口外,还可以传送控制和状态信号,因此C口共有四种工作方式,即:输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口和B口控制端口方式(ALT4)。

其工作方式由软件决定。

~:地址数据复用线。

:片选信号。

低电平有效。

图7.16 8155外部引脚:IO和RAM的选择信号。

=0,选中RAM;=1,选中IO口。

:地址锁存信号。

除了进行~的地址锁存控制外,还用于把片选信号和等信号进行锁存。

:读选通信号。

:写选通信号。

:复位信号。

复位后A口、B口和C口均为数据输入方式。

:定时器/计数器的计数脉冲输入端。

:定时器/计数器。

2. 内部逻辑结构8155的内部逻辑结构如图7.17所示。

由图可以看出,8155由三部分组成,即:存储单元为256字节的静态RAM;3个可编程的I/O,其中2个口(A口和B口)为8位口,1个口(C口)为6位口;1个14位的定时器/计数器图7.17 8155的内部逻辑结构由以上可知8155有A口、B口、C口和定时器/计数器低8位以及定时器/计数器高8位五个端口,另外8155内部还有一个命令/状态寄存器,所以8155内部共有6各端口。

对它们只需要使用即可实现编址,如表7-5所示。

表7-5 8155的端口地址编码7.4.2 8155的命令/状态字1. 8155的命令字由以上内容可知,8155的A口有输入和输出两种工作方式,B口也有输入和输出两种工作方式,而C口有输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口和B口控制端口方式(ALT4)四种工作方式。

这些端口的工作方式是由8155内部的命令寄存器(命令字)来控制的。

命令字除了规定端口的工作方式还规定了定时器/计数器的工作方式。

命令字只能进行写操作。

其格式如图7.18所示。

图7.18 8155的命令字当以无条件方式进行数据输入输出时,由于不需要任何联络信号,因此这时A口、B口和C口都可以进行数据的输入输出操作。

当A口或者B口以中断方式进行数据传送时,所需要的联络信号由C口提供,其中为A口提供,为B口提供。

各联络信号的定义如表7-6所示。

表7-6 联络信号联络信号共有三个,其中:INTR:中断请求信号(输出),高电平有效。

送给MCS-51单片机的外中断请求BF :缓冲器满状态信号(输出),高电平有效。

:选通信号(输入),低电平有效。

数据输入时,是外设送来的选通信号;数据输出时,是外设送来的应答信号。

以中断方式进行数据输入输出时,其过程和8255基本相同,在此不作赘述。

2. 8155的状态字状态字只能读不能写,所以8155的命令字和状态字共用一个地址。

当对命令/状态字进行写操作时,写进去的是命令,当对命令/状态字进行读操作时,读出来的是状态。

状态字用于寄存各端口及定时器/计数器的工作状态。

其格式如图7.19所示。

图7.19 8155的状态字7.4.3 8155的扩展逻辑电路8155与MCS-51单片机的连接比较简单,因为8155的许多信号与MCS-51单片机兼容,可以直接连接。

表7-7列出了这些信号的对应关系。

表7-7 8155与MCS-51单片机兼容的信号~口~时数据地址复用线,之所以能与口线直接相连而不需地址锁存器,是因为8155内部已有锁存器,可以进行地址锁存,因此连接时不需要再加锁存器。

8155与MCS-51单片机连接的主要麻烦在信号上。

因为是8155特有的信号,MCS-51单片机中没有相应的信号。

因此要设法形成这个信号,提供给8155使用。

信号的形成有多种方法,不同的形成的方法对应着不同的编址方法。

下面介绍比较常用的一种方法。

用高位地址线作信号这种方法实际就是编址技术中的线选法。

例如以接,则8155与8051的连接如图7.20所示。

这种信号产生方法中,对8155需要使用16位地址进行编址。

这种方法适应于有多片I/O扩展及存储器扩展的较大单片机系统中,因此要使用片选信号。

例如图中使用作为片选信号与直接相连。

图7.20 高位地址直接作为信号假设没有用到的地址位其值为系统复位后的值,即为1。

则时,端口地址范围为:0FDF8H~0FDFDH;时,8155内部RAM地址范围是:0FC00H~0FCFFH。

7.4.4 8155的定时器/计数器1. 8155定时器/计数器的计数结构8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,如图7.21所示。

以其中的低14位组成计数器,剩下的两个高位(,)用于定义计数器输出的信号形式。

图7.21 8155定时器/计数器的计数结构2. 定时器/数器的使用8155的定时器/计数器与MCS-51单片机芯片内部的定时器/计数器,在功能上是完全相同的,同样具有定时和计数两种功能。

但是在使用上却与MCS-51单片机的定时器/计数器有许多不同之处。

具体表现在:① 8155的定时器/计数器是减法计数,而MCS-51单片机的定时器/计数器却是加法计数,因此确定计数初值的方法是不同的。

② MCS-51单片机的定时器/计数器有多种工作方式,而8155的定时器/计数器只有一种固定的工作方式,即14位计数。

通过软件方法进行计数初加载。

③ MCS-51单片机的定时器计数器有两种计数脉冲。

定时功能时,以机器周期为计数脉冲;计数功能时,从芯片外部引入计数脉冲。

但8155的定时器/计数器,不论是定时功能还是计数功能都是由外部提供计数脉冲,其信号引脚是TIMERIN。

④ MCS-51单片机的定时器/计数器,计数溢出时,自动置位TCON寄存器的计数溢出标志位(TF),供用户查询或中断方式使用;但8155的定时器/计数器,计数溢出时向芯片外部输出一个信号(TIMEROUT)。

而且这一信号还有脉冲和方波两种形式,可由用户进行选择。

具体由,两位定义:=00 单个方波=01 连续方波=10 单个脉冲=11 连续脉冲这四种输出形式如图7.22所示。

图7.22 8155信号输出形式3. 定时器/计数器的控制8155定时器/计数器的工作方式由命令字中的最高两位进行控制(见图7.18)。

具体说明如下:D7D6=00 不影响计数器工作。

D7D6=01 停止计数。

如计数器未启动则无操作,如计数器正运行则停止计数。

D7D6=10 达到计数值(计数器减为0)后停止。

D7D6=11 启动,如果计数器没运行,则在装入计数值后开始计数;如果计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。

7.4.5 8155的初始化要求使用8155定时器/计数器对计数脉冲进行千分频,即计数1000后,TIAMEROUT端电平状态发生变化,并重新置数以产生连续方波。

此外假定A口为输出方式,允许中断;B口为输入方式,不允许中断;C口为对A口控制方式(ALT3)。

请编写初始化程序。

解:要求输出连续方波,所以定时器/计数器的最高两位M2 M1=01。

计数器的其它14位装入计数初值。

8155为减法计数,所以计数初值为1000,化为16进制数为03E8H。

则定时器/计数器的高8位为:43H,低8位为:0E8H。

命令名字的设置如下:因此,命令字的内容为0D9H。

假定命令/状态寄存器的地址为0FDF8H。

则初始化程序为:MOV DPTR, #0FDF8H ;命令/状态寄存器地址MOV A, #0D9H ;命令字MOVX @DPTR, A ;装入命令字MOV DPTR, #0FDFEH ;计数器低8位地址MOV A, #0E8H ;低8位计数值MOVX @DPTR, A ;写入计数值低8位INC DPTR ;计数器高8位地址MOV A, #43H ;高8位计数值MOVX @DPTR, A ;写入计数值高8位7.4.6 8155的应用举例8155有很强的功能,在此以8155作单片机键盘接口为例进行说明。

在讲此例之前首先说明单片机的键盘接口和键功能的实现。

1. 单片机的键盘接口处理单片机的键盘接口处理的内容包括以下几个方面:键扫描首先是判定有没有键被按下。

如图7.23所示,键盘的行线一端经电阻接+5V电源,另一端接单片机的输入口线。

各列线的一端接单片机的输出口线,另一端悬空。

为判定有没有键按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。

若行线全为高电平,则表明无键按下;若行线状态中有低电平,则表明有键被按下。

然后再判定被按键的位置。

因为键盘矩阵有键被按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变为低电平。

假定图中A键被按下,则判定键位置的扫描是这样进行的:先使输出口输出0FEH,然后输入行线状态,测试行线状态中是否有低电平的(7.23a)。

如果没有低电平,再使输出口输出0FDH,再测试行线状态(7.23b)。

到输出口输出0FBH时,行线中有状态为低电平者,则闭合键找到(图7.23c),通过此次扫描的列线值和行线值就可以知道闭合键的位置。

至此扫描似乎可以结束,但是实际上扫描往往要继续进行下去,以发现出现的多键同时被按下。

图7.23 键扫描示意图去抖动当扫描表明有键被按下之后,紧接着应进行去抖动处理。

因为常用键盘的键实际上就是一个机械开关结构,被按下时,由于机械触点的弹性及电压突然跳变等原因,在触点闭合或断开的瞬间会出现电压的抖动,如图7.24所示。

抖动时间长短与键的机械特性有关,一般为5~10ms。

而键的稳定闭合时间和操作者的按键动作有关,约为十分之几到几秒不等。

为保证键扫描的正确,需要进行去抖动处理。

去抖动有硬件和软件两种方法。

硬件方法就是在键盘中附加去抖动电路,从根上消除抖动产生的可能性;而软件方法则是采用时间延迟以躲过抖动(大约延迟20~30ms即可),待行线上状态稳定之后,在进行行状态输入。

一般为简单起见多采用软件方法。

图7.24 键闭合和断开时的电压抖动键码计算被按键确定下来之后,接下来的工作是计算闭合键的键码,因为有了键码,才好通过散转指令把程序执行转到闭合键对应的中断程序上去。

本来可以直接使用该闭合键的行列值组合产生键码,但这样做会使各子程序的入口地址比较散乱给JMP指令的使用带来不便。

所以通常都是以键的排列顺序安排键号,例如图7.25所示的键号是按从左到右、从上向下的顺序编排的。

图7.25 键码图这样安排,使键码既可根据行号列号以查表求得,也可通过计算得到。

图7.25所示的键码编排规律,各行首号依次是00H、08H、10H、18H,如列号按0~7顺序,则键码的计算公式为:等待键释放计算键码后,再以延时后进行行扫描的方法等待键释放。