雙色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總線驅動器接入。正常工作時因為按行掃描,首先掃描第1行和第17行同時進行,依次掃描到第16行和32行結束,所以送數據時,要把“黑龍江省哈爾濱市”8個漢字分成上面4個和下面4個,首先取“黑”字的16*16點陣數據的第1行第1個字節(一個漢字32個字節)存入單片機寄存器R6中,再取“哈” 字的16*16點陣數據的第1行第1個字節存入單片機寄存器R4中,調用送字節子程序送出到595中,接下來再取“黑”字的16*16點陣數據的第1行第二個字節存入單片機寄存器R6中,接著取“哈” 字的16*16點陣數據的第1行第二個字節存入單片機寄存器R4中,調用送字節子程序送出到595中,如此共取8次,用R2控制,這樣就掃描完了第1行和第17行,用R3控制ABCD共掃描16行(因為一次掃描2行)就完成一屏的數據顯示。
雙色LED顯示屏編程為了配合這種掃描方式,8個漢字的點陣數據要進行重新排列才行,這在后續的程序中再說。

以單色單元板為例走線方式:
各信號走向如下:
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總線驅動器接入。正常工作時因為按行掃描,首先掃描第1行和第17行同時進行,依次掃描到第16行和32行結束,所以送數據時,要把“黑龍江省哈爾濱市”8個漢字分成上面4個和下面4個,首先取“黑”字的16*16點陣數據的第1行第1個字節(一個漢字32個字節)存入單片機寄存器R6中,再取“哈” 字的16*16點陣數據的第1行第1個字節存入單片機寄存器R4中,調用送字節子程序送出到595中,接下來再取“黑”字的16*16點陣數據的第1行第二個字節存入單片機寄存器R6中,接著取“哈” 字的16*16點陣數據的第1行第二個字節存入單片機寄存器R4中,調用送字節子程序送出到595中,如此共取8次,用R2控制,這樣就掃描完了第1行和第17行,用R3控制ABCD共掃描16行(因為一次掃描2行)就完成一屏的數據顯示。
雙色LED顯示屏編程為了配合這種掃描方式,8個漢字的點陣數據要進行重新排列才行,這在后續的程序中再說。