📄 rf_test.c
字号:
#include"reg51.h"
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define nop _nop_() /* 定义空操作指令 */
sbit in=P3^4;
sbit out=P3^6;
uchar dat_1,dat_2;
bit inter_psw=0;
/**********************************************/
void delay(uint v)
{
while(v!=0)v--;
}
/**********************************************/
void DL(void)
{
uchar i;
for(i=0;i<7;i++)
{
delay(7000);
}
}
/*********************************************/
void process(void)
{
uchar i;
EA=0;
for(i=0;i<8;i++)
{
delay(102);
if(in)goto pro_end;
}
while(!in)nop;
delay(544);
for(i=0;i<8;i++)
{
while(!in)nop;
delay(102);
if(!in){dat_1=dat_1>>0x01;}
else {delay(114);dat_1=(dat_1>>0x01)|0x80;}
}
delay(544);
for(i=0;i<8;i++)
{
while(!in)nop;
delay(102);
if(!in){dat_2=dat_2>>0x01;}
else {delay(114);dat_2=(dat_2>>0x01)|0x80;}
}
if(dat_1==0xc4)
{EA=0;if(dat_2==0x05)out=~out;SBUF=dat_2;while(TI==0);TI=0;EA=1;DL();}
pro_end:;
EA=1;
}
/*************************************************************/
void T0_count(void)interrupt 1 using 1
{
inter_psw=1;
}
/*************************************************************/
void main(void)
{
dat_1=0x00;
dat_2=0x00;
TMOD=0x26; //T1工作方式2
TH1=0xfd; //串口波特率为9600
TH0=0xff;
TL0=0xff;
SCON=0x40; //串口工作与方式1并禁止接受
EA=1;
ET0=1;
TR0=1;
TR1=1;
while(1)
{
if(inter_psw){process();inter_psw=0;}
}
}
/**************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -