📄 tiaoshi.c
字号:
#include <AT89x051.H>
unsigned char buf[5];
unsigned char send;
unsigned char bitnum;
unsigned char bytenum;
int i,j;
unsigned char check,ok;
main()
{
SP=0x60;
EX0=1;
IT0=1;
bitnum=0;
bytenum=0;
buf[0]=0x99;
buf[1]=0x88;
buf[2]=0x77;
buf[3]=0x66;
buf[4]=1;
P3_3=0;
check=0;
EA=1;
for(i=0;i<20;i++) //延时发送间隔
{
for(j=0;j<10000;j++)
{
P3_4=~P3_4;
}
}
while(1)
{
for(i=0;i<2;i++) //延时发送间隔
{
for(j=0;j<10000;j++)
{
P3_4=~P3_4;
}
}
if((buf[4]&0x0f)==0) //准备数据
buf[4]=1;
P3_3=1;
for(j=0;j<10000;j++) //接收转发送的过渡期
{
P3_1=~P3_1;
P3_4=~P3_4;
}
check=1; //可以发送数据了
while(check!=0) //等待数据发送完
{
P3_4=~P3_4;
}
for(i=0;i<100;i++) //发送完
{
P3_4=~P3_4;
}
P3_3=0;
//此后的时间均为发送转接收的过渡期
buf[4]=buf[4]<<1;
}
}
senddata() interrupt 0
{
if(check==1)
{
if(bitnum==0)
send=buf[bytenum];
if((send&0x80)==(0x80))
P3_1=1;
else
P3_1=0;
send=send<<1;
bitnum++;
if(bitnum==8)
{
bytenum++;
bitnum=0;
}
if(bytenum==5)
{
bytenum=0;
check=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -