51单片机 中断控制蜂鸣器
程序员文章站
2022-06-08 19:58:43
...
51单片机 中断控制蜂鸣器
单片机通过使用外部中断控制蜂鸣器。
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
// 定义蜂鸣器连接的引脚
sbit beep = P1^0;
// 延时函数
void delay(uint x)
{
uchar i;
while(x--)
for(i=0;i<120;i++);
}
// 初始化外部中断1
void INT1_Init()
{
EA=0;
EX1 = 1;
IT1 = 1;
EA = 1;
}
void main()
{
// 调用初始化中断1
INT1_Init()
while(1)
{
}
}
// 外部中断1
void INT1_int1() interrupt 2
{
delay(10); // 延时消抖
if(!INT1)
{
beep=INT1;
while(1) // 蜂鸣器响
{
beep =~beep;
delay(1);
if(INT1) // 如果按钮松开
{
beep = INT1;
break;
}
}
}
}