赞
踩
目录
当独立K1按键按下时LED D1 点亮,松开D1熄灭。
这里要注意一个设计的bug
P3_1 引脚对应是K1
P3_0 引脚对应是K2
我们也不用把按键的构造想太复杂 ,就当成一个普通的开关就好。
轻触(还是要多用点力,不是手机屏幕那种轻触)按下就导通,引脚P30就是高电平0(比如:按下按键K1,此时电路就接通GND接地了)。
松开时电路就断开,引脚P30是底电平1。
为什么这里设计成高电平0,低电平1呢?
芯片的每个引脚 都有寄存器 可读也可写。
也就是说我们既能让程序主动让每个引脚处于高电平或者低电平; 同时 引脚上处于高电平或低电平程序也能获取到。
比如:
我们用程序让引脚P3_0处于高电平,可以用 P3_0=0;
如果我们要检查P3_0 处于高电平还是电平。我们可以用 一个变量将其获取出来并打印出来
int P3_0_status=P3_0;//取引脚状态
printf("%d",P3_0_status);//打印状态值。
这里我们一直去检测这个引脚的状态就可以了。
-
- if(P3_1==0) //检测按键K1的状态;如果K1按键按下
- {
- P2_0=0; //D1输出0,点亮
- }
- else
- {
- P2_0=1; //D1输出1,熄灭
- }
详细参考:51单片机STC89C52RC——创建Keil项目-CSDN博客
- #include <REGX52.H>
- /**
- * 函 数:主函数
- * 参 数:无
- * 返 回 值:无
- */
- void main()
- {
- while(1)
- {
- if(P3_1==0) //检测按键K1的状态;如果K1按键按下
- {
- P2_0=0; //D1输出0,点亮
- }
- else //如果K1按键松开
- {
- P2_0=1; //D1输出1,熄灭
- }
- }
- }

代码编译请参考
《51单片机STC89C52RC——代码编译-CSDN博客》
代码下载请参考
《51单片机STC89C52RC——STCAI-ISP代码下载-CSDN博客》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。