我是靠谱客的博主 专注铃铛,这篇文章主要介绍蓝桥杯模块显示部分Part3:蜂鸣器&继电器蜂鸣器&继电器,现在分享给大家,希望可以做个参考。

   九层妖塔 起于垒土
在这里插入图片描述

蓝桥杯模块显示部分Part3:蜂鸣器&继电器

  • 蜂鸣器&继电器
    • 1、原理图:
    • 2、Template:

蜂鸣器&继电器

1、原理图:

在这里插入图片描述

2、Template:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sbit Relay_Switch = P0^4; sbit Buzz_Switch = P0^6; bit Relay_S,Buzz_S; //继电器、蜂鸣器状态值 void Relay_Buzz(); void Relay_Buzz() { Relay_Switch = Relay_S; //开关继电器 Buzz_Switch = Buzz_S; //开关蜂鸣器 P2 = P2&0X1F|0XA0; P2&=0X1F; //关573 }

Notes:
 ●继电器驱动引脚为P04,蜂鸣器驱动引脚为P06。P0口经过U9锁存器,和达林顿管来间接驱动继电器和蜂鸣器。
 ●达林顿管为放大器+反相器。
 ●若开U9锁存器对其中之一操作,必须对另一个也进行操作。 若只操作继电器,则由于P0口的值无法确定,蜂鸣器的状态也无法确定。整体赋值则更不好确定上一次的状态。
 ●其实只要打开锁存器,无论人为操作几个I/O口,实际上,P0口的所有值都被送入锁存器。
 ●使用全局变量Relay_S,Buzz_S分别来保存继电器和蜂鸣器的状态值。
 ●对继电器和蜂鸣器的操作与动态数码管,动态LED不同。
 ●简单就好,形参,静态局部变量,现态,次态没有必要。
例:
分别按下按键S4,S5蜂鸣器和继电器的状态就取反一次。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void main(void) { All_Init(); //开发板初始化 while(1) { if(P33==0) { Delay10ms(); if(P33==0) { Relay_S=!Relay_S; //次态 Relay_Buzz(); while(!P33); } } if(P32==0) { Delay10ms(); if(P32==0) { Buzz_S=!Buzz_S; //次态 Relay_Buzz(); while(!P32); } } } }

最后

以上就是专注铃铛最近收集整理的关于蓝桥杯模块显示部分Part3:蜂鸣器&继电器蜂鸣器&继电器的全部内容,更多相关蓝桥杯模块显示部分Part3内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部