1、系統結構及工作原理
LED點陣顯示控制的傳統方式是采用單片機或系統機作為CPU來實現,當系統顯示的信息比較多時,由于單片機的輸入/輸出端口(I/O)有限,采用此方式的成本將大大增加,系統和程序的設計難度也急劇增加;而且,當系統完成后修改、改變顯示方式或擴展時,所需改動的地方比較大,甚至有可能需要重新設計;另外,在以顯示為主的系統中,單片機的運算和控制等主要功能的利用率很低,單片機的優勢得不到發揮,相當于很大得資源浪費。如果采用現場可編程邏輯器件作為CPU來設計控制器,選擇合適的器件, 利用器件豐富的I/O口、內部邏輯和連線資源,采用自頂而下的模塊化設計方法,可以方便地設計整個顯示系統。
由于PLD器件的外圍器件很少,且可以利用PLD的編程端口(可復用)進行在系統編程,使得系統的修改、顯示方式的改變和擴展都變的非常簡單、方便。
本系統采用單個16×16LED點陣逐列左移(或右移)顯示漢字或字符,需顯示漢字或符號的16×16點陣字模已經存放在字模存儲器中。顯示控制器由復雜可編程邏輯器件(CPLD)EPM7128SLC84-15來實現,系統組成原理框圖如圖1所示。
系統原理是PLD控制模塊首先產生點陣字模地址,并從存儲器讀出數據存放在16位寄存器中,然后輸出到LED點陣的列,同時對點陣列循環掃描以動態顯示數據,當需要顯示數據字模的列和被選中的列能夠協調配合起來,就可以正確顯示漢字或符號。
?
圖1 點陣顯示控制器原理框圖
2、控制器設計及工作原理
從框圖中可以看出,系統的關鍵在于控制器的設計。LED點陣顯示數據地址的產生、點陣列掃描和需顯示數據的配合以及點陣顯示方式控制的實現都必須由控制器來實現。對單個16×16LED點陣顯示控制器進行設計的頂層邏輯原理圖如圖2所示。
?
圖2 控制器頂層電路原理圖
原理圖中包含5個模塊,其中sequ模塊產生讀信號RDN和10位地址線(AD[9..0])中的最低位地址AD0,AD0和其它模塊產生的地址配合,通過8位數據線(DATA[7..0])從存儲器讀出列高字節(AD0=1時)和低字節(AD0=0時),由于16×16點陣字模數據為32個字節,每列含兩個字節即16位,它由HOUT[7..0]和LOUT[7..0] 來構成;模塊add16由adclk提供一個慢時鐘構成16進制計數器,它的輸出送給addr16模塊,為變模計數器addr16提供一個模,通過模的規律變化以控制點陣按照左移或右移等顯示方式進行顯示;模塊decode4_16是一個4—16譯碼器,其輸出ROUT[15..0]連接到LED點陣的列,可選中16×16LED點陣的某列,并顯示sequ模塊輸出的點陣高低字節(字模)數據;模塊addr16為點陣顯示控制的核心,為了實現點陣漢字從右到左逐列移動顯示,它由add16模塊提供的模,在addr16內部構成兩個變模計數器,其中一個用來產生讀字模數據的地址AD[4..1],另外一個產生16×16LED點陣列掃描選擇地址SUABAD[3..0],列掃描選擇地址由decode4_16譯碼后輸出;模塊addr1為字選擇計數器,其輸出可以控制多塊LED顯示器的顯示及其顯示方式。