
【摘 要】 本系統主要以單片機為核心,LED點陣顯示屏為主體,74HC595作為點陣的列驅動,74HC164作為點陣的行驅動,控制點陣的亮滅,在顯示屏上顯示穩定的漢字、圖案等。
【關鍵詞】 單片機 點陣 LED顯示
引言
單片機自問世以來,已成為一種重要的控制工具,廣泛應用于各種控制和檢測領域,給人們生活帶來了很多方便,單片機原理也成為高校電子類專業的一門重要專業基礎課。在單片機教學中如何培養和提高學生的實踐動手能力和創新能力是我們重要的出發點。
Led點陣顯示屏是單片機教學中一個重要器件,它具有亮度高、壽命長、功能消耗小,驅動簡單和可觀看距離遠等優點,現在已經成為最主要的信息傳播媒體工具。主要應用于商場信息顯示、證券交易顯示、廣告牌、大型比賽記錄并顯示信息、道路交通信息顯示等領域。因此我們結合教學設計了這款基于單片機制作的簡易LED顯示屏。
1. 硬件電路設計
系統板的的主體由4 個8*8 共陽點陣組成一個16*16 點陣,點陣屏可以拆裝,數據接口采用可拼接方式,連接性能非常好,方便擴展??筛鶕枰啥鄠€單板,拼接成32*16、48*16、64*16等點陣。點陣屏的驅動部份由74HC595 和74HC164 組成,74HC595 負責列掃描數據,74HC164 負責行掃描數據。
系統總體框圖如下:
1.1點陣屏的設計
LED顯示屏有各種不同大小,顏色有單色、雙色和三基色屏,可設計圖形、圖像動態顯示效果。LED 點陣有4*4、4*8、5*7、5*8、8*8、16*16、24*24、40*40 等多種,很多大屏幕都是由8*8 來組成的,比如256*128 像素的一塊大屏幕,由每行32 個共16 行即512 個8*8 點陣組成。點陣屏分為共陽和共陰兩種,本系統選用共陽型,使用4 個8*8 來組成16*16 點陣屏,并通過多塊拼接可組成32*16、48*16,64*16等點陣屏。
點陣的顯示控制有靜態顯示和動態顯示兩種。對于靜態顯示方式所需的譯碼驅動裝置很多,引線多而復雜,且成本高,因此采用動態顯示方案。動態掃描方式是逐行輪流點亮,這樣掃描驅動電路就可以實現多行的同名列共用一套列驅動電路。動態顯示可以避免靜態顯示出現的問題,但設計上必須保證驅動電路易實現,而且要求顯示的漢字圖案穩定,不能有閃爍現象。
1.2行驅動電路設計
行驅動電路由2個移位寄存器74HC164 組成,74HC164是串入并出的8位移位寄存器,每當CP端有上升沿脈沖時,AB輸入數據。輸入A、B 在SCK 時鐘脈沖作用下移入寄存器。A、B 是與的輸入,電路將其合并做一個輸入,移位寄存器的最后一位輸出Qh 接入下一個74HC164 的輸入AB,組成16 位移位寄存器,位的輸出經過三極管放大電流加到點陣共陽端,即做為點陣的行控制。
1.3列驅動電路設計
列驅動電路由74HC595組成,它是一款具有一個8位串入并出移位寄存器和一個8位鎖存器,三態輸出功能的驅動芯片。而且移位寄存器和鎖存器是各自獨立控制的,可以在顯示本行各列數據的同時,傳送下一行的列數據,達到重疊處理的目的。數據在SHCP的上升沿輸入,在STCP的上升沿進入到存儲寄存器中去。移位寄存器有一個串行移位輸入(DS),和一個串行輸出(Q7’),和一個異步的低電平復位(MR),存儲寄存器有一個并行8位的,具備三態的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。
2. 系統軟件設計
本系統設計的主要功能是向顯示屏提供顯示數據,并提供各種控制信號,按要求顯示不同的內容和不同的效果。軟件根據分層設計的原理分成兩大層,上層為系統應用程序,底層軟件為顯示驅動程序,系統應用程序由主程序來實現,完成系統初始化,顯示效果處理等,可實現圖形和漢字顯示有靜止、左滾屏、右滾屏、卷簾出、卷簾入等顯示方式。顯示驅動程序負責提供顯示數據,產生行列掃描及其他控制信號,配合LED顯示屏完成掃描顯示工作。
2.1主程序
主程序首先是對系統初始化,然后依次實現圖形和漢字顯示有靜止、左滾屏、右滾屏、卷簾出、卷簾入等顯示方式。由于顯示屏可以接收上一個顯示模塊傳輸下來的數據信息,并將這些信息不經任何變化的傳遞給下一級顯示模塊中,所以單片機顯示屏可以顯示很多不同的內容,只要事先將我們想要顯示的內容生成字庫,用這些字庫代碼覆蓋原來的代碼就可以顯示想要的內容。
2.2顯示驅動程序
顯示驅動程序負責提供顯示數據,產生行列掃描及其他控制信號,配合LED顯示屏完成掃描顯示工作。點陣的各行的同一列共用一個列驅動器,數據通常存儲在單片機的存儲器中,按8位一個字節的形式存放。顯示驅動程序查詢當前燃亮的是哪行,然后從緩沖區內讀取下一行的顯示數據,并通過串口發送給移位寄存器,在更改行顯示時可能出現拖尾現象,為了避免這種現象,要先將顯示屏關閉在驅動程序,等到顯示數據送入輸出鎖存器并鎖存時,在輸出新的行,這時將顯示屏打開。
3. 點陣顯示在設計與使用中可能存在的問題
3.1由于要對顯示屏上數以萬計的像素進行控制,并且隨著顯示屏面積的增大,電路結構也非常龐大,因此系統的模塊化設計非常主要。
3.2為了在顯示屏上顯示動畫,視頻圖像等信息,顯示系統必須用30幀/秒以上的速度來更新顯示動畫,這就要求系統有非常高的處理速度。
3.3程序設計是要將圖案和漢字交叉顯示,必須要先將顯示屏清0或全部點亮,否則會出現亂碼。
結論
本系統設計結構簡單,易于拼接擴展,成本低廉且應用廣泛。并且通過本系統的設計和制作,可以培養學生的工程實踐能力,提高學生的動手能力,加深了對單片機知識的理解,取得了不錯教學效果。
參考文獻:
[1]郭天祥.新概念51單片機C語言教程.編程技術.2009,(1):8-12.
[2]李葉紫,王喜斌,胡輝,孫東輝.MCS-51單片機應用教程.2004,(3):12-13.
[3]摟然苗,李興飛.51系列單片機設計實例.2000.
[4]周杭慈.單片機程序設計基礎.2003.
(作者單位:吉林工商學院 信息工程分院)