基于單片機編程的遙控LED廣告牌設計
單片機的作用是將PC機傳來(lái)的圖像點(diǎn)陣或自身EPROM中的圖像點(diǎn)陣暫存在發(fā)射緩沖區RAM中,再根據鍵盤(pán)的命令串行發(fā)送至編碼器。本文引用地址:http://dyxdggzs.com/article/159967.htm
單片機選用的是ATMEL公司的89S52,該芯片運算速度較快,性能穩定,且價(jià)格便宜。
鍵盤(pán)用于設定圖像移動(dòng)速度、顯示模式和發(fā)射的通信協(xié)議。
編碼器是本系統的關(guān)鍵部件之一,決定了通信的可靠性。它的功能是接收單片機的數據,按設定的格式進(jìn)行編碼,再串行輸出到發(fā)射器。經(jīng)過(guò)比較,我們選用了碼分多址串行編碼專(zhuān)用芯片。該芯片的主要特點(diǎn)有CMOS技術(shù),低功耗,非常高的噪聲免疫性(多幀同步),最多12位3態(tài)地址引腳(最多可提供312個(gè)地址碼),最多6位數據引腳,大范圍的工作電壓,單電阻振蕩器,輸出形式可設為鎖存或瞬態(tài)。
發(fā)射器的作用是將編碼后的數字信號調制到高頻載波上,再經(jīng)功率放大后發(fā)射出去,它決定了手持發(fā)射機的無(wú)線(xiàn)遙控距離。本系統選用了調制、驅動(dòng)和發(fā)射一體化模塊。該模塊采用聲表諧振器穩頻,SMT樹(shù)脂封裝,頻率一致性較好,免調試,特別適合多發(fā)多收無(wú)線(xiàn)遙控及數據傳輸系統。而一般的LC振蕩器頻率穩定度及一致性較差,即使采用高品質(zhì)微調電容,溫差變化及振動(dòng)也很難保證已調好的頻點(diǎn)不會(huì )發(fā)生偏移。
采用UPS供電是為了保證手持發(fā)射機在戶(hù)外工作時(shí),發(fā)射緩沖區RAM中的數據不丟失。因為,發(fā)射緩沖區需要暫存的圖像點(diǎn)陣數據量很大,若采用超大容量的非易失性存儲器,如E2PROM,FLASH及FRAM等,不僅成本高,而且采購困難,所以系統選用了普通RAM作為緩沖寄存器。
2.3 接收機和顯示模塊
接收機和顯示模塊由接收器、譯碼器、單片機、顯示驅動(dòng)、LED屏及供電系統組成,其結構框圖如圖4所示。
圖4 接收機結構框圖
接收器將接收到的高頻信號經(jīng)放大整形后解調出數字編碼信號。我們選用了與發(fā)射模塊相對應的接收解調一體化模塊。該系列模塊采用超外差、二次變頻技術(shù),并將所有的射頻接收、混頻、濾波、數據解調、放大整形電路全部集成在模塊內,功能高度集成化,免去射頻頻率調試及超再生接收電路的不穩定性,具有可靠性高、頻率穩定、接收頻率免調試等特點(diǎn)。
譯碼器將數字編碼信號譯碼,再并行輸出給單片機。我們選用的是與編碼相對應的碼分多址串行解碼專(zhuān)用芯片。
單片機負責接收數據的識別、保存、顯示方式轉換。單片機選用了ATMEL公司的89S52,通用性好,性?xún)r(jià)比高。
顯示模塊用于顯示廣告信息。該模塊包括LED顯示屏和顯示驅動(dòng)板,自帶顯示緩沖區,并以動(dòng)態(tài)掃描方式驅動(dòng)LED顯示屏,具有功耗低、亮度大等特點(diǎn)。
接收顯示系統的供電電源沒(méi)有特殊要求,但要留有相當裕量并注意通風(fēng)散熱,因為,很多LED廣告牌引起的火災都是由于供電系統造成的。
3 軟件結構
本系統的軟件主要由三大模塊組成,即上位機主控程序、發(fā)射機主控程序和接收機主控程序。
3.1 上位機主控程序
上位機主控程序實(shí)際上包括顯示信息生成程序、顯示點(diǎn)陣轉換程序和串口通信程序,是三大主控程序中結構最復雜的一部分。
顯示信息生成程序完成顯示圖像和文字的錄入、編輯及動(dòng)畫(huà)效果設計。該程序首先采用DOS平臺下的主控程序與底層通信軟件結合,通過(guò)串行及并行通信口完成用戶(hù)對源文件、INTERNET接口及其他輸入設備的多參數錄入。在此基礎上用VisualC++語(yǔ)言設計了主控軟件,生成動(dòng)畫(huà),并通過(guò)界面和對話(huà)框的形式實(shí)現了對整個(gè)上位機系統的可視化控制。
顯示點(diǎn)陣轉換程序就是將生成的顯示信息通過(guò)點(diǎn)陣抽取和移動(dòng)算法將顯示信息轉換為L(cháng)ED顯示屏對應的點(diǎn)陣數據。對于彩色顯示屏,需要將圖像信息的RGB三基色數據分別抽樣,并分塊存儲、順序轉發(fā);對于連續的動(dòng)畫(huà)圖像,要按幀分別計算偏移量,關(guān)鍵是背景圖像與動(dòng)畫(huà)文字要同步。該部分的軟件是在TURBOC3.0的環(huán)境下編寫(xiě)的。
串口通信程序則較為簡(jiǎn)單,附屬于點(diǎn)陣轉換程序中。
限于篇幅和技術(shù)原因,這里僅以PC機漢字抽取發(fā)送程序為例,敘述其原理和結構。
設終端顯示屏所顯示的是16×16的漢字點(diǎn)陣。所以,要想在終端上顯示廣告信息,必須將該信息所包含的漢字的點(diǎn)陣數據傳到終端上。在TURBOC3.0中,將漢字賦值給一個(gè)變量時(shí),實(shí)際上是將該漢字的區位碼賦值給這個(gè)變量。通過(guò)用UltraEdit-32以二進(jìn)制的形式,觀(guān)察DOS的漢字庫文件chs16.fon,發(fā)現漢字是以點(diǎn)陣的形式存儲的。每個(gè)漢字都是16×16的點(diǎn)陣,筆劃經(jīng)過(guò)的地方為“1”,其余為“0”。這樣,按從上到下,從左到右的順序,一個(gè)漢字由256個(gè)點(diǎn)組成,也就是32個(gè)字節。漢字按區位碼的順序排列在漢字字庫中,區碼為行,位碼為列,一區有94位。這樣,某漢字在漢字庫中的偏移地址為(區碼×94+位碼)×32。取出后的32字節漢字點(diǎn)陣,經(jīng)由PC機的串行口送入到發(fā)射機中。其流程如圖5所示。
圖5 PC機軟件流程圖
紅外遙控器相關(guān)文章:紅外遙控器原理
評論