孫新鳳 ,張 健 ,王新娜
(1.保定電力職業技術學院 電氣工程系,河北 保定 071051;2.保定三川電氣有限責任公司,河北 保定 071051)
LED點陣書寫顯示屏是基于LED點陣顯示及光筆檢測輸入的一種人機交互器件,它被廣泛應用于各類會議、教學、遠程教育、電視直播、設計分析、實時指揮等領域,實現了高效、直觀、無障礙溝通,從而大大節省了時間,提高了工作效率,降低了交流成本。
筆者所設計的是一個基于32×32 LED點陣模塊的書寫顯示屏。在ATmega16微控制器的管理下,LED點陣模塊顯示屏工作在人眼不易覺察的掃描微亮和人眼可見的顯示點亮模式下。當光筆觸及LED點陣模塊表面時,獲取其行列坐標,再依據功能需求決定該坐標處的LED是否點亮至人眼可見的顯示狀態,從而在屏上實現點亮、劃亮、反顯、整屏擦除、筆畫擦除及連寫多字等書寫顯示功能。
LED點陣書寫屏主要由控制器、LED點陣顯示屏和光筆3部分組成。其系統框圖如圖1所示。

圖1 系統原理框圖
采用的控制器是美國Atmel公司生產的AVR系列單片機的一種高檔產品ATmega16單片機,是基于增強AVR RISC結構的低功耗8位CMOS微控制器[1]。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega16的數據吞吐率高達16 MI/s(兆指令每秒)@16 MHz,從而可以緩減系統在功耗和處理速度間的矛盾,也能滿足本系統對處理速度的要求。ATmega16單片機有32位雙向I/O端口,輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流,不需I/O擴展就能滿足本系統對I/O的要求。16 kbyte的系統內可編程Flash,能存儲一定程序,且具有同時讀寫的能力,給程序的編寫和修改帶來很大方便。512 kbyte的E2PROM和1 kbyte的SRAM滿足數據存儲的一般要求,對于本系統來說需要充分合理利用SRAM的容量。用于邊界掃描的JTAG接口,支持片內調試與編程。具有3個比較模式的靈活的定時器/計數器(T/C),片內/外中斷,可充分滿足系統定時及中斷的要求。可編程串行USART,有起始條件檢測器的通用串行接口,具有片內振蕩器的可編程看門狗定時器,1個SPI串行端口,以及6個可通過軟件進行選擇的省電模式。AT-mega16單片機豐富的芯片資源,不需擴展就可實現系統控制要求。
LED點陣顯示屏由兩部分組成。一部分是LED點陣顯示模塊,由16個8×8的LED點陣分為4行4列,組成32×32的LED點陣屏。8×8的LED點陣[2]為單色共陽模塊,單點的工作電壓為1.8 V,正向電流5~10 mA,其結構圖與正面圖如圖2所示。每個LED都是放置在行線和列線的交叉點上,當對應的某一行置高電平,某一列置低電平時,交叉點上的LED就亮起來了,否則LED不亮。通過對行和列送不同的電平可實現對LED點陣屏各點的控制。另一部分是點陣行列驅動模塊,由8片數據移位鎖存器74HC595[3]構成。8片數據移位鎖存器74HC595分為兩組,每4片級聯構成一個32位移位鎖存器,分別驅動LED點陣模塊的32行與32列,級聯方式如圖3所示。每組74HC595的串行輸入端和時鐘控制端分別并聯在一起,由單片機的3個I/O引腳控制,實現數據串行傳輸。這樣只需單片機的6個I/O引腳就能實現對32×32的LED點陣屏的控制,不僅節省了I/O端口資源,而且編程簡單,外圍器件連接簡單,降低了硬件故障率和硬件成本。

圖2 8×8 LED點陣結構與正面圖

圖3 LED點陣驅動電路
光筆由光電三極管ST-1CL3H、限流電阻和74LS04構成[4],如圖4所示。光筆筆頭不在點陣屏上時該電路輸出信號一定,當光筆接觸到處于工作狀態的點陣屏時,光電三極管輸出信號發生明顯跳變,從而可以確定點陣屏坐標。ST-1CL3H為高速光電三極管,其響應時間約為3 ns,能達到很高的檢測精度。

圖4 光筆電路圖
軟件程序是整個系統的核心部分,采用C語言[5]編寫。
要實現整個系統的功能,首先要明確如何實現LED點陣書寫顯示屏的兩種工作模式,即人眼不易覺察的掃描微亮和人眼可見的顯示點亮。兩種模式的區別在于人眼可見與不可見,由人眼的暫留效應和發光二極管發光時間的長短決定,點亮時間短于人眼感知時間,LED燈為掃描微亮模式;點亮時間達到人眼感知時間,則LED燈為顯示點亮模式。
然后利用LED動態掃描顯示原理確定坐標位置。ATmega16單片機對兩組移位鎖存器74HC595送數據,某行送一個高電平,其余行為低電平;某列送一個低電平,其余列為高電平,一個時間只掃描一個LED點。AT mega16的數據吞吐率高達,全速掃描32×32個點,每一個LED點亮的時間就短到人眼不易覺察的程度,而高速光電三極管ST-1CL3H的響應時間約為3 ns,完全可以檢測到。當光筆所在位置LED被掃描時,光電三極管返回一個信號,從而可以確定光筆所在位置點的坐標。
最后是點亮、劃亮、反顯、整屏擦除、筆畫擦除及連寫多字等書寫顯示功能的實現。每一種功能為一個獨立的模塊,可由一個開關控制,軟件功能框圖如圖5所示。
對于“點亮”功能,只要光筆位置確定了,將該坐標點LED點亮時間延長就可實現人眼可察覺的點亮功能。“劃亮”功能是將每次點亮的LED點坐標在一個32×4的數組相應位做標記,每掃描一個LED點檢測一次該數組相應位置及光筆位置,從而點亮所有光筆點過的LED燈。“連寫多字”功能是給定一個數組用于存儲LED坐標點亮情況,顯示時調用即可。其他功能可在這幾個功能實現思路的基礎上完成。

圖5 軟件功能框圖
系統上電后書寫顯示屏工作在人眼不易覺察的掃描微亮模式。進入“點亮”功能,光筆任意點在點陣屏上,被選中的點立刻被點亮,與此同時被點亮的LED的坐標顯示在液晶屏上,經多次測試準確無誤。進入“劃亮”功能,2 s內光筆在屏上迅速劃過,劃亮LED點的個數如表1所示。先在屏上劃亮多個點后,進入“反顯”功能模式后,原劃亮處微亮,其余點高亮。在“劃亮”功能下,在屏上任意劃線,然后進入“整屏擦除”功能,屏上顯示的LED高亮點立即被擦除。選擇“筆畫擦除”功能,能用光筆擦除屏上已被劃亮的LED高亮點。選擇“連寫多字”功能,30 s內在屏上以“劃亮”方式逐個寫出4個漢字,且存入機內,寫完后再將所存4個字在屏上逐個輪流顯示。
整個系統測試效果良好,只是劃亮過程中如果劃亮點數過多,會出現一定閃爍現象,可通過縮小LED點陣個數,或采用更高處理速度的處理器來解決這個問題。如果需要更大顯示屏,可通過多片單片機聯機實現。

表1 劃亮功能測試表
[1]Atmel.8-bitmicrocontroller with 16K Bytes in-system programmable flash[EB/OL].[2009-12-10].http://www.datasheetcatalog.org/datasheet/atmel/2466S.pdf.
[2]中國LED顯示屏網.8×8點陣LED原理及應用[EB/OL].[2009-12-15].http://www.led8.com/news/tech_design/2006/1229/06122912827 CF26H5AC47K233H2G3GE.html.
[3]翟震,張春玲.用74HC595芯片驅動LED的電路設計[J].機床與液壓,2004(12):151-152.
[4]王漢橋.電子技術基礎[M].北京:中國電力出版社,2006.
[5]彭同明,徐學勤.單片機原理及應用[M].北京:中國電力出版社,2005.