单片机输入输出接口.ppt

上传人:sh****n 文档编号:12719247 上传时间:2020-05-19 格式:PPT 页数:42 大小:896.81KB
返回 下载 相关 举报
单片机输入输出接口.ppt_第1页
第1页 / 共42页
单片机输入输出接口.ppt_第2页
第2页 / 共42页
单片机输入输出接口.ppt_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单片机原理与应用,第5章输入输出接口P0-P3,输入输出接口的作用数据缓冲功能信号转换功能接受和执行CPU命令的功能51单片机具有的输入输出接口:P0、P1、P2、P34个8位双向I/O口,5.1P0P3端口功能与内部结构,8051单片机的引脚,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口的每一位都具有第二功能。,P3口的第二功能大多与其内部功能部件有关,RD、WR是外部数据存储器的写、读控制信号。,8XX51单片机扩展程序存储器2732的电路图见图,P0口,P0口有两种用途:普通I/O端口当单片机系统没有扩展外部芯片时,P0口用作双向输入输出端口。这时图中多路开关的控制信号为低电平,输出与锁存器的反向输出端相连,同时上面的场效应管由于与门输出为低电平而截止。作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的场效应管也是截止状态,输出引脚成高阻态,不是希望的1状态,这时,必须外加上拉电阻,作输入时:P0端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。为了能读到真实的引脚信号,下面的场效应管必须截止,即锁存器的内容必须是1。为了能正确读取引脚信号,锁存器必须先写1,因而P0口是一个准双向口。(读引脚)在图的左上方有一个三态缓冲器,是为了读取锁存器内容而设。如指令:P0=P0|0XF0;将P0口的输出状态与0XF0按位或后再输出到P0口,这里读的数据是P0口锁存器的内容,运算结果又写入到P0口锁存器。(读锁存器),地址/数据复用总线当单片机系统进行存储器、I/O口或其它功能扩展时,P0口要用作系统总线。在P0口上分时输出目标地址的低8位和要交换的字节数据。用作地址/数据复用总线时,多路开关的控制信号为1,输出与上方的地址/数据线反向器的输出相连,由于控制信号为1,上面的场效应管受地址/数据信号控制,与下面的场效应管成为推挽输出形态。外部不再需要上拉电阻,P0口为真正的双向I/O口。操作过程:假如要读外部程序存储器中0 x1245单元的指令,首先从P0口输出45H,P2口输出12H,控制器输出ALE地址锁存信号,再发出指令输出允许信号PSEN,外部程序存储器0 x1245单元的内容出现在总线上,由CPU读入程序指令寄存器,译码执行。,P1口,P2口,P2口也有两种使用方式做普通I/O口这时,控制信号将驱动场效应管的反向器的输入与P2口输出锁存器的Q端相连。当作输出时与P0口类似,但P2口内部有上拉电阻,不需外接。当输入使用时,输出锁存器也必须写1。所以,P2口也是一个准双向I/O口。作地址总线当单片机系统进行存储器、I/O口或其它功能扩展时,P2口要用作地址总线,输出目标地址的高8位。这时控制信号将驱动场效应管的反向器的输入与地址线相连。P2口没有复用要求,所以外部不需地址锁存器。应当注意:当P2口的几位作地址线使用时,剩下的P2口线不能作I/O口线使用。,P3口,P3口是一个双功能I/O口若不设定自动处于第一功能普通I/O口作普通I/O口时,选择输出功能端为高电平,场效应管受输出锁存器的控制,是一个准双向I/O口。第二功能口P3口的每一位都具有第二功能。,归纳四个并行口使用的注意事项如下:1。如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用。2。四个口在作输入口使用时,均应先对其写“1”,以避免误读。3。P0口作I/O口使用时应外接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而熄灭。,例5-2.在图5.3中P1.4P1.7接四个发光二极管LED,P1.0P1.3接四个开关,编程将开关的状态反映到发光二极管上。,89C51/89S51,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,+5V,+5V,1K4,3304,EA,例3.用P1.0输出1KHz的音频信号驱动扬声器,作报警信号,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。,5.3I/O口设计LED数码显示器和键盘LED显示器结构与原理LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。,。,(a)共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮;(b)共阳极LED显示器的发光二极管阳极并接。,七段显示器与单片机接口:只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如下表所示。通常将控制发光二极管的8位字节数据称为段选码。,LED显示器与显示方式N位LED显示器有N根位选线和8N根段选线。根据显示方式不同,位选线与段选线的连接方法不同。段选线控制字符选择,位选线控制显示位的亮、灭。,LED显示器有静态显示与动态显示两种方式。(1)LED静态显示方式各位LED的位选线连在一起接地或接+5V;每位LED的段选线(adp)各与一个八位并行口相连。在同一时间里每一位显示的字符可以各不相同。,(2)LED动态显示方式将所有LED的段选线并联在一起,由一个八位IO口控制,而位选线分别由相应的IO口线控制。如:8位LED动态显示电路只需要两个八位IO口。其中一个控制段选码,另一个控制位选。动态显示三部曲,由于所有位的段选码皆由一个IO控制,因此,在每个瞬间,8位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制IO口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制IO口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。,LED灯的判别,例如图5.5是接有五个共阴极数码管的动态显示接口电路,用74LS373接成直通的方式作驱动电路,阴极用非门74LS04反相门驱动,字形选择由P1口提供,位选择由P3口控制。当P3.0P3.4轮流输出1时,五个数码管轮流显示。P1.7接开关,当开关打向位置“1”时,显示“12345”字样,当开关打向“2”时,显示“HELLO”字样,程序清单如下:,用C语言完成上述功能编程#include#defineuintunsignedint#defineucharunsignedcharsbitP17=P17;main()ucharcodetab15=0 x86,0 xdb,0 xcf,0 xe6,0 xed;/*“15”的字形码,因P1.7接的开关,最高位送“1”*/ucharcodetab25=0 xf8,0 xf9,0 xb8,0 xb8,0 xbf;/*“HELLO”的段码,最高位送“1”*/,uchari;uintj;while(1)P3=0 x01;for(i=0;i5;i+)if(P17=1)P1=tab1i;elseP1=tab2i;P3=1;for(j=0;j=25000;j+);课本习题5.8*关于液晶显示,键盘输入键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。键盘中一般矩阵式(行列式)键盘用得较多,适用于按键数量较多的场合。矩阵式键盘由行线和列线组成,按键位于行线、列线的交叉点上。当键被按下,则其交点的行线和列线接通。行和列可分别用两个I/O口来控制。,1.判断是否有键按下原理:行线通过上拉电阻接5V上(1)平时无按键动作时,行线处于高电平状态;(2)若有键按下,行线状态将由与行线相连的列线电平决定。步骤:(1)先使所有列线为低电平(IO输出0)(2)读行线状态(输入口)当无键按下时,所有行线为高电平,即读到“全1”数据;当有某键按下时,总会有一根行线为低电平,即读到的数据不全为“1”。,2.按键的识别(识别键的行列位置)(1)扫描法a.依次给每一根列(行)线送低电平;b.读所有行线状态若全为1,则所按下之键不在此低电平列上;若不全为1(有一根为0),则按键在现有低电平行与低电平列的交叉处。,(2)反转法a.将行线接一并口,做输出方式;列线接一并口,做输入方式。使所有行线为低电平(送全“0”),读入列线值,为“0”的那列,即按键所在列;b.反过来,使行线做输入方式,列线做输出方式。将刚读到的列线值输出,然后读行线值,为“0”的那行,即按键所在行。,(0)D7(0)D6(0)D5(0)D4(1)D3(1)D2(0)D1(1)D0,I/O接口,+5V,+5V,+5V,(1)D7(0)D6(1)D5(1)D4(0)D3(0)D2(0)D1(0)D0,I/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;switch(mn)case0 xee:break;case0 xed:break;case0 xeb:。,3.按键抖动的消除按键或键盘都是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。由于机械触点的弹性作用,一个按键开关在闭合及断开瞬间均有一连串的抖动,抖动的时间长短由按键的机械特性决定,一般为510ms。为了确保按键动作只确认一次,必须消除抖动的影响。消除抖动的措施有硬、软件两种。硬件:可用RS触发器或单稳态电路消除抖动。软件:在判断有键按下后,延时10ms后,再确定该键是否保持闭合状态,若是则确认为被按键,否则忽略此次按键。,P101图5-9,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!