/* 名称:用定时器设计的门铃
说明:按下按键时蜂鸣器发出叮咚的门铃声。
*/
#includereg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitKey=P1^7;
sbitDoorBell=P3^0;
uintp=0;
//主程序
voidmain()
{
DoorBell=0;
TMOD=0x00; //T0方式0
TH0=(8192-700)/32;//700us定时
TL0=(8192-700)%32;
IE=0x82;
while(1)
{
if(Key==0) //按下按键启动定时器
{
TR0=1;
while(Key==0);
}
}
}
voidTimer0()interrupt1
{
DoorBell=~DoorBell;
p++;
if(p400) //若需要拖长声音,可以调整400和800
{
TH0=(8192-700)/32;//700us定时 TL0=(8192-700)%32; } elseif(p800) { TH0=(8192-1000)/32;//1ms定时 TL0=(8192-1000)%32; } { TR0=0; p=0; } }
else
扩展阅读:按键控制 8X8LED 点阵屏显示图形程序