久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
2.4G無線雙向收發系統單片機源程序與PCB文件
[打印本頁]
作者:
偉民電子
時間:
2017-9-20 20:52
標題:
2.4G無線雙向收發系統單片機源程序與PCB文件
2.4G無線收發程序
pcb文件如下:
0.png
(42.44 KB, 下載次數: 79)
下載附件
2017-9-21 00:20 上傳
0.png
(51.49 KB, 下載次數: 74)
下載附件
2017-9-21 00:20 上傳
單片機源程序如下:
/*
2.4G無線雙向收發模塊源程序
(C)西安電子科技大學 編寫:郭世忠 謝金波 版本:V5.3 日期:2015/02/02
相對V5.1 將看門狗清狗語句由主循環結尾處移至開始處。解決單片機先按鍵,后上電,造成首次看門狗隨機復位,系統頻繁重啟問題。
相對V5.2 把重復15次發送中的SetRX_Mode()取消,放到最后,只留一句。
*/
//---------------------------------用戶配置區--------------------------------------------
#define LOCAL_LED_ON //1.本地LED是否點亮,注釋掉本句即可禁止本地LED顯示
//---------------------------------------------------------------------------------------
#define ADD1 50 //0-255
#define ADD2 34 //0-255
#define ADD3 65 //0-255
#define ADD4 83 //0-255 //2.用戶使用的4*8bit=32bit地址
//---------------------------------------------------------------------------------------
//----------------------------------以下代碼請勿修改!-----------------------------------
#include "c8051f330.h"
#include "nRF24L01.h"
#include "config.h"
#include "key.h"
#define TIMER0_RELOAD_HIGH (65535-5150)/256 //定時器0的裝入值
#define TIMER0_RELOAD_LOW (65535-5150)%256 //系統時鐘3.0625MKHz,12分頻,20.00ms:理論裝載值5104,實際裝載值5150
//系統時鐘3.0625MKHz,12分頻,10.00ms:理論裝載值2552,實際裝載值2585
//系統時鐘3.0625MKHz,12分頻, 5.00ms:理論裝載值1276,實際裝載值1280
//系統時鐘3.0625MKHz,12分頻,25.00ms:理論裝載值6380,實際裝載值6475
//系統時鐘3.0625MKHz,12分頻,30.00ms:理論裝載值7656,實際裝載值7736
/*定義LED和震動電機相應的驅動端口*/
sbit MOTOR=P0^0; //振動電機
sbit LED1=P1^3;
sbit LED2=P1^4; //四個LED端口
sbit LED3=P1^5;
sbit LED4=P1^6;
unsigned char TxBuf[3]={1,2,3};
unsigned char RxBuf[3]={1,2,3};
unsigned char motor_flag=0,motor_shake_times=0,delay_count=0;
unsigned char tf=0,getdata=0;
unsigned char get_key_time=0;
unsigned char Enable_Get_Ack=0;
unsigned char LED_Time_Out=0;
unsigned char Enable_Clear_LED=0;
unsigned char receive_counter=0;
/****************************************************************************
* 名 稱:delay_20ms()
* 入口參數:無
* 出口參數:無
* 說 明: 使用定時器準確延時20ms
****************************************************************************/
void delay_20ms( unsigned char time )
{
delay_count=0;
while(delay_count<time); //裝值1,理論 20ms,實測 20ms
//裝值2,理論 40ms,實測40.4ms
//裝值3,理論 60ms,實測 60ms
//裝值4,理論 80ms,實測 80ms
//裝值5,理論100ms,實測 100ms
}
/****************************************************************************
* 名 稱:delay_1ms()
* 入口參數:無
* 出口參數:無
* 說 明: 簡單延時1ms
****************************************************************************/
void delay_1ms( unsigned int time )
{
unsigned int i,j;
for(j=0;j<time;j++)
for(i=0;i<325;i++); //裝值 1,實測 1ms
//裝值 2,實測2.08ms
//裝值 3,實測3.12ms
//裝值 4,實測4.08ms
//裝值 5,實測5.12ms
//裝值10,實測10.2ms
}
/****************************************************************************
* 名 稱:MOTOR_SHAKE()
* 入口參數:無
* 出口參數:無
* 說 明: 振動電機振動驅動函數,利用移位進行驅動
****************************************************************************/
void MOTOR_SHAKE( void )
{
unsigned char temp;
if(motor_shake_times!=0)
{
temp=motor_shake_times&0x01;
MOTOR=temp;
motor_shake_times=motor_shake_times>>1;
}
else
{
MOTOR=0;
}
}
/****************************************************************************
* 名 稱:MOTOR_SCAN()
* 入口參數:無
* 出口參數:無
* 說 明: 利用定時器0進行的振動電機振動掃描函數
****************************************************************************/
void MOTOR_SCAN( void )
{
if(motor_flag==20)
{
motor_flag=0;
MOTOR_SHAKE();
}
}
/****************************************************************************
* 名 稱:MOTOR_ON()
* 入口參數:電機震動次數
* 出口參數:無
* 說 明: 開啟電機振動,相當于賦值
****************************************************************************/
void MOTOR_ON( unsigned char cishu )
{
motor_shake_times=cishu;
}
/****************************************************************************
* 名 稱:Timer0_ISR()
* 入口參數:無
* 出口參數:無
* 說 明: 定時器0中斷處理函數
****************************************************************************/
void Timer0_ISR( void ) interrupt 1
{
TH0=TIMER0_RELOAD_HIGH;
TL0=TIMER0_RELOAD_LOW;
get_key_time++;
delay_count++;
motor_flag++;
LED_Time_Out++;
Key_ScanIO();
MOTOR_SCAN();//電機20ms掃描一次
}
/****************************************************************************
* 名 稱:IRQ_ISR()
* 入口參數:無
* 出口參數:無
* 說 明: 外部中斷處理函數,用于處理無線模塊的收發及狀態轉換
****************************************************************************/
void IRQ_ISR( void ) interrupt 0
{
switch(ReadInterrupt_Status())
{
case 1:{EA=0;
nRF24L01_RxPacket(RxBuf);
ClearInterrptFlag();
EA=1;
if(RxBuf[2]!=90)
{
if(receive_counter<250)
receive_counter++;
else
receive_counter=2;
}
getdata=1;
}
break; //接收到數據中斷
//case 2:{EA=0;ClearInterrptFlag();SetRX_Mode();delay_1ms(1);EA=1;}break; //發送成功中斷
case 2:{EA=0;ClearInterrptFlag();EA=1;}break; //發送成功中斷
case 3:{EA=0;ClearInterrptFlag();SetRX_Mode();delay_1ms(1);EA=1;}break; //最大發射次數到,即發送失敗中斷
default:{EA=0;ClearInterrptFlag();SetRX_Mode();delay_1ms(1);EA=1;}break;//其他無關量
}
}
/****************************************************************************
* 名 稱:Send_Data()
* 入口參數:無
* 出口參數:無
* 說 明: 發送端數據發送函數,連續發送15次,函數值由數組直接傳遞
****************************************************************************/
void Send_Data( void )
{
nRF24L01_TxPacket(TxBuf); //連發15次
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
2.4G無線雙向收發系統.rar
(207.09 KB, 下載次數: 59)
2017-9-20 20:50 上傳
點擊文件名下載附件
2.4G
下載積分: 黑幣 -5
作者:
xi-xi
時間:
2019-6-14 22:09
文件不全啊,謹慎下載
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人一区二区三区
|
久久不射电影网
|
久久精品在线
|
99成人精品
|
九九热精品免费
|
激情一区
|
视频一区在线播放
|
亚洲三区在线
|
中文一级片
|
国产精品视频网址
|
成人精品
|
91九色在线观看
|
久久91视频
|
欧美成人hd
|
美国a级毛片免费视频
|
国产精品不卡一区
|
欧美一级黄视频
|
国产日韩欧美中文字幕
|
亚洲女人天堂网
|
国产视频福利一区
|
羞羞视频免费观看入口
|
欧美久久久网站
|
亚洲欧美中文日韩在线v日本
|
国产精品久久久久久中文字
|
亚洲一区二区三区免费
|
欧美视频在线观看
|
99在线观看视频
|
日韩午夜电影在线观看
|
久久亚洲国产
|
精品视频一区二区
|
国产亚洲一区二区三区在线观看
|
免费亚洲成人
|
国产精品久久久久久妇女6080
|
99久久婷婷国产综合精品电影
|
美女视频黄色的
|
h视频免费看
|
日韩高清中文字幕
|
欧美成人精品一区二区男人看
|
特级做a爱片免费69 精品国产鲁一鲁一区二区张丽
|
国产综合视频
|
精精精精xxxx免费视频
|