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灯才会被点亮。
程序源代码
为了降低难度,本程序采用的是轮询的方法去检测按键,轮询的最大好处就是简单,它的缺点对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;
}
}