蜂鸣器
正极接电源,给N BUZZ低电平,蜂鸣器鸣叫
继电器
RELAY-SPDT为线圈,里面有铁芯,给线圈通电(VCC一端为高电平,N RELAY给低电平)使其产生磁场将K1吸合。
ULN2003
中间连接了一个非门,若左边为1,右边输出则为0。
蜂鸣器与继电器电路
与前文的led一样,或非门连接着译码器和锁存器,当Y5C被选中(Y5被选中,wr默认低电平),P0可以控制继电器和蜂鸣器,P06为1蜂鸣器响,P04为1继电器工作
练习内容
初步代码
#include "reg52.h"
#include "delay.h"
sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;
void initsystem()//关闭无关设备
{
HC138_C=1;
HC138_B=0;
HC138_A=1;//选中Y5C
P0=0x00;//关闭蜂鸣器、继电器
}
void ledrunning()
{
unsigned char i;
HC138_C=1;//打通D与Q(选择模式为led)
HC138_B=0;//从高位写到低位(Y4)
HC138_A=0;
for(i=0;i<3;i++)//闪烁三次
{
P0=0x00;
delayxms(500);//延时500ms
P0=0xff;
delayxms(500);//延时500ms
}
for(i=1;i<=8;i++)//依次点亮(左边到右边LED对应低位至高位)
{
P0=0xff<<i;
delayxms(500);//延时500ms
}
HC138_C=1;
HC138_B=0;
HC138_A=1;//选中Y5C
P0=0x10;//0001 0000)(P04为1),继电器吸合
delayxms(500);//延时500ms
P0=0x00;//关闭继电器
HC138_C=1;
HC138_B=0;
HC138_A=0;//选中Y4C,控制LED
for(i=1;i<=8;i++)//依次熄灭
{
P0=~(0xff<<i);
delayxms(500);//延时500ms
}
HC138_C=1;
HC138_B=0;
HC138_A=1;//选中Y5C
P0=0x40;//0100 0000(P06)打开蜂鸣器
delayxms(500);//延时500ms
P0=0x00;//关闭蜂鸣器
}
void main()
{
initsystem();//初始化
while(1)
{
ledrunning();//走马灯
}
}
后续优化
1,可以看到初步代码对功能进行了多次选择,这里可以优化为一个模式选择函数。
2,模块化
main.c
#include "reg52.h"
#include "delay.h"
#include "inithc138.h"
void initsystem()//关闭无关设备
{
inithc138(5);
P0=0x00;//关闭蜂鸣器、继电器
}
void ledrunning()
{
unsigned char i;
inithc138(4);
for(i=0;i<3;i++)//闪烁三次
{
P0=0x00;
delayxms(500);//延时500ms
P0=0xff;
delayxms(500);//延时500ms
}
for(i=1;i<=8;i++)//依次点亮(左边到右边LED对应低位至高位)
{
P0=0xff<<i;
delayxms(500);//延时500ms
}
inithc138(5);
P0=0x10;//0001 0000)(P04为1),继电器吸合
delayxms(500);//延时500ms
P0=0x00;//关闭继电器
inithc138(4);
for(i=1;i<=8;i++)//依次熄灭
{
P0=~(0xff<<i);
delayxms(500);//延时500ms
}
inithc138(5);
P0=0x40;//0100 0000(P06)打开蜂鸣器
delayxms(500);//延时500ms
P0=0x00;//关闭蜂鸣器
}
void main()
{
initsystem();//初始化
while(1)
{
ledrunning();//走马灯
}
}
inithc138.c
#include "reg52.h"
void inithc138(unsigned char channel)
{
switch(channel)
{
case 4:
P2=(P2&0x1f)|0x80;//清空高3位,设置高三位
break;
case 5:
P2=(P2&0x1f)|0xa0;
break;
case 6:
P2=(P2&0x1f)|0xc0;
break;
case 7:
P2=(P2&0x1f)|0xe0;
break;
}
}
标签:02,P2,P0,蜂鸣器,蓝桥,0xff,HC138,include
From: https://blog.csdn.net/2301_80057226/article/details/145209326