【单片机】按键声光报警实验(蜂鸣器)

51单片机(按键声光报警实验)代码电路图


一、蜂鸣器原理

编写程序,主程序控制发光二极管L1~L4循环轮流闪烁,即同一时刻只有一个LED灯亮。按下SKEY1按键触发外部中断,中断服务程序控制L5~L8同时亮灭闪烁3次后熄灭,及蜂鸣器响3次后停止发声。

二、具体实现(响3次结束)

1.代码

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint i;
sbit FMQ=P1^4;//蜂鸣器FMQ为P1.4口
void delay()
{
	uint i,j;
	for(i=0;i<1000;i++)
		for(j=0;j<50;j++);
}
void intFun0() interrupt 0
{ 
	EX0=1;//禁止外部中断中断
	delay();
	EX0=0;//允许外部中断中断

	for(i=0;i<3;i++)
	{
		P2=0x0f;//P2口 0000 1111
		FMQ=1;//蜂鸣器打开
		delay();

		P2=0xff;//P2口 1111 1111
		FMQ=0;//蜂鸣器关闭
		delay();
	}
}
void main()
{	
	FMQ=0;//蜂鸣器初始化(关闭)
	EA=1;//总开关打开						
	EX0=1;//允许外部中断中断
	IT0=1;//INT0为负跳变触发方式(INT0触发方式控制位)

	P2=0xfe;//端口P2输出: 引脚0号设置低电平,其余设置高电平 1111 1110
		delay();
	P2=0xfd;//端口P2输出: 引脚1号设置低电平,其余设置高电平 1111 1101
		delay();
	P2=0xfb;//端口P2输出: 引脚2号设置低电平,其余设置高电平 1111 1011
		delay();
	P2=0xf7;//端口P2输出: 引脚3号设置低电平,其余设置高电平 1111 0111
		delay();
	

}

2.电路图

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九芒星#

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值