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

📄 16_3_2.c

📁 51事例原代码 事例多多 应该对初学者很有用
💻 C
字号:
//电子栏杆发射部分C51程序
#include <AT892051.h>
#include <intrins.h>

void dlb(void);			//延时程序1
void dlc(void);			//延时程序2

main()
{
unsigned char data t1;
a1:	for (i=0;i<=800;i++)//检测高电平长脉冲
		if (P3_0==0) goto a1;
	do					//等待下一个应答信号
		_nop_();
	while (P3_0!=0);
	do
		{
		P3_5=0;			//DS4发红外线信号
		P1_1=0;			//DS3发红外线信号
		dlb();			//低电平延时
		P3_5=1;			//DS4停止发红外线信号
		P1_1=1;			//DS3停止发红外线信号
		dlc();			//高电平延时
		}
	while (P3_0==0);
	do					//等待下一个应答信号
		_nop_();
	while (P3_0!=0);
	do					//有应答信号
		{
		P1_6=0;			//DS2发红外线信号
		P1_1=0;			//DS3发红外线信号
		dlb();			//低电平延时
		P1_6=1;			//DS2停止发红外线信号
		P1_1=1;			//DS3停止发红外线信号
		dlc();			//高电平延时
		}
	while (P3_0==0);
	do					//等待应答信号
		_nop_();
	while (P3_0!=0);
	do					//有应答信号
		{
		P1_6=0;			//DS2发红外线信号
		P1_7=0;			//DS1发红外线信号
		dlb();			//低电平延时
		P1_6=1;			//DS2停止发红外线信号
		P1_7=1;			//DS1停止发红外线信号
		dlc();			//高电平延时
		}
	while (P3_0==0);
	goto a1;
}

void dlb(void)			//延时程序1
{
	_nop_();
}

void dlc(void) 			//延时程序2
{
	_nop_();
	_nop_();
	dlb();
	dlb();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -