📄 16_3_2.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 + -