基于MCS51單片機的大屏幕LED顯示屏高速控制設計方案
引言
本文引用地址:http://dyxdggzs.com/article/201706/350169.htmLED顯示屏的基本工作原理是動(dòng)態(tài)掃描。顯示控制的過(guò)程是先從數據存儲器讀得字模數據,再通過(guò)單片機的串行口或并行口將數據寫(xiě)給LED點(diǎn)陣片,然后再行掃描。
動(dòng)態(tài)掃描方案和靜態(tài)顯示方案相比節省驅動(dòng)元件,但要求刷新頻率高于50 Hz,以避免顯示的圖像或文字出現閃爍。由于刷新頻率的限制,一片單片機能控制顯示元件的片數是較少的。
現在大屏幕LED顯示屏的應用已越來(lái)越廣泛。為了對成百、上千片的LED點(diǎn)陣片實(shí)現有序的、快速的顯示控制,人們動(dòng)了許多腦筋,雙CPU、雙RAM的方案,FPGA的方案等都獲得了成功的應用;但是這些方案的顯示控制過(guò)程還是先讀后寫(xiě)。
本方案另開(kāi)思路:用一條讀指令,將讀和寫(xiě)合在一步完成,可大大地提高顯示控制的效率,且電路簡(jiǎn)單。
1 LED顯示屏的工作原理
LED顯示屏的基本工作原理是動(dòng)態(tài)掃描。動(dòng)態(tài)掃描又分為行掃描和列掃描兩種方式,常用的方式是行掃描。行掃描方式又分為8行掃描和16行掃描兩種。
在行掃描工作方式下,每一片LED點(diǎn)陣片都有一組列驅動(dòng)電路,列驅動(dòng)電路中一定有一片鎖存器或移位寄存器,用來(lái)鎖存待顯示內容的字模數據。在行掃描工作方式下,同一排LED點(diǎn)陣片的同名行控制引腳是并接在一條線(xiàn)上的,共8條線(xiàn),最后連接在一個(gè)行驅動(dòng)電路上;行驅動(dòng)電路中也一定有一片鎖存器或移位寄存器,用來(lái)鎖存行掃描信號。
LED顯示屏的列驅動(dòng)電路和行驅動(dòng)電路一般都采用單片機進(jìn)行控制,常用的單片機是MCS51系列。LED顯示屏顯示的內容一般按字模的形式存放在單片機的外部數據存儲器中,字模是8位二進(jìn)制數。
單片機對LED顯示屏的控制過(guò)程是先讀后寫(xiě)。按LED點(diǎn)陣片在屏幕上的排列順序,單片機先對第1排的第1片LED點(diǎn)陣片的列驅動(dòng)鎖存器,寫(xiě)入從外部數據存儲器讀得的字模數據,接著(zhù)對第2片、第3片……直到這一排的最后一片都寫(xiě)完字模數據后,單片機再對這一排的行驅動(dòng)鎖存器寫(xiě)行掃描信號,于是第1排第1行與字模數據相關(guān)的發(fā)光二極管點(diǎn)亮。接著(zhù)第2排第1行、第3排第1行……直到最后一排第1行的點(diǎn)亮。各排第1行都點(diǎn)亮后,延時(shí)一段時(shí)間,然后黑屏,這樣就算完成了單片機對LED顯示屏的一行掃描控制。
單片機對LED顯示屏第2行的掃描控制、第3行的掃描控制……直到第8行的掃描控制,其過(guò)程與第1行的掃描控制過(guò)程相同。對全部8行的控制過(guò)程都完成后,LED顯示屏也就完成了1幀圖像的完整顯示。
雖然按這種工作方式,LED顯示屏是一行一行點(diǎn)亮的,每次都只有一行亮,但只要保證每行每秒鐘能點(diǎn)亮50次以上,即刷新頻率高于50 Hz,那么由于人的視覺(jué)惰性,所看到的LED顯示屏顯示的圖像還是全屏穩定的圖像。
2 LED顯示屏的傳統控制方法
參考文獻[1]對LED顯示屏的控制電路作了歸納和比較。其中,顯示控制電路是按行掃描方式工作的,列控制電路分為兩大類(lèi)。列控制電路中,一類(lèi)是用74LS377之類(lèi)的芯片作為列驅動(dòng)電路的鎖存器,CPU通過(guò)并行總線(xiàn)給列驅動(dòng)電路的鎖存器寫(xiě)字模數據;另一類(lèi)是用移位寄存器74LS595之類(lèi)的芯片作為列驅動(dòng)電路的鎖存器,CPU通過(guò)串行總線(xiàn)給列驅動(dòng)電路的鎖存器寫(xiě)字模數據。
無(wú)論是并行總線(xiàn)的控制方式還是串行總線(xiàn)的控制方式,其工作過(guò)程都是先給數據指針DPTR賦值,接著(zhù)累加器A按數據指針DPTR的指向,從外部數據存儲器RAM中讀得字模數據。然后,并行總線(xiàn)時(shí),再給數據指針DPTR賦值,接著(zhù)CPU將累加器A中的字模數據,按數據指針DPTR的指向,寫(xiě)給LED點(diǎn)陣片列驅動(dòng)電路的鎖存器;串行總線(xiàn)時(shí),CPU將累加器A中的字模數據,通過(guò)串行口寫(xiě)給LED點(diǎn)陣片列驅動(dòng)電路的鎖存器。
一般顯示控制中,使用較多的單片機是MCS51系列。假設單片機系統的晶振頻率是12 MHz,機器周期是1 μs,上述兩種控制方式完成1片LED點(diǎn)陣片的顯示控制都得十幾μs。
本文提出的高速控制方案,完成1片LED點(diǎn)陣片的顯示控制大約只要4 μs。按此推算,1片MCS51系列的單片機,差不多可以對600多片LED點(diǎn)陣片進(jìn)行顯示控制。與傳統的控制方法相比,顯示控制的效率成倍提高。
3 LED顯示屏的高速控制方案
圖1是高速控制方案LED顯示屏電路原理。采用MCS51系列單片機對LED顯示屏進(jìn)行控制;隨機存儲器62512用作LED顯示屏的數據存儲器,存儲待顯示內容的字模數據;采用8行掃描方式,多片LED點(diǎn)陣片共用1組行驅動(dòng)電路;每片LED點(diǎn)陣片都有一組列驅動(dòng)電路,用74LS377作為列驅動(dòng)的鎖存器,CPU通過(guò)并行總線(xiàn)給列驅動(dòng)電路的鎖存器寫(xiě)字模數據;地址譯碼電路,用于產(chǎn)生LED點(diǎn)陣片行驅動(dòng)電路和列驅動(dòng)電路的片選地址。
圖1 高速控制方案LED顯示屏電原理
本方案的特點(diǎn)有兩個(gè): 第一,雖然CPU還是通過(guò)并行總線(xiàn)給列驅動(dòng)電路的鎖存器寫(xiě)字模數據,但是鎖存器的鎖存信號改用了CPU的控制信號RD,而不是常規用法的WR;第二,地址譯碼電路保證了LED點(diǎn)陣片列驅動(dòng)電路的片選地址和數據存儲器的某一段的邏輯地址是重疊的,而不是常規用法,這兩組地址必須分開(kāi)。
由于上述電路的一些簡(jiǎn)單更改,單片機對LED顯示屏的顯示控制效率將發(fā)生明顯的變化。具體工作過(guò)程如下: 假定數據指針DPTR中已經(jīng)裝入了數據存儲器的地址,執行指令“MOVXA,@DPTR”。這條指令的功能是CPU按DPTR的指向從外部數據存儲器中讀字模數據,讀到累加器A中;但是在本電路中,由于LED點(diǎn)陣片列驅動(dòng)電路的片選地址和數據存儲器的某一段的邏輯地址是重疊的,也就是說(shuō),在執行指令“MOVXA,@DPTR”時(shí),DPTR除了指向外部數據存儲器的某個(gè)地址外,還選中了某一個(gè)LED點(diǎn)陣片列驅動(dòng)電路的鎖存器。如果此時(shí)被選中的這個(gè)鎖存器的鎖存引腳正好有打入脈沖來(lái)到,那么鎖存器也就將從外部數據存儲器送出的字模數據鎖住了。這個(gè)打入脈沖用的就是RD。RD是CPU在執行指令“MOVXA,@DPTR”時(shí)向外部數據存儲器發(fā)出的讀控制信號。由于MCS51系列單片機的讀控制信號RD和寫(xiě)控制信號WR的時(shí)序完全相同[2],RD代替WR實(shí)現鎖存功能,當然也就沒(méi)有什么懸念了。這條指令在執行時(shí),在完成對數據存儲器讀的同時(shí),又完成了對LED點(diǎn)陣片的寫(xiě),因此加快了顯示控制的過(guò)程。
前面講過(guò),并行總線(xiàn)時(shí)CPU完成1次向LED點(diǎn)陣片的列驅動(dòng)電路的鎖存器寫(xiě)字模數據的程序過(guò)程,大約需要十幾μs;而現在只要4 μs,快多了,因為現在完成1次向LED點(diǎn)陣片的列驅動(dòng)電路的鎖存器寫(xiě)字模數據的程序過(guò)程只要兩步,首先給數據指針DPTR賦有效地址,接著(zhù)CPU按DPTR的指向從外部數據存儲器中讀字模數據,與此同時(shí)也將字模數據傳給了LED點(diǎn)陣片列驅動(dòng)電路的鎖存器。2條指令,4個(gè)機器周期,4 μs。這里要補充說(shuō)明一點(diǎn),在編制全部LED點(diǎn)陣片列驅動(dòng)電路的鎖存器寫(xiě)字模數據的程序時(shí),不要用循環(huán)指令,因為那樣每次過(guò)程又得增加2 μs;要采用對LED點(diǎn)陣片逐片編程的方法,這樣編出來(lái)的程序雖然占空間,但節省了時(shí)間。用空間換時(shí)間的設計方法,有時(shí)也是設計人員值得嘗試的一種方法。
本電路的行驅動(dòng)鎖存器的鎖存控制,還是用CPU的寫(xiě)控制信號WR,不作更改。行驅動(dòng)鎖存器的片選信號也來(lái)自地址譯碼電路。為了避免數據存儲器和LED點(diǎn)陣片之間的相互干擾,與這組地址對應的數據存儲器的這部分存儲空間就不用它了。
地址譯碼電路的設計,應保證LED點(diǎn)陣片列驅動(dòng)電路的片選地址和數據存儲器的某一段的邏輯地址是重疊的。具體設計舉例如下:
假定某一塊LED顯示屏用了240片LED點(diǎn)陣片,可顯示16×16的漢字60個(gè),用1片MCS51系列單片機進(jìn)行高速控制。這240片LED點(diǎn)陣片列驅動(dòng)電路的片選地址就應有240個(gè),地址譯碼電路必須保證譯碼后的有效地址大于這個(gè)數量。圖1中的地址譯碼電路,輸入的地址信號是A0~A7和A11~A15,沒(méi)有接入A8、A9、A10。用74LS138譯碼器,三級譯碼后可得到256根有效地址線(xiàn),第1根有效地址線(xiàn)對應外部數據存儲器的8個(gè)地址:0000H、0100H、0200H、0300H、0400H、0500H、0600H、0700H。第2根有效地址線(xiàn)對應外部數據存儲器的8個(gè)地址:0001H、0101H、0201H、0301H、0401H、0501H、0601H、0701H。……第256根有效地址線(xiàn)對應外部數據存儲器的8個(gè)地址:00FFH、01FFH、02FFH、03FFH、04FFH、05FFH、06FFH、07FFH。這256根有效地址線(xiàn),240根給列驅動(dòng)電路的片選地址,余下的給行驅動(dòng)電路的片選地址;如果不夠用,行驅動(dòng)電路可考慮改為串行總線(xiàn)的方式進(jìn)行控制。上述分析結果表明,1片LED點(diǎn)陣片的I/O接口地址和數據存儲器的8個(gè)字節的地址建立了重疊關(guān)系。這是因為每片LED點(diǎn)陣片都有8行,每行都對應1個(gè)字節的字模數據。
上述分析結果還表明,全部LED點(diǎn)陣片的I/O接口地址和數據存儲器的0000H~07FFH地址段建立了映射關(guān)系。數據存儲器0000H~07FFH中存放的正好是一幀圖像的全部字模數據。
4 高速控制方案在LED顯示屏中的應用
現在商業(yè)上用的大屏幕LED顯示屏,用到的LED點(diǎn)陣片成百、上千甚至幾千片。單片機對LED顯示屏的控制,包括單片機與PC機的通信、字模數據的數據處理以及顯示控制三個(gè)部分。1片單片機要與PC機通信,又要進(jìn)行數據處理,還要進(jìn)行顯示控制,肯定是忙不過(guò)來(lái)的。
為了解決大屏幕LED顯示屏的控制問(wèn)題,許多文獻都對控制方案作了成功的設計。不少方案[36]的基本思路是數據處理由一片單片機完成,顯示控制由另一片單片機或一個(gè)專(zhuān)門(mén)設計的電路完成。這些方案的控制效率雖然很高,但是電路比較復雜。
圖2 數據存儲器分段選擇開(kāi)關(guān)電路
本方案的基本思路是,單片機與PC機的通信、數據處理及顯示控制都由1片單片機完成。顯示控制采用本文提出的高速控制方案,電路簡(jiǎn)單,而且顯示控制的效率很高。例如,LED點(diǎn)陣片采用常用的6 cm×6 cm外廓尺寸的LED點(diǎn)陣片時(shí),屏幕面積小于2 m2時(shí),1片MCS51系列單片機就可以完成。但是,高速控制方案用于大屏幕LED顯示屏,還有一些問(wèn)題要解決:
?、?單片機與PC機的通信問(wèn)題。大屏幕LED顯示屏與PC機連接時(shí),PC機用來(lái)編輯待顯示的內容,并將內容傳給大屏幕LED顯示屏中的單片機。PC機與單片機通信時(shí),不會(huì )干擾顯示屏的工作。因為顯示屏工作時(shí),是一場(chǎng)一場(chǎng)顯示的,場(chǎng)與場(chǎng)之間有黑屏的時(shí)間,利用黑屏的時(shí)間進(jìn)行通信完全沒(méi)有問(wèn)題。
?、?增加顯示場(chǎng)次的問(wèn)題。大部分顯示屏的工作方式是,顯示的內容一場(chǎng)、一場(chǎng)、又一場(chǎng),如此循環(huán)。前面的設計只考慮了顯示一幀圖像時(shí),LED點(diǎn)陣片的I/O接口地址和數據存儲器的一段建立映射關(guān)系的問(wèn)題,因此只能顯示一場(chǎng)定格的圖像。在圖1的基礎上增加圖2,可以使LED點(diǎn)陣片的I/O接口地址和數據存儲器的多段建立映射關(guān)系。工作時(shí),由P1口控制多路開(kāi)關(guān),切換數據存儲器的不同段和LED點(diǎn)陣片的I/O接口地址映射,于是顯示屏就可以一場(chǎng)一場(chǎng)地循環(huán)顯示了。如果擴充外部數據存儲器的片數,并由P1口使能其中的一片有效,那么將可以擴充更多的段和LED點(diǎn)陣片的I/O接口地址建立映射關(guān)系,這樣的話(huà),像拉幕、流水等一些顯示效果,也就可以實(shí)現了。
?、?字模數據的數據處理問(wèn)題。顯示的方式比較多,比如有定格、拉幕、流水,流水方式中又有向左流水、向右流水等。在轉換顯示方式時(shí),就必須進(jìn)行一次字模數據的數據處理,用1片單片機,這也不會(huì )成為問(wèn)題。因為轉換顯示方式時(shí),本來(lái)要黑屏1 s至幾s,這段時(shí)間也就正好用來(lái)進(jìn)行數據處理了。
結語(yǔ)
本LED顯示屏的高速控制方案,經(jīng)應用證明工作穩定、可靠,且電路簡(jiǎn)單,特別適合銀行匯率顯示屏、利率顯示屏使用。另外本文提出的靈活運用讀指令的思路,也可以提供給人們作為借鑒。
...
評論