上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…构成了一个简单的分支结构。
图3-5 模拟开关灯的连接