📄 16_3_3.c
字号:
//电子栏杆接收部分程序C51程序
#include <AT892051.h>
#include <intrins.h>
main()
{
unsigned int data t0;
register unsigned char t1,t2,t3, t8;
P3_0=0; //开启继电器,指示灯亮
P3_1=1; //关闭应答信号
for (t0=0;t0<=10000;t0++)//延时
_nop_();
a1: for (t8=0;t8<=16;t8++)
{
P3_0=0; //开启继电器,指示灯亮
P3_1=0; //发出应答信号
if ((P1_1==0)||(P3_5==0))//H3、H4至少有一个收到红外线信号
t1=0; //t1清零
else t1++; ///H3、H4都没有收到红外线信号,t1计数
if ((P1_7==0)||(P3_5==0)) //H3、H2至少有一个收到红外线信号
t2=0; //t2清零
else t2++; ///H3、H2都没有收到红外线信号,t2计数
if ((P1_7==0)||(P1_6==0)) //H1、H2至少有一个收到红外线信号
t3=0; //t3清零
else t3++; ///H1、H2都没有收到红外线信号,t3计数
}
for (t0=0;t0<=1000;t0++)
P3_1=1; //关闭应答信号
if ((t1>=50)||(t2>=50)||(t3>=50)) //有相邻的两束红外线被遮住一定时间
{
P3_0=1; //继电器断开,指示灯灭,发报警信号
for (t0=0;t0<=50000;t0++)
_nop_(); //延时
}
goto a1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -