1、第第3章章 P0P3口口的的C51编程编程 3.1 P0P3口口基础基础 3.2 输出操作输出操作 3.3 输入操作输入操作 3.4 实验实验(并行并行I/O口口)51单片机有32只I/O引脚,分属于4个端口(P0P3)。可作为并行可作为并行I/O输入通道输入通道(按键/开关连接通道)3.1 51单片机的单片机的P0P3口口基础知识基础知识可作为并行可作为并行I/O输出通道输出通道(数码管显示器连接通道)可作为串行通信通道可作为串行通信通道(双机通讯的连接通道)可作为外部设备的连接通道可作为外部设备的连接通道(存储器扩展通道)并行并行I/O端口结构端口结构 8051单片机有单片机有4个双向并行
2、的个双向并行的8位位I/O口口P0P3。P0口为三态双向口,可驱动口为三态双向口,可驱动8个个TTL电路,电路,P1、P2、P3口口为准双向口(作为输入时,需要先向口锁存器写入为准双向口(作为输入时,需要先向口锁存器写入1,故称为准双向口),其负载能力为故称为准双向口),其负载能力为4个个TTL电路。电路。1.P1口口 P1.n=1个锁存器+1个场效应管驱动器V+2个三态门缓冲器P1口包含P1.0P1.7共8个相同结构的电路P1.0P1.7中的8个锁存器共同组成P1特殊功能寄存器(90H)RVCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP1.N锁存器2P1.
3、NRVCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP1.N锁存器2P1.NP1.n的通用I/O口工作方式:读锁存器读锁存器输出、输出、读引脚、读引脚、(1)输出方式:数据经内部总线送入锁存器存储,某位数据为1,则Q=1,Q=0,VT1截止,引脚P1.N上出现高电平;反之,数据为0,则Q=0,Q=1,VT1导通,引脚P1.N上出现低电平。(2)读引脚方式:读引脚时,控制器打开三态门1,引脚P1.N上的数据经三态门1进入芯片的内部总线,再送到累加器A,输入时无锁存功能。(3)读锁存器方式:分成“读修改写”三步,读锁存器输出端Q的状态,而不是读引脚P1.N上的状态
4、,将数据读入CPU中,在ALU中运算,运算结果再经锁存器Q端送给端口P1.N。这是因为端口引脚的高电平可能被除数外电路拉低,直接读引脚状态则会产生错误结果。P1口的要点:1、P1口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;2、P1口为准双向通用口准双向通用口,作为通用输入口时应先使P1.n1,作为通用输出口时是无条件的。VCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1V1DQCLKQP0.N锁存器2地址地址/数据数据控制控制V2MUXP0.NXA2.P0口口 与P1.n 差别:输出控制电路输出控制电路、输出驱动电路输出驱动电路总线功能 P0.0P0
5、.7中的8个锁存器构成了P0 SFR(80H)RVCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP1.N锁存器2P1.N漏极开路与上拉电阻的概念 控制端=0MUX下通Q与V1栅极直通V2截止V1漏极开路漏极开路 封锁封锁与门A(0)地址/数据端与A输出无关VCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1V1DQCLKQP0.N锁存器2地址地址/数据数据控制控制V2MUXP0.NXA读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP0.N锁存器2P0.N外接上拉电阻VCC为使漏极开路的V1有效,必须通过外接上拉电阻
6、与电源连通,上拉电阻的阻值一般为10010k。注意:P1、P2、P3口无需外接上拉电阻(已有内部上拉电阻)读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP0.N锁存器2P0.N外接上拉电阻VCCRVCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP1.N锁存器2P1.NRVCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP3.N锁存器2第二输出功能第二输出功能P3.N第二输入功能第二输入功能TB读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1VDQCLKQP0.N锁存器2P0.N外接上拉
7、电阻VCCP0.n的通用I/O口工作方式:输出输出、读引脚读引脚、读锁存器读锁存器输出条件:控制端控制端 “0”(V2管截止,MUX下通)输入条件:Q端端 “1”(V1管截止)VCC读锁存器读锁存器写锁存器写锁存器读引脚读引脚内部总线内部总线1V1DQCLKQP0.N锁存器2地址地址/数据数据控制控制V2MUXP0.NXAP0.n的地址/数据分时复用方式:地址/数据输出时V1和V2交替导通,无需外接上拉电阻无需外接上拉电阻 地址/数据输出的条件:控制端1地址地址/数据输出数据输出、数据输入数据输入数据输入时,CPU自动使Q端1,控制端0,故分时复用方式为无条件的真双向口真双向口P0口的要点:1、P0口具有通用I/O口方式,可实现输出、读引脚(输入)和读锁存器三种功能;2、作为通用I/O口方式时,需要外接上拉电阻;3、P0口具有地址/数据分时复用方式,可实现地址/数据输出、数据输入两种功能;4、地址/数据分时复用方式时无需外接上拉电阻;5、分时复用方式的数据输入时无需程序写1操作。P0P3小结1.结构2.功能 P0P3口都可作为准双向通用I/O口,其中只有P0口需要外接上拉电阻;在需要扩展片外设备时,P2口可作为其地址线接口,P0口可作为其地址线/数据线复用接口,此时它是真正的双向口。