蓝桥杯——控制蜂鸣器和继电器

一、原理部分

蓝桥杯——控制蜂鸣器和继电器_第1张图片
以蜂鸣器为例讲解原理(继电器和蜂鸣器类似)
蜂鸣器的一端接到VCC即为高电平,所以另外一个引脚赋予高电平则蜂鸣器关闭,赋予低电平则蜂鸣器打开。现在让蜂鸣器打开即要让N_BUZZ为0。
蓝桥杯——控制蜂鸣器和继电器_第2张图片
N_BUZZ连接到ULN2003的OUT7,查阅芯片资料得知,ULN2003是一个非门所以要让OUT7输出为0则IN7=1,IN7和锁存器的Q7相连,即Q7=11。
使Q7=1则要打开锁存器的使能端即Y5C=1且P06=1。
蓝桥杯——控制蜂鸣器和继电器_第3张图片
74HC02是一个或非门,即只有当Y5=0且WR=0时,Y5C=1。WR默认为0所以要让Y5为0
蓝桥杯——控制蜂鸣器和继电器_第4张图片
蓝桥杯——控制蜂鸣器和继电器_第5张图片
Y5为74HC138译码器的一个输出端通过查询真值表可以得知让Y5输出0的方法为A=1 B=0 C=1
即P25=1 P26=0 P27=1。

小结蓝桥杯——控制蜂鸣器和继电器_第6张图片

控制单片机 P06=1 P25=1 P26=0 P27=1即可打开蜂鸣器。
继电器打开方法与蜂鸣器类似 P06=1 P25=1 P26=0 P27=1即可打开继电器。

二、代码部分

实验平台:CT107D
实验芯片:stc15f2k60s2
实验现象:打开蜂鸣器和继电器
代码如下

#include "stc15f2k60s2.h"
sbit buzz = P0^6;  //位定义蜂鸣器
sbit relay = P0^4; //位定义继电器

void main()
{
     
	P2 = 0xa0;	 //打开寄存器
	buzz = 1;	 //1为打开蜂鸣器,0为关闭蜂鸣器
	P2 = 0x00;

	P2 = 0xa0;
	relay = 1;	 //1为打开继电器,0为关闭继电器
	P2 = 0x00;

	while(1)
	{
     
		;
	}
}



你可能感兴趣的:(蓝桥杯,单片机)