第七章 mcs-51 系统扩展 一、程序存储器扩展

17
第第第 MCS-51 第 第第 第第第第第第第 一、

Upload: ping

Post on 05-Jan-2016

113 views

Category:

Documents


0 download

DESCRIPTION

第七章 MCS-51 系统扩展 一、程序存储器扩展. 二、数据存储器扩展 常用扩展芯片为 6116(2K 字节 ) 、 6264(8K 字节 ) 。 外部 RA M 电路与 MCS-51 接口. 三、输入/输出口扩展 1 . 8255 通用并行接口电路. 2 . 8155RAM/IO 扩展器 A . 8155 的结构. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第七章   MCS-51 系统扩展 一、程序存储器扩展

第七章 MCS-51 系统扩展 一、程序存储器扩展

Page 2: 第七章   MCS-51 系统扩展 一、程序存储器扩展

二、数据存储器扩展 常用扩展芯片为 6116(2K 字节 ) 、 6264(8K 字节 ) 。 外部 RAM 电路与 MCS-51 接口

Page 3: 第七章   MCS-51 系统扩展 一、程序存储器扩展

三、输入/输出口扩展1 . 8255 通用并行接口电路

Page 4: 第七章   MCS-51 系统扩展 一、程序存储器扩展

2 . 8155RAM/IO 扩展器 A . 8155 的结构

Page 5: 第七章   MCS-51 系统扩展 一、程序存储器扩展

AD0-7 :地址数据总线 CE :片选信号 IO/M : RAM/IO 选择线 当 IO/M=0 、 CE=0 时,选 RAM 。 当 IO/M=0 、 CE=0 时,选 IO 口。 RD :读 WR :写 ALE :地址锁存信号B . 8155 的 RAM 和 I/O 口编址 当 IO/M=0 时, CPU 对 8155 的 RAM 存贮器进行读写, RAM 编址为 00H-FFH 当 IO/M=1 时, CPU 对 8155 的 I/O 口进行读写,

IO 编址如下:   命令状态口: 00H PA 口: 01H PB 口: 02H

Page 6: 第七章   MCS-51 系统扩展 一、程序存储器扩展

PC 口: 03H 定时器低 8 位: 04H 定时器高 6 位: 05H 通常 IO/M 与 P2.0 相连,当 CE 与 P2.6 相连地址为 BE00H-BEFFH : RAM BF00H :命令状态口 BF01H : PA 口 BF02H : PB 口 BF03H : PC 口 BF04H :定时器低 8 位 BF05H :定时器高 6 位

Page 7: 第七章   MCS-51 系统扩展 一、程序存储器扩展

C . I/O 口的操作方式和选择 (1) 命令寄存器 8155 内部有一个命令寄存器,锁存 CPU 写入的命令 ,控 制 I/O 口的操作方式和计数器的运行,其格式如下 所示:

D7 D6 D5 D4 D3 D2 D1 D0

TM2 TM1 IEB IEA PC2 PC1 PB PA

D0 : PA=0 : A 口为输入 PA=1 : A 口为输出 D1 : PB=0 : B 口为输入 PB=1 : B 口为输出

Page 8: 第七章   MCS-51 系统扩展 一、程序存储器扩展

D3 、 D2 : PC2 、 PC1=00 : A 、 B 口为基本输入输出, C 口为输入 PC2 、 PC1=11 : A , B 口为基本输入输出, C 口为输出 PC2 、 PC1=01 : A 口选通输入输出, B 口为基本 I/O PC0 : A-INTR PC1 : A-BF , PC2 : A-STB PC3-5 :输出 PC2 、 PC1=10 : AB 口为选通输入输出 PC0 : A-INTR PC1 : A-BF , PC2 : A-STB PC3 : B-INTR PC4 : B-BF , PC5 : B-STB

Page 9: 第七章   MCS-51 系统扩展 一、程序存储器扩展

D4 : IEA=0 :禁止 A 口中断 IEA=1 :允许 A 口中断 D5 : IEB=0 :禁止 B 口中断 IEB=0 :允许 B 口中断 D7 、 D6 : TM2 、 TM1 =00 空操作 =01 停止定时器操作 =10 若定时器正在计数长度减为 1 时停 止计数 =11 置定时器方式和长度后启动计数,

若正在计数,溢出后按新的方式 和长度计数。

Page 10: 第七章   MCS-51 系统扩展 一、程序存储器扩展

(2) 选通 I/O 的联络信号线 BF : I/O 口缓冲器荡空标志,缓冲器存有数据时 BF=1 STB :设备选通信号,低有效 INTR :中断请求输出线D .状态字节 8155 有一个状态寄存器,锁存 8155 I/0 口和定时器的 当前状态,供 CPU 查询,它只能读出不能写入,和命令 寄存器共用一个口地址其格式如下:

D7 D6 D5 D4 D3 D2 D1 D0

/ TIMERINTE(B)

BF(B)

INTR(B)

INTE(A)

BF(A)

INTR(A)

Page 11: 第七章   MCS-51 系统扩展 一、程序存储器扩展

E .定时器 8155 定时器为 14 位的减法计数器,对输入计数为减 法,定时器由 2 个节组成其格式如下: 计数长度低 8 位

D7 D6 D5 D4 D3 D2 D1 D0

D7 D0

计数长度高 6 位

D7 D6 D5 D4 D3 D2 D1 D0

M2 M1

对定时器编程时,先把计数长度和定时器方式写 入此 2 字节。

Page 12: 第七章   MCS-51 系统扩展 一、程序存储器扩展

(1) 定时器的方式: M2M1=00 :单方波 =01 :连续方波 =10 :单脉冲 =11 :连续脉冲(2) 定时器的启停: 任何时候都可置定时器的长度和工作方式,然后必须 将启动命令写入命令寄存器。 8155 复位后,停止计数 器计数,用命令也可停止计数。(3) 由计数器状态求输入脉冲数的方法 停止计数 分别读出计数器 2 个字节 取低 14 位的计数值 ( 注意计数的终值为 2)

Page 13: 第七章   MCS-51 系统扩展 一、程序存储器扩展

F.8155 与 MCS-51 的连接 8155 与 MCS-51 的连接如图所示

Page 14: 第七章   MCS-51 系统扩展 一、程序存储器扩展

F .编程举例例 1 :显示 P MOV DPTR , #7F00H MOV A , #43H MOVX @DPTR , A MOV A , #73H INC DPTR MOVX @DPTR , A例 2 :试编一程序将 8155 中 RAM 单元清“ 0” MOV DPTR,#7E00H MOV R7,#00H CLR A LP : MOVX @DPTR,A INC DPTR DJNZ R7,LP RET

Page 15: 第七章   MCS-51 系统扩展 一、程序存储器扩展

例 3 :设 8155A,B 口工作于基本输出输入方式 , 试编一程序 根据 B 口所接的输入开关状态 , 点亮 A 口相应的指示 灯 .( 开关合上点亮灯 ) MOV DPTR,#7F00H MOV A,#01H MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR CPL A DEC DPL MOVX @DPTR,A LP : SJMP LP

Page 16: 第七章   MCS-51 系统扩展 一、程序存储器扩展

3 . 8253 可编程定时器 / 计数器 A . 8253 与 MCS-51 的连接 8253 与 MCS-51 的连接如图所示:

Page 17: 第七章   MCS-51 系统扩展 一、程序存储器扩展

B .编程举例:例:设 8031 晶振为 12MHz ,则 CLK2 频率为 2MHz 8253 口地址为: 7FFCH(0 计 ) 7FFDH(1 计 ) 7FFEH(2 计 ) 7FFFH( 控 ) 要求使 OUT2 输出 40KHz 方波 程序如下: INT1: MOV DPTR,#7FFFH MOV A,#B6H MOVX @DPTR,A MOV DPTR,#7FFEH MOV A,#32H MOVX @DPTR,A CLR A MOVX @DPTR,A RET