📄 com_send.c
字号:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar data bb1[4]={1,2,3,4};
uchar data bb2[4]={11,12,13,14};
uchar data b1[4];
sbit iop=P3^5;
sbit INTin=P3^3;
#define delay5() _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
#define delay15() _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
bit send_two(uchar aa,uchar flag,uchar c,uchar data *b,uchar a)
{
uchar i,n,mr;
EA=0;
P1=aa;
delay5();
i=P1;
if (i!=aa)
{
EA=1;
P1=0xff;
return(0);
}
INTin=0;
for(i=0;i<10;i++)
{
if(iop==0)break;
if(i>5)
{
EA=1;
P1=0xff;
return(0);
}
}
delay5();
while(iop==0);
P1=flag;
iop=0; delay5(); iop=1; delay5();
P1=c;
iop=0; delay5(); iop=1; delay5();
P1=a;
n=c;
iop=0;delay15();
P1=0xff;
iop=1;delay5();
if(flag==0)
{
for(i=0;i<a;i++)
{
P1=b[i];
iop=0; n+=b[i]; delay15(); iop=1; delay15();
}
}
else if(flag==1)
{
for(i=0;i<a;i++)
{
while(iop==1);
b[i]=P1;
n=b[i]+n;
while(iop==0);
}
}
else
{
P1=0xff;
EA=1;
return(1);
}
P1=n;
iop=0; delay5(); iop=1; delay5();
P1=0xff;
iop=0; delay5();
mr=P1;
for(i=0;i<5;i++)
{
if(mr!=0xff)
{
break;
}
mr=P1;
}
mr=P1;
iop=1;
INTin=1; EA=1;
if(mr==0x55)return(0);
else return(1);
}
main()
{
bit i;
i=1;
aaa:
while(i)
{
i=send_two(0x01,0x01,0x01,bb1,4);
delay15();
}
i=1;
goto aaa;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -