LED顯示屏工作原理及驅動程序發表時間:2024-10-29 10:05 幾年前本人得到一塊雙色LED顯示屏,因為沒有控制器,所以對顯示屏的工作原理進行了一番研究,利用手頭上的元件,搭了一塊電路板,編寫了一段程序就放置一邊了,這幾天有時間,把原來的89C51匯編程序改了一下,改為AT89C2051和STC11F04E單片機能用的程序,放到博客上希望有興趣的同行可以參考一下。 工作原理:這塊顯示屏是分為上下共32行LED點陣,水平有4塊16*16點陣,所以能顯示16*16點陣8個漢字。工作原理是用74ls138做為行掃描,列用74ls595控制,當138掃描到某一行時,595決定哪一列該亮,就這樣快速掃描,就形成了圖像了。參見下圖: 各信號走向如下: l JP1排針16腳信號A->74HC245的第2腳(信號放大)->74HC245的第18腳->74HC138的第1腳->JP2排針16腳 l JP1排針15腳信號B->74HC245的第3腳(信號放大)->74HC245的第17腳->74HC138的第2腳->JP2排針15腳 l JP1排針1腳信號OE->74HC245的第4腳(信號放大)->74HC245的第16腳->74HC04D的第1腳->74HC04D的2腳-> ①74HC138的第5腳->② 74HC04D的3腳->74HC04D的4腳->JP2排針1腳 l JP1排針11腳信號R->74HC245的第9腳(信號放大)->74HC245的第11腳->最左上角74HC595-1的第14腳->74HC595-1的9腳->74HC595-2的14腳->74HC595-2的9腳->最右下角74HC595-16的14腳->74HC595-16的9腳->JP2排針11腳 我現在用的是雙色板,JP1各端口含義如下: ABCD是顯示屏電路板上的74LS138地址譯碼端, 單片機寄存器R3控制行掃描,當R3從00000000到00010000增加時ABCD的變化給138譯碼,當R3=0FH時正好掃描16行,當進位到10時掃描結束,OE是138的片選使能端,低電平有效。G1,G2是給595送綠色數據,R1R2是給595送紅色數據的,ST是595數據鎖存脈沖,SC是595時鐘輸入端。所有11個接線端都要通過74HC244總線驅動器接入。正常工作時因為按行掃描,首先掃描**行和第17行同時進行,依次掃描到第16行和32行結束,所以送數據時,要把“黑龍江省哈爾濱市”8個漢字分成上面4個和下面4個,首先取“黑”字的16*16點陣數據的**行**個字節(一個漢字32個字節)存入單片機寄存器R6中,再取“哈” 字的16*16點陣數據的**行**個字節存入單片機寄存器R4中,調用送字節子程序送出到595中,接下來再取“黑”字的16*16點陣數據的**行第二個字節存入單片機寄存器R6中,接著取“哈” 字的16*16點陣數據的**行第二個字節存入單片機寄存器R4中,調用送字節子程序送出到595中,如此共取8次,用R2控制,這樣就掃描完了**行和第17行,用R3控制ABCD共掃描16行(因為一次掃描2行)就完成一屏的數據顯示。為了配合這種掃描方式,8個漢字的點陣數據要進行重新排列才行,這在后續的程序中再說。 下面是51單片機匯編語言代碼,主要由顯示程序和送字節數據程序2段程序組成: ORG 0000H AJMP KS ;顯示綠色黑龍江省哈爾濱市,11.0592MHZ,STC11F04E單片機 ORG 0003H RETI ORG 000BH ; LJMP 0C00H RETI ORG 001BH RETI ORG 0023H ;AJMP S ;接收數據轉S A1 EQU P1.0 ;P1.0=A 接2針 B1 EQU P1.1 ;P1.1=B 接4針 C1 EQU P1.2 ;P1.2=C 接6針 D1 EQU P1.3 ;P1.3=D 接8針 G1 EQU 0B3H ;數據輸出G1=B4 G2 EQU 0B7H ;數據輸出 G2=B5 STB EQU 0B2H ;595數據鎖存脈沖=L 12腳 SCK EQU 0B4H ;595時鐘輸入=S 11腳 R11 EQU 0B0H ;改為81,R22改為80,上下顯示顛倒 R22 EQU 0B1H EN EQU 0B5H ;138片選,行輸出使NENG DELBUF EQU 7FH WDT_CONTR EQU 0C1H AUX EQU 0A2H ; |