无线遥控433MHz编码发射
工作中遇到客户想采用AD检测的不同地电压方式发送不同RF值出来,下面就是具体发送的
做法。
硬件电路:
协议设计
1、引导码--10ms ;2、键码;3、键码反码,如果长按发送会一直输出这样的波形;4、结束码-20ms;
有按键按下就发送3次 ,防止接收设备接收时出现意外。
逻辑0:高电平0.4ms,低电平1ms
逻辑1:高电平1ms,低电平0.4ms
编码的波形
代码是汇编程序,软件流程是有按键按下,AD采集识别具体按键,然后分配键值,使能发送标志F_RF_TX_EN。然后在采用在100us的中断中发送,发送一次完成计数一次,计数到达3次,清除F_RF_TX_EN使能标志。
D_RF_TX_CNT EQU D'16' ;发送数据位数
;
D_RF_TX_10MS EQU D'100' ;10MS的最大时间,基值100us
;
D_RF_TX_0_H EQU 4 ;0的高电平时间.基值100us
D_RF_TX_0_L EQU 10 ;0的低电平时间.基值100us
;
D_RF_TX_1_H EQU 10 ;1的高电平时间.基值100us
D_RF_TX_1_L EQU 4 ;1的低电平时间.基值100us
;
D_RF_WAIT_TIME EQU 200 ;重新发送的等待时间,基值100us
;
D_RF_RELEASE_TIME EQU 12 ;单击发送延时,基值10ms
D_RF_TX_RELEASE_CNT EQU 3
R_RF_TX_FLAG EQU 0X36#DEFINE F_RF_TX_10MS R_RF_TX_FLAG,0 ;10MS低电平发射完成标志, 1:发射完成. 0:发射未完成.#DEFINE F_RF_EN R_RF_TX_FLAG,1 ;RF使能标志. 1:启动RF发送, 0:停止RF发送#DEFINE F_RF_EN_START R_RF_TX_FLAG,2 ;RF发送标志. 1:RF发送 0:RF不发送#DEFINE F_RF_TX_STATUS R_RF_TX_FLAG,3 ;RF发送电平状态. 1:发送低电平 0:发送高电平#DEFINE F_RF_EN_STATUS R_RF_TX_FLAG,4 ;RF发送 状态. 1:使能发送 0:等待时间. #DEFINE F_RF_EN_FLAG R_RF_TX_FLAG,5RF_CTRL:BTRSS F_RF_EN ;LGOTO RF_CTRL_OFF_2
RF_CTRL_ON: BTRSC F_RF_EN_FLAGLGOTO RF_CTRL_ON_WAIT;BTRSC F_RF_EN_STARTRET;BSR F_RF_EN_FLAG ;置等待标志.;MOVR R_RF_DATA1,0MOVAR R_RF_TX_DATA1;MOVR R_RF_DATA1,0XORIA 0XFF ;取反键值MOVAR R_RF_TX_DATA2;BCR F_RF_TX_STATUSMOVIA 16 ;2*8 MOVAR R_RF_TX_CNTCLRR R_RF_TX_TIME;BCR P_RF_OUT ;拉低;BCR F_RF_TX_10MS ;BSR F_RF_EN_START ;启动发送.;RET;LGOTO RF_CTRL_OFF
RF_CTRL_ON_WAIT:BTRSC F_RF_EN_START ;发送一次完成,START置0.LGOTO RF_CTRL_ON_WAIT_1;BSR P_RF_OUT ;空闲状态 拉高;MOVIA D_RF_WAIT_TIME ;间隔时间 200*100us--20msSUBAR R_RF_WAIT_TIME,0BTRSS CRETCLRR R_RF_WAIT_TIME;BCR F_RF_EN_FLAG;LGOTO RF_CTRL_OFF ;去判断计数次数
RF_CTRL_ON_WAIT_1:CLRR R_RF_WAIT_TIME ;清除发送等待时间BSR F_RF_EN_FLAG ;置等待标志.RET
RF_CTRL_OFF: MOVIA D_RF_TX_RELEASE_CNTSUBAR R_RF_TX_RELEASE_CNT,0 ;R – ACC BTRSS CRETLGOTO RF_CTRL_OFF_3
RF_CTRL_OFF_2: ;CLRR R_RF_TX_RELEASE_CNT ;BCR F_RF_EN ;BCR F_RF_EN_FLAGBCR F_RF_EN_STARTBCR F_RF_TX_FREE ;BSR P_RF_OUT ;结束,置1 RET
RF_CTRL_OFF_3:BCR P_RF_OUT ;拉低 LGOTO RF_CTRL_OFF_2;RF发送--中断调用--100us发送一次
RF_TX: INCR R_RF_WAIT_TIME,1 ;等待时间BTRSC ZDECR R_RF_WAIT_TIME,1;BTRSS F_RF_EN_START ;发送标志位是否置起RET;BTRSS F_RF_TX_10MS ;引导码LGOTO RF_TX_10MS;CLRR R_RF_WAIT_TIMEINCR R_RF_TX_TIME,1;BTRSC F_RF_TX_STATUS ;数据状态标志位LGOTO RF_TX_L
RF_TX_H: ;发送1bit的高电平BTRSC R_RF_TX_DATA1,7 ;高位先发送---LGOTO RF_TX_H_1
RF_TX_H_0:MOVIA D_RF_TX_0_H ;“1”的低电平时间LGOTO RF_TX_H_2
RF_TX_H_1:MOVIA D_RF_TX_1_H ;“1”的高电平时间
RF_TX_H_2:BSR P_RF_OUT;SUBAR R_RF_TX_TIME,0BTRSS CRETCLRR R_RF_TX_TIME;;BSR F_RF_TX_STATUS ;一个bit,发送完高电平,再发送低电平.RET
RF_TX_L: ;发送1bit的低电平BTRSC R_RF_TX_DATA1,7 ;高位先发送LGOTO RF_TX_L_1
RF_TX_L_0: MOVIA D_RF_TX_0_L ;“0”的低电平时间LGOTO RF_TX_L_2
RF_TX_L_1: MOVIA D_RF_TX_1_L ;“0”的高电平时间
RF_TX_L_2:BCR P_RF_OUT;SUBAR R_RF_TX_TIME,0BTRSS CRETCLRR R_RF_TX_TIME;;RLR R_RF_TX_DATA2,1 RLR R_RF_TX_DATA1,1;BCR F_RF_TX_STATUS ;一个bit,发送完高电平,再发送低电平.;DECRSZ R_RF_TX_CNT,1 ;发送个数.RET;BCR F_RF_EN_START ;发送停止.CLRR R_RF_WAIT_TIME ;清除等待计数INCR R_RF_TX_RELEASE_CNT,1 ;发送完成 计数一次。RET
RF_TX_10MS:BCR P_RF_OUT ;发送10ms 低电平 ------引导码;INCR R_RF_TX_TIME,1;MOVIA D_RF_TX_10MS SUBAR R_RF_TX_TIME,0 ;100US 时间基值 BTRSS CRET;CLRR R_RF_TX_TIME ;;BSR F_RF_TX_10MS ;10MS发送完成,置位该标志.并输出高电平BSR P_RF_OUT ;拉高;RET
RF_TX_RET:;BSR P_RF_OUT ;默认发送脚为高电平RET
解码思路
定时中断中处理 时间(80-100us),然后在中断调用接收解码函数,接收起始码判断。判断 L 电平的时间5MS<P_RF_RX<9MS这个范围内说明有启动信号,这个时才往后面接收数据的判断。否则就是不对的起始信号,退出解码函数。逻辑电平1和0的判断都是可以这么处理。具体实现可以看下其他网上的思路。
无线遥控433MHz编码发射相关推荐
- 关于无线遥控315模块的发射与接收
最近为了开发无线数据传输项目,看了不少无线数据发送与接收的资料,其中无线遥控315模块比较便宜和应用比较广泛,以下是单片机模拟2272软件解码: 在无线遥控领域,PT2262/2272是目前最常用的芯 ...
- 无线遥控发射接收模块简介(SYN480R F115 433M )
无线遥控发射接收模块简介(SYN480R F115 433M ) 市面上很常见的无线射频模块 原理图资料文档 https://pan.baidu.com/s/1LIW3rKo73mP1_FOAj_qb ...
- 315 433MHZ无线遥控接收解码源程序 Keil源程序 含AD格式电路图
315 433MHZ无线遥控接收解码源程序 Keil源程序 含AD格式电路图 YID:1620670090555205
- 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]
/***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...
- 315MHZ PT2272-M4 非锁四路无线遥控 发射接收方案
目录 一.简介 二.使用前准备 三. 测试方法 四. 测试现象 五. 注意事项 原文链接:https://www.yourcee.com/newsinfo/2928972.html 一.简介 解码接收 ...
- 【雕爷学编程】Arduino动手做(103)---四路无线遥控套件
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 课题——无线遥控实现
无线遥控实现 关键字:盆腔治疗仪:无线遥控:PT2262:PT2272:单片机AT89S52:SMC1602A 盆腔炎治疗仪,利用物理的电.热.磁等生理作用,促进人体神经肌肉组织兴奋和局部血液循环,并 ...
- 单片机无线遥控盆腔炎治疗仪
摘 要 盆腔炎治疗仪,利用物理的电.热.磁等生理作用,促进人体神经肌肉组织兴奋和局部血液循环,并有镇痛作用.盆腔治疗仪对盆腔炎的治疗,具有无副作用和后遗症等优点,在妇科中得到广泛的应用.因为在治疗过程 ...
- 应用ESP8266控制433M无线遥控电动幕布
家里的得力牌电动投影幕布是的433M单一频率无线遥控的,为把它加入HomeAssistant与投影仪.音响等实现联动控制,计划用万能的esp8266来模拟遥控器. 一.设计思路 用ESPHome的Re ...
- stm32 无线遥控HX1838或8路低电平解码接收模块Hal库代码程序
一.简介 这是一款新型的超薄38K通用红外遥控器,采用的是NEC编码格式,主要用于车载MP3.足浴盆.灯光设配.数码相框.单片机开发板和学习板等场合.因其是基于无线遥控,因此人们在使用起来显得方便.有 ...
最新文章
- SRA数据库的各种编号(DRP, ERP 或SRP)
- php mysql 查询 where_PHP MySQL Where 子句
- 兴趣部落的 Git 迁移实践
- JavaSE学习53:细说多线程之内存可见性
- gdb+pwndbg使用初探
- 在Qt Designer中使用样式表
- 有趣的insert死锁
- 输入序列不连续的序列检测
- 密封槽设计标准_哈尔滨轴承 | 超全面机械密封选型
- 三角剖分求多边形面积的交 HDU3060
- jenkins构建后接受者收不到邮件问题解决方案
- 复习HTML+CSS(5)
- Ubuntu下编译运行C#——mono tools
- 在IE浏览器中url传参长度问题
- 上证指数ARIMA模型预测(R软件)
- NSSM部署Net Core流程
- ios沙箱软件_ios沙盒2存档-ios沙盒2最新版下载0.5.2苹果版-西西软件下载
- OnlyOffice在线部署
- Java后端工程师面试自我介绍
- 什么是阿里云服务器ECS?阿里云服务器的用途
热门文章
- needs to declare permission android.permission.REQUEST_INSTALL_PACKAGES
- cdrom是什么意思_CD-ROM是什么意思
- Ubuntu系统各种文件的颜色代表的意义
- 产品经理听完《等你下课》心态崩了?选择汇新云重振旗鼓
- 可视化工具Netron介绍
- 【Axure原型分享】冻结首行首列的中继器表格
- 雨林风一键重装系统_u盘启动盘制作工具-雨林风
- Eth-Trunk 链路聚合
- box-sizing: border-box的作用
- 【C语言】案例四十九 学生档案管理系统