输入输出接口_第1页
输入输出接口_第2页
输入输出接口_第3页
输入输出接口_第4页
输入输出接口_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与应用第5章 输入输出接口P0-P3 输入输出接口的作用数据缓冲功能信号转换功能接受和执行CPU命令的功能 51单片机具有的输入输出接口: P0、P1、P2、P3 4个8位双向I/O口 5.1 P0P3端口功能与内部结构P0.0P0.7P0驱动器P2驱动器P2.0P2.7P0锁存器P2锁存器暂存1RAMRAM地址寄存器EPROMROMACC暂存2寄存器BALUSP中断、串行口及定时器模块PSW定时及控制指令寄存器程序地址寄存器DPTRPCPC加1缓冲器P1锁存器P3锁存器P1驱动器P3驱动器P1.0P1.7P3.0P3.7振荡器VccVssPSENALEEARSTXTAL1 XTAL

2、2图11 MCS51总体结构框图8051单片机的引脚12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0/RxDP3.1/TxDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1GNDVccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0图1-12 8031,8051

3、,8751芯片管脚图MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。P0口:地址(低8位)/数据时分复用口 普通I/O口 P1口:普通I/O口 P2口:地址(高8位) 普通I/O口5.1.1 端口功能P3口是一个双功能I/O口普通I/O口第二功能口P3口的每一位都具有第二

4、功能。P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0RDWRT1T0INT1INT0TxDRxD P3口的第二功能大多与其内部功能部件有关,RD、WR是外部数据存储器的写、读控制信号。 8XX51单片机扩展程序存储器2732的电路图见图P0口图15 P0口的位结构P0口有两种用途:普通I/O端口 当单片机系统没有扩展外部芯片时,P0口用作双向输入输出端口。这时图中多路开关的控制信号为低电平,输出与锁存器的反向输出端相连,同时上面的场效应管由于与门输出为低电平而截止。 作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效

5、应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的场效应管也是截止状态,输出引脚成高阻态,不是希望的1状态,这时,必须外加上拉电阻 作输入时:P0端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。为了能读到真实的引脚信号,下面的场效应管必须截止,即锁存器的内容必须是1。为了能正确读取引脚信号,锁存器必须先写1,因而P0口是一个准双向口。(读引脚) 在图的左上方有一个三态缓冲器,是为了读取锁存器内容而设。如指令: P0 = P0 | 0XF0;将P0口的输出状态与0XF0按位或后再输出到P0口,这里读的数据是P0口锁存器的内容,运算结果又

6、写入到P0口锁存器。(读锁存器)地址/数据复用总线 当单片机系统进行存储器、I/O口或其它功能扩展时,P0口要用作系统总线。在P0口上分时输出目标地址的低8位和要交换的字节数据。 用作地址/数据复用总线时,多路开关的控制信号为1,输出与上方的地址/数据线反向器的输出相连,由于控制信号为1,上面的场效应管受地址/数据信号控制,与下面的场效应管成为推挽输出形态。外部不再需要上拉电阻,P0口为真正的双向I/O口。 操作过程:假如要读外部程序存储器中0 x1245单元的指令,首先从P0口输出45H,P2口输出12H,控制器输出ALE地址锁存信号,再发出指令输出允许信号PSEN,外部程序存储器0 x12

7、45单元的内容出现在总线上,由CPU读入程序指令寄存器,译码执行。P1口图18 P1口的位结构P2口图16 P2口的位结构P2口也有两种使用方式做普通I/O口 这时,控制信号将驱动场效应管的反向器的输入与P2口输出锁存器的Q端相连。当作输出时与P0口类似,但P2口内部有上拉电阻,不需外接。当输入使用时,输出锁存器也必须写1。所以,P2口也是一个准双向I/O口。作地址总线 当单片机系统进行存储器、I/O口或其它功能扩展时,P2口要用作地址总线,输出目标地址的高8位。这时控制信号将驱动场效应管的反向器的输入与地址线相连。 P2口没有复用要求,所以外部不需地址锁存器。应当注意:当P2口的几位作地址线

8、使用时,剩下的P2口线不能作I /O口线使用。P3口P3.X图17 P3口的位结构P3口是一个双功能I/O口若不设定自动处于第一功能普通I/O口 作普通I/O口时,选择输出功能端为高电平,场效应管受输出锁存器的控制,是一个准双向I/O口。第二功能口P3口的每一位都具有第二功能。P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0RDWRT1T0INT1INT0TxDRxD归纳四个并行口使用的注意事项如下:1。如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用。2。四个口在作输入口使用时,均应先对其写“1”,以避免误读。3。P0口作I/O口

9、使用时应外接10K的上拉电阻,其它口则可不必。4。P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。5。P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。5.2 编程举例例5.1例5.2include“reg51.h”main( ) P1=0 xff; while(1) P1=P14; P1P1|0 x0f; LED正偏时才能发亮,按电路接法,当P1.0输出“1”,LED正偏而发亮,当P1.0 输出“0” ,LED 的两端电压为 0 而熄灭。 LED+5VVcc-EARST10uF 1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5V

10、Vcc-EARST10uF 1KP1.089S51+5VP1.11K30P30PXTAL1XTAL2GND89C51K 例5-2.在图5.3中P1.4P1.7接四个发光二极管LED,P1.0P1.3接四个开关,编程将开关的状态反映到发光二极管上。 89C51/89S51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V+5V1K43304EA 例3.用P1.0输出1KHz的音频信号驱动扬声器,作报警信号,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 5.3 I/O口设计LED数码显示器和键盘LED显示器结构与原理 LED显示器是由发光二

11、极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。afbegcddp1 2 3 4 510 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置图 LED显示器(a)共阴极LED显示器的发光二极管阴极共地,当某个发光二极 管的阳极为高电平时,该发光二极管则点亮;(b)共阳极LED显示器的发光二极管阳极并接。 七段显示器与单片机接口:只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如下表所示。通常将控制发光二极管的8位字节数据称为段选码

12、。显示字符共阴段选码共阳段选码显示字符共阴段选码共阳段选码03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7CH83H466H99HC39HC6H56DH92HD5EHA1H67DH82HE79H86H707HF8HF71H8EHLED显示器与显示方式 N位LED显示器有N根位选线和8N根段选线。根据显示方式不同,位选线与段选线的连接方法不同。段选线控制字符选择,位选线控制显示位的亮、灭。IO 口段选控制a b c d e f g dpa b c d e f g dpa b c d e f g dpa b c d e f g dpa b c

13、d e f g dpIO 口位选控制图 N位LED显示器LED显示器有静态显示与动态显示两种方式。(1)LED静态显示方式各位LED的位选线连在一起接地或接+5V;每位LED的段选线(adp)各与一个八位并行口相连。在同一时间里每一位显示的字符可以各不相同。GND/+5VIO (1)GND/+5VIO (2)GND/+5VIO (3)GND/+5VIO (4)GND/+5V 图 四位静态LED显示器电路 (2)LED动态显示方式 将所有LED的段选线并联在一起,由一个八位IO口控制,而位选线分别由相应的IO口线控制。如:8位LED动态显示电路只需要两个八位IO口。其中一个控制段选码,另一个控制

14、位选。动态显示三部曲 I/O (1)I/O (2)D7D6D5D4D3D2D1D0图 八位LED动态显示器电路 由于所有位的段选码皆由一个IO控制,因此,在每个瞬间,8位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制IO口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制IO口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒

15、钟内点亮不少于30次,其效果和一直点亮相差不多。LED灯的判别 例如图5.5是接有五个共阴极数码管的动态显示接口电路,用74LS373接成直通的方式作驱动 电路,阴极用非门74LS04反相门驱动,字形选择由P1口提供,位选择由P3口控制。 当P3.0P3.4轮流输出1时,五个数码管轮流显示。P1.7接开关,当开关打向位置“1”时, 显示“12345”字样,当开关打向“2”时,显示“HELLO”字样,程序清单如下: 用C语言完成上述功能编程#include#define uint unsigned int#define uchar unsigned charsbit P17=P17;main(

16、) uchar code tab15=0 x86,0 xdb,0 xcf,0 xe6,0 xed; /*“15”的字 形码, 因P1.7接的开关,最高位送“1”*/ uchar code tab25=0 xf8,0 xf9,0 xb8,0 xb8,0 xbf; /*“HELLO”的段码, 最高位送 “1”*/ uchar i;uint j;while(1) P3=0 x01;for(i=0;i5;i+) if(P17=1)P1=tab1i;else P1=tab2i;P3=1;for(j=0;j=25000;j+); 课本习题5.8 *关于液晶显示键盘输入 键盘是单片机系统中通用的输入设备,用

17、于向系统输入数据或控制信息。键盘中一般矩阵式(行列式)键盘用得较多,适用于按键数量较多的场合。 矩阵式键盘由行线和列线组成,按键位于行线、列线的交叉点上。当键被按下,则其交点的行线和列线接通。行和列可分别用两个I/O口来控制。 D7D6D5D4D3D2D1D0I/O接口+5V1. 判断是否有键按下 原理:行线通过上拉电阻接5V上(1)平时无按键动作时,行线处于高电平状态;(2)若有键按下,行线状态将由与行线相连的列线电平决定。步骤: (1) 先使所有列线为低电平( IO 输出0) (2) 读行线状态(输入口) 当无键按下时,所有行线为高电平,即读到“全1”数据; 当有某键按下时,总会有一根行线

18、为低电平,即读到的数 据不全为“1” 。D7D6D5D4D3D2D1D0I/O接口+5V2. 按键的识别(识别键的行列位置)(1)扫描法 a. 依次给每一根列(行)线送低电平; b. 读所有行线状态 若全为1,则所按下之键不在此低电平列上; 若不全为1(有一根为0),则按键在现有低电平行 与低电平列的交叉处。D7D6D5D4D3D2D1D0I/O接口+5V(2) 反转法a. 将行线接一并口,做输出方式;列线接一并口,做输入方式。使所有行线为低电平(送全“0”),读入列线值,为“0”的那列,即按键所在列;b. 反过来,使行线做输入方式,列线做输出方式。将刚读到的列线值输出,然后读行线值,为“0”的那行,即按键所在行。(0) D7(0) D6(0) D5(0) D4(1) D3(1) D2(0) D1(1) D0I/O接口+5V+5V+5V(1) D7(0) D6(1) D5(1) D4(0) D3(0) D2(0) D1(0) D0I/O接口+5V+5V+5V(0)(0)(0)(0)(1)(1)(1)(1)(1)(1)(1)(1)(0)(0)(0)(0)P1=0 x0f;while(P1=0 x0f); /判断有无按键if(P1!=0 x0f) delay(); /消抖 P1=0 x0f; m=P1; P1=0 xf0; n=P1; mn=m|n;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论