当P0^0接收到信号时,每接收a个高电平,P1^0输出一组方波,为c个脉冲;
当P0^1接收到信号时,每接收b个高电平,P1^0输出一组方波,为c个脉冲。
方波的频率可以先不考虑,a,b,c均为常数
#include <reg51.h>
sbit P0^0 = P00;
sbit P0^1 = P01;
sbit P1^0 = P10;
void P10_OUT(void)
{
char c = 20;
while(c) {
P10 = 0; DELAY();
P10 = 1; DELAY();
c--;
}
}
void main(void)
{
char a = 0, b = 0;
bit P00H = 0, P01H = 0;
while(1) {
//下面检测 P00
if (P00) P00H = 1; //信号是高电平, 就记录下来
else { //信号是低电平
if (P00H) { //如果上次是高电平,
a++; //这就是收到了一个信号
if(a == 100) { //到了100 ?
P10_OUT();//就输出
a = 0;
}
}
P00H = 0;
} //上面的,实际上是检测 P00 输入下降沿的个数
//下面检测 P01
//和上面的程序,雷同,略。
// …………
}
}
温馨提示:内容为网友见解,仅供参考