|
2.4G無線模塊收發(fā)程序,包含PCB SCH文件及c8051f330單片機代碼
0.png (55.11 KB, 下載次數(shù): 96)
下載附件
2016-6-17 23:11 上傳
無線收發(fā)原理圖
0.png (57.69 KB, 下載次數(shù): 125)
下載附件
2016-6-17 23:11 上傳
無線收發(fā)pcb板
- /*********************************************************************************
- *說明:本文件為數(shù)據(jù)機密文件,具體加密方法在下面有介紹。
- *版本:V1.1.1
- *編寫:謝金波 西安電子科技大學
- *建立日期:2014.12.6
- *修訂日期:無
- *修訂內容:無
- *********************************************************************************/
- /*數(shù)據(jù)加密算法為:源數(shù)據(jù)加上序號->奇偶位分體->序奇先1、序偶先2->字節(jié)四位調換
- *數(shù)據(jù)解密算法為:字節(jié)四位調換->序奇先1、序偶先2->奇偶位分體->數(shù)據(jù)減去序號->信息數(shù)據(jù)*/
- #include "password.h"
- #define OrderNumber 1
- #define DataFirst 2
- #define DataSecond 3
- unsigned int SendDataArray[4];
- unsigned int ReceiveDataArray[4];
- unsigned char TxBuf[6]={0,0,0,0,0,0};
- unsigned char RxBuf[6]={0,0,0,0,0,0};
- /*調用前將數(shù)據(jù)放在最后一字節(jié),前三字節(jié)為組號,第四字節(jié)為序號*/
- /****************************************************************************
- * 名 稱:Timer1_ISR()
- * 功 能:用于電機驅動的定時器1中斷函數(shù),用于輸出pwm波形
- * 入口參數(shù):無
- * 出口參數(shù):無
- * 說 明: 中斷時間為文件開頭的定義值(初始化為4*100ms)
- ****************************************************************************/
- void DataEncrypt( void )//加密算法
- {
- unsigned int TempData;
- SendDataArray[OrderNumber]=RxBuf[3];
- SendDataArray[DataSecond]=RxBuf[5];
- SendDataArray[DataSecond] += SendDataArray[OrderNumber];//源數(shù)據(jù)加上序列號
- SendDataArray[DataFirst] = (SendDataArray[DataSecond] & 0xAA);
- SendDataArray[DataSecond] = (SendDataArray[DataSecond] & 0x55);//奇偶分體
- if(SendDataArray[OrderNumber]%2==0)//序號為偶數(shù),先2后1,即數(shù)據(jù)兩個字節(jié)調換位置
- {
- TempData = SendDataArray[DataFirst];
- SendDataArray[DataFirst] = SendDataArray[DataSecond];
- SendDataArray[DataSecond] = TempData;
- }
- TempData = SendDataArray[DataFirst];
- SendDataArray[DataFirst] = ((TempData & 0x0F) + (SendDataArray[DataSecond] & 0xF0));//兩字節(jié)四位混合,即第一字節(jié)后四位與第二字節(jié)前四位組成第一字節(jié)
- SendDataArray[DataSecond] = ((TempData & 0xF0) + (SendDataArray[DataSecond] & 0x0F));//兩字節(jié)四位混合,即第一字節(jié)前四位與第二字節(jié)后四位組成第二字節(jié)
- RxBuf[4]=SendDataArray[DataFirst];
- RxBuf[5]=SendDataArray[DataSecond];
- }
- /****************************************************************************
- * 名 稱:Timer1_ISR()
- * 功 能:用于電機驅動的定時器1中斷函數(shù),用于輸出pwm波形
- * 入口參數(shù):無
- * 出口參數(shù):無
- * 說 明: 中斷時間為文件開頭的定義值(初始化為4*100ms)
- ****************************************************************************/
- void DataDecrypt( void )//解密算法
- {
- unsigned int TempData;
- SendDataArray[OrderNumber]=RxBuf[3];
- SendDataArray[DataFirst]=RxBuf[4];
- SendDataArray[DataSecond]=RxBuf[5];
- TempData = ReceiveDataArray[DataFirst];
- ReceiveDataArray[DataFirst] = ((TempData & 0x0F)+(ReceiveDataArray[DataSecond] & 0xF0));//混合第一字節(jié)重組
- ReceiveDataArray[DataSecond] = ((TempData & 0xF0)+(ReceiveDataArray[DataSecond] & 0x0F));//混合第二字節(jié)重組
- if(ReceiveDataArray[OrderNumber]%2==0)//序號為偶數(shù),先2后1,即數(shù)據(jù)兩個字節(jié)調換位置
- {
- TempData = ReceiveDataArray[DataFirst];
- ReceiveDataArray[DataFirst] = ReceiveDataArray[DataSecond];
- ReceiveDataArray[DataSecond] = TempData;
- }
- ReceiveDataArray[DataSecond] = (ReceiveDataArray[DataFirst] & 0xAA) + (ReceiveDataArray[DataSecond] & 0x55);//奇偶體合二為一
- ReceiveDataArray[DataSecond] -= ReceiveDataArray[OrderNumber];//減去序號,得到實際數(shù)據(jù)
- RxBuf[5]=SendDataArray[DataSecond];
- }
復制代碼
0.png (74.44 KB, 下載次數(shù): 99)
下載附件
2016-6-17 23:13 上傳
所有資料請下載附件:
|
評分
-
查看全部評分
|