MSC-51单片机IO工作原理.pdf
《MSC-51单片机IO工作原理.pdf》由会员分享,可在线阅读,更多相关《MSC-51单片机IO工作原理.pdf(22页珍藏版)》请在冰豆网上搜索。
单片机单片机单片机单片机单片机单片机单片机单片机I/OI/O口的使用口的使用口的使用口的使用口的使用口的使用口的使用口的使用?
对单片机的控制,?
实就是对对单片机的控制,?
实就是对I/OI/O口的控制,口的控制,无论单片机对外界进行何种控制,或接?
无论单片机对外界进行何种控制,或接?
外部的何种控制,都是通过外部的何种控制,都是通过I/OI/O口进行的?
口进行的?
5151单片机总共有单片机总共有P0P0?
P1P1?
P2P2?
P3P3四个四个88位双位双5151单片机总共有单片机总共有P0P0?
P1P1?
P2P2?
P3P3四个四个88位双位双向输入输出端口,?
个端口都有锁存器?
向输入输出端口,?
个端口都有锁存器?
输出驱动器和输入缓冲器?
输出驱动器和输入缓冲器?
44个个I/OI/O端口都端口都能作输入输出口用,?
中能作输入输出口用,?
中P0P0和和P2P2通常用于通常用于对外部存储器的?
问?
对外部存储器的?
问?
4.1反MCS-51单片机的并行端口结构?
操作51系列单片机有4444个I/O端口,每个端口都是以?
准?
向口,共占32323232根引脚?
每个端口都包括一个?
准?
向口,共占32323232根引脚?
每个端口都包括一个锁存器(即?
用寄存器P0P0P0P0P3P3P3P3)?
一个输出驱动器和输入缓冲器?
通常把4个端口笼统地表示为P0P0P0P0P3P3P3P3?
在无片外扩展存储器的系统中,这4个端口的每一?
都可?
作为准?
向通用I/O端口使用?
在?
有片外扩展存储器的系统中,P2口作为高以?
地址线,P0口分时作为?
以?
地址线和?
向数据总线?
51单片机4个I/O端口线路设计的非常巧妙,学?
I/O端口逻辑电路,?
但有利于?
确合理地使用端口,I/O端口逻辑电路,?
但有利于?
确合理地使用端口,而?
会给设计单片机外围逻辑电路有所启发?
面简单介绍一?
输入/输出端口结构?
4.1.1反P04.1.1反P04.1.1反P04.1.1反P0口和口和口和口和P2P2P2P2的结构的结构的结构的结构?
图为P0口的某?
P0.n(n=0令)结构图,它由一个输出锁存器?
两个?
态输入缓冲器和输出驱动电路及?
制电路组成?
从图中可?
看出,P0口既可?
作为I/O用,?
可?
作为地址/数据线用?
地址地址地址地址/数据数据数据数据VCC一?
P0口的结构DQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚1111?
P0P0P0P0口作为口作为口作为口作为普通普通普通普通I/OI/OI/OI/O口口口口?
输出时输出时输出时输出时CPU发出?
制电平?
0000”封锁?
门,将输出?
场效应管T1截?
,同时使多路开关MUX把锁存器?
输出地址地址地址地址/数据数据数据数据VCCDQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚驱动场效应管T2栅极接通?
故内部总线?
P0口同相?
由于输出驱动级是漏极开路电路,若驱动NMOS或?
它?
流负载时,需要外接?
电阻?
P0的输出级可驱动以个LSTTL负载?
地址地址地址地址/数据数据数据数据VCCDQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚?
输入时输入时输入时输入时-分分分分读引脚读引脚读引脚读引脚或或或或读锁存器读锁存器读锁存器读锁存器读引脚读引脚读引脚读引脚?
由传送指?
由传送指?
由传送指?
由传送指?
(MOVMOVMOVMOV)实现实现实现实现?
面一个缓冲器用于读端口面一个缓冲器用于读端口面一个缓冲器用于读端口面一个缓冲器用于读端口引脚引脚引脚引脚数据数据数据数据,当执行一条当执行一条当执行一条当执行一条由端口输入的指?
时由端口输入的指?
时由端口输入的指?
时由端口输入的指?
时,读脉冲把该?
态缓冲器打开读脉冲把该?
态缓冲器打开读脉冲把该?
态缓冲器打开读脉冲把该?
态缓冲器打开,这样端口引脚?
的数据经过缓冲器读入到内部总线这样端口引脚?
的数据经过缓冲器读入到内部总线这样端口引脚?
的数据经过缓冲器读入到内部总线这样端口引脚?
的数据经过缓冲器读入到内部总线?
地址地址地址地址/数据数据数据数据VCCDQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚地址地址地址地址/数据数据数据数据VCC?
输入时输入时输入时输入时-分分分分读引脚读引脚读引脚读引脚或或或或读锁存器读锁存器读锁存器读锁存器读锁存器读锁存器读锁存器读锁存器?
有些指?
有些指?
有些指?
有些指?
如如如如?
ANL反P0ANL反P0ANL反P0ANL反P0,AAAA称为称为称为称为?
读读读读-改改改改-写写写写?
指?
指?
指?
指?
,需要读锁存器需要读锁存器需要读锁存器需要读锁存器?
面面面面一个缓冲器用于读端口一个缓冲器用于读端口一个缓冲器用于读端口一个缓冲器用于读端口锁存器锁存器锁存器锁存器数据数据数据数据?
DQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚*原因?
如果?
时该端口的负载?
是一个晶体管基极,?
原端口输出值为1,那?
导通了的PN结会把端口引脚高电平?
若?
时直接读端口引脚信号,将会把原输出的?
1”电平误读为?
0”电平?
现采用读输出锁存器?
替读引脚,图中,?
面的?
态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免?
述可能发生的错误?
*地址地址地址地址/数据数据数据数据VCCDQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚?
P0P0口必须接?
拉电阻?
口必须接?
拉电阻?
在读信号之前数据之前,先要向相应的锁存器做写在读信号之前数据之前,先要向相应的锁存器做写11操作的操作的I/OI/O口口称为准双向口?
称为准双向口?
态输入缓冲器的作用?
态输入缓冲器的作用?
ANLP0ANLP0,AA?
VCCP0iQ19013GNDOUTPUT地址地址地址地址/数据数据数据数据VCC准?
向口?
从图中可?
看出,在读入端口数据时,由于输出驱动FET并接在引脚?
,如果T2导通,就会将输入的高电平?
成?
电平,产生误读?
所?
在端口进行输入操作前,应先向端口锁存器写?
1”,使T2截?
,引脚处于悬浮状态,变为高阻抗输入?
这就是所谓的准?
向口?
DQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚准?
向口?
22?
P0P0作为作为地址地址/数据总线数据总线在系统扩展时在系统扩展时在系统扩展时在系统扩展时,P0P0P0P0端口作为端口作为端口作为端口作为地址地址地址地址/数据总线数据总线数据总线数据总线使用时使用时使用时使用时,分为分为分为分为?
P0P0P0P0引脚引脚引脚引脚输出地址输出地址输出地址输出地址/数据数据数据数据信?
信?
信?
信?
地址地址地址地址/数据数据数据数据VCCDQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚CPUCPUCPUCPU发出?
制电平发出?
制电平发出?
制电平发出?
制电平?
1111”,打开打开打开打开?
门门门门,又使多路开又使多路开又使多路开又使多路开关关关关MUXMUXMUXMUX把把把把CPUCPUCPUCPU的的的的地址地址地址地址/数据总线数据总线数据总线数据总线?
T2T2T2T2栅极?
相接通栅极?
相接通栅极?
相接通栅极?
相接通,输出地输出地输出地输出地址或数据址或数据址或数据址或数据?
由图?
可?
看出由图?
可?
看出由图?
可?
看出由图?
可?
看出,?
两个?
两个?
两个?
两个FETFETFETFET处于?
相处于?
相处于?
相处于?
相,构构构构成了?
式的输出电路成了?
式的输出电路成了?
式的输出电路成了?
式的输出电路,?
负载能力大大增强?
负载能力大大增强?
负载能力大大增强?
负载能力大大增强?
地址地址地址地址/数据数据数据数据VCC22?
P0P0作为作为地址地址/数据总线数据总线DQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚?
P0P0P0P0引脚引脚引脚引脚输出地址输出地址输出地址输出地址/输入数据输入数据输入数据输入数据输入信号是从引脚通过输入缓冲器进入输入信号是从引脚通过输入缓冲器进入输入信号是从引脚通过输入缓冲器进入输入信号是从引脚通过输入缓冲器进入内部总线内部总线内部总线内部总线?
时?
时?
时?
时,CPUCPUCPUCPU自动使自动使自动使自动使MUXMUXMUXMUX向?
向?
向?
向?
,并向并向并向并向P0P0P0P0口写口写口写口写?
1111”,?
读引读引读引读引脚脚脚脚?
制信号有效?
制信号有效?
制信号有效?
制信号有效,?
面的缓冲器打开?
面的缓冲器打开?
面的缓冲器打开?
面的缓冲器打开,外部数据读入内外部数据读入内外部数据读入内外部数据读入内部总线部总线部总线部总线?
22?
P0P0作为作为地址地址/数据总线数据总线-真?
的?
向口地址地址地址地址/数据数据数据数据VCCDQCLKQMUXP0.n读读读读锁存器锁存器锁存器锁存器内部总线内部总线内部总线内部总线写写写写锁存器锁存器锁存器锁存器读读读读引脚引脚引脚引脚地址地址地址地址/数据数据数据数据?
制?
制?
制?
制VCCT1T2P0P0P0P0口口口口引脚引脚引脚引脚二?
P2的内部结构1.P2口作为普通I/O口地址地址地址地址控制控制控制控制VCCCPUCPUCPUCPU发出?
制电平发出?
制电平发出?
制电平发出?
制电平?
0000”,使多路开关使多路开关使多路开关使多路开关MUXMUXMUXMUX倒向锁存倒向锁存倒向锁存倒向锁存器器器器输出输出输出输出QQQQ端端端端,构成一个准?
向口构成一个准?
向口构成一个准?
向口构成一个准?
向口?
功能?
功能?
功能?
功能?
P1P1P1P1相同相同相同相同?
DQCLKQMUXP2.n读锁存器读锁存器读锁存器读锁存器内部总线内部总线内部总线内部总线写锁存器写锁存器写锁存器写锁存器读引脚读引脚读引脚读引脚地址地址地址地址控制控制控制控制RTP2口引脚2.P22.P22.P22.P2口作为口作为口作为口作为地址总线地址总线地址总线地址总线在系统扩展片外在系统扩展片外在系统扩展片外在系统扩展片外程序存储器程序存储器程序存储器程序存储器扩展数据存储器?
容量超过扩展数据存