LED點陣顯示屏畢業(yè)設計完稿_第1頁
LED點陣顯示屏畢業(yè)設計完稿_第2頁
LED點陣顯示屏畢業(yè)設計完稿_第3頁
LED點陣顯示屏畢業(yè)設計完稿_第4頁
LED點陣顯示屏畢業(yè)設計完稿_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE0河南理工大學畢業(yè)設計(論文)說明書PAGE42基于單片機的LED點陣顯示屏設計2010年6月17號

摘要本設計使用89C51單片機作為主要控制模塊,利用外圍電路來驅動16×16LED點陣顯示屏。利用89C51單片機本身具有的功能,實現(xiàn)單片機與上位機間的數(shù)據(jù)傳輸及存儲,并利用軟件程序進行顯示內(nèi)容的不同變化,LED點陣顯示屏用途較為廣泛,可以方便的應用于各種公共場所公告,場所的視覺美化,因此本設計具有很強的實用性。本設計所做的LED點陣顯示屏是以動態(tài)掃描的方式,同時顯示16×16點陣屏,并通過上位機軟件修改顯示內(nèi)容和顯示效果。采用軟件編程技術,把字符內(nèi)碼存儲在Flash存儲器上。設計中采用GB2312標準字庫,支持國標字符和ASCII標準字符的顯示。因為采用串行通信傳輸方式,使本系統(tǒng)的可擴展性得到提升,便于以后多個顯示單元的級聯(lián)。并且闡述了LED動態(tài)顯示的過程,以及硬件電路的設計、計算和軟件的算法。關鍵詞:單片機;LED點陣顯示屏 ;串行通信

AbstractThisdesignneeds89C51microcontrollerasthemaincontrolmodule,usingrelativelysimpleexternalcircuittodrivea16*16LEDdotmatrixdisplay.89C51microcontrolleritselfusingavarietyoffunctions,itcanbeeasilyachievedbetweenMCUandhostcomputerdatatransmissionandstorage,andcaneasilyusethesoftwaretodisplaythedifferentcontentLEDdotmatrixdisplayusesmoreextensiveandcanbeeasilyappliedtoallpublicplacesandplacesofvisuallandscape,sothisdesignishighlypractical.ThedesignofLEDdotmatrixdisplayisdonebywayofdynamicscanning,alsoshowes16*16dotmatrixdisplay,andmodifythedisplaythroughthePCsoftware,anddisplaysuchcontent.Usingsoftwareprogrammingtechniques,thecharacterswithinthecodestoredinflashmemory.DesignusesstandardGB2312fontthatsupportsalltheGBcharactersandASCIIstandardcharacterdisplay.Becausetheuseofserialtransmission,sothescalabilityofthesystembeupgradedtofacilitatefuturecascadingmultipledisplayunits.ThisprincipleofstartingfromtheLEDdisplay,LEDdynamicdisplaydescribedindetailtheprocessandhardwaredesign,computingandsoftwarealgorithms.Keyword: MCU;LEDdotmatrixdisplay;SerialCommunication

目錄TOC\o"1-3"\h\u11831緒論 5157151.1選題目的和意義 5199621.2國內(nèi)外研究現(xiàn)狀 5128631.3設計任務 6140692方案論證 7284392.1設計方案一 7139992.2設計方案二 8140472.3方案比較 8318933硬件電路設計 9141013.1系統(tǒng)工作原理 924003.2單片機最小系統(tǒng) 9243313.2.1單片機選型 9170443.2.289C51單片機最小系統(tǒng) 10194053.3顯示驅動電路 11123763.3.1行驅動驅動芯片 11284203.3.2列驅動電路設計 13264413.4顯示驅動電路 15138353.5存儲器與89C51連接電路設計 16260503.5.1存儲器選擇 16313813.6上位機與下位機通信電路 17103403.6.1上下位機通信標準 1744983.6.2通信部分設計 1761193.6.3通信電平轉換芯片選擇 18128583.6.4通信電路設計 19170233.7供電電路設計 21323533.7.1供電電路設計圖 2195614軟件設計 23323894.1軟件設計思路 23120224.1.1算法實現(xiàn) 24106094.2主程序流程圖 26296894.3部分主程序設計 27290074.4串行中斷程序 29279004.4.1串行中斷流程圖 2989164.4.2串行中斷程序 29150714.5移位子程序 32269994.5.1移位子程序流程圖 32202744.5.2移位子程序 3321544.6延時子程序 3383815系統(tǒng)調試 35169615.1硬件調試 35150805.2軟件調試 3590396總結與展望 3630008致謝 3760317參考文獻 38317508附錄 39

緒論選題目的和意義LED(LightEmittingDiodePanel)電子顯示屏是由幾十個到幾十萬個半導體發(fā)光二極管構成的像素點集(Pixels),按矩陣均勻排列所構成。利用不同的半導體材料可以制造顯示不同色彩的LED。目前應用最廣的是紅色、綠色、黃色。LED顯示屏是一種控制半導體發(fā)光二極管的亮滅來顯示文字、符號、圖像、視頻信號等各種信息的屏幕。LED顯示屏分為圖文顯示屏和條狀顯示屏,均由LED矩陣塊組成,只是屏幕形狀不同。圖文顯示屏可與計算機同步顯示漢字、英文文字和圖形;而條狀顯示屏則適用于小容量的文字符號信息顯示。LED顯示屏的優(yōu)點是其像素單元是主動發(fā)光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩(wěn)定等優(yōu)點。LED點陣顯示屏是一種新興的顯示屏使用的材料,它不僅是節(jié)能環(huán)保的產(chǎn)品,而且其發(fā)光效率很高,使用壽命長,環(huán)境要求較低。除此之外,它還有豐富的組合方式。LED點陣顯示屏可以顯示數(shù)字,文字或者符號圖形。國內(nèi)外研究現(xiàn)狀LED是20世紀六十年代以來發(fā)展起來的一種半導體顯示器件,七十年代,隨著半導體材料合成技術、單晶制造技術和P-N結形成技術的研究不斷突破,取得重大進展,發(fā)光二極管在發(fā)光顏色、亮度、壽命等性能得以提高并迅速進入大規(guī)模批量化和實用化。進入20世紀八十年代后,LED在發(fā)光波長范圍和性能方面大大提高,開始作為平板顯示產(chǎn)品的制作材料。對于LED來說,從制造技術上來講,LED產(chǎn)品本身比傳統(tǒng)燈具要復雜許多,它涵蓋了半導體、燈具結構和散熱材料等多個行業(yè),是一個跨行業(yè)的產(chǎn)品。LED產(chǎn)業(yè)鏈較長,從上游的襯底材料、外延、芯片到器件封裝以及應用,涵蓋了半導體工業(yè)和照明工業(yè),是各學科交叉融合的產(chǎn)業(yè)。從國內(nèi)的LED產(chǎn)業(yè)布局來看,我國LED產(chǎn)業(yè)發(fā)展極不平衡。我國的芯片制造技術,封裝技術相比較應用技術來說,和國外的廠商差距很大。國內(nèi)LED企業(yè)在外延片、芯片等關鍵的上游環(huán)節(jié)缺乏話語權。目前國外的企業(yè)掌握著外延片的生產(chǎn),國內(nèi)企業(yè)沒有一家能夠實現(xiàn)外延片的量產(chǎn)。芯片方面,國外企業(yè)已經(jīng)在大功率高端領域方面技術領先。而國內(nèi)企業(yè)主要是在在小功率中低端領域發(fā)展,技術和國外有一定的差距。LED顯示屏的未來的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。設計任務設計并制作一個單片機為控制核心的單色LED點陣顯示系統(tǒng),系統(tǒng)實現(xiàn)的功能及要求如下:(1)顯示圖形畫面,清晰無閃爍;(2)顯示漢字;(3)漢字移動的變化功能;

方案論證設計方案一圖2-1方案一設計框圖此方案主要由單片機作為重要的控制部件外,還包括外部數(shù)據(jù)存儲器、上位機與下位機之間的通信電路。此方案框圖如圖2-1所示,采用單片機作為中央控制器,通過通信電平轉換電路完成與上位機的通信,實現(xiàn)對顯示屏顯示數(shù)據(jù)信息的傳送。數(shù)據(jù)存儲器使用一片F(xiàn)LASH存儲器。此Flash閃存容量要足夠大,可以用于存儲漢字的點陣信息??刂破髋c計算機的連接根據(jù)通信距離的遠近選用RS-232標準總線或者距離再遠可以選擇RS485總線。因為上位機與下位機的通信電平要求不同,所以要有通信電平轉換電路實現(xiàn)雙方的通信。此方案優(yōu)點是硬件電路較為簡單,但是軟件設計需要漢字點陣算法設計。設計方案二圖2-2方案二設計框圖此方案是LED點陣顯示系統(tǒng)由上位機、RS-232通訊電路、單片機控制電路和LED點陣顯示電路構成,主要由單片機作為中間聯(lián)系的紐帶,其系統(tǒng)結構框圖如上圖所示。本電路采用串口通信電路,上位機向單片機控制電路發(fā)送漢字或字符內(nèi)碼;控制電路存儲該內(nèi)碼并在字庫中查找相應漢字或字符點陣,然后向驅動電路發(fā)送行列選通信號;顯示驅動電路負責根據(jù)行列選通信號,向指定LED發(fā)光器件提供驅動電流,然后LED顯示屏顯示所要求的文字。方案比較由于字庫查詢電路與單片機之間的通信設計起來比較復雜,且字庫中所有的文字點陣信息不一定包含要顯示的文字,所以選用軟件算法計算出文字點陣信息然后直接通過單片機較為合適。上位機的功能較為強大,可以能實現(xiàn)的此項功能,所以用上位機和單片機配合的方案更為合適,通過比較采用方案一較為合適。

硬件電路設計系統(tǒng)工作原理采用以AT89C51單片機為核心芯片的電路來實現(xiàn),主要由A89C51芯片及其構成的外圍電路,比如時鐘電路、復位電路和行列顯示驅動電路,16×16LED點陣屏和上位機與89C51的通信電路組成。其中,時鐘電路由AT89C51的的時鐘端(XTALl及XTAL2)以及12MHz晶振、兩個電容組成,采用片內(nèi)時鐘振蕩方式。復位電路采用簡易的開關按鍵上電復位電路,其主要由兩個電阻,電容,開關組成,然后接至AT89C51的RST復位輸入端。LED點陣顯示系統(tǒng)的顯示方式:有靜態(tài)顯示和動態(tài)顯示兩種。本設計采用動態(tài)顯示方式,動態(tài)顯示采用掃描的方式工作,其原理是由峰值較大的窄脈沖電壓驅動,從上到下逐次不斷地對顯示屏的各行進行選通,同時又向各列送出表示圖形或文字信息的列數(shù)據(jù)信號,反復循環(huán)以上操作。這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續(xù)的幾幀畫面高速的循環(huán)顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面,就可無閃爍的顯示文字信息了。單片機最小系統(tǒng)單片機選型選擇單片機型號應從市場貨源,單片機性能,研制周期,本人是否熟悉該類型單片機幾個方面因素來綜合考慮。AT89C51是一種帶4KB閃爍可編程可擦除只讀存儲器(即FPEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進行1000次寫/擦循環(huán),數(shù)據(jù)保留時間為10年。它是一種高效微控制器(MCU),與早期的8位MCS-51單片機相比,其處理效率要提高很多。為很多控制系統(tǒng)提供了一種靈活性高且價廉的方案。因此,本設計將89C51作為選擇對象。89C51單片機最小系統(tǒng)時鐘電路89C51單片機使用外部晶振提供時鐘頻率,電路如圖3-1所示,用12MHz晶振的作為時鐘源。利用單片機內(nèi)部的振蕩器,然后在引腳XTAL1(18腳)和XTAL2(19腳)兩端接晶振,就構成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路,外接晶振時,晶振兩端的電容一般選擇為30PF左右;這兩個電容對頻率有微調的作用,晶振的頻率范圍可在1.2MHz-12MHz之間選擇。根據(jù)單片機常用最小系統(tǒng)典型電路,其時鐘電路的參數(shù):晶振選擇為12MHz,濾波電容選擇為22PF。圖3-1時鐘電路復位電路復位電路在89C51單片機復位引腳RST出現(xiàn)兩個機器周期以上的高電平,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。根據(jù)應用的要求,開關復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。上電后,由于電容的充電的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關復位的操作。單片機復位后的狀態(tài):單片機的復位操作使單片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC地址為0000H,這表明程序從0000H地址單元開始執(zhí)行。根據(jù)單片機典型電路,取其參數(shù)值如下:電阻均為10K,極性電容為10uF圖3-2復位電路顯示驅動電路行驅動驅動芯片AT89C51單片機有四個8位的I/O口,如果都采用并行輸出,顯然不能滿足要求采用掃描方式進行顯示時,每行有一個行驅動器。因此,本設計中的行掃描驅動采用并口輸出,而行掃描驅動采用串口輸出。行掃描驅動由于16×16點陣顯示器有16行,為充分利用單片機的I/O接口資源,本電路中在89C51和顯示驅動電路之間加入一個4-16線譯碼器74LS154,其4個輸入端是一個16進制數(shù)碼,解碼輸出為低電平掃描信號由74LS154行譯碼器給出行選通信號,74LS154的A、B、C、D四腳為輸入端。就會形成16種不同的輸入狀態(tài),分別為0000~1111,然后使每種狀態(tài)只控制一路輸出,即會有16路輸出。如果將一行16點全部點亮,普通二極管發(fā)光額定電流大概是10mA,則通過74LS154的電流將達160mA,而實際上,74LS154譯碼器提供不了足夠的吸收電流來同時驅動16個LED同時點亮,因此,應在74LS154每一路輸出端與16×16點陣顯示器對應的每一行之間用一個功率放大器件來將電流信號放大,本設計選用的是達林頓管TIP127。這樣,74LS154某一輸出腳為低電平時,對應的三極管發(fā)射極為高電平,從而使點陣顯示器的對應行也為高電平。從第一行開始,按順序依次對各行進行掃描(把該行與電源的一端接通)。另一方面,根據(jù)各列鎖存的數(shù)據(jù),確定相應的列驅動器是否將該列與電源的另一端接通。接通的列,就在該行該列點燃相應的LED;未接通的列所對應的LED熄滅。當一行的掃描持續(xù)時間結束后,下一行又以同樣的方法進行顯示。全部的各行都掃描過一遍之后(一個掃描周期),又從第一行開始下一個周期的掃描。只要一個掃描周期的時間比人眼1/25秒的暫留時間短,就不會感覺出閃爍現(xiàn)象。行驅動管參數(shù)計算假設條屏使用在極端情況下,每一行的所有LED全部點亮。每行共16個LED點陣。普通LED的安全工作電流在5~20mA之間,為獲得較高亮度,又要兼顧其工作壽命。本設計中,每只LED工作電流取10mA。如此可知,當一行全點亮的時候總電流:;管耗:;89C51單片機的每個I/O口能獨立承受大概15mA的灌電流,也即是能夠給共射驅動電路基極提供15mA的偏置電流。根據(jù)上述集電極電流和基極電流的比值,可計算出行掃描驅動三極管的直流電流放大系數(shù)β.直流電流放大系數(shù):;對于基極偏流電阻,則起到對基極15mA偏置電流限流作用:基極限流電阻:;根據(jù)上述計算,綜合其成本、封裝、散熱等因素考慮。本設計最終采用TIP127功率管。列驅動電路設計點陣顯示列驅動采用串行傳輸?shù)姆椒?,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅動器,在硬件方面是無疑是十分經(jīng)濟的。但是,串行傳輸過程時間較長,數(shù)據(jù)要經(jīng)過并行到串行和串行到并行兩次數(shù)據(jù)轉換。首先,單片機從存儲器中讀出的8Bit并行數(shù)據(jù)要通過并串變換,按順序一位一位地輸出給列驅動器。與此同時,列驅動器中每一列都把當前數(shù)據(jù)傳向后一列,并從前一列接收新數(shù)據(jù),一直到全部列數(shù)據(jù)傳輸完為止。只有當一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進行顯示。這樣,對于一行的顯示過程就可以分解成列數(shù)據(jù)準備(傳輸)和列數(shù)據(jù)顯示兩個部分。但是,對于串行傳輸方式來說,列準備時間可能會很長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,可能影響LED的亮度。解決串行傳輸中列數(shù)據(jù)準備和列數(shù)據(jù)顯示的時間矛盾問題,可以采用重疊處理方法。即在顯示本行列數(shù)據(jù)的同時,準備下一行的列數(shù)據(jù)。為了達到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有鎖存功能。經(jīng)上述分析,可以歸納出列驅動器電路應具有的主要功能:對列數(shù)據(jù)準備來說,它應實現(xiàn)串入并出的移位功能;對于列數(shù)據(jù)顯示來說,應具有并行鎖存功能。由74HC595組成的列驅動器,列掃描驅動本系統(tǒng)場掃描驅動電路的設計可用來作為數(shù)據(jù)鎖存。這樣,本行已準備好的數(shù)據(jù)打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一行的列數(shù)據(jù),而不會影響本行的顯示。串入并出的通用集成芯片74HC595恰好能滿足這一要求。74HC595具有一個8Bit串入并出的移位寄存器和一個8Bit輸出鎖存器的結構,而且移位寄存器和輸出鎖存器的控制是各自獨立的。74HC595是一個八位串行輸入三態(tài)并行輸出的移位寄存器,其管腳見圖3-3所示,其中SER是串行數(shù)據(jù)的輸入端,RCLK是存儲寄存器的輸入時鐘,RSCLK是移位寄存器的輸入時鐘,Q'H是串人數(shù)據(jù)的輸出,E是對輸人數(shù)據(jù)的輸出使能控制,Q0~Q7為串入數(shù)據(jù)的并行輸出。圖3-374HC595引腳圖本設計是由2片74HC595組成16列的驅動,由16個列驅動器驅動16列。第一片列驅動器的SER端連接單片機輸出的串行列顯示數(shù)據(jù),其Q7端連接下一片的SER端,各片均采用同樣的方法組成2片的級聯(lián)。各片相應的SRCLK、SRCLR、RCLK端分別并聯(lián),作為統(tǒng)一的串行數(shù)據(jù)移位信號、串行數(shù)據(jù)清除信號、和輸出鎖存器打入信號。這樣的結構,使得各片串行移位能把16列的顯示數(shù)據(jù)依次輸入到相應的依位寄存器輸出端。移位過程結束后,控制器輸出RCLK控制信號,16列數(shù)據(jù)一起寫入相應的輸出鎖存器。然后選通相應的行,該行的各列按照顯示數(shù)據(jù)的要求進行顯示。設計時列驅動電路。在實際結構中,一條行線上要帶動多列的LED進行顯示,負載較重。為此常把一條行線分成兩段,每段驅動一部分列,兩段中間再加驅動電路,由于本設計所帶的顯示行為16行,因此中間所加功率驅動電路較為簡單。為了使列驅動電路開通LED,還需在74HC595的后面加推動級,推動級可以選擇ULN2803芯片8路達林頓晶體管陣列。其實ULN2803可以認為是三極管放大電路的一個小型模塊。ULN2803為NPN晶體管集電極開路輸出電路,當74HC595輸出為高時,ULN2803的輸出為低電平(接地)。顯示驅動電路圖3-4顯示驅動電路存儲器與89C51連接電路設計存儲器選擇Flash存儲器29F040為片外數(shù)據(jù)存儲器,可用來存儲由上位機串口送來的點陣信息(此信息是通過軟件將圖像或文字轉換成與LED顯示屏的像素相對應的點陣信息)。由于29F040的容量為512KB,其芯片特點是29F040內(nèi)部由8個64KB的讀寫塊組成,可分塊進行讀、寫和擦除等操作),而AT89C51只能管理64KB的數(shù)據(jù)空間,因此29F040分成8頁,每頁64KB,其頁碼可由單片機的P3.2~P3.4來選擇管理,低八位地址A0到A7接到74LS373的D0到D7引腳,然后與89C51的P0.0到P0.7相連,F(xiàn)lash存儲器29F040的數(shù)據(jù)端D0到D7與74LS373的Q0到Q7相連后,再與89C51的P0.0到P0.7引腳相連。存儲器與89C51連接電路圖3-5存儲器與89C51連接電路上位機與下位機通信電路上下位機通信標準RS-232是串行數(shù)據(jù)接口標準,最初是由電子工業(yè)協(xié)會(EIA)制訂并發(fā)布的,RS-232在1962年發(fā)布,命名為EIA-232-E。作為工業(yè)標準,以保證不同廠家產(chǎn)品之間的兼容。RS-232標準只對接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎上用戶可以建立自己的高層通信協(xié)議。因此在視頻界的應用,許多廠家都建立了一套高層通信協(xié)議,或公開或廠家獨家使用,如Louth、Odetis協(xié)議是公開的,而ProLINK則是基于Profile上的。目前RS-232是PC機與通信工業(yè)中應用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。RS-232采取不平衡傳輸方式,即所謂單端通訊。收、發(fā)端的數(shù)據(jù)信號是相對于信號地。典型的RS-232信號在正負電平之間擺動,在發(fā)送數(shù)據(jù)時,發(fā)送端驅動器輸出正電平在+5~+15V,負電平在-5~-15V電平。當無數(shù)據(jù)傳輸時,線上電平為TTL,從開始傳送數(shù)據(jù)到結束,線上電平從TTL電平到RS-232電平再返回TTL電平。接收器典型的工作電平在+3~+12V與-3~-12V。由于發(fā)送電平與接收電平的差僅為2V至3V,所以其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點對點(即只用一對收、發(fā)設備)通訊而設計的所以RS-232適合本地設備之間的通信。通信部分設計通信協(xié)議是指通信雙方的一種約定。約定包括對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。因此,也叫做通信控制規(guī)程,或稱傳輸控制規(guī)程,它屬于ISO'SOSI七層參考模型中的數(shù)據(jù)鏈路層。串口參數(shù)定義本設計中采用的計算機與LED顯示屏接口,是目前普遍使的RS-232C標準的串行通信接口。其數(shù)據(jù)通信協(xié)議如下:串行口參數(shù)定義波特率:9600Bps;字符長度:1位起始位、8位數(shù)據(jù)位、1位停止位、校驗方式、無校驗。圖3-6串行口參數(shù)定義方式串口數(shù)據(jù)格式及命令計算機控制LED顯示屏的命令及點陣數(shù)據(jù)均以16進制表示,其數(shù)據(jù)包組成格式如下:表3-1串行口數(shù)據(jù)格式S1S2ACMTD1D2D3D4D5D6D7D8S1,S2:起始碼1,起始碼2,各為一字節(jié)約定為:55H,AAH;A:顯示屏的地址編碼,一個字節(jié),約定為:FFH,廣播方式;C:內(nèi)容總屏數(shù),一個字節(jié),范圍1~8;M:顯示模式,一個字節(jié),范圍0~7;T:各屏內(nèi)容停留時間,每屏一個字節(jié),字節(jié)數(shù)由總屏數(shù)確定;D1~D8:各屏點陣內(nèi)容,16*16=256字節(jié)通信電平轉換芯片選擇本設計就是利用MAXIM公司的單電源芯片MAX232來完成單片機TTL到RS-232C電平的轉換。MAX232是單電源雙RS-232C發(fā)送/接收芯片。它符合所有的RS-232C技術規(guī)范,只要單一+5V電源供電;片載電荷泵,具有升壓、電壓極性反轉能力,能夠產(chǎn)生+10V和-10V電壓V+、V-;低功耗,典型供電電流5mA;內(nèi)部集成2個RS-232C驅動器,內(nèi)部集成2個RS-232C接收器。采用單一+5V電源供電,外接只需4個電容,便可以構成標準的RS-232C通信接口,硬件接口簡單,所以被廣泛運用。表3-2MAX232的引腳排列及功能描述腳號引腳名稱引腳功能描述腳號引腳名稱引腳功能描述1C1+泵電容1正極9R2OUT第二組TTL/CMOS電平輸出2V+正電源濾波10T2IN第二組TTL/CMOS電平輸入3C1-泵電容1負極11T1IN第一組TTL/CMOS電平輸入4C2+泵電容2正極12R1OUT第一組TTL/CMOS電平輸出5C2-泵電容2負極13R1IN第一組RS-232電平輸入6V-負電源濾波14T1OUT第一組RS-232電平輸出7T2OUT第二組RS-232電平輸出15GND地8R2IN第二組RS-232電平輸入16VCC電源+5V通信電路設計DB9連接器,既作為通信接口,又用做電源輸入。提高了板載元件的利用率。多腳并聯(lián)的方式可以減小插接件的接觸電阻。外部輸入的5V電源從DB9連接器的6、7、8、9腳輸入,在1000uF電容中儲能。儲能電容可以在開機瞬間向系統(tǒng)提供較大電流,使單片機等正常啟動。圖3-7上下位機通信電路表3-3 RS-232的D型連接器接腳定義:接腳編號功能1.DCD當DCD=0時,代表偵測到數(shù)據(jù)載波信號。2.RXD接受數(shù)據(jù)3.TXD傳送數(shù)據(jù)4.DTR傳送端計算機目前已備妥數(shù)據(jù),并發(fā)出通知信號,該信號是DTR=05.SGND地線。6.DSR連接的單片機以DSR=0通知電腦,它已備妥接受動作。7.RTS傳送端計算機備妥數(shù)據(jù)。8.CTS接收端備妥數(shù)據(jù)9.RI數(shù)據(jù)傳送到單片機供電電路設計本設計采用220V交流市電通過電源變壓器變換成交流低壓,再經(jīng)過橋式整流電路和濾波電容Ca的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成一個并不十分穩(wěn)定的直流電壓(該電壓常常會因為市電電壓的波動或負載的變化等原因而發(fā)生變化)。此直流電壓經(jīng)過LM7805的穩(wěn)壓和Cc的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度較高、穩(wěn)定度好的直流輸出電壓。本穩(wěn)壓電源可作為本設計所用的芯片和單片機的電源。LM7805三端穩(wěn)壓器是一種標準化、系列化的通用線性穩(wěn)壓電源集成電路,以其體積小、成本低、性能好、工作可靠性高、使用簡捷方便等特點,因此選擇它作為供電部分非常合適。此三端穩(wěn)壓電源的優(yōu)點.:(1)電路簡單,穩(wěn)定.調試方便;(2)價格便宜,適合于降低成本設計要求;(3)電路中幾乎沒有產(chǎn)生高頻或者低頻輻射信號的元件,工作頻率低,EMI等方面易于控制。供電電路設計圖圖3-8系統(tǒng)供電電路

軟件設計軟件設計思路系統(tǒng)程序采用進行子程序模塊化設計,將顯示漢字的點陣碼從只讀存儲器中讀入到單片機內(nèi)部的顯示緩存中,再將緩存中的點陣碼依時間片從串口送到顯示列驅動。每行顯示時間1.2mS,每秒鐘掃描50次。用不同的子程序改變顯示緩沖存儲器中點陣碼的排列方式,即可得到不同的顯示方式。讀入不同地址的漢字點陣碼,即可改變顯示內(nèi)容。單片機內(nèi)部RAM地址分配如下:00H~17H單元為通用寄存器;18H、19H單元為行、列掃描數(shù)寄存器;1AH~1DH單元為顯示字符存儲單元;20H~67H單元為漢字點陣碼顯示緩沖存儲器;68H~6FH單元為堆棧。顯示方式以子程序方式編寫,有多少種顯示方式即有多少個顯示子程序。本系統(tǒng)中使用了畫面左移方式。顯示方式的改變采用時間中斷的方式進行自動更換和手動改變兩種方式。系統(tǒng)中還用到顯示子程序、送點陣字形碼子程序、中斷子程序、時間中斷處理子程序等。在主程序中完成各存儲單元及標志位的初始化,定時器、中斷控制、串行口等專用寄存器的初始化,調用顯示、送字子程序。整個軟件設計分為兩大功能塊:顯示部分和通信部分。顯示部分采用動態(tài)掃描的方式,實現(xiàn)對顯示屏要顯示的漢字數(shù)據(jù)信息進行傳輸控制以及顯示功能。與上位機的實時通信部分主要是利用單片機串口中斷接收數(shù)據(jù)信息,實現(xiàn)與計算機的實時數(shù)據(jù)信息傳輸。通信部分的上位機軟件采用VisualBasic編程,使用VB在標準串口通信方面提供的具有強大功能的通信控件MSCOMM,該控件可設置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進行設置,直接利用上位機的RS-232串口發(fā)送數(shù)據(jù)。為實現(xiàn)單片機與上位機的可靠通信,須保證雙方具有相同的數(shù)據(jù)格式和波特率,本設計采用RS-232通信,一幀10位的數(shù)據(jù)格式,9600bit/s的波特率。上下位機之間的通信協(xié)議為:前兩幀數(shù)據(jù)為字數(shù)的字節(jié)數(shù),接下來通信128個字節(jié)的數(shù)據(jù),保證數(shù)據(jù)都寫進片外數(shù)據(jù)存儲器,直到數(shù)據(jù)都傳送完為止。程序設計中要注意掃描時間和頻率的計算調試。對定時器賦初始值的計算如下:算法實現(xiàn)基于前述的計算機與LED顯示屏接口模式,當前較常用的通信軟件設計方法,是選用UCDOS字庫中字體作為顯示字體,其過程為:(1)根據(jù)漢字的機內(nèi)碼計算出其區(qū)、位碼,再根據(jù)區(qū)、位碼計算出它的字庫碼(偏移地址);(2)由字庫碼計算出該漢字字形碼(點陣信息)在漢字庫中的偏移地址;(3)根據(jù)偏移地址讀取字庫文件中單位漢字字形占用的字節(jié)數(shù);(4)由于UCDOS點陣文件中點陣豎向排列,根據(jù)LED顯示。屏排列方向作必要的轉換,生成LED顯示屏能顯示的新點陣文件。軟件算法設計核心部分如下:(1)漢字字符串的長度自定義了一個函數(shù)CLen來計算漢字字符串的實際長度。同時還能判斷字符串中漢字的實際個數(shù)。FunetionCLen(HzStr$)asIntegerStaticHzNumasIntegerL=len(Hzstr$)Forn=1toLIfAsc(mid$(HzStr$,n,1)<0ThenHzNum=HzNum+1NextnClen=L+HzNumEndFunetionCLen函數(shù)中的靜態(tài)變量HzNum返回字符串中實際漢字的數(shù)目。(2)漢字字模的轉換我國國標規(guī)定漢字用內(nèi)碼表示,內(nèi)碼為兩個字節(jié)。為了保證中西兼容,兩者之間不應發(fā)生沖突。目前規(guī)定每個字節(jié)只用七位,若兩個字節(jié)的最高位為1,則該字符為漢字。國際將字庫分成若干個區(qū),每個區(qū)有94個漢字,每個漢字在字庫中有確定的區(qū)和位,因此每個漢字各有一個區(qū)位碼,知道了區(qū)位碼也就相當于知道了漢字在字庫中的位置,漢字的內(nèi)碼與區(qū)位碼有一定的關系,故查找一個漢字字模數(shù)據(jù)的過程為:漢字內(nèi)碼→區(qū)位碼→記錄號→字模數(shù)據(jù)一個16×16點陣漢字其字模數(shù)據(jù)共有32字節(jié),可以看作是一條記錄,在程序中可以用一個數(shù)組存放。一個漢字占用兩個字節(jié),其值稱為漢字的內(nèi)碼。其中第一個字節(jié)的值為區(qū)號加上32(20H),第二個字節(jié)的值為位號加上32(20H)。為了與ASCII字符區(qū)別開,表示漢字的兩個字節(jié)的最高位都是1,也就是兩個字節(jié)的值都又加上了128(80H)。這樣,通過漢字的內(nèi)碼,就可以計算出漢字的區(qū)位碼。具體算式如下:Qh=z1-32-128=z1-160Wh=z2-32-128=z2-160Qh,Wh為漢字的區(qū)號和位號,z1,z2為漢字的第一字節(jié)和第二字節(jié)。根據(jù)區(qū)號和位號可以得到漢字字模在文件中的位置:Location=(94*((Qh-1)+(Wh-l)))*(一個點陣字模的字節(jié)數(shù))。(3)字符點陣提取方法我們以國標DOS中文宋體字庫為例,每一個字由16行,16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個象素,而把每一個字的字形理解為一幅圖像。如查用8位的AT89C51單片機控制,由于單片機的總線為8位一個字需要拆分為2個部分。(4)串行通訊程序設計利用VB提供的串口控件MSComm實現(xiàn)上位機與單片機通訊。MSComm控件提供了一系列標準通信命令的使用界面。使用它可以建立與串行端口的連接,通過串行端口連接到其他通信設備,發(fā)出命令,交換數(shù)據(jù),以及監(jiān)視和響應串行連接中發(fā)生的事件和錯誤。讀取新點陣文件,通過89C51發(fā)送至LED顯示屏顯示。這種讀取已有的字庫文件,經(jīng)過一系列的計算轉換得到LED顯示屏點陣文件的方法,是當前應用較為普遍的方法。該方法顯示純漢字或ASCII字符效果較令人滿意。主程序流程圖圖4-1程序流程圖

部分主程序設計 ORG0000H SJMPMAIN ORG000BH LJMPTIMER2MS ORG001BH LJMPTIMER50MS ORG0020H MAIN:MOVP3,#00001100B MOVR2,#50H;顯示區(qū)置1(不顯示) MOVR0,#20H MOVA,#0FFH LOOPMA:MOV@R0,A INCR0 DJNZR2,LOOPMA MOVP1,#00H;初始化各寄存器 MOVSP,#70H MOVR3,#20H;R3顯示存儲器初地址 MOVR7,#01;行碼 MOVR6,#08H;行數(shù) MOVR5,#20H;暫存顯示地址 MOV1DH,#00;50ms儲存單元 MOV7FH,#00;清左移標志 MOV18H,#08 MOV19H,#64 MOVTMOD,#11H;初始化各功能寄存器 MOVIE,#10001010B MOVIP,#00001010B MOVSCON,#00H MOVTH0,#0FEH;置定時初值 MOVTL0,#80H MOVTH1,#3CH MOVTL1,#0BH SETBTR0;啟動定時 SETBTR1 MOVDPTR,#0200H;漢字點陣碼地址 LCALLSHONGZHI;讀入漢字點陣碼 LCALLDISPLAY2;顯示一行

串行中斷程序串行中斷流程圖圖4-2串行中斷流程圖串行中斷程序 ; ;中斷處理 ;顯示方式控制 ; TIMER50MS: MOVTH1,#3CH MOVTL1,#0B0H LOOPP:MOVA,1DH;MS數(shù)判斷 CJNEA,#20,LOOPMS MOV1DH,#00 SJMPLOOPS LOOPMS:INC1DH;MS數(shù)增1 SJMPLOOPR LOOPS:MOVA,1CH;秒數(shù)判斷及處理 CJNEA,#59,LOOPSJ MOV1CH,#00 MOVA,1BH ANLA,#03H ;MOV18H,A CJNEA,#00,LOOPAD2;每分送字形碼首地址 MOVDPTR,#0200H MOV18H,#16;設置字幕左移16行 MOV7FH,#00 SJMPLOOPADE LOOPAD2:CJNEA,#01,LOOPAD3 MOVDPTR,#0240H MOV19H,#64;置左移列數(shù)初值 MOV7FH,#01;置左移標志 SJMPLOOPADE LOOPAD3:CJNEA,#02,LOOPAD4 MOVDPTR,#0280H;ADDR3 MOV18H,#08;設置字幕左移8行 MOV7FH,#00 SJMPLOOPADE LOOPAD4:MOVDPTR,#02C0H;ADDR4 MOV19H,#64H MOV7FH,#01 LOOPADE:LCALLSHONGZHI SJMPLOOPM LOOPSJ:INC1CH MOVA,1CH CJNEA,#52,LOOPR;在45秒將顯示內(nèi)容清除 SETBPSW.5 MOVDPTR,#0240H LCALLSHONGZHI SJMPLOOPR LOOPM:MOVA,1BH;分判斷及處理 CJNEA,#59,LOOPMJ MOV1BH,#00 SJMPLOOPH LOOPMJ:INC1BH SJMPLOOPR LOOPH:MOVA,1AH;小時判斷及處理 CJNEA,#23,LOOPHJ MOV1AH,#00 SJMPLOOPR LOOPHJ:INC1AHLOOPR:RETI移位子程序移位子程序流程圖圖4-3移位子程序移位子程序 ; ;顯示漢字向左移動一位 ; LEFT_MOVE:SETBRS1 MOVR3,#08;定義行數(shù) MOVR4,#27H;第一行最后列的字形地址碼 LOOPL2:MOVA,R4 MOVR1,A MOVR2,#08;字塊數(shù)8個 SETBC LOOPLEFT:MOVA,@R1 RLCA MOV@R1,A DECR1 DJNZR2,LOOPLEFT;各列左移1位了嗎? SETBC MOVA,#08;指向下一行的最后列地址 ADDA,R4 MOVR4,A DJNZR3,LOOPL2;行各左移1位完成了嗎? CLRRS1 RET延時子程序晶振12MHZ,延時1秒;DELAY:MOV72H,#100LOOP3:MOV71H,#100LOOP1:MOV70H,#47LOOP0:DJNZ70H,LOOP0NOPDJNZ71H,LOOP1MOV70H,#46LOOP2:DJNZ70H,LOOP2NOPDJNZ72H,LOOP3MOV70H,#48LOOP4:DJNZ70H,LOOP4

系統(tǒng)調試系統(tǒng)調試是花費是較長的一個關鍵步驟,單片機控制LED點陣顯示系統(tǒng)的硬件調試和軟件調試是不能分開的,許多硬件錯誤是在軟件調試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結合起來調試以進一步排除故障。硬件的調試是基礎,如果硬件調試不通過,軟件設計則是無從做起。硬件調試排除邏輯故障,這類故障往往由于設計和加工制板過程中工藝性錯誤所造成的。主要包括錯線、開路、短路。排除的方法是首先將加工的印制板認真對照原理圖,看兩者是否一致。應特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,并重點檢查三極管焊接點之間是否存在相互之間短路或與其它信號線路短路。在調試過程中利用萬用表和示波器來檢測電路,大大縮短了排錯時間。排除元器件失效,造成這類錯誤的原因有兩個:一個是元器件買來時就已壞了;另一個是由于安裝錯誤造成器件燒壞??梢圆扇z查元器件與設計要求的型號、規(guī)格和安

溫馨提示

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

評論

0/150

提交評論