#include<reg52.h> sbit beep=P2^3; unsigned char flag1,flags,num,a,hz; void init() { TMOD=0x21; TH1=0xfd; TL1=0xfd; TH0=(65535-50000)/256; TL0=(65535-50000)%256; SM0=0; SM1=1; REN=1; EA=1; ES=1; ET0=1; // ET1=1; TR0=0; TR1=1; } void main() { init(); hz=1; TR0=0; while(1) { if(flags==1) { //EA=0; flags=0; // TR0=0; TR0=1; switch(a) { case '1':hz=8;break; case '2':hz=4;break; case '3':hz=2;break; case '4':TR0=0;break; default: TR0=0; break; } //TR0=1; // EA=1; } } } void serial_port() interrupt 4 { RI=0; a=SBUF; flags=1; P1=a; //LED灯观察 SBUF=a; //将数送回上位机观察 while(!TI); TI=0; } void timer0() interrupt 1 { TH1=(65535-50000)/256; TL1=(65535-50000)%256; num++; if(num==hz) { num=0; beep=~beep; } } |