




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上學 號: 課 程 設 計題 目基于單片機的433M無線通信系統(tǒng)學 院專 業(yè)班 級 姓 名指導教師2018年 1月 13日單片機應用設計任務書學生姓名: 專業(yè)班級: 指導教師: 工作單位: 題 目: 基于單片機的433M無線通信系統(tǒng)課程設計目的:1、熟悉單片機應用系統(tǒng)的硬件設計及軟件設計的基本方法;2、 將單片機原理與應用理論課的理論知識應用于實際的應用系統(tǒng)中;3、 訓練單片機應用技術,鍛煉實際動手能力4、 提高正確地撰寫論文的基本能力。課程設計內容和要求1、 完成硬件電路的設計,其中包括單片機和CC1101模塊的設計; 2、 完成無線通信模塊的程序設計與實現(xiàn)
2、,上機運行調試程序,記錄實驗結果(如圖表等),并對實驗結果進行分析和總結; 3、 課程設計報告書按學校統(tǒng)一規(guī)范來撰寫,報告主要包括以下內容:目錄、摘要、關鍵詞、基本原理、方案論證、硬件設計、軟件設計(帶流程圖、程序清單)、仿真結果、實物運行結果照片、結論獻等;4、 查閱不少于6篇參考文獻。初始條件:1、 STC89C52和CC1100H模塊; 2、 先修課程:單片機原理與應用。時間安排:第19周,安排設計任務,完成硬件設計;第20周,完成軟件設計、撰寫報告,答辯。指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日專心-專注-專業(yè)目錄摘要隨著通信系統(tǒng)
3、信息容量的不斷提高,射頻技術在無線通信中占據(jù)著舉足輕重的位置。無線射頻技術利用射頻方式進行非接觸雙向通信,可以自動識別目標對象并獲取相關數(shù)據(jù),具有精度高、適應環(huán)境能力強、抗干擾強、操作快捷等許多優(yōu)點。本文主要內容是以單片機應用技術、無線收發(fā)技術為理論基礎,實現(xiàn)數(shù)據(jù)的無線收發(fā)及狀態(tài)的顯示。 首先,本文介紹了STC89C52單片機以及無線收發(fā)芯片CC1101的相關理論知識。其次本文對于要解決的實驗任務,介紹了如何構建思路及方案分析。詳細介紹了系統(tǒng)的設計方案及各個模塊的器件選型和硬件電路設計,MCU部分的軟件設計流程圖以及無線通信模塊CC1101的軟件編程要點。完成了基于單片機的433M無線通信系統(tǒng)
4、的設計實現(xiàn)。433MHz頻段的優(yōu)點在于無需申請頻段許可,采用全向天線作為發(fā)射和接收天線,在實驗室環(huán)境內發(fā)射無死區(qū)。關鍵字:STC89C52 CC1101 433M無線通信AbstractWith the continuous improvement of information capacity of communication system, radio frequency technology plays an important role in wireless communication. Wireless rf technology using non-contact two-way
5、 communication in the form of radio frequency (rf) can automatically identify the target object and obtain the relevant data, has high precision, strong ability to adapt, strong anti-interference, quick operation and many other advantages. The main content of this paper is the application technology
6、 of single chip microcomputer and wireless transceiver technology as the theoretical basis to realize the wireless transmission and status display of data.First of all, this paper introduces the relevant theoretical knowledge of STC89C52 single chip microcomputer and wireless transceiver chip CC1101
7、. Secondly, this paper introduces how to construct train of thought and plan analysis. This paper introduces the design scheme of the system and the device selection and hardware circuit design of each module, the software design flow chart of the MCU part and the software programming key points of
8、the wireless communication module CC1101. The design and implementation of the 33m wireless communication system based on SCM is completed. The advantage of the 433MHz frequency band is that there is no need to apply for the band license, and the whole antenna is used as the transmitting and receivi
9、ng antenna, and there is no dead zone in the laboratory environment.Key words: STC89C52 CC1101 433M wireless communication.1基本原理1.1無線通信系統(tǒng)無線通信就是不用導線、電纜、光纖等有線介質,而是用自由空間來傳遞電磁信號的通信方式。無線通信主要包括短波通信微波通信衛(wèi)星通信和紅外線通信。而無線收發(fā)顧名思義,就是將兩塊通信模塊以空氣為傳輸介質來實現(xiàn)發(fā)送和接收數(shù)據(jù)。發(fā)送時,通過模塊中攜帶數(shù)據(jù)的變化高頻電流,在天線上形成電磁波信號,發(fā)送出去。而接收端中,天線將接收到的電磁波信號
10、轉換為攜帶數(shù)據(jù)的變化高頻電流。短距離無線數(shù)據(jù)傳輸技術是作為一種無線通信的實用技術廣泛應用于工業(yè)、農業(yè)以及人們日常生活中的,它是在一個單片的射頻收發(fā)芯片和微控制器以及一些外圍的電子器件(如電阻、電容等)構成的無線通信模塊硬件電路的基礎上,再配合軟件上的開發(fā),并按照命令字節(jié)的協(xié)議進行數(shù)據(jù)包的操作,便可實現(xiàn)其最基本的無線數(shù)據(jù)傳輸功能。簡單的講,只要有微控器,單片射頻收發(fā)芯片以及少量的外圍和顯示設備就可以構成一個無線傳輸系統(tǒng),傳輸系統(tǒng)結構如圖1.1所示。外圍操作和顯示設備外圍操作和顯示設備單片射頻收發(fā)芯片微控制器單片射頻收發(fā)芯片微控制器 圖1.1 無線傳輸系統(tǒng)結構圖1.2芯片簡介1.2.1單片機STC
11、89C52STC89C52是一種低功耗、高性能的CMOS 8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標準功能: 8k字節(jié)Flash ROM,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,2個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/
12、計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。1.參數(shù)說明:(1)增強型8051單片機,6時鐘/機器周期和12時鐘/機器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051;(2)工作電壓:5.5V3.3V(5V 單片機)/3.8V2.0V(3V 單片機);(3)工作頻率范圍:040MHz,相當于普通8051 的080MHz,實際工作 頻率可達48MHz;(4)用戶應用程序空間為8K 字節(jié);(5)片上集成512 字節(jié)RAM;(6)通用I/O 口(32個),復位后為:P0/P1/
13、P2/P3 是準雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻;(7)ISP(在系統(tǒng)可編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器,可通過串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片;(8)具有EEPROM 功能;(9)具有看門狗功能;(10)共3個16位定時器/計數(shù)器。即定時器T0、T1、T2;(11)外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒;(12)通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART;(1
14、3)工作溫度范圍:-40+85(工業(yè)級)/075(商業(yè)級);(14)PDIP 封裝;2.引腳說明(1)電源引腳 VCC:+5V 電源 VSS:接地端(2)外接晶體引腳 XTAL1:外接晶振輸入端 XTAL2:外接晶振輸入端(3)輸入輸出引腳 P0.0P0.7:不作為地址/數(shù)據(jù)線使用時,可作為準雙向I/O口使用。但必須外接上拉電阻。 P1.0P1.7:帶內上拉電阻的8位準雙向通用I/O 口。 P2.0P2.7:帶內上拉電阻的8位準雙向通用I/O 口。訪 問片外存儲器時,P2 口用作高8位地址線。 P3.0P3.7:8位準雙向I/O接口,每個引腳還具有第二功能(4)控制線 RST是復位端,當RST
15、端出現(xiàn)持續(xù)兩個機器周期以上的高電平時,即可實現(xiàn)復位操作。 本實驗基于STC89C52的單片機最小系統(tǒng)如圖1.2所示 圖1.2 單片機最小系統(tǒng)電路結構圖1.2.2 無線通信CC1101芯片CC1101是TI(德州儀器)推出的一款低功耗433/868/915M頻段的無線傳輸射頻芯片,集2-FSK、GFSK、MSK調制方式于一體,提供擴展硬件支持的信息包處理、數(shù)據(jù)緩沖、群發(fā)信息、空閑信道評估、連接質量指示(RSSI)和無線喚醒,其具有多種優(yōu)勢特性,使得此芯片得到廣泛應用。CC1101芯片具有以下基本特征:(1)支持 2-FSK、4-FSK、GFSK、MSK以及 OOK等等靈活的 ASK 波形整形的實
16、現(xiàn)的方式;(2)工作頻段:300348 MHz、387464 MHz 和 779928 MHz;(3)高靈敏度(1.2 kBaud、433 MHz、1% 誤包率條件下為 112 dBm);(4)低電流消耗(1.2 kBaud、433 MHz 下 RX 中為 15 mA);(5)所有支持頻率下高達 +12dBm 的可編程輸出功率;(6)0.6500kBaud 的可編程數(shù)據(jù)速率;(7)高效的 SPI 接口;利用一次“突發(fā)”數(shù)據(jù)傳輸便可對所有寄存器進行編程,編程很簡潔;(8)64字節(jié)發(fā)送/接收FIFO,從而用戶可以設計出高效編程緩沖,以達到最快傳輸波特率;(9)快速的鎖定頻率合成器以及 90 S的建
17、立時間使其適合于許多跳頻系統(tǒng);(10)提供同步字檢測、地址校驗、靈活的數(shù)據(jù)包長度和自動 CRC 處理的片上支持;(11)地址及CRC 檢驗功能及點對多點通信地址控制;(12)數(shù)字 RSSI 輸出,這是許多射頻芯片無法輸出的重要參數(shù);(13)可編程信道濾波器帶寬;(14)可編程載波監(jiān)聽 (CS) 指示器;(15)可編程前導質量指示器 (PQI),用于隨機噪聲偽同步字檢測增強保護;(16)支持在信號發(fā)送之前自動空閑信道評估 (CCA)(用于載波監(jiān)聽系統(tǒng))(17)支持每個數(shù)據(jù)包的鏈路質量指示 (LQI);(18)可選數(shù)據(jù)自動白化和去白 (de-whitening);(19)標準2.54 DIP 間距
18、接口,便于嵌入式應用;(20)125 個可選工作頻道,滿足多點通信和跳頻通信需要;(21)1.8V3.6V的寬工作電壓;本實驗中所用的CC1101芯片模塊的電路結構如圖1.3所示 圖1.3 CC1101芯片模塊的電路結構圖2方案論證與設計經(jīng)過仔細地分析與論證,我認為此次的基于單片機的488M無線通信系統(tǒng)可分為無線通信模塊CC1101、單片機STC89C52最小系統(tǒng)、STC-ISP系統(tǒng)編程下載三部分組成。2.1無線通信模塊選擇方案一:nRF905芯片nRF905單片無線收發(fā)器是Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9-3.6V,32引腳QFN封裝(5mm×5mm),工
19、作于433/868/915MHz3個ISM頻道(可以免費使用)。最大發(fā)射功率+10dBm,GFSK調制模式,僅支持50kbps通訊速率,最大數(shù)據(jù)包長度32-Byte,內置CRC。校驗測試nRF905時選用444.0MHz的工作頻率,設置發(fā)射功率為+10dBm(10mW),開啟CRC校驗,設置數(shù)據(jù)包長度為32-Byte。nRF905通訊距離的測試結果與nRF2401A和nRF24L01+相似,距離500米通訊穩(wěn)定(丟包率不足1%)。到700米時出現(xiàn)嚴重的丟包。同時,nRF905所采用的433MHz膠棒天線具有較強的方向性,在接近極限距離時尤為明顯。如想在遠距離通訊中獲得更好的穩(wěn)定性,建議換用高增
20、益的定向天線。方案二:CC1101芯片德州儀器(TI)射頻芯片CC1101,相較于nRF系列的無線數(shù)傳芯片,CC1101提供了更加豐富的功能。支持ASK、OOK、GFSK、2-FSK、4-FSK和MSK調制模式,支持通訊速率0.6kbps500kbps,最高發(fā)射功率+10dBm。64-Byte的數(shù)據(jù)緩沖區(qū),支持數(shù)據(jù)白化、支持前向交錯及曼徹斯特編碼。它們會增加數(shù)據(jù)在傳輸時的可靠性和出現(xiàn)錯誤編碼時的糾錯功能。但開啟這兩個功能的同時也會使通訊速率增加一倍,這也在一定程度上降低了接收靈敏度(速率越高接收靈敏度越低)。綜上所述,考慮到芯片性價比和系統(tǒng)功能實現(xiàn)難易程度,本設計選用方案二中TI的射頻芯片CC
21、1101作為無線通信系統(tǒng)的數(shù)據(jù)傳輸模塊。2.2 單片機最小系統(tǒng)選擇方案一: STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應用專門設計的ARM 內核。按性能分成兩個不同的系列:STM32F103“增強型”系列和STM32F101“基本型”系列。增強型系列時鐘頻率達到72MHz,是同類產品中性能最高的產品;基本型時鐘頻率為36MHz,以16位產品的價格得到比16位產品大幅提升的性能,是16位產品用戶的最佳選擇。方案二:STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash
22、,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、有效的解決方案。經(jīng)比較,考慮到在課程學習的進度和深度方面,方案二STC89C52的使用可以鞏固課內知識的同時也提高可課外動手實踐能力,可以在基本不增加硬件復雜性的情況下,大大降低了軟件的復雜性,且硬件調節(jié)較軟件調節(jié)具有更高的可操作性,故選擇方案二。2.3整體方案設計本系統(tǒng)使用無線傳輸模塊CC1101作為數(shù)據(jù)通信節(jié)點,STC89C52單片機作為微控制器核心,將程序下載到2個單片機中,然后按KEY后發(fā)送信息,發(fā)送信息完畢后,發(fā)送方單片機控制LED閃爍,如果接收方接受到發(fā)送方數(shù)據(jù),且經(jīng)驗證接收數(shù)據(jù)信息的正確性和無丟包后,控制接收端LED閃爍。
23、而且兩個STC89C52均可做為發(fā)送端和接收端,一個做為發(fā)送,對應另一端即為接收,實現(xiàn)及時雙向通信。系統(tǒng)結構框圖如圖2.1所示圖2.1 433M無線通信系統(tǒng)結構框圖3 硬件電路設計3.1 STC89C52單片機最小系統(tǒng)對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、晶振電路、復位電路。在制作51單片機最小系統(tǒng)時需注意以下幾點:(1)復位電路的極性電容C1的大小直接影響單片機的復位時間,一般采用1030uF,51單片機最小系統(tǒng)容值越大需要的復位時間越短;(2)晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,51單片機最小系統(tǒng)晶振的振蕩頻率直接影響
24、單片機的處理速度,頻率越大,處理速度越快;(3)起振電容C2、C3一般采用1533pF,并且電容距離晶振越近越好,晶振距離單片機越近越好;(4)P0口為開漏輸出,作為輸出口時需加上拉電阻,阻值一般為10k;STC89C52單片機最小系統(tǒng)的電路設計圖如圖3.1所示。圖3.1 STC89C52單片機最小系統(tǒng)電路設計圖3.2 無線通信模塊CC1101 射頻模塊布線是整個系統(tǒng)PCB板設計中的核心。外圍器件最好選用體積小的貼片元件,濾波電容盡可能接近器件引腳布置,這樣濾波效果會更好。盡可能將數(shù)字電路遠離射頻電路因為數(shù)字電路存在陡峭的上升下降沿,所以MCU是射頻電路的巨大噪聲源,也可以考慮使用金屬屏蔽罩,
25、雖然該辦法存在很多缺點,但仍然非常有效,而且在很多時候是隔離關鍵電路的唯一辦法。雖然CC1101的使用手冊給出了外圍器件的詳細參數(shù),但實際應用中,很多時候阻抗匹配仍然需要重新測量計算,也要調整相應器件的參數(shù)。比如接地電容,由于板存在分布電容,實際使用的電容要比推薦的略小一些。整個PCB板最好采用統(tǒng)一接地方式。雖然數(shù)字地會干擾射頻地和模擬地,但是若分開成3部分,最終總是有些高速信號線要穿過這些分開的接地點。在CC1101無線通信模塊的設計過程中要注意以下問題:(1)VCC(5V)腳接電壓范圍為 4.5V到5.5V之間,推薦電壓5V,不能在這個電壓區(qū)間之外。(2)VCC(3.3V)腳接電壓范圍為
26、1.8V-3.5V之間,不能在這個區(qū)間之外,超過3.6V將會燒毀模塊。這里使用LM1117-3.3V芯片轉換得到。(3)硬件上面沒有SPI的單片機也可以控制本模塊,用普通單片機IO口模擬SPI不需要單片機SPI模塊介入,只需添加代碼模擬SPI時序即可。(4)17腳、18腳為接地腳, 需要和母板的邏輯地連接起來。CC1101模塊的電路設計圖如圖3.2所示。圖3.2 CC1101模塊的電路設計圖4軟件程序設計4.1發(fā)送端編程STC89C52控制CC1101作為發(fā)射端的編程流程主要包括以下4部分。(1)數(shù)據(jù)編碼:計算待發(fā)送數(shù)據(jù)的字節(jié)和數(shù)據(jù)包的編碼;(2)發(fā)射模式初始化:上載數(shù)據(jù)到TX、FIFO,使能
27、TX;(3)激活TX狀態(tài):如果所有字節(jié)沒有完全寫到TX 、FIFO,MCU將設置為低功耗模式;(4)TX、FIFO閾值中斷:填充TX、FIFO,當數(shù)據(jù)字節(jié)低于256時設置為固定長度模式,所有字節(jié)全部寫完則完全發(fā)送。STC89C52控制CC1101作為發(fā)射端的編程流程圖如圖4.1所示。圖4.1 CC1101發(fā)送模式流程圖4.2接收端編程STC89C52控制CC1101作為接收端的編程流程主要包括以下5部分。(1)初始化RX:設置無線長度模式并設置FIFO閾值;(2)激活RX狀態(tài):如果所有字節(jié)沒有完全讀到RX FIFO,MCU將設置為低功耗模式;(3)RX FIFO閾值中斷:從RX FIFO讀取長
28、度字段,計算接收數(shù)據(jù)字節(jié)的總長度,數(shù)據(jù)字節(jié)低于255時設置為固定長度模式,計算并設置PKTLEN;(4)RX數(shù)據(jù)包的接收:讀出剩余字節(jié),讀完所有字節(jié)則完全接收;(5)數(shù)據(jù)包解碼,循環(huán)冗余碼校驗;STC89C52控制CC1101作為接收端的編程流程圖如圖4.2所示。圖4.2 CC1101發(fā)送模式流程圖4.3程序調試與下載本次單片機課程設計使用C語言進行目標程序的撰寫,并利用keil軟件來對程序進行調試。在“433M無線通信系統(tǒng)”課題中將整個系統(tǒng)的軟件編程放在一個工程中,然后分別對各個功能程序單獨編譯調試,在單元的調試沒有問題之后便對整個工程總體調試運行,在確認完成了所有的功能后便將對應程序生成.
29、hex文件準備燒入單片機芯片中去。.hex文件的燒入這次我們使用了USB轉TTL的接口來實現(xiàn)。keil軟件調試界面如圖4.3所示。stc-isp的在系統(tǒng)編程與下載界面如圖4.4所示。圖4.3 keil軟件調試界面圖4.4 stc-isp的在系統(tǒng)編程與下載界面5硬件仿真STC89C52單片機最小系統(tǒng)仿真電路圖如圖5.1所示。圖5.1 STC89C52單片機最小系統(tǒng)仿真電路圖6實物制作與調試6.1 STC89C52單片機最小系統(tǒng)STC89C52單片機最小系統(tǒng)電路設計圖如圖6.1所示。 圖6.1 單片機最小系統(tǒng)電路設計圖6.2無線通信模塊CC1101無線通信模塊CC1101電路設計圖如圖6.2所示。
30、 圖6.2 無線通信模塊CC1101電路設計圖6.3穩(wěn)壓電路模塊3.3V穩(wěn)壓電路設計圖如圖6.3所示。其是利用LM1117-3.3芯片將輸入的5V電壓輸出為3.3的電壓,并且實現(xiàn)了較小紋波的電壓穩(wěn)定輸出。 圖6.3 3.3V穩(wěn)壓電路設計圖6.4 433M無線通信系統(tǒng)整體電路433M無線通信系統(tǒng)整體電路圖如圖6.4所示。圖6.4 433M無線通信系統(tǒng)整體電路圖本系統(tǒng)使用無線傳輸模塊CC1101作為數(shù)據(jù)通信節(jié)點,STC89C52單片機作為微控制器核心,將程序下載到2個單片機中,然后按KEY后發(fā)送信息,發(fā)送信息完畢后,發(fā)送方單片機控制LED閃爍,如果接收方接受到發(fā)送方數(shù)據(jù),且經(jīng)驗證接收數(shù)據(jù)信息的正確
31、性和無丟包后,控制接收端LED閃爍。而且兩個STC89C52均可做為發(fā)送端和接收端,一個做為發(fā)送,對應另一端即為接收,實現(xiàn)及時雙向通信。7心得體會這次的課程設計實踐時間雖然短暫,但卻使我受益匪淺。在書本上的知識實現(xiàn)到現(xiàn)實中的同時,也學到了很多書本中學不到的知識。讓我感受到理論付諸于實踐的重要性,這對知識的理解有很大的幫助。對于這次課程設計,我花費了比較多的心思,這既是對課程理論內容的一次復習和鞏固,同時也讓我們豐富了更多與該專業(yè)相關的其他知識,比如軟件應用等,在摸索中學習,在摸索中成長,在學習的過程中帶著問題去學我發(fā)現(xiàn)效率很高,這是我做這次課程設計的又一收獲,在真正設計之前我們做了相當豐富的準
32、備,首先鞏固一下課程理論,再一遍熟悉課程知識的構架,然后結合加以理論分析、總結,有了一個清晰的思路和一個完整的的軟件流程圖之后才著手設計。在設計程序時,我們不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經(jīng)之路;養(yǎng)成注釋程序的好習慣是非常必要的,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你的思路,這樣也能為資料的保存和交流提供了方便;我覺得在設計課程過程中遇到問題是很正常,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設計又出錯了。剛開始的時候,由于對無線通信模塊CC1101的知識不熟悉,所以做起來比較困難。我大量查閱圖書館和網(wǎng)上
33、的資料,希望能盡量在較短的時間內了解關于無線通信模塊CC1101在通信系統(tǒng)上的應用,和有關射頻模塊的理解與應用及使用方法。在PROTUES仿真STC89C52單片機最小系統(tǒng)過程中,真真切切地感受到了仿真工具的重要性,如果能夠熟練靈活運用仿真工具可大大的減短數(shù)學設計的周期。最后在實際中,先分開調試子模塊STC89C52最小系統(tǒng)和無線通信模塊CC1101,再對整體基于單片機433M無線通信系統(tǒng)實物進行軟件調試和硬件方面功能測試。此次的設計,其實也是我們所學知識的一次綜合運用,讓我深深的認識到了學習單片機要有一定的基礎,要有電子技術方面的數(shù)字電路和模擬電路等方面的理論基礎,特別是數(shù)字電路;也要有編程
34、語言的匯編語言或C語言。要想成為單片機高手,我們首先要學好匯編語言,然后轉入C語言學習,所以我們不能學到后面就忘了前面的知識,更應該將所學的知識緊緊的結合在一起,綜合運用,所謂設計,就是要求創(chuàng)新,只有將知識綜合運用起來才能真正的設計好。通過這次單片機專業(yè)課程實踐設計,我覺得收獲了很多,無論是理論知識的學習,還是實踐部分的運用。在課程設計之前,雖然自己已經(jīng)接觸過一些有關于單片機的知識,比如51系列、430超低功耗系列、STM32系列等等,但是跟射頻相關的部分還是很生疏,在本次單片機專業(yè)課程實踐設計中第一次接觸無線射頻模塊CC1101,了解其在無線通信、射頻、信號調制解調等方面強大的功能,希望以后
35、能夠有機會,能對有關于CC1101無線通信系統(tǒng)的功能進行深一層次的了解。8參考文獻1 劉嵐 尹勇等,單片計算機基礎及應用(第1版),武漢理工大學出版社,2016年2 尹勇 撒繼銘等,單片計算機原理及應用(第1版),科學出版社,2013年3 謝自美.電子線路設計·實驗·測試(第3版),華中科技大學出版社,2014年4 劉教瑜. 單片機原理及應用.武漢理工大學出版社,2011年5 張東亮.單片機原理與應用.人民郵電出版社,20096 李群芳.單片微型計算機與接口技術(第3版).電子工業(yè)出版社,2008附錄 部分源程序:1.main.c #include "main.h
36、"/main.h 中含有TX/RX選擇配置選項const char *g_Ashining = "ashining"uint8_t g_TxMode = 0, g_UartRxFlag = 0;uint8_t g_UartRxBuffer 100 = 0 ;uint8_t g_RF24L01RxBuffer 32 = 0 ; /* * brief :主函數(shù) * param :無 * note :無 * retval:無 */int main( void )uint8_t i = 0;/串口初始化drv_uart_init( );/LED初始化drv_led_ini
37、t( );/SPI初始化drv_spi_init( );/CC1101初始化CC1101_Init( );for( i = 0; i < 6; i+ )led_red_flashing( );led_green_flashing( );drv_delay_ms( 500 );#ifdef_CC1101_TX_TEST_/*發(fā)送*/按鍵初始化drv_button_init( );while( 1 )/模式切換/Demo程序默認為發(fā)送模式1,即發(fā)送固定字符串“ashining”,可以通過按鍵切換到發(fā)送模式2,即通過串口發(fā)送數(shù)據(jù),按鍵的作用就是切換發(fā)送模式1 2/如果在程序移植過程中不需要兩種
38、發(fā)送模式,刪除下面 if 語句程序塊和按鍵初始化程序即可if( BUTOTN_PRESS_DOWN = drv_button_check( )g_TxMode = 1 - g_TxMode;/模式會在 TX_MODE_1( 0 ),TX_MODE_2( 1 )之間切換/狀態(tài)顯示清零led_green_off( );led_red_off( );if( TX_MODE_1 = g_TxMode )for( i = 0; i < 6; i+ )led_red_flashing( );/固定發(fā)送模式,紅燈閃爍3次drv_delay_ms( 500 );elsefor( i = 0; i <
39、; 6; i+ )led_green_flashing( );/串口發(fā)送模式,綠燈閃爍3次drv_delay_ms( 500 );/如果在程序移植過程中不需要兩種發(fā)送模式,刪除上面 if 語句程序塊和按鍵初始化程序即可/模式切換/發(fā)送if( TX_MODE_1 = g_TxMode )CC1101_Tx_Packet( (uint8_t *)g_Ashining, 8 , ADDRESS_CHECK );/模式1發(fā)送固定字符,1S一包drv_delay_ms( 1000 );led_red_flashing( );else/查詢串口數(shù)據(jù)i = drv_uart_rx_bytes( g_Uart
40、RxBuffer );if( 0 != i )CC1101_Tx_Packet( g_UartRxBuffer, i , ADDRESS_CHECK );led_red_flashing( );#else/*接收*/while( 1 )CC1101_Clear_RxBuffer( );CC1101_Set_Mode( RX_MODE );while( 0 != CC1101_GET_GDO0_STATUS( );while( 0 = CC1101_GET_GDO0_STATUS( );i = CC1101_Rx_Packet( g_RF24L01RxBuffer );/接收字節(jié)if( 0 !=
41、 i )led_green_flashing( );drv_uart_tx_bytes( g_RF24L01RxBuffer, i );/輸出接收到的字節(jié)#endif2. drv_button.c#include "drv_button.h"#include "drv_delay.h"/* * brief :按鍵初始化 * param :無 * note :無 * retval:無 */ void drv_button_init( void )/引腳配置 部分51單片機不需要/BUTTON引腳配置為輸入BUTTON_PxM0 = IO_IN_PUT_ON
42、LY_M0 << BUTTON_PIN_BIT;BUTTON_PxM1 = IO_IN_PUT_ONLY_M1 << BUTTON_PIN_BIT;BUTTON_PIN = 1;/默認狀態(tài)置高/* * brief :按鍵查詢 * param :無 * note :無 * retval: *0:按鍵沒有按下 *1:檢測到按鍵動作 */uint8_t drv_button_check( void )if( 1 != BUTTON_PIN )/檢測按鍵輸入狀態(tài)drv_delay_ms( 45 );/消抖if( 1 != BUTTON_PIN )return 1;/按鍵按下,返
43、回按鍵狀態(tài)return 0;3. drv_delay.c#include "drv_delay.h"/* * brief :1MS延時函數(shù) * param : * note :12MHz 下1MS延時 * retval:無 */static void drv_delay_1ms( )uint16_t Ms = 1;uint32_t j = 80;while( Ms- )while( j- );/* * brief :MS延時函數(shù) * param : *Ms:延時的MS數(shù) * note :無 * retval:無 */void drv_delay_ms( uint16_t M
44、s )while( Ms- )drv_delay_1ms( );4. drv_led.c#include "drv_led.h"/* * brief :LED初始化 * param :無 * note :無 * retval:無 */ void drv_led_init( void )/引腳配置 部分51單片機不需要/LED引腳配置為推挽輸出LED_RED_PxM0 |= IO_OUT_PUT_PP_M0 << LED_RED_PIN_BIT;LED_RED_PxM1 |= IO_OUT_PUT_PP_M1 << LED_RED_PIN_BIT;LE
45、D_RED_PIN = 1;/IO初始化狀態(tài)置高,LED滅LED_GREEN_PIN = 1;/* * brief :LED亮 * param : *LedPort:LED選擇 * note :無 * retval:無 */void drv_led_on( LedPortType LedPort )/IO電平置低,LED亮if( LED_RED = LedPort )LED_RED_PIN = 0;elseLED_GREEN_PIN = 0;/* * brief :LED滅 * param : *LedPort:LED選擇 * note :無 * retval:無 */void drv_led
46、_off( LedPortType LedPort )/IO電平置高,LED滅if( LED_RED = LedPort )LED_RED_PIN = 1;elseLED_GREEN_PIN = 1;/* * brief :LED閃爍 * param : *LedPort:LED選擇 * note :無 * retval:無 */void drv_led_flashing( LedPortType LedPort )if( LED_RED = LedPort )if( 1 = LED_RED_PIN )LED_RED_PIN = 0;elseLED_RED_PIN = 1;elseif( 1
47、= LED_GREEN_PIN )LED_GREEN_PIN = 0;elseLED_GREEN_PIN = 1;5. drv_spi.c#include "drv_spi.h"/* * brief :SPI初始化(軟件) * param :無 * note :無 * retval:無 */void drv_spi_init( void )/引腳配置 部分51單片機不需要/SCK MOSI NSS 配置為推挽輸出SPI_SCK_PxM0 = IO_OUT_PUT_PP_M0 << SPI_SCK_PIN_BIT;SPI_SCK_PxM1 = IO_OUT_PUT
48、_PP_M1 << SPI_SCK_PIN_BIT;SPI_MOSI_PxM0 = IO_OUT_PUT_PP_M0 << SPI_MOSI_PIN_BIT;SPI_MOSI_PxM1 = IO_OUT_PUT_PP_M1 << SPI_MOSI_PIN_BIT;SPI_NSS_PxM0 = IO_OUT_PUT_PP_M0 << SPI_NSS_PIN_BIT;SPI_NSS_PxM1 = IO_OUT_PUT_PP_M1 << SPI_NSS_PIN_BIT;/MISO 配置為輸入SPI_MISO_PxM0 = IO_IN_PUT
49、_ONLY_M0 << SPI_MISO_PIN_BIT;SPI_MISO_PxM1 = IO_IN_PUT_ONLY_M1 << SPI_MISO_PIN_BIT;/時鐘置低SPI_SCK = 0;/MOSI MISO NSS置高SPI_MOSI = 1;SPI_MISO = 1;SPI_NSS = 1;/* * brief :SPI收發(fā)一個字節(jié) * param : *TxByte: 發(fā)送的數(shù)據(jù)字節(jié) * note :非堵塞式,一旦等待超時,函數(shù)會自動退出 * retval:接收到的字節(jié) */uint8_t drv_spi_read_write_byte( uint8_
50、t TxByte )uint8_t i = 0, Data = 0;spi_set_clk_low( );for( i = 0; i < 8; i+ )/一個字節(jié)8byte需要循環(huán)8次/* 發(fā)送 */if( 0x80 = ( TxByte & 0x80 )spi_set_mosi_hight( );/如果即將要發(fā)送的位為 1 則置高IO引腳elsespi_set_mosi_low( );/如果即將要發(fā)送的位為 0 則置低IO引腳TxByte <<= 1;/數(shù)據(jù)左移一位,先發(fā)送的是最高位spi_set_clk_high( );/時鐘線置高_nop_( );/* 接收 *
51、/Data <<= 1;/接收數(shù)據(jù)左移一位,先接收到的是最高位if( 1 = spi_get_miso( )Data |= 0x01;/如果接收時IO引腳為高則認為接收到 1spi_set_clk_low( );/時鐘線置低_nop_( );return Data;/返回接收到的字節(jié)/* * brief :SPI收發(fā)字符串 * param : *ReadBuffer: 接收數(shù)據(jù)緩沖區(qū)地址 *WriteBuffer:發(fā)送字節(jié)緩沖區(qū)地址 *Length:字節(jié)長度 * note :非堵塞式,一旦等待超時,函數(shù)會自動退出 * retval:無 */void drv_spi_read_write_string( uint8_t* ReadBuffer, uint8_t* WriteBuffer, uint16_t Length )spi_set_nss_low( );/片選拉低while( Length- )*ReadBuffer = drv_spi_read_write_byte( *WriteBuffer );/收發(fā)數(shù)據(jù)ReadBuffer+;Writ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店資產投資與經(jīng)營管理合伙協(xié)議書二零二五
- 二零二五年度私人住宅裝修工人安全責任合同
- 2025年度海洋資源開發(fā)橫向課題執(zhí)行協(xié)議
- 二零二五年度小程序游戲運營合作協(xié)議
- 2025年度電子元器件采購合同主要內容簡述
- 二零二五年度購房合同定金支付及變更協(xié)議書
- 2025年度酒店員工勞動權益保障合同
- 二零二五年度綠色建筑股權協(xié)議及合伙人合作開發(fā)協(xié)議
- 2025年度美發(fā)店員工工傷事故處理勞動合同
- 空調安裝工勞動合同
- 北京2025年02月北京市地質礦產勘查院所屬事業(yè)單位公開招考工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- DeepSeek零基礎到精通手冊(保姆級教程)
- 瓷磚鋪貼勞務承包協(xié)議書
- 2025年四川司法警官職業(yè)學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 新建污水處理廠工程EPC總承包投標方案(技術標)
- 柔性電路板自動化制造-深度研究
- 2024年河南建筑職業(yè)技術學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 《宏觀經(jīng)濟管理研究》課件
- 蘇教版五年級下冊數(shù)學全冊教案設計
- 曲臂車作業(yè)安全技術交底
- 2025年安徽合肥市公安局經(jīng)開分局輔警招聘58人歷年高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論