📄 wuxian_rx2.c
字号:
#include <stc12c2052AD.H>// 标准库的头文件
#include <intrins.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define fosc 8 // 晶振频率
#define xianshi 250 // 超时定义
sbit baojing=P1^4;
unsigned char time;
////////////////////////////////
void sen(unsigned char dd)
{
TI=0;
SBUF=dd;
while(!TI)
{};
TI=0;
}
void delay(uint t)
{
uchar i;
while(t--)
{ for (i=200;i>0;i--);
{}}
}
/*void int_t0(void) interrupt 1
{
time++;
}*/
uchar jingdi(void)
{
uchar i,temp;
temp=1;
for(i=3;i>0;i--)
{
baojing=0;
delay(300);
baojing=1;
delay(100);
}
return temp;
}
void main()
{
uchar j;
uchar shuju[1];
TL1=0xfa;
TH1=0xfa;
TL0=0xff;
TH0=0x00;
TMOD=0x21;
SCON=0x50; // 串口工作方式1,允许接收
PCON = 0x80;
ET0=1;
TR0=1;
EA=1;
REN=1;
TR1=1;
TI = 0; //发送中断标志位置零
RI = 0; //接收中断标志位置零
baojing=0;
delay(100);
baojing=1;
while(1)
{
j=0;
start:
if(time>xianshi)
{
time=0;
//jingdi();
sen(0x99);
goto start;
}
else{
if(j==13)
{j=0;
jingdi();
sen(0x88);
goto start;
}
else{
RI=0;
sen(0x05);
while(!RI);
shuju[0]=SBUF;
delay(100);
sen(shuju[0]);
if (shuju[0]==0x09)
{
j=0;
delay(200);
goto start;
}
else{
j++;
goto start;
} //判断是否接收到数据如果是66继续报接收信号!如果接受不到开始记数超过一定时间报警!
}//if2
}//if1
}//while(1)
} //main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -