版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué) 號(hào): 課 程 設(shè) 計(jì)題 目基于單片機(jī)的433M無(wú)線通信系統(tǒng)學(xué) 院專 業(yè)班 級(jí) 姓 名指導(dǎo)教師2018年 1月 13日單片機(jī)應(yīng)用設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 題 目: 基于單片機(jī)的433M無(wú)線通信系統(tǒng)課程設(shè)計(jì)目的:1、熟悉單片機(jī)應(yīng)用系統(tǒng)的硬件設(shè)計(jì)及軟件設(shè)計(jì)的基本方法;2、 將單片機(jī)原理與應(yīng)用理論課的理論知識(shí)應(yīng)用于實(shí)際的應(yīng)用系統(tǒng)中;3、 訓(xùn)練單片機(jī)應(yīng)用技術(shù),鍛煉實(shí)際動(dòng)手能力4、 提高正確地撰寫(xiě)論文的基本能力。課程設(shè)計(jì)內(nèi)容和要求1、 完成硬件電路的設(shè)計(jì),其中包括單片機(jī)和CC1101模塊的設(shè)計(jì); 2、 完成無(wú)線通信模塊的程序設(shè)計(jì)與實(shí)現(xiàn)
2、,上機(jī)運(yùn)行調(diào)試程序,記錄實(shí)驗(yàn)結(jié)果(如圖表等),并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析和總結(jié); 3、 課程設(shè)計(jì)報(bào)告書(shū)按學(xué)校統(tǒng)一規(guī)范來(lái)撰寫(xiě),報(bào)告主要包括以下內(nèi)容:目錄、摘要、關(guān)鍵詞、基本原理、方案論證、硬件設(shè)計(jì)、軟件設(shè)計(jì)(帶流程圖、程序清單)、仿真結(jié)果、實(shí)物運(yùn)行結(jié)果照片、結(jié)論獻(xiàn)等;4、 查閱不少于6篇參考文獻(xiàn)。初始條件:1、 STC89C52和CC1100H模塊; 2、 先修課程:?jiǎn)纹瑱C(jī)原理與應(yīng)用。時(shí)間安排:第19周,安排設(shè)計(jì)任務(wù),完成硬件設(shè)計(jì);第20周,完成軟件設(shè)計(jì)、撰寫(xiě)報(bào)告,答辯。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日專心-專注-專業(yè)目錄摘要隨著通信系統(tǒng)
3、信息容量的不斷提高,射頻技術(shù)在無(wú)線通信中占據(jù)著舉足輕重的位置。無(wú)線射頻技術(shù)利用射頻方式進(jìn)行非接觸雙向通信,可以自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),具有精度高、適應(yīng)環(huán)境能力強(qiáng)、抗干擾強(qiáng)、操作快捷等許多優(yōu)點(diǎn)。本文主要內(nèi)容是以單片機(jī)應(yīng)用技術(shù)、無(wú)線收發(fā)技術(shù)為理論基礎(chǔ),實(shí)現(xiàn)數(shù)據(jù)的無(wú)線收發(fā)及狀態(tài)的顯示。 首先,本文介紹了STC89C52單片機(jī)以及無(wú)線收發(fā)芯片CC1101的相關(guān)理論知識(shí)。其次本文對(duì)于要解決的實(shí)驗(yàn)任務(wù),介紹了如何構(gòu)建思路及方案分析。詳細(xì)介紹了系統(tǒng)的設(shè)計(jì)方案及各個(gè)模塊的器件選型和硬件電路設(shè)計(jì),MCU部分的軟件設(shè)計(jì)流程圖以及無(wú)線通信模塊CC1101的軟件編程要點(diǎn)。完成了基于單片機(jī)的433M無(wú)線通信系統(tǒng)
4、的設(shè)計(jì)實(shí)現(xiàn)。433MHz頻段的優(yōu)點(diǎn)在于無(wú)需申請(qǐng)頻段許可,采用全向天線作為發(fā)射和接收天線,在實(shí)驗(yàn)室環(huán)境內(nèi)發(fā)射無(wú)死區(qū)。關(guān)鍵字:STC89C52 CC1101 433M無(wú)線通信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無(wú)線通信系統(tǒng)無(wú)線通信就是不用導(dǎo)線、電纜、光纖等有線介質(zhì),而是用自由空間來(lái)傳遞電磁信號(hào)的通信方式。無(wú)線通信主要包括短波通信微波通信衛(wèi)星通信和紅外線通信。而無(wú)線收發(fā)顧名思義,就是將兩塊通信模塊以空氣為傳輸介質(zhì)來(lái)實(shí)現(xiàn)發(fā)送和接收數(shù)據(jù)。發(fā)送時(shí),通過(guò)模塊中攜帶數(shù)據(jù)的變化高頻電流,在天線上形成電磁波信號(hào),發(fā)送出去。而接收端中,天線將接收到的電磁波信號(hào)
10、轉(zhuǎn)換為攜帶數(shù)據(jù)的變化高頻電流。短距離無(wú)線數(shù)據(jù)傳輸技術(shù)是作為一種無(wú)線通信的實(shí)用技術(shù)廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)以及人們?nèi)粘I钪械?,它是在一個(gè)單片的射頻收發(fā)芯片和微控制器以及一些外圍的電子器件(如電阻、電容等)構(gòu)成的無(wú)線通信模塊硬件電路的基礎(chǔ)上,再配合軟件上的開(kāi)發(fā),并按照命令字節(jié)的協(xié)議進(jìn)行數(shù)據(jù)包的操作,便可實(shí)現(xiàn)其最基本的無(wú)線數(shù)據(jù)傳輸功能。簡(jiǎn)單的講,只要有微控器,單片射頻收發(fā)芯片以及少量的外圍和顯示設(shè)備就可以構(gòu)成一個(gè)無(wú)線傳輸系統(tǒng),傳輸系統(tǒng)結(jié)構(gòu)如圖1.1所示。外圍操作和顯示設(shè)備外圍操作和顯示設(shè)備單片射頻收發(fā)芯片微控制器單片射頻收發(fā)芯片微控制器 圖1.1 無(wú)線傳輸系統(tǒng)結(jié)構(gòu)圖1.2芯片簡(jiǎn)介1.2.1單片機(jī)STC
11、89C52STC89C52是一種低功耗、高性能的CMOS 8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash ROM,512字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,2個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/
12、計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。1.參數(shù)說(shuō)明:(1)增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051;(2)工作電壓:5.5V3.3V(5V 單片機(jī))/3.8V2.0V(3V 單片機(jī));(3)工作頻率范圍:040MHz,相當(dāng)于普通8051 的080MHz,實(shí)際工作 頻率可達(dá)48MHz;(4)用戶應(yīng)用程序空間為8K 字節(jié);(5)片上集成512 字節(jié)RAM;(6)通用I/O 口(32個(gè)),復(fù)位后為:P0/P1/
13、P2/P3 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為 I/O 口用時(shí),需加上拉電阻;(7)ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器,可通過(guò)串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片;(8)具有EEPROM 功能;(9)具有看門(mén)狗功能;(10)共3個(gè)16位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2;(11)外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒;(12)通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART;(1
14、3)工作溫度范圍:-40+85(工業(yè)級(jí))/075(商業(yè)級(jí));(14)PDIP 封裝;2.引腳說(shuō)明(1)電源引腳 VCC:+5V 電源 VSS:接地端(2)外接晶體引腳 XTAL1:外接晶振輸入端 XTAL2:外接晶振輸入端(3)輸入輸出引腳 P0.0P0.7:不作為地址/數(shù)據(jù)線使用時(shí),可作為準(zhǔn)雙向I/O口使用。但必須外接上拉電阻。 P1.0P1.7:帶內(nèi)上拉電阻的8位準(zhǔn)雙向通用I/O 口。 P2.0P2.7:帶內(nèi)上拉電阻的8位準(zhǔn)雙向通用I/O 口。訪 問(wèn)片外存儲(chǔ)器時(shí),P2 口用作高8位地址線。 P3.0P3.7:8位準(zhǔn)雙向I/O接口,每個(gè)引腳還具有第二功能(4)控制線 RST是復(fù)位端,當(dāng)RST
15、端出現(xiàn)持續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí),即可實(shí)現(xiàn)復(fù)位操作。 本實(shí)驗(yàn)基于STC89C52的單片機(jī)最小系統(tǒng)如圖1.2所示 圖1.2 單片機(jī)最小系統(tǒng)電路結(jié)構(gòu)圖1.2.2 無(wú)線通信CC1101芯片CC1101是TI(德州儀器)推出的一款低功耗433/868/915M頻段的無(wú)線傳輸射頻芯片,集2-FSK、GFSK、MSK調(diào)制方式于一體,提供擴(kuò)展硬件支持的信息包處理、數(shù)據(jù)緩沖、群發(fā)信息、空閑信道評(píng)估、連接質(zhì)量指示(RSSI)和無(wú)線喚醒,其具有多種優(yōu)勢(shì)特性,使得此芯片得到廣泛應(yīng)用。CC1101芯片具有以下基本特征:(1)支持 2-FSK、4-FSK、GFSK、MSK以及 OOK等等靈活的 ASK 波形整形的實(shí)
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)所有支持頻率下高達(dá) +12dBm 的可編程輸出功率;(6)0.6500kBaud 的可編程數(shù)據(jù)速率;(7)高效的 SPI 接口;利用一次“突發(fā)”數(shù)據(jù)傳輸便可對(duì)所有寄存器進(jìn)行編程,編程很簡(jiǎn)潔;(8)64字節(jié)發(fā)送/接收FIFO,從而用戶可以設(shè)計(jì)出高效編程緩沖,以達(dá)到最快傳輸波特率;(9)快速的鎖定頻率合成器以及 90 S的建
17、立時(shí)間使其適合于許多跳頻系統(tǒng);(10)提供同步字檢測(cè)、地址校驗(yàn)、靈活的數(shù)據(jù)包長(zhǎng)度和自動(dòng) CRC 處理的片上支持;(11)地址及CRC 檢驗(yàn)功能及點(diǎn)對(duì)多點(diǎn)通信地址控制;(12)數(shù)字 RSSI 輸出,這是許多射頻芯片無(wú)法輸出的重要參數(shù);(13)可編程信道濾波器帶寬;(14)可編程載波監(jiān)聽(tīng) (CS) 指示器;(15)可編程前導(dǎo)質(zhì)量指示器 (PQI),用于隨機(jī)噪聲偽同步字檢測(cè)增強(qiáng)保護(hù);(16)支持在信號(hào)發(fā)送之前自動(dòng)空閑信道評(píng)估 (CCA)(用于載波監(jiān)聽(tīng)系統(tǒng))(17)支持每個(gè)數(shù)據(jù)包的鏈路質(zhì)量指示 (LQI);(18)可選數(shù)據(jù)自動(dòng)白化和去白 (de-whitening);(19)標(biāo)準(zhǔn)2.54 DIP 間距
18、接口,便于嵌入式應(yīng)用;(20)125 個(gè)可選工作頻道,滿足多點(diǎn)通信和跳頻通信需要;(21)1.8V3.6V的寬工作電壓;本實(shí)驗(yàn)中所用的CC1101芯片模塊的電路結(jié)構(gòu)如圖1.3所示 圖1.3 CC1101芯片模塊的電路結(jié)構(gòu)圖2方案論證與設(shè)計(jì)經(jīng)過(guò)仔細(xì)地分析與論證,我認(rèn)為此次的基于單片機(jī)的488M無(wú)線通信系統(tǒng)可分為無(wú)線通信模塊CC1101、單片機(jī)STC89C52最小系統(tǒng)、STC-ISP系統(tǒng)編程下載三部分組成。2.1無(wú)線通信模塊選擇方案一:nRF905芯片nRF905單片無(wú)線收發(fā)器是Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9-3.6V,32引腳QFN封裝(5mm×5mm),工
19、作于433/868/915MHz3個(gè)ISM頻道(可以免費(fèi)使用)。最大發(fā)射功率+10dBm,GFSK調(diào)制模式,僅支持50kbps通訊速率,最大數(shù)據(jù)包長(zhǎng)度32-Byte,內(nèi)置CRC。校驗(yàn)測(cè)試nRF905時(shí)選用444.0MHz的工作頻率,設(shè)置發(fā)射功率為+10dBm(10mW),開(kāi)啟CRC校驗(yàn),設(shè)置數(shù)據(jù)包長(zhǎng)度為32-Byte。nRF905通訊距離的測(cè)試結(jié)果與nRF2401A和nRF24L01+相似,距離500米通訊穩(wěn)定(丟包率不足1%)。到700米時(shí)出現(xiàn)嚴(yán)重的丟包。同時(shí),nRF905所采用的433MHz膠棒天線具有較強(qiáng)的方向性,在接近極限距離時(shí)尤為明顯。如想在遠(yuǎn)距離通訊中獲得更好的穩(wěn)定性,建議換用高增
20、益的定向天線。方案二:CC1101芯片德州儀器(TI)射頻芯片CC1101,相較于nRF系列的無(wú)線數(shù)傳芯片,CC1101提供了更加豐富的功能。支持ASK、OOK、GFSK、2-FSK、4-FSK和MSK調(diào)制模式,支持通訊速率0.6kbps500kbps,最高發(fā)射功率+10dBm。64-Byte的數(shù)據(jù)緩沖區(qū),支持?jǐn)?shù)據(jù)白化、支持前向交錯(cuò)及曼徹斯特編碼。它們會(huì)增加數(shù)據(jù)在傳輸時(shí)的可靠性和出現(xiàn)錯(cuò)誤編碼時(shí)的糾錯(cuò)功能。但開(kāi)啟這兩個(gè)功能的同時(shí)也會(huì)使通訊速率增加一倍,這也在一定程度上降低了接收靈敏度(速率越高接收靈敏度越低)。綜上所述,考慮到芯片性價(jià)比和系統(tǒng)功能實(shí)現(xiàn)難易程度,本設(shè)計(jì)選用方案二中TI的射頻芯片CC
21、1101作為無(wú)線通信系統(tǒng)的數(shù)據(jù)傳輸模塊。2.2 單片機(jī)最小系統(tǒng)選擇方案一: STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門(mén)設(shè)計(jì)的ARM 內(nèi)核。按性能分成兩個(gè)不同的系列:STM32F103“增強(qiáng)型”系列和STM32F101“基本型”系列。增強(qiáng)型系列時(shí)鐘頻率達(dá)到72MHz,是同類產(chǎn)品中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36MHz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是16位產(chǎn)品用戶的最佳選擇。方案二:STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash
22、,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。經(jīng)比較,考慮到在課程學(xué)習(xí)的進(jìn)度和深度方面,方案二STC89C52的使用可以鞏固課內(nèi)知識(shí)的同時(shí)也提高可課外動(dòng)手實(shí)踐能力,可以在基本不增加硬件復(fù)雜性的情況下,大大降低了軟件的復(fù)雜性,且硬件調(diào)節(jié)較軟件調(diào)節(jié)具有更高的可操作性,故選擇方案二。2.3整體方案設(shè)計(jì)本系統(tǒng)使用無(wú)線傳輸模塊CC1101作為數(shù)據(jù)通信節(jié)點(diǎn),STC89C52單片機(jī)作為微控制器核心,將程序下載到2個(gè)單片機(jī)中,然后按KEY后發(fā)送信息,發(fā)送信息完畢后,發(fā)送方單片機(jī)控制LED閃爍,如果接收方接受到發(fā)送方數(shù)據(jù),且經(jīng)驗(yàn)證接收數(shù)據(jù)信息的正確性和無(wú)丟包后,控制接收端LED閃爍。
23、而且兩個(gè)STC89C52均可做為發(fā)送端和接收端,一個(gè)做為發(fā)送,對(duì)應(yīng)另一端即為接收,實(shí)現(xiàn)及時(shí)雙向通信。系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示圖2.1 433M無(wú)線通信系統(tǒng)結(jié)構(gòu)框圖3 硬件電路設(shè)計(jì)3.1 STC89C52單片機(jī)最小系統(tǒng)對(duì)51系列單片機(jī)來(lái)說(shuō),最小系統(tǒng)一般應(yīng)該包括:?jiǎn)纹瑱C(jī)、晶振電路、復(fù)位電路。在制作51單片機(jī)最小系統(tǒng)時(shí)需注意以下幾點(diǎn):(1)復(fù)位電路的極性電容C1的大小直接影響單片機(jī)的復(fù)位時(shí)間,一般采用1030uF,51單片機(jī)最小系統(tǒng)容值越大需要的復(fù)位時(shí)間越短;(2)晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,51單片機(jī)最小系統(tǒng)晶振的振蕩頻率直接影響
24、單片機(jī)的處理速度,頻率越大,處理速度越快;(3)起振電容C2、C3一般采用1533pF,并且電容距離晶振越近越好,晶振距離單片機(jī)越近越好;(4)P0口為開(kāi)漏輸出,作為輸出口時(shí)需加上拉電阻,阻值一般為10k;STC89C52單片機(jī)最小系統(tǒng)的電路設(shè)計(jì)圖如圖3.1所示。圖3.1 STC89C52單片機(jī)最小系統(tǒng)電路設(shè)計(jì)圖3.2 無(wú)線通信模塊CC1101 射頻模塊布線是整個(gè)系統(tǒng)PCB板設(shè)計(jì)中的核心。外圍器件最好選用體積小的貼片元件,濾波電容盡可能接近器件引腳布置,這樣濾波效果會(huì)更好。盡可能將數(shù)字電路遠(yuǎn)離射頻電路因?yàn)閿?shù)字電路存在陡峭的上升下降沿,所以MCU是射頻電路的巨大噪聲源,也可以考慮使用金屬屏蔽罩,
25、雖然該辦法存在很多缺點(diǎn),但仍然非常有效,而且在很多時(shí)候是隔離關(guān)鍵電路的唯一辦法。雖然CC1101的使用手冊(cè)給出了外圍器件的詳細(xì)參數(shù),但實(shí)際應(yīng)用中,很多時(shí)候阻抗匹配仍然需要重新測(cè)量計(jì)算,也要調(diào)整相應(yīng)器件的參數(shù)。比如接地電容,由于板存在分布電容,實(shí)際使用的電容要比推薦的略小一些。整個(gè)PCB板最好采用統(tǒng)一接地方式。雖然數(shù)字地會(huì)干擾射頻地和模擬地,但是若分開(kāi)成3部分,最終總是有些高速信號(hào)線要穿過(guò)這些分開(kāi)的接地點(diǎn)。在CC1101無(wú)線通信模塊的設(shè)計(jì)過(guò)程中要注意以下問(wèn)題:(1)VCC(5V)腳接電壓范圍為 4.5V到5.5V之間,推薦電壓5V,不能在這個(gè)電壓區(qū)間之外。(2)VCC(3.3V)腳接電壓范圍為
26、1.8V-3.5V之間,不能在這個(gè)區(qū)間之外,超過(guò)3.6V將會(huì)燒毀模塊。這里使用LM1117-3.3V芯片轉(zhuǎn)換得到。(3)硬件上面沒(méi)有SPI的單片機(jī)也可以控制本模塊,用普通單片機(jī)IO口模擬SPI不需要單片機(jī)SPI模塊介入,只需添加代碼模擬SPI時(shí)序即可。(4)17腳、18腳為接地腳, 需要和母板的邏輯地連接起來(lái)。CC1101模塊的電路設(shè)計(jì)圖如圖3.2所示。圖3.2 CC1101模塊的電路設(shè)計(jì)圖4軟件程序設(shè)計(jì)4.1發(fā)送端編程STC89C52控制CC1101作為發(fā)射端的編程流程主要包括以下4部分。(1)數(shù)據(jù)編碼:計(jì)算待發(fā)送數(shù)據(jù)的字節(jié)和數(shù)據(jù)包的編碼;(2)發(fā)射模式初始化:上載數(shù)據(jù)到TX、FIFO,使能
27、TX;(3)激活TX狀態(tài):如果所有字節(jié)沒(méi)有完全寫(xiě)到TX 、FIFO,MCU將設(shè)置為低功耗模式;(4)TX、FIFO閾值中斷:填充TX、FIFO,當(dāng)數(shù)據(jù)字節(jié)低于256時(shí)設(shè)置為固定長(zhǎng)度模式,所有字節(jié)全部寫(xiě)完則完全發(fā)送。STC89C52控制CC1101作為發(fā)射端的編程流程圖如圖4.1所示。圖4.1 CC1101發(fā)送模式流程圖4.2接收端編程STC89C52控制CC1101作為接收端的編程流程主要包括以下5部分。(1)初始化RX:設(shè)置無(wú)線長(zhǎng)度模式并設(shè)置FIFO閾值;(2)激活RX狀態(tài):如果所有字節(jié)沒(méi)有完全讀到RX FIFO,MCU將設(shè)置為低功耗模式;(3)RX FIFO閾值中斷:從RX FIFO讀取長(zhǎng)
28、度字段,計(jì)算接收數(shù)據(jù)字節(jié)的總長(zhǎng)度,數(shù)據(jù)字節(jié)低于255時(shí)設(shè)置為固定長(zhǎng)度模式,計(jì)算并設(shè)置PKTLEN;(4)RX數(shù)據(jù)包的接收:讀出剩余字節(jié),讀完所有字節(jié)則完全接收;(5)數(shù)據(jù)包解碼,循環(huán)冗余碼校驗(yàn);STC89C52控制CC1101作為接收端的編程流程圖如圖4.2所示。圖4.2 CC1101發(fā)送模式流程圖4.3程序調(diào)試與下載本次單片機(jī)課程設(shè)計(jì)使用C語(yǔ)言進(jìn)行目標(biāo)程序的撰寫(xiě),并利用keil軟件來(lái)對(duì)程序進(jìn)行調(diào)試。在“433M無(wú)線通信系統(tǒng)”課題中將整個(gè)系統(tǒng)的軟件編程放在一個(gè)工程中,然后分別對(duì)各個(gè)功能程序單獨(dú)編譯調(diào)試,在單元的調(diào)試沒(méi)有問(wèn)題之后便對(duì)整個(gè)工程總體調(diào)試運(yùn)行,在確認(rèn)完成了所有的功能后便將對(duì)應(yīng)程序生成.
29、hex文件準(zhǔn)備燒入單片機(jī)芯片中去。.hex文件的燒入這次我們使用了USB轉(zhuǎn)TTL的接口來(lái)實(shí)現(xiàn)。keil軟件調(diào)試界面如圖4.3所示。stc-isp的在系統(tǒng)編程與下載界面如圖4.4所示。圖4.3 keil軟件調(diào)試界面圖4.4 stc-isp的在系統(tǒng)編程與下載界面5硬件仿真STC89C52單片機(jī)最小系統(tǒng)仿真電路圖如圖5.1所示。圖5.1 STC89C52單片機(jī)最小系統(tǒng)仿真電路圖6實(shí)物制作與調(diào)試6.1 STC89C52單片機(jī)最小系統(tǒng)STC89C52單片機(jī)最小系統(tǒng)電路設(shè)計(jì)圖如圖6.1所示。 圖6.1 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)圖6.2無(wú)線通信模塊CC1101無(wú)線通信模塊CC1101電路設(shè)計(jì)圖如圖6.2所示。
30、 圖6.2 無(wú)線通信模塊CC1101電路設(shè)計(jì)圖6.3穩(wěn)壓電路模塊3.3V穩(wěn)壓電路設(shè)計(jì)圖如圖6.3所示。其是利用LM1117-3.3芯片將輸入的5V電壓輸出為3.3的電壓,并且實(shí)現(xiàn)了較小紋波的電壓穩(wěn)定輸出。 圖6.3 3.3V穩(wěn)壓電路設(shè)計(jì)圖6.4 433M無(wú)線通信系統(tǒng)整體電路433M無(wú)線通信系統(tǒng)整體電路圖如圖6.4所示。圖6.4 433M無(wú)線通信系統(tǒng)整體電路圖本系統(tǒng)使用無(wú)線傳輸模塊CC1101作為數(shù)據(jù)通信節(jié)點(diǎn),STC89C52單片機(jī)作為微控制器核心,將程序下載到2個(gè)單片機(jī)中,然后按KEY后發(fā)送信息,發(fā)送信息完畢后,發(fā)送方單片機(jī)控制LED閃爍,如果接收方接受到發(fā)送方數(shù)據(jù),且經(jīng)驗(yàn)證接收數(shù)據(jù)信息的正確
31、性和無(wú)丟包后,控制接收端LED閃爍。而且兩個(gè)STC89C52均可做為發(fā)送端和接收端,一個(gè)做為發(fā)送,對(duì)應(yīng)另一端即為接收,實(shí)現(xiàn)及時(shí)雙向通信。7心得體會(huì)這次的課程設(shè)計(jì)實(shí)踐時(shí)間雖然短暫,但卻使我受益匪淺。在書(shū)本上的知識(shí)實(shí)現(xiàn)到現(xiàn)實(shí)中的同時(shí),也學(xué)到了很多書(shū)本中學(xué)不到的知識(shí)。讓我感受到理論付諸于實(shí)踐的重要性,這對(duì)知識(shí)的理解有很大的幫助。對(duì)于這次課程設(shè)計(jì),我花費(fèi)了比較多的心思,這既是對(duì)課程理論內(nèi)容的一次復(fù)習(xí)和鞏固,同時(shí)也讓我們豐富了更多與該專業(yè)相關(guān)的其他知識(shí),比如軟件應(yīng)用等,在摸索中學(xué)習(xí),在摸索中成長(zhǎng),在學(xué)習(xí)的過(guò)程中帶著問(wèn)題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲,在真正設(shè)計(jì)之前我們做了相當(dāng)豐富的準(zhǔn)
32、備,首先鞏固一下課程理論,再一遍熟悉課程知識(shí)的構(gòu)架,然后結(jié)合加以理論分析、總結(jié),有了一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖之后才著手設(shè)計(jì)。在設(shè)計(jì)程序時(shí),我們不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;養(yǎng)成注釋程序的好習(xí)慣是非常必要的,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也能為資料的保存和交流提供了方便;我覺(jué)得在設(shè)計(jì)課程過(guò)程中遇到問(wèn)題是很正常,但我們應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題的課程設(shè)計(jì)又出錯(cuò)了。剛開(kāi)始的時(shí)候,由于對(duì)無(wú)線通信模塊CC1101的知識(shí)不熟悉,所以做起來(lái)比較困難。我大量查閱圖書(shū)館和網(wǎng)上
33、的資料,希望能盡量在較短的時(shí)間內(nèi)了解關(guān)于無(wú)線通信模塊CC1101在通信系統(tǒng)上的應(yīng)用,和有關(guān)射頻模塊的理解與應(yīng)用及使用方法。在PROTUES仿真STC89C52單片機(jī)最小系統(tǒng)過(guò)程中,真真切切地感受到了仿真工具的重要性,如果能夠熟練靈活運(yùn)用仿真工具可大大的減短數(shù)學(xué)設(shè)計(jì)的周期。最后在實(shí)際中,先分開(kāi)調(diào)試子模塊STC89C52最小系統(tǒng)和無(wú)線通信模塊CC1101,再對(duì)整體基于單片機(jī)433M無(wú)線通信系統(tǒng)實(shí)物進(jìn)行軟件調(diào)試和硬件方面功能測(cè)試。此次的設(shè)計(jì),其實(shí)也是我們所學(xué)知識(shí)的一次綜合運(yùn)用,讓我深深的認(rèn)識(shí)到了學(xué)習(xí)單片機(jī)要有一定的基礎(chǔ),要有電子技術(shù)方面的數(shù)字電路和模擬電路等方面的理論基礎(chǔ),特別是數(shù)字電路;也要有編程
34、語(yǔ)言的匯編語(yǔ)言或C語(yǔ)言。要想成為單片機(jī)高手,我們首先要學(xué)好匯編語(yǔ)言,然后轉(zhuǎn)入C語(yǔ)言學(xué)習(xí),所以我們不能學(xué)到后面就忘了前面的知識(shí),更應(yīng)該將所學(xué)的知識(shí)緊緊的結(jié)合在一起,綜合運(yùn)用,所謂設(shè)計(jì),就是要求創(chuàng)新,只有將知識(shí)綜合運(yùn)用起來(lái)才能真正的設(shè)計(jì)好。通過(guò)這次單片機(jī)專業(yè)課程實(shí)踐設(shè)計(jì),我覺(jué)得收獲了很多,無(wú)論是理論知識(shí)的學(xué)習(xí),還是實(shí)踐部分的運(yùn)用。在課程設(shè)計(jì)之前,雖然自己已經(jīng)接觸過(guò)一些有關(guān)于單片機(jī)的知識(shí),比如51系列、430超低功耗系列、STM32系列等等,但是跟射頻相關(guān)的部分還是很生疏,在本次單片機(jī)專業(yè)課程實(shí)踐設(shè)計(jì)中第一次接觸無(wú)線射頻模塊CC1101,了解其在無(wú)線通信、射頻、信號(hào)調(diào)制解調(diào)等方面強(qiáng)大的功能,希望以后
35、能夠有機(jī)會(huì),能對(duì)有關(guān)于CC1101無(wú)線通信系統(tǒng)的功能進(jìn)行深一層次的了解。8參考文獻(xiàn)1 劉嵐 尹勇等,單片計(jì)算機(jī)基礎(chǔ)及應(yīng)用(第1版),武漢理工大學(xué)出版社,2016年2 尹勇 撒繼銘等,單片計(jì)算機(jī)原理及應(yīng)用(第1版),科學(xué)出版社,2013年3 謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試(第3版),華中科技大學(xué)出版社,2014年4 劉教瑜. 單片機(jī)原理及應(yīng)用.武漢理工大學(xué)出版社,2011年5 張東亮.單片機(jī)原理與應(yīng)用.人民郵電出版社,20096 李群芳.單片微型計(jì)算機(jī)與接口技術(shù)(第3版).電子工業(yè)出版社,2008附錄 部分源程序:1.main.c #include "main.h
36、"/main.h 中含有TX/RX選擇配置選項(xiàng)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 :無(wú) * note :無(wú) * retval:無(wú) */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程序默認(rèn)為發(fā)送模式1,即發(fā)送固定字符串“ashining”,可以通過(guò)按鍵切換到發(fā)送模式2,即通過(guò)串口發(fā)送數(shù)據(jù),按鍵的作用就是切換發(fā)送模式1 2/如果在程序移植過(guò)程中不需要兩種
38、發(fā)送模式,刪除下面 if 語(yǔ)句程序塊和按鍵初始化程序即可if( BUTOTN_PRESS_DOWN = drv_button_check( )g_TxMode = 1 - g_TxMode;/模式會(huì)在 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 );/如果在程序移植過(guò)程中不需要兩種發(fā)送模式,刪除上面 if 語(yǔ)句程序塊和按鍵初始化程序即可/模式切換/發(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 :無(wú) * note :無(wú) * retval:無(wú) */ void drv_button_init( void )/引腳配置 部分51單片機(jī)不需要/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;/默認(rèn)狀態(tài)置高/* * brief :按鍵查詢 * param :無(wú) * note :無(wú) * retval: *0:按鍵沒(méi)有按下 *1:檢測(cè)到按鍵動(dòng)作 */uint8_t drv_button_check( void )if( 1 != BUTTON_PIN )/檢測(cè)按鍵輸入狀態(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í)函數(shù) * param : * note :12MHz 下1MS延時(shí) * retval:無(wú) */static void drv_delay_1ms( )uint16_t Ms = 1;uint32_t j = 80;while( Ms- )while( j- );/* * brief :MS延時(shí)函數(shù) * param : *Ms:延時(shí)的MS數(shù) * note :無(wú) * retval:無(wú) */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 :無(wú) * note :無(wú) * retval:無(wú) */ void drv_led_init( void )/引腳配置 部分51單片機(jī)不需要/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 :無(wú) * retval:無(wú) */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 :無(wú) * retval:無(wú) */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 :無(wú) * retval:無(wú) */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 :無(wú) * note :無(wú) * retval:無(wú) */void drv_spi_init( void )/引腳配置 部分51單片機(jī)不需要/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;/時(shí)鐘置低SPI_SCK = 0;/MOSI MISO NSS置高SPI_MOSI = 1;SPI_MISO = 1;SPI_NSS = 1;/* * brief :SPI收發(fā)一個(gè)字節(jié) * param : *TxByte: 發(fā)送的數(shù)據(jù)字節(jié) * note :非堵塞式,一旦等待超時(shí),函數(shù)會(huì)自動(dòng)退出 * 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+ )/一個(gè)字節(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( );/時(shí)鐘線置高_(dá)nop_( );/* 接收 *
51、/Data <<= 1;/接收數(shù)據(jù)左移一位,先接收到的是最高位if( 1 = spi_get_miso( )Data |= 0x01;/如果接收時(shí)IO引腳為高則認(rèn)為接收到 1spi_set_clk_low( );/時(shí)鐘線置低_nop_( );return Data;/返回接收到的字節(jié)/* * brief :SPI收發(fā)字符串 * param : *ReadBuffer: 接收數(shù)據(jù)緩沖區(qū)地址 *WriteBuffer:發(fā)送字節(jié)緩沖區(qū)地址 *Length:字節(jié)長(zhǎng)度 * note :非堵塞式,一旦等待超時(shí),函數(shù)會(huì)自動(dòng)退出 * retval:無(wú) */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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版ERP系統(tǒng)用戶權(quán)限管理與審計(jì)合同3篇
- 基于二零二五年度計(jì)劃的工業(yè)級(jí)無(wú)人機(jī)采購(gòu)合同3篇
- 二零二五版電商產(chǎn)品包裝設(shè)計(jì)與營(yíng)銷方案合同3篇
- 二零二五年港口集裝箱租賃及維護(hù)服務(wù)合同規(guī)范3篇
- 二零二五版駕駛員與貨運(yùn)配送服務(wù)企業(yè)勞動(dòng)合同3篇
- 二零二五年礦山企業(yè)礦產(chǎn)品環(huán)保評(píng)價(jià)采購(gòu)合同3篇
- 二零二五版CFG樁施工質(zhì)量保障合同協(xié)議2篇
- 二零二五版區(qū)塊鏈技術(shù)應(yīng)用定金及借款合同2篇
- 二零二五版出租車駕駛員權(quán)益保障合同3篇
- 二零二五年度遮陽(yáng)棚安裝與戶外照明系統(tǒng)設(shè)計(jì)合同4篇
- 第二章 運(yùn)營(yíng)管理戰(zhàn)略
- 新概念英語(yǔ)第二冊(cè)考評(píng)試卷含答案(第49-56課)
- 商業(yè)倫理與企業(yè)社會(huì)責(zé)任(山東財(cái)經(jīng)大學(xué))智慧樹(shù)知到期末考試答案章節(jié)答案2024年山東財(cái)經(jīng)大學(xué)
- 【奧運(yùn)會(huì)獎(jiǎng)牌榜預(yù)測(cè)建模實(shí)證探析12000字(論文)】
- (完整版)譯林版英語(yǔ)詞匯表(四年級(jí)下)
- 8 泵站設(shè)備安裝工程單元工程質(zhì)量驗(yàn)收評(píng)定表及填表說(shuō)明
- 企業(yè)年會(huì)盛典元旦頒獎(jiǎng)晚會(huì)通用PPT模板
- 污水管道工程監(jiān)理控制要點(diǎn)
- 潮流能發(fā)電及潮流能發(fā)電裝置匯總
- (高清正版)T_CAGHP 066—2019危巖落石柔性防護(hù)網(wǎng)工程技術(shù)規(guī)范(試行)
- 支票票樣-樣版
評(píng)論
0/150
提交評(píng)論