文档详情

MCS-51单片机结构原理 110302 (并行IO 端口的使用)

woxinch****an2018
实名认证
店铺
PPT
340KB
约27页
文档ID:44723664
MCS-51单片机结构原理 110302 (并行IO 端口的使用)_第1页
1/27

§2-4 并行I / O 端口的使用• 对单片机的控制,其实就是对I/O口的控 制,无论单片机对外界进行何种控制, 亦或接受外部的控制,都是通过I/O口进 行的单片机总共有P0、P1、P2、P3四 个8位双向输入输出端口,每个端口都有 锁存器、输出驱动器和输入缓冲器4个 I/O端口都能作输入输出口用,其中P0和 P2通常用于对外部存储器的访问§4.1 MCS-51单片机的并行端口结构与操作51系列单片机有4个I/O端口,每个端口都是8 位准双向口,共占32根引脚每个端口都包括一个 锁存器(即专用寄存器P0~P3)、一个输出驱动器和 输入缓冲器通常把4个端口笼统地表示为P0~P3在无片外扩展存储器的系统中,这4个端口的每一 位都可以作为准双向通用I/O端口使用在具有片外扩 展存储器的系统中,P2口作为高8位地址线,P0口分时 作为低8位地址线和双向数据总线 51单片机4个I/O端口线路设计的非常巧妙,学习 I/O端口逻辑电路,不但有利于正确合理地使用端口, 而且会给设计单片机外围逻辑电路有所启发下面简单介绍一下输入/输出端口结构4.1.1 P0口和P2的结构下图为P0口的某位P0.n(n=0~7)结构图,它由一个 输出锁存器、两个三态输入缓冲器和输出驱动电路 及控制电路组成。

从图中可以看出,P0口既可以作 为I/O用,也可以作为地址/数据线用D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚一、P0口的结构1、P0口作为普通I/O口①输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场 效 应管T1截止,同时使多路开关MUX把锁存器与输出D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚驱动场效应管T2栅极接通故内部总线与P0口同相由 于输出驱动级是漏极开路电路,若驱动NMOS或其 它拉流负载时,需要外接上拉电阻P0的输出级可驱动 8个LSTTL负载D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚② 输入时----分读引脚或读锁存器读引脚:由传送指令(MOV)实现;(引脚指令见P50页)下面一个缓冲器用于读端口引脚数据,当执行一条 由端口输入的指令时,读脉冲把该三态缓冲器打开, 这样端口引脚上的数据经过缓冲器读入到内部总线D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚② 输入时----分读引脚或读锁存器读锁存器:有些指令 如:ANL P0,A称为“读-改-写 ” 指令,需要读锁存器。

上面一个缓冲器用于读端口锁存器数据D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚**原因:如果此时该端口的负载恰是一个晶体管基极,且原端 口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若 此时直接读端口引脚信号,将会把原输出的“1”电平误读为 “0”电平现采用读输出锁存器代替读引脚,图中,上面的三 态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述 可能发生的错误D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚• P0口必须接上拉电阻; • 在读信号之前数据之前,先要向相应的锁存器做写1操作的I/O口 称为准双向口; • 三态输入缓冲器的作用: • (ANL P0,A)准双向口:从图中可以看出,在读入端口数据时,由于输出 驱动FET并接在引脚上,如果T2导通,就会将输入的 高电平拉成低电平,产生误读所以在端口进行输 入操作前,应先向端口锁存器写“1”,使T2截止, 引脚处于悬浮状态,变为高阻抗输入这就是所谓 的准双向口 D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚2、P0作为地址/数据总线在系统扩展时,P0端口作为地址/数据总线使用时, 分为: § P0引脚输出地址/数据信息。

D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚CPU发出控制电平“1”,打开“与”门,又使多路开 关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地 址或数据由图上可以看出,上下两个FET处于反相,构 成了推拉式的输出电路,其负载能力大大增强2、P0作为地址/数据总线D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚§ P0引脚输出地址/输入数据输入信号是从引脚通过输入缓冲器进入内部总线此时,CPU自动使MUX向下,并向P0口写“1”,“读 引脚”控制信号有效,下面的缓冲器打开,外部数据读入 内部总线2、P0作为地址/数据总线----真正的双向口D QCLK QMUXP0.n读锁存器内部总线 写锁存器读引脚地址/数据 控制VCCT1T2P0口 引脚总结特点:(1)P0口可作通用I / O口使用,又可作地址/数据总线口;(2)P0既可按字节寻址,又可按位寻址;(3)P0作为输入口使用时:是准双向口;(4)作通用I / O 口输出时:是开漏输出;(5)作地址/数据总线口时,P0是一真正双向口,而作通用I / O口时,只是一个准双向口。

二、P2的内部结构 1.P2口作为普通I/O口D QCLK QMUXP2.n读锁存器内部总线 写锁存器读引脚地址控制VCCRTP2口 引脚CPU发出控制电平“0” ,使多路开关MUX倒向锁存 器 输出Q端,构成一个准双向口其功能与P1相同2.P2口作为地址总线在系统扩展片外程序存储器扩展数据存储器且容量超过 256B (用MOVX @DPTR指令)时,CPU发出控制电平“1”,使多路 开关MUX倒内部地址线此时,P2输出高8位地址D QCLK QMUXP2.n读锁存器内部总线 写锁存器读引脚地址控制VCCRTP2口 引脚2、特点:(1)当P2口作为通用I / O时,是一准双向口2)从P2口输入数据时,先向锁存器写“1” 3)可位寻址,也可按字节寻址(4)可输出地址高8位 4.1.2 P1口、P3口的内部结构①P1口的一位的结构它由一个输出锁存器、两个三态输入缓冲器和输出驱 动电路组成----准双向口D QCLK QP1.n读锁存器内部总线 写锁存器读引脚VCCRTP1口 引脚②P3的内部结构D QCLK QP3.n读锁存器内部总线 写锁存器读引脚VCCRTP3口 引脚第二输入功能第二输出功能一、作为通用I/O口与P1口类似----准双向口(W=1)W②P3的内部结构D QCLK QP3.n读锁存器内部总线 写锁存器读引脚VCCRTP3口 引脚第二输入功能第二输出功能二、P3P3第二功能(Q=1) 此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出) 。

WP3P3第二功能各引脚功能定义:P3.0:RXD串行口输入 P3.1:TXD串行口输出 P3.2:INT0外部中断0输入 P3.3:INT1外部中断1输入 P3.4:T0定时器0外部输入 P3.5:T1定时器1外部输入 P3.6:WR外部写控制 P3.7:RD外部读控制• 综上所述:当P0作为I/O口使用时,特别是作 为输出时,输出级属于开漏电路,必须外接 上拉电阻才会有高电平输出;如果作为输入 ,必须先向相应的锁存器写“1”,才不会影响 输入电平 • 当CPU内部控制信号为“1”时,P0口作为地址/ 数据总线使用,这时,P0口就无法再作为I/O 口使用了• P1、P2 和P3 口为准双向口, 在内部差别不大, 但使 用功能有所不同 ￿ • P1口是用户专用 8 位准双向I/O口, 具有通用输 入/输出功能, 每一位都能独立地设定为输入或输出 当有输出方式变为输入方式时, 该位的锁存器必须 写入“1”, 然后才能进入输入操作 • P2口是 8 位准双向I/O口外接I/O设备时, 可作 为扩展系统的地址总线, 输出高8位地址, 与P0 口一 起组成 16 位地址总线。

对于 8031 而言, P2 口一般 只作为地址总线使用, 而不作为I/O线直接与外部设 备相连 2、特点:(1)作通用I / O时,“选择输出功能”应保持高电平,(2)工作于第二功能时,该位锁存器应置1,(3)作输入口时,输出锁存器和选择输出功能端都应置1(4)第二功能专用输入,取自输入通道第一缓冲器 (G1)输出端,通用输入信号取自“读引脚” 小结:1、P0口:地址低8位与数据线分时使用端口,2、P1口:按位可编址的输入输出端口,3、P2口:地址高8位输出口4、P3口:双功能口若不用第二功能,也可作通用I / O 口 5、按三总线划分: 地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;控制线:P3口的8位加上/PSEN、ALE共同完成 控制总线 布置作业: P43 1/2。

下载提示
相似文档
正为您匹配相似的精品文档