概述
九层妖塔 起于垒土
蓝桥杯模块显示部分Part3:蜂鸣器&继电器
- 蜂鸣器&继电器
- 1、原理图:
- 2、Template:
蜂鸣器&继电器
1、原理图:
2、Template:
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蜂鸣器和继电器的状态就取反一次。
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:蜂鸣器&继电器蜂鸣器&继电器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复