#include<reg51.h>
sbit beep=P1^5;
void xiang(unsigned char);
void init(void);
void chushi(void);
unsigned char a,num;
unsigned int n;
void main()
{
init();
while(1)
{
if(RI==1) //½óêÕ¼ì2a
{
RI=0;
P0=SBUF; //ledÏÔê¾½óêÕμ½μÄêy¾Y
num=SBUF;
xiang(num); //¸ù¾Y½óêÕμ½μÄêy¾YéèÖÃÆμÂê
}
if(n>10*a) ////////ìØ±eÇ¿μ÷£oμ±D′Îan==10*aê±£¬3ìDò3ö′í//////// //////////
{
TR0=0;
n=0; //′ÎêyÇåáã
beep=~beep;
TR0=1;
}
}
}
void xiang(unsigned char num)
{
TR0=0; //μ±½óêÕμ½μÄêy×Ö2»êÇÔ¤éèêy×Öê±£¬1رն¨ê±Æ÷T0
//EA=0;
chushi();
if(num==0x01) {a=4; TR0=1; } //ÎaóDD§DÅoÅÔò′ò¿aT0
if(num==0X02) {a=2;TR0=1;}
if(num==0X03){a=1;TR0=1;}
//EA=1;
}
void time0() interrupt 1
{
TR0=0;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
n++;
TR0=1;
}
void init()
{
a=0;
n=0;
num=0;
SCON=0X50; //′®¿úí¨DÅ1¤×÷·½ê½éèÖÃÎa·½ê½1
TMOD=0X21; //éèÖüÆêyÆ÷1¤×÷·½ê½£¬T1Îa×Ô¶ˉ֨װ·½ê½£¬T0Îa16λ¼Æêy
PCON=0X80; //2¨ìØÂê¼ó±¶
TH1=0XF3; //×°3õÖ죬éèÖÃ2¨ìØÂê
TL1=0XF3;
TH0=(65536-10000)/256; //T03õê¼ÖμéèÖÃ(10ms) 0xd8
TL0=(65536-10000)%256; //f0
TR1=1; //¿a¼Æê±Æ÷1
//TR0=1;
EA=1;
ET0=1;
}
void chushi()
{
TH0=(65536-10000)/256; //T03õê¼ÖμéèÖÃ(10ms)
TL0=(65536-10000)%256;
}
|