580 likes | 769 Views
单片机原理及其应用. (Principle and Application of Single Chip Microcomputer). 第 1 章 概述 第 2 章 MCS-51 单片机硬件结构 第 3 章 MCS-51 寻址方式和指令系统 第 4 章 MCS-51 汇编程序设计 第 5 章 中断系统 第 6 章 定时器 / 计数器及串行口 第 7 章 存储器扩展 第 8 章 接口电路扩展 第 9 章 应用举例. 7.1 MCS-51 单片机系统扩展的基本概念 7.2 存储器地址空间分配 7.3 程序存储器扩展技术
E N D
单片机原理及其应用 (Principle and Application of Single Chip Microcomputer)
第1章 概述 第2章 MCS-51单片机硬件结构 第3章 MCS-51寻址方式和指令系统 第4章 MCS-51汇编程序设计 第5章 中断系统 第6章 定时器/计数器及串行口 第7章 存储器扩展 第8章 接口电路扩展 第9章 应用举例
7.1 MCS-51单片机系统扩展的基本概念 7.2 存储器地址空间分配 7.3 程序存储器扩展技术 7.4 数据存储器扩展技术 7.5 存储器混合扩展技术 7.6 E2PROM的扩展技术 7.7 输入/输出口扩展技术 第7章MCS-51单片机系统扩展技术
扩展的必要性:在非最小系统应用中,P0,P2用作总扩展的必要性:在非最小系统应用中,P0,P2用作总 线,P3不能全用作I/O, 只有P1能作为I/O使用。 1. I/O接口功能 (1)实现与不同外设的速度匹配 (2)输出数据锁存 (3)输入数据三态缓冲 7.7 输入/输出端口扩展技术 7.7.1 I/O口扩展概述
通常接口电路与CPU传送数据时, 是通过端口 (port)进行的。端口一般是寄存器,缓冲器,锁存 器。一片接口电路往往有多个端口。对端口分配地址 是区分端口的手段。 (1) 独立编址 存储空间与I/O空间分开编址,有专用的I/O控制 信号和读写I/O的指令。 (2) 统一编址 存储空间与I/O空间合在一起编址,将I/O外设与 存储器同等看待,统一编址,无专用I/O指令。 MCS-51采用的是统一编址方式。 外部RAM空间一部分将划作I/O端口使用。 2. I/O端口编址
(1)同步传送方式 传送数据时,不用查询外设的准备情况。又称无 条件传送。 (2)查询传送方式 传送数据时,先查询外设的准备情况。又称条件 传送。传送效率不高。 (3)中断传送方式 效率高。通常用于可编程的接口芯片。 3. I/O数据传送方式
1.用并行口(P0)扩展I/O口 只要根据“输入三态,输出锁存”与总线相连的原则,选择74LS系列的TTL电路或MOS电路即能组成简单的扩展I/O口。 例如采用8位三态缓冲器74LS244组成输入口,采用8D锁存器74LS273,74LS373,74LS377等组成输出口。 这种方法扩展的接口电路简单,一般采用无条件传送方式交换数据。 7.7.2 简单I/O口扩展
CLK 锁存 MOV A, #55H MOV DPTR,#7F00H MOVX @DPTR, A P2.7 G=’0’ Q=D 图7-31 简单I/O扩展接口图 G=’1’ Q为高阻态 MOV DPTR,#7F00H MOVX A,@DPTR
编写程序将开关状态读入并由LED显示(开关合上LED亮)。编写程序将开关状态读入并由LED显示(开关合上LED亮)。 MOV DPTR, #7F00H AGN: MOVX A, @DPTR MOVX @DPTR, A SJMP AGN
2.用串行口扩展I/O口 MCS-51单片机串行口工作在方式0时,使用移 位寄存器芯片可以扩展一个或多个8位并行I/O口。 这种方法不占用片外RAM地址,可节省单片机的 硬件开销。是一种经济、实用的方法。 缺点是数据传送速度比并行口慢,扩展芯片越多, 速度越慢。
RxD TxD P1.0 (1) 扩展并行输入口 图7-33 用74LS165扩展并行输入口 74LS165是8位并行输入,串行输出的寄存器。S/L低跳变将并行输入存入寄存器。 S/L=1,允许移位传送。
【例7-2】(9-7) 从16位扩展口读入5组数据(2字节/组),并存到片内RAM 20H 开始的单元。 MOV R7, #05H ; 设置读入组数MOV R0, #20H ; 设片内RAM指针START: CLR P1.0 ; 并行置入数据SETB P1.0 ; 允许74165串行移位MOV R1, #2 ; 每组字节数 RXDAT: MOV SCON, #10H ; 设串行口方式0, 并启动接收WAIT: JNB RI, WAIT ; 等待接收一帧数据 CLR RI ; 清接收标志MOV A, SBUF ; 取缓冲器数据MOV @R0, A ; 存数据INC R0 DJNZ R1, RXDAT ; 未读完一组数据,继续DJNZ R7, START ; 未读入5组数据,重置并行输入………………… ; 对读入数据进行处理
RxD CK CLR CK CLR TxD P1.0 (2) 扩展并行输出口 图7-35 利用74LS164扩展并行输出口 74LS164是8位串入并出移位寄存器。CLR=“0”,输出全为低。CK上升沿使Qg→Qh٠٠٠ Qa→Qb,A,B →Qa
【例7-3】(9-8) 将内部RAM 30H, 31H的内容经 串行口从74LS164并行输出。 MOV R7, #02H ;设置发送字节数MOV R0, #30H ;设数据区指针MOV SCON, #00H ;设串行口方式0SEND: MOV A, @R0 MOV SBUF,A ;启动串行口发送过程WAIT: JNB TI, WAIT ; 等待接收一帧数据CLR TI ; 清发送中断标志INC R0 ; 修改指针取下一个数DJNZ R7, SEND RET
型号 名称 说明 8155 并行接口 带256字节的RAM和14位定时/计数器 8255 通用并行接口 8251 同步/异步通讯接口 8253 定时/计数器 8279 键盘/显示接口 7.7.3 可编程I/O口扩展 表7-2 常用Intel 系列可编程接口芯片
一. 8155接口芯片 1. 8155的结构和技术性能 在8155内部有: (1)256字节的静态RAM,存取时间为400ns。 (2)三个通用的输入/输出口。 (3)一个14位的可编程定时/计数器(减1计数)。 (4)地址锁存器及多路转换的地址和数据总线。 (5)单一 +5V电源,40脚双列直插式封装。 图7-36是8155的结构框图。
(a)逻辑结构 (b)引脚图 图7-36 8155的逻辑结构及引脚图
表7-3 8155口地址分布 2. 8155的RAM和I/O地址编码
TM2 TM1 IEB IEA PC2 PC1 PB PA 00 -ALT1, 11-ALT2 01 -ALT3, 10-ALT4 3. 8155的命令字和状态字 图7-37 8155命令控制字格式
(00) (11) (01) (10) /输出方式 表7-4 C口工作方式及控制信号分布
状态字格式如图7-38所示。地址与命令寄存器相同。状态字格式如图7-38所示。地址与命令寄存器相同。 图7-38 8155状态字格式
4. 8155的工作方式 1) 存储器方式 使用8155片内256字节RAM,地址:00H~FFH。 (IO/M=0) 2) I/O口方式 使用8155片内3个I/O端口。(IO/M=1) (1) 基本I/O方式 A、B、C口均可用作输出/输入。分别由命令字的 低四位确定。 基本I/O方式下的数据输入和输出只能采用无条件 传送方式。
用于条件传送,中断传送。A、B口可以独立设定用于条件传送,中断传送。A、B口可以独立设定 在选通方式。其联络控制由C口担当。 (00) (11) (01) (10) /输出方式 (2) 选通I/O方式
命令字:D0=0, D3D2=01或10,A口设定为选通输入方式 D1=0, D3D2=10, B口设定为选通输入方式 RD /RD 上升沿发 将输入数据送入A口,8155发出ABF, ASTB ASTB 出中断A INTR, CPU在中断程序读数据, 使ABF, A INTR回 到低电平。 ① 选通输入 ① ⑤ ② ④ ③
RD BF ① STROBE ② (外设) INTR ③ (CPU)
命令字:D0=1, D3D2=01或10,A口设定为选通输出方式 D1=1, D3D2=10, B口设定为选通输出方式 WR ASTB ASTB /WR ② 选通输出 ① ② ③ ⑤ 使ABF变高,外设发 ,取走数据。 上升沿 发出A INTR。
BF STROBE INTR WR ③ ② (外设) ① (CPU)
3) 定时器/计数器使用 8155片内的14位减一定时器/计数器可程控其计数长度和计数方式。 8155计数寄存器格式 图7-39 8155定时器输出方式
定时/计数器的启动 在设置计数长度和方式后,将启动命令写入命令 寄存器。 定时/计数器的初值范围 2H~3FFFH 8155复位将停止计数 写入定时/计数器的初值为奇数时,输出的方波 不对称。
5. MCS-51单片机与8155的接口与编程 MCS-51单片机可直接和8155连接而不需要任何外加逻辑,可以直接为系统增加256字节外部RAM、22根I/O线及一个14位定时器。其基本硬件连接方法如图7-40所示。
RAM地址: 0XXXXXX0 00000000B 7E00H 0XXXXXX0 11111111B 7EFFH I/O口地址: 0XXXXXX1 XXXXX000B 7F00H 0XXXXXX1 XXXXX101B 7F01H 命令/状态寄存器: 7F00H PA 口: 7F01H PB 口: 7F02H PC 口: 7F03H TL: 7F04H TH: 7F05H
【例7-4】(9-3)A口:基本输入方式,B口:基本输出方式;对输入脉冲进行24分频输出,试写初始化程序。 ST: MOV DPTR, #7F04H ; 指向TL MOV A, #18H ; 分频系数 MOVX @DPTR, A ; 送入TL INC DPTR ; 指向TH MOV A, #0100 0000B ; 连续方波输出 MOVX @DPTR, A ; 送入TH MOV DPTR, #7F00H ;指向命令口 MOV A, #1100 00 10B ; 控制字 MOVX @DPTR, A ;启动定时,A口入,B口出 8155编程举例
读写8155存储单元 MOV DPTR, #7E60H MOVX A,@DPTR MOV A,#20H MOV DPTR, #7E30H MOVX @DPTR, A
二. 8255A接口芯片 1. 8255A的结构与引脚 PA口:8位数据输 出锁存器与缓冲 器,8位数据输 入锁存器。 PB口:8位数据输 出锁存器与缓冲 器,8位数据输 入缓冲器。 PC口:8位数据输 出缓冲器,8位 数据输入缓冲器。 图7-41 8255A的内部结构
3. 8255A的控制字和C口置位/复位字 (1) 工作方式选择控制字
1)方式0 基本输入/输出方式,无条件I/O数据传输。 A口,B口,C口(上半部、下半部)均可分别设置为 输入或输出。输出锁存,输入不锁存。 例 设8255A的控制寄存器地址是 FF7FH,令A口和C口 的高4位工作于方式0输出,B口和C口的低4位工作于方 式0输入,写出初始化程序。 MOV DPTR, #0FF7FH MOV A, #10000011B MOVX @DPTR, A 4. 8255A的工作方式
选通输入/输出方式,A口,B口均可在方式1下工作。C选通输入/输出方式,A口,B口均可在方式1下工作。C 口此时用作A、B口的联络线, 能以中断方式传送数据。 (1)方式1输入 三根联络线: /STB: 选通输入,低电平有效,由外设发出的信号。 IBF: 输入缓冲器满,高电平有效,由8255A发出。 INTR: 中断请求信号,高电平有效,由8255A发出。 一个中断许可位: INTE A: A口中断允许,由PC4置位/复位控制 INTE B: B口中断允许,由PC2置位/复位控制 2) 方式1
① /STBA有效,输入设备将数据送至A口。 ② 8255A将数据存入输入缓冲器,并置位IBFA,通知外设。 ③ 8255A检测到/STBA的上升沿,且INTEA=1 & IBFA=1, 置位INTRA, 发出中断请求信号。 ④ 8031响应中断后,用读指令取走数据,并复位IBFA和INTRA。 PA7~PA0 A 选通输入工作原理
三根联络线: /OBF: 输出缓冲器满,低电平有效,由8255A发出。由 写信号/WR置0,/ACK置1。 /ACK: 外设应答信号,低电平有效,由外设发出的信 号。 INTR: 中断请求信号,高电平有效,由8255A发出。 一个中断许可位: INTE A: A口中断允许,由PC6置位/复位控制 INTE B: B口中断允许,由PC2置位/复位控制 (2) 方式1输出
① 8031用写指令将数据送至B口的输出锁存器(复位INTRB ),8255A将/OBFB变为低电平。 ② 外设从B口取走数据,并使/ACK变低,复位/OBFB。 ③ 8255A检测到/ACKB的上升沿,且INTEB=1 & /OBFB=1, 置位INTRB, 发出中断请求信号。 ④ 8031响应中断后,用写指令送新数据,并复位INTRB。 选通输出工作原理
3) 方式2 双向数据传送模式,只有A口能以此方式工作。实际上是 方式1的输入、输出在A口的组合。 图7-44 方式2输入/输出联络信号