楼主,[求助] 8051 发射RC5遥控器源码!是否可以共享一个?
我自己写了下面这一段,没有办法实现呀!
void YKInit() //遥控接收初始化 { YKDatas[0] = YKDatas[1] = YKDatas[2] = 0; YKcount = 0; YKtype = 0; YKend = 0; }
void time0() interrupt 1 { //第一次进入中断前, 定时1/4位的时间:445us, 以后则定时一位时间1.778ms //即在3/4位时间时, 判断该位是1还是0 //实际测试中, 位时间只在1.651ms(+- 1ms), 定时1/4位的时间:413us bit in = ~YKIn; //一体化解码后, 有载频部分变为低电平, 即低电平实际为1, 高电平实际为0 //设置定时器初值 //模式1: TH0 = (2^16 - (1651/1.085)) / 2^8 = (65536 - 1651/1.085) / 256 = 250; //TL0 = (65536 - 1651/1.085) % 256 = 14 TH0 = 250; TL0 = 14; YKDatas[YKtype] = YKDatas[YKtype] | in; //将数据放入最低位 YKcount++; if(YKcount == 3) //获取完Start bits 和control bit, 共3位 { YKtype = 1; } else if(YKcount == 8) //获取完system bits, 共5位 { YKtype = 2; } else if(YKcount == 14) //获取完commond bits, 共6位 { YKtype = 3; } else if(YKtype == 3) //等待最后1/4位时间结束, 实际延时1位时间 { YKend = 1; YKcount = 0; YKtype = 0; TR0 = 0; //接收结束, 停止定时器0 return; } else //将数据左移一位, 以便将一下位数据并于最低位 { YKDatas[YKtype] = YKDatas[YKtype] << 1; } } |