Chapter5:输入输出接口P0~P3:《单片机》笔记

文章目录

  • Chapter5:输入输出接口P0-P3
    • 5.0 概述
    • 5.1 PO~P3端口的功能和内部结构
      • 5.1.1 P0~P3端口的功能
      • 5.1.2 P0~P3端口内部结构
    • 5.2 PO~P3端口的编程举例
    • 5.3 用并行口设计LED数码显示
      • 5.3.1 LED显示器及其原理
      • 5.3.2 LED数码管的接口(静态、动态)
    • 5.4 用并行口设计键盘电路

Chapter5:输入输出接口P0-P3

5.0 概述

  1. 输入输出接口:

    外设与CPU之间必须经过I/O接口。接口起着缓冲、锁存数据,地址译码、信息格式转换、传递外设状态,发布命令等功能。
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第1张图片

  2. 单片机的并行接口:

    • I/O接口有并行接口、串行接口、定时/计数器接口等。
    • 单片机将这些接口做在内部,外设可直接与单片机相连(有时需加驱动)。
    • 本章介绍单片机的并行接口。
  3. 具体接口:

    51单片机有P0、P1、P2、P3四个8位双向I/O口,四个口共32根口线

    每个口可以按字节输入或输出,也可以按位进行输入或输出,用作位控制十分方便。

5.1 PO~P3端口的功能和内部结构

5.1.1 P0~P3端口的功能

端口 功能
P0 1.作为输入/输出口。
2.作为地址/数据总线 ,接外围芯片时P0口分时输出低8位地址与数据信号
P1 1.作为输入/输出口。
2.在增强型(52系列)和ISP型(在系统编程型)中P1口还有如下功能(仅了解即可)
P2 1.作为输入/输出口。
2.作为高8位地址总线。
P3 1.作为输入/输出口。
2.作第二功能使用,每一位功能定义如下表

Chapter5:输入输出接口P0~P3:《单片机》笔记_第2张图片

  • 同一个端口的各位具有相同的结构。

  • P0~P3 结构的相同之处:

    1. 都有两个输入缓冲器,分别受读锁存器读引脚的控制
    2. 都有锁存器(即SFR寄存器P0~P3)
    3. 都是场效应管输出驱动
  • P0~P3 的不同之处:

    1. P0和P2:低、高八位的地址的传送【P0还可以作数据线】。

    2. P3:丰富的位操作。

    3. P1:就只能做输入输出。

5.1.2 P0~P3端口内部结构

  1. P0口:
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第3张图片

    • 功能1: P0口作I/O口使用

    ​ 1)CPU发控制电平“0”封锁与门,使T1管截止,同时使MUX开关同下面的触点接通,使锁存器的 Q 与T2栅极接通。
    ​ 2)当CPU向端口输出数据时,写脉冲加在锁存器的 CL上、内部总线的数据经反相,再经T2管反相,PO口的这一位引脚上出现正好和内部总线同相的数据。由于输出驱动级是漏极开路电路(因T1截止),在作I/O口使用时应外接10K的上拉电阻。

    ​ 3)当输入操作时,端口中两个三态缓冲器用于读操作。
    缓冲器2用于读端口引脚的数据(如:MOV A,P0指令)。
    缓冲器1用于读锁存器Q端的数据。当执行“读-修改-写”指令(如:ANL PO,A指令)。
    究竟是读引脚还是读锁存器,CPU内部会自行判断。

    ​ 4)当作输入口使用时,应先对该口写入“1”使场效应管T2截止,再进行读入操作。
    如:MOV P0,#0FFH(先写全1,复位时为1)MOV A,P0(再读引脚)防止读出来的数据全部等于0

    • 功能2:P0口作地址/数据线使用

    ​ CPU发控制电平“1”,转换开关MUX打向上面的触点。

  2. P1口:
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第4张图片

  3. P2口:
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第5张图片
    1)当扩展片外存贮器时,MUX开关打向右,P2口作高八位地址线 输出高八位地址信号。
    其MUX的倒向是受CPU内部控制的。
    2)当P2口的几位作地址线使用时,剩下的P2口线不能I/O口线使用。

  4. P3口:
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第6张图片
    1)当作为第一功能(普通I/O口)使用时,用法同P1口。
    2)当作为第二功能使用时,功能见上表。
    3)P3口的各位可根据需要,把几条口线设为第二功能,剩下的口线仍可作I/O使用;此时,宜采用位操作

归纳总结:
Chapter5:输入输出接口P0~P3:《单片机》笔记_第7张图片

5.2 PO~P3端口的编程举例

Chapter5:输入输出接口P0~P3:《单片机》笔记_第8张图片

5.3 用并行口设计LED数码显示

键盘、显示器是单片机应用系统中常用的输入、输出装置。LED数码显示器是常用的显示器之一。

下面介绍用单片机并行口设计LED数码显示电路、键盘电路的方法。

5.3.1 LED显示器及其原理

  • 管脚排列 、 共阴极 、 共阳极
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第9张图片
    1)例子看ppt

    2)共阳极和共阴极的字形码是不同的(刚好互为反码关系) ,可见ppt表。

    3)LED数码管每段需10~20mA的驱动电流,可用TTL或CMOS器件驱动。

  • 字形码的控制输出可采用2种方法:
    (1)硬件译码方式,如采用BCD译码/驱动器74LS48、CD4511(共阴极)或74LS46、CD4513 (共阳极);
    (2)软件查表方式。 (常用方法,需掌握)
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第10张图片
    自己画一个管脚排列的简图 + a~dp 罗列。 根据给出的数字,对照管脚排列图,把adp的罗列赋值。然后得出段码(这就是共阴极状态下)。接着,判断题目要求是共what极?若阴,结束。若阳,再判断显示的字符在什么区间,如果在0F,直接互补。若为H或者P的话该当如何呢??

5.3.2 LED数码管的接口(静态、动态)

  • 静态显示:

    用一个并行口接一个数据管,数码管的公共端com接地(共阴)或接Vcc(共阳)。优点:显示稳定,无闪烁,控制容易。缺点:占用接口多。如果PO口和P2口要用作数据线和地址线,仅用单片机的并行口就只能接2个数码管。

    理解:一个I/O接口管理一个数码管。在一个非常非常小的时间点内,四个数码管可以同时点亮。因为互相没有竞争关系。不扩充接口的话,最多只能搞4个数码管,因为单片机一共就P0~P3共4个I/O口。物理层面上:共一个极,另一个极靠I/O口管理。
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第11张图片

  • 动态显示:

    一个接口输出字形码 (字选),另一接口选择点亮某位数码管 (位选)。采用各数码管循环轮流显示的方法,当循环显示频率较高时,看不出闪烁显示现象。优点:节省接口(2个接口就可以接8个数码管)。缺点:显示可能会有闪烁,软件控制复杂。

    理解: 一共只需要2个I/O接口。在一个非常非常小的时间点内,只有一个数码管是点亮的。数码管之间互相之间存在竞争关系。但由于1秒刷新超过30次人眼就分辨不出来了,所以在高频率下,人眼看起来是几个数码管都亮着的。能搞的数码管数量没有上限。物理层面上:段码线 + 位选线。段码线来传要显示的内容,位选线来控制现在想要哪个数码管亮,即点亮的数码管的位置
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第12张图片

  • 优缺点总结:

    优点 缺点
    静态接口: 显示稳定无闪烁,软件控制容易 占用接口数量多
    动态接口: 占用接口数量少 显示可能有闪烁,软件控制复杂
  • 编程举例见ppt

5.4 用并行口设计键盘电路

  • 两种方式:

    按键少:接成线性键盘; 按键多:接成矩阵键盘。

    每个按键有它的行值和列值,行值和列值的组合就是这个按键的编码。

    *矩阵键盘举例:
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第13张图片

  • 键盘处理程序的任务:
    确定有无键按下;
    判哪一个键按下;
    键的功能是什么;
    还要消除按键在闭合或断开时的抖动。

  • 键盘扫描流程图
    Chapter5:输入输出接口P0~P3:《单片机》笔记_第14张图片
    1)当P1.0~P1.3输出0时,如无键按下,P1.4~P1.7的输入值均为“1”,如果其中有一个不是 “1”,说明有键按下。
    2)再使P1.0~P1.3逐个输出零(行扫描),检查P1.4~P1.7的输入值有无零,从而查出是哪行哪列的键按下。
    3)在判按键时,按键有抖动,可采用延时后再重读以跳过抖动时段。

    *程序见ppt

你可能感兴趣的:(单片机)