|
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint p=0;//必須是uint定義(p占2個字節(jié))
sbit K=P1^7;//按鍵
sbit DoorBell=P3^0;//門鈴
unsigned int i;
void main()
{
DoorBell=0;
TMOD=0x00;
TH0=(8192-700)/32;//700us定時
TL0=(8192-700)%32;
IE=0x82;
while(1)
{
if(K==0)//按下按鍵啟動定時器
{
for(i=0;i<2;i++)//想實(shí)現(xiàn)兩次“叮咚”,但是只能有一次“叮咚”
{
TR0=1;
}
}
}
}
void Timer0()interrupt 1
{
DoorBell=~DoorBell;
p++;
if(p<600) //若需要拖長聲音,可以調(diào)整400 和800
{
TH0=(8192-700)/32; //700us 定時
TL0=(8192-700)%32;
}
else if(p<1200)
{
TH0=(8192-1000)/32; //1ms 定時
TL0=(8192-1000)%32;
}
else
{
TR0=0;
p=0;
}
}
|
|