170 likes | 336 Views
第七章 MCS-51 系统扩展 一、程序存储器扩展. 二、数据存储器扩展 常用扩展芯片为 6116(2K 字节 ) 、 6264(8K 字节 ) 。 外部 RA M 电路与 MCS-51 接口. 三、输入/输出口扩展 1 . 8255 通用并行接口电路. 2 . 8155RAM/IO 扩展器 A . 8155 的结构.
E N D
二、数据存储器扩展 常用扩展芯片为6116(2K字节)、6264(8K字节)。 外部RAM电路与MCS-51接口
三、输入/输出口扩展1.8255通用并行接口电路三、输入/输出口扩展1.8255通用并行接口电路
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
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位
C.I/O口的操作方式和选择(1)命令寄存器8155内部有一个命令寄存器,锁存CPU写入的命令,控 制I/O口的操作方式和计数器的运行,其格式如下 所示: D0: PA=0:A口为输入 PA=1:A口为输出 D1: PB=0:B口为输入 PB=1:B口为输出
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
D4:IEA=0:禁止A口中断 IEA=1:允许A口中断D5:IEB=0:禁止B口中断 IEB=0:允许B口中断D7、D6:TM2、TM1 =00 空操作=01 停止定时器操作=10 若定时器正在计数长度减为1时停 止计数=11 置定时器方式和长度后启动计数, 若正在计数,溢出后按新的方式 和长度计数。
(2)选通I/O的联络信号线BF:I/O口缓冲器荡空标志,缓冲器存有数据时BF=1 STB:设备选通信号,低有效INTR:中断请求输出线D.状态字节8155有一个状态寄存器,锁存8155 I/0口和定时器的 当前状态,供CPU查询,它只能读出不能写入,和命令 寄存器共用一个口地址其格式如下:
E.定时器8155定时器为14位的减法计数器,对输入计数为减 法,定时器由2个节组成其格式如下: 计数长度低8位 计数长度高6位 对定时器编程时,先把计数长度和定时器方式写 入此2字节。
(1)定时器的方式:M2M1=00:单方波=01:连续方波=10:单脉冲=11:连续脉冲(2)定时器的启停: 任何时候都可置定时器的长度和工作方式,然后必须 将启动命令写入命令寄存器。8155复位后,停止计数 器计数,用命令也可停止计数。(3)由计数器状态求输入脉冲数的方法 停止计数 分别读出计数器2个字节 取低14位的计数值(注意计数的终值为2)
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
例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
3.8253可编程定时器/计数器A.8253与MCS-51的连接8253与MCS-51的连接如图所示: 3.8253可编程定时器/计数器A.8253与MCS-51的连接8253与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