蓝桥杯 — 蜂鸣器、继电器、LED、数码管的初始化详解

1、初识蜂鸣器

相信大多同学拿到板子写入代码的时候,会出现蜂鸣器发响的现象,不知道的还以为板子有问题呢,我们也没有写入蜂鸣器相关操作,那为什么蜂鸣器会响呢?这个问题我们先不急讨论,接下来先看蜂鸣器继电器总体原理图如下:

图1:总体电路图

(1)蜂鸣器

图2:蜂鸣器

   蜂鸣器工作条件是: N BUZZ=0,即为低电平时。

(2)继电器

图3:继电器

   继电器工作条件是:N RELAY=0,即为低电平。

(3)LED

   LED的573使能端由Y4C控制的,所以当LED工作时,要把Y4C=1,即为高电平。 

(4)数码管

   数码管DS1与DS2由Y6C和Y7C控制。必须使Y6C=1,Y7C=1这样数码管才能工作,而Y7C控制abcdefg和dp;Y6C控制com。

   接下来进行逐一了解内部原理图具体含义。

2、了解系统组成原理图

(1)74HC138(俗称38译码器)

   74HC138译码器可接受3位二进制加权地址输入(A, B和C),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。

    (2)74HC02

   WR与GND用跳帽连接起来,即WR为低电平0。

   结合(1)(2)从表中可以看出:当ABC输入为101时Y5为低电平,打开Y5C=1控制蜂鸣器继电器等模块。接下来继续了解原理图,现在是蜂鸣器继电器模块已经开始工作,看看继电器与蜂鸣器的控制接口是啥?

(3)ULN2003(反相器)和M74HC573(锁存器)

从图中看出,P06控制着蜂鸣器,P04控制着继电器。二者依次经过了锁存器(数据不变)、反相器(数据取反),在结合上述蜂鸣器继电器工作条件可知:当P06=0、P04=0时,关闭了继电器蜂鸣器。

3、控制继电器蜂鸣器操作步骤

 结合上述原理来说,首先设置74HC138译码器A、B、C分别为1、0、1,即:

P25=1;
P26=0;
P27=1;

 这是满足了Y5=0;进而得到Y5C=1,打开了573使能端。

 然后再控制P06和P04进而对蜂鸣器继电器的控制。大致就这些。

4、继电器、蜂鸣器、LED、数码管初始化代码

初始化继电器蜂鸣器:

void init_buzzer_relay(){
P2=0XA0; //P27=1,P26=0,P25=1,其余为0,此时38译码器中的Y5=0,进而的得到Y5C=1
P0=0X00; //P06=0关闭蜂鸣器,P04=0关闭集电器
}

初始化LED:

void init_led(){
P2=0X80; //P27=1,P26=0,P25=0,其余都为0,此时38译码器中的Y4=0,进而得到Y4C=1
P0=0XFF; //关闭所有LED灯
}

 初始化数码管:

void init_DS1_DS2(){
P2=0XC0; //P27=1,P26=1,P25=0,其余为0,此时38译码器中的Y6=0,进而的得到Y6C=1
P0=0X01; //选择数码管位置操作,此时选的为DS1的第一个位置
P2=0XFF; //P27=1,P26=1,P25=1,此时38译码器中的Y7=0,进而的得到Y7C=1
P0=0XFF	 //数码管显示数字操作,此时是全关闭
}

  上述详细的解释了继电器蜂鸣器、LED、数码管的初始化操作,以上就是我们刚开始写代码时候的一些初始化操作,当时并不了解为啥初始化操作是这些,刚开始写的时候都是自己背会,并没有了解其中的原理,每个模块学完时候再去了解这些初始化操作,感觉会豁然开朗。这部分就这么多,关键是自己理解原理图加上实践。

发布了64 篇原创文章 · 获赞 70 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/104804680
今日推荐