⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 16_3_3.c

📁 51事例原代码 事例多多 应该对初学者很有用
💻 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 + -