正常的双向口通过方向寄存器设置后要作输出可以直接向数据寄存器写,做输入可以直接读。而51的结构造成他不能正样用,输出直接用就可以了,输入必须先写全1然后再读。你从这张图片就可以看出来当内部输出0的时候,由于场效应管导通,无论外面是高电平还是低电平读入的数据都只能是低电平。只有当输出是高电平的时候输入才与外界有关
准双向就是不是真正的双向口,准你可以理解为准备。51做为输入口要先写1,而别的单片机例如msp430 就不用这个操作而是有专门的配置 输入输出方向的寄存器 PxDIR 而51则没有
真正的双向口,指的是具有输入和输出两种模式的端口,在不同的模式之间需要进行转换的,例如从输入改为输出,需要对某些控制寄存器进行设定,才能使口线变成输出模式.
而51,则不需要这样,它的口线在输入和输出之间没有明确的模式区别,它的端口在同样的模式下,既可以作为输入,又可以作为输出.
换句话说,标准的51单片机口线,没有"工作模式"一说.
P3口除外啊,它有外设的.
51单片机共有4个8位并行io口,分别是p0、p1、p2和p3,其中p0口是双向io口,内部与地址数据总线的低8位相同,p2口是地址总线的高8位,p1口是双向io口,内部有弱上拉设置,可以被外部强制驱动为0,