![51单片机典型项目实战全能一本通(C语言版)(视频版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/145/24982145/b_24982145.jpg)
上QQ阅读APP看书,第一时间看更新
例3-4 开关状态检测——模拟开关灯的实现
利用单片机、按钮开关和发光二极管,构成一个模拟开关灯的系统。原理电路如图3-5所示,单片机P3.0脚接开关K,P1.0脚接发光二极管的阴极。当开关K闭合时,发光二极管D1点亮;开关K松开时,发光二极管D1熄灭。
首先来看如何检测一个开关是处于闭合状态,还是打开状态。将被检测的开关一端接到I/O端口的引脚上,另一端接地,通过读入I/O端口的电平来判断开关是闭合状态还是打开状态。如果为低电平,则开关为闭合状态,如果为高电平,则开关为打开状态。
参考程序如下。
#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit in=P3^0; sbit out=P1^0; void main(void) { while(1) { in=1; //设置P1.0脚为输入 if(in==0)out=0;else out=1; //检测P1.0脚电平,P1.0=0时,P3.0=0;P1.0=1时,P3.0=1 } }
本例中的if…else…构成了一个简单的分支结构。
![](https://epubservercos.yuewen.com/788A94/13311753305171206/epubprivate/OEBPS/Images/47400-00-72-1.jpg?sign=1738825032-czzJ3vQgr6Bvhp09xafdzneCvHYM46cw-0-98cd0f645a38ee071d1736eecffdb8e6)
图3-5 模拟开关灯的连接