16_3_2.c
来自「单片机学习的例程.rar 学习单片机要从最基本的学起。对于初学者来说很适合的单片」· C语言 代码 · 共 67 行
C
67 行
//电子栏杆发射部分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 + =
减小字号Ctrl + -
显示快捷键?