📄 out.c
字号:
#include <out.h>
#include <reg51.h>
#include <head.h>
out( unsigned int addr, unsigned char value)
{*( unsigned char xdata *)addr=value;
}
in(unsigned int addr)
{unsigned char value;
P0=0xFF;
value=*(unsigned char xdata *)addr;
return(value)
;}
test()
{
out(TEST,0xAA);
while((in(TEST)^0xAA))
out(TEST,0xAA);
}
RCVDATA()
{unsigned char i;
buf[0]=in(CANRXB);
if(buf[0]&0x80)
{if(buf[0]&0x40)
{my_flag.flags.REC_REMOTE_FRAME=1;
buf[1]=in(RX_1);
buf[2]=in(RX_2);
buf[3]=in(RX_3);
buf[4]=in(RX_4);
}
else
{my_flag.flags.REC_DATA_FRAME=1;
for(i=1;i<=((buf[0]&0x0F)+4);i++)
buf[i]=in(CANRXB+i);
}
}
else
{if(buf[0]&0x40)
{my_flag.flags.REC_REMOTE_FRAME=1;
buf[1]=in(RX_1);
buf[2]=in(RX_2);
}
else
{my_flag.flags.REC_DATA_FRAME=1;
for(i=1;i<=((buf[0]&0x0F)+2);i++)
buf[i]=in(CANRXB+i);
}
}
out(CMR,0x04);
}
TDATA()
{unsigned char i;
out (CANTXB,tuf[0]);
out (TX_1,tuf[1]);
out (TX_2,tuf[2]);
if (!(tuf[0]&0x80))
{
if(tuf[0]&0x40);
else
for(i=0;i<(tuf[0]&0x0F);i++)
out(TX_3+i,tuf[i+5]);
}
else
{
out (TX_3,tuf[1]);
out (TX_4,tuf[2]);
if(tuf[0]&0x40);
else
for(i=0;i<(tuf[0]&0x0F);i++)
out(TX_DATA1+i,tuf[i+5]);
}
out (CMR,0x01);
}
REC_REMOTE()
{
tuf[0]=0x01;
tuf[1]=0x00;
tuf[2]=0x02;
TDATA();
out(LED,0x01);
}
REC_DATA()
{if(buf[0]&0x80)
out(LED,buf[5]);
else
out(LED,buf[3]);
}
ERR()
{unsigned char b;
b=in(SR);
if(b&0x80)
{if(b&0x40)
{while (!(in(MODE)&0x01))
{out(MODE,(in(MODE)|0x01));
out(LED,0x55);
}
buf[0]=0x0;
tuf[0]=0x0;
delay(2);
while (in(MODE)&0x01)
{out(MODE,(in(MODE)&0xFE));
out(LED,0x55);
}
}
}
else
while (in(MODE)&0x01)
{out(MODE,(in(MODE)&0xFE));
out(LED,0x55);
}
}
BERR()
{while (!(in(MODE)&0x01))
{out(MODE,(in(MODE)|0x01));
out(LED,0x55);
}
delay(2);
while (in(MODE)&0x01)
{out(MODE,(in(MODE)&0xFE));
out(LED,0x55);
}
}
readdata()
{unsigned char b;
P1=0xFF;
b=P1;
delay1(0xFF02);
if(b==P1);
else
b=tuf[5];
return(b);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -