大米861 发表于 2023-8-11 11:51 终于明白了。因原码函数 void EROM_W(uchar n,uint x,uchar dat) 有3个参数,uchar n,为扇区,uint x,为地址,uchar dat ,是要写入的数据。EROM_W(1,5,num1),即为 第 1 扇区,第 5 字节,写入num1。悟了写出来,避免以后有我一样笨的能避坑。 |
虚心向大前辈们请教:EROM_W(1,5,num1)里,后面的num1是什么作用?与:EROM_W(1,5)结果有啥不同? |
hq2000 发表于 2020-12-16 11:48 原文中的NEC[3]是数据反码,改文中的NEC[1]是数据正码,运算结果不一样吧? |
按照机顶盒的编码规范,修改了楼主的一些参数(只接收前2个8位),结果原配的遥控器没有反应,但后来买的备用遥控器反而可以使用,但遥控机顶盒时,两个都能够正常使用的,并且,用读码器读到的两个遥控器的红外码是一样的。不知是什么原因? 楼主可以按照机顶盒的编码,修改一下程序吗?谢谢! |
后来,查了一下有线电视机顶盒的编码规范,并与NEC码进行了对比。如下图所示: |
为了知道自己遥控器的用户码,买了一个红外遥控器解码器,但即使将程序换成自己的用户码,还是不能读到遥控器。 后来参考网上的方法,将程序里的频率改为12M,但Keil的设置频率及下载器频率按11.0592M,就可以读到部分遥控器,并能正常控制。 但有部分遥控器不能读到:如有线电视机顶盒的遥控器、LED吸顶灯的遥控器等。 |
将程序下载到STC15W104的继电器控制板,按遥控器只有LED频闪,松开按键,LED灯熄灭。但继电器不会通断。不知是怎么回事。 |
这个只能用于nec编码的遥控器吧 |
本帖最后由 职教电子 于 2020-2-7 15:12 编辑 “ if(tm>27000000) //风扇开启3小时后关闭(3*3600*1000000us/400us=27000000次) { m1=1; //风扇停电 tm=27000001; //停止计时防止溢出” 其中m1=1应该为m1=0.否则,3小时后不会停。另外把 #define Boot_Limit (((9000+4500) +2000)/Step) //引导码周期上限 #define Boot_Lower (((9000+4500) -2000)/Step) //引导码周期下限 这两句改为 #define Boot_Limit (15500/Step) //引导码周期上限 #define Boot_Lower (7000/Step) //引导码周期下限 能适合更多的遥控器使用。因为9012的引导码为4500+4500,7462的引导码是9000+4500. |
文件打不开,.hex文件烧录软件都打不开 |
谢谢分享,学习学习 |
这个电路图画的看的我有点懵逼,不知道附件里的原理图是不是也这样 |
这个更好 stc15w104是宽电压,可以用旧的手机电池供电,做个小型遥控器。 |
谢谢分享 |
风158 发表于 2019-8-30 21:41 试过在6秒内学习前面没有提示,不知道根本不会使用还以为,程序有问题劰,加个LED提示就好 |
ll13536121668 发表于 2019-8-30 16:36 你说的这些功能不是不能实现,只是个人感觉是画蛇添足意义不大。 首先,这个程序已经有按键提示了(蜂鸣器或led指示灯),再增加一个学习指示灯意义不大。在电源电路中增加一个电源指示灯,并与红外接收器放一起,用以给遥控器指示一个目标,这个都比学习指示灯更有意义。 其次,首次开机时必须学习按键,否则无法遥控。再增设一个10秒后自动退出学习状态功能就没有任何意义了,反而添乱。 这个程序在任何时候长按按键6S以上就会自动学习新按键,是非常实用的。 |
师博你好;可以增加一只led灯用来学习状态显示吗 上电立即进入学习状态,红色LED灯闪动,用电视机或DVD遥控器对着红外接收器,按下其中任一按键发射信号,红色LED灯熄灭,蜂鸣器叫一声,表示学习成功。该按键会被自动识别对应使用。 在学习状态如果没有按下任何遥控器按键,10秒后自动退出学习状态 |