51單片機(jī)程序——定時(shí)器控制蜂鳴器
#define uint unsigned int
sbit bb=P3^5; //位定義蜂鳴器接口
sbit led1=P0^0; //位定義LED接口
unsigned int i=0;
void delay(uint z); //延遲函數(shù)聲明
void main()
{
TMOD=0x01; //TMOD賦值,以確定T0和T1的工作方式
TH0=(65536-50000)/256; //計(jì)算初值,并將其寫入TH0、TL0或TH1、TL1
TL0=(65536-50000)%6;
EA=1; //打開總中斷
ET0=1; //打開定時(shí)器0中斷
TR0=1; //啟動(dòng)定時(shí)器0
while(1)
{
if(i==20) //定時(shí)器計(jì)數(shù)時(shí)間20*50MS=1S
{
i=0; //清除標(biāo)志位
led1=0;
bb=0;
delay(500);
led1=1;
bb=1;
delay(500);
}
}
}
void exter0() interrupt 1 //定時(shí)器0中斷函數(shù)
{
TH0=(65536-50000)/256; //中斷函數(shù)中也需要賦定時(shí)器初值
TL0=(65536-50000)%6;
i++; //定時(shí)器每50MS就使i加一
}
void delay(uint z) //延遲函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
評(píng)論