从单片机基础到程序框架(全集 2019pdf版) - 第487页
} void LedCl ose(void) { P1_4=1; } void Voice Scan(void ) { static u nsigned cha r Su8Lock= 0; if(1==vGu8 BeepTimer Flag&&vGu16B eepTimerC nt>0) { if(0==Su 8Lock) { Su8Lock=1; BeepOpen (); } else { vGu16Bee pT…

TMOD=0x01;
TH0=0xfc;
TL0=0x66;
EA=1;
ET0=1;
TR0=1;
}
void Delay(unsigned long u32DelayTime)
{
for(;u32DelayTime>0;u32DelayTime--);
}
void PeripheralInitial(void)
{
/* 注释三:
* 把 LED 的初始化放在 PeripheralInitial 而不是放在 SystemInitial,是因为 LED 显示内容对上电
* 瞬间的要求不高。但是,如果是控制继电器,则应该把继电器的输出初始化放在 SystemInitial。
*/
//根据 Gu8LedStatus 的值来初始化 LED 当前的显示状态,0 代表灭,1 代表亮
if(0==Gu8LedStatus)
{
LedClose(); //关闭 LED
}
else
{
LedOpen(); //点亮 LED
}
}
void BeepOpen(void)
{
P3_4=0;
}
void BeepClose(void)
{
P3_4=1;
}
void LedOpen(void)
{
P1_4=0;

}
void LedClose(void)
{
P1_4=1;
}
void VoiceScan(void)
{
static unsigned char Su8Lock=0;
if(1==vGu8BeepTimerFlag&&vGu16BeepTimerCnt>0)
{
if(0==Su8Lock)
{
Su8Lock=1;
BeepOpen();
}
else
{
vGu16BeepTimerCnt--;
if(0==vGu16BeepTimerCnt)
{
Su8Lock=0;
BeepClose();
}
}
}
}

第一百零二节: 两个“任意行输入”矩阵按键的“有序”组合触发。
【102.1 “异行输入”“同行输入”“有序”。】
上图 102.1.1 有源蜂鸣器电路
上图 102.1.2 LED 电路