3.
{
4.
P1_1 = 1;
//初始化。P1.1
作为输入,必须输出高电平
5.
While( 1 )
//
非零表示真,如果为真则执行下面循环体的语句
6.
{
7.
if
( P1_1 == 1 )
//读取 P1.1,就是认为 P1.1 为输入,如果 P1.1 输入高电平
VCC
8.
{ P0_4 = 0; }
//给 P0_4 赋值 0,引脚 P0.4 就能输出低电平 GND
9.
else
//否则 P1.1 输入为低电平 GND
10.
//{ P0_4 = 0; } //给 P0_4 赋值 0,引脚 P0.4 就能输出低电平 GND
11.
{ P0_4 = 1; }
//给 P0_4 赋值 1,引脚 P0.4 就能输出高电平 VCC
12.
}
//由于一直为真,所以不断根据 P1.1 的输入情况,改变 P0.4 的输出电
平
13.
}
将某端口 8 个引脚输入电平,低四位取反后,从另一个端口 8 个引脚输出
:( 比如 P2 =
NOT( P3 ) )
代码
1.
#include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中
包含 P2 和 P3
2.
void
main(
void
)
//void 表示没有输入参数,也没有函数返值,这入单片机
运行的复位入口
3.
{
4.
P3 = 0xff;
//初始化。P3 作为输入,必须输出高电平,同时给 P3 口的 8 个引
脚输出高电平
5.
While( 1 )
//
非零表示真,如果为真则执行下面循环体的语句
6.
{
//取反的方法是异或 1,而不取反的方法则是异或 0
7.
P2 = P3^0x0f
//读取 P3,就是认为 P3 为输入,低四位异或者 1,即取反,
然后输出
8.
}
//由于一直为真,所以不断将 P3 取反输出到 P2
9.
}
注意
:一个字节的 8 位 D7、D6 至 D0,分别输出到 P3.7、P3.6 至 P3.0,比如 P3=0x0f,则
P3.7、P3.6、P3.5、P3.4 四个引脚都输出低电平,而 P3.3、P3.2、P3.1、P3.0 四个引脚都输出高
电平。同样,输入一个端口 P2,即是将 P2.7、P2.6 至 P2.0,读入到一个字节的 8 位 D7、D6
至 D0。
第一节:单数码管按键显示
单片机最小系统的硬件原理接线图:
1.
接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容 0.1uF