#include<reg51.h>
sbit P1_1=P1^1;
unsigned char q;
void delay(unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
{
for(j=0;j<20;j++);
for(j=0;j<5;j++);
}
}
main()
{
EA=1;
ES=1;
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
do
{
P1_1=0;
delay(60-q);
P1_1=1;
delay(q);
}
while(1);
}
void lanya(void) interrupt 4
{
unsigned char h;
RI=0;
h=SBUF;
if(h==0)
{
q=50;
}
else if(h==1)
{
q=10;
delay(600);
}
else if(h==2)
{
q=30;
}
else
{
q=0;
}
}
/////////////////////////////////////////////////////////
这是一个单片机响应手机蓝牙发出命令的程序(手机可以发出0,1,2,3供单片机接收)。目的是为了完成p1_1口输出高电平分别持续2.28ms,1.37ms,0.47ms的脉冲电波。可是结果却不是。能否找出程序BUG. |