【原帖必看,不然你看不懂本帖】

单片机编码 无线模块发送与接收 程序

【说明】:                       

[发送端]:

LED亮灭跟随发送状态

发送字符串"ABCDEFGHIJKLMNOP"

发送过程,用"春哥"的GBK码对字符串异或运算加密

数据校验:采用反码校验,先发送源码,再发送反码,抗干扰

[接收端]

接收加密的源码,用"春哥"的GBK码对字符串异或运算解密,得到源码

接收反码,反码与源码比较

接收字符串

判断字符串,每个字符控制对应的LED亮灭

【效果图】                       

【发送端】                                   

/************************************
程序名:    无线模块【发射端】程序
编写人:    春哥 
编写时间:  2015年10月31日
硬件支持:  STC12C5A60S2 外部晶体12MHz
接口说明:  P0.0接口发射,发送时LED亮,发送结束LED熄灭
加密密文:    春哥 -->GBK:b4 ba b8 e7
校验方式:    反码校验
发送数据:    发送字符串"ABCDEFGHIJKLMNOP"
/***********************************/
#include <STC12C5A60S2.H> //单片机头文件
sbit OUT  = P1 ^ 0;
sbit LED  = P0 ^ 0; void DELAY_MS (unsigned int a){unsigned int i;while( a-- != 0){for(i = 0; i < 600; i++);}
}
void ST (void){//开始码OUT = 1; //DELAY_MS (6);OUT = 0; //DELAY_MS (4);
}void BT (bit s){//数据位码OUT = 1; LED=!LED;  // LED=~LED发送状态指示  DELAY_MS (1);OUT = 0; DELAY_MS (1);if(s)  DELAY_MS (1);}void MT (unsigned char a){  //8位的数据发送unsigned char b,i,n;a=a^0xB4^0xBA^0xB8^0xE7;// 数据加密 春哥汉字对应的GBK编码是 0xB4 0xBA 0xB8 0xE7;b=~a;                   // 把源码变反码for(i=0;i<8;i++){       // 发送源码n = a & 0x80;a = a << 1;if(n == 0x80) BT(1); else  BT(0);}for(i=0;i<8;i++){       //发送反码n = b & 0x80;b = b << 1;if(n == 0x80) BT(1);else BT(0);}
}
void END (void){
MT(0xff);
}
void str(unsigned char *str){while(*str != '\0') MT (*str++); *str = 0;
}void main (void){while(1){ST(); str("ABCDEFGHIJKLMNOP");END();DELAY_MS (100);}
}

【接收端】                        

/************************************
程序名:    无线模块【接收】程序
编写人:    春哥 
编写时间:  2015年10月31日
硬件支持:  STC12C4052AD 外部晶体12MHz
接口说明:  P3.4接口 接无线data ,LED共阳
解密密文:    春哥 -->GBK:b4 ba b8 e7
接收字符:    接收字符串"ABCDEFGHIJKLMNOP"
判断字符串"ABCDEFGHIJKLMNOP",控制LED亮灭
***************************************/
#include <STC12C2052AD.H> //单片机头文件
sbit IN =P3^4;
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;
sbit LED7=P1^6;
sbit LED8=P1^7;
unsigned char Ir_Buf[16]; //用于保存16个8位的源码结果
unsigned char Ir_bak[16]; //用于保存16个8位的解码结果
unsigned char re_char[]={"ABCDEFGHIJKLMNOP"}; //待验证的字符串
unsigned char length=16; // 定义字符串长度给for用void DELAY_MS (unsigned int a){unsigned int i;while( a-- != 0) for(i = 0; i < 600; i++);
}unsigned int Ir_Get_Low()
{TL1=0;TH1=0;TR1=1; // 如果是0就循环,不能超过32.768mswhile(!IN && (TH1&0x80)==0);                TR1=0;           return TH1*256+TL1;
}unsigned int Ir_Get_High()
{TL1=0;TH1=0;TR1=1;// 如果是1就循环,不能超过32.768mswhile(IN && (TH1&0x80)==0);TR1=0;return TH1*256+TL1;
}void main(void){unsigned int temp;unsigned char i,j;TMOD=0x10; // 使用定时器1,设定16位的定时/计数器while(1){restart:while(!IN);temp=Ir_Get_High(); if(temp<5000 || temp>8000){ goto restart;  }temp=Ir_Get_Low();  if(temp<3000 || temp>6000){ goto restart;  }//只有上面的两个标记都通过了,说明发送端 准备好了for(i=0;i<length;i++){    //接收length个字节for(j=0;j<8;j++){       //接收源码temp=Ir_Get_High(); if(temp<500 || temp>1500) goto restart;temp=Ir_Get_Low();  if(temp<500 || temp>2500) goto restart;Ir_Buf[i]<<=1;  if(temp>1500)  Ir_Buf[i]|=0x01;  }for(j=0;j<8;j++){        //接收反码temp=Ir_Get_High();  if(temp<500 || temp>1500) goto restart;temp=Ir_Get_Low();   if(temp<500 || temp>2500) goto restart;Ir_bak[i]<<=1;       if(temp>1500)  Ir_bak[i]|=0x01;}if(Ir_Buf[i] != ~Ir_bak[i]) goto restart; //反码字符校验Ir_Buf[i]=Ir_Buf[i]^0xB4^0xBA^0xB8^0xE7;  //数据解密 春哥对应的GBK字符是0xB4 0xBA 0xB8 0xE7}if(Ir_Buf[0]=='A') LED1=0; DELAY_MS(80); if(Ir_Buf[1]=='B') LED2=0; DELAY_MS(80); if(Ir_Buf[2]=='C') LED3=0; DELAY_MS(80);if(Ir_Buf[3]=='D') LED4=0; DELAY_MS(80); if(Ir_Buf[4]=='E') LED5=0; DELAY_MS(80); if(Ir_Buf[5]=='F') LED6=0; DELAY_MS(80); if(Ir_Buf[6]=='G') LED7=0; DELAY_MS(80); if(Ir_Buf[7]=='H') LED8=0; DELAY_MS(80); if(Ir_Buf[8]=='I') LED1=1; DELAY_MS(80); if(Ir_Buf[9]=='J') LED2=1; DELAY_MS(80); if(Ir_Buf[10]=='K') LED3=1; DELAY_MS(80); if(Ir_Buf[11]=='L') LED4=1; DELAY_MS(80); if(Ir_Buf[12]=='M') LED5=1; DELAY_MS(80); if(Ir_Buf[13]=='N') LED6=1; DELAY_MS(80); if(Ir_Buf[14]=='O') LED7=1; DELAY_MS(80); if(Ir_Buf[15]=='P') LED8=1; DELAY_MS(80); }
}

转载于:https://blog.51cto.com/990487026/1708601

无线模块数据加密,反码校验,发送字符串ABCDEFGHIJKLMNOP LED频闪相关推荐

  1. CC2530基础实验:(8)串口通讯-发送字符串控制LED

     目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 1.并行通信与串行通信 2.URAT 3.同步通信与异步通信 4.外设I/O 5.CC2530 的串口通信模块 6.相关寄存器 三.源码分析 ...

  2. 关于RF433无线模块及应用领域分析之433胎压模块

    RF无线模块 一.什么是433m无线模块 433MHz无线收发模组,采用高频射频技术,因此也叫RF433射频小模块.其由全数字科技生产的单IC射频前端与ATMEL的AVR单片机组成,可高速传输数据信号 ...

  3. 无线发射器c语言程序代码,单片机编码 无线模块发送与接收 程序

    单片机编码 无线模块发送与接收 程序 模块型号,可在万能的某宝搜索[超再生无线模块] 接收距离:空旷200米[这是卖家说的,有待考验] 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极 ...

  4. 单片机无线模块编码和解码c语言,单片机编码 无线模块发送与接收 程序

    单片机编码 无线模块发送与接收 程序 模块型号,可在万能的某宝搜索[超再生无线模块] 接收距离:空旷200米[这是卖家说的,有待考验] 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极 ...

  5. 315M接收 PT2264发送 无线模块的使用

    315M接收 PT2264发送 无线模块的使用 315M接收波形说明 315M接收波形说明 最后的一大段低电平是每次发完数据的静默时间,前面是几帧相同正式的数据. 每帧数据周期大概19.4ms,包含了 ...

  6. 无线广告屏]无线模块

    无线广告屏--无线模块 NRF24L01无线模块原理图: 无线NRF24L01例程: NRF24L01发送模块: Allhead.h #ifndef _ALLHEAD_H_ #define _ALLH ...

  7. Linux下QT串口通过无线模块收发十六进制数据

    前段时间写了一个关于WiMi-Net简要的收发码以及CRC校验的博客(http://blog.csdn.net/u011348999/article/details/16803829) 然后一直说把Q ...

  8. 基于python的modbus协议编程_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...

    点击「蓝色微信名」关注更多比赛信息 引  言 在<中国儿童青少年威盛中国芯计算机表演赛>从第十七届活动开始,搭建了一个全新的互联网技术支持平台,实现了网络在线比赛,在全国建立了三十个省级赛 ...

  9. 无线模块在“水盾”防溺水安全预警系统的应用

    一."水盾"防溺水安全预警系统简介 "水盾"防溺水安全预警系统(下文简称,"水盾"系统),主要由5大部分组成:客户端.转发中继系统主机.系统 ...

  10. 2.4G NRF24L01无线模块总结

    前言   最近野火STM32论坛(www.firebbs.cn)发起了一个开源平衡车的项目,于是就跟着大家一起动手做起了开源平衡车,其中就用到了2.4G NRF24L01无线模块.通过对NRF24L0 ...

最新文章

  1. brain.js 时间序列_免费的Brain JS课程学习JavaScript中的神经网络
  2. 防止删库悲剧发生,这里有个Bash脚本测试框架,危险代码一测便知
  3. nodejs png 转 rgb_90行代码,让微信登录界面的地球转起来
  4. mysql 性能 比较好_MySQL性能优化的最佳20+条经验
  5. java reference 传引用_Java的引用(reference)---Roni
  6. Composer快速入门
  7. 控制台应用程序《石头剪刀布》——新手,
  8. Tomcat详解(二)——tomcat安装与配置
  9. RAC连接时的2种方式Connect Time Failver和taf
  10. phar打包thinkphp5项目
  11. matlab sparse()
  12. 基于单片机c语言的光立方,基于单片机的光立方设计(课程设计).doc
  13. 学云计算能从事什么工作 云计算就业怎么样
  14. HTML+CSS小白入门与进阶教程
  15. 数据集特征提取_特征提取和选择
  16. ORacle空间数据
  17. Unity 中摄像机跟踪的两种实现
  18. 游戏系统开发设计分享
  19. home assistant用esphome添加温湿度传感器
  20. R语言)不依赖求导的寻根方法:Nelder-Mead方法

热门文章

  1. Win10下载nmap!!!!(超详细,学不会直接远程指导)
  2. android.os.FileUriExposedException: file:///storage/emulated/0/1566547538954.jpg exposed beyond app
  3. OC中继承代理委托类别
  4. 原子互换:一统公链江湖的神来之笔
  5. 自动化会议提交工作流程:部署到生产
  6. 安卓期末大作业——日记APP
  7. 工具应用——Chrome浏览器 F12控制台中文改成英文
  8. 身份证号码编码规则及校验位校验算法
  9. 开发一款APP需要多少钱?
  10. 战略分析师/商业分析师需要掌握的技能