#include<reg52.h>#define uchar unsigned char#define uint unsigned int/*由上位机发送1给单片机时,蜂鸣器以400ms频率发声,发2时以200ms频率发声,发3时以100ms频率发声,发4时关闲蜂鸣器。*/sbit beep=P2^3;uchar num,val,count;void init(){ TMOD=0x21; TH1=0xfd; TL1=0Xfd; TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ES=1; ET0=1; SM0=0; SM1=1; REN=1;// ET1=1; TR0=0; TR1=1;}
void main(){ init(); while(1) { switch(val) { case 1: num=8; TR0=1; break; case 2: num=4; TR0=1; break; case 3: num=2; TR0=1; break; case 4: beep=1; TR0=0; break; default: break; } }
}
void ser() interrupt 4{ val=SBUF; RI=0;}
void time0() interrupt 1{ TH0=(65535-50000)/256; TL0=(65535-50000)%256; count++; if(count==num) { count=0; beep=~beep; }}