MCS_51单片机与8155H的接口设计
扫描二维码
随时随地手机看文章
另一种可编程的接口芯片8155,Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还可以提供256 B的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。
1. 8155的结构和引脚
8155有40个引脚,采用双列直插封装,其引脚图和组成框图如下图所示。
我们对8155的引脚分类说明如下:
(1) 地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。
(2) I/O口总线(22条):PA0~PA7、PB0~PB7分别为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。
(3) 控制总线(8条):
RESET:复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。
WR, RD:读/写线,控制8155的读、写操作。
ALE:地址锁存线,高电平有效。它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。因此,单片机的P0口和8155连接时,无需外接锁存器。
CS:片选线,低电平有效。
IO/M:RAM或I/O口的选择线。当=0时,选中8155的256 B RAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。
TIMERIN、TIMEROUT:定时/计数器的脉冲输入、输出线。TIMERIN是脉冲输入线,其输入脉冲对8155内部的14位定时/计数器减1;为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。
2. 作片外RAM使用
当CE=0,IO/M=0时,8155只能做片外RAM使用,共256 B。其寻址范围由以及AD0~AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。当系统同时扩展片外RAM芯片时,要注意二者的统一编址。对这256 B RAM的操作使用片外RAM的读/写指令“MOVX”。
3. 作扩展I/O口使用
当 CE=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分。
1) 命令/状态寄存器
和接口芯片8255一样,芯片8155 I/O口的工作方式的确定也是通过对8155的命令寄存器写入控制字来实现的。8155控制字的格式如下图所示。
命令寄存器只能写入不能读出,也就是说,控制字只能通过指令MOVX @DPTR, A或MOVX @Ri, A写入命令寄存器。
状态寄存器中存放有状态字,状态字反映了8155的工作情况,状态字的各位定义如下图所示。
状态寄存器和命令寄存器是同一地址,状态寄存器只能读出不能写入,也就是说,状态字只能通过指令MOVX A ,@DPTR或MOVX A,@Ri来读出,以此来了解8155的工作状态。
2) 计数器高、低8位寄存器
关于计数器高、低8位寄存器的使用,我们将在后面讲到定时器使用时再作介绍。
4. I/O口的工作方式
当使用8155的三个I/O端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字,如图6.21所示。其中,A、B口可以工作于基本I/O方式或选通I/O方式,C口可工作于基本I/O方式,也可以作为A、B选通方式时的控制联络线。
5. 定时/计数器使用
8155的可编程定时/计数器是一个14位的减法计数器,在TIMERIN端输入计数脉冲,计满时由TIMEROUT输出脉冲或方波,输出方式由定时器高8位寄存器中的M2、M1两位来决定。当TIMERIN接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率!
定时/计数器的初始值和输出方式由高、低8位寄存器的内容决定,初始值14位,其余两位定义输出方式。
6. MCS-51单片机和8155的接口
MCS-51和8155的接口非常简单,因为8155内部有一个8位地址锁存器,故无需外接锁存器。在二者的连接中,8155的地址译码即片选端可以采用线选法、全译码等方法,这和8255类似。在整个单片机应用系统中要考虑与片外RAM及其它接口芯片的统一编址。
此时,8155内部RAM的地址范围为:0000H~00FFH,8155各端口的地址(设无关位为0,这些地址都不是惟一的)为:
命令/状态口 0400H
A口 0401H
B口 0402H
C口 0403H
定时器低字节 0404H
定时器高字节 0405H