freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)無(wú)線數(shù)據(jù)傳輸應(yīng)用設(shè)計(jì)(編輯修改稿)

2025-01-09 05:45 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 才能成為一個(gè)最簡(jiǎn)單的無(wú)線通信系統(tǒng), C8051F310 單片機(jī)可通過(guò) SPI 接口控制 CC1100 的主要操作參數(shù),并同 CC1100進(jìn)行通信, SPI 標(biāo)準(zhǔn)接口包括 MOSI、 MISO、 CLK。主機(jī)用 CLK 與從機(jī)時(shí)鐘同步。 CC1100可以通過(guò) SPI 總線設(shè)置芯片的工作 模式,并實(shí)現(xiàn)讀寫(xiě)緩存數(shù)據(jù)、讀寫(xiě)狀態(tài)寄存器等功能。通過(guò)控制 FIFO 和 FIFOP 引腳接口的狀態(tài)可設(shè)置發(fā)射或者接收緩存器,這樣通過(guò) SPI 接口,就將單片機(jī)和射頻芯片連接了一起,成為了一個(gè)可以自由控制收發(fā)的無(wú)線通信系統(tǒng)。 CC1100內(nèi)部有大量寄存器需要用 CPU進(jìn)行操作和配置,這樣 CC1100模塊才能進(jìn)行正常的收發(fā)。而 CC1100模塊與 CPU是采用 SPI口進(jìn)行通信的,所以只需要把 CC1100的SPI口和另外一條狀態(tài)引腳與 CPU相連即可對(duì) CC1100進(jìn)行控制。只需將 CC1100的 SPI口接到 CPU的任意 4個(gè)引腳上即可,但最好能接在 CPU的硬件 SPI口上。另外,再將 CC1100的 GDO0或 GD02也接在 CPU的任意引腳上。如果想要用中斷處理收發(fā)數(shù)據(jù)或是想做無(wú)線喚醒的話,這個(gè)引腳也必須接在 CPU的外部中斷引腳上。如圖 31所示。 圖 31 硬件連接 在畫(huà)電路圖時(shí),將 C8051F310的 、 、 SCK、 MISO、 MOSI與CC1100的相應(yīng)引腳相連。定義 INT0,與 CC1100的 GDO口連接。因當(dāng) CSn為高時(shí)為可選的一般輸出腳,則可在軟件程序中設(shè) CSn為高電平,將這個(gè)引腳連到 C8051F310的任意引腳上。 在主機(jī)模塊中, CPU控制無(wú)線模塊接受數(shù)據(jù)。而使用 CC1100需要少量的外部元件。如圖 32 所示。 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說(shuō)明 書(shū) ( 2021) 11 R1 是偏阻器,用來(lái)設(shè)置一個(gè)精確的偏電流。 C5, C4, L3 和 L4 形成一個(gè)平衡轉(zhuǎn)換器,用以將 CC1100 上的微分 RF 端口轉(zhuǎn)換成單端 RF 信號(hào)( C6 也用在直流模塊上)。同一個(gè)合適 LC網(wǎng)絡(luò)一起,平衡轉(zhuǎn)換器元件也將阻抗轉(zhuǎn)換以匹配 50 歐的天線(或電纜)。晶體振蕩器使用一個(gè)帶 2個(gè)負(fù)載電容( C8 和 C7)的外部晶體。附加外部元件能用來(lái)改進(jìn)特殊應(yīng)用中的性能能量供給 必須在靠近供給引腳處恰當(dāng)?shù)赝笋睢M笋铍娙萜鞯姆胖眉按笮?duì)于達(dá)到最優(yōu)性能是非常重要的。 圖 32 CC1100應(yīng)用電路圖 音符演奏及數(shù)碼顯示 蜂鳴器一般用于一些要求不高的聲音報(bào)警及按鍵操作提示音等場(chǎng)合。蜂鳴器與普通揚(yáng)聲器相比,最重要的一個(gè)特點(diǎn)是,只要按照極性要求加上合適的直流電壓,就可以發(fā)出固有頻率的聲音,因此使用起來(lái)比揚(yáng)聲器簡(jiǎn)單。由此可知,蜂鳴器的控制與 LED 的控制對(duì)單片機(jī)而言是沒(méi)有區(qū)別的。硬件電路雖然蜂鳴器的控制和 LED 的控制對(duì)于單片機(jī)是一樣的,但在外圍硬件電路上卻有所不同。因?yàn)榉澍Q器是一 個(gè)感性負(fù)載,一般不建議用單片機(jī) I/ O口直接對(duì)它進(jìn)行操作,所以最好加一個(gè)驅(qū)動(dòng)三極管,在要求較高的場(chǎng)合還會(huì)加上反相保護(hù)二極管。電路如圖 33所示。 單片機(jī)無(wú)線數(shù)據(jù)傳輸應(yīng)用設(shè)計(jì) 12 圖 33 蜂鳴器電路 演奏音符的同時(shí),同時(shí)數(shù)碼管也要顯示相應(yīng)數(shù)字。本設(shè)計(jì)采用 LED數(shù)碼管。 LED 數(shù)碼管是利用多個(gè) LED 組合而成的顯示設(shè)備,可以顯示 0~ 9等 10個(gè)數(shù)字和某些字母,在許多的數(shù)字系統(tǒng)中作為顯示輸出設(shè)備,使用非常廣泛。它的結(jié)構(gòu)是由發(fā)光二極管構(gòu)成的 a、 b、 c、 d、 e、 f和 g七段組成,并由此得名,實(shí)際上每個(gè) LED還有一個(gè)發(fā)光段 dp,一 般用于表示小數(shù)點(diǎn),所以也有少數(shù)的資料將 LED 稱(chēng)為八段數(shù)碼管。 LED 內(nèi)部的所有發(fā)光二極管有共陰極接法和共陽(yáng)極接法兩種:一種是將 LED 內(nèi)部所有二極管陽(yáng)極接在一起并通過(guò) 引腳引出,將每一個(gè)發(fā)光二極管的另一端分別引出到對(duì)應(yīng)的引腳,稱(chēng)之為共陽(yáng)極 LED 顯示器。如圖 34 所示。 圖 34共陽(yáng)極數(shù)碼管內(nèi)部結(jié)構(gòu) LED 共陽(yáng)極接法, corn 端接 +5V 電壓,其他引腳端各通過(guò)一個(gè)限流電阻接到單片機(jī)驅(qū)動(dòng)電路端,當(dāng)各段輸入端為邏輯“ 1”,對(duì)應(yīng)的 LED 不亮;各段輸入端為邏輯“ 0”時(shí),對(duì)應(yīng) LED 才發(fā)亮。使用時(shí)要根據(jù) LED 正常發(fā)光需要的電流參數(shù)估算限流電阻取值。電阻取值越小,電流大, LED 會(huì)更亮,但要注意長(zhǎng)時(shí)間過(guò)熱使用會(huì)燒壞 LED。 LED用于顯示數(shù)字、字母或符號(hào)時(shí),必須將要顯示的內(nèi)容轉(zhuǎn)換為 LED 對(duì)應(yīng)七段碼的信息,共陰和共陽(yáng)結(jié)構(gòu)的 LED 顯示器各筆劃段名和安排位置是相同的。當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的筆劃段發(fā)亮,即通過(guò)點(diǎn)亮不同的 LED 字段,可顯示數(shù)字 0, 1,?, 9和 A,b, C, d, E, F 等不同的字符及自定義的一些簡(jiǎn)單符號(hào)。 8個(gè)筆劃段 dp g f e d c b a 對(duì)應(yīng)于一個(gè)字節(jié) (8 位 )的 D7 D6 D5 D4 D3 D2 D1 DO,于是用 8位二進(jìn)制碼就可以表示要顯示字符的字形代碼。 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說(shuō)明 書(shū) ( 2021) 13 在本次設(shè)計(jì)中運(yùn)用 74HC595 驅(qū)動(dòng)數(shù)碼管。 74HC595 是硅結(jié)構(gòu)的 CMOS 器件, 兼容低電壓 TTL 電路,遵守 JEDEC 標(biāo)準(zhǔn)。 74HC595 內(nèi)含 8 位串入、串 / 并出移位寄存器和 8位三態(tài)輸出鎖存器。寄存器和鎖存器分別有各自的時(shí)鐘輸入 (SCLK 和 SLCK) , 都是上升沿有效。當(dāng) SCLK 從低到高電平跳變時(shí) , 串行輸入數(shù)據(jù) (SDA) 移入寄存器 。 當(dāng)SLCK 從低到高電平跳變時(shí) , 寄存器的數(shù)據(jù)置入鎖存器。清除端 (CLR) 的低電平只對(duì)寄存器復(fù)位 (QS 為低電平 ) , 而對(duì)鎖存器無(wú)影響。當(dāng)輸出允許控制 (EN) 為高電平時(shí) , 并行輸出 (Q0~ Q7) 為高阻態(tài) , 而串行輸出 (QS) 不受影響。用 74HC595 芯片驅(qū)動(dòng)LED 有以下特點(diǎn) : 速度較快 , 功耗較小 , LED 的數(shù)目多少隨意 , 既可以控制共陰極的 LED 顯示器 , 也可以控制共陽(yáng)極的 LED 顯示器 , 可以軟件控制 LED 的亮度 , 還可以在必要的時(shí)候關(guān)斷顯示 (數(shù)據(jù)保留 ) , 以減小功耗 , 并可隨時(shí)喚醒顯示。用它設(shè)計(jì)的電路 , 不僅軟硬件設(shè)計(jì)簡(jiǎn)單 , 而且功耗低 , 驅(qū)動(dòng)能力強(qiáng) , 占用的 I/ O 口線較少 , 是一種造價(jià)低廉 , 應(yīng)用靈活的設(shè)計(jì)方案。電路圖如圖 35 所示。 單片機(jī)無(wú)線數(shù)據(jù)傳輸應(yīng)用設(shè)計(jì) 14 圖 35 數(shù)碼管顯示電路 遙控器模塊 遙控器硬件由 CPU、無(wú)線模塊和按鍵組成,用來(lái)控制主板的 LED。遙控器采用電池供電。 本設(shè)計(jì)共有四個(gè)按鍵,每個(gè)按鍵分別接到單片機(jī)的 I/O 口,利用單片機(jī)I/O 口讀取的電平高低來(lái)判斷是否有鍵按下。對(duì)按鍵的處理的時(shí)候涉及到一個(gè)重要的過(guò)程,就是按鍵的去抖動(dòng),這里說(shuō)的抖動(dòng)時(shí)機(jī)械的抖動(dòng),是當(dāng)按鍵在未按到的臨界區(qū)產(chǎn)生的電平不穩(wěn)定正?,F(xiàn)象。目前的技術(shù)有硬件 去抖動(dòng)和軟件去抖動(dòng)。硬件區(qū)抖動(dòng)就是用部分電路對(duì)抖動(dòng)部分加之處理,軟件去抖動(dòng)不是去掉抖動(dòng),是避開(kāi)抖動(dòng)部分的時(shí)間,等按鍵穩(wěn)定了再對(duì)其處理。電路圖如附錄 3所示。 在遙控器模塊中, CPU 控制無(wú)線模塊發(fā)送數(shù)據(jù),原理與上述接受數(shù)據(jù)類(lèi)似,在此不重述。 電源模塊 電路所需的電源主要是 +5V 電源 ,原理圖如圖 36 所示。 圖 36電源原理圖 其中我們采用 78L05 穩(wěn)壓塊來(lái)產(chǎn)生穩(wěn)定的 5V 電壓,電容的主要作用是濾除直流電壓中的交流信號(hào),使得電路能夠輸出穩(wěn)定的直流電壓。 78L05 具有: 三端集成穩(wěn)壓電源內(nèi)部由 基準(zhǔn)電壓回路、恒流源、過(guò)流保護(hù)、過(guò)壓保護(hù)和短路保護(hù)回路等 8 部分組成,具有低功耗,高效率,紋波系數(shù)小,輸出電壓穩(wěn)定等優(yōu)點(diǎn)。 4 軟件設(shè)計(jì) 初始化配置 在使用 CC1100做無(wú)線通信時(shí),首先需要對(duì)它做一系列的配置,這樣才能讓 CC1100正常工作。要開(kāi)始這項(xiàng)配置,就必須調(diào)用一個(gè)頭文件 ,而這個(gè)頭文件是在開(kāi)發(fā)文具中無(wú)法找到的,因而得自己定義它,這個(gè)頭文件的作用是將一些特殊的操作碼、指令或者是特殊的表達(dá)式等用比較容易記的助記符來(lái)表示,這樣既提高了程鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說(shuō)明 書(shū) ( 2021) 15 序的直觀性也提高了可讀性。在整個(gè)初始化定義中,可以 看到幾乎包含了 CC1100 所有的寄存器,這樣做的目的是方便對(duì) CC1100 寄存器進(jìn)行配置,并實(shí)現(xiàn)需要的功能。在頭文件的定義結(jié)束處有一些外部函數(shù)定義,這部分的功能是告訴現(xiàn)在正在使用的文件這部分函數(shù)是已經(jīng)存在的函數(shù),在其他文件中可以直接調(diào)用這部分函數(shù)完成相應(yīng)的功能,而不需要再次定義。完成了將實(shí)際地址轉(zhuǎn)換成助記符的形式,就可以對(duì)這一部分寄存器進(jìn)行數(shù)據(jù)輸入操作。為此,在 CC1100 程序源文件中加入了一個(gè)初始化數(shù)據(jù)定義。 完成對(duì)整個(gè)程序的初始化定義,接下來(lái)就是對(duì) CC1100 進(jìn)行初始化配置。 CPU 利用 SPI 接口讀、寫(xiě) CC1100 的寄存器。配置函數(shù)主要是調(diào)用 halSpiWriteReg()函數(shù)對(duì)CC1100 的每個(gè)狀態(tài)寄存器進(jìn)行配置。而 halSpiWriteReg()函數(shù)的作用是通過(guò) SPI 端口對(duì) CC1100 的寄存器進(jìn)行單一寫(xiě),單片機(jī)通過(guò) SPI寫(xiě)寄存器的時(shí)候,必須先寫(xiě)寄存器的地址,然后再往該地址中寫(xiě)入數(shù)據(jù),最后 CC1100 根據(jù)寄存器中所存儲(chǔ)的數(shù)據(jù)執(zhí)行相應(yīng)的操作。 程序執(zhí)行過(guò)程:首先程序使 Csn 位為低,使 CC1100 進(jìn)入 SPI 模式,然后調(diào)用 SPI輸入函數(shù)往 CC1100 中寫(xiě)入地址信息,之后再次調(diào)用 SPI 寫(xiě)操作往該地址的寄存器中寫(xiě)入數(shù) 據(jù),最后使 Csn 位為高,關(guān)閉 CC1100 的 SPI模式。 程序清單 41: void halSpiWriteBurstReg(unsigned char addr,unsigned char *buffer,unsigned char count) { unsigned char i,temp。 temp = addr / WRITE_BURST。 CS_CC1100 = 0。 while (GDO0)。 SpiReadWrite(temp)。 for (i=0。icount。i++) {SpiReadWrite(buffer[i])。 } CS_CC1100 = 1。 } 有程序知,通過(guò)設(shè)置 CC1100中的一個(gè)連續(xù)寫(xiě)寄存器后,就可以通過(guò) SPI端口對(duì) CC1100進(jìn)行連續(xù)寫(xiě)入。接下來(lái)的函數(shù)是對(duì) CC1100 進(jìn)行命令輸入,在配置 CC1100 的命令寄存器時(shí),只需要輸入一個(gè)字節(jié)的命令即可完成對(duì) CC1100 的一個(gè)寄存器的配置。 程序清單 42: void halSpiStrobe(unsigned char strobe) { CS_CC1100 = 0。 while (GDO0)。 SpiReadWrite(strobe)。 //寫(xiě)入命令 單片機(jī)無(wú)線數(shù)據(jù)傳輸應(yīng)用設(shè)計(jì) 16 CS_CC1100 = 1。 } CC1100 內(nèi)部的寄存器上電后需進(jìn)行初始化或是重新配置,如設(shè)定其頻率、通道、通信速率等。這些寄存器配置只需要從 SPI 口輸入即可。程序見(jiàn)附錄。 收發(fā)數(shù)據(jù) CC1100 芯片接收時(shí),天線接收的射頻信號(hào)經(jīng)過(guò)低噪聲放大器和 I/Q 下變頻處理,混合 I/Q 信號(hào)再經(jīng)過(guò)濾波、放大、 A/D變換和自動(dòng)增益控制、數(shù)字調(diào)解和擴(kuò)頻,最終恢復(fù)出傳輸?shù)恼_數(shù)據(jù),發(fā)射時(shí),要發(fā)送的數(shù)據(jù)先被送入發(fā)送緩存器,根據(jù)相應(yīng)的協(xié)議標(biāo)準(zhǔn), 經(jīng)過(guò)擴(kuò)頻和 A/D 變換后,經(jīng)過(guò)低通濾波和上變頻的混頻后的射頻信號(hào)最終被調(diào)制到需要的頻段,并經(jīng)放大后送到天線發(fā)射出去。 CC1100 具有 3種狀態(tài): IDEL(待機(jī) )、 RX(接收)、 TX(發(fā)送)。 狀態(tài)之間的轉(zhuǎn)換如圖 41 所示。 圖 41 CC1100狀態(tài)轉(zhuǎn)換圖 作為微控制器的 C8051F310 單片機(jī)除了完成基本的芯片初始化工作、數(shù)據(jù)的發(fā)送和接收之外,還需要根據(jù)需要在 CC1100 的引腳產(chǎn)生中斷,并由所編寫(xiě)的中斷管理程序進(jìn)行狀態(tài)檢測(cè)以及切換,并執(zhí)行相應(yīng)的中斷操作,使得無(wú)線通信可以在發(fā)射 和接收以及待機(jī)之間轉(zhuǎn)換。 CC1100 發(fā)送數(shù)據(jù) ,首先從 SPI 口寫(xiě)入要發(fā)送數(shù)據(jù)的字節(jié)數(shù),然后寫(xiě)入想要發(fā)送的數(shù)據(jù),最后再寫(xiě)入發(fā)送使能命令, CCll00 便開(kāi)始發(fā)送數(shù)據(jù)。當(dāng)檢測(cè)到 GD02 產(chǎn)生上個(gè)高低電平的脈沖后,即發(fā)送成功。如果在一定時(shí)問(wèn)內(nèi), GD02 上沒(méi)有任何動(dòng)作,表示發(fā)送失敗。發(fā)送完成之后,我們就把 CC1100 發(fā)送緩沖區(qū)的數(shù)據(jù)清除掉。程序見(jiàn)附錄。 CC1100 接收數(shù)據(jù),首先讓 CC1100 進(jìn)入接收狀態(tài),如果在設(shè)定的時(shí)間內(nèi)我們收到了一組數(shù)據(jù), GDO2 上面就可以檢測(cè)到一個(gè)高低電平的脈沖。此時(shí),讀出 CC1100 接收數(shù)據(jù)緩 沖的第 1 個(gè)字節(jié)的數(shù)據(jù),這個(gè)數(shù)據(jù)就是現(xiàn)在 CC1100 接收到的數(shù)據(jù)長(zhǎng)度。如果鹽城工學(xué)院
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1