51单片机最小系统开关控制LED灯程序

如下图所示左侧为51单片机的最小系统,分别为晶振电路和复位电路,这个最小系统的设计可以在官方数据手册获取,我们暂且不必深究。当开关没有闭合时,P1.0和P1.1默认输出高电平,当开关闭合时,由于I/O口接地电平被拉低,当单片机检测到这个低电平信号之后,控制P0.0或P0.1输出低电平。

有的同学可能要问了,点亮LED灯不应该输出高电平吗?可能你没有认真观察LED灯的连接方式,LED灯的阳极连接的是电源,自然是高电平,它的阴极链接的是单片机的I/O口,如果单片机的I/O口也输出高电平,由于LED灯之间没有压差,这时候LED灯自然不会亮,只有在I/O口输出低电平的时候LED灯才会被点亮。

51单片机最小系统开关控制LED灯程序

程序源代码

为了降低难度,本程序采用的是轮询的方法去检测按键,轮询的最大好处就是简单,它的缺点对CPU消耗较大。

#include

sbit S1 = P1^0;

sbit S2 = P1^1;

sbit LED1 = P0^0;

sbit LED2 = P0^1;

void main()

{

while(1)

{

LED1 = S1;

LED2 = S2;

}

}