📄 test.c
字号:
#include <REGX51.H>
#define Uchar unsigned char
sbit IR_P=P3^2;
Uchar Code_Dat[4]={0,0,0,0};
void Code_Delay(void) //基准
{
unsigned char i=50;
while(--i);
}
/***************************************************************
**此程序是为了测试所用的遥控器的0、1编码及引导码的占空比 **
**占空比是基于基准的,所需测试的有4个量: **
**引导码的高电平需几个Code_Delay,低电平需几个Code_Delay **
**其实0、1的编码的高电平是相同的 **
**只需测出1的低电平需几个Code_Delay,0的低电平需几个Code_Delay **
****************************************************************/
//测试高电平长度
void INT_0() interrupt 0 using 2
{
Uchar i,j=2,k=0; //j为测试编码的第几位的高电平,注意:引导码j=0。
P0=0xF0;
EX0=0;
i=100;
Code_Delay();
while(!IR_P); //低电平,等待(不发送编码的时候,IR_P为高电平)
while(j--)
{
Code_Delay();
while(IR_P);
Code_Delay();
while(!IR_P);
}
while(i--)
{
Code_Delay();
k++;P0=k;
if(!IR_P) {EX0=0; return ;}
P2=k;
}
EX0=0;
return;
}
/******************************************************************************
//测试低电平长度
void INT_0() interrupt 0 using 2
{
Uchar i,j=2,k=0; //j为测试编码的第几位的低电平,注意:引导码j=0。
P0=0xF0;
EX0=0;
i=100;
Code_Delay();
while(IR_P); //高电平,等待
while(j--)
{
Code_Delay();
while(!IR_P);
Code_Delay();
while(IR_P);
}
while(i--)
{
Code_Delay();
k++;P0=k;
if(IR_P) {EX0=0; return ;}
P2=k;
}
EX0=0;
return;
}
*********************************************************************************/
main()
{
EA=1;//打开CPU总中断请求
IT0=1;//设定INT0的触发方式为脉冲负边沿触发
EX0=1;//打开INT0中断请求
P0=0xFF;
P1=0xFF;
P2=0xFF;
P3=0xFF;
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -