吳強 楊文麗 黃光華



摘要:隨著電子技術的快速發展,用LED點陣書寫顯示屏的節能運用越來越多。本文主要涉及的領域在LED書寫顯示,介紹如何設計的一個32*32LED點陣書寫顯示屏,其功能既可以進行屏幕循環顯示、全屏擦除和屏幕反顯等視覺顯示功能,又可以用光電三極管進行筆畫擦除和筆畫點亮等手動書寫功能。實驗表明,該設計可靠性強、成本低,安全性高等特點。
關鍵詞:32*32LED點陣;光電三極管 ;書寫顯示屏
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)24-0260-03
開放科學(資源服務)標識碼(OSID):
隨著電子技術的發展,LED點陣書寫屏既可多次顯示文字與圖形等不同圖案,又能在短時間內展示多個不同信息,具有反復播放的特點,其節能運用越來越廣泛。本文設計一個32*32LED點陣書寫顯示屏,采用STC12C5A60S2單片機為主控制器,再用74HC154為輔進行單片機串口拓展控制點陣行列,使用光電三極管進行對點陣的控制書寫,坐標信息由74HC595芯片連接數碼管并顯示在數碼管。該系統結構簡單,可靠性強、安全性高,節能效果明顯。
1 系統的總體設計
本論文設計一個32*32LED點陣書寫顯示屏,主要功能如下所示:
(1)可以實現“全屏點亮”“全屏擦除”的功能;
(2)屏幕上可輪流顯示8個大小寫的英文字母和“電子設計”4個漢字;
(3)光筆點亮觸及點陣上的燈,并用數碼管顯示此點的行列坐標值,另外可測量并顯示“點亮”過程的時間,單位為毫秒;
(4)光筆能夠劃亮多個點陣燈,而且在2秒內劃過并點亮的燈越多越好,也可以測得顯示“劃亮”過程的時間,單位為毫秒;
(5)可以實現“反顯”功能;
(6)可以用光筆擦除所顯漢字的筆畫。
系統設計主要由以下幾個模塊組成:光電三極管檢測模塊、中斷獨立按鍵模塊、數碼管顯示模塊和書寫顯示模塊,總體設計結構如圖1所示。
2 系統硬件電路的實現
2.1光電三極管檢測電路設計
本設計中的光電檢測模塊主要是用光敏三極管進行對點陣的光感應來檢測電路,電路模塊如圖2所示:當沒有光時,光敏三極管Q3DUSC電阻高達20K,使得比較器LM3933腳(正相)輸入電壓約為1/20VCC,將R178滑動變阻器調至4:1左右的位置,使得比較器2腳(負相)輸入電壓約為2/5VCC,此時負相電壓2/5VCC大于正相電壓1/20VCC,則LM393比較器輸出端輸出低電平。當光敏三極管感應到光時,光敏三極管電阻約為1K,比較器正相電壓約為1/2VCC,即正相電壓比較器負相電壓大,比較器輸出為高電位;P1.5I/O口檢測到比較器LM393輸出由低到高的電平變化,變化的電平信號傳送給主控芯片,從而實現光電三極管對LED點陣的光檢測。
2.2 LED點陣電路設計
本設計使用74HC154譯碼芯片控制點陣的行與列從而控制LED點陣,其中74HC154是一塊4線—16線譯碼器/解調器芯片,可用來進行對STC12C5A60S2單片機芯片的IO口拓展。4個輸入就可產生16個輸出,大大節省了單片機的IO口。本次設計中在點陣掃描控制行列時分別用兩片74HC154控制了點陣32腳的行與列。利用這4片74HC154對32*32點陣LED定義坐標,進行動態掃描使得人眼觀察點陣LED散發微弱的光芒,進入等待光電三極管檢驗的過程。由于74HC154芯片輸出為低電平,故用PNP三極管銜接,而32*32點陣有1024個LED,一個LED點亮大概需要5至20ma,為了確保在掃描時LED散發微亮的光芒,三極管接上限流電阻進行限流。這時感受到點陣在光電三極管檢測時展現全亮的變化,人眼看去就像屏幕被書寫點亮。點陣電路行驅動部分電路如圖3所,點陣電路行驅動部分電路如圖4所。
2.3行列坐標值顯示電路設計
數碼管顯示模塊是使用74HC595芯片驅動數碼管,74HC595芯片最重要的優點就是它有數據存儲寄存器,輸出寄存器可直接清除,在移位的時候能保持輸出端數據保持不變,使得數碼管不會出現閃爍的情況。比如串行輸入8位數轉變成并行輸出8位數,則控制的對應的一個8位數碼管將不會閃爍,便于數碼管的穩定顯示。本次設計中單片機的芯片的P1.0至P1.3控制芯片的驅動。
3 系統軟件設計
3.1 部分功能設計
3.1.1 喚醒部分
當顯示時間在20s的延時內沒有下一個中斷執行時清空儲存器數據使其暗下來,將端口全部置高或置0,待按下喚醒中斷按鍵后CPU才開始進行行列掃描等待其他指令。
3.1.2 標志顯示
題目要求能夠循環顯示8個含大小寫的英文字母與“電子設計”4個中文漢字 ,在文檔上寫自己需要顯示的內容,比如我的是“asdfgHJKL電子設計”,裁取圖片的格式“.jpg”轉化為“.bmp”,使用字模提取軟件,生成C51的代碼,設置數組放入。
if(P2==0xfd)? ?//標志循環顯示
{XunHuan=0;
GNXZ=1;
if(DJ==0)
{ZB[0]=10;
ZB[1]=10;
ZB[2]=0;
ZB[3]=1;
SMGXS();}}
3.1.3 清屏擦除行為
本設計中擦除主要由光電三極管檢測,當光電三極管檢測到點陣為1,信息反映到CPU則進行對感應到的“1”的位置賦“0”。當清屏中斷開啟則將點陣的列強行執高電平,顯示全部置0,實現全屏清除。
if(P2==0xef) //清屏功能
{uchar x,y;
if(GNXZ==2||GNXZ==3)
{for(x=0;x<32;x++)
{for(y=0;y<4;++)
{XSKJ[x][y]=0x00;}}}}
if(P2==0xdf)? ? ? //擦除功能
{GNXZ=3;
if(DJ==0)
{DJ=0;
ZB[0]=10;
ZB[1]=10;
ZB[2]=0;
ZB[3]=3;
SMGXS();}}
3.1.4 反顯中斷
反顯中斷開啟時將定的數據進行按位取反,得到的新地址儲存到ARM中再由地址循環掃描輸出。
if(P2==0xbf)
{uchar x,y;
if(GNXZ==2||GNXZ==3)
{for(x=0;x<32;x++)
{for(y=0;y<4;++)
{XSKJ[x][y]=XSKJ[x][y];
}}}}
3.1.5 點亮模式
點亮也是在進行行列掃描時,靠點陣屏全部微亮時,通過光電三極管來把對應的點點亮,就是微亮是用兩個154芯片控制三極管然后有限流電阻,當點陣用光電三極管檢測到對應的點再用上面的兩片154芯片控制對應的三極管,微亮有加限流電阻三極管亮度小于全亮沒有限流電阻三極管亮度。
if(P2==0x7f)? ? ?//點亮功能
{GNXZ=2;
if(DJ==0)
{DJ=0;
ZB[0]=10;
ZB[1]=10;
ZB[2]=0;
ZB[3]=2;
SMGXS();}}
4 結束語
本系統設計簡單實用,軟硬件容易實現,成本較低。能夠以進行屏幕循環顯示、全屏擦除和屏幕反顯等視覺顯示功能。基本實現了設計要求。
參考文獻:
[1]陳愛萍,張青.基于單片機的LED點陣書寫顯示屏的設計[J].湖南工程學院學報(自然科學版),2011,21(4):10-12.
[2] 黃小容.基于單片機的LED點陣書寫顯示屏設計路徑研究[J].現代計算機(專業版),2016(9):80-82.
[3] 黃有全,李桂平.基于單片機的點陣式中西文顯示器的設計[J].湖南科技學院學報,2005(5):56-59.
[4] 劉成惠.基于STC12C5A60S2單片機的LED點陣屏設計[J].科技經濟市場,2016(10):35-37.
[5] 李劍輝,張銳,高輝.點陣式LCD與AT89C51單片機的接口技術[J].信息技術,2003(8):22-24.
[6] 劉碩.基于單片機的16*16LED點陣屏顯示設計[J].才智,2012(35):42.
【通聯編輯:唐一東】