日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]>_這是在上一個的基礎上通過按鍵發(fā)送4種不同命令來控制接收端的LED燈亮的改進版(上一個:http://www.cnblogs.com/zjutlitao/p/3840013.html),這里俺把按鍵發(fā)命令給去掉,然后加入一個串口通信的功能,PC通過串口給

>_

這是在上一個的基礎上通過按鍵發(fā)送4種不同命令來控制接收端的LED燈亮的改進版(上一個:http://www.cnblogs.com/zjutlitao/p/3840013.html),這里俺把按鍵發(fā)命令給去掉,然后加入一個串口通信的功能,PC通過串口給發(fā)送端發(fā)送命令,然后發(fā)送端通過無線將命令發(fā)給接收端來實現控制,這里接收端和上一個例程中的一樣,只是在發(fā)送端的代碼里去除了按鍵控制,變成了串口控制。

>_

>_

>_

由于這里的接收端的代碼和上一個一樣,所以不做介紹(惜墨如金呀,哈哈~~),下面就發(fā)送端進行介紹:

1 /*------------------------------------------------

2 定義UART_Init函數

3 ------------------------------------------------*/

4 void UART_Init(void)

5 {

6 SCON = 0x50; // 設定串行口工作方式,8位數據位,允許接收

7 T2CON = 0x34; //設置定時器2,作為波特率發(fā)生器

8 RCAP2L = 0XDC; //9600波特率的低8位

9 RCAP2H = 0XFF; //9600波特率的高8位

10 ES = 1; //允許串口中斷

11 EA = 1; //允許總中斷

12 }


這里是串口初始化函數,采用定時器2作為波特率發(fā)生器,允許串口中斷(我采用發(fā)送就是循環(huán)發(fā)送策略,而接受通過觸發(fā)中斷來改變標志符,在主函數里再判斷標志符來判斷是否收到數據,預知更多詳情,請繼續(xù)瀏覽,哈哈)



1 /*------------------------------------------------

2 定義UART_Send_Byte函數

3 ------------------------------------------------*/

4 void UART_Send_Byte(uchar byte)

5 {

6 SBUF=byte; //緩沖區(qū)裝載要發(fā)送的字節(jié)數據

7 while(TI==0); //等待發(fā)送完畢,TI標志位會置1

8 TI=0; //清零發(fā)送完成標志位

9 }


這是我定義的一個發(fā)送一個字符的串口發(fā)送函數,大致意思就是把待發(fā)送數據給SBUF,然后等待標志位TI為1,即發(fā)送完畢,最后別忘清0!



1 /*------------------------------------------------

2 串口接收中斷服務程序

3 ------------------------------------------------*/

4 void UART(void) interrupt 4

5 {

6 if(RI) //檢測接收完成標志位置1

7 {

8 RI=0; //清零接收完成標志位

9 a=SBUF; //讀取接收到的數據

10 uart_flag = 1; //中斷標志位置1

11 }

12 }


上一個函數負責發(fā)送,這一個是負責接收的函數,對的,這里采用的是串口接收中斷,當觸發(fā)串口中斷時,判斷是否RI為1,即接收完成與否,如果接收完成就把緩沖SBUF中的數據給全局變量a,然后置接收標志uart_flag為1,并RI清0.



1 /*------------------------------------------------

2 main函數

3 ------------------------------------------------*/

4 void main()

5 {

6 LED6=1; //初始燈6熄滅

7 uart_flag=0; //串口標志初始為0

8 init_NRF24L01(); //初始化24L01

9 UART_Init(); //初始化串口

10

11 while(NRF24L01_Check()) //檢查不到24l01則報警

12 {

13 beep=0;

14 delay_ms(200);

15 beep=1;

16 delay_ms(200);

17 }

18 while(1)

19 {

20 RX_Mode(); //接收模式

21 while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收數據,返回1則接收到數據,在等待接收數據期間,可以隨時變成發(fā)送模式

22 {

23 if(uart_flag==1) //當串口接受標志為1表示有數據過來

24 {

25 ES=0; //關串口中斷

26

27 TX_Mode(); //發(fā)送模式

28 Tx_Buf1[0]=a-'0'; //將串口數據給發(fā)送緩沖區(qū)

29 nRF24L01_TxPacket(Tx_Buf1); //發(fā)送命令數據24L01

30 UART_Send_Byte('O'); //向串口發(fā)送已經傳送

31 UART_Send_Byte('K');

32 UART_Send_Byte(':');

33 UART_Send_Byte(a);

34 UART_Send_Byte('n');

35 LED6=0;

36 delay_ms(300);

37 LED6=1;

38 delay_ms(300); //發(fā)送后LED1閃一下

39

40 ES=1; //允許串口中斷

41 uart_flag=0; //中斷標志位置0

42 break; //退出最近的循環(huán),從而變回接收模式,這句關鍵

43 }

44 }

45 if(Rx_Buf[0]==1) //若接收到對應的數據則實現對應功能

46 {

47 Rx_Buf[0]=0; //清空數據

48 LED6=0;

49 delay_ms(300);

50 LED6=1;

51 delay_ms(300); //接收到數據 后閃爍

52 }

53 }

54 }


主函數中先初始化串口和24L01,然后檢測24L01是否存在,若不存在就響鈴,接著進入主循環(huán),設置24L01為接收模式,循環(huán)檢測是否收到數據,如果收到數據直接跳到第45行對信息處理作出相應動作,如果沒有收到數據就一直執(zhí)行循環(huán)體內的代碼,循環(huán)體內不斷檢查uart_flag是否為1,即是否收到了數據,當收到了數據就關閉串口中斷,將收到的數據發(fā)送出去,并回復PC端,并使LED6閃爍一次?!綪C端為1,2,3,4】

>_

l如果24L01用reg51那么兩個設備都要用reg51,如果用reg52就都得用reg52!

lPC通過串口發(fā)送給單片機命令[相當于協(xié)調器],單片機把命令通過24L01無線發(fā)送給另一個單片機,另一個單片機控制燈LED1,LED2,LED3,LED4閃爍。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

藍牙模塊,凱米斯EXO-mini 1藍牙模塊在空曠地帶可實現約50米穩(wěn)定通信,數據以ASCII碼傳輸,指令通過十六進制精準控制。

關鍵字: 無線模塊

在科技飛速發(fā)展的今天,無線通信技術已廣泛滲透到各個領域,為設備之間的互聯互通提供了極大的便利。串行端口無線模塊作為一種重要的無線通信設備,在實現串口設備無線化通信方面發(fā)揮著關鍵作用。本文將深入探討串行端口無線模塊的定義、...

關鍵字: 無線通信 串行端口 無線模塊

在物聯網蓬勃發(fā)展的當下,無線通信模塊作為連接萬物的關鍵紐帶,其性能優(yōu)劣直接影響著物聯網應用的廣度與深度。SKYLAB 無線模塊憑借其卓越特性,在物聯網應用中展現出顯著優(yōu)勢,為各類物聯網項目的高效運行提供了堅實保障。

關鍵字: 物聯網 無線通信 無線模塊

在科技飛速發(fā)展的當下,大型設備的智能化與高效化發(fā)展趨勢愈發(fā)顯著。無線模塊作為關鍵技術組件,在大型設備領域的應用日益廣泛,展現出諸多獨特且重要的特色,極大地推動了大型設備的性能提升與功能拓展。

關鍵字: 無線模塊 關鍵技術 智能化

在科技飛速發(fā)展的今天,無線模塊已成為各類電子設備實現便捷通信的關鍵組件。從智能家居系統(tǒng)中的傳感器與控制中樞的連接,到工業(yè)自動化領域中設備間的數據交互,無線模塊無處不在。然而,當無線模塊不能通信時,往往會讓整個系統(tǒng)陷入癱瘓...

關鍵字: 無線模塊 傳感器 信號干擾

在當今數字化時代,無線通信技術無處不在,從智能家居設備到工業(yè)自動化系統(tǒng),從移動電話到物聯網傳感器,無線模塊作為實現無線通信的關鍵部件,發(fā)揮著不可或缺的作用。而在無線模塊的使用中,同頻和異頻兩種方式有著顯著的區(qū)別,這些區(qū)別...

關鍵字: 無線通信 無線模塊 物聯網

Holtek新推出Sub-1GHz RF OOK/FSK Transmitter OTP MCU?BC68R2123,擴大Holtek Sub-1GHz Tx系列產品涵蓋面,并提供客戶無線控制產品優(yōu)勢競爭力,適合各類無線...

關鍵字: RF發(fā)射器 MCU 無線控制

無線模塊將是下述內容的主要介紹對象,通過這篇文章,小編希望大家可以對無線模塊的相關情況以及信息有所認識和了解,詳細內容如下。

關鍵字: 無線模塊 循環(huán)冗余碼 芯片

在這篇文章中,小編將對無線模塊的相關內容和情況加以介紹以幫助大家增進對無線模塊的了解程度,和小編一起來閱讀以下內容吧。

關鍵字: 無線模塊 藍牙 物聯網

在這篇文章中,小編將為大家?guī)頍o線模塊的相關報道。如果你對本文即將要講解的內容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關鍵字: 無線模塊 DSP 智能硬件
關閉