牛曉飛,張秀香,李 明,郝保明,王 祥,唐永剛
宿州學(xué)院機(jī)械與電子工程學(xué)院,宿州,234000
基于AT89C51單片機(jī)的16×16點(diǎn)陣顯示屏的設(shè)計(jì)
牛曉飛,張秀香,李 明,郝保明,王 祥,唐永剛
宿州學(xué)院機(jī)械與電子工程學(xué)院,宿州,234000
針對(duì)LED顯示屏設(shè)計(jì)研究中存在的問題,提出一種基于AT89C51單片機(jī)的16×16點(diǎn)陣顯示屏的設(shè)計(jì)方案。16×16 LED顯示屏可以顯示漢字、數(shù)字和符號(hào)等,其主要由四片8×8 LED點(diǎn)陣組成,可以實(shí)現(xiàn)的擴(kuò)展功能有實(shí)時(shí)溫度采集和實(shí)時(shí)時(shí)鐘以及LED點(diǎn)陣屏滾動(dòng)顯示。本設(shè)計(jì)主要以51系列單片機(jī)為核心控制塊來實(shí)現(xiàn)對(duì)顯示的控制,并對(duì)硬件設(shè)計(jì)、軟件設(shè)計(jì)以及軟件和硬件的組合調(diào)試分別進(jìn)行討論。
單片機(jī);LED點(diǎn)陣;顯示屏;發(fā)光二極管
LED顯示屏可以分為圖文、數(shù)字和視頻顯示屏,它們都是由LED矩陣模塊構(gòu)成的。7段碼數(shù)碼管為LED顯示屏的顯示器件,常應(yīng)用于制作時(shí)鐘、利率屏等,顯示數(shù)字字符[1]。與計(jì)算機(jī)連接的圖文顯示屏是用來顯示英文、漢字和圖形等。視頻顯示屏則是利用計(jì)算機(jī)對(duì)其進(jìn)行控制,以播放各種視頻文件,還可以顯示電視節(jié)目、動(dòng)畫等。LED具有亮度好、電壓低、功耗小、微型化、耐碰撞、使用壽命長和性能穩(wěn)定等優(yōu)點(diǎn),應(yīng)用前景廣闊,目前正朝著更高亮度、更耐氣候性、更高發(fā)光均勻性、更高發(fā)光密度、更高圖像可靠性和全色化等方向發(fā)展[2]。
目前,控制LED的系統(tǒng)都是使用嵌入式微處理器開發(fā)的。單片機(jī)由于具有廣泛的適用性,作為LED的控制系統(tǒng)的開發(fā)也應(yīng)該占有一定比例[3]。但是LED顯示屏的控制系統(tǒng)要求復(fù)雜,特別在呈現(xiàn)特殊效果如覆蓋霓虹燈、循環(huán)移動(dòng)時(shí),要求處理器運(yùn)算快和執(zhí)行效率高,導(dǎo)致生產(chǎn)廠家?guī)缀跚逡簧夭捎们度胧较到y(tǒng)設(shè)計(jì)。這樣也存在弊端,比如,雖然在一定程度上提高了數(shù)據(jù)處理的速度,但是不能完全滿足顯示效果,而且會(huì)大大增加產(chǎn)品開發(fā)的成本;同時(shí),如果設(shè)計(jì)不當(dāng),還會(huì)引起閃爍、抖動(dòng)、重影等現(xiàn)象[4]??傊?,硬件設(shè)備是LED顯示屏控制器設(shè)計(jì)中的一個(gè)重要因素,顯示數(shù)據(jù)組織方式是另外一個(gè)重要因素,只有將軟硬件相結(jié)合,才能設(shè)計(jì)出性價(jià)比高的控制卡[5]。本文提出一種基于51系列單片機(jī)對(duì)LED顯示屏控制的方法,采用4片8×8點(diǎn)陣單元組合而成一片16×16點(diǎn)陣單元,以顯示一個(gè)完整的漢字以及其他的字符,達(dá)到用單片機(jī)控制點(diǎn)陣顯示屏的目的。
16×16LED顯示屏由四片8×8LED顯示屏組成。要想由8×8點(diǎn)陣擴(kuò)展成為16×16點(diǎn)陣,這就需要4片這樣的點(diǎn)陣單元。在硬件連接方面只用將同行的兩片點(diǎn)陣單元的行引腳連接,將同列的兩片點(diǎn)陣單元的列引腳連接即可。根據(jù)點(diǎn)陣的顯示原理,要想該點(diǎn)陣工作就要加上相應(yīng)的列驅(qū)動(dòng)電路和行驅(qū)動(dòng)電路。列驅(qū)動(dòng)器用于輸入數(shù)據(jù),而行驅(qū)動(dòng)器則用來控制掃描。由此可以得到如下結(jié)構(gòu),如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
硬件系統(tǒng)是整個(gè)設(shè)計(jì)的關(guān)鍵。設(shè)計(jì)中所涉及到的元器件和芯片有發(fā)光二極管、LED點(diǎn)陣顯示單元、51系列的AT89C51單片機(jī)、74LS138譯碼器、74HC573鎖存器、時(shí)鐘芯片DS1302和溫度傳感器DS18B20等[6]。
一個(gè)16×16的點(diǎn)陣是由4個(gè)8×8的點(diǎn)陣單元構(gòu)成的。對(duì)于一片8×8點(diǎn)陣,其內(nèi)部電路結(jié)構(gòu)分為8條行線和8條列線。行和列的交叉處有一個(gè)LED,每個(gè)單元由64個(gè)LED構(gòu)成。一片8×8點(diǎn)陣單元的內(nèi)部結(jié)構(gòu)如圖2所示。由圖可以看出,若LED的陽極與行相連接,而陰極與列相連接時(shí),只要給LED對(duì)應(yīng)的某個(gè)行施加高電平,某個(gè)列施加低電平,那么對(duì)應(yīng)位置的LED就可以發(fā)光[7]。這只是顯示點(diǎn)陣單元中的一個(gè)點(diǎn),如果要顯示一個(gè)復(fù)雜一點(diǎn)的字符,例如要想在點(diǎn)陣單元中顯示一個(gè)“O”字符,可以有兩種方式實(shí)現(xiàn):一是點(diǎn)亮若干個(gè)LED燈,使亮的LED組合成字符“O”的形象;二是與其相反,點(diǎn)亮其他的LED燈,使不亮的LED組合成字符“O”形象。通常使用的是第一種方式。
圖2 8×8點(diǎn)陣單元的內(nèi)部結(jié)構(gòu)圖
由圖3可以看出,16×16點(diǎn)陣與8×8點(diǎn)陣的唯一差別就在于引腳增多了,但是控制方式依然相同;而相對(duì)于8×8點(diǎn)陣來說,16×16點(diǎn)陣能夠顯示的字符增多了,已經(jīng)可以顯示一個(gè)完整的漢字[8]。
圖3 16×16點(diǎn)陣連接圖
點(diǎn)陣的顯示原理是在每一時(shí)刻僅顯示一行數(shù)據(jù),然后通過每行輪流顯示,以很快的速度不斷地刷新,也就產(chǎn)生了靜態(tài)的顯示效果。因此需要采用一定的驅(qū)動(dòng)電路來實(shí)現(xiàn)對(duì)當(dāng)前該顯示的行進(jìn)行驅(qū)動(dòng)[9]。
顯示數(shù)據(jù)一般都是由列線傳遞過來的,這需要外接一個(gè)驅(qū)動(dòng)電路接口。由于16×16點(diǎn)陣給出的列接口有16個(gè),如果采用IO端口直接驅(qū)動(dòng),那么將占用16個(gè)IO端口,造成IO端口的浪費(fèi),不利于其他外設(shè)的擴(kuò)展,這可以有兩種方式解決:一是使用鎖存器來實(shí)現(xiàn),即使用兩片8位的鎖存器進(jìn)行連接,將其輸入端接入同一個(gè)8位IO端口,通過信號(hào)的鎖存來實(shí)現(xiàn)數(shù)據(jù)的分次傳輸;二是使用移位寄存器來實(shí)現(xiàn),即使用兩片8位的移位寄存器實(shí)現(xiàn),兩片實(shí)現(xiàn)級(jí)聯(lián),一片負(fù)責(zé)高八位,一片負(fù)責(zé)低八位。使用移位寄存器來實(shí)現(xiàn)硬件連接簡單,由于采用的是串行數(shù)據(jù)傳輸方式,所以占用的IO端口也比較少,但是軟件編程相對(duì)復(fù)雜。而使用鎖存器實(shí)現(xiàn)的列驅(qū)動(dòng)電路硬件連接相對(duì)簡單,軟件編程也方便,但所要占用的IO端口較多,對(duì)于大分辨率的點(diǎn)陣顯示屏來說,IO端口資源有限,所以該方式不適合大系統(tǒng)的點(diǎn)陣顯示屏的設(shè)計(jì)。在本設(shè)計(jì)中,由于采用16×16點(diǎn)陣模擬點(diǎn)陣顯示屏,所占的IO端口資源較少,因此,可以采用鎖存器來實(shí)現(xiàn)列驅(qū)動(dòng)電路,這里采用的鎖存器為74HC573。
圖4 73LS138級(jí)聯(lián)原理圖
圖5為基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計(jì),其中晶振電路為單片機(jī)的工作提供相應(yīng)的時(shí)鐘脈沖,使程序按照一定的節(jié)拍有序運(yùn)行。此晶振頻率決定單片機(jī)的運(yùn)行速度,晶振頻率越大,單片機(jī)的處理速度就越快。復(fù)位電路的作用主要有兩方面:一是單片機(jī)在啟動(dòng)時(shí)需要進(jìn)行復(fù)位,從而使CPU和系統(tǒng)各個(gè)部件都處于一定的初始狀態(tài),從初始狀態(tài)開始工作。二是當(dāng)程序進(jìn)入到非正常狀態(tài)(非預(yù)期的死循環(huán)),要想使程序恢復(fù)到初始的工作狀態(tài),可以通過復(fù)位電路來實(shí)現(xiàn)[9]。
圖5 單片機(jī)最小系統(tǒng)
在繪制流程圖時(shí),需要根據(jù)相關(guān)的模塊分別進(jìn)行繪制,這樣有利于進(jìn)行模塊化編程。該設(shè)計(jì)被劃分為三個(gè)模塊:主程序點(diǎn)陣刷新顯示模塊、DS1302實(shí)時(shí)時(shí)鐘中斷處理函數(shù)模塊和DS18B20溫度傳感器中斷處理函數(shù)模塊。主程序點(diǎn)陣刷新顯示模塊主要任務(wù)是不斷循環(huán)地顯示漢字、實(shí)時(shí)時(shí)鐘和當(dāng)前溫度值。顯示的方式采用循環(huán)右移,即數(shù)據(jù)循環(huán)向右移動(dòng)顯示,主要由單片機(jī)驅(qū)動(dòng)點(diǎn)陣的行驅(qū)動(dòng)和列驅(qū)動(dòng)電路來實(shí)現(xiàn)數(shù)據(jù)的顯示。該模塊的程序流程如圖6所示。
圖6 主程序點(diǎn)陣刷新顯示模塊流程圖
圖6表示系統(tǒng)啟動(dòng)到運(yùn)行的整個(gè)流程。但是,對(duì)于擴(kuò)展功能,實(shí)時(shí)時(shí)鐘和溫度的顯示首先要解決數(shù)據(jù)的采集。根據(jù)之前的軟件設(shè)計(jì)思想,對(duì)于實(shí)時(shí)時(shí)鐘和溫度的采集和讀取,采用中斷的方式來完成,因此這部分的處理可以放到中斷服務(wù)子程序中來實(shí)現(xiàn)。最后結(jié)合硬件模塊和軟件模塊進(jìn)行了模擬,實(shí)現(xiàn)了預(yù)想的各種功能,然后組合制作了對(duì)應(yīng)的實(shí)物電路,綜合系統(tǒng)實(shí)現(xiàn)了顯示漢字、顯示數(shù)字、顯示英文、溫度顯示、時(shí)鐘顯示等多種功能。
本文針對(duì)目前LED點(diǎn)陣顯示存在的問題,提出了一種基于51單片機(jī)的16×16點(diǎn)陣顯示屏的系統(tǒng)設(shè)計(jì)與制作方法。該系統(tǒng)采用AT89C51單片機(jī)為主控芯片,C語言為編程軟件,具有實(shí)現(xiàn)低成本、設(shè)計(jì)簡單和系統(tǒng)穩(wěn)定性強(qiáng)等特點(diǎn)。而且,由于LED點(diǎn)陣顯示具有亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定等諸多優(yōu)點(diǎn),在當(dāng)代提倡更環(huán)保、更節(jié)能、更高效的大背景下,必將有著更廣闊的發(fā)展前景。
[1]唐康.基于STM32的3D16光立方設(shè)計(jì) [J].電子技術(shù)與軟件工程,2015(11):56-59
[2]杜朝.基于單片機(jī)的嵌入式系統(tǒng)開發(fā)[J].無線互聯(lián)科技,2016(1):56-57
[3]張志良.單片機(jī)原理及控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2005:23-34
[4]王成飛,董明明,樊釗.基于單片機(jī)的LCD顯示終端設(shè)計(jì)技術(shù)研究[J].電子測試,2016(16):22-30
[5]金發(fā)慶.傳感器技術(shù)與應(yīng)用[M].北京:北京機(jī)械工業(yè)出版社,2000:78-79
[6]侯麗玲.基于AT89S52單片機(jī)的LED點(diǎn)陣顯示屏控制系統(tǒng)的設(shè)計(jì)[J].漳州師范學(xué)院學(xué)報(bào),2008,34(3):23-24
[7]靳桅.基于51系列單片機(jī)的LED顯示屏開發(fā)技術(shù)[M].北京:北京航空航天出版社,2007:45-47
[8]鄭寶華.LED圖文顯示屏的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林化工學(xué)院學(xué)報(bào),2001,18(3):44-45
[9]杜戰(zhàn)波,.基于單片機(jī)的LED顯示屏設(shè)計(jì)[J].中國新技術(shù)新產(chǎn)品,2016(20):27-28
[10]李徑達(dá).基于鎖存方式LED顯示屏的軟件設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,1999(5):23-25
[11]范濤,彭猛,胡棵,等.基于單片機(jī)的晶閘管數(shù)字觸發(fā)研究與實(shí)踐[J].邵陽學(xué)院學(xué)報(bào):自然科學(xué)版,2014(1):33-36
[12]王連君.基于單片機(jī)的LCD顯示終端設(shè)計(jì)[J].硅谷,2014(6):20-26
10.3969/j.issn.1673-2006.2017.12.026
TM852
A
1673-2006(2017)12-0097-04
2017-06-25
安徽省教育廳質(zhì)量工程項(xiàng)目(2016sjjd074,2015sjjd025);宿州學(xué)院卓越人才教育培養(yǎng)計(jì)劃(szxy2016zyjh01);宿州學(xué)院科研平臺(tái)開放課題(2015YKF18);安徽省教育廳重大教改課題(2015ZDJY160)。
牛曉飛(1980— ),安徽宿州人,博士,副教授,研究方向:實(shí)訓(xùn)基地建設(shè)、校企合作。
劉小陽)