#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit beep=P2^3; uchar aa,num1;num; void init(); void delayms(uchar); void main() { init(); while(1) { if(RI==1) { RI=0; aa=SBUF; } if(aa==4) { TR0=0; } if(aa!=4) { TR0=1; switch(aa) { case 0x01: num1=8; break; case 0x02: num1=4; break; case 0x03: num1=2; break; } num=num1; } } } void init() { TMOD=0x21; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TH1=0xfd; TL1=0xfd; EA=1; ET0=1; REN=1; SM0=0; SM1=1; ES=1; } void timer0()interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num--; if(num==0) { num=num1; beep=1; delayms(10); beep=0; } } void delayms(uchar xms) { uchar i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } |