|
你上面的程序是:按键控制串口发送5个十六进制代码。 你的红外模块功能和参数我也不知道,所以不清楚你的模块是怎么工作的?只能猜测它会发射你要的代码出去。 一般NEC代码的格式是:一个起始代码 + 一个用户码 + 一个用户码反码 + 一个数据代码 + 一个数据代码反码。 如果你的模块也是这样发送的,那就要看你用什么接收这个信号?是模块还是你学习板上面的红外接收头? 如果是模块的话,估计是通过串行通讯给你的学习板发送代码,你需要编写串行通讯接收函数来接收这个信号,再根据信号控制LED灯; 反之要是通过学习板上的接收头接收,那就要编写红外接收函数来处理,而不是串行接收代码函数。 |
|
仅仅编一个红外遥控解码的程序,难度不太大,最难的是在一段程序里插入红外遥控解码程序,红外发射的信号慢、速率低,造成遥控解码程序速度也很慢,要想完整解码所有的红外发射数据,势必影响主程序的运行,前段时间我就编了一个红外接收程序,外部中断进入红外接收程序,解码完成后又用定时中断退出外部中断,就用这个方法,我编出来的红外遥控解码程序相当好用,灵敏度很高,距离够远,对主程序的影响在可以接收范围之内,我也只能给你一个思路,就是外部中断进入红外接收程序,解码完成后又用定时中断退出外部中断,没有红外发射就不会进入红外接收程序。 红外发射程序没有编过,难度应该更小,无非就是把数字调制在38K的信号,你要发射的数据A1 F1 00 FF 45最后两位不对,最后两位是反码关系,FF的反码是00。 |
![]() |
| 你这个模块应该是通过串口收发送数据的,可以参考51串口的例子 |
来51学习1 发表于 2019-11-12 09:36 波特率是对的,现在的要求是用这个红外模块来发送 |
|
你好! 1、for 发送的过程里面不应该有延时 2、用单片机作为主控,直接用单片机发射红外,不用外置红外模块 3、单片机晶振采用 11.0592,单片机波特率要和红外模块一致 |