【文章內(nèi)容簡介】
傳輸過程中,對(duì)外界透明,就是說你看不見他是傳送網(wǎng)絡(luò),不管傳輸?shù)臉I(yè)務(wù)如何,只要負(fù)責(zé)將需要傳送的業(yè)務(wù)傳送到目的節(jié)點(diǎn),同時(shí)保證傳輸?shù)馁|(zhì)量即可,而不對(duì)傳輸?shù)臉I(yè)務(wù)進(jìn)行處理,簡單的來說就是發(fā)送什么接收的就是什么,這樣就省去了普通無線收發(fā)模塊之間的收發(fā)協(xié)議的編寫。 不使用無線透傳模塊時(shí),左邊設(shè)備向右邊設(shè)備發(fā)送數(shù)據(jù)是通過 TXD 端口串口發(fā)送,右邊設(shè)備的 RXD 端口接收發(fā)送的串口數(shù)據(jù),反之亦然,如圖 33: M CU / PC TXD RXDM CU / PC T XD RXD 圖 33 設(shè)備數(shù)據(jù)發(fā)送原理圖 而使用了無線透傳模塊后,左邊的設(shè)備向模塊發(fā)送串口數(shù)據(jù),左邊模塊的RXD 端口收到串口數(shù)據(jù)后,自動(dòng)將數(shù)據(jù)以無線電波的方式發(fā)送到空中,右邊的模塊能自動(dòng)感應(yīng)并接收數(shù)據(jù),從 TXD 端口還原發(fā)送最初左邊設(shè)備所發(fā)的串口數(shù)據(jù)至接收端的 RXD 端口,反之亦然,原理圖如圖 34: M C U / P C T X D R X DM C U / P C T X D R X D模 塊T X DR X D模 塊T X DR X D無 線圖 34 無線透傳模塊數(shù)據(jù)發(fā)送原理圖 無線透傳模塊擁有 5 個(gè)管腳,各管 腳定義如下表: 表 31 管腳定義表 管腳 名稱 方向 說明 1 VCC 模塊供電 2 GND 模塊接地 3 TXD OUTPUT 模塊發(fā)送 4 RXD INPUT 模塊接收 5 SET INPUT 模塊配置 具體連接方式為,電腦上位機(jī)通過 USB 轉(zhuǎn) TTL 串口模塊引出 5V、 GND、 TXD、RXD 四條引線并連接到無線透傳模塊作為發(fā)送模塊的對(duì)應(yīng)管腳,而無線透傳模塊作為接收模塊的一端由單片機(jī)引出 5V、 GND、 TXD、 RXD 四條引線并連接到對(duì)應(yīng)管腳,即可完成連接。 LED 顯示模塊 LED 發(fā)光原理 羅瑟夫( )在 1923 年就發(fā)現(xiàn)了半導(dǎo)體中偶然形成的 PN 結(jié)光發(fā)射現(xiàn)象,其發(fā)光機(jī)理是,當(dāng)在 PN 結(jié)兩端注入正向電流時(shí),注入的非平衡載流子(電子 空穴對(duì))在擴(kuò)散過程中復(fù)合發(fā)光,這種發(fā)射過程主要對(duì)應(yīng)光的自發(fā)發(fā)射過程。 我們最常用的 LED 是 INGaAsP/INP 雙異質(zhì)結(jié)邊發(fā)光二極管。制作半導(dǎo)體發(fā)光二極管的材料是重?fù)诫s的,在熱平衡狀態(tài)下的 N 區(qū)有很多遷移率很高的電子, P區(qū)有較多遷移率較低的空穴,由于 PN 結(jié)阻擋層的限制,常態(tài)下兩者不能發(fā)生復(fù)合。而當(dāng)給 PN 結(jié)加以正向電壓時(shí),溝區(qū)導(dǎo)帶 中的電子則可逃過 PN 結(jié)的勢壘進(jìn)入到 P 區(qū)另一側(cè),于是在 PN 結(jié)稍偏于 P 區(qū)一邊的地方處于高能態(tài)德爾電子與空穴相遇時(shí),便產(chǎn)生發(fā)光復(fù)合,光的波長則取決于材料的禁帶寬度 Eg。由于不同材料的禁帶寬度不同,所以由不同材料制成的 LED 可以發(fā)出不同波長的光。 8 8LED 模塊顯示原理 8 8LED 模塊由 8 行 8 列共 64 個(gè) LED 組成,用以顯示各種文字或圖形, 88LED 模塊外觀數(shù)據(jù)如圖 35 所示: 圖 35 8 8LED 模塊外觀數(shù)據(jù) 它的工作原理如圖 36,模塊內(nèi)部分別將各行 LED 的正極串聯(lián),將各列 LED的負(fù)極 串聯(lián),當(dāng)?shù)?x 行接通電源正極,第 y 列接通電源負(fù)極,當(dāng)正向電壓大于 LED 死區(qū)電壓時(shí),電流導(dǎo)通,對(duì)應(yīng)的第 x 行第 y 列 LED 燈點(diǎn)亮。 8 8LED 模塊的兩排引腳一排是陽極引腳,分別對(duì)應(yīng)模塊從上到下的 8 行,另一排為陰極引腳,分別對(duì)應(yīng)從左到右的 8 列,在對(duì)應(yīng)引腳上給電即可使對(duì)應(yīng)行列的 LED 燈點(diǎn)亮。 圖 36 8 8LED 模塊內(nèi)部電路 而本設(shè)計(jì)所使用的 16 16LED 模塊是由 4 塊 8 8 模塊組成的,同 8 8 模塊一樣,需要把相同行的 LED 正極串聯(lián),相同列的 LED 負(fù)極串聯(lián), 16 16 模塊接線如圖 37: 圖 37 16 16LED 模塊接線 LED 驅(qū)動(dòng)電路設(shè)計(jì) 當(dāng)向 LED 原件施加正向電壓時(shí),流過它的正向電流使其發(fā)光。因此 LED 的驅(qū)動(dòng)就是解決如何使其 PN 結(jié)處于正向偏置的問題。而且為了控制它的發(fā)光強(qiáng)度,還要解決其正向電流的調(diào)節(jié)問題。具體的驅(qū)動(dòng)方法可以分為直流驅(qū)動(dòng)、恒流驅(qū)動(dòng) 和脈沖驅(qū)動(dòng): ①直流驅(qū)動(dòng) 直流驅(qū)動(dòng)是最簡單的驅(qū)動(dòng)方式, LED 的工作點(diǎn)由電源電壓 Vcc、串聯(lián)電阻 R和 LED 器件的伏安特性共同決定。這種驅(qū)動(dòng)方式適合于 LED 器件較少,發(fā)光強(qiáng)度恒定的情況。例如公 交車恒定顯示“ XX 路”等字樣的情況。 ②恒流驅(qū)動(dòng) 由于 LED 器件的正向特性較陡,加上器件的分散性,使得在同樣電源電壓和同樣的限流電阻的情況下,各器件的正向電流并不相同,從而引起發(fā)光強(qiáng)度的差異。若對(duì) LED 器件進(jìn)行恒流驅(qū)動(dòng),只要恒流值相同,發(fā)光強(qiáng)度就比較接近,晶體管的輸出具有橫流特性,所以可以用晶體管驅(qū)動(dòng) LED。 一般 LED 允許的連續(xù)工作電流在 20mA 左右,除了紅色 LED 有飽和現(xiàn)象外,其他顏色 LED 的亮度基本上與流過的電流成比例。 ③脈沖驅(qū)動(dòng) 利用人眼的視覺惰性,采用向 LED 器件重復(fù)通電的方式使之點(diǎn)亮,就是脈沖驅(qū)動(dòng)方式。脈沖驅(qū)動(dòng)的主要應(yīng)用有兩個(gè)方面:掃描驅(qū)動(dòng)和占空比驅(qū)動(dòng)。掃描驅(qū)動(dòng)的主要目的是節(jié)約驅(qū)動(dòng)器,簡化電路,如 N 行 LED 共用一列數(shù)據(jù),稱其為 1/N 掃描方式。占空比控制的目的是調(diào)節(jié)器件的發(fā)光強(qiáng)度,用于圖像顯示中的灰度控制。 以上三種驅(qū)動(dòng)方式,在實(shí)際中往往是組合在一起使用的。例如,在顯示圖像的驅(qū)動(dòng)電路中,既使用了掃描驅(qū)動(dòng),又用到了占空比驅(qū)動(dòng)和恒流驅(qū)動(dòng)。 而 LED 模塊的顯示一般由動(dòng)態(tài)掃描實(shí)現(xiàn)。本設(shè)計(jì)采用 LED 列掃描方式進(jìn)行顯示,選用兩片 74HC164 芯片進(jìn)行列掃描驅(qū)動(dòng), 74HC164 是 8 位邊沿觸發(fā)式移位寄存器,串行輸 入轉(zhuǎn)并行輸出。上一片的 Q7 數(shù)據(jù)輸出端接至下一片數(shù)據(jù)輸入端,即可將兩片級(jí)聯(lián)輸出 16 位信號(hào)控制列掃描。采用兩片 74HC595 移位寄存器芯片負(fù)責(zé)行輸出數(shù)據(jù), 74HC595 具有一個(gè) 8 位移位寄存器和 8 位輸出鎖存器,也可以將串行信號(hào)轉(zhuǎn)為并行輸出,達(dá)到節(jié)省 I/O 口的目的,而且可以實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)備與顯示任務(wù)的同時(shí)進(jìn)行。上一片 74HC595 的 Q739。接到下一片的數(shù)據(jù)輸入端即可完成級(jí)聯(lián),同時(shí)輸出 16 位并行信號(hào),控制行數(shù)據(jù)輸出。一共使用 5 個(gè) I/O 口,分別為行數(shù)據(jù)輸出位、行掃描時(shí)鐘位、行數(shù)據(jù)鎖存位、列數(shù)據(jù)輸出位、列掃描時(shí)鐘位。74HC164 負(fù)責(zé)快速輪流點(diǎn)亮對(duì)應(yīng)列, 74HC595 負(fù)責(zé)輸出對(duì)應(yīng)列數(shù)據(jù)。 電路如圖 38: 圖 38 LED 驅(qū)動(dòng)電路仿真圖 然而實(shí)際中, 由于 74HC164 的輸出不足以驅(qū)動(dòng) LED 模塊,所以焊接時(shí)增加了三極管以增大驅(qū)動(dòng)電流,并在 74HC595 及 74HC164 的輸出額外添加了限流電阻以保護(hù)電路。 電源模塊 由于 LED 點(diǎn)陣及無線接收模塊運(yùn)行起來較為耗電,所以需要尋找一種較為穩(wěn)定、成本低廉的供電方式,由于干電池供電由于其電量小,顯示時(shí)要經(jīng)常更換新電池,又因?yàn)椴捎?USB 供電不符合本設(shè)備無線移動(dòng)顯示的定位,所以選擇用大 容量蓄電池供電。 電源模塊采用 7V 蓄電池供電, 低壓差三端穩(wěn)壓器 LM2940 將 7V 輸入電壓轉(zhuǎn)為 5V 電壓輸出,采用 47μ F 的電容和 F 的電容來分別過濾低頻紋波和高頻紋波,降低脈動(dòng)紋波對(duì)電路的影響,提高輸出電流的質(zhì)量,而且在輸出端添加了一個(gè) LED 指示燈用來顯示電路的通 /斷電。具體仿真電路如圖 39: IN1O UT3GND2L M 2 9 4 0 C T 5 .0C10 .4 7 u FC24 7 u FC34 7 u FR13 .3 kD1L E D R E D7 .2 V 5V 圖 39 電源模塊仿真電路圖 4 軟件系統(tǒng)設(shè)計(jì) 軟件開發(fā)平臺(tái)及開發(fā)語言介紹 Keil 開發(fā)平臺(tái) Keil IDE uVision3 集成開發(fā)壞境是 Keil Software 公司開發(fā)的基于 80C51 內(nèi)核的微處理器軟件開發(fā)平臺(tái),內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具。 Keil 是目前最流行的開發(fā) 5l 系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持 Keil 即可看出。 Keil 提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境 (uVision)將這些部分組合在一起。可以完成從工程建立和管理、編譯、鏈接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開發(fā)流程。尤其 C 編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平,而且可以附加靈活的控制選項(xiàng) ,在開發(fā)大型項(xiàng)目時(shí)非常理想。 Proteus 仿真平臺(tái) Proteus 軟件是英國 Lab Center Electronics 公司出版的 EDA 工具軟件 。它不僅具有其它 EDA 工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于 單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。 Proteus 是世界上著名的 EDA 工具 (仿真軟件 ),從 原理圖 布圖、 代碼 調(diào)試到單片機(jī) 與外圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將 電 路仿真 軟件、 PCB 設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持 805 HC1 AVR、 ARM、 808MSP430 和 PIC10/12/16/18/24/30/DsPIC33 等, 2020 年又增加了 Cortex 和 DSP 系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持 IAR、 Keil和 MATLAB 等多種編譯器。 C 語言 C 語言,是一種通用的、程序式的程序語言,廣泛用于系統(tǒng)與應(yīng)用軟件的開 發(fā)。具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的移植性等特點(diǎn),在程序員中備受青睞。 C 語言是由 UNIX 的研制者丹尼斯里奇和肯湯普遜于 1970 年研制出的B 語言的基礎(chǔ)上發(fā)展和完善起來的。目前, C 語言編譯器普遍存在于各種不同的操作系統(tǒng)中,例如 UNIX、 MSDOS、 Microsoft Windows 及 Linux 等。 C 語言的設(shè)計(jì)影響了許多后來的程序語言,例如 C++、 Java、 C等。 后來于 1980 年代,為了避免各開發(fā)廠商用的 C 語言語法產(chǎn)生差異,由美國國家標(biāo)準(zhǔn)局( American National Standard Institution)為 C 語言訂定了一套完整的國際標(biāo)準(zhǔn)語法,稱為 ANSIC,作為 C 語言的標(biāo)準(zhǔn)。 1980 年代至今的有關(guān)程序開發(fā)工具,一般都支持符合 ANSIC 的語法。 上位機(jī)軟件設(shè)計(jì) 根據(jù)設(shè)計(jì)要求,上位機(jī)只需擁有向單片機(jī)發(fā)送顯示數(shù)據(jù)及簡單的控制指令的功能即可。這些功能使用現(xiàn)有軟件即可達(dá)成。顯示數(shù)據(jù)的提取可以由字模提取軟件完成,而串口發(fā)送數(shù)據(jù)的功能則可由串口調(diào)試助手完成。 字模提取 LED 顯示屏顯示的內(nèi)容涉及到多種文字、圖形,各種文字又有大小、字體等屬性,建立單片機(jī)字庫的傳統(tǒng)方法有使用硬件字庫和使用 UCDOS 的點(diǎn)陣字庫兩種方法。這些字庫均非矢量字庫,大小固定、字體單 一,有較大的局限性,且使用起來需要進(jìn)行換算,非常麻煩。目前越來越多的顯示屏需要顯示美觀多樣的文字,因此可以利用 Windows 系統(tǒng)自帶的矢量字庫,不但文字大小可以隨意改變,而且字體多種多樣,具有很高的使用價(jià)值。 在 Windows 環(huán)境下提取字模的工作原理是先將漢字或英文字符以圖片的方式顯示出來,再利用取點(diǎn)法去讀取字符的字模,提取字模的具體步驟如下: ①根據(jù)要生成字模的點(diǎn)陣大小,按像素顯示設(shè)置相應(yīng)的圖片框的大小,比如16 1 24 2 32 16 等; ②選擇字體類型,字體類型可以選擇 Windows 系統(tǒng)自帶的矢 量字體,也可以選擇其他下載字體; ③調(diào)整漢字在圖片框中的大小、位置; ④按照漢字內(nèi)碼的順序,依次將漢字顯示在圖片上,讀取漢字的點(diǎn)陣信息,將該信息存入字庫文件; ⑤重復(fù)第④步,直到提取完所有漢字。 在軟件設(shè)計(jì)時(shí),通常如果顯示的字符不大于 16 16 點(diǎn)陣,則直接采用點(diǎn)陣字庫;在顯示大于 16 16 的字符時(shí),采用矢量字庫。提取漢字字模的程序流程圖如圖 41 所示: 根 據(jù) 輸 入 字 符 內(nèi)碼 , 計(jì) 算 其 在 G B字 庫 中 的 位 置根 據(jù) D o t 設(shè) 置h z _ b i t ( ) 的 大 小D o t < 1 7 ?根 據(jù) D o t 打 開相 應(yīng) 的 字 庫 文 件將 字 模 數(shù) 據(jù) 存 入h z _ b i t ( ) 變 量根 據(jù) 參 數(shù) r e v o l v e處 理 旋 轉(zhuǎn) 矩 陣根 據(jù) 參 數(shù) m i r r o r處 理 鏡 像 矩 陣將 輸 入 字 符 顯示 在 圖 片 框 上將 字 模 數(shù)