单片机原理及应用教案

发布时间 : 星期六 文章单片机原理及应用教案更新完毕开始阅读

当CE=0,IO/M=0时,8155只能做片外RAM使用,共256 B。其寻址范围由以及AD0~AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。当系统同时扩展片外RAM芯片时,要注意二者的统一编址。对这256 B RAM的操作使用片外RAM的读/写指令“MOVX”。

4. 作扩展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写入命令寄存器。

TM2TM1IEBIEAPC2PC1PBPAA口方式0:输入B口方式1:输出00110110A口B口方式1:A、B口基本 I/O ; C口输入方式2:A、B口基本 I/O ; C口输出方式3:A口选通 I/O , B口基本 I/O方式4:A , B口选通 I/O0:禁止中断1:允许中断00:空操作计数器方式01:停止计数10:计满后停止11:开始计数

状态寄存器中存放有状态字,状态字反映了8155的工作情况,状态字的各位定义如下图所示。

×TIMERINTEBBBFINTRBINTEAABFINTRAA口中断请求标志:0:无;1:有A口缓冲器:0:空;1:满A口中断允许:0:禁止;1:允许B口中断请求标志:0:无;1:有B口缓冲器:0:空;1:满B口中断允许:0:禁止;1:允许定时器中断标志:1:有定时器溢出中断0:读状态字后或硬件复位后

状态寄存器和命令寄存器是同一地址,状态寄存器只能读出不能写入,也就是说,状态字只能通过指令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及其它接口芯片的统一编址。

ALERDWRP2.18051P2.2P0+5 V8ALERDWR8155CEIO/MAD0~AD7PCPBPARSTRESET

此时,8155内部RAM的地址范围为:0000H~00FFH,8155各端口的地址(设无关位为0,这些地址都不是惟一的)为: 命令/状态口 0400H A口 0401H B口 0402H C口 0403H 定时器低字节 0404H 定时器高字节 0405H

第四节 简单的I/O口扩展

扩展实例

简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。下图为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。

芯片及连线说明

图中电路中采用的芯片为TTL电路74LS244、74LS273。其中,74LS244为8缓冲线驱动器(三态输出),、为低电平有效的使能端。当二者之一为高电平时,输出为三态。74LS273为8D触发器,为低电平有效的清除端。当=0时,输出全为0且与其它输入端无关;CP

端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。输入控制信号由P2.0和相“或”后形成。当二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7D0D1D2D3D4D5D6D7CP8031Q0Q1D0D1D2S0S1S2S3S4S5S6S7Q0Q1Q2LED0LED1LED2+5 VQ3LED3LED4Q4LED5Q5LED6Q6LED7Q7CLR≥1Q274LS244G1G274LS273WRP2.0RDQ3Q4Q5Q6Q7D3D4D5D6D7输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。

I/O口地址确定

因为74LS244和74LS273都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是惟一的,只要保证P2.0=0,其它地址位无关)。但是由于分别由和控制,因而两个信号不可能同时为0(执行输入指令,如MOVX A,@DPTR或MOVX A,@Ri时,有效;执行输出指令,如MOVX @DPTR,A或MOVX @Ri,A时,有效),所以逻辑上二者不会发生冲突。

第九章 MCS_51与键盘、显示器的接口设计

第一节 LED接口原理

≥1

联系合同范文客服:xxxxx#qq.com(#替换为@)