led點陣顯示屏驅(qū)動器的與實現(xiàn)_第1頁
led點陣顯示屏驅(qū)動器的與實現(xiàn)_第2頁
led點陣顯示屏驅(qū)動器的與實現(xiàn)_第3頁
led點陣顯示屏驅(qū)動器的與實現(xiàn)_第4頁
led點陣顯示屏驅(qū)動器的與實現(xiàn)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

PAGE10學科分類號0806本科生畢業(yè)論文(設計)題目(中文):LED點陣顯示屏驅(qū)動器的設計與實現(xiàn)(英文):TheDesignandImplementationofLEDDotMatrixDisplayDriver本科畢業(yè)論文(設計)誠信聲明作者鄭重聲明:所呈交的本科生論文(設計),是在指導老師的指導下,獨立進行研究所取得的成果,成果不存在知識產(chǎn)權(quán)爭議。除文中已近注明引用的內(nèi)容外,論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的成果。對論文的研究做出重要貢獻的個人和集體均已在文中以明確的方式標明。本聲明的法律結(jié)果由作者承擔。本科生論文(設計)作者簽名:年月日PAGE28目錄摘要 III關(guān)鍵詞 IIIAbstract IIIKeywords IV1引言 12總體設計方案 32.1設計任務與要求 32.2.1基本要求 42.2.2發(fā)揮部分 43系統(tǒng)硬件設計 43.1整體電路 43.2AT89S52單片機最小系統(tǒng) 63.3標準08接口 73.4鍵盤模塊 93.5LED顯示模塊 93.6列驅(qū)動模塊 103.7行驅(qū)動模塊 114系統(tǒng)軟件設計 124.1顯示驅(qū)動程序 124.2漢字字模的提取方法 134.3程序流程圖 144.4顯示子程序 165系統(tǒng)調(diào)試與分析 185.1硬件調(diào)試 185.2軟件調(diào)試 196總結(jié) 20參考文獻 21致謝 23附錄 24附錄A實物顯示效果圖 24附錄B主程序 24LED點陣顯示屏驅(qū)動器的設計與實現(xiàn)摘要本文設計了一個以整機為美國ATMEL公司生產(chǎn)的40腳單片機AT89S52[1]為控制核心,以一個64*32點陣模塊控制器,根據(jù)標準的08控制接口要求,可以驅(qū)動市面上常見的16掃單色顯示屏,顯示漢字、英文、阿拉伯數(shù)字及其他信息等。同時通過調(diào)用HZK16*16標準漢字庫文件讀取字模的方法,把漢字從上位機發(fā)送到LED顯示屏控制卡上。整個系統(tǒng)提供外部擴展,包括常規(guī)點陣控制器模塊。該系統(tǒng)實現(xiàn)了1/16掃描驅(qū)動電路等功能,并能通過PC機串口修改程序?qū)︼@示信息進行控制更新,具有刷新速度快、亮度高、功耗低等特點。關(guān)鍵詞LED點陣控制器;AT89S52;1/16掃;08接口TheDesignandImplementationofLEDDotMatrixDisplayDriverAbstractThispaperhasdesignedamachinebasedonthemodelwhichisproducedbyATMELcompanyintheUnitedStateswitha40feetMCUAT89S52asthecontrolcore,[1]anda64*32dotmatrixmodulecontroller,soaccordingtotherequirementsofthestandard08controlinterface,italsocandrivethecommononthemarketof16monochromedisplay,displayChinesecharacter,English,ArabicNumbers,andotherinformation,etc.Atthesametime,byadoptingthemethodofreadingChinesecharactersfromtheHZK16*16standarddocuments,andtheChinesecharactersfromtheuppermachinesenttoLEDdisplaycontrolcard,theentiresystemalsoprovidestheexternalexpansion,includingregularlatticecontrollermodule.Thissystemhasrealizedthefunctionofupdatingthecontrollingof1/16scandrivercircuit,anditalsoobtainsotherfunctions,suchas,andwithafastershuabing,ahigherbrighterandalowerenergy-needandwaste,etc.KeywordsLEDdotmatrixcontroller;89S52;1/16sweep;08Interface1引言LED(light

emitting

diode,發(fā)光二極管)是六十年代末發(fā)展起來的一種半導體顯示器件。七十年代,隨著半導體材料合成技術(shù)、單晶制造技術(shù)和P一結(jié)形成技術(shù)的研究進展,發(fā)光二極管在發(fā)光顏色、亮度等性能方面得以提高,并迅速進入批量化和實用化。進入八十年代后,LED在發(fā)光波長范圍和性能方面大大提高,并開始形成平面顯示產(chǎn)品即LED顯示屏。由于LED具有發(fā)光率高、使用壽命長、組態(tài)靈活、工作性能穩(wěn)定以及在室內(nèi)室外適應力強等優(yōu)點,且LED顯示屏的最大特點是不受面積的限制,可以達到幾十甚至幾百平方米以上,應用于室內(nèi)外各種公共場所顯示文字、圖形、動畫、視頻圖像等各種信息。LED顯示屏的應用涉及到社會經(jīng)濟的許多領域,主要包括:機場、港口、車站旅客引導信息顯示;證券交易、金融信息顯示;郵政、電信、商場購物中心等服務領域的業(yè)務宣傳及信息顯示;道路交通信息顯示;高校教學管理信息發(fā)布顯示;文藝演出和體育比賽;室外產(chǎn)品廣告及信息發(fā)布。除單一大型戶內(nèi)、戶外顯示屏作為廣告媒體外,國內(nèi)一些城市還出現(xiàn)了集群LED顯示屏廣告系統(tǒng)。另外,自2000年后隨著高亮度LED產(chǎn)品亮度與效率增進,可攜式產(chǎn)品(如手機、PDA、數(shù)字相機等)大量使用作為產(chǎn)品屏幕或按鍵光源,配合可攜式產(chǎn)品市場成長,使得可攜式產(chǎn)品成為LED最大應用市場。隨著電子技術(shù)的發(fā)展,LED點陣書寫顯示屏是信息傳播一種重要手段,成為現(xiàn)代化社會的一個閃亮標志,它的廣泛應用將是一種趨勢。因此,在科技以日新月異的速度向前發(fā)展,經(jīng)濟全球一體化的社會中,LED點陣顯示技術(shù)發(fā)展前景樂觀。作為一種新型的發(fā)光體,LED自誕生以來就倍受關(guān)注。特別是進入21世紀后,世界面臨嚴重的能源、環(huán)境危機,在發(fā)達國家,照明用電占總用電量的20%;我國的照明用電約占總用電量的12%,至2010年,我國照明用電將高達3000億度,相當于三峽水電站完工后的年發(fā)電量的3倍以上。而目前我國的發(fā)電主要還是依靠火力,對于環(huán)境的污染非常嚴重,這就需要改進現(xiàn)有的照明設備,提高其效率。而半導體照明作為新興的發(fā)光體,具有電光效率高、體積小、壽命長、電壓低、節(jié)能和環(huán)保等優(yōu)點,是下一代照明的不二之選。根據(jù)各種照明器件的效率,可以得出,LED與傳統(tǒng)的白熾燈、日光燈相比,在電光效率、壽命上占有絕對的優(yōu)勢,一旦在成本、光效上取得突破,將很快占領照明市場。因而,現(xiàn)今不管是國內(nèi)還是國外我們都是圍繞先進的LED技術(shù)做進一步研究。目前我國的信息行業(yè)發(fā)展迅速,作為主要平面顯示媒介的LED顯示屏的作用也越練越廣泛,相關(guān)的從業(yè)人員也會越來越緊缺。但同時應該清楚的認識到我國的LED技術(shù)雖然發(fā)展迅速但和世界先進水平還有一定的差距。因此本設計課題不論是對自己的就業(yè)還是對我國LED顯示技術(shù)的發(fā)展都有非?,F(xiàn)實與積極的意義。在設計本課題時本人查閱了大量的書籍和相關(guān)知識使我能夠掌握LED點陣顯示驅(qū)動的基本顯示原理和設計方法,對LED顯示屏這個行業(yè)有了較為深刻的了解和認識。并且對大學期間所學習的一些理論進行了實踐,使我對所學過的理論知識有了新的認識。并且通過本設計課題學習掌握AT89S52單片機的控制功能和用它作為主控單元完成許多設計目標的方法。熟悉AT89S52單片機軟件編程。且能掌握使用AD進行電路設計和制圖的方法步驟。為以后從事相關(guān)行業(yè)的工作積累了實際工作經(jīng)驗。因此,學習LED點陣顯示驅(qū)動與工程技術(shù)很有必要。本文通過設計一個可顯示文字與圖形的64*32點陣控制器來學習和熟悉LED的使用。本文采用89S52單片機為核心,在軟件編程中采用C語言,顯示時采用點陣顯示。講述了LED點陣顯示驅(qū)動的基本原理、硬件組成與設計、程序編譯與下載等基本環(huán)節(jié)和相關(guān)技術(shù)。2總體設計方案2.1設計任務與要求本系統(tǒng)由AT89S52、16個74HC595[2]、16個74HC138[3]及LED顯示屏為核心組成的點陣式LED漢字顯示屏,主要由24MHZ晶振電路、復位電路、89S52單片機、點陣陽極驅(qū)動電路、點陣陰極驅(qū)動電路、64*32顯示屏6部分組成。采用的AT89S52單片機最小化應用設計,P1口作為I/O口,輸出行數(shù)據(jù)和控制信號,P2口作為I/O口,與“寫”控制信號配合,輸出列控制信號。LED顯示采用動態(tài)掃描方式實現(xiàn),控制電路部分由4片74HC138和2片74HC595傳輸信號,傳輸出來的信號通過74HC595輸出,再通過編譯最終達到依次顯示漢字的目的。而接口部分,一般采用08接口,如果需要不同的接口類型,可以根據(jù)08接口為基礎進行轉(zhuǎn)接,這也是本系統(tǒng)采用08接口的原因之一。2.2設計要求2.2.1基本要求(1)顯示區(qū)域:64點*32點,單色;(2)通過上位機修改顯示內(nèi)容;(3)能存儲16*16點陣漢字數(shù)不少于64個;(4)按鍵可改變顯示內(nèi)容;(5)可兼容T12和T08顯示屏單元板。2.2.2發(fā)揮部分(1)LED顯示屏亮度連續(xù)可調(diào);(2)實現(xiàn)信息的左右滾屏顯示,預存信息的的定時循環(huán)。3系統(tǒng)硬件設計3.1整體電路本系統(tǒng)由AT89S52、16個74HC595及LED顯示屏為核心組成的點陣式LED漢字顯示屏,主要由24MHZ晶振電路、復位電路、單片機、點陣陽極驅(qū)動電路、點陣陰極驅(qū)動電路、64*32顯示屏6部分組成。采用的AT89S52單片機最小系統(tǒng)設計,P1口作為I/O口,輸出行數(shù)據(jù)和控制信號,P2口作為I/O口,與“寫”控制信號配合,輸出列控制信號。LED顯示采用動態(tài)掃描方式實現(xiàn),控制電路部分由4片74HC138和2片74HC595傳輸信號,傳輸出來的信號通過74HC595輸出,再通過編譯最終達到依次顯示漢字的目的。系統(tǒng)整體電路如圖3.1所示:圖3.1整體電路本設計一般使用的是開關(guān)電源,220V輸入,5V直流輸出。需要指出,由于LED顯示屏幕屬于精密電子設備,所以要采用開關(guān)電源[4],不能采用變壓器。對于1個單紅色戶內(nèi)64*32的單元板,全亮的時候,電流為2A。選用的是條屏控制卡,可以控制1/16掃的64*32個點的單色屏幕,可以組裝出最有成本優(yōu)勢的LED屏幕。該控制卡屬于異步卡,就是說,該卡可以斷電保存信息,不需要連接PC都可以顯示儲存在里面的信息。其中注意的問題是16PIN、08接口的接口順序為:ABCD為行選信號,STB(LT)為鎖存信號,CLK(CK)為時鐘信號,R1,R2,G1,G2為顯示數(shù)據(jù),EN為顯示使能,N為地(GND)。只有當單元板和控制卡的接口一致時,才可以直接連接起來。如果不一致,就需要利用轉(zhuǎn)換線轉(zhuǎn)換一下線的順序。3.2AT89S52單片機最小系統(tǒng)單片機[5]也被稱作“單片機微型計算機”、“微控制器”,國際上采用“MCU”(MicroControllerUnit)稱呼單片機。單片機的發(fā)展的歷史大致可以分為4個階段。第一階段是單片機探索階段,主要探索如何把計算機的主要部件集成在單芯上;第二階段是單片機完善階段,完善了8位單片機的并行總線結(jié)構(gòu)、外圍功能單元由CPU集中管理模式、體現(xiàn)控制特性的位地址空間和位操作方式、指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令;第三階段是向微控制器發(fā)展的階段,說的是在51系列的基本結(jié)構(gòu)的基礎上,加強了外圍電路的功能,突出了單片機的控制功能,將一些用測控對象的模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器、程序運行監(jiān)視器、脈寬調(diào)制器等納入芯片中,體現(xiàn)單片機的微控制器特征;第四階段是單片機的全面發(fā)展階段,很多大半導體和電氣廠商都開始加入單片機的研制和生產(chǎn),單片機世界出現(xiàn)了百花齊放,欣欣向榮的景象。隨著單片機在各個領域全面深入地發(fā)展和應用,出現(xiàn)了高速、大尋址范圍、強運算能力的8位、16位、32位通用型單片機,以及小型謙價的專用型單片機。目前,單片機正朝著高性能和多品種方向發(fā)展,今后單片機的發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝等方面發(fā)展。最小系統(tǒng)包括AT89S52、晶體振蕩電路、復位開關(guān)。其中晶體振蕩電路[6]采用24MHZ,圖3.2為AT89S52單片機最小系統(tǒng)。圖3.2最小系統(tǒng)電路圖3.3標準08接口單元板輸入08接口[7]的接口定義如圖3.3所示:圖3.308接口ABCD是4個行選信號,實際上是用4個二進制位計數(shù)來實現(xiàn)的。A為最低位,D為最高位,從0記錄到15,板子上的2個138組成一個4-16譯碼器,會自動選通第0行和第15行。R0、R1、G0、G1分別是紅色和不亮的595的數(shù)據(jù),SCK和LT分別是595的時鐘和鎖存,OE是整個單元板的顯示時能,OE為0時單元板暗亮,為1時高亮。OE是為了適應不同廠家的單元板信號的。一個單元板的寬和高的點數(shù)是64*32點,分上下兩個半屏,兩個半屏共用時鐘、鎖存和OE、R0、G0是上半屏數(shù)據(jù),R1、G1是下半屏數(shù)據(jù)。從單元板的顯示面看,數(shù)據(jù)是從右側(cè)向左輸入,一行是64個點,也就是通過8個595控制,因為是單色,每個半屏是兩行595,整個屏是4行595。單元板控制卡工作順序:把顯示緩沖里的第一行紅色數(shù)據(jù)送往R0,顯緩的第8行紅色數(shù)據(jù)送往R1,每行是8個數(shù)據(jù)——>關(guān)閉OE使能——>行選選中第0行、LT鎖存——>開啟OE使能,9數(shù)據(jù)顯示。間隔一定時間3-5ms,重復以上循環(huán),行選第1行,送第1行和第9行數(shù)據(jù)...間隔一定時間3-5ms,重復以上循環(huán),行選第2行,送第2行和第10行數(shù)據(jù)...以此類推。3.4鍵盤模塊鍵盤、狀態(tài)顯示模塊:為了使軟件編程簡單,本設計利用可編程芯片8255。接法如圖一所示,PA口接按鍵,PC口則用用于控制狀態(tài)顯示所用LED點陣。每個按鍵都通過一個10K的上拉電阻接+VCC,按鍵的另一端接地。當有鍵按下時,與該鍵相連的PA口的相應位變?yōu)榈碗娖?,單片機檢測到該變化后即轉(zhuǎn)到相應是鍵處理程序,同時在程序中點亮LED點陣模塊電路如圖3.4。圖3.4鍵盤電路3.5LED顯示模塊點陣系統(tǒng)串行輸入,器件為移位寄存器TPIC6B595595[8],門控和掃描信號常以16點陣為一行進行并行處理。在點陣顯示中以4*8個LED點陣構(gòu)成一個LED顯示單元,采用行共陽陰共列的編排方式。其驅(qū)動分為行列兩部分,分別來自于行、列移位寄存器,行數(shù)據(jù)是掃描數(shù)據(jù),16行中每次只有一行被驅(qū)動,采用逐行掃描方式,列數(shù)據(jù)則為漢子的點陣碼。對于字符和圖形顯示也可以用點陣處理。其顯示原理和方法相同,如圖3.5。圖3.5LED顯示電路3.6列驅(qū)動模塊本設計采用了74HC595是LED列驅(qū)動芯片,8位移位鎖存器用于驅(qū)動顯示列,每片74HC595可以驅(qū)動8列,多片74HC595串接在一起,串行列數(shù)據(jù)信號RI(DATA)、鎖存信號STB、串行時鐘信號CLK都在這個芯片上。第8腳:GND,電源地。

第16腳:VCC,電源正極。

第14腳:DATA,串行數(shù)據(jù)輸入口,顯示數(shù)據(jù)由此進入,必須有時鐘信號的配合才能移入。

第13腳:EN,始能口,當該引腳上為“1”時QA~QH口全部為“1”,為“0”時QA~QH的輸出由輸入的數(shù)據(jù)控制。

第12腳:STB,鎖存口,當輸入的數(shù)據(jù)在傳入寄存器后,只有供給一個鎖存信號才能將移入的數(shù)據(jù)送QA~QH口輸出。

第11腳:CLK,時鐘口,每一個時鐘信號將移入一位數(shù)據(jù)到寄存器。由于要顯示64*32個單元,必須采用74HC595級聯(lián)的方式來實現(xiàn),本設計兩片74HC595列驅(qū)動模塊級聯(lián)如下圖3.6所示:圖3.6兩片74HC595級聯(lián)3.7行驅(qū)動模塊32*64點陣屏共用16片138級聯(lián),通過總線驅(qū)動芯片74LS254驅(qū)動行/列信號,從總線上的低4位輸出的行號經(jīng)兩片138級聯(lián)后形成4/16線譯碼器后生成16條行選信號,再經(jīng)過驅(qū)動管驅(qū)動對應的行線。一條線上要帶動32列的LED燈同時發(fā)光時,按每一LED器件15MA電流計算,32個LED同時發(fā)光時,需要480MA的電流,選用三極管8550作為驅(qū)動管可以滿足要求。74LS138為3線—8線譯碼器,其工作原理為:當一個選通端(E1)為高電平,另外兩個選通端E2和E3為低電平時,可將地址端(A0、A1、A2)的二進制編碼在Y0至Y7對應的輸出端以低電平譯出,當數(shù)據(jù)超過8位之后,電平拉高后可對16數(shù)據(jù)操作。四片級聯(lián)后的138電路如下圖3.7所示:圖3.7四片74HC138級聯(lián)4系統(tǒng)軟件設計4.1顯示驅(qū)動程序顯示驅(qū)動程序在進入中斷后,首先要對定時器T0重新賦值,以保證顯示刷屏新率的穩(wěn)定,1/32掃描顯示屏的刷新率(幀頻)計算公式如下:刷新率(幀頻)=(式4.1)溢出率(式4.2)其中為fosc晶振頻率[9],t0為定時器T0初值(工作在32位定時器模式)。由公式可知,顯示屏刷頻新率由定時器T0的溢出率和單片機的晶振頻率決定,因此,我們調(diào)試時首先選定晶振頻率,然后給定不同的初值T0,只要能獲得24MHz以上的刷新頻率,就能連續(xù)穩(wěn)定的顯示,而且刷新率越高,顯示越穩(wěn)定,但會過多的占用CPU時間,實驗證明,24MHz晶振時刷新率達到50MHz以上,目測畫面基本無閃爍發(fā)生。4.2漢字字模的提取方法l6*16點陣漢字字庫可以在中文操作軟件(UCDOS)中找到現(xiàn)成的文件。一般漢字字庫均符合國家標準GB2312-80的規(guī)定。在漢字系統(tǒng)中使用機內(nèi)碼形式存儲漢字,國標碼的最高位置l作為漢字的機內(nèi)碼。而國標碼由兩個字節(jié)組成,其中高字節(jié)表示區(qū),低字節(jié)表示位。國標碼和區(qū)位碼都有94個區(qū),每個區(qū)又都有94個位。1-9區(qū)為圖形區(qū),10-15區(qū)未規(guī)定,16-87區(qū)存放一、二級漢字庫。國標碼和區(qū)位碼的關(guān)系是:國標碼高字節(jié)=區(qū)碼+20H;國標碼低字節(jié)=位碼+20H。所以,機內(nèi)碼與國標碼和區(qū)位碼的關(guān)系是:機內(nèi)碼高字節(jié)=國標碼高字節(jié)+80H=區(qū)碼+A0H;機內(nèi)碼低字節(jié)=國標碼低字節(jié)+80H=位碼+A0H。字模代碼按照區(qū)位碼的順序在字庫中以二進制格式存儲,每個漢字占用32個字節(jié)。因此只要找到漢字代碼的起始位置,就可正確提取漢字點陣信息。對于不同的字庫,漢字代碼起始位置的計算方法可能存在差異,例如HZK16若以ADDRESS表示首地址,Q表示區(qū)碼,W表示位碼,經(jīng)分析和實踐得出HZK16中漢字首地址計算公式為:ADDRESS=32×[(Q-1)×94+(w-1)](式4.3)在VB.NET中,獲取漢字區(qū)位碼可以用ASC()函數(shù)和HEX()函數(shù),函數(shù)ASC()返回一個Integer數(shù)據(jù)[10],代表字符串中首字母的字符代碼。HEX()函數(shù)返回代表十六進制數(shù)值的字符串。當漢字作為ASC()函數(shù)的參數(shù)時,返回的是漢字機內(nèi)碼,經(jīng)HEX()函數(shù)轉(zhuǎn)換即可得到漢字機內(nèi)碼的十六進制數(shù),再通過公式就可以得到漢字的首地址,有了漢字的首地址再從字庫中提取漢字代碼,而經(jīng)過擴展取兩次字模得到32*64的點陣字模。4.3程序流程圖顯示屏的程序流程圖如下所示:程序初始化程序初始化中斷程序初始化中斷程序初始化傳入?yún)?shù)為移動速度傳入?yún)?shù)為移動速度左移或者閃爍顯示是否顯示完 N串口發(fā)送顯示命令 Y串口發(fā)送顯示命令 將顯示緩存送顯示屏顯示,掃描32行 將顯示緩存送顯示屏顯示,掃描32行 圖5.2程序流程圖首先程序輸入進來的時候進行初始化,然后接著中斷程序初始化,將中斷配置成需要的模式,用戶就可以實現(xiàn)初始配置的功能,然后用if語句進行判斷,如果判斷為正確就傳入?yún)?shù)為移動速度,設定顯示所需要的參數(shù),如果參數(shù)不正確顯示就會有錯誤,如果不是就執(zhí)行左移或閃爍命令,再進行串口發(fā)送顯示命令,用于配置相應顯示的功能,RAM將顯示緩存輸入到顯示屏進行掃描顯示,顯示用戶配置的信息,掃描完成后程序返回中斷程序初始化進行下一次的掃描顯示。具體的程序代碼如下所示:voidSend_one_line(void){chars;ucharTEMP0;ucharTEMP1;uchari;ucharinc;bite1,e2;if(col<8)inc=0;//判斷是否閃爍顯示if(8<=col&&col<16)inc=1;if(16<=col&&col<24)inc=2;if(24<=col&&col<32)inc=3;for(s=0+inc;s<=8+inc;s++){TEMP0=Combine_2byte(BUFFDOWN[s],BUFFDOWN[s+1]);TEMP1=Combine_2byte(BUFF__UP[s],BUFF__UP[s+1]);for(i=0;i<8;i++){e1=~(TEMP1>>i)&0x01;//取出最高位e2=~(TEMP0>>i)&0x01;//取出最高位R1=e1;R2=e2;CLK=0;CLK=1;//移位時鐘}}}4.4顯示子程序開始查找顯示漢字數(shù)據(jù)放入RAM中開始查找顯示漢字數(shù)據(jù)放入RAM中將數(shù)據(jù)串行傳入TPIC6B595行掃描32行是否掃完返回圖5.3顯示子程序流程首先初始化,將查找顯示漢字數(shù)據(jù)導入RAM中,然后將RAM中的漢字編碼數(shù)據(jù)傳入TPIC6B595中,先進行上半屏的16行掃描,再接著把數(shù)據(jù)裝載入下半屏的16行進行掃描,用while語句判斷是否掃描完成,當32行全部掃完時返回子程序進行下一次掃描。具體程序代碼如下所示:voidLoad_one_line(void){BUFF__UP[0]=Table[word][disrow*4+0];//裝載上半數(shù)據(jù)串行放在TPIC6B59中BUFF__UP[1]=Table[word][disrow*4+1];BUFF__UP[2]=Table[word][disrow*4+2];BUFF__UP[3]=Table[word][disrow*4+3];BUFF__UP[4]=Table[word+1][disrow*4+0];BUFF__UP[5]=Table[word+1][disrow*4+1];BUFF__UP[6]=Table[word+1][disrow*4+2];BUFF__UP[7]=Table[word+1][disrow*4+3];BUFF__UP[8]=Table[word+2][disrow*4+0];BUFF__UP[9]=Table[word+2][disrow*4+1];BUFF__UP[10]=Table[word+2][disrow*4+2];BUFF__UP[11]=Table[word+2][disrow*4+3];BUFF__UP[12]=Table[word+3][disrow*4+0];BUFF__UP[13]=Table[word+3][disrow*4+1];BUFF__UP[14]=Table[word+3][disrow*4+2];BUFF__UP[15]=Table[word+3][disrow*4+3];BUFF__UP[16]=Table[word+4][disrow*4+3];BUFFDOWN[0]=Table[word][64+disrow*4+0];//裝載下半屏數(shù)據(jù)BUFFDOWN[1]=Table[word][64+disrow*4+1];BUFFDOWN[2]=Table[word][64+disrow*4+2];BUFFDOWN[3]=Table[word][64+disrow*4+3];BUFFDOWN[4]=Table[word+1][64+disrow*4+0];BUFFDOWN[5]=Table[word+1][64+disrow*4+1];BUFFDOWN[6]=Table[word+1][64+disrow*4+2];BUFFDOWN[7]=Table[word+1][64+disrow*4+3];BUFFDOWN[8]=Table[word+2][64+disrow*4+0];BUFFDOWN[9]=Table[word+2][64+disrow*4+1];BUFFDOWN[10]=Table[word+2][64+disrow*4+2];BUFFDOWN[11]=Table[word+2][64+disrow*4+3];BUFFDOWN[12]=Table[word+3][64+disrow*4+0];BUFFDOWN[13]=Table[word+3][64+disrow*4+1];BUFFDOWN[14]=Table[word+3][64+disrow*4+2];BUFFDOWN[15]=Table[word+3][64+disrow*4+3];BUFFDOWN[16]=Table[word+4][64+disrow*4+3];}while(1){ for(col=0;col<32;col++)//循環(huán)32次,點亮并移動一個漢字,步進是一位5系統(tǒng)調(diào)試與分析5.1硬件調(diào)試測試方法:在最低幀率[11]和最高幀率設置下,用秒表統(tǒng)計出各個移動速度設置值下的,每秒移動的水平點陣數(shù)。單位為點/秒。測試儀器:秒表、肉眼測試結(jié)果:如表1.1所示。表1.1秒表、肉眼測試結(jié)果下位機刷新率設置為1下位機刷新率設置為6下位機左移速度設置實際移動速度(點/秒)下位機左移速度設置實際移動速度(點/秒)1315252838311410414512517614621通過上面指標的分析,基本上達到本設計對速度的要求。選用高頻晶振刷新速率越高,漢字閃爍越小,在同等條件下選用24M晶振和選用12M晶振的,前者比后者要更穩(wěn)定一些,存儲大量漢字編碼時必須采用外部的存儲器來實現(xiàn)漢字的存儲。5.2軟件調(diào)試軟件部分需要調(diào)試的主要有顯示屏刷新頻率及顯示效果兩部分。顯示屏刷新率由定時器T0的溢出率和單片機的晶振頻率決定,表1.2給出了實驗調(diào)試時采用的頻率及其對應的定時器T0初值表1.2顯示平刷新率與T0初值關(guān)系表(24MHz晶振)刷新率255062.57585100120T0初值0xec780xf63c0xf8300xf97e0xfa420xfb1e0xfbee從理論上來說,選用高頻晶振刷新速率越高,漢字閃爍越小,在同等條件下選用24M晶振和選用12M晶振的,前者比后者要更穩(wěn)定一些,24M以上的刷新頻率就能看到穩(wěn)定的連續(xù)的顯示,刷新率越高,顯示越穩(wěn)定,同時刷新頻率越高,顯示驅(qū)動程序占用的CPU時間越多。試驗證明,在目測條件下刷新頻率40Hz一下的畫面看起來閃爍較嚴重,刷新頻率50Hz以上的已基本察覺不出畫面的閃爍,刷新頻率達到85Hz以上時再增加畫面閃爍沒有明顯的改善。這個方案設計的64*32的點陣LED圖文顯示屏,電路簡單,成本較低,且較容易擴展成更大的顯示屏;顯示屏各點亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串擾;可用靜止、移入移出等多種顯示方式顯示圖形或文字。6總結(jié)通過本次LED電子點陣驅(qū)動的設計與制作,從總體方案的確立到各個模塊的完成及最后系統(tǒng)的聯(lián)調(diào),無論是我的理論水平、實際動手能力還是軟件編程能力都有了很大程度的提升。對于一個設計的完成,首先要有一個明確的可行性實施方案;其次,對該方案的具體實現(xiàn)要以理論計算為支撐,聯(lián)合實際問題逐步完成;第三,對于電子顯示屏硬件的實現(xiàn),要充分考慮顯示屏的電路布局和選擇適當元器件才能實現(xiàn)最佳方案,如連線應盡可能短。第四,遇到問題,要逐步排查分析。當所有的接線盒軟件等都就位以后,打開電源,將寫好的成熟下載到單片機以后,沒有看到顯示屏有任何反應。于是便斷電先檢查供電電源與信號線是否連接。檢查到連接正常以后,再檢查測試卡是否以識別接口,測試卡紅燈閃動則沒有識別,檢查燈板是否與測試卡同電源地燈板接口有信號與地短路導致無法識別接口。問題果然就出現(xiàn)在這里,按正常的標準接好以后,顯示屏能夠正常顯示“歡迎光臨”四個大字。從設計之初就確定了參照大屏幕顯示屏的實現(xiàn)方法和實際情況設計一款小屏幕的LED點陣顯示屏。在查閱了大量的大屏幕顯示屏資料后確定了題目的設計方案。整個設計采用STC12C5A60S2做核心控制器,采用四片74LS138級聯(lián)控制行選,和75LS595級聯(lián)控制列選,74LS245作為總線驅(qū)動器來控制行/列的控制端口實現(xiàn)點陣屏顯示漢字。在實現(xiàn)這一設計的過程中所遇到的問題和困難給我留下了寶貴的經(jīng)驗和深刻教訓。雖然畢業(yè)設計結(jié)束了,但學習還會繼續(xù)。我相信通過此次設計所得到的知識、心得、經(jīng)驗乃至感受都會讓我在以后的日子里受益匪淺。參考文獻[1]高吉祥.模擬電路設計[M].北京:電子工業(yè)出版社,2007:25~83.[2]高吉祥.高頻電路設計[M].北京:電子工業(yè)出版社,2007:156~182.[3]高吉祥.全國大學生電子設計競賽培訓系列教程[M].北京:電子工業(yè)出版社,2011:45~69.[4]高吉祥.基本技能訓練與單元電路設計[M].北京:電子工業(yè)出版社,2007:13~44.[5]高吉祥.全國大學生電子設計競賽培訓系列教程數(shù)字系統(tǒng)與自動控制控制系統(tǒng)的設計[M].北京:電子工業(yè)出版社,2007:28~50.[6]譚浩強.C程序設計[M].北京:清華大學出版社,2007:48~72.[7]求是科技主編.單片機典型外圍器件及應用實例[M].北京:人民郵電出版社,2006:68~94.[8]付家才.單片機實驗與實踐[M].北京:高等教育出版社,2006:76~85.[9]郭天祥.新概念51單片機C語言教程:入門提高.開發(fā).拓展.全攻略[M].北京:電子工業(yè)出版社,2009.1:92~175.[10]潘永雄.沙河.電子線路CAD使用教程-西安:西安電子科技大學出版社[M].2007.7:30~97.[11]江思敏.PCB和電磁兼容設計[M].北京:機械工業(yè)出版社,2006:67~124.附錄附錄A實物顯示效果圖:圖A實物效果顯示圖附錄B主程序#include<reg52.H>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#define_Nop()_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()sbitHC138_A=P1^0; sbitHC138_B=P1^1;sbitHC138_C=P1^2;sbitHC138_D=P1^3; //138,4,5sbitHC138_OE=P0^1; //1386sbitHC595_LAT=P1^6;//59512sbitHC595_CLK=P1^7;//59511sbitHC595_RD2=P3^5;//59514sbitHC595_RD=P1^5;//59514unsignedcharr_data[8],g_data[8];unsignedchark,t,m,n,p,state;unsignedcharcodehanzi[17][32]={ //二維數(shù)據(jù)/*--文字:歡--*//*--宋體24;此字體下對應的點陣為:寬x高=16x32--*/0x09,0x00,0x09,0x00,0x09,0x00,0x11,0xFE,0x12,0x80,0x32,0x80,0x34,0x80,0x50,0xF8,0x90,0x80,0x10,0x80,0x10,0x80,0x10,0xFC,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,/*--文字:迎--*//*--宋體24;此字體下對應的點陣為:寬x高=16x32--*/0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0x00,0x00,0x7C,0x7C,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x7C,0x7C,0x44,0x44,/*--文字:光--*//*--宋體24;此字體下對應的點陣為:寬x高=16x32--*/0x00,0x00,0x3F,0xFC,0x20,0x04,0x20,0x04,0x3F,0xFC,0x22,0x20,0x22,0x20,0x2F,0xF8,0x22,0x20,0x22,0x20,0x3F,0xFE,0x24,0x88,0x24,0x50,0x45,0x30,0x46,0x0E,0x84,0x00,/*--文字:臨--*//*--宋體24;此字體下對應的點陣為:寬x高=16x32--*/0x04,0x40,0x24,0x40,0x24,0x7C,0x24,0x90,0x25,0x08,0x04,0x00,0x1F,0xF0,0x10,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x12,0x90,0x02,0x80,0x04,0x84,0x18,0x84,0x60,0x7C,//0x11,0x00,0x11,0x00,0x11,0x00,0x23,0xFC,0x22,0x04,0x64,0x08,0xA8,0x40,0x20,0x40,0x21,0x50,//0x21,0x48,0x22,0x4C,0x24,0x44,0x20,0x40,0x20,0x40,0x21,0x40,0x20,0x80,//你};voidDelay(ucharus)//5,7,9{while(--us);}//delaymsvoidDelayMS(uintiMs){uinti,j;for(i=0;i<iMs;i++)for(j=0;j<65;j++)Delay(1);}voidwrite595(unsignedcharrdd,gdd){ unsignedchari; for(i=0;i<8;i++) { HC595_RD=rdd&0x80; rdd=rdd<<1; HC595_RD2=gdd&0x80; gdd=gdd<<1; HC595_CLK=1; HC595_CLK=0; }}voidmain(void){ n=0; state=0; while(1) { for(p=0;p<64;p++) { for(t=0;t<16;t++) { HC595_LAT=0; HC595_CLK=0; HC138_OE=1; if(state==0) { for(k=0;k<4;k++) { r_data[2*k]=0xff-hanzi[0+k][t*2]; r_data[2*k+1]=0xff-hanzi[0+k][t*2+1]; g_data[2*k]=0xff-hanzi[4+k][t*2]; //只有左半邊 0xff是高電平點亮必須加0XFF,看到 //看到的是全亮,字形不亮 g_data[2*k+1]=0xff-hanzi[4+k][t*2+1];//只有右半邊 } } elseif(state==1) { for(k=0;k<4;k++) { r_data[2*k]=0xff-hanzi[7+k][t*2]; r_data[2*k+1]=0xff-hanzi[7+k][t*2+1]; g_data[2*k]=0xff-hanzi[0+k][t*2]; //只有左半邊 0xff是高電平點亮必須加0XFF,看到 g_data[2*k+1]=0xff-hanzi[0+k][t*2+1];//看到的是全亮,字形不亮 } } for(k=0;k<8;k++) //寫595里面的內(nèi)容屏蔽的話屏全亮 { write595(r_data[k],g_data[k]); } HC138_OE=0; //下拉 HC595_LAT=1;//STB HC595_LAT=0;//STB HC595_CLK=0;//消影 HC138_A=t&0x01; HC138_B=t&0x02; HC138_C=t&0x04; HC138_D=t&0x08; Delay(100); //HC138_OE=1; } //endfort }//endforp //state=state+1; if(state>1)state=0; } //endwhile}目錄TOC\o"1-3"\f\h\u15739第一章總論 452391.1項目概述 4108251.2項目提出的背景和必要性 4177201.3項目建設的可行性分析 166440第二章項目依據(jù)和范圍 20HYPERLINK\l_T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論