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