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; } } } }