
/*名稱:報(bào)警與旋轉(zhuǎn)燈
說明:定時(shí)器控制報(bào)警燈
旋轉(zhuǎn)顯示,并發(fā)出仿真警報(bào)聲。
*/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitSPK=P3^7;
ucharFRQ=0x00;
//延時(shí)
voidDelayMS(uintms)
{
uchari;
while(ms--)for(i=0;i<120;i++);
}
//INT0中斷函數(shù)
voidEX0_INT()interrupt0
{
TR0=~TR0;//開啟或停止兩定時(shí)器,分別控制報(bào)警器的聲音和LED旋轉(zhuǎn)
TR1=~TR1;
if(P2==0x00)
elseP2=0xe0;//開3個(gè)旋轉(zhuǎn)燈
}
P2=0x00;//關(guān)閉所有LED
//定時(shí)器0中斷
voidT0_INT()interrupt1
{
TH0=0xfe;
TL0=FRQ;
SPK=~SPK;
}
//定時(shí)器1中斷
voidT1_INT()interrupt3
{
TH1=-45000/256;
TL1=-45000%256;
P2=_crol_(P2,1);
}
//主程序
voidmain()
{
P2=0x00;
SPK=0x00;
TMOD=0x11;//T0、T1方式1
TH0=0x00;
TL0=0xff;
IT0=1;
IE=0x8b;//開啟0,1,3號(hào)中斷
IP=0x01;//INT0設(shè)為最高優(yōu)先
TR0=0;
TR1=0;//定時(shí)器啟停由INT0控制,初始關(guān)閉
while(1)
{
FRQ++;
DelayMS(1);
}
}



為了方便大家更好的學(xué)習(xí),您還可以關(guān)注暢學(xué)電子和EDA的公眾號(hào),每天推送相關(guān)知識(shí),希望能對(duì)你的學(xué)習(xí)有所幫助!

