首页 理论教育 8155可编程并行接口扩展-单片机控制技术及应用

8155可编程并行接口扩展-单片机控制技术及应用

时间:2023-11-05 理论教育 版权反馈
【摘要】:8155是一种多功能可编程外围扩展接口芯片,它也有三个可编程I/O端口。与8255A的区别在于PC口是6位,同时还有一个可编程14bit定时器/计数器和256B的RAM,能方便地进行I/O扩展和RAM扩展。8155的RAM单元和端口地址选择见表7-8。④11,代表置入定时器方式控制字和计数初值后,立即启动计时。表7-10 8155状态寄存器格式5.8155内部定时器及使用定时器共有4种工作方式,由定时器长度字高字节中的M2、M1两位状态决定,定时器长度字的低14位用于给定时器设置初值。

8155可编程并行接口扩展-单片机控制技术及应用

8155是一种多功能可编程外围扩展接口芯片,它也有三个可编程I/O端口(端口A、B、C)。与8255A的区别在于PC口是6位,同时还有一个可编程14bit定时器/计数器和256B的RAM,能方便地进行I/O扩展和RAM扩展。其内部逻辑结构如图7-19所示。

1.8155引脚

8155芯片为40引脚双列直插封装,单一的+5V电源,其引脚排列如图7-20所示。各引脚说明如下:

AD0~AD7:8位三态地址/数据线。当ALE为高电平,作地址线;ALE下降沿时,锁存有关信号;ALE低电平时,作数据线(978-7-111-44921-8-Chapter07-72.jpg978-7-111-44921-8-Chapter07-73.jpgR均无效时作高阻状态)。IO/978-7-111-44921-8-Chapter07-74.jpg:I/O端口和RAM选择信号输入端口。当为1时,选择I/O端口;当为0时,选择RAM单元

978-7-111-44921-8-Chapter07-75.jpg

图7-19 8155的内部逻辑结构

978-7-111-44921-8-Chapter07-76.jpg

图7-20 8155芯片引脚排列

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

ALE:地址锁存允许信号,输入端口。高电平时将低8位地址写入8155的内部锁存器中,当ALE信号处于下降沿时,将AD0~AD7、978-7-111-44921-8-Chapter07-77.jpg、IO/978-7-111-44921-8-Chapter07-78.jpg信号都锁存到8155的内部锁存器。978-7-111-44921-8-Chapter07-79.jpg:读选通信号,低电平有效,输入。有效时,根据IO/M信号状态选择读I/O口还是读RAM。978-7-111-44921-8-Chapter07-80.jpg:写选通信号,低电平有效,输入。有效时,根据IO/M信号状态选择写I/O还是写RAM。

TIMERIN:定时器时钟信号输入端。978-7-111-44921-8-Chapter07-81.jpg:定时器输出。当计数器减到0,则根据设定的工作方式输出一个方波还是一个脉冲。

RESET:复位控制信号线,高电平有效。

PA0~PA7:A口的8位I/O线。

PB0~PB7:B口的8位I/O线。

PC0~PC7:C口的6位I/O线。

VCC:电源线,+5V。

VSS:线路地。

2.8155的RAM和I/O端口寻址

8155的RAM单元与一般外部数据存储器的使用基本一样,唯一区别是事先要使IO/M为低电平。A、B、C各端口可工作于不同的工作方式,使用前要进行初始化(写命令字到命令口)。8155的RAM单元和端口地址选择见表7-8。(1)当IO/978-7-111-44921-8-Chapter07-82.jpg=0时,选中8155内部RAM,其地址范围为00H~FFH。(2)当IO/978-7-111-44921-8-Chapter07-83.jpg=1时,选择命令/状态寄存器、A口、B口、C口、定时器低8位、定时器高6位。

(3)命令/状态寄存器是同一地址的两个独立寄存器,由读写信号加以区分,命令寄存器只能写入,状态寄存器只能读出。

表7-8 端口地址分配

978-7-111-44921-8-Chapter07-84.jpg

3.8155的工作方式

(1)8155作片外RAM(256B)

①在片选信号978-7-111-44921-8-Chapter07-85.jpgE有效的情况下,IO/978-7-111-44921-8-Chapter07-86.jpg信号为高电平,8155作片外RAM使用。

②地址的高8位由片选信号确定,地址的低8位为00H~FFH。

(2)8155作I/O口

8155有两种工作方式:基本I/O和选通I/O。

①当8155的PA口、PB口、PC口工作在基本I/O方式下,可用于无条件I/O操作。基本输入时执行“MOVX A,@DPTR”类指令,基本输出时执行“MOVX@DPTR,A”类指令。

②当8155的PA口工作在选通I/O方式下时,PC口低三位作PA口联络线,其余位作I/O线,PB口定义为基本I/O;PA口和PB口也可同时定义为选通I/O,此时PC作PA口、PB口联络线。

③在8155操作前,须由CPU向命令寄存器送命令字,设定其工作方式,命令字只能写入不能读出。

④8155内部还有一个状态寄存器,可以锁存8155 I/O口和定时器的当前状态,供CPU查询,状态寄存器和命令寄存器共用一个地址,只能读出不能写入。因此可以认为8155的00H口是命令/状态口,CPU往00H写入的是命令字,而从中读出的是状态字。

4.8155的控制字及其工作方式

(1)命令寄存器

A、B、C各端口可工作于不同的工作方式,使用前要进行初始化(写命令字到命令口)。8155命令寄存器格式见表7-9。

表7-9 8155命令寄存器格式

978-7-111-44921-8-Chapter07-87.jpg(www.xing528.com)

各位功能说明如下:

1)TM2 TM1

①00,代表空操作。

②01,代表停止计时。

③10,代表时间到则停止计时。

④11,代表置入定时器方式控制字和计数初值后,立即启动计时。若正在计时,溢出后按新的定时器方式和计数初值计时。

2)IEB

0代表禁止PB口中断;1代表允许PB口中断。

3)IEA

0代表禁止PA口中断;1代表允许PA口中断。

4)PC2 PC1:

①00代表PA、PB均为基本I/O方式,PA和PB输入/输出由D1D0确定,PC口输入。

②01代表PA、PB均为基本I/O方式,PA和PB输入/输出由D1D0确定,PC口输出。

③10代表PA选通I/O,PB为基本I/O方式,输入/输出由D1D0确定;PC0~PC2为PA口联络线;PC3~PC5输出。

④11代表PA、PB均为选通方式,输入\输出由D1D0确定;PC0~PC2为PA口联络线;PC3~PC5为PB口联络线。

5)PB:0代表输入;1代表输出。

6)PA:0代表输入;1代表输出。

(2)状态寄存器

状态字只能读不能写,所以8155的命令字和状态字共用一个地址。当对命令/状态字进行写操作时,写进去的是命令,当对命令/状态字进行读操作时,读出来的是状态。状态字用于寄存各端口及定时器/计数器的工作状态。

8155状态寄存器格式见表7-10。

表7-10 8155状态寄存器格式

978-7-111-44921-8-Chapter07-88.jpg

5.8155内部定时器及使用

定时器共有4种工作方式,由定时器长度字高字节中的M2、M1两位状态决定,定时器长度字的低14位用于给定时器设置初值。定时器长度字格式如图7-21所示。现对定时器在4种工作方式下的978-7-111-44921-8-Chapter07-89.jpgT输出波形分述如下:

①在M2M1=00时,定时器在计数的后半周期内使978-7-111-44921-8-Chapter07-90.jpg线上输出低电平(一个矩形波)。矩形波周期和定时器长度字初值有关:若定时器长度字初值为偶数,则978-7-111-44921-8-Chapter07-91.jpgT线上的矩形波是对称的;若它为奇数,则矩形波高电平持续期比低电平的多一个计数脉冲时间。

②在M2M1=01时,定时器每当减“1”到全“0”时,都能自动装入定时器长度字初值,故978-7-111-44921-8-Chapter07-92.jpgT线上输出连续矩形波。矩形波周期也与定时器长度字初值的设定有关。

③在M2M1=10时,定时器每当减“1”到全“0”时,便会在T978-7-111-44921-8-Chapter07-93.jpg线上输出一个单脉冲。

④在M2M1=11时,定时器每当减“1”变为全“0”时,都能自动装入定时器长度字初值,故T978-7-111-44921-8-Chapter07-94.jpg线上能输出一串重复脉冲。重复脉冲的频率也和定时器长度字初值有关。

978-7-111-44921-8-Chapter07-95.jpg

图7-21 定时器长度字格式

8155对定时器的控制是由命令字中的D7D6两位状态决定的(见图7-21)。现把这两位对定时器的控制分述如下:

D7D6=00时,无操作。即D7D6=00的命令字对定时器工作不产生影响。

D7D6=01时,停止计数。若定时器原为停止状态,则它继续停止计数;若定时器正在运行,则D7D6=01的命令字送给8155后便能立即停止定时器的减“1”计数。

D7D6=10时,计满后停止。若定时器原为停止状态,则它继续停止计数;若定时器正在运行,则8155收到D7D6=10的命令字后,必须等到定时器回零时才会停止计数。

D7D6=11时,开始计数。若定时器原为停止状态,它收到D7D6=11的命令字后立即开始计数;若定时器正在运行,则它在回零后立即按新输入的定时器长度字开始计数。

在定时器计数期间,CPU随时可以读出定时器中的状态,以了解定时器的工作情况。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈