第 5章
80C51的并行端口
80C51并行端口的特点5.4
基本输入 /输出功能5.2
80C51的引脚功能5.1
CPU与外设间数据传送的方式5.5
简单的人机接口5.3
5.1 80C51的引脚功能图 5-1 PDIP40封装 80C51引脚布局图图 5-2 PDIP40封装 80C51全功能逻辑地址符号续表续表续表
5.2 基本输入 /输出功能
5.2.1 80C51与 I/O设备之间的接口信息
1.数据( data)
① 数字量。
② 模拟量。
③ 开关量。
图 5-3 80C51与 I/O之间传送的信息
2.状态( status)
在输入时,有输入设备是否准备好
( ready)的状态信息;在输出时,有输出设备是否有空( empty)的状态信息,若输出设备正在输出,则以忙( busy)指示等。
3.控制( control)
控制信息控制输入 /输出设备启动或停止等。
图 5-4 80C51与外设之间的接口
5.2.2 输出
口输出可使用:
MOV A,数据
MOV P0,A
小程序段:
图 5-5 用发光二极管显示输出的数据
5.2.3 输入
从并行端口输入数据也是很简单的,
可以直接用 MOV指令从指定的端口输入数据。但由于 80C51并行端口的硬件特点,
在从端口输入前,要把端口置为输入方式。
例如:
图 5-6 利用按钮提供信息输入图 5-7 因抖动产生的信号图 5-8 单片机键输入处理流程图图 5-9 主程序流程图
( 1)能实现按键输入并控制几种 LED
显示方式的汇编程序如下:
5.3 简单的人机接口
5.3.1 非编码键盘
( 1)矩阵式键盘工作原理图 5-10 8行 × 4列矩阵式非编码键盘接口电路
( 2)矩阵式非编码键盘接口及程序设计
① 子程序
键盘扫描程序中要调用两个子程序。
DIS显示子程序(程序见后面的 LED显示子程序):该程序具有延时功能,其延时时间为 8ms。
5.3.2 7段 LED显示
1,7段 LED显示器结构与原理图 5-11 7段 LED显示器件显示字符 共阴极段 选码 共阳极段 选码 显示字符 共阴极段 选码 共阳极段 选码
0 3FH C0H A 77H 88H
1 06H F9H b 7CH 83H
2 5BH A4H C 39H C6H
3 4FH B0H d 5EH A1H
4 66H 99H E 79H 86H
5 6DH 92H F 71H 8EH
6 7DH 82H P 73H 82H
7 07H F8H,80H 7FH
8 7FH 80H =,C8H 37H
9 6FH 90H,全灭,00H FFH
表 5-3 LED段选码和显示字符之间的关系
2,LED显示器的两种显示方式
( 1) LED静态显示方式
所谓静态显示就是将 N位共阴极 LED显示器的阴极连在一起接地,每一位 LED的 8
位段选线与一个 8位并行口相连,当显示某一个字符时,相应的发光二极管就恒定地导通或截止。 4个显示管的静态显示电路如图 5-12所示。
( 2) LED动态显示方式
所谓“动态显示”就是用扫描方式一位一位地轮流点亮 LED显示器的各个位。
特点是:将多个 7段 LED显示器同名端的段选线复接在一起,只用一个 8位 I/O端口控制各个 LED显示器公共阴极轮流接地的方法,逐一扫描点亮,使每个 LED显示该位应当显示的字符。恰当地选择点亮 LED
的时间间隔( 1ms~ 5ms),会给人一种视觉暂停效应,似乎多位 LED都在“同时”
显示。
图 5-12 4个显示管的静态 LED显示电路图 5-13 8个 LED动态显示原理图
→ 7F H → B FH → DF H → E FH → F7 H → FB H → FD H → FE H →
循环
3.用软件译码的 8位动态 LED显示接口电路
( 1)软件译码的动态显示硬件接口设计图 5-14 8个 LED动态显示接口电路
( 2) 8位动态 LED显示程序设计
动态显示程序设计要点如下。
① 代码转换。
② 位选码的形成。
图 5-15 LED数字显示缓冲区图 5-16 8位动态 LED显示子程序流程图
5.4 80C51并行端口的特点
5.4.1 并行端口的内部结构图 5-17 一条端口引脚内部的基本结构模型图 5-18 并行端口模块的基本结构模型图 5-19 每条引出脚都有钳位保护二极管
5.4.2 并行端口的工作原理
1.从端口引脚输出数据
CPU把欲输出的数据,X”(可以为 0
或 1)放到数据总线上,接着由控制线 WL
送来“写”脉冲,将,X”锁入锁存器中,
并且其反相数据立刻呈现到端上,再经过
N-FETl驱动管反相一次把,X”映射到外部引脚上。
如果 X=0,则 =1,N-FETl栅极加高电平而饱和导通,引脚电平被拉低;如果 X=1,
则 =0,N-FETl栅极加低电平而截止,引脚电平被上拉电阻拉高。在分析电路原理时,
N沟道场效应管 N-FETl在这里可以看做是人们更熟悉的一只发射极接地的 NPN双极型三极管。
2.从端口引脚输入数据
CPU经过 RP线送来一个“读”脉冲,
G2被打开,引脚上的逻辑信号经过 G2被传送到内部数据总线上。
不过,前提是数据锁存器的内容预先必须设定为,1”,使得输出驱动级对外呈现高阻抗状态。否则,N-FETl导通后将引脚电平钳制在低电平上,而不能随着外来逻辑电平的改变而变化。
因此,必须注意,欲从引脚读取输入信号时,一定事先向锁存器写,1”方可实现。这也是这种“准双向”端口的一个弱点。由于仅当从引脚读取输入信号时,才需要事先做准备动作,因此,这种端口结构被称为“准双向口”。
3.读取端口数据锁存器内容
从端口的数据锁存器读回原有的数据。
CPU经过 RL线送来一个“读”脉冲,G1被打开,锁存器的内容经过 Q端被转送到内部数据总线 IOD上。
5.4.3 并行端口的操作指令
( 1)读锁存器指令类 型 指 令 注 释字节操作型
ANL Pm,A ;Pm和 A内容按位逻辑,与,,结果送回Pm( m=0,1,2,3)
ORL Pm,A ;Pm和 A内容按位逻辑,或,,结果送回Pm
XRL Pm,A ;Pm和 A内容按位逻辑,异或,,结果送回 Pm
INC Pm ;Pm内容加 1
DEC Pm ;Pm内容减 1
DJNZ Pm,NEXT ;Pm内容减 1不为 0则跳转至地址 NEXT处
XCH A.Pm ;Pm内容被 A的内容所替换表 5-4 具有“读 —改 —写”功能的指令续表类 型 指 令 注 释位操作型
CLR Pm.j ;清 0寄存器 Pm的位 j( j=0,1,2,…,7)
SETB Pm.j ;置位寄存器 Pm的位 j
CPL Pm.j ;Pm的 j位取反,其余位不变
MOV Pm.j,C ;位累加器的内容传送到寄存器 Pm的位 j上
JBC Pm.j,NEXT ;Pm.j位测试为 1并清 0,然后跳转至地址NEXT处
( 2)读引脚状态指令指 令 注 释
MOV A,Pm ;读取 Pm端口引脚状态到累加器 A
MOV Rn,Pm ;读取 Pm端口引脚状态到寄存器 Rn
MOV direct,Pm ;读取 Pm端口引脚状态到直接地址单元
MOV @Ri,Pm ;读取 Pm端口引脚状态到间接寻址单元表 5-5 具有读引脚状态功能的指令
5.4.4 各个并行端口的个性差异
1,P0端口图 5-20 一条 P0端口引脚的内部结构(对于 80C51)
2,P1端口图 5-21 CMOS工艺的 P0端口引脚等效电路
3,P2端口图 5-22 一条 P2端口引脚的内部结构
4,P3端口图 5-23 P2端口引脚等效电路图 5-24 一条 P3端口引脚的内部结构图 5-25 P3端口引脚等效电路
5.4.5 并行端口特性小结
现在将 80C51系列单片机并行 I/O端口的特性总结归纳如下。单片机应用项目开发人员了解了这些端口特性以后,会对端口引脚的开发利用和外接电路的设计起到参考和提示作用。
① 4个端口之间,其电路结构均不完全相同,并且性能和用途也各有侧重。
② 每个并行 I/O端口都在 SFR空间中对应一个 SFR单元,于是,把 I/O端口的操作当成 SFR来访问。这样有利于减少指令系统中指令的种类和数量,也给用户的记忆和编程带来方便。
③ 与目前流行的其他单片机相比,其电路结构相对简单,只有一个端口锁存器,
而没有配备独立的端口方向寄存器和端口数据寄存器,使用起来会稍感不便。
④ 均属于“准双向口”,每个并行端口都有两种读入方法,一个是读取锁存器,
另一个是读取引脚状态(并且对应着两类指令)。
⑤ 在端口锁存器的内容为 0时,输出级下拉场效应管导通,I/O引脚的状态被钳制在低电平上。此时,无论外来信号为逻辑 1还是为逻辑 0,读取引脚的操作都会得到逻辑 0。因此,准双向口在作输入时,应该预先把锁存器置 1(称其为“置输入方式”),然后再进行读取引脚的操作。
⑥ 读取端口锁存器的操作属于“读 —
改 —写”操作,实现该类操作的指令基本是一些逻辑运算、加 1、减 1、置位、清位以及其他将端口锁存器作为目的寄存器的指令。
⑦ 端口 P0和 P2不仅可以用作普通输入 /输出端口,还可以向外开放内部并行总线,P0分时复用为低 8位地址总线与数据总线; P2用作高 8位地址总线,并且内部的总线控制逻辑能够自动识别和选择端口上的相应功能,无须用户干预。
⑧ 在作为普通 I/O端口使用时,P1、
P2和 P3均有内部上拉电阻,只有 P0的内部等效电路相当于开漏结构,因此,P0口的引脚可能需要外接上拉电阻。
⑨ 端口引脚结构的上下不对称性决定了其进行输出时,对于拉电流负载和灌电流负载的驱动能力,也存在较大的不对称性。
⑩ 对于传统 80C51而言,4个并行端口的输出驱动能力,与其他流行单片机相比,都是比较弱的,并且 4个并行端口之间还有所差异。 P0端口的每条引脚都可以驱动 8个 LS-TTL逻辑电路输入端;而 P1,P2
和 P3端口的每条引脚只能驱动 4个 LS-TTL
输入端。
CMOS单片机的端口引脚也只能提供几个毫安的输出驱动电流。在驱动 LED或继电器时,一般均需要外加功率驱动器件。
不过,对于近年来出现的一些新型号,其驱动电流大大增加。
例如 Philips公司近几年推出的 51LPC
系列和 LPC900系列的驱动电流均达到
20mA。这使得在驱动 LED或小型继电器时,
可免用外接功率器件。
针对标准 8051/80C51单片机端口引脚的功能相对简单的问题,在有些后来推出的兼容产品中进行了改进。比如,Philips
公司的 P87LPC76X系列和 P89LPC900系列型号,其端口设计了 4种工作模式:准双向、开漏输出、上拉电路和只作输入。
4个并行端口相比,P1端口的复合功能最少,P3端口的复合功能最多。这里对 P3
端口的第 2功能进行归纳,如表 5-6所示。
端 口 引 脚 第 二 功 能 功 能 说 明
P3.0 RXD USART串口:异步通信时的数据接收端;同步通信时的数据收 /发端
P3.1 TXD USART串口:异步通信时的数据发送端;同步通信时的时钟发送端
P3,2 INT0# 外部中断源 0触发信号输入端
P3.3 INT1# 外部中断源 1触发信号输入端
P3.7 RD# 对于外扩数据存储( XRAM)进行读操作的选通信号,负脉冲有效表 5-6 P3端口的第 2功能汇总表续表端 口 引 脚 第 二 功 能 功 能 说 明
P3.5 T1 定时器 /计数器 1工作于计数器模式下,外部计数脉冲输入端
P3.6 WR# 对于外扩数据存储( XRAM)进行写操作的选通信号,负脉冲有效
P3.7 RD# 对于外扩数据存储( XRAM)进行读操作的选通信号,负脉冲有效
5.5 CPU与外设间数据传送的方式
5.5.1 查询传送方式
1,查询式输入图 5-26 查询式输入的接口电路方框图图 5-27 查询式输入时的数据和状态信息图 5-28 查询式输入程序流程图
2,查询式输出图 5-29 查询式输出接口电路方框图图 5-30 查询式输出的端口信息图 5-31 查询式输出程序流程图
3.一个采用查询方式的数据采集系统
一个有 8个模拟量输入的数据采集系统,
用查询的方式与 CPU传送信息,电路如图
5-32所示。
图 5-32 查询式数据采集系统
5.5.2 中断传送方式图 5-33 中断传送方式的接口电路方框图