本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术

Slides:



Advertisements
Similar presentations
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
Advertisements

第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
8051 指令.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
单片机原理与应用.
第8章 AT89S52单片机外部 存储器的扩展 1.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
第七章 MCS-51系统扩展 一、程序存储器扩展
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
第8章 PCH中的常规接口.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第七章 定时/计数器.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
5-6 串列埠模式0輸出埠擴充實習.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
第6章 存储器接口 6.1 存储器概述 6.2 半导体存储器 6.3 MCS-51单片机存储器扩展.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第1章 微型计算机基础.
Presentation transcript:

本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术 单片机显示器接口技术 单片机打印机接口技术 课时安排:7个课时

第7章 单片机I/O扩展及应用 7.1 单片机为什么需要I/O扩展 7.2 单片机简单I/O扩展 7.3 8255A可编程通用并行接口芯片 7.4 8155带RAM和定时器/计数器的可编程并行 接口芯片 7.5 8279可编程键盘/显示器接口芯片 7.6 MCS-51单片机键盘接口技术 7.7 MCS-51单片机显示器接口技术 7.8 MCS-51单片机打印机接口技术 思考题

7.1 单片机为什么需要I/O扩展 7.1.1 I/O口的直接使用 7.1.2 为什么要扩展I/O接口 7.1.3 I/O扩展的相关技术

7.1.1 I/O口的直接使用 1.无条件传送 ~ P1.0~P1.3 输入开关状态, 经P1.4~P1.7驱 动发光二极管, K0 K1 K2 K3 L3 L2 L1 L0 图7-1 简单I/O应用电路连接 P1.0~P1.3 输入开关状态, 经P1.4~P1.7驱 动发光二极管, 使发光二极管显 示开关的状态。

2.中断方式数据传送 ~ 中断方式 实现上述同样 的功能。由开 关K在INT0端 口处产生外部 中断请求0,脉 冲边沿触发。 只要拨动开关 K,就读取K0 ~K3的状态, 驱动L0~L3的 亮灭。 P1.0 P1.3 P1.4 P1.7 ~ 开关 K0 K1 K2 K3 发光二极管 L3 L2 L1 L0 INT0 +5V K 图7-2 中断方式的简单I/O电路连接

ORG 8000H START: AJMP MAIN ORG 8003H AJMP EXTR ORG 8030H MAIN: SETB IT0 SETB EX0 SETB EA HERE: AJMP HERE ORG 8200H P1 EQU 90H EXTR: MOV A, #0FH MOV P1, A MOV A, P1 CPL A ANL A, #0FH SWAP A RETI

7.1.2 为什么要扩展I/O接口 1.单片机本身接口功能有限 2.单片机控制应用中的复杂接口要求 3.扩展I/O接口电路的功能 例如速度差异大、设备种类繁多、数据信号形式多种多 样。 3.扩展I/O接口电路的功能 例如速度协调、输出数据锁存、输入数据三态缓冲、数 据转换。

7.1.3 I/O扩展的相关技术 1.接口与端口 接口——是指计算机与外设之间在数据传送方面的联系, 因为其功能是通过电路实现的,因此称为接口电路。 在接口电路中,通常包含有数据寄存器、状态寄存器、 命令寄存器等,使得接口电路实现数据I/O传送过程中的界 面功能。 端口——通常把接口电路中那些可编址并能进行读或写 操作的寄存器称为端口(Port )。

对于输出设备的接口电路:要提供锁存器,当允许接收 2.数据总线隔离技术 数据总线连接着多个数据输入设备和多个数据输出设备, 但是在任一时刻,只能进行一个源和负载的数据传送,其它 不参与的设备在电性能上必须同数据总线隔开,这就需要解 决数据总线的隔离问题。 对于输出设备的接口电路:要提供锁存器,当允许接收 输出数据时闩锁打开,当不允许接收输出数据时闩锁关闭。 对于输入设备的接口电路:要使用三态(高电平、低电 平、高阻抗)缓冲电路,当三态缓冲器的输出为高或低电平 时,就是对数据总线的驱动状态;当三态缓冲器的输出为高 阻抗时,就是对总线的隔离状态。在隔离状态下,缓冲器对 数据总线不产生影响。

独立编址:即把I/O和存储器分开进行编址。这样在一个 在计算机中,凡是需要进行读/写操作的设备都存在编址 问题。在单片机中,有两个需要编址的子系统——即存储器和 接口电路。常用的编址方式有两种:独立编址、统一编址。 独立编址:即把I/O和存储器分开进行编址。这样在一个 单片机系统中就形成了两个独立的地址空间(存储器空间和 I/O地址空间),从而使存储器读/写操作和I/O操作是针对两 个不同的存储空间的数据操作。 统一编址:即把I/O接口中的寄存器和存储器中的存储单 元同等对待。即统一的地址空间既供存储器使用,又供I/O使 用。MCS-51单片机使用的就是统一编址方式。

7.1.4 单片机I/O控制方式 一个计算机系统的组成,除了CPU、存储器 外,还必须有外部设备。计算机通过输入/输出设 备和外界进行通信。计算机所用的数据以及现场 采集的各种信息都要通过输入设备送到计算机; 而计算的结果和计算机产生的各种控制信号又需 通过输出设备输出到外部设备。

又称同步传送,CPU和外设之间没有控制联络,传送比 较简单,但可靠性差。当外设任何时候都处于“准备好”状态 时就可以采用这种传送方式。 公共汽车方式 1. 无条件传送 又称同步传送,CPU和外设之间没有控制联络,传送比 较简单,但可靠性差。当外设任何时候都处于“准备好”状态 时就可以采用这种传送方式。 专车方式 2. 查询式传送 又称异步传送,CPU不断查询外设,得到“准备好”的信 息再进行数据传送,否则就等待。优点是可以很好地解决 CPU和外设地速度匹配问题。

利用CPU的中断功能,外设可以通过I/O端口提出中断请 求, 得到响应后在中断服务子程序中完成与CPU的数据交换。 TAXI方式 3. 中断传送 利用CPU的中断功能,外设可以通过I/O端口提出中断请 求, 得到响应后在中断服务子程序中完成与CPU的数据交换。 中断方式可以使CPU和多个外设各自并行工作,避免了CPU 不必要的等待和查询,大大提高了CPU的工作效率。且该方 式的实时性较好,适合于实时控制系统。 专列方式 4. DMA传送 DMA的含义是直接存储器存取,是以数据块为单位进行 数据传送,数据传送过程由DMA控制器控制完成,CPU不进 行干预,并且此时CPU让出三总线,当数据传送完成后, CPU再接管三总线。

7.2 单片机简单I/O扩展 1.简单输入口扩展 简单输入口扩展功能单一,只用于解决数据输入的缓冲 问题,实际就是一个三态缓冲器,以达到当输入设备被选通 时,使数据源能与数据总线直接连通;而当输入设备处于非 选通状态时,则把数据源与数据总线隔离,缓冲器输出呈高 阻抗状态。 通常使用芯片如74LS244来实现对输入数据的三态缓冲。 74LS244内部有2个4位的三态缓冲器,因此一片74LS244可以 扩展一个8位输入口(教材P175 图7.9)。

2.简单输出口扩展 输出口的主要功能是进行数据保持,或者说是 数据锁存。所以简单输出口扩展应使用锁存器芯片 实现。 通常使用芯片74LS377,该芯片是一个具有“使 能”控制端的8D锁存器(教材P177 图7.13)。

7.3 8255A可编程通用并行接口芯片 7.3.1 8255A 的内部结构与引脚 7.3.2 8255A的工作方式 7.3.3 8255A的控制字及初始化 7.3.4 8255A与系统的连接 7.3.5 8255A应用举例 思考题

7.3.1 8255A 的内部结构与引脚 8255A可编程并行输入/输出接口芯片是Intel公 司生产的标准外围接口电路。具有40条引脚,采用 双列直插式封装。它有A、B、C 三个端口,可以 通过编程的方法来设定端口的各种I/O功能。由于 它功能强,又能方便地与各种微机系统相接,而且 在连接外部设备时,通常不需要再附加外部电路, 所以得到了广泛的应用。

2) A组和B组控制电路:这是两组根据CPU的命令字控 可以通过软件将它们分别作为输入端口或输出端口,不过这3 个端口在不同的工作方式下有不同的功能及特点(如表7-2)。 2) A组和B组控制电路:这是两组根据CPU的命令字控 制8255A工作方式的电路。分别决定两组的工作方式,也可根 据CPU的命令字对端口C的每1位实现按位“复位”或“置位”。   A组控制电路控制端口A和端口C的高半字节(PC7~PC4)。   B组控制电路控制端口B和端口C的低半字节(PC3~PC0)。

图7-15 8255A的内部结构图

表7-2 8255A端口功能表

2. 8255A的芯片引脚(如图7-16) (1) 与外设相连接的有:PA7~PA0:A口数据线   PB7~PB0:B口数据线 PC7~PC0:C口数据线 (2) 与CPU相连接的有:D7~D0:8255A的数据线     RESET:复位信号 :片选信号    :读信号 :写信号 CS RD WR A1、A0:端口选择信号(表7-3)

图7-16 8255A的芯片引脚图

表7-3 8255A端口选择表

7.3.2 8255A的工作方式 图7-17 8255A的3种工作方式 (a)方式0; (b)方式1; (c)方式2

1. 方式0(基本输入/输出方式) 2. 方式1(选通输入/输出方式) 这种工作方式不需要任何选通信号,A口、B口及C口的 高4位和低4位都可以设定为输入或输出。 2. 方式1(选通输入/输出方式) 在这种方式下,A、B、C三个口将分为两组。A组包括 A口和C口的高4位,A口可由编程设定为输入口或输出口,C 口的高4位则用来作为输入/输出操作的控制和同步信号;B组 包括B口和C口的低4位, B口可由编程设定为输入口或输出口, C口的低4位则用来作为输入/输出操作的控制和同步信号。

图7-18 方式1下的信号定义 (a)A口、B口均为输入时;(b)A口、B口均为输出时

② IBF(Input Buffer Full):输入缓冲器满信号 ① STB(Strobe):选通信号 外设发出,送给8255A。 作用是将外设送来的数据锁存到8255A的输入端口。 ② IBF(Input Buffer Full):输入缓冲器满信号 8255A 发出,送给单片机。 当外设送来的数据送入输入端口后,8255A自动发出IBF,通知单片机可以来读取数据了。 ③ INTR(Interrupt Request):中断请求信号 8255A 发出,送给单片机。 用来向CPU发出中断申请。

④OBF(Output Buffer Full):输出缓冲器满信号 8255A发出,送给外设。 表示CPU送来的数据已进入8255A输出端口,可用来通知外设把数据取走。 ⑤ ACK:外设响应信号 外设发出,送给8255A。 作用是通知 8255A,输出端口的数据已被外设取走,可以传送下一个数据。

3. 方式2(双向数据传送方式) 这种工作方式下,A口为8位双向数据口,C口的PC3~ PC7用来作为输入/输出的控制同步信号。如下图所示, 5 | 19 方 式 2 下 的 信 号 定 义

7.3.3 8255A的控制字及初始化 1. 8255A的控制字 1) 工作方式控制字:用于确定各口的工作方式及数据   1) 工作方式控制字:用于确定各口的工作方式及数据 传送方向,其格式如图7-20(a)所示。 2) C口置位/复位控制字:可以很方便地使C口8位中的 任一位清0或置1,该控制字的格式如图7-20(b)所示。D7位 为该控制字的标志位,D7=0为C口置位/复位控制字。

图7-20 8255A控制字格式 (a)工作方式控制字; (b)C口置位/复位控制字

2. 8255A的初始化 8255A初始化的内容就是向控制寄存器写入工作方式控 制字或C口置位/复位控制字。这两个控制字可按同一地址写 入且不受先后顺序限制。由于两个控制字因标志位的状态不 同,因此8255A能加以区分。 例:设置8255A的A口为方式0输入,B口为方式0输出,C 口高位部分为输出、低位部分为输入,设控制寄存器的地址 为03FFH。试编程对8255A进行初始化。

解:根据题意有,D0=1:C口低半部输入; D1=0:B口输出; D2=0:B口方式0; D3=0:C口高半部输出; D4=1:A口输入; D6D5=00:A口方式0; 因此8255A的工作方式控制字为10010001B即91H。 初始化程序段为: MOV DPTR,#03FFH MOV A,#91H MOVX @DPTR,A

7.3.4 8255A与系统的连接 8255A是Intel公司专为其主机配套设计制造 的标准化外围接口芯片,它与MCS-51单片机的 连接是比较简单方便的。图7-21所示为采用线选 法在8051单片机外围扩展8255A。

图7-21 8051与8255A的连接

上图中,P0口为地址/数据复用口。数据通过P0口直接传 送,地址的低8位通过锁存器74LS373得到,地址的高8位则由 P2口传送。现采用线选法,地址线P2.7作为线选信号,直接与 8255A的片选端 相连,而A1、A0则与地址的最末2位相连。 于是可得到8255A各个端口的地址如下表所示, CS 表7-4 8255A各端口的地址  

7.3.5 8255A应用举例 例1:图7-21中,8255A的PA口接一组开关、PB口接一 分析:由图可知,8255A的PA口、PB口、PC口、控制口 的地址分别为0000H、0001H、0002H、0003H(或7FFCH、 7FFDH、7FFEH、7FFFH)。PA口选择方式0,输入。PB 口选择方式0,输出。PC口没有作特别限制,故8255A的方式 控制字为:10010000B,即98H。

MOV DPTR, #7FFFH MOV A, #98H MOVX @DPTR, A MOV DPTR, #7FFCH MOVX A, @DPTR MOV DPTR, #7FFDH MOVX @DPTR, A ; 指向8255A控制字的地址 ; 把方式控制字写到累加器A中 ; 给8255A送方式控制字 ; 指向8255A的PA口地址 ; 从PA口读入开关的状态 ; 指向8255A的PB 口地址 ; 把开关的状态从PB口输出, 给 ; 指示灯显示

CS 例2:8255A作为连接打印机的接口。要求编制打印50 个字符的程序,该数据存于片内RAM从20H开始的50个连 续单元中。 P0.7直接与8255A的 端相连(通过地址锁存器)。 CS    8255A的端口地址:A口为7CH,B口为7DH,C口为7EH, 控制口为7FH(对悬空的地址线取“1”)。   由于A口输出;C口低字节输出、高字节输入;B口没有 使用。A口选择方式0。故控制字为:10001000B,即88H。

图7-22 8255A连接打印机的接口电路 8255A

解:根据题意,编制程序如下: MOV R0,#7FH ;指向8255A的控制口 MOV A,#88H ; A口输出,C口低出高入 注:打印机各信号线 DB0~DB7:数据线,单向传输,由单片机输入给打印机。 STB(STROBE):数据选通信号。在该信号的上升沿,数据线上的8位并行数据被打印机读入机内琐存。 BUSY:打印机忙状态信号。当BUSY=1时,表示打印机正忙于处理数据,此时,打印机不得使 STB=0。 解:根据题意,编制程序如下: MOV R0,#7FH ;指向8255A的控制口 MOV A,#88H ; A口输出,C口低出高入 MOVX @R0, A ;送入方式字 MOV R1,#20H ;R1指向数据区首址 MOV R2,#32H ;送数据块长度 LP1:MOV R0,#7EH ;指向C口

LP2:MOVX A, @R0 ;读入C口信息 JB ACC.7, LP2 ;若BUSY=1,继续查询 MOV R0, #7CH ;指向A口 MOV A, @R1 ;取RAM数据(片内到片外的数据传送) MOVX @R0, A ;数据输出到A口 INC R1 ;数据指针加1 MOV R0, #7FH ;指向控制口 MOV A, #00H ; C口置位/复位命令字(PC0=0) MOVX @R0, A ;在STB引脚产生低电平 MOV A, #01H ; 改变C口置位/复位命令字(PC0=1) MOVX @R0, A ;在STB引脚产生高电平 DJNZ R2, LP1 ;未完,则反复

7.4 8155带RAM和定时器/计数器 的可编程并行接口芯片 Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还可以提供256 B的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。

1. 8155的结构和引脚 8155有40个引脚,采用双列直插封装。 图7-9 8155的引脚图和结构框图

我们对8155的引脚分类说明如下: (1) 地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总线,常和51单片机的P0口相连,用于分时传送地址数据信息,当ALE=1时,传送的是地址。 (2) I/O口总线(22条):PA0~PA7、PB0~PB7分别为A、B口线,用于和外设之间传递数据;PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线。 (3) 控制总线(8条) RESET:复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。

RD, WR :读/写线,控制8155的读、写操作。 ALE:地址锁存线,高电平有效。它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。因此,单片机的P0口和8155连接时,无需外接锁存器。 CE :片选线,低电平有效。 IO/M:RAM或I/O口的选择线。当=0时,选中8155的256B RAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。

TIMERIN、TIMEROUT:定时/计数器的脉冲输入、输出线。TIMERIN是脉冲输入线,其输入脉冲对8155内部的14位定时/计数器减1;为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。

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

3. 作扩展I/O口使用 当 CE=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分,表7-5为地址分配情况。 表7-5 6个内部寄存器的地址分配表 AD7~AD0 选中寄存器 A7 A6 A5 A4 A3 A2 A1 A0 × × × × × 0 0 0 × × × × × 0 0 1 × × × × × 0 1 0 × × × × × 0 1 1 × × × × × 1 0 0 × × × × × 1 0 1 内部命令/状态寄存器 PA口 PB口 PC口 定时/计数器低8位寄存器 定时/计数器高8位寄存器

(1) 命令寄存器 和接口芯片8255一样,芯片8155 I/O口的工作方式的确 定也是通过对8155的命令寄存器写入控制字来实现的。 8155控制字的格式如图7-10所示。 命令寄存器只能写入不能读出,也就是说,控制字只能 通过指令MOVX @DPTR, A或MOVX @Ri, A写入命令寄存 器。

图7-10 8155的控制字

(2) 状态寄存器:状态寄存器中存放有状态字,状态字反映了8155的工作情况,状态字的各位定义如图7-11所示. 图7-11 8155的状态字

4. I/O口的工作方式 当使用8155的三个I/O端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字,如图7-10所示。其中,A、B口可以工作于基本I/O方式或选通I/O方式,C口可工作于基本I/O方式,也可以作为A、B选通方式时的控制联络线。 方式1、2时,A、B、C口都工作于基本I/O方式,可以直接和外设相连,采用“MOVX”类的指令进行输入/输出操作。 方式3时,A口为选通I/O方式,由C口的低三位作联络线,其余位作I/O线;B口为基本I/O方式。

方式4时,A、B口均为选通I/O方式,C口作为A、B口的联络线。其逻辑组态如图7-12所示。 图7-12 8155方式4时的逻辑结构

C口的工作方式和各位的关系见表7-6 。 表7-6 C口的工作方式 方式1 方式2 方式3 方式4 PC0 PC1 PC2 PC3 PC4   方式1 方式2 方式3 方式4 PC0 PC1 PC2 PC3 PC4 PC5 全部为 输入 输出 A口中断请求 A口缓冲器满 A口选通 B口中断请求 B口缓冲器满 B口选通 表7-6 C口的工作方式

5. 作定时/计数器使用 8155的可编程定时/计数器是一个14位的减法计数器,在TIMERIN端输入计数脉冲,计满时由 输出脉冲或方波,输出方式由定时器高8位寄存器中的M2、M1两位来决定。当TIMERIN接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率! 定时/计数器的初始值和输出方式由高、低8位寄存器的内容决定,初始值14位,其余两位定义输出方式。其中,低8位寄存器存放计数初始值的低8位,高8位寄存器的格式如下: 输出方式 计数初始值高6位 M2 M1

1) 定时/计数器的输出方式 定时器的输出方式见表7-7。 表7-7 定时器的输出方式 M2 M1 方 式 波 形 0 0 0 1 1 0 定时器的输出方式见表7-7。  表7-7 定时器的输出方式 M2 M1 方 式 波 形 0 0 0 1 1 0 1 1 在一个计数周期输出单次方波 连续方波 在计满回0后输出的单个脉冲 连续脉冲

若定时器不工作,则开始计数;若定时器正在计数,则计满回0后按新输入的长度值开始计数 2) 定时/计数器的工作 8155对内部定时器的控制是由8155控制字的D7、D6位决定的(见图7-11),现总结如表7-8所示。 8155的控制字 定时/计数器工作情况 D7 D6 0 0 无操作,即不影响定时器的工作 0 1 1 0 立即停止定时器的计数 定时器计满回0后停止计数 1 1 若定时器不工作,则开始计数;若定时器正在计数,则计满回0后按新输入的长度值开始计数 表7-8 定时/计数器的工作情况

【例7-1】编写8155定时器作100分频器的程序。设8155命令寄存器的地址为0000H,定时器低字节寄存器的地址为0004H,定时器高字节寄存器的地址为0005H。 编程如下: ORG 1000H MOV DPTR,#0004H ;指向定时器低字节寄存器地址 MOV A,#64H MOVX @DPTR, A ;装入定时器初值低8位值 INC DPTR ;指向定时器高字节寄存器地址 MOV A, #40H MOVX @DPTR,A ;设定时器输出方式为连续方波 MOV DPTR, #0000H ;指向命令寄存器地址 MOV A, #0C0H MOVX @DPTR, A ;装入命令字,开始计数 SJMP $

6. MCS-51单片机和8155的接口 MCS-51和8155的接口非常简单,因为8155内部有一个8位地址锁存器,故无需外接锁存器。在二者的连接中,8155的地址译码即片选端可以采用线选法、全译码等方法,这和8255类似。在整个单片机应用系统中要考虑与片外RAM及其它接口芯片的统一编址,确定8155的相关地址。图7-13为一个连接实例。 

8051 8155 图7-13 8155和8051的接口电路 ALE RD PA WR P2.1 CE PB P2.2 IO/M 8 P0 RST RESET ALE RD WR P0 AD0~AD7 CE IO/M P2.1 P2.2 +5 V PA PB PC 8 图7-13 8155和8051的接口电路

根据上述、的连接关系,可以确定地址如下: 8051: A15 A14 A13 A12 A11 A10 A9 A8 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 8155的 IO/M CE RAM: × × × × × 0 0 × I/O口: × × × × × 0 0 ×

8051: A7 A6 A5 A4 A3 A2 A1 A0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 8155: AD7 AD0 0 0 0 0 0 0 0 0 ... ... ... ... ... ... ... ... 1 1 1 1 1 1 1 1 I/O口: × × × × × × × × … … … … … … … … × × × × × × × ×

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

7.5 8279可编程键盘/显示器接口芯片 8279是可编程的键盘显示接口芯片,它能自动 完成键盘的扫描输入和LED扫描显示输出。 7.5 8279可编程键盘/显示器接口芯片 8279是可编程的键盘显示接口芯片,它能自动 完成键盘的扫描输入和LED扫描显示输出。 键盘部分提供的扫描方式,可以和具有64个触 点的键盘或传感器相连。能自动清除按键抖动,并 实现多键同时按下的保护。 显示部分按扫描方式工作,可以连接8位或16 位LED显示块。

一、8279的电路逻辑 1、芯片接口控制逻辑 8279的电路逻辑分为芯片接口控制逻辑、键盘接口控制 逻辑、显示器接口控制逻辑三部分。 芯片接口控制逻辑是8279和单片机的接口部分。主要包括: 数据缓冲器 -用于8279和单片机之间的数据传送。 I/O控制电路 - 用于接收单片机方面送来的控制信号,进而产生 8279内部的控制信号。 中断请求产生电路 - 如果有按键按下,则向单片机产生中断请求信号。

2、键盘接口控制逻辑 键盘接口控制逻辑是8279和键盘的接口部分。主要包括: 扫描电路 -用于为键盘提供行扫描输出信号。有两种输出形式, 即内部译码方式、外部译码方式。 扫描回送电路 - 输入每次扫描的列检测输入信号,以搜索闭合键。 去抖动及键码生成电路 - 大约延时10ms去抖动。并由键码生成电路将该键的行 列号、换挡键、控制键等状态结合起来,生成闭合键 的键码,送入FIFO 存储器区中。

键盘存储器区 FIFO RAM - 包括8个先进先出的存储单元,用于存储闭合键的键 码数据。 时序和控制逻辑 - 用于对键盘扫描进行控制。

3、显示器接口控制逻辑 显示器接口控制逻辑是8279和LED显示器的接口部分。主 要包括: 显示存储区 - 8279可以连接8位或16位的LED显示器。为给每位LED 提供显示数据,在8279芯片内部有一个16×8的RAM存 储区,其中每一个字节的RAM单元对应一位LED。 显示缓冲器 - 用于为显示器提供段控数据。使用时,8279自动对显 示器扫描,将显示缓冲器中的数据输出在LED上显示 出来。

二、8279内部结构和引脚 下图是8279的内部结构图,它主要分为6个部分: (1)I/O控制及数据缓冲器; (2)控制与定时寄存器及定时控制; (3)扫描计数器; (4)回复缓冲器,键盘反弹与控制; (5)FIFO传感器RAM及其状态寄存器; (6)显示RAM和显示地址寄存器。

数据缓冲器 I/O控制 FIFO/传感器 RAM的 状态寄存器 控制与定 时寄存器 8×8FIFO/ 传感器RAM 键盘反弹 与控制 定时与 扫描计数器 回送 显示寄存器 显示 地址 寄存器 16×18 RAM D0~D7 RD WR CS A0 IRQ 时钟复位 OUTA0~OUTA3 OUTB0~OUTB3 BD SL0~SL3 RL0~RL7 SHIFT STB

键盘 接口 8279 CPU 显示 RL0~RL7 SHIFT CNTL/STB SL0~SL3 OUTA0~OUTA3 OUTB0~OUTB3 BD IRQ DB0~DB7 RD WR CS A0 RESET CLK 键盘 接口 显示 CPU

二、8279的命令字和状态字 8279有8个可编程的命令字,用来设定键盘和LED显示器的工作方式,实现对各种数据的读、写操作。 有1个状态字,用于反应键盘的FIFO RAM的工作状态。

1、键盘/显示方式设置命令 D K D4 D3:设定显示方式 00 8个字符显示,左入口; 01 16个字符显示,左入口; D K D7 D6 D5 D4 D3 D2 D1 D0 D4 D3:设定显示方式 00 8个字符显示,左入口; 01 16个字符显示,左入口; 10 8个字符显示,右入口; 11 16个字符显示,右入口。 D2 D1 D0:设定七种键盘工作方式 000 编码扫描,双键锁定; 001 译码扫描,双键锁定; 010 编码扫描,N键轮回; 011 译码扫描,N键轮回; 100 编码扫描传感器矩阵; 101 译码扫描传感器矩阵; 110 选通输入,编码显示扫描; 111 选通输入,译码显示扫描。

2、编程时钟命令 3、读FIFO传感器RAM命令 1 P D4 D3 D2 D1 D0:设定对CLK端输入时钟的分频次数N N = 2~31 1 P D7 D6 D5 D4 D3 D2 D1 D0 D4 D3 D2 D1 D0:设定对CLK端输入时钟的分频次数N N = 2~31 3、读FIFO传感器RAM命令 1 AI X A D7 D6 D5 D4 D3 D2 D1 D0 D2 D1 D0:要读取的传感器RAM地址。 D4:自动地址增量标志,每读出一字节后,AAA地址自动加1。

4、读显示RAM命令 5、写显示RAM命令 1 AI A D3 D2 D1 D0:用来寻址显示RAM的16个存储单元。 1 AI A D7 D6 D5 D4 D3 D2 D1 D0 D3 D2 D1 D0:用来寻址显示RAM的16个存储单元。 D4:地址自动增量标志。 5、写显示RAM命令 1 AI A D7 D6 D5 D4 D3 D2 D1 D0 D3 D2 D1 D0:将要写入的显示RAM地址。 D4:地址自动增量标志。

6、显示禁止写入/消隐命令 7、结束中断/错误方式设置命令 1 X IW/A IW/B BL/A BL/B X IW/A IW/B BL/A BL/B D7 D6 D5 D4 D3 D2 D1 D0 D3 D2:A、B组显示RAM写入屏蔽位,为1时显示RAM禁止写入。 D1 D0:消隐设置位。为1时输出消隐,为0时恢复显示。 7、结束中断/错误方式设置命令 1 E X D7 D6 D5 D4 D3 D2 D1 D0 D4:为1时有效。

8、清除命令 1 CD CF CA D4 D3 D2:用于设置清除RAM方式。 10X:将显示RAM全部清“0”; CD CF CA D7 D6 D5 D4 D3 D2 D1 D0 D4 D3 D2:用于设置清除RAM方式。 10X:将显示RAM全部清“0”; 110: 将显示RAM清成20H; 111: 将显示RAM全部清“1”。 D1:用来置空FIFO RAM。 D0:为总清特征值。它兼有CD和CF的联合效用。

9、8279的状态字 DU S/E O U F N D7:为1表示显示无效。 D5、D4:数据超出,不足标志。 D3:为1时表示FIFO RAM中8个数据已满。 D2、D1、D0:指明FIFO RAM中的数据个数。

三、8279和8051的接口 下图是8051、8279与键盘、LED显示器的接口电路。 当有键按下时,8279可用中断方式通知8051。编程实现功能为:当有键00H~0FH按下时,完成键值获取,并用LED输出显示键值。

. 8279 位驱动 Y0 Y1 Y2 Y4 Y5 Y3 A B C SL0 SL1 SL2 段 驱 动 8051 D0 D7 ALE RL0 . RL7 Y0 Y1 Y2 Y4 Y5 Y3 A B C SL0 SL1 SL2 段 驱 动 8051 74LS373 CLK A0 D0 D7 ALE P0.0 P0.7 8279 CE RD WR IRQ P2.5 INT0 OUTA3 OUTB0 74LS138

7.6 MCS-51单片机键盘接口技术 7.6.1 按键工作原理 7.6.2 独立式按键 7.6.3 矩阵式按键 7.6.4 键盘的工作方式

7.6.1 按键工作原理 1.按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。 按键照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 编码键盘需要较多的硬件,价格较贵,一般的单片机应用系统较少采用,而主要采用非编码键盘。

2.键输入原理 在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。 对于一组键或一个键盘,总有一个接口电路与CPU相连。 CPU可以采用查询或中断方式了解有无将键输入,并检查是 哪一个键按下,将该键号送入累加器ACC,然后通过跳转指 令转入执行该键的功能程序,执行完后再返回主程序。

3.按键结构与特点  图7-14 按键触点的机械抖动 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图7-14所示,抖动时间的长短与开关的机械特性有关,一般为510 ms。

在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。现主要介绍软件去抖的方法。 软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。

4.按键编码 5.编址键盘程序 一组按键或键盘将采用某种编码方式,转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。 (1) 检测有无按键按下,并消除抖动。 (2) 每次处理一个按键。即其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。

7.6.2 独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 7.6.2 独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态,如图7-15所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。

7-15 独立式按键电路

2. 独立式按键的软件结构 独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。

7.6.3 矩阵式按键 单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。 1. 矩阵式键盘的结构及原理 7.6.3 矩阵式按键   单片机系统中,若使用按键较多时,通常采用矩阵式(也称行列式)键盘。 1. 矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图7-16所示。 由图可知,一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。

图7-16 矩阵式键盘结构

. 下图即是 8051 与行列式键盘的接口电路。其中 P1 口作 键盘接口,P1.0~P1.3 作键盘的行扫描输出线,P1.4~P1.7 作列检测输入线。 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8051 +5V 10kΩ . 图7-17 8051与行列式键盘的接口电路

2. 键盘扫描程序的步骤 (1)行扫描法: 逐行扫描。单片机首先使P1.0接地,P1.1~P1.7为“1”, 即向P1口发送扫描码 0FEH,接着读入列检查信号, 若P1.4~P1.7全为“1”,表示不在第1行。接着使P1.1 接地, ……,这样逐行发“0”扫描码,直到找到按下键 所在行、列或查出无键按下。

线反转法比扫描法要简练,无论被按键是处于哪列,均可经过两步即能获得此按键所在的行列值: (2)线反转法: 线反转法比扫描法要简练,无论被按键是处于哪列,均可经过两步即能获得此按键所在的行列值: 第一步:将行线P1.0~P1.3置低,列线置高,读列线状态,值为低的列即为按键按下的列。 第二步:将列线P1.4~P1.7置低,行线置高,读行线状态,值为低的行即为按键按下的行。

(3)对得到的行号和列号进行译码,得到机器 内部能够识别的键值。 例如:找到闭合键在第1行,第3列。如果每行 有4个按键,则该闭合键的键值为“1×4+3=7”。 得出键号后,就可以转入相应处理程序。

(4)按键的抖动处理。当用手按下一个键时,往往会出 现所按键在闭合位置和断开位置之间跳几下才能稳定到闭合 状态,释放一个键时,也有类似情况,我们称这种现象为键 抖动。若抖动问题不解决,就会引起对闭合键的多次读入。 对于键抖动最方便的解决方法是:当发现有键按下时, 不是立即进行逐行扫描,通常是延时 3-10ms 后再进行,这 样,延时一段时间后读取的就是稳定的按键信息。 t1 t0 t2 t3 t4

7.6.4 键盘的工作方式 键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。 (1) 编程扫描方式 编程扫描方式是利用CPU完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。在执行某一个键功能程序时,CPU不再响应其它键输入要求,直到CPU重新扫描键盘为止。

键盘扫描程序一般应包括以下内容: (1) 判别有无键按下。 (2) 键盘扫描取得闭合键的行、列值。 (3) 用计算法或查表法得到键值。 (4) 判断闭合键是否释放,如没释放则继续等待。 (5) 将闭合键键号保存,同时转去执行该闭合键的功能。

(2) 定时扫描方式 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。定时扫描方式的硬件电路与编程扫描方式相同,程序流程图如图7-18所示。

图7-18 定时扫描方式程序流程图

(3) 中断扫描方式 采用上述两种键盘扫描方式时,无论是否按键,CPU都要定时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入,因此,CPU经常处于空扫描状态。 为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。 图7-19是一种简易键盘接口电路。P1.4P1.7是键输出线,P1.0P1.3是扫描输入线。图中的4输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。

具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。 图7-19 中断扫描键盘电路 +5V

键盘行扫法例程 KEYNUM DATA 40H LINE DATA 41H COLUM DATA 42H SCANCODE DATA 43H ISNEWKEY BIT 40H ORG 0000H AJMP MAIN ORG 0003H AJMP INT_0 ORG 0030H MAIN: CLR ISNEWKEY MOV SCANCODE, #0FEH;;;;;初始化变量 SETB IT0 SETB EX0 SETB EA;;;;;;;;;开中断 L1: MOV P1, #0F0H;;;;;设置一次中断触发初始条件 JNB ISNEWKEY, $ MOV A, KEYNUM CPL A MOV DPTR, #TAB_NU MOVC A, @A+DPTR MOV P2, #0FFH MOV P2, A LCALL DELAY SJMP L1 INT_0: LCALL SCA_CALC RETI SCA_CALC: MOV R7, #04H MOV LINE, #00H MOV COLUM, #00H MOV A, SCANCODE LOOP1: MOV P1, A MOV B, P1 JNB B.4, CALCKEY INC COLUM JNB B.5, CALCKEY JNB B.6, CALCKEY JNB B.7, CALCKEY DJNZ R7, SHIFTLA RET SHIFTLA: RL A INC LINE SJMP LOOP1 CALCKEY: LCALL DELAY;延时消抖 MOV B, P1 MOV R6, COLUM INC R6 MOV A, #08H RL A DJNZ R6, $-1 ANL A, B JNZ CALCRET MOV A, LINE ORL A, COLUM CPL A MOV KEYNUM, A SETB ISNEWKEY CALCRET: RET DELAY: MOV R3, #00H DJNZ R3, $

7.7 MCS-51单片机显示器接口技术 7.7.1 LED显示器 7.7.2 静态显示方式 7.7.3 动态显示方式

7.7.1 LED显示器 1. 数码管简介 (1) 数码管结构 七段数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 9、字符A  F、H、L、P、R、U、Y、符号“”及小数点“”。数码管的外形结构如图7-20(a)所示。数码管又分为共阴极和共阳极两种结构,分别如图7-20(b)和图7-20(c)所示。

图7-20 数码管结构图 (a) 外型结构;(b) 共阴极;(c)共阳极

(2) 数码管工作原理 共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

(3) 数码管字形编码 要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。对照图7-20(a),字型码各位定义为:数据线D0与a字段对应,D1与b字段对应……,依此类推。如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮。如要显示“0”,共阳极数码管的字型编码应为:11000000B(即C0H);共阴极数码管的字型编码应为:00111111B(即3FH)。依此类推,可求得数码管字形编码如表7-9所示。

表7-9 数码管字型编码表 字型 共 阳 极 共 阴 极 g f e d c b a 字型码 G 1 C0H 3FH F9H 06H 2 表7-9 数码管字型编码表 显示字符 字型 共 阳 极 共 阴 极 dp g f e d c b a 字型码 G 1 C0H 3FH F9H 06H 2 A4H 5BH 3 B0H 4FH 4 99H 66H 5 92H 6DH 6 82H 7DH 7 F8H 07H 8 80H 7FH 9 90H 6FH A 88H 77H B 83H 7CH C C6H 39H

续表 字型 共 阳 极 共 阴 极 dp g f e d c b a 字型码 G D 1 A1H 5EH E 86H 79H F 8EH 显示字符 字型 共 阳 极 共 阴 极   dp g f e d c b a 字型码 G D 1 A1H 5EH E 86H 79H F 8EH 71H H 89H 76H L C7H 38H P 8CH 73H R CEH 31H U C1H 3EH Y 91H 6EH  BFH 40H . 7FH 80H 熄灭 灭 FFH 00H

7.7.2 静态显示方式 静态显示是指数码管显示某一字符时,相应的发光二极管 恒定导通或恒定截止。 7.7.2 静态显示方式 静态显示是指数码管显示某一字符时,相应的发光二极管 恒定导通或恒定截止。 这种显示方式的各位数码管相互独立,公共端恒定接地 (共阴极)或接正电源(共阳极)。每个数码管的8个字段分 别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字 符即显示出来,并保持不变,直到I/O口输出新的段码。采用 静态显示方式,较小的电流即可获得较高的亮度,且占用CPU 时间少,编程简单,显示便于监测和控制,但其占用的口线多, 硬件电路复杂,成本高,只适合于显示位数较少的场合。

图7-21是一个静态显示的电路图。 可以直接利用单片机的并行输出口或输出琐存芯片,也 可以用单片机串行口扩展多片串入并出的移位寄存器作为静 态显示接口。如图7-21所示,图中在单片机串口处扩展了8片 串入并出琐存器 74LS164,发光二极管采用共阴极接法。

… . 图7-21 静态显示器接口 注:(1)74LS164 是串入并出移位寄存器; TXD RXD MCS-51 74LS164 LED0共阴极 LED1共阴极 LED7共阴极 a b c d e f g . … 1,2 13 12 11 10 6 5 4 3 8 9 图7-21 静态显示器接口 注:(1)74LS164 是串入并出移位寄存器; (2)74LS164 的第1、2引脚是串行输入口;第3、4、5、 6、10、11、12、13引脚是并行输出口; (3)74LS164 的第8引脚是时钟信号输入口;第9引脚是 清零信号输入口。

; 指向存放LED7即将显示的数字的单元地址 ; 指向存放LED7即将显示的数字的单元地址 ; 一帧发送完后自动将TI置1,未发送完时为0 DIR: MOV R7, #08H MOV R0, #7FH DL0: MOV A, @R0 ADD A, #0BH MOVC A, @A+PC MOV SUBF, A DL1: JNB TI, DL1 CLR TI DEC R0 DJNZ R7, DL0 RET SEGTAB: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH DB 77H, 7CH, 39H, 5EH, 79H DB 71H, 40H, 73H, 1CH, 00H ; 定义8个内存单元用来存放待显示的数字 ; 指向存放LED7即将显示的数字的单元地址 ; 指向存放LED7即将显示的数字的单元地址 ; 变址寻址方式中的偏移量 ; 外部 ROM 数据传送指令 MOVC 2 3 1 ; SBUF 是串行口的输出缓冲器 ; 一帧发送完后自动将TI置1,未发送完时为0 ; 软件将TI清零 ; 指向下一位待显示的数据的存储单元地址 ; 检查是否8位数据已经串行发送完毕? ; 子程序返回指令 ; 0, 1, 2, 3, 4 ; 5, 6, 7, 8, 9 ; A, B, C, D, E ; F, -, P, , E ]

7.7.3 动态显示方式 1) 动态显示概念 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。

采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。 图中,数码管采用共阴极LED,8155的A口线经过8路驱动电路后接至数码管的各段。当A口线输出“1”时,驱动数码管发光。8155的B口线经过6路驱动电路后接至数码管的公共端。当C口线输出“0”时,选通相应位的数码管发光。

. 8155 图7-22 动态显示器接口 8051 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA5 PA4 PA3 c d e f g . COM0 COM1 COM2 COM3 COM4 COM5 共阴极显示器 +5V 75452 7407 图7-22 动态显示器接口

DIR: MOV R0, #79H MOV R3, #FEH MOV A, R3 LDO: MOV DPTR, #7F01H MOVX @DPTR, A INC DPTR MOV A, @R0 ADD A, #0DH MOVC A, @A+PC DIR: MOVX @DPTR, A ACALL DL1 INC R0 MOV A, R3 JB ACC.5, LD1 RL A MOV R3, A SJMP LDO LD1: RET SEG: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH DB 77H, 7CH, 39H, 5EH, 79H DB 71H, 40H, 73H, 1CH, 00H DL1: MOV R7, #02H DL: MOV R6, #0FFH DL6: DJNZ R6, DL6 DJNZ R7, DL RET

7.8 MCS-51单片机打印机接口技术

思 考 题 1. 请用线选法在8051外部扩展两块2764芯片, 画出电路连接图 ? 2. 请用译码法在8051外部扩展两块2764芯片, 思 考 题 1. 请用线选法在8051外部扩展两块2764芯片, 画出电路连接图 ? 2. 请用译码法在8051外部扩展两块2764芯片, 画出电路连接图 ? 3. 8255A有哪几种工作方式?怎样选择其工作 方式 ?

√ √ 4. 试编程对8255A进行初始化,使其A口按方 式0输入;B口按方式1输出;C口上半部分按方式0 地址为0EF83H) ? 5. 80c51单片机内部有几个定时器/计数器?它 们是由哪些专用寄存器组成的 √ ? 6. 定时器/计数器用做定时方式时,其定时时 间与哪些因素有关?用作计数时,对外界计数频率 有何限制 √ ?

√ 7. 80c51单片机的定时器/计数器有哪几种工作 方式 ? 8. 在80C51单片机中,已知时钟频率为12MHz, 请编程使 P1.0 和 P1.1 引脚分别输出周期为 2ms 和 500μs 的方波 √ ? 9. 用80C51的定时器测量某正脉冲的宽度,采 用何种方式可得到最大量程?若时钟频率为6MHz, 求允许测量的最大脉冲宽度是多少 ?

1. 采用线选法在8051外部扩展两片2764的连接图如下: 线选法

2. 采用译码法在8051外部扩展两片2764的连接图如下: 译码法

3. 解:8255A有3种工作方式,即方式0、方式1、方式2。 1)方式0(基本输入/输出方式):这种工作方式不需要任何选通信 号,A口、B口及C口的高4位和低4位都可以设定为输入或输出。 2)方式1(选通输入/输出方式):在这种方式下,A、B、C三个口 将分为两组。A组包括A口和C口的高4位,A口可由编程设定为输入口或输 出口,C口的高4位则用来作为输入/输出操作的控制和同步信号;B组包 括B口和C口的低4位, B口可由编程设定为输入口或输出口,C口的低4位 则用来作为输入/输出操作的控制和同步信号。 3)方式2(双向数据传送方式):在这种工作方式下,A口为8位双向 数据口,C口的PC3~PC7用来作为输入/输出的控制同步信号。 8255A的工作方式是通过对控制口输入控制字的方式实现的。方式选 择控制字的格式与定义见书P74页,图5-10。

4. 解:根据题意,可得8255A的控制字为 10010101B,即95H。于是,可编程如下: MOV DPTR, #0EF83H MOV A, #95H MOVX @DPTR, A

5. 80C51单片机内部设有2个16位的可编程定时器/计数 器,简称为T0和T1。它们由特殊功能寄存器TMOD、TCON、 TH0、TL0、TH1、TL1组成。 6. 80C51单片机内部的T/C用作定时功能时,其定时时 间与时钟周期、计数器的长度(如8位、13位、16位等)、定 时初值等因素有关。 作计数功能时,外部数据的最高计数频率为振荡频率 (即时钟周期)的1/24。

7. 80C51单片机的定时器/计数器有4种工作方式: (1)方式0是一个13位的T/C。当TL0的低5位溢出时向 TH0进位,而TH0溢出时将中断标志TF0置“1”,并申请中断。 (2)方式1是一个16位的T/C,操作几乎与方式0相同。 (3)方式2是能重复置初值的8位T/C。该方式具有自动恢 复初值的功能,适合作较精确的定时脉冲信号发生器。 (4)方式3只适用于T0,除了仅用8位寄存器TL0外,其功 能和操作方式与方式0、方式1完全相同。

8. 选用 T1 定时 250μs,工作方式设为 2,用 TL1 作为 8 位定时器,产生 250μs 的定时,定时初值 X 为: X = 256 - = 6 250μs 1μs 故 TH1=TL1=6H,TMOD=20H。编程如下: MOV TMOD, #20H MOV TH1, #06H MOV TL1, #06H SETB TR1 RPTA: MOV R2, #04H RPTB: JNB TF1, $ CLR TF1 CPL P1.1 DJNZ R2, RPTB CPL P1.0 LJMP RPTA

9.(1)将外部脉冲引至 INT0 引脚上,设 T0 为定时器 方式 1,GATE 位置为“1”,TR0 为 1。 一旦 INT0(P3.2)引脚上出现高电平,定时器即开始定 时,也就是它开始对时钟的机器周期进行计数,直至低电平 出现,此时读出 T0 值即可。 (2)由于定时器方式 1 的长度为 16 位,最大计数值为 65536,即正脉冲的宽度最大值不能超过 65536 个机器周期。 如果时钟频率为 6MHz ,允许测量的最大脉冲宽度是: 65536×2μs=131.07ms。