使用51单片机并行接口的直接电路连接的方式,如使用单片机的并行接口P1~P3直接驱动发光二极管,电路如图6-2所示。由于P1~P3内部有30kΩ左右的上拉电阻,根据欧姆定律I=U/R公式可换算电平与电流关系。如果引脚输出高电平,则强行从P1、P2和P3口输出的电流Id会造成单片机端口的损坏,如图6-2 a所示。如果端口引脚输出为低电平,能使电流Id从单片机外部流入内部(吸入电流),则将大大增加流过的电流值,如图6-2b所示。所以,当P1~P3口驱动LED发光二极管时,应该采用低电平驱动。
图6-2 发光二极管与51单片机并行接口的直接连接
1 输出数据方式
在输出数据方式下,CPU通过一条字节操作指令就可以把输出数据写入P0~P3的端口锁存器,然后通过输出驱动器送到端口引脚。
例如,如下指令均可在P1口输出数据:
MOV P1,A;P1←(A)
ANL P1,#data;P1←data
ORL P1,R2;P1←(R2)
XRL P1,30H;P1←(30H)
2 读端口数据方式
CPU读入的数据并非端口引脚线上输入的数据。因此,CPU只要用一条传送指令就可把端口锁存器中数据读入累加器A或内部RAM中。例如,如下指令可以从P1口输入数据:
MOV A,P1;A←(P1)(www.xing528.com)
MOV R2,P1;R2←(P1)
MOV 30H,P1;30H←(P1)
MOV @R1,P1;(R1)←(P1)
3 读引脚方式
读引脚方式可以从端口引脚线上读入信息,引脚成为高阻抗输入。然后再用传送指令把引脚线上的数据读入累加器A或内部RAM中。
如下两条指令可以将P1口的8条引脚上的数据读入累加器A中:
MOV P1,#0FFH;向P1口写入1,为读引脚做好准备
MOV A,P1;读P1口所有引脚的数据
如下两条指令可以将P1口低4位4条引脚上的数据读入累加器A的低4位中。
ORL P1,#0FH;向P1口低4位写入1,其余位不变
MOV A,P1;读P1口低4位引脚
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。