自动控制网移动版

自动控制网 > 自动化 > 单片机 >

可编程RAM/IO/CTC口芯片8155

8155是一种多功能的可编程接口芯片。它有三个可编程 I / O 端口 A 口、 B 口和 C 口, A 口和 B 口是 8 位端口, C 口是 6 位端口。一个可编程的 14 位定时计数器; 256 字节的 RAM 存储器,能方便地进行 I / O 扩展和 RAM 扩展。8155的引脚及内部结构如图1所示。

图1 8155的引脚(a)和内部结构(b)

1、引脚及功能

8155 共有 40 个引脚,采用双列直插式封装。

AD0-AD7 :地址数据总线。因为 8155 中有 256 个 RAM 单元,要访问某个 RAM 单元,必须有地址,这就需要地址线。 8155 通过 AD0一AD7与计算机的 CPU 相连接, AD0一AD7即是地址线,也是数据线。什么时候是地址线?什么时候是数据线?由另一个引脚 ALE 来决定。在 ALE 信号的下降沿, 8155 将AD0一AD7的信号存人内部的地址寄存器,当作地址。这个地址既可以是 RAM 的地址,也可以是 8155 端口的地址,由引脚IO/M的电平决定。

RESET :8155 复位信号输人端,由复位电路提供。

CE:片选信号线,低电平有效。

ALE :地址锁存允许信号。ALE信号的下降沿将AD0一AD7的信号作为 RAM 的地址信号锁存到8155的内部锁存器中,同时将IO/M和CE信号锁存到内部锁存器中。

RD:读信号,低电平有效。在CE和RD有效时,将8155片内的 RAM 单元或接口的内容送到AD0一AD7总线上。

WR :写信号,低电平有效。在CE和RD有效时,将AD0一AD7总线上的内容送到 8155片内RAM单元或接口中。

IO/M :I / O 口或 RAM 选择信号。当IO/M=1 时,选择 I / O 口;当IO/M =0 时,选择片内 RAM 单元。

PA0-PA7 : A 口通用的输人输出线。作为输出线还是作为输人线,由控制字决定。

PB0-PB7 : B 口通用的输人输出线。作为输出线还是作为输人线,由控制字决定。

PC0-PC5 : C 口的六位线。既可以作为数据输人/输出线,也可以作为 A 口和 B 口的控制(联络)线。具体功能由控制字决定。

TIMERIN :定时器/计数器时钟输人端。

TIMEROUT:定时器/计数器时钟输出端,其输出信号可以是矩形波,也可以是脉冲,是输出单个信号还是连续信号,由定时器/计数器的工作方式决定。

Vcc : + 5V 电源。

Vss :接地端。

2、8155 的工作原理

8155 的三个端口 A 、 B 、 C 可以工作在输人/输出状态。 C 口可以作为 A 口和 B 口的状态/控制信号。至于具体工作在何种状态,取决于命令寄存器的内容(命令字),而当前各端口的状态可以通过读取状态寄存器的内容来判断。 8155 的命令寄存器和状态寄存器是两个不同的寄存器,但命令寄存器只能写入,而状态寄存器只能读出,所以,这两个寄存器共用一个地址,所以,在叙述中又合称为命令/状态寄存器。可见,命令/状态寄存器实际上是两个寄存器,只不过共用一个地址而已。命令寄存器的内容由程序根据需要送入。命令字(命令寄存器的内容)各位的含义如下:

D7

D6

D5

D4

D3

D2

D1

D0

 

TM2

TM1

IEB

IEA

PC2

PC1

PB

PA

TIM2、TIM1:定时器方式控制位。选择定时器工作状态,以控制定时/计数器工作。

IEB:B口中断允许位。IEB=0,禁止。IEB=1,允许。

IEA:A口中断允许位。IEA=0,禁止。IEA=1,允许。

PC2、PC1:定义PC0~PC5控制作用的工作方式。PC2 PC1=00,ALT1。PC2 PC1=01,ALT2。

PC2 PC1=10,ALT3。PC2 PC1=11,ALT4。

PB:B口控制位。PB=0,输出。PB=1,输入。

PA:A口控制位。PA=0,输出。PA=1,输入。

状态字(状态寄存器的内容)各位定义如下:

D7

D6

D5

D4

D3

D2

D1

D0

X

TIMER

B口INTE

B口BF

B口INTR

A口INTE

A口BF

A口INTR

TIMER:计数器溢出标志。TIMER=1,表示计数/定时器已经计满溢出;TIMER=0,表示计数/定时器尚未计满溢出。当TIMER=1时,只要读状态寄存器或启动新的计数器,TIMER=0。

BINTE : B口中断允许标志。INTEB=l,表示允许端口B中断;INTEB=0 ,表示禁止端口B中断。

BFB : B 端口缓冲器满标志。 BFB=1,表示B端口已经装满数据;BFB=0 , 表示B端口空。 BINTR : B口中断请求标志。INTRB=1,表示B口有中断请求;INTRB=0 , B口无中断请求。

AINTE : A 口中断允许标志。INTEA=l,表示允许端口A中断;INTEA=0,表示禁止端口A中断。

ABF : A 端口缓冲器满标志。BFA=1,表示A端口已经装满数据;BFA=0,表示A端口空。 AINTR : A口中断请求标志。INTRA=l,表示A口有中断请求;INTRA=0 , A口无中断请求。

3、8155 的端口地址分配

CPU 送到 8155 的数据到底是送到何处呢? CPU 从 8155 读取数据是从状态寄存器读还是从端口读呢?8155通过使用地址来区分命令/状态寄存器和I/O端口。地址由AD0一AD2决定,如表下所示。

AD7~AD0

选择I/O口

A7

A6

A5

A4

A3

A2

A1

A0

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

0

0

0

0

1

1

0

0

1

1

0

0

0

1

0

1

0

1

命令/状态寄存器

A口

B口

C口

定时器低8位

定时器高6位及方式

表  8155口地址分配

4、 8155 定时器/计数器工作原理

8155 内部的定时器是一个14位的减法计数器,可以用来定时或者对外部事件计数,在到达最后一个计数值时,在TIMEROUT输出一个脉冲或一个矩形波。

要使计数器正常工作,必须装入定时器/计数器初始计数长度。由于它的有效位是14位,故计数长度可以是00H一3FFFH(11111111111111B=3FFFH)。低8位装人定时器/计数器的低位字节,高6位装入定时器/计数器的高位字节,然后再装入命令字并启动定时器/计数器。最高两位M2和Ml用来规定定时器/计数器的输出方式。定时器/计数器寄存器的计数格式及地址如图4.19所示。Ml和M2的取值与输出方式的关系如表4.9所示。

M2

M1

T13

T12

T11

T10

T9

T8

M2、M1输出方式。T8~T13计数初值高6位

T7

T6

T5

T4

T3

T2

T1

T0

T0~T7计数初值低8位。

表2  定时器/计数器寄存器格式

M2

M1

输出方式

0

0

单次方波

0

1

连续方波

1

0

单脉冲

1

1

连续脉冲

表2 定时器/计数器输出方式与M1和M2取值的关系

5、 8155芯片扩展I / O接口

8155可以直接和单片机相连,不需要任何其它逻辑部件。图2是8155与8051单片机连接扩展的一个实例,通过本实例,我们来说明8155的使用。

图2   8155 应用的实例

1.8155 中 RAM 的使用

8155中256个RAM存储单元,可以用作系统的临时数据保存单元。它的使用方法与一般的RAM存储芯片没有太大区别,只要注意IO/M信号就可以了。RAM和I/O端口使用的是统一的数据线和地址线,靠IO/M区分是访问RAM还是访问I/O端口。一般来说,可以用CPU的一根地址线来控制IO/M , 以区分8155的RAM地址和端口I / O地址。

在这个实例中,8051单片机的P0与AD0一AD7相连,既是低8位地址,又是数据线,地址锁存用ALE信号(该信号由8051发出)。P2 . 7连接CE , P2 . 0连接IO/M,要访问8155, P2. 7 必须为低电平,要访问 RAM , P2. 0必须为低电平。所以,8155中的RAM在系统中的地址应该是7E00H一7EFFH。这样,8155中的RAM就可以和普通外部数据存储器一样使用了。下面程序是从8155的RAM读数据和写数据的程序片段。

MOV R0 , # 30H

MOV DPTR , # 7E32H

MOVX A , @ DPTR

MOV @ R0 , A

MOV A , # 34H

MOVX @ DPTR , A

2.8155 中I / O端口和定时器的使用

我们已经知道,8155有三个I / O端口。三个端口的工作方式由控制字决定。图4.20中,各端口的地址如下:

PA 口: 7F01H

PB 口: 7F02H

PC 口: 7F03H

定时器低 8 位: 7F04H

定时器高 8 位: 7F05H

假设B 口定义为基本输人方式,A口定义为基本输出方式,将时钟信号连接到 TIMERIN端,在TIMEROUT输出 5 分频信号,则程序如下:

MOV DPTR,#7E04H        ;指向定时器低8位

MOV A,#05H

MOVX @DPTR,A           ;定时器初值低8位装入

INC DPTR               ;指向定时器高8位

MOV A,#40              ;设定定时器连续方波输出

MOVX @DPTR,A           ;定时器初值高8位装入

MOV DPTR,#7E00H        ;指向命令/状态寄存器

MOV A,#11000001B       ;命令控制字设定

MOVX @DPTR,A           ;送控制字

    本文已影响
    最近关注
    0基础免费学PLC,扫描观看

    扫描上方二维码免费观看PLC视频课程