51单片机按键配合继电器控制LED灯
1. 软硬件条件
- 单片机型号:STC89C52RC
- 继电器模块:FL-3FF-S-Z
- LED小灯泡:高电平亮
- 开发环境:KEIL4
- 烧录软件:stc-isp
2. 原理图
关于按键控制灯泡的方法之前有介绍详见:51单片机基础3——按键控制LED
3. 继电器原理
图中 NC (normal close) 为 常闭开关,即默认状态下NC,COM组成的回路为导通状态。
图中 NO (normal open) 为常开开关,即默认状态下NO,COM组成的回路为断开状态。
当 IN 口输入低电平时,COM 拨片拨向 NC 口。
当 IN 口输入高电平时,COM 拨片拨向 NO 口。
左侧电源,LED 串联在 NO,COM 组成回路中,右侧连接到单片机上
4. 大致接线方式
5. 代码
#include "reg52.h"
sbit relays = P1^1;
sbit HIGH = P1^0;
sbit btn = P2^0;
#define NO 1
#define OFF 0
int ledMark;
void Delay20ms() //@11.0592MHz
{
unsigned char i, j;
i = 36;
j = 217;
do
{
while (--j);
} while (--i);
}
void init(){
HIGH = 1;
relays = 0;
ledMark = OFF;
}
void main(){
init();
while(1){
if(btn == 0){
Delay20ms();
if(btn == 0){
ledMark = !ledMark;
}
while(btn == 0);
Delay20ms();
}
if(ledMark == NO){
relays = NO;
}
else if(ledMark == OFF){
relays = OFF;
}
}
}