目录
蜂鸣器与继电器的使用
一、原理
首先,如何去控制蜂鸣器与继电器呢,必须要知道的是蜂鸣器与继电器的各个引脚图(如下):
来源于CT107D单片机综合训练平台原理图
1.(1).蜂鸣器BUZZER,控制端口在N BUZZ,接着找对应的端口
(2).找到对应的M74HC573MIR锁存器,它控制的Q7连接ULN2003(达林顿管
引脚图入下,实际内部为非门;即输入1,输出0)
OUT7口再连接N BUZZ,那再要去找控制锁存器Y5C的端口
(3)对应找到74HC02或非门,对应第一节LED里的芯片Y5
(4)即找到74HC138译码器
2.(1)继电器DIODE:
(2)接下来找N RELAY,同样在上面的第二个图锁存器的OUT5引脚。接下来的操作同上;
由上图可以知道,继电器的开关闭合在一个LED显示出来
二、代码控制
(1)打开Y5口:P2=(P2&0x1f)|0xa0;
关闭Y5口:P2&=0x1f;
(2)打开蜂鸣器:P0=0100 0000;或者P0=0x40;
关闭蜂鸣器:P0=1011 1111;或者P0&=0xb0
(3)打开继电器:P0=1110 1111;或者P0=0xef;
关闭继电器:P0=0001 0000;或者P0=0x10
三、与LED的连接控制举例
首先让8路LED指示灯闪烁3遍后熄灭,接着依次点亮LED,继电器吸合一会断开,然后依次熄灭LED,蜂鸣器鸣叫一次后关闭,程序循环实现以上功能。(借鉴B站UP主小蜜蜂老师的干货铺)
#include<reg51.h>
sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7; //定义引脚
void Delay(unsigned int t) //定义延时函数
{
while(t--);
while(t--);
}
void InitHC138(unsigned char n)//使用Switch语句以方便以下语句的重复使用
{
switch (n)
{
case 4:
HC138_C=1;
HC138_B=0;
HC138_A=0; //让Y4输出低电平
break;
case 5:
HC138_C=1;
HC138_B=0;
HC138_A=1; //让Y5输出低电平
break;
case 6:
HC138_C=1;
HC138_B=1;
HC138_A=0; //让Y6输出低电平
break;
case 7:
HC138_C=1;
HC138_B=1;
HC138_A=1; //让Y7输出低电平
break;
}
}
void LEDRunning() //运行LED函数
{
unsigned char i;
InitHC138(4);
for(i=0;i<3;i++) //闪烁三次
{
P0=0x00; //led亮,低电平有效
Delay(60000) ;//延时
Delay(60000) ;
P0=0xff;
Delay(60000) ;
Delay(60000) ;
}
InitHC138(4);
for(i=0; i<8;i++)//依次点亮8个LED
{
P0 = 0xff <<i;
Delay(60000) ;
}
InitHC138(5) ;
P0 = 0x10; //继电器 吸合
Delay(60000) ;
Delay(60000) ;
P0 = 0x00;
InitHC138(4) ;
for(i=0; i<8;i++)
{
P0 =~ 0xff <<i;
Delay(60000) ;
} //依次点亮8个LED
InitHC138(5) ;
P0 = 0x40; //蜂鸣器打开
Delay(60000) ;
Delay(60000) ;
P0 = 0x00;
}
void InitSystem()
{
InitHC138(5) ;
P0 = 0x00;
}
void main()
{
InitSystem();
while(1)
{
LEDRunning();
}
}
标签:P2,P0,HC138,继电器,LED,蓝桥,蜂鸣器 来源: https://blog.csdn.net/weixin_46706926/article/details/122413985
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。