《单片机原理及应用》第二版 例5-3
如下图所示,单片机的P1.4~P1.7接4个开关,P1.0~P1.3接4个发光二极管D1~D4,编写程序,将P1.4~P1.7上的4个开关的状态反映在P1.0~P1.3引脚控制的4个发光二极管上,即开关闭合,对应的发光二极管点亮。例如P1.4引脚上开关的状态由P1.0引脚上的D0显示。
说明:P1口内部已有上拉电阻,故无需再接。
参考代码:
#include <REGX52.H>
#include<intrins.h>
#define uchar unsigned char
void delay()//延时函数
{
uchar i,j;
for(i=0;i<255;i++)
{
for(j=0;j<255;j++);
}
}
void main()
{
while(1)
{
uchar temp; //定义临时变量temp
P1=0xff; //P1口高四位置1,作为输入;低四位置1,发光二极管默认熄灭
temp=P1&0xf0; //读P1口并屏蔽其低四位,送入temp中
temp=temp>>4; //temp的内容右移四位,即P1口高四位按键输入状态移至低四位,用于发光二极管显示控制
P1=temp; //temp中的数据送P1口输出
delay();
}
}