蓝桥杯实验1

开局一张图,内容全靠编

蓝桥杯实验1_第1张图片
上面这张图是本次用的内容,这就是蓝桥杯电路板的一部分,现在的实验就是控制蜂
鸣器,图中的那个 LED 就代表蜂鸣器,蓝桥杯开发板的蜂鸣器是有源的,有压差就可
以响,所以我用 LED 灯代替(因为 proteus 本身的蜂鸣器不太真→_→),控制继电器
和控制蜂鸣器的方法一样,所以我把继电器也画出来了.
首先我的先说一下用到的器材, 89C52 这是必需的,之后是 74HC138 这是一个译码
器, 一会讲; 74HC02 或非门,也一会儿讲; 74HC573 锁存器, 还是一会儿讲;
ULN2003 这个可以理解成一个驱动器;继电器和蜂鸣器就不用说了。
74HC138:这个玩意儿叫真值表 ↓↓↓

蓝桥杯实验1_第2张图片
看这个图片; 举个栗子: control 是控制引脚只有 E1=L,E2=L,E3=H,
它的 input 才有效, 比如输入的是 LLH,输出的就是 HHHH HHLH;程序中就是输入 001 输出 1111 1101.
74HC02 或非门:
这是一个逻辑门。逻辑关系就是下面的
输入 A 输入 B 输出 Y
0            0            1
0            1            0
1            0            0
1             1           0
解释一个 : 0 和 0 或就是 0(0 | 0 = 0) 0 非关系就是 1(~0 = 1)
最后一个: 74HC573 锁存器: 这个解释起来好麻烦啊!!! 你就记住锁存器,存状态的
器件就行了。
如果程序中使用完 573 后,记得及时的禁止使能!
本实验可以这样写:
P2 = P2 & 0x1f; //高四位 0001 对应的就是 P7654 的状态是 0001,所以控制的译码器就是 LLL,输出的就是
//HHHH HHHL, 即 Y5 为低,输出为高, LE 为低,通道关。 当 LE 为低时数据就锁住了。 这叫禁止使能
所以我们就可以控制蜂鸣器了。

#include 
typedef unsigned int u16;
typedef unsigned char u8;
sbit Buzz = P0^6;
void delay(u16 ms)
{
    u16 i,j;
    for(i = ms; i > 0; i --)
        for(j = 114; j > 0; j --);
}
void main()
{
    while(1)
    {
        P2 = ((P2 & 0X1F) | 0XA0);//开启使能
        Buzz = 1;
        delay(500);
        Buzz = 0;
        delay(500);
        P2 = P2 & 0X1F; //禁止使能
    }
}

同理,我们可以控制继电器
只要把 Buzz = P0^6;换成 Relay = P0^4 就行了,记得把相关变量改一下。
 

你可能感兴趣的:(蓝桥杯学习笔记)