2014第4章at89s51的并行io端口的结构及工作原理资料

上传人:n**** 文档编号:92788473 上传时间:2019-07-12 格式:PPT 页数:85 大小:3.79MB
返回 下载 相关 举报
2014第4章at89s51的并行io端口的结构及工作原理资料_第1页
第1页 / 共85页
2014第4章at89s51的并行io端口的结构及工作原理资料_第2页
第2页 / 共85页
2014第4章at89s51的并行io端口的结构及工作原理资料_第3页
第3页 / 共85页
2014第4章at89s51的并行io端口的结构及工作原理资料_第4页
第4页 / 共85页
2014第4章at89s51的并行io端口的结构及工作原理资料_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《2014第4章at89s51的并行io端口的结构及工作原理资料》由会员分享,可在线阅读,更多相关《2014第4章at89s51的并行io端口的结构及工作原理资料(85页珍藏版)》请在金锄头文库上搜索。

1、AT89S51片内并行端口的原理及编程,概述,并行端口,简称并口。所谓“并行”,是指8位数据同时通过并行线进行传送。 并行端口数据传输速率大大提高 并行传输的线路长度受到限制,因为随着长度的增加,干扰就会增加,数据也容易出错。,概述,可以将“0”与“1”转换为电压信号的端口 单片机中最常用的TTL电平:0V代表“0”,+5V代表“1” AT89S51单片机有4个8位I/O口:P0,P1,P2,P3,I/O口概述,I/O口的性能指标,灌电流能力:能够流入IO口的最大电流 拉电流能力:能够从IO口流出的最大电流 上拉电阻与下拉电阻 最大输入电压,为什么要使用拉电阻,数字电路有三种状态:高电平、低电

2、平和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定 。 为加大输出引脚的驱动能力 。上拉电阻是用来解决总线驱动能力不足时提供电流的,一般说法是拉电流。下拉电阻是用来吸收电流的。 在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻降低输入阻抗,提供泄荷通路。 芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。 提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。 长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰 。,上拉/下拉电阻阻

3、值的选择原则,从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。 从确保足够的驱动电流考虑应当足够小;电阻小,电流大。 对于高速电路,过大的上拉/下拉电阻可能边沿变平缓。综合考虑,关于开漏输出,开路电路中提到的“漏”就是指MOSFET的漏级。 MOSFET即金属-氧化层-半导体-场效晶体管 : Metal-Oxide-Semiconductor Field-Effect Transistor 开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是在漏极外部的电路上添加上拉电阻,因此,完整的开漏电路应该由开漏器件和开漏上拉电阻组成。 因此,开漏输出,在使用时需外接上拉电阻,利用外

4、部电路的驱动能力,减少IC内部的功耗。 可以将多个开漏输出的脚连接到一条线上,形成“与逻辑”,当任意一个变低后,开漏线上的逻辑就为0。,G栅极 D漏极 S源极 这图里面的MOS管是N沟道的,工作原理:只要G上的电压比S上的电压大5-6V,MOS管就开始导通,就有电流从S流向D.,关于推挽输出,一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。 如果输出级有两个三极管,始终处于一个导通、一个截止的状态,也就是两个三级管推挽相连,这样的电路结构称为推拉式电路或图腾柱(Totem-pole)输出电路 。 比如功放的输出级有两个“臂”(两组放大元件),一个“臂”的电流增加

5、时,另一个“臂”的电流则减小,二者的状态轮流转换。对负载而言,好象是一个“臂”在推,一个“臂”在拉,共同完成电流输出任务。适用于低电压大电流的场合 两只对称的功率开关管每次只有一个导通,所以导通损耗小。,并行I / O 端口的使用,单片机总共有P0、P1、P2、P3四个8位准双向输入输出端口,共占32根引脚。 可以作为输出口,直接连接输出设备(如发光二极管),也可以作为输入口,直接连接输入设备(如开关设备)。还可以外接继电器、显示器、蜂鸣器、键盘等。 每个端口都有锁存器(即专用寄存器P0P3) 、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问

6、。 在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。,reg51.h这个文件中将所有寄存器映射为同名的变量,对这些变量的读写相当于对寄存器的读写,IO口的寄存器PX(X代表0-3) 输出状态IO寄存器设置 PX某一位置1或0,对应IO口相应位的电平高低 在读取PX某一位之前,要向该位写入1 (汇编语言需进行此步操作,C语言编译器会自动完成此步,C语言编程可省略此步骤),然后读回数据真实反映该位IO口的输入状态。,IO口的操作(位运算回顾),将某一位置1 (相应位与1进行按位或运算) 将某一位置0 (相应位与0按位进行与运算) 将某一位取反 (相应

7、位与1进行按位异或运算) 特有的位操作 sbit,下图为P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。 准双向口 内部无上拉电阻,T1,T2,P0口逻辑电路,当P0口作为输出口使用时,内部总线将数据送入锁存器,CPU发出控制信号“0”封锁“与”门,将输出上拉场效应管T1截止,同时多路开关MUX打向下面,把锁存器与输出驱动场效应管T2栅极接通。形成的P0口输出电路为漏极开路输出。,P0口逻辑电路,P0口用作输出口时,CPU的写脉冲加在D锁存器的CP端,内部总线上的数据

8、写入D锁存器,并由引脚P0.x输出。当锁存器为1时,/Q端为0,下方场效应管截止,输出为漏极开路,必须外接上拉电阻才能有高电平输出。当D锁存器为0时,下方场效应管管导通,P0口输出为低电平。,P0口逻辑电路,经过锁存器,T2反相后正好是内部总线的数据,送到P0口引脚输出。故内部总线与P0口同相。,P0口逻辑电路,P0口作为输出口使用:由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉电流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。,P0口逻辑电路, 输入时-分读引脚或读锁存器 读端口是指通过上面的缓冲器读锁存器Q端的状态。读端口是为了适应对I/O口进行“读-修改-写”操作

9、语句的需要。例如下面的C51语句: P0=P0 /将P0口的低4位引脚清0输出,原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。, 输入时-分读引脚或读锁存器(读端口) 所谓读引脚,就是读芯片引脚的状态,这时使用下方的数据缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据从缓冲器通过内部总线读进来。,P0口逻辑电路,51单片机的P1、P2、P3口为

10、准双向口,输出高电平是由内部开关管与地断开,上拉到高电平,如果内部的开关管与地是通的,那么输出的是低电平“0”,这样怎么读端口都会一直是低电平,所以要先写个“1”,锁存器的输出状态=1(即/Q端为0),使下方场效应管截止,这样内部开关管就与地断开了,读到的电平就是外部的电平了。,准双向口: 从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。,P0作为地址/数据总线,在系统扩展时,P0端口作为地址/数据总线使

11、用时,分为: P0引脚输出地址/数据信息。,除了I/O功能以外,当单片机外扩存储器或I/O时,P0口是作为单片机系统的复用地址/数据线使用的,一般称为地址/数据分时复用引脚。 当输出地址或数据时,由内部发出控制信号,使“控制”端为高电平,打开与门,并使多路开关MUX处于内部地址/数据线与驱动场效应管栅极反相接通状态。此时,输出驱动电路由于两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。,P0口的结构,CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其

12、负载能力大大增强。,P0作为地址/数据总线,当输出的地址/数据信息为1时,“与门”输出为1,上方的场效应管管导通,下方的场效应管截止,P0.x引脚输出为1;当输出的地址/数据信息为0时,“与门”输出为0,上方的场效应管管截止,下方的场效应管导通,P0.x引脚输出为0。 P0.x引脚的输出状态随地址/数据状态的变化而变化。,P0口的结构,P0引脚输出地址/输入数据 控制信号为0,MUX接通锁存器的/Q端。CPU自动向P0口写入FFH,使下方的场效应管截止。由于控制信号为0,上方的场效应管也截止,从而保证数据信息的高阻抗输入。“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。,P0作

13、为地址/数据总线,-真正的双向口,真正的双向口,具有高电平、低电平和高阻抗输入3种状态的端口。因此,P0口作为地址/数据总线使用时是一个真正的双向端口。简称双向口。,P0口作为一般I/O口输出口使用时,由于T1截止,输出电路是漏极开路,需再外接上拉电阻才有高电平输出。 P0口作为输入口使用时,应区分读引脚和读端口。读引脚时,必须先向电路中的锁存器写入“1”,使输出级的FET截止引脚处于高阻态,以避免锁存器状态为“0”时对引脚读入的干扰。,P0口应用注意事项,P0口必须接上拉电阻; 在读信号之前数据之前,先要向相应的锁存器做写1操作的I/O口称为准双向口; 三态输入缓冲器的作用: (ANL P0

14、,A),总结特点: (1)P0口可作通用I / O口使用,又可作地址/数据总线口; (2)P0既可按字节寻址,又可按位寻址; (3)作地址/数据总线口时,P0是一真正双向口,用作与外部存储器的连接,输出低8位地址和输出/输入8位数据。 (4)P0口作通用I / O口时,输出是开漏输出,需要在片外接上拉电阻,端口不存在高阻抗状态,只是一个准双向口。为保证引脚信号的正确读入,应首先向锁存器写1.单片机复位后,锁存器自动被置1;当P0口由输出状态变为输入状态时,应首先置锁存器为1,方可执行输入操作。,P1口的内部结构,P1口:单功能I/O口,字节地址90H,位地址90H97H。,P1口的位电路的结构

15、:它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。,P1口的内部结构,P1口工作过程分析,P1口作为输出口时,若CPU输出1,Q=1,/Q=0,场效应管截止,P1口引脚的输出为1;若CPU输出0,Q=0,/Q=1,场效应管截止导通,P1口引脚的输出为0;,P1口的内部结构,P1口工作过程分析,作为输入口时,分为读锁存器和读引脚两种方式。读锁存器时,锁存器的输出端Q的状态经输入缓冲器进入内部总线。,P1口的内部结构,P1口工作过程分析,读引脚时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器进入内部总线。,P1口应用注意,P1口是准双向口,只能作为通用I/O

16、口使用。 P1口作为输出口使用时,无需再外接上拉电阻。 P1口作为输入口使用时,应区分读引脚和读端口。读引脚时,必须先向电路中的锁存器写入“1”,使输出级的FET截止。,P2的内部结构,P2口:双功能口, P2口某一位的电路包括:,(1)1个数据输出锁存器; (2)两个三态数据输入缓冲器; (3)1个多路转接开关MUX,它的一个输入是锁存器的Q端,两一个输入是地址的高8位。 (4)输出驱动电路,由场效应管管和内部上拉电阻组成。,P2的内部结构,P2口工作过程分析,(1)P2口作为普通I/O口 在内部控制信号作用下,MUX与锁存器的Q端接通。CPU输出1时,Q=1,场效应管截止,P2.x引脚输出1; CPU输出0时,Q=0,场效应管导通,P2.x引脚输出0;,P2的内部结构,P2口工作过程分析,(1)P2口作为普通I/O口 输入时,分为读锁存器和读引脚两种方式。读锁存器时,锁存器的输出端Q的状态经输入缓冲器进入内部总线。读引脚时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器进入内部总线。,(2)P2口作为地址总线 CPU发

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号