当前位置:首页 >> 小学教育 >>

单片机第6章


第6章

MCS-51系列单片机的扩展技术

主要内容
? 外部存储器的扩展技术 ? 并行接口的扩展技术 ? 串行接口的扩展技术

1

MCS51系列单片机的特点就是体积小,功能全,系统结构紧凑,硬 件设计灵活。对于简单的应用,最小系统即能满足要求。
所谓最小系统是指在最少的外

部电路条件下,形成一个可独立工 作的单片机应用系统。一片89C51,或者一片8031外接一片 EPROM就 构成了一个单片机最小系统。 在很多复杂的应用情况下,单片机内的RAM、ROM和I/O接口不够使

用时,就需要进行扩展。
单片机的系统扩展主要是指外接程序存贮器、数据存贮器或I/O接 口等,以满足应用系统的需要。

2

单片机是通过地址总线,数据总线和控制总线与外部交换信 息的。MCS-51单片机的总线接口信号见图。

P2 ALE P0
地址 锁存器

A8-A15

A0-A7

}

地址总线

MCS51
RXD TXD PSEN WR RD INT0/1 T0/1

D0-D7

数据总线

} 串行数据总线
程序存储器选通控制 数据存储器、I/O写控制 数据存储器、I/O读控制 外部中断请求INT0\INT1 定时器计数器T0/T1外部计数脉冲输入

3

(1) 地址总线A0~A15 地址总线的高8位是由P2口提供的,低8位是由P0口提供的。 在访问外部存储器时,由地址锁存信号ALE的下降沿把P0口的低8 位以及P2口的高8位锁存至地址锁存器中,从而构成系统的16位地址 总线。 实际应用系统中,高位地址线并不固定为8位,需要用几位就从 P2口中引出几条口线。

4

(2) 数据总线D0~D7 数据总线是由P0口提供的,因为P0口线既用作地址线,又 用作数据线(分时使用),因此,需要加一个8位锁存器。 在实际应用时,先把低8位地址送锁存器暂存,然后再由

地址锁存器给系统提供低8位地址,而把P0口线作为数据线使 用。
在读信号RD与写信号WR有效时,P0口上出现的为数据信息。

5

(3) 控制总线 系统控制总线共12根,既P3口的第二功能再加上RESET、EA、 ALE和PSEN。实际应用中的常用控制信号如下。 使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存。

以PSEN信号作为扩展程序存储器的读选通信号,在取指令码时 或执行MOVC指令时变为有效。。
以EA信号作为内、外程序存储器的选择信号。 以RD和WR作为扩展数据存储器和I/O端口的读、写选通信号。 执行MOVX指令时,这两个信号分别自动有效。

6

6.1 外部存储器的扩展技术
6.1.1外部程序存储器的扩展技术
1.外部程序存储器时序分析
程序存储器扩展电路的安排应满足单片机从外存取指令的时序
要求。从时序图中分析ALE、PSEN、P0和P2怎样配合使程序存储器完 成取指操作,从而得出扩展程序存储器的方法。 单片机一直处于不断的取指令码-执行-取指令码-执行的工 作过程中,在取指令码时和执行MOVC指令时PSEN会变为有效,和其 它信号配合完成从程序存储器读取数据。

7

外部程序存储器访问时序
第1个机器周期 S1 P1 P2 P1 S2 P2 P1 S3 P2 P1 S4 P2 P1 S5 P2 P1 S6 P2 P1 S1
P2

第2个机器周期 S2 P1 P2 P1 S3

ALE

PSEN P2口

TPLIV 输出PCH TAVIV 输出PCH

P0口

PCL

指令

PCL

指令

PCL

?EA=0,选择外部ROM。 ?S2P1开始,P2口输出高8位地址A15-A8,一直持续到S4。 ?S2P1开始,P0口输出低8位地址A7-A0,S2P1结束ALE下降沿锁存A7-A0。 ?S3P1开始,PSEN读选通外部存储器,延时等待TPLIV存储器把数据送到P0口。 ?在PSEN上升沿来以前,单片机读取P0数据,完成一次外部程序存储器访问。 ?一个机器周期可访问两次外部程序存储器,读两字节指令。
8

2.外部程序存储器的连接方法 三总线分别连接

P2.7 . . . P2.0 ALE 8031 P0.7 . . . P0.0 G I.7 . . I0 O7 . . . O0
外部地址 锁存器

A15 . . . A8

CE

外部程序 存储器

A7 . . . A0 D7 . . . D0

EA PSEN

OE

9

3.外部程序存储器的扩展
(1)常见的EPROM存储器及扩展电路
单片机外部扩展常用程序存储器芯片为EPROM,其掉电后信 息不会丢失,且只有在紫外线的照射下,存储器的单元信息才可 擦除。 用作扩展的EPROM主要是27系列,如2716、2732、2764、 27128、7256等,其中高位数字27表示该芯片是EPROM,低位数字 表明存储容量,如2716表示16K个存储位,亦即字节容量为2K的 EPROM。 常用的还有EEPROM ,即28系列,如2816/2817、2864等,型号含 义同上。

10

EPROM除2716外均为28线双列直插式封装,各引脚定义如下。
A0~Ai:地址输入线,i=12~15。 D0~Di:三态数据总线,读或编程校验时为数据输出线,编程

时为数据输入线。其余时间呈高阻状态。
PGM:编程脉冲输入线。 OE:读出选通线,低电平有效。

CE:片选线,低电平有效。
VPP:编程电源线,其值因芯片及制作厂商而异。 VCC:电源线,接+5V电源。

GND:接地。

11

P2.4 P2.3 P2.2 P2.1 P2.0
+5V Vcc OE G GND D7 .

A12 A11 A10 A9 A8

CE GND 2764
+5V

8031

ALE P0.7 . . . P0.0

Q0 D0 74LS373

. .

Q7 .

. .

A7 . . . A0

Vcc Vpp PGM

EA D7 ~ D0 PSEN OE

常见的EPROM存储器及扩展电路

?74LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。 ?只扩展了一片EPROM,片选端接地。 ?PSEN的下降沿使OE有效,由A0~A12指定的单元指令码从D0~D7输出。 ?P0读入指令到单片机, 经译码执行。

12

单片机扩展2716,2732,27128等EPROM的方法与上图相同,差别仅
在于不同的芯片的存储容量不同,因而使用高8位地址的P2端口线的根数 不同。 扩展2716(2KB)需使用A8~A10 三条高位地址线 扩展2732(4KB)需要A8~A11 四条高位地址线。 扩展27128(16KB)需要A8~A13六条高位地址线。 注意:2764和27128的PGM引脚应接Vcc。

13

(2)E2PROM存储器及扩展电路
电可擦除只读存储器EEPROM的特点
如下: ? 单+5V供电,电可擦除可改写。
N.C. A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 Vcc WE N.C. A8 A9 A11 OE A10 CE D7 D6 D5 D4 D3

? 使用次数为1万次,信息保存时间为10
年。 ? 读出时间为ns级,写入时间为ms级。

2864

? 芯片引脚信号与相应的RAM和EPROM芯
片兼容。

14

WR RD PSEN P2.4 P2.3 P2.2 P2.1 P2.0
+5V Vcc OE G GND D7 .

WE OE A12 A11 A10 A9 A8

CE GND 2864

8031

ALE P0.7 . . . P0.0

Q0 D0 74LS373

. .

Q7 .

. .

A7 . . . A0

Vcc

+5V

EA D7 ~ D0

?74LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。 ?只扩展了一片EEPROM,片选端接地。 ?PSEN和RD相与后与OE相连,支持读指令和读数据操作。 ?WR和WE相连,支持写数据操作。
15

(3)多存储器片选方法
① 线选法
所谓线选法,就是把单根高位地址线直接加在存贮器芯片的CE端。 线选法的优点是连接简单,不必附加逻辑,但扩展的存贮芯片地址不

连续。
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
+5V Vcc OE G GND D7 .

8031

ALE P0.7 . . . P0.0

CE A12 C000H~ A11 DFFFH A10 A9 A8 EPROM 2764
(1)

CE A12 A000H~ A11 BFFFH A10 A9 A8 EPROM 2764
(2)

CE A12 6000H~ A11 7FFFH A10 A9 GND A8 EPROM 2764
(3) +5V

Q0 D0 74LS373

. .

Q7 .

. .

A7 . . . A0

A7 . . . A0

A7 . . . A0

Vcc Vpp PGM

EA D7 ~ D0 PSEN OE D7 ~ D0 OE D7 ~ D0 OE

16

② 译码法(全译码)
译码法能提供全部64KB地址空间,且扩展的存贮器芯片地址是连

续的。
+5V 74LS138 Y7 G1 G2A G2B C B A Y3 Y2 Y1 Y0

. . .

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

8031

ALE P0.7 . . . P0.0

+5V Vcc OE G GND D7 .

CE A12 0000H~ A11 1FFFH A10 A9 A8 EPROM 2764
(1)

CE A12 2000H~ A11 3FFFH A10 A9 A8 EPROM 2764
(2)

CE A12 4000H~ A11 5FFFH A10 A9 GND A8 EPROM 2764
(3) +5V

Q0 D0 74LS373

. .

Q7 .

. .

A7 . . . A0

A7 . . . A0

A7 . . . A0

Vcc Vpp PGM

EA D7 ~ D0 PSEN OE D7 ~ D0 OE D7 ~ D0 OE

17

6.1.2

外部数据存储器的扩展技术

1.外部数据存储器时序分析
MCS-51单片机内只有128字节的数据RAM,当应用中需要
更多的RAM时,只能在片外扩展。可扩展的最大容量为64KB。 当执行指令 MOVX 或 MOVX 周期。 A,@Ri A,@DPTR 时,进入外部数据RAM的读

18

外部数据存储器的读周期
第1个机器周期 S1 P1 P2 第2个机器周期 S5 S6 S1 P1 P2 P1 P2 P1 P2 S2 P1 P2 S3 S5 S6 S1 S2 S2 S3 S4 S4 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

ALE

PSEN

RD

P2口

输出PCH

输出DPH

输出PCH

P0口

PCL

指令

DPL

数据入

PCL

指令

?第一个机器周期读指令,第二个机器周期读数据。 ?P2口输出高8位地址A15-A8。 ?P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。 ?P0口读8位数据D7-D0。分时有效,需RD选通外部存储器。 ?单片机在RD上升沿之前读入P0数据,完成一次外部存储器读操作。
19

外部数据存储器的写周期
第1个机器周期 S1 P1 P2 S2 P1 P2 S3 S4 P1 P2 P1 P2 S5 P1 P2 S6 S1 P1 P2 P1 P2 S2 P1 P2 第2个机器周期 S3 P1 S4 P2 P1 P2 S5 P1 P2 S6 S1 P1 P2 P1 P2 S2 P1 P2

ALE

PSEN

WR

P2口

输出PCH

输出DPH

输出PCH

P0口

PCL

指令

DPL

数据出

PCL

指令

?第一个机器周期读指令,第二个机器周期写数据。

?P2口输出高8位地址A15-A8。
?P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。 ?P0口读8位数据D7-D0。分时有效,需WR选通外部存储器。 ?外部存储器在WR上升沿之前将P0数据写入指定单元。
20

2. 外部数据存储器的连接方法
注意:外部数据存储器由RD或WR选通,可读可写;
P2.7 . . . P2.0 ALE 8031 P0.7 . . . P0.0 G I.7 . . I0 O7 . . . O0
外部地址 锁存器

A15 . . . A8

CE

外部数据 存储器

A7 . . . A0 D7 . . . D0

EA WR RD

OE

WE

21

3. 外部数据存储器的扩展
WR RD P2.2 P2.1 P2.0
+5V Vcc OE G GND D7 .

WE OE A10 A9 A8

CE GND 6116

8031

ALE P0.7 . . . P0.0

Q0 D0 74LS373

. .

Q7 .

. .

A7 . . . A0

Vcc

+5V

EA D7 ~ D0

6116的地址为0000H~07FFH,由于高位地址线未接入电路中,该芯片 地址还可为1000H~17FFH、2000H~27FFH等等。

22

?完成外部数据存储器RAM读写操作的两种方式:
例如把累加器A的内容写入外部存储器RAM的02F3H单元中,可 有如下两种程序: 第一种:MOV P2,#02H ;端口提供高8位地址 MOV R0,#0F3H ;R0提供低8位地址 MOVX @R0,A ;A中内容写入02F3H单元 第二种:MOV DPTR,#02F3H ;DPTR提供16位地址 MOVX @DPTR,A ;A 中内容送02F3H单元 同样地,若需将外部数据存储器RAM 02F3H地址单元中的内容 读入A累加器,其程序可为: 第一种:MOV P2,#02H ;端口提供高8位地址 MOV R0,#0F3H ;R0提供低8位地址 MOVX A,@R0 ;02F3H单元内容送入A 中 第二种:MOV DPTR,#02F3H ;DPTR提供16位地址 MOVX A,@DPTR ;02F3H单元内容送入A 中
23

6.2

并行接口的扩展技术

MCS-51单片机共有4个8位并行I/O口, 在外部扩展时, P0和P2口做为
总线使用,因而提供给用户的 I/O口就只有P1或P3口的部分口线。所接 的外设较多时,就必须扩展I/O接口。

MCS-51单片机扩展的I/O口和外部数据存储器统一编址、采用相同的
控制信号、相同的寻址方式和相同的指令。

25

6.2.1简单输入/输出口的扩展
P0.0 P0.1 P0.2 P0.3 P0.4 8031 P0.5 P0.6 P0.7 EA RD P2.0 WR 74LS273 CLK D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
输 出 数 据 至 外 设

74LS244 1A1 1Y1 1A2 1Y2 1A3 1Y3 1Y4 1A4 2Y1 2A1 2Y2 2A2 2Y3 2A3 2A4 2Y4 1G 2G

来 自 外 设 的 数 据

74LS244各引脚定义如下: 1A1~1A4:第1组4条输入线 1Y1~1Y4:第1组4条输出线 2A1~2A4:第2组4条输入线 2Y1~2Y4:第2组4条输出线 1G:第1组三态门使能端, 低电平有效 2G:第2组三态门使能端, 低电平有效 VCC:工作电源,接+5V电压 GND:接地

74LS244的选通信号由RD和P2.0相或产生,当执行读该片的指令时, RD和 P2.0有效, 打开74LS244控制门, 从而把数据通过74LS244读入8XX51。

26

程序如下: MOV MOVX MOV DPTR, #FEFFH ; 数据指针指向74LS244 A, @DPTR 61H, A
P0.0 P0.1 P0.2 P0.3 P0.4 8031 P0.5 P0.6 P0.7 EA RD P2.0 WR 74LS273 CLK D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
输 出 数 据 至 外 设

; 外部数据经过74LS244送入累加器A ; 数据送61H单元保存
74LS244 1A1 1Y1 1A2 1Y2 1A3 1Y3 1Y4 1A4 2Y1 2A1 2Y2 2A2 2Y3 2A3 2A4 2Y4 1G 2G
来 自 外 设 的 数 据

27

P0.0 P0.1 P0.2 P0.3 P0.4 8031 P0.5 P0.6 P0.7 EA RD P2.0 WR

74LS244 1A1 1Y1 1A2 1Y2 1A3 1Y3 1Y4 1A4 2Y1 2A1 2Y2 2A2 2Y3 2A3 2A4 2Y4 1G 2G

来 自 外 设 的 数 据

74LS273 CLK D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
输 出 数 据 至 外 设

74LS273各引脚定义如下: D0~D7:输入线。 Q0~Q7:输出线。 CLR:清除控制端, 低电平有效。 CLK:时钟输入端, 上升沿有效。 VCC:工作电源, 接+5V电压。 GND:接地。

74LS273的选通信号由WR和P2.0相或产生,通过执行对该片的写指令,WR

和P2.0有效,使8XX51的数据往74LS273输出。

28

从74LS273输出数据,可使用如下指令:
MOV MOVX DPTR, #0FEFFH @DPTR,A
P0.0 P0.1 P0.2 P0.3 P0.4 8031 P0.5 P0.6 P0.7 EA RD P2.0 WR 74LS273 CLK D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
输 出 数 据 至 外 设

;向74LS273输出数据
74LS244 1A1 1Y1 1A2 1Y2 1A3 1Y3 1Y4 1A4 2Y1 2A1 2Y2 2A2 2Y3 2A3 2A4 2Y4 1G 2G
来 自 外 设 的 数 据

29

【例】74LS273输出端接8个LED发光二极管,以显示8个按钮开关 状态,某位低电平时二极管发光。74LS244扩展输入口,接8个按 钮开关。

30

74LS273和74LS244的工作受AT89C51的P2.0、RD、WR三条控制 线控制。电路的工作原理如下: 当P2.0=0,WR=0(RD=1)选中写74LS273, AT89C51通过P0口输出 数据到74LS273,; 当P2.0=0,RD=0(WR=1)时选中读74LS244, 某开关按下时则对应位 输入为“0”。 输出程序段: MOV A,#data ;数据→A MOV DPTR,#0FEFFH ;I/O地址→DPTR MOVX @DPTR,A ;WR为低,数据经74LS273口输出 输入程序段: MOV DPTR,#0FEFFH ;I/O地址→DPTR MOVX A,@DPTR ;RD为低,74LS244口 ;数据读入内部RAM
31

例1

编写程序把按钮开关状态通过上图的发光二极管显示出来。程序如下: MOV MOVX MOVX SJMP DPTR,#0FEFFH A,@DPTR @DPTR,A LP ;输入口地址→DPTR ;按钮开关状态读入A中 ;A中数据送输出口 ;反复连续执行

DDIS: LP:

32

6.2.2可编程并行输入/输出口8255的扩展
1、8255的内部结构及引脚功能
8255A是可编程并行输入/输出接口芯片,内含A、B、C三个8位的输 入输出数据端口,A、B两组控制电路,读/写控制逻辑电路以及数据总线 缓冲器, 其内部结构与引脚配置如下图所示。

A组 控制 数据 总线 缓冲器
内部数据线

A组 端口A A组 端口C 上部

PA0-PA7

D0-D7

PC4-PC7

RD WR A0 A1 CS RESET

B组 控制 读写控 制逻辑
内部控制线

B组 端口B B组 端口C 下部

PB0-PB7

PC0-PC3

PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

8255

40 PA4 39 PA5 38 PA6 37 PA7 36 WR 35 RESET 34 D0 33 D1 32 D2 31 D3 30 D4 29 D5 28 D6 27 D7 26 Vcc 25 PB7 24 PB6 23 PB5 22 PB4 21 PB3

33

8255A控制信号与端口信号传送的I/O操作关系 A1 A0 RD* WR* CS* 工作状态

0 0
1 0

0 1
0 0

0 0
0 1

1 1
1 0

0 0
0 0

读端口A:A口数据→数据总线
读端口B:B口数据→数据总线 读端口C:C口数据→数据总线 写端口A:总线数据→A口 写端口B:总线数据→B口 写端口C:总线数据→C口 写控制字:总线数据→控制字寄存器 数据总线为三态

0
1 1 ×

1
0 1 ×

1
1 1 ×

0
0 0 ×

0
0 0 1

1
×

1
×

0
1

1
1

0
0

非法状态
数据总线为三态

34

I/O数据的几种传送方式
为实现和不同的外设的速度匹配,I/O接口必须根据不同外设选择恰 当的I/O数据传送方式。

I/O数据传送的几种传送方式是:
(1)同步传送(2)异步传送(3)中断传送。 1.同步传送方式(无条件传送)

当外设速度和单片机的速度相比拟时,常采用同步传送方式,最典型
的同步传送就是单片机和外部数据存储器之间的数据传送。 2.查询传送方式(条件传送,异步式传送)

查询外设“准备好”后,再进行数据传送。
优点:通用性好,硬件连线和查询程序十分简单, 缺点:效率不高。

为提高效率,通常采用中断传送方式。
35

3.中断传送方式 外设准备好后,发中断请求,单片机进入与外设数据传送的中断服 务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。工 作效率高。. 如何实现I/O接口的扩展。Intel公司的配套可编程 I/O接口芯片的

种类齐全,为扩展I/O接口提供了很大的方便。

36

2、8255A的工作方式及选择
?

8255A在三种基本的方 式下工作:
方式 0:基本输入/输出。 方式 1:选通的输入/输出。 方式 2:双向传输。

1、方式选择控制字

?
? ?

其中A口可工作于方式

0、1、和2,而B口只能
工作在方式0和方式1。 例 写入工作方式控制字95H 可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分 (PC7~ PC4)输出,C口的下半部分(PC3~PC0)输入。
37

2. C口按位置位/复位控制字
可对C口8位中的任一位置“1”或清“0”。用于位控。



控制字07H写入控制口,置“1” PC3;08H写入控制口,清“0”

PC4。
38

1.方式0:无条件传送方式
基本的输入/输出方式。 AT89C51可对8255A进行数据的无条件传送 例如:从口线读入一组开关状态,控制一组指示灯的亮、灭。不需要联 络信号,CPU可随时读入开关的状态,随时可把一组数据送到指示灯显示 基本功能为: (1)具有两个8位端口(A、B)和两个4位端口(C的上半部分和下半部 分)。 (2)任一个端口都可以设定为输入或输出。 (3)数据输出锁存,输入不锁存。 由于是无条件地传送,所以不需要状态端口,3个端口都可以作为 数据端口。常用到的指令为MOVX,来完成输入输出操作
39

例 假设8255A的控制字寄存器地址为FF7FH,则令A口和C口的高4位工作 在方式0输出, B口和C口的低4位工 作于方式0输入,初始化程序:

MOV MOV

DPTR,#0FF7FH A,#83H

;控制字寄存器地址送DPTR ;方式控制字83H送A ;83H送控制字寄存器

MOVX @DPTR,A

40

2. 方式1:查询传送和中断传送
选通输入/输出工作方式。A口和B口通常用于I/O数据传送,C口用作A口 和B口的联络线,以中断方式传送数据。 (1) 方式1输入 控制联络信号如图所示,STB与IBF构成了一对应答联络信号,联络信 号的功能如下:

41

STB:选通输入,是由 外设供给的输入信号, 表示外设数据已准备好。 有效时,把从外设来的 数据送入锁存器。 IBF:输入缓冲器满信 号,高电平有效。由 8255输出的状态信号, 表示数据已送入锁存器。

INTR:中断请求信号, 高电平有效。由8255A 输出,向单片机发中断 请求。
INTE A:中断允许。 INTE B:中断允许。

42

(2)方式1输出
如图所示。OBF与ACK构成了一对应答联络信号,各信号的功能如下:

OBF:输出缓冲器满信号,低电 平有效,这是8255A输出给外设 的一个控制信号。 ACK:外设的响应信号,外设已 将数据取走。 INTR:中断请求信号。表示该数 据已被外设取走,请求单片机继 续输出下一个数据。 INTE A:中断允许,由PC6控制。

INTE B:中断允许,由PC2控制。

43

3.方式2:查询传送和中断传送
使外设可在单一的8位总线上,既能发送也能接收数据。 只有A口才能设定为方式2。图为方式2工作示意图。 在方式2下,PA7~PA0为双向I/O总线。 当输入时,PA7~

PA0受STBA和IBFA控制
当输出时,PA7~ PA0受OBFA、ACKA控制

44

AT89C51单片机和8255的接口 1.硬件接口电路
如图是89C51扩展1片8255A的电路图。74LS373是地址锁存器,P0.1、
P0.0经74LS373与8255A的地址线A1、A0连接; P0.7经74LS373与片选端 相连,其他地址线悬空。

45

2.确定8255A端口地址
图中8255A各端口寄存器的地址为:
A口: C口: FF7CH FF7EH B口: FF7DH

控制寄存器: FF7FH

46

3.软件编程
例 要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,程 序如下: MOV A,#90H ;A口方式0输入,B口、 ;C口输出的控制字送A

MOV
MOVX MOV MOVX MOV MOV MOVX MOV

DPTR,#0FF7FH
@DPTR,A DPTR,#0FF7CH A,@DPTR DPTR,#0FF7DH A,#DATA1 @DPTR,A DPTR,#0FF7EH

;控制寄存器地址→DPTR
;方式控制字→控制寄存器 ;A口地址→DPTR ;从A口读数据 ;B口地址→DPTR ;要输出的数据DATA1→A ;将DATA1送B口输出 ;C口地址→DPTR
47

MOV MOVX

A,#DATA2 @DPTR,A

;DATA2→A ;将数据DATA2送C口输出

例 对端口C的置位/复位。 把PC5置位,控制字为0BH MOV MOV MOVX R1,#7FH A,#0BH @R1,A ;控制口地址→R1 ;控制字→A ;控制字→控制口,PC5=1

把PC5复位,控制字为0AH MOV R1,#7FH ;控制口地址→R1

MOV
MOVX

A,#0AH
@R1,A

;控制字→A
;控制字→控制口,PC5=0

48

【练习】 用8255的PA、PB、PC口分别作为输入口接八只控制开关,或作为 输出口接八只发光二极管,编写控制程序,八只发光二极管分别受各 自对应的控制开关的控制。 假设:端口A地址为FF28H,端口B地址为FF29H,端口C地址为 FF2AH,控制端口地址为FF2BH。PA口作为输入口接八只控制开关, PB口作为输出口接八只发光二极管。

49

ORG
AJMP ORG MAIN: MOV MOV MOVX LOOP: MOV

0000H
MAIN 0250H DPTR,#0FF2BH A,#90H ;A口输入、B口输出

@DPTR,A ;写控制字数据 DPTR,#0FF28H

MOVX
MOV MOVX

A,@DPTR

;读输入口数据

DPTR,#0FF29H @DPTR,A ;写输出口数据

SJMP
END

LOOP
;程序结束

50

6.2.3可编程并行输入/输出口8155的扩展
8155是一种多功能的可编程常用外围接口芯片,其在片资源包括: 256×8位静态RAM,两个8位、1个6位的并行I/O口以及一个14位的可编 程定时/计数器。其引脚配置及内部结构框图如下图所示。
Vcc GND AD0 ~ AD7 CS ALE WR RD RESET IO/M TIMEROUT TIMER IN

256× 8 静态 RAM

A口

PA0 ~ PA7

B口 控制 逻辑 C口 定时/计 数器

PB0 ~ PB7

PC0 ~ PC5

PC3 PC4 TI RESET PC5 TO IO/M CE RD WR ALE AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

8155

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

Vcc PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

51

8155的扩展电路
+5V GND P2.5 P2.6 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 RD WR ALE +5V Vcc IO/M CE AD0 AD1 8155 AD2 AD3 AD4 AD5 AD6 TIMER IN AD7 RD TIMER OUT WR ALE GND

Vcc

8031

EA

TIMER

52

存储器和I/O口的扩展实例

53

2732仅一片, 片选端接地。 图中采用线选法: P2.4 6116(1) P2.5 6116(2) P2.6
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

8255

A15 A14 A13 A12 A11 A10
0 0 0 0 0 0

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0000H

0
1 1 1

0
1 1 1

0
1 1 0

0
0 0 1

1
1 1 1

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

1
0 1 0

0FFFH
E800H EFFFH D800H

1
1 1

1
0 0

0
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
1 1

1
0 1

1
0 1

DFFFH
BFFCH BFFFH

每个芯片片内地址填写全“0”~全“1”,片选地址必须填“0”,无 关位填“0”或填“1”均可,但要避免和别的同类芯片片选相同。
54

6.3

串行接口的扩展技术
单片机内部资源非常有限,并行扩展由于占用资

源多,在小型系统中并不常用,这是往往可用串行扩展方式,
如利用单片机的可编程串行接口扩展出相应的并行输入输出 接口。针对这类问题,不少器件公司专门研发了针对外部串 行输入输出接口扩展的协议和芯片,常用的协议有I2C、单 总线、SPI总线以及Microwire/PLUS等。

55

小结
? 掌握单片机外部扩展原理。 外部访问指令和外部三总线的时序关系。 ? 掌握单片机什么是地址译码。 全译码、部分译码、线选。

56


相关文章:
单片机原理及应用课后习题答案第六章作业
单片机原理及应用课后习题答案第六章作业_教育学_高等教育_教育专区。第六章作业(1)判断下列说法是否正确? 特殊功能寄存器SCON,与定时器/计数器的控制无关。 () ...
单片机原理及应用第6章答案(第二版)
单片机原理及应用第6章答案(第二版)_工学_高等教育_教育专区。第6章参考答案 AT89S51 的定时/计数器 1.答: (A)对; (B)错; (C)错; (D)错; 2.答...
单片机与微机原理 第六章
单片机与微机原理 第六章_院校资料_高等教育_教育专区。单片机与微机原理第六章 2. 80C51 单片机有哪几种寻址方式?这几种寻址方式是如何寻址的? 7种 立即寻址:...
单片机及接口技术 第六章 习题答案
单片机及接口技术 第六章 习题答案_信息与通信_工程科技_专业资料。单片机及接口技术 第六章 习题答案第6 章习题答案 1、定时器模式 2 有什么特点?适用于什么场...
...技术第三版课后习题答案()单片机第6章作业
单片微型计算机与接口技术 思考与习题 6 6.1 解析下列名词:中断、中断源、中断优先级、中断的嵌套、中断系统。 答:(1)中断:CPU 和外设并行工作,当外设数据准备...
单片机第6章
第6章 AT89S52 定时器/计数器 本章要点: ? 掌握定时器/计数器的定义 ? ...学会使用定时器/计数器编写计数、定时应用程序的方法 AT89S52 单片机内部有三个...
单片机原理及应用第2版课后答案第6章习题答案
单片机原理及应用第2版课后答案第6章习题答案_工学_高等教育_教育专区。第 6 章习题答案 1.异步通信和同步通信的主要区别是什么?MCS-51 串行口有没有同步通信...
单片机技术第六章作业题
单片机技术第六章作业题_电子/电路_工程科技_专业资料。单片机技术《单片机技术》第六章作业题 1、 在 51 单片机的外部, 采用译码法同时扩展 2KB 的 RAM 和 RO...
单片机原理及应用课后习题答案第六章作业(李传锋)
单片机原理及应用课后习题答案第六章作业(李传锋)_农学_农林牧渔_专业资料。第6章 1. 2. 3. 4. 5. 6. 7. MCS-51 的定时器/计数器 8. 如果晶振的频率...
第六章 单片机功能部件
第六章 单片机的功能部件教学内容: 1、定时/计数器 2、单片机中断系统 3、单片机串行通信 本章重点: 1、单片机定时/计数器、中断系统、串行通信的结构与工作原理...
更多相关标签:
单片机基础第八章答案 | 第五章 作业 单片机 | 单片机第三章答案 | 单片机第八章答案 | 单片机第三章 | 单片机章节习题 | 单片机4000字相关文章 | 单片机分章节 |