本系統的軟件主要由三大模塊組成,即上位機主控程序、發射機主控程序和接收機主控程序。
3.1 上位機主控程序
上位機主控程序實際上包括顯示信息生成程序、顯示點陣轉換程序和串口通信程序,是三大主控程序中結構最復雜的一部分。
顯示信息生成程序完成顯示圖像和文字的錄入、編輯及動畫效果設計。該程序首先采用DOS平臺下的主控程序與底層通信軟件結合,通過串行及并行通信口完成用戶對源文件、INTERNET接口及其他輸入設備的多參數錄入。
顯示點陣轉換程序就是將生成的顯示信息通過點陣抽取和移動算法將顯示信息轉換為LED顯示屏對應的點陣數據。對于彩色顯示屏,需要將圖像信息的RGB三基色數據分別抽樣,并分塊存儲、順序轉發;對于連續的動畫圖像,要按幀分別計算偏移量,關鍵是背景圖像與動畫文字要同步。該部分的軟件是在TURBOC3.0的環境下編寫的。
串口通信程序則較為簡單,附屬于點陣轉換程序中。
限于篇幅和技術原因,這里僅以PC機漢字抽取發送程序為例,敘述其原理和結構。
設終端顯示屏所顯示的是16×16的漢字點陣。所以,要想在終端上顯示廣告信息,必須將該信息所包含的漢字的點陣數據傳到終端上。在TURBOC3.0中,將漢字賦值給一個變量時,實際上是將該漢字的區位碼賦值給這個變量。每個漢字都是16×16的點陣,筆劃經過的地方為"1",其余為"0".這樣,按從上到下,從左到右的順序,一個漢字由256個點組成,也就是32個字節。漢字按區位碼的順序排列在漢字字庫中,區碼為行,位碼為列,一區有94位。這樣,某漢字在漢字庫中的偏移地址為(區碼×94+位碼)×32.取出后的32字節漢字點陣,經由PC機的串行口送入到發射機中。其流程如圖5所示。
?
圖5 PC機軟件流程圖
3.2 發射機主控程序
發射機主控軟件的功能是通過串行口接收上位PC機發送來的圖像點陣,讀取鍵盤命令,并向編碼器串行發送操作命令或顯示數據。
該部分的軟件是在KeilC51環境下編寫的,它可以將C語言直接翻譯成匯編語言,生成二進制碼寫入單片機,這樣編寫效率高一些。串行口觸發,則表明PC機有圖像點陣數據傳來,單片機立即接收點陣數據存于RAM中;當INT0觸發,表明鍵盤有動作,立即接收鍵值判斷命令的類別,并向接收機發送圖像點陣數據或者操作命令。其功能流程如圖6所示。
?
圖6 發射機主控程序流程
3.3 接收機主控程序
該部分軟件的功能是完成對接收數據的識別、存儲、變換和顯示驅動,并可實現本地本機的自檢,顯示固化圖像。當接收裝置的譯碼芯片有輸出時,單片機就中斷當前的顯示,接收標志字,然后判斷此標志字的內容,確定將接收的是圖像點陣,還是操作控制命令。若是點陣數據,就將其連續接收存放到一個顯示緩沖數據庫中,按當前的方式顯示。若是命令,則立刻改變顯示方式。
其中,關鍵的是圖像上、下、左、右移動的實時實現。具體實現方法如下:
1)圖像的上下移動 ,直到一個圖像的移完為止;再移下一個圖像的點陣。上移的過程類似。
2)圖像的左右移動 將一圖像的每一行數據向左移位(使用C語言的移位指令),將移位后的點陣存放于BUF之中,即可顯示。右移的過程類似。
接收機主控程序的功能流程如圖7所示。
?
圖7 接收機主控程序流程