📄 beep.c
字号:
#include <reg52.h>
//蜂鸣器
sbit IOBeep = P2^0;
unsigned char beep;
// 1 -- 短促的一声
// 2 -- 短促的两声
// 3 -- 短促的三声
// 4 -- 中间间隔较长的短促的一声
// 5 -- 中间间隔较长的短促的两声
// 6 -- 中间间隔较长的短促的三声
// 7 -- 鸣叫声较长的一声
// 8 -- 鸣叫声较长的两声
// 9 -- 鸣叫声较长的三声
//10 -- 中间间隔较长的鸣叫声较长的一声
//11 -- 中间间隔较长的鸣叫声较长的两声
//12 -- 中间间隔较长的鸣叫声较长的三声
//13 -- 响一声1.5秒
//14 -- 连续的一长两短
//15 -- 连续的间隙短促鸣叫声
//超过15将关闭上次设置的蜂鸣器的声音
unsigned char beep_time; //蜂鸣器响的时间
unsigned char BeepKind;
unsigned char BeepNum;
unsigned char BeepE;
unsigned char BeepD;
const unsigned char ConstBeepNum[] = {0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 3, 0};
const unsigned char ConstBeepE[] = {0, 5, 5, 5, 5, 5, 5, 20, 20, 20, 20, 20, 20, 40, 0, 0};
const unsigned char ConstBeepD[] = {0, 15, 15, 15, 40, 40, 40, 50, 50, 50,100,100,100,100, 0, 0};
//蜂鸣器声音
void BeepFunc(void)
{
beep_time++;
if ( beep > BeepKind)
{
BeepKind = beep;
beep_time = 0;
BeepNum = ConstBeepNum[beep];
BeepE = ConstBeepE[beep];
BeepD = ConstBeepD[beep];
beep=0;
}
else beep = 0;
if (BeepKind == 15)
{
if (beep_time < 5) {IOBeep=0;return;}
if (beep_time < 10) {IOBeep=1;return;}
beep_time = 0;
return;
}
if (BeepKind == 14)
{
if (BeepNum == 0) BeepNum = 3;
if (BeepNum == 3) {BeepE = 20;BeepD=50;}
else {BeepE = 5; BeepD = 15;}
if (beep_time<BeepE) IOBeep = 0;
else
{
if (beep_time < BeepD) IOBeep = 1;
else
{
beep_time = 0;
BeepNum--;
}
}
return;
}
if ( (BeepKind >= 1) && (BeepKind <= 13) )
{
if (beep_time<BeepE) IOBeep = 0;
else
{
if (BeepNum == 1) goto beepret;
if (beep_time < BeepD) IOBeep = 1;
else
{
beep_time = 0;
BeepNum--;
}
}
return;
}
beepret:
IOBeep = 1;
BeepKind = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -