基于單片機的LED漢字顯示屏的設計
2 軟件設計
2.1 主程序流程圖
主程序流程圖如圖8所示。主程序調用了2個(gè)重要子函數,即顯示子函數和移位子函數。顯示子函數的功能是讓LED顯示器顯示指針所指向的字模數組的數據,而移位子函數的功能是讓指針所指的地址加2,以實(shí)現漢字整體上移一行的效果。整個(gè)主程序運行后,先初始化指針p所指向的地址,讓指針指向字模數組的起始處,并且設定變量I的初值為0,用I的值來(lái)控制顯示函數的重復次數,達到調整顯示漢字移動(dòng)速度的目的。當I值未達到設定值時(shí),不斷重復顯示子函數,此時(shí)屏幕上顯示的是一個(gè)靜止不動(dòng)的漢字,直到I達到設定值,調用移位子函數,將指針地址加2,使指針的起始位置指向第二行,然后重新從I的初始化開(kāi)始執行,這樣,屏幕上就呈現出漢字不斷上移的結果。本文引用地址:http://dyxdggzs.com/article/170651.htm
2.2 顯示子程序流程圖
顯示子程序流程圖如圖9所示,顯示子程序的運行過(guò)程主要是單片機I/O口對外發(fā)送數據的過(guò)程。程序首先設定了一個(gè)局部變量I,并定義其值為0。設定該變量的主要目的是為了確定掃描的行數,以控制I/O口發(fā)送相應行的字模數據。經(jīng)過(guò)判斷,如果I值小于15,說(shuō)明正在掃描顯示器上的某一行,則P0口送出相應的行掃描命令到74HC154芯片,經(jīng)譯碼后控制顯示器接通相應的行,然后P2、P1送出相應的高、低八位列字模數據,最后關(guān)閉列控制以防止殘影,對I值自加1就完成了一個(gè)循環(huán)。當I>15時(shí),說(shuō)明全部的16行掃描進(jìn)行完成,此時(shí)顯示器整屏已經(jīng)出現了需要的圖像,程序執行完成。
2.3 移位子程序流程圖
位移子程序就是讓地址指針自動(dòng)加2,這樣,當濕示函數執行時(shí),第一行顯示的就是原本第二行要顯示的內容,依次類(lèi)推,整個(gè)字形就好像上移了一行一樣。所以程序運行過(guò)程是這樣的:首先讓地址指針自加2,以實(shí)現地址指針的移動(dòng),然后削定地址指針所指向的地址的值,如果地址指針指向了字模數組的最后一位地址,就要令地址指針歸0,否則,指針順序移動(dòng)下去,當移出字模數組的范圍后,后面的存儲空間存儲的數據是未知的,就會(huì )出現非預期的圖形,例如亂碼或空白。
3 硬件調試與改進(jìn)
3.1 驅動(dòng)電路的調試與改進(jìn)
最初設計方案沒(méi)有使用驅動(dòng)電路,軟件仿真正常。在面包板上依原理圖建立物理連接后,調試中發(fā)現LED忽明忽暗,漢字顯示不穩定。經(jīng)萬(wàn)用表測量,LED顯示器中單個(gè)發(fā)光二極管中通過(guò)的電流不足1.5 mA,達不到額定的工作電流。確定問(wèn)題的原因是單片機的驅動(dòng)電流不足。為解決這一問(wèn)題,本次設計采用一套利用三級管控制的驅動(dòng)電路,經(jīng)試驗,加入到電路中效果良好,上述缺陷得到解決。
3.2 限流電阻的調試與改進(jìn)
當確定要加驅動(dòng)電路之后,怎樣用三極管來(lái)控制這個(gè)電流大小是一個(gè)問(wèn)題。起初通過(guò)三極管直接加5 V電壓。一個(gè)LED被燒壞,這就需要加要加限流電阻,但是這電阻要加多大呢?分析如下:正常點(diǎn)亮一個(gè)LED的電流大約是5~15 mA左右,動(dòng)態(tài)掃描電路,每次每列最多只點(diǎn)亮1個(gè)LED,故每個(gè)驅動(dòng)三極管流過(guò)的電流按10 mA的電流大小算。通過(guò)加不同阻值的電阻,用萬(wàn)用表測量后發(fā)現用4.7 kΩ的限流電阻與8550(PNP型)三極管串聯(lián)控制行,用47 kΩ的電阻與8050(NPN型)三極管串聯(lián)控制列便可以滿(mǎn)足要求。
3.3 譯碼器的調試與改進(jìn)
最初設計方案采用軟件編程來(lái)實(shí)現掃描時(shí)的換行控制,雖然硬件電路相對現在的有少許簡(jiǎn)單,但是軟件程序確實(shí)相當的復雜,后發(fā)現只用一個(gè)譯碼器就可以大大簡(jiǎn)化程序。
3.4 上拉電阻的選擇
設計之處初用單片機的P0口通過(guò)譯碼器控制顯示屏的行,插好線(xiàn)后發(fā)現單片機不能正常工作,原因是單片機的P0口是比較特殊的。P0口在不接片外存儲器與不擴展I/O口時(shí),可作為準雙向輸入/輸出口。在接有片外存儲器或擴展I/O口時(shí),P0口分時(shí)復用為低8位地址總線(xiàn)和雙向數據總線(xiàn)。所以P0口的帶負載能力是比較低的,一般情況下要接一個(gè)上拉電阻,所以最后在P0口接了一個(gè)10千歐的排阻之后解決了問(wèn)題。
3.5 消影調試
當所有的線(xiàn)路都連接好后,顯示卻不清晰、有串擾,每行有上一行的重影。在源程序中加入消影程序后可以清晰穩定的顯示。
4 結束語(yǔ)
文中給出了LED漢字顯示屏的系統框圖,各單元硬件電路、軟件設計流程圖及硬件電路的調試流程;詳細闡述了由STC89C52RC芯片、74H C154芯片、晶振電路、復位電路、驅動(dòng)電路、16x16 LED點(diǎn)陣構成的LED漢字顯示屏系統。所設計的顯示屏可以實(shí)現漢字的滾動(dòng)顯示,顯示的漢字清晰,無(wú)串擾,無(wú)重影。
led顯示器相關(guān)文章:led顯示器原理
存儲器相關(guān)文章:存儲器原理
晶振相關(guān)文章:晶振原理
評論