基于上位機的無線雙色點陣顯示系統(tǒng)設計_第1頁
基于上位機的無線雙色點陣顯示系統(tǒng)設計_第2頁
基于上位機的無線雙色點陣顯示系統(tǒng)設計_第3頁
基于上位機的無線雙色點陣顯示系統(tǒng)設計_第4頁
基于上位機的無線雙色點陣顯示系統(tǒng)設計_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)論文論文題目基于上位機的無線雙色點陣顯示系統(tǒng)設計系別電子信息工程系專業(yè)電子科學與技術班級學號學生姓名指導教師(簽名)完成時間2013年5月摘要LED顯示屏是20世紀90年代出現(xiàn)的新型平板顯示器件,LED點陣屏是由許多發(fā)光二極管按規(guī)律排列所組成的點陣顯示屏幕,它可用來顯示字符、圖案等信息,具有可靠性高、使用壽命長、環(huán)境適應能力強、性能價格比高等特點,因此在信息顯示領域得到了廣泛的應用。本設計的顯示終端是用16塊8×8的雙色點陣組成16行64列的點陣,全屏能顯示4個漢字,整機以40腳單片機STC89C4RD+為核心,制作出可更新內(nèi)容的顯示屏,通過16塊74HC595組成兩路級聯(lián)電路來控制點陣的64列的兩種顏色,1塊74HC154和16個三極管(8550)來控制點陣的16行。本設計是一種基于無線傳輸?shù)腖ED點陣屏顯示系統(tǒng)。系統(tǒng)上位機與下位機之間的通信采用RS-232串口,再采用無線短距離通信方式,傳輸數(shù)據(jù),使得LED顯示終端既便于安裝和更換位置,又降低了運行費用,顯示方式可以靜態(tài)、移入移出、閃爍等。文中詳細介紹了LED點陣顯示的硬件設計思路、硬件電路各個部分的功能及原理、相應軟件的程序設計,以及使用說明等。關鍵詞:LED顯示屏;串行通信;無線傳輸;單片機;上位機TheDesignofLEDdisplaySystembasedonPCWirelesstwo-colorDot-matrixAbstractLEDdisplayisanewdisplayappearedinnineteenninties,LEDlatticescreeniscomposedofmanylight-emittingdiodesarearrangedaccordingtotheruleofthecompositionofthedotmatrixdisplayscreen,whichcanbeusedtodisplayinformationsuchascharacters,patterns,andhastheadvantagesofhighreliability,longservicelife,environmentaladaptationability,higherratioofperformancetoprice,sointheinformationdisplayhasbeenwidelyappliedinthefield.Thedesignofthedisplayterminalistouse16piecesof8x8dotmatrixcolorconsistsof16rowsand64columnsofthematrix,thefullscreencandisplay4Chinesecharacters,the40footSTC89C4RD+MCUasthecore,madetoupdatethecontentofthedisplay,twocolorsand64columnstocontrolmatrixby16block74HC595twocascadecircuit,one74HC154andsixteentriode(8550)16linestocontrollattice.ThedesignisaLEDlatticescreendisplaysystembasedonwirelesstransmission.CommunicationbetweenhostcomputerandlowercomputerbyRS-232serialport,datatransmissionbywirelessshortdistancecommunication,LEDdisplayterminal,whichisconvenientforinstallationandreplacement,butalsoreducetheoperatingcosts,displaymodecanbestatic,movedout,flicker.ThispaperintroducesindetailtheLEDdotmatrixdisplayhardwaredesign,hardwarecircuitofeachpartofthefunctionandprinciple,thecorrespondingsoftwareprogramdesign,aswellastheuseandso.Keywords:LEDdisplayserialcommunicationwirelesstransmissionchipmicrocomputeruppermonitor

目錄TOC\o"1-2"\h\z\u第一章前言 11.1項目背景 11.2國內(nèi)外發(fā)展狀況及發(fā)展趨勢 11.3論文主要內(nèi)容 2第二章系統(tǒng)總體設計 32.1功能設計 32.2總體方案 32.3系統(tǒng)硬件總體設計方案 52.4系統(tǒng)軟件總體設計方案 6第三章系統(tǒng)硬件電路設計 83.1下位機無線發(fā)射電路設計 83.2LED點陣控制電路設計 123.3電源模塊電路 18第四章系統(tǒng)軟件設計 194.1軟件開發(fā)平臺及開發(fā)語言介紹 194.2上位機管理系統(tǒng)軟件設計 194.3下位機編程 21第五章系統(tǒng)調(diào)試 255.1系統(tǒng)硬件調(diào)試 255.2系統(tǒng)軟件調(diào)試 25第六章總結與展望 27參考文獻 28附錄 29致謝 54第一章前言電子顯示屏最初是由燈泡或照明燈構成的,后來發(fā)展為由顯像管構成,在全球發(fā)展很迅速,是一種很新型的顯示媒體。LED顯示屏是八十年代后期發(fā)展起來的,以其亮度高、動態(tài)影像顯示效果好、故障低、能耗少、使用壽命長、顯示內(nèi)容多樣化、顯示方式豐富、性價比高等優(yōu)勢已廣泛應用于各行各業(yè)。LED顯示屏制作技術已經(jīng)相當成熟,售價也不高,因此隨處可見,它作為信息顯示媒體,應用領域廣泛,如商場、機場、車站和室外廣告都有LED顯示屏。本課題即是針對信息顯示需求,在考慮安裝控制方便的基礎上,提出了一種基于無線的雙色LED顯示屏控制系統(tǒng)。1.1項目背景TA\s"1.1項目背景"\c1LED顯示屏是20世紀90年代新出現(xiàn)的平板顯示器件,LED顯示屏(LEDScreen,LEDdisplay):又叫飄字屏幕或者電子顯示屏,是由ledpc面板和LED點陣組成,用綠色,紅色,白色,藍色LED燈的亮滅來顯示文字、圖片、視頻等內(nèi)容,無論用LED制作單色、雙色還是三色屏,想要顯示圖象文字,就需要構成象素的每個LED的發(fā)光亮度都必須能夠調(diào)節(jié),而且可以根據(jù)不同場合的需要做出不同的調(diào)節(jié)。LED顯示屏受到的廣泛應用和關注,使得其已經(jīng)成為社會的一個重要的角色。LED的發(fā)展前景極為看好,目前正趨向于更高亮度、更耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,穩(wěn)定性、全色化方向發(fā)展。系統(tǒng)設計的是一個無線LED顯示屏,也就是說采用無線通信的方式,更新顯示顯示內(nèi)容,這樣做就可以達到便于安裝和更換位置的目的,同時也是為了節(jié)省費用。這樣對LED顯示屏的發(fā)展也有促進作用的,更利于它的發(fā)展,控制技術有所創(chuàng)新。不管無線LED顯示屏應用在哪里,都能夠達到塑造良好形象的目的,有很好的社會效益。本系統(tǒng)的設計很利于自己專業(yè)知識的提升,同時對LED顯示屏的發(fā)展也有積極的意義。1.2國內(nèi)外發(fā)展狀況及發(fā)展趨勢LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,它由許多的發(fā)發(fā)二極管或像素單元組成,靠燈的亮滅來顯示信息[1]。八十年代后期LED點陣顯示屏的應用極少,顯示屏控制技術也沒有的到提高。初期的LED點陣顯示屏一般是紅、綠雙基色,成本較高,在國外應用較廣泛,國內(nèi)甚少。九十年代,全球信息產(chǎn)業(yè)發(fā)展迅速,信息技術不斷突破,這時國產(chǎn)的LED顯示屏已經(jīng)具備了16級灰度、256色視控制技術和無線遙控等,技術達到了國際先進水平。如今LED大屏幕的發(fā)展達到成熟期,LED器件成本大幅度下降,LED點陣顯示屏得到了廣泛應用。我國LED點陣顯示屏,發(fā)展迅速,幾年下來,取得了很好地成績,不少是具有相當規(guī)模的企業(yè),位居骨干企業(yè)之中。我國LED點陣顯示屏水平處于領先地位,例如,目前世界最大LED點陣顯示屏是一個9500平米巨型LED顯示屏,面積達400平方,在2010年上海世博會開幕式場館,這個顯示屏采用P18表貼工藝制做,壓鑄鋁箱體結構。LED點陣顯示屏產(chǎn)業(yè)日益發(fā)展壯大,目前正成為我國電子信息產(chǎn)業(yè)的極其重要組成部分。據(jù)美國StandfordResources對LED顯示屏產(chǎn)品國際市場概況的預測,當前和未來市場上對LED顯示屏產(chǎn)品的采用將會以全彩高畫質(zhì)為主。目前,LED顯示屏技術已經(jīng)基本把難關攻克,發(fā)光顯示器件的亮度很高,質(zhì)量也更加好,價格更是降低了不少,這樣就促進了LED顯示屏的需求量,很有市場發(fā)展?jié)撃?。未來的LED顯示屏更完美,應用更廣泛。LED控制器設計個屏幕設計開始逐漸分離,我國LED產(chǎn)業(yè)發(fā)展迅速,從幾家年產(chǎn)值不高的企業(yè)發(fā)展到了幾十家年產(chǎn)值幾億元的骨干企業(yè),就整個行業(yè)來說具有較強的開發(fā)能力,就整個LED顯示屏系統(tǒng)而言,中國與國際處在同一技術水平。我國的在顯示屏的制造上,在幾十年間發(fā)展的非常迅速,但在顯示器件的封裝和設計上還是跟不上發(fā)達國家的技術水平,還有更加努力去研制?,F(xiàn)代社會是一個信息社會,顯示技術必將發(fā)展迅速,二十一世紀必將發(fā)展成直流式平板顯示。如此說來,LED點陣顯示屏發(fā)展方向很有可能是平板顯示的直流產(chǎn)品,那么其發(fā)展趨勢就是標準化和規(guī)范化。1.3論文主要內(nèi)容根據(jù)設計要求,擬定論文的內(nèi)容和結構安排如下:(1)題目的選定根據(jù)選題要求,并結合自身興趣和所掌握的知識,決定做有關點陣顯示屏的題目,有你定了幾套方案,經(jīng)過分析和比較,最終決定以PC為上位機,以單片機為核心控制器,加上點陣屏的驅(qū)動電路,并選擇雙基色LED點陣,制作出一個可以更新信息的雙色LED點陣顯示屏。(2)方案實現(xiàn)根據(jù)設計思想,應選擇合適的器件加以實現(xiàn)。根據(jù)功能要求,選定了以40腳單片機STC89C4RD+為核心,74HC595組成兩路級聯(lián)電路來做列驅(qū)動,控制點陣的兩種顏色74HC154和16個三極管(8550)來做行驅(qū)動。論文中詳細介紹了這些器件參數(shù)和在設計中的應用。(3)軟件編程根據(jù)硬件的特點和要求,選用C語言編寫下位機管理模塊程序,而上位機管理模塊則選用VB語言來編寫,用模塊化的方法編寫程序。(4)系統(tǒng)調(diào)試硬件的制作和軟件編程設計都完成之后,還有要對系統(tǒng)進行調(diào)試,先進行硬件調(diào)試,然后進行軟件調(diào)試,完善設計中的不足,實現(xiàn)設計的功能,最終完成設計。(5)結論設計完成后對設計中所遇到的問題、經(jīng)驗教訓、以及自己的想法進行總結。第二章系統(tǒng)總體設計2.1功能設計本方案設計一個LED顯示屏,具體要求滿足以下條件:(1)要求采用51單片機作為微控制器;(2)可以用上位機提取要顯示內(nèi)容的字模數(shù)據(jù),上位機可以通過串口發(fā)送數(shù)據(jù)給單片機;(3)單片機控制無線模塊發(fā)送數(shù)據(jù)給LED顯示屏,四個16x16的LED點陣顯示屏進行文字顯示;(4)在目測條件下LED點陣顯示屏各點顯示均勻、充足、穩(wěn)定、清晰。2.2總體方案要知道,LED作為信息顯示媒體,是要給更多的人提供信息的,所以應用來流動人口比較多的戶外的,戶外環(huán)境很容易損壞電子器件的,所以硬件要求很高。硬件的設計一般采用模塊化設計,根據(jù)本設計功能的要求,本設計包括了上位機上的數(shù)據(jù)提取軟件設計,上位機與單片機的串口傳輸數(shù)據(jù)的設計,無線發(fā)送接收數(shù)據(jù)的設計,16塊8×8的的雙色點陣組成的16×64雙色點陣驅(qū)動電路設計。設計總體框圖如圖2-1所示:上位機上位機無線發(fā)送模塊無線接收模塊點陣控制電路16*64點陣顯示屏串口圖2-1設計總體框圖2.2.1主控器的選擇所謂單片機就是一種集成集成器件,其實質(zhì)上是一種微型計算機,它由INTEL公司發(fā)明,最早是MCS-85,現(xiàn)在是MCS-5。單片機作為一種微機,當然就要進行數(shù)學運算或邏輯運算,面向控制而設計的集成電路,可以用它來完成很多不同的控制任務。我們目前應用的MCS-51單片機最基本的配置:集成了CPU、ROM、RAM、4個8位的并口(32個IO口)、全雙工串行口、定時器/計數(shù)器,并有控制功能較強的布爾處理器。單片機品種眾多,型號更是多樣化,CPU處理的位數(shù)選擇當然也是很豐富的,有8,16,32到64位幾種選擇,根據(jù)需要來選擇。單片機片上I/O相當?shù)呢S富,一些單片機很是集成有A/D轉(zhuǎn)換,“看門狗”等。它們的價格也高低不等,這樣就極大地滿足了開發(fā)者的選擇自由。系統(tǒng)下位機的核心控制器是單片機,所以單片機的選擇尤為重要,選對了單片機,就基本上保證了系統(tǒng)工作的靈活性和穩(wěn)定性,其實對于單片機的選擇就是對其本身的性能和片內(nèi)資源的選擇。本設計的單片機要接收上位機發(fā)送的數(shù)據(jù)并進行存儲,在既沒有沒有外擴程序存儲器也沒有外擴數(shù)據(jù)存儲器的情況下,本系統(tǒng)選擇了STC89C54RD+增強型51單片機,它有大容量的數(shù)據(jù)存儲區(qū)。STC89C54RD+單片機最高時鐘頻率是80M,極大限度地提高了控制器的運行速度,集成了大容量的16KB程序存儲器及1280B的數(shù)據(jù)存儲器,并有在系統(tǒng)可編程功能以及在應用可編程功能,可以遠程軟件升級,不需要編程器,這樣就降低了開發(fā)復雜度。2.2.2數(shù)據(jù)傳輸方案論證(1)并行傳輸顧名思義,并行傳輸方式就是多個數(shù)據(jù)并排地進行傳輸,每個數(shù)據(jù)單獨使用一條線路,同時進行數(shù)據(jù)的傳輸,例如,8位的數(shù)據(jù)就要用8根并排的線路同時傳輸。并行傳輸方式傳輸速度很快,但是數(shù)據(jù)位多信道也要多,投資就相當大了。(2)串行傳輸所謂串行傳輸方式就是構成字符的二進制代碼在同一條信道上以位為單位,按順序逐位傳輸,按位發(fā)送,逐位接收,同時確認字符,因此要采取同步措施。這種傳輸方式速度雖然很慢,但其只需要一條傳輸信道,投資小很多,相對易于實現(xiàn)。若采用并行方式,從控制電路到列驅(qū)動器的線路數(shù)量大,相應的硬件數(shù)目多。當列數(shù)很多時,并列傳輸?shù)姆桨甘遣豢扇〉?。采用串行傳輸?shù)姆椒?,是?shù)據(jù)傳輸采用的主要傳輸方式,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅(qū)動器。相比較下選用串行通信較合理。2.2.3顯示方案論證LED顯示屏通常有兩種顯示驅(qū)動方式(1)靜態(tài)顯示方式靜態(tài)驅(qū)動方式就是對LED器件的控制實行“1對1”的方式,就是把多個LED顯器的每一段與一個獨立的I/O口連接起來,公共端就根據(jù)數(shù)碼管的種類連接到VCC或GND端,這種顯示方式的每一個顯示器都要占用一個單獨的I/O端口,單片機只需把要顯示的字形代碼發(fā)送到接口電路,要可以顯示字符了,因此,如果使用這種方法,當顯示位數(shù)較多時單片機中I/O口的占用就很多了,需要提供的I/O接口電路也較復雜但它具有編程簡單,顯示穩(wěn)定,CPU的效率較高等優(yōu)點,這種方式只適用LED器件較少的顯示電路。(2)動態(tài)顯示方式LED動態(tài)顯示方式其實利用人視覺暫留特性,一個LED動態(tài)點亮,其實它并沒有一直被點亮,只是按一定的頻率掃描,而我們看到他一直是亮的,是看不出燈有熄滅過的,看著還是像一直都亮。只要LED掃描頻率大于25Hz,就可以在我們眼睛里殘留影像,這樣我們的眼睛就能看到一幅完整的圖像了。采用動態(tài)顯,既節(jié)省了控制線數(shù),也節(jié)能,適用于大屏幕LED。本設計采用動態(tài)掃描的方式,在設計電路時更是考慮用重疊處理的方法,在顯示本行各列顯示數(shù)據(jù)的同時,傳送下一行的列顯示數(shù)據(jù),這樣還可以節(jié)省掃描時間。在設計電路的時候16行使用一個行驅(qū)動器,64行就用8個列驅(qū)動器,兩種顏色就要用16個列驅(qū)動器了,這樣的設計可以實現(xiàn)重疊處理。顯示模塊的結構框圖如圖2-2所示:單片機控制器行驅(qū)動8*8LED點陣單片機控制器行驅(qū)動8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣8*8LED點陣列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動列驅(qū)動圖2-2顯示模塊的結構框圖2.3系統(tǒng)硬件總體設計方案本系統(tǒng)需做出一個可行的方案,根據(jù)硬件的功能結構選取合適的器件,器件不但要求能夠?qū)崿F(xiàn)所要求的功能還要能兼容整個系統(tǒng),且方案必須要符合LED顯示原理及驅(qū)動方式才可以進行,系統(tǒng)設計包括軟件和硬件兩個方面,其中硬件主要分為兩個部分:下位機無線發(fā)射部分,用于完成上位機數(shù)據(jù)接收及發(fā)射。無線接收和點陣控制,用于完成數(shù)據(jù)接收和控制LED點陣屏。PCPC上位機上位機串口STC89C54RD+單片機電源復位電路3.3V穩(wěn)壓Nrf24l01發(fā)射模塊圖2-3下位機無線發(fā)射結構圖下位機無線發(fā)射結構如圖2-3所示,系統(tǒng)中PC上位機機可以設置命令和提取顯示數(shù)據(jù),在由它發(fā)送命令指令和顯示數(shù)據(jù),通過RS-232發(fā)送給單片機,單片機機接收后再通過無線模塊發(fā)送出去。無線接收和點陣控制結構如圖2-4所示,主要包括LED驅(qū)動電路和無線接收電路。由于單片機端口驅(qū)動能力有限,不能夠直接驅(qū)動LED屏,否則LED屏幕亮度不夠或者不亮,所以要加驅(qū)動電路,驅(qū)動電路又可以分為行驅(qū)動和列驅(qū)動電路,分別驅(qū)動LED點陣顯示屏的16行和64列。無線接收到數(shù)據(jù)或命令,同時存儲在單片機中,單片機收到命令,就對LED進行控制顯示信息。STC89C54RD+單片機電源3.3V穩(wěn)壓列驅(qū)動行驅(qū)動復位電路16*64點陣顯示屏Nrf24l01接收模塊圖2-4無線接收和點陣控制結構圖2.4系統(tǒng)軟件總體設計方案根據(jù)系統(tǒng)功能的需求,主控軟件必須具有更改顯示內(nèi)容和發(fā)送命令等功能,系統(tǒng)軟件設計主要分為上位機設計和下位機控制設計兩部分,上位機用VB語言編寫,上位機管理系統(tǒng)設計圖如圖2-5所示:上位機管理系統(tǒng)上位機管理系統(tǒng)轉(zhuǎn)換和發(fā)射系統(tǒng)設置顯示文本處理圖2-5上位機管理系統(tǒng)設計圖下位機編程語言用C語言編寫,因為采用了無線傳輸數(shù)據(jù),所以下位機軟件要分成兩部分。一部分為接收上位機的數(shù)據(jù),然后通過無線發(fā)送出去;另一部為無線接收和控制點陣顯示。下位機軟件編程結構圖如圖2-6所示:LED點陣顯示程序LED點陣顯示程序主程序各種顯示方式子程序串口接收程序無線發(fā)送程序主程序無線接收程序圖2-6下位機軟件編程結構圖第三章系統(tǒng)硬件電路設計根據(jù)基于上位機的無線雙色點陣顯示系統(tǒng)的功能將系統(tǒng)劃分為上位機發(fā)送管理模塊、無線發(fā)送無線接收、點陣控制和電源模塊四個部分,具體工作流程為:上位PC機通過串口通信向單片機發(fā)送顯示命令和顯示數(shù)據(jù)內(nèi)容,單片機接收后執(zhí)行顯示命令處理顯示代碼將顯示內(nèi)容通過I/O口串行輸出并且控制譯碼電路完成串并轉(zhuǎn)換并行輸出,最后由顯示驅(qū)動電路進行電壓和電流的處理以達到LED顯示屏的顯示電流、電壓要求,進而使顯示屏顯示內(nèi)容[2]。四個模塊中的上位機管理單元是不需要硬件設計,其余均需要硬件設計,以下詳細介紹各單元電路設計。3.1下位機無線發(fā)射電路設計無線發(fā)射單元中控制器STC89C54RD+通過RS-232串口接收上位機傳來的數(shù)據(jù),然后傳給nrf24l01無線收發(fā)模塊,nrf24l01無線收發(fā)模塊通過天線將數(shù)據(jù)發(fā)送出去。3.1.1STC89C54RD+芯片介紹單片機是1971年誕生的,作為微型計算機一個很重要的分支,以極高的性能價格比,受到人們的重視和關注,應用廣泛,發(fā)展迅速[3]。單片機種類繁多,MCS51系列單片機是一款技術相對成熟的控制器,比較受歡迎,價格便宜,性能又好,值得信賴。而圍繞51內(nèi)核衍生出來的單片機品中也很多,有很多增強型的單片機,實用性更強。單片機是整個系統(tǒng)的核心部件,選擇合適的單片機才能保證系統(tǒng)的整體性能,單片機的選擇實際上就是對其內(nèi)部資源和靈活性的選擇。STC89C54RD+增強型51單片機是低功耗,在系統(tǒng)應用可編程,不占用戶資源的單片機,它的指令系統(tǒng)、硬件結構和片內(nèi)資源是與標準8052單片機兼容的,它的最高時鐘頻率是80MHz,STC89C54RD+單片機的實物圖如圖3-1所示。STC89C54RD+單片機的特性[4]:(1)加密性強,無法解密;(2)超強抗干擾;(3)在系統(tǒng)可編程,無需編程器,可遠程升級;(4)可送STC-ISP下載器,1萬片/人/天;(5)可供應內(nèi)部集成MAX810專用復位電路的單片機,只有D版本才有內(nèi)部集成專用復位電路,原復位電路可以保留,也可以不用,不用時RESET腳直接短接到地。圖3-1STC89C54RD+單片機的實物圖STC89C54RD+單片機的封裝圖如圖3-2所示:圖3-2STC89C54RD+單片機的封裝圖[4]3.1.2nrf24l01無線收發(fā)模塊Nrf24L01微功率無線通訊模塊,采用Nordic公司的nrf24l01芯片,是一種工作在2.4-2.5GHz的無線收發(fā)器芯片,無線收發(fā)器包括:頻率發(fā)生器,增強型SchockBurstTM模式控制器,功率放大器,晶體振蕩器,調(diào)制器解調(diào)器,輸出功率頻道選擇和協(xié)議的設置可以通過SPI接口進行設置極低的電流消耗當工作在發(fā)射模式下發(fā)射功率為-6dBm時電流消耗為9.0mA接收模式時為12.3mA,掉電模式和待機模式下電流消耗更低[5]。nrf2401實物圖如圖3-3所示:圖3-3nrf24l01實物圖工作模式nRF24L01可以設置為以下幾種主要的模式表3-1nRF24L01主要工作模式[5]模式PWR_UPPRIM_RXCEFIFO寄存器狀態(tài)接收模式111-發(fā)送模式101數(shù)據(jù)在TX發(fā)送模式101→0停留在發(fā)送模式直至數(shù)據(jù)發(fā)送完待機模式II101TX待機模式I1-0無數(shù)據(jù)傳輸?shù)綦娔J?3.1.3LM1117-3.3芯片介紹LM1117是一個正向低壓降穩(wěn)壓器,在1A電流下壓降為1.2V,LM1117有兩個版本:固定輸出版本和可調(diào)版本,固定輸出電壓為1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有1%的精度;固定輸出電壓為1.2V的精度為2%。LM1117有過熱保護和電流限制功能,是電池供電的絕佳選擇。其引腳圖如圖3-4所示。圖3-4LM1117管腳圖3.1.4nrf24l01無線收發(fā)模塊原理圖nRF24L01的應用電路原理圖如圖3-5所示。nRF24L01的應用電路并不復雜,它采用了增強型SchockBurstTM模式控制器,其中通過程序進行可以對輸出功率和通信頻道進行配置。低壓供電,需要輸入3.3V,電源供電時5V的,所以設計中通過LM1117正向低壓穩(wěn)壓器輸出電壓為3.3V,供無線模塊nrf24l01使用。nrf24l01與單片機是通過SPI接口通信的,由于本系統(tǒng)所選擇的單片機沒有SPI接口,所以用I/O口模擬。圖3-5nRF24L01的應用電路原理圖3.1.5RS-232串口通信串口的概念并不復雜,它是按位bit發(fā)送和接收字節(jié)的,是一種極其通用的計算機通信協(xié)議。串行通信有同步傳輸和異步傳輸兩種模式,但目前通常是用異步傳輸模式通信,異步傳輸用9支引腳(DB-9接口)。RS-232通信接口9支引腳的相關說明[6]:(1)CD載波檢測:(2)RXD接收數(shù)據(jù);(3)TXD發(fā)送數(shù)據(jù);(4)DTR數(shù)據(jù)終端準備好;(5)GND信號地;(6)DSR數(shù)據(jù)設備準備好;(7)RTS請求發(fā)送;(8)CTS允許發(fā)送;(9)RI振鈴指示。串口的電氣特性:(1)RS-232串口通信距離是16米左右(2)RS-232可以雙向傳輸,全雙工通訊,最高傳輸速率達20kbps(3)RS-232C上傳送的數(shù)字量采用負邏輯,且與地對稱(4)邏輯1:-3V~-15V(5)邏輯0:+3V~+15V單片機的串行發(fā)送端TXD和串行接收端RXD都是TTL電平,而PC機的COM口的RS-232C連接器(DB型9針插座)是EIA電平,所以需要用到電平轉(zhuǎn)換芯片與單片機連接,通過串行線和PC相連接[7]。RS-232電平的電壓轉(zhuǎn)換芯片選用MAX232,MAX232芯片是美信(MAXIM)公司專為RS-232標準串口設計的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。其管腳圖如圖3-6所示。圖3-6MAX232管腳圖[7]單片機接11.0592MHz的晶振,這樣單片機與串口通信時比較容易分頻成常見的標準串口通信波特率,按公式11.0592MHz=192*57600=384*28800=576*19200=1152*9600,如果用12MHz就無法整除了。單片機I/O口中的P3口是第二功能引腳,P3.0口和P3.1口分別是TXD和RXD,分別是單片機的串口的發(fā)送口與接收口,它們分別與MAX232的T2IN和R2OUT相連,通過標準的DC-9接口與MAX232的連接,電路連接如圖3-7所示。圖3-7DC-9串口通信原理圖3.2LED點陣控制電路設計以上章節(jié)介紹了nrf24l01無線收發(fā)模塊的發(fā)射模式應用電路,由于其硬件連接電路和接收模式都是一樣的,本節(jié)就不再對無線接收硬件電路作介紹了。nrf24l01完成數(shù)據(jù)的接收后,經(jīng)控制器STC89C54RD+處理后,最后要在LED點陣顯示屏上顯示出來。LED點陣顯示控制器依然是STC89C54RD+,并采用24MHZ或更高頻率晶振,以獲得較高的刷新頻率。以下介紹LED點陣顯示原理、LED點陣顯示屏的行驅(qū)動電路和列驅(qū)動電路。LED點陣驅(qū)動電路地設計是要根據(jù)LED點陣屏的大小來的,本系統(tǒng)設計要設計一個16*64規(guī)格的雙色LED點陣顯示屏,是用16個8*8的雙基色點陣模塊拼接而成的。3.2.1LED點陣行驅(qū)動電路由于單片機的I/O口不足,本系統(tǒng)的行驅(qū)動器選用的是一個譯碼器4線-16路芯片74HC154,輸入點有4根數(shù)據(jù)線,有16路輸出,可用來對于控制LED點陣屏的1-16行,為了保證點陣屏有足夠的電流供給,還用到了16個三極管8550進行擴流,與74HC154共同構成的行驅(qū)動電路,輸出口接單片機的P1口。以下介紹譯碼器74HC154和三極管8550。74HC154是一款高速CMOS器件,74HC154譯碼器可接受4位高有效二進制地址輸入,并提供16個互斥的低有效輸出。74HC154的兩個輸入使能門電路可用于譯碼器選通,以消除輸出端上的通常譯碼“假信號”,也可用于譯碼器擴展。該使能門電路包含兩個“邏輯與”輸入,必須置為低以便使能輸出端。任選一個使能輸入端作為數(shù)據(jù)輸入,74HC154可充當一個1-16的多路分配器。當其余的使能輸入端置低時,地址輸出將會跟隨應用的狀態(tài)。實現(xiàn)解調(diào)功能的辦法是:用4個輸入線寫出輸出線的地址,使得在一個選通輸入為低時數(shù)據(jù)通過另一個選通輸入。當任何一個選通輸入是高時,所有輸出都為高[8]。74HC154芯片引腳圖如圖3-8所示。圖3-874HC154引腳圖[8]74HC154具有以下特性[8]:(1)16線多路分配功能(2)4位二進制碼輸入譯碼至16個互斥輸出(3)兼容JEDEC標準no.7A(4)ESD保護(5)邏輯電平CMOS(6)功耗考量低功耗或電池供電應用(7)74HC154封裝與引腳SO24,SSOP24,DIP24,TSSOP274HC1544線-16線譯碼器/解調(diào)器[7]:(1)將4個二進制編碼輸入譯成16個彼獨立的輸出之一(2)將數(shù)據(jù)從一個輸入線分配到16個輸出的任意一個而實現(xiàn)解調(diào)功能(3)輸入箝位二極管簡化了系統(tǒng)設計(4)與大部分TTL和DTL電路完全兼容三極管8550是一種常用的普通三極管。它是一種低電壓,大電流,小信號的PNP型硅三極管。8550特性及應用(1)集電極-基極電壓Vcbo:-40V(2)工作溫度:-55℃to+150℃(3)和8050(NPN)相對主要用途:(1)開關應用(2)射頻放大8550三極管(TO-92封裝)管腳圖如圖3-9所示:圖3-98550管腳圖注:(1)發(fā)射極(2)基極(3)集電極在行驅(qū)動電路中,Y0-Y15是16路獨立的低電平輸出口,剛好接到點陣的16行,因為只要OE1和OE2中有一個為高,A,B,C,D電平輸入都是無效的,只有它們都是低電平時,才能操作芯片,所以把這兩腳同時接到單片機一個I/O上進行控制。Y0-Y15輸出經(jīng)過一個限流電阻再接到三極管8550的基極,當74HC154的輸出端輸出低電平時,8550就可以導通,電流就經(jīng)過8550放大再流入點陣。這樣才有足夠的電路供點陣驅(qū)動,否則LED屏幕亮度不夠或者不亮。LED點陣行驅(qū)動電路原理圖如圖3-10所示。圖3-10行驅(qū)動電路3.2.2LED點陣列驅(qū)動電路本系統(tǒng)采用的列驅(qū)動芯片的74HC595,因為該芯片是串入并出,而且具有輸出鎖存器。當鎖存著本行的數(shù)據(jù)輸出時,還可以輸入下一行的數(shù)據(jù),這樣就可以實現(xiàn)重疊的處理數(shù)據(jù)。要控制的LED點陣是紅、綠雙基色,所以每一個8*8的LED點陣就要用兩片74HC595分別控制兩種顏色。以下介紹74HC595芯片。74HC595芯片是一種串入并出的芯片,是一種電子顯示屏制作當中非常通用的驅(qū)動芯片。595是具有8位串行輸入/輸出移位寄存器和存儲器,高阻、關、斷三態(tài)輸出功能。能夠?qū)崿F(xiàn)串行輸出控制下一級級聯(lián)芯片。8位移位寄存器和一個存儲器分別是時鐘,在SCHcp的上升沿時數(shù)據(jù)輸入,在STcp的上升沿進入到存儲寄存器中去。倘若兩個時鐘連在一起,移位寄存器就比存儲寄存器提前一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出,和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。74HC595芯片引腳圖如圖3-11所示,其特點如下[9]:特點:(1)高速移位時鐘頻率Fmax>25MHz(2)標準串行(SPI)接口(3)CMOS串行輸出,可用于多個設備的級聯(lián)(4)低功耗:TA=25℃時,Icc=4μA(MAX)74595的數(shù)據(jù)端:(1)QA--QH:595的并行輸出端,可以直接控點陣的8個腳。(2)QH:級聯(lián)輸出端。我將它接下一個595的SI端。(3)SI:串行數(shù)據(jù)輸入端。74595的控制端說明:SRCLR(10腳):低點平時將移位寄存器的數(shù)據(jù)清零,通常將它接Vcc。SRCK(11腳):表示上升沿時對數(shù)據(jù)寄存器中的數(shù)據(jù)進行移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。RCK(12腳):表示上升沿時移位寄存器中的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器中去,而下降沿時存儲寄存器中的數(shù)據(jù)則不變。當移位結束后,在RCK端產(chǎn)生一個正脈沖,更新顯示數(shù)據(jù)。/G(13腳):高電平時禁止輸出(高阻態(tài))。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果[9]。比通過數(shù)據(jù)端移位控制要省時省力。圖3-1174HC595引腳圖[9]74HC595引腳功能如表3-2所示:表3-274HC595引腳功能表【9】管腳編號管腳名管腳定義功能1、2、3、4、5、6、7、15QA—QH三態(tài)輸出管腳8GND電源地9SQH串行數(shù)據(jù)輸出管腳10SCLR移位寄存器清零端11SCK數(shù)據(jù)輸入時鐘線12RCK輸出存儲器鎖存時鐘線13OE輸出使能14SI數(shù)據(jù)線74HC595的移位時鐘SCLK及數(shù)據(jù)鎖存信號RCLK接到單片機的P1.6和P1.7口進行控制,控制兩種顏色的線腳都接在一起。而兩個數(shù)據(jù)輸入口SDI分別接兩個單片機I/O控制。LED點陣列驅(qū)動電路原理圖如圖3-12所示。圖3-1274HC595線路圖3.2.3級聯(lián)LED點陣顯示屏74HC595進行級聯(lián),可共用一個移位時鐘SCLK及數(shù)據(jù)鎖存信號RCLK。SDI口為數(shù)據(jù)輸入口,而數(shù)據(jù)移出是從SDO口,并從下一片的74HC595的SDI進去,就這樣數(shù)據(jù)移位到了八片芯片中。74HC595級聯(lián)電路如圖3-13所示。圖3-1374HC595級聯(lián)電路圖采用級聯(lián)的方法,一塊74HC595可以控制一塊8*8的LED點陣的一種顏色,用8塊74HC595級聯(lián)起來,控制16*64點陣的一種顏色,兩種顏色就要用16塊74HC595。采用掃描的方法,就可以使得每行顯示不用的字符,也就是說每一瞬間只點亮一行。由于16*64LED點陣顯示屏有16行,用一個4-16線譯碼器74HC154,剛好就可以驅(qū)動點陣的16行,它的輸入是一個16進制碼,輸出低電平有效,8550為PNP型三極管,低電平導通,8550可以起到擴大驅(qū)動電流的作用。16*64LED點陣顯示線路如圖3-14所示。圖3-1416*64LED點陣顯示線路圖3.3電源模塊電路在系統(tǒng)中MAX232、74HC154、74HC595、STC89C54RD+都需要5V的供電電壓,無線發(fā)射模塊需要3.3V電壓,所以要通過三端穩(wěn)壓管LM1117-3.3[10]穩(wěn)壓到3.3v給nRF24l01收發(fā)射芯片供電,需要把交流220V電壓進行降壓整流為5V直流電壓為顯示系統(tǒng)供電。電路圖如圖3-15所示。圖3-15電源電路如圖所示,我們用的是低壓直流電源,而我們平時的生活用電是交流的220V的,設計這個電源就是要把交流電220V變成能供我們使用的電,首先用一個變壓器把220V轉(zhuǎn)成12V的電壓,再通過一個整流電路將交流電整流為直流電。通過MC7809穩(wěn)壓芯片輸出9V,最后通過穩(wěn)壓芯片LM7805得出穩(wěn)定的5V電壓,本設計使用5V電源。第四章系統(tǒng)軟件設計在硬件設計好之后,還要進行系統(tǒng)的軟件設計。系統(tǒng)軟件設計分為上位機軟件設計和下位機軟件設計,上位機軟件是上位機管理模塊功能設計,而下位機軟件是在硬件的基礎上,主要無線發(fā)射模塊和LED點陣顯示屏顯示模塊兩部分。本章介紹上位機管理模塊的編寫,上位機與下位機之間的通信協(xié)議的編寫,以及下位機各個功能模塊控制程序的編寫。4.1軟件開發(fā)平臺及開發(fā)語言介紹4.1.1Keil開發(fā)平臺KeilC51是一款兼容51系列單片機的開發(fā)系統(tǒng),它可以用C語言來開發(fā),也可以用匯編來開發(fā)。該軟件有很多的常用庫函數(shù)和非常方便的調(diào)試工具?,F(xiàn)在開發(fā)51單片機大多數(shù)都是用這個開發(fā)工具,因為這個軟件生成的目標代碼效率非常的高,所以很多大型的項目開發(fā)都很理想【11】。4.1.2VisualBasic6.0開發(fā)平臺VisualBasic6.0是微軟專門為VB語言開發(fā)的編程環(huán)境軟件,它具有圖形用戶界面開發(fā)的環(huán)境軟件。VisualBasic6.0[12]因操作簡單實用,所以從其問世以來很受專業(yè)程序員和編程愛好者的追捧。VisualBasic6.0的組件有很多,比如編輯器、設計器、屬性等開發(fā)組件。VisualBasic6.0還提供了窗口編輯,可直接對窗口進行編輯和預覽。4.1.3C語言介紹C語言是目前國際上最流行的、很有發(fā)展前途的程序設計語言之一,既具有一般高級語言特性,又具有低級語言特性[13],既可以用來編寫系統(tǒng)軟件,又可以用來編寫應用程序。C語言其實是把高級的語言的基本機構和低級的語言的實用性統(tǒng)一在一起的編程語言,所以它既有了高級語言的特性,也有低級語言的功能。該編程語言可以以函數(shù)的方式給編程者運用,而且有循環(huán)、選擇和條件等基本語句,可以讓編程結構化。C語言對編寫需要硬件進行操作的場合,優(yōu)于其它高級語言,有一些大型應用軟件也是用C語言編寫的[13]。目前,使用C語言進行程序設計已經(jīng)成為軟件開發(fā)的一個主流。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強程序的可讀性,便于改進、擴充和移植。4.1.4VB語言介紹VisualBasic,簡稱VB,VisualBasic是一種基于Basic的編程語言,它是一種面向?qū)ο蟮目梢暬母呒壵Z言。該語言不僅僅執(zhí)行速度快,而且運用的方法簡單。無論是用來開發(fā)功能復雜的商用應用軟件,還是用來開發(fā)簡單的個人應用軟件,都非常的方便。因為該語言的編程環(huán)境采用的可視化編程環(huán)境,還有面向?qū)ο蟮脑O計方式,所以開發(fā)應用程序操作簡單方便。只要是你能想到的編程任務,功能強大的VB語言基本都能幫你完成。不管你是要設計各種類型的用戶界面還是要利用其它應用程序的對象,又或者是要處理文字圖象到使用數(shù)據(jù)庫,從開發(fā)個人或集體使用的小工具,到大型企業(yè)應用系統(tǒng),更甚者是要通過Internet的遍及全球分布式應用程序,都可在VisualBasic提供的工具中各取所需。4.2上位機管理系統(tǒng)軟件設計上位機管理系統(tǒng)軟件是用RS-232串口和下位機通信的,所以要對串口發(fā)送和接收進行操作。首先根據(jù)系統(tǒng)建立主界面對話框,對串口進行初始化,串口處理等,進而實現(xiàn)給下位機發(fā)送數(shù)據(jù),在可視化界面上顯示出來,便進行操作。4.2.1上位機功能設計上位機軟件管理系統(tǒng)可以實現(xiàn):設置波特率,選擇串口,在上位機軟件上輸入想要顯示的漢字,字母,數(shù)字,按下提取字模按鈕,可以看到相應的16進制數(shù)據(jù),按發(fā)送數(shù)據(jù)可以傳顯示信息給下位機;控制命令有;顯示方式有從左到右、從右到左、靜止3種方式可選,字體顏色有紅、綠、黃三種選擇,顯示速度有慢速,中速和快速三種調(diào)節(jié)方式,選擇想要的控制命令,按發(fā)送命令按鈕,可以控制點陣的顯示。4.2.2上位機軟件設計本設計的上位機軟件是采用VB來編寫的,該上位機既要實現(xiàn)字模數(shù)據(jù)的提取,還要實現(xiàn)和單片機的通信。當上位機提取了相應的字模數(shù)據(jù)后,再通過串口發(fā)送給單片機。上位機和單片機的通信采用的是VB自帶的Mscomm控件,該控件已經(jīng)包含串口傳輸數(shù)據(jù)的協(xié)議,只要設置好該控件,和編寫發(fā)送和接收的函數(shù)就可以實現(xiàn)與單片機的通信了。用VB編寫的上位機串口通信程序如圖4-1所示:Mscomm口初始化Mscomm口初始化發(fā)送握手信息發(fā)送信息和校驗信息單片機接收單片機應答校驗錯誤正確錯誤正確開始結束圖4-1上位機串口通信程序流程圖Mscomm控件有兩種方式來處理消息,一種是用OnComm事件來直接獲取消息,另一種是用查詢CommEvent的屬性來判斷再獲取消息。該控件工作的原理是調(diào)用API函數(shù),API函數(shù)再把數(shù)據(jù)傳送給串口的驅(qū)動程序,驅(qū)動程序再通過串口傳送給單片機。只要理解該控件的各個屬性和事件,就可以正確的實現(xiàn)和單片機的通信了。點陣要顯示的字的數(shù)據(jù)叫字模,本系統(tǒng)的字模的順序是從左到右,從上到下,每一行中左八位一個字節(jié),右八位一個字節(jié),每個字節(jié)中高位在左。上位機根據(jù)要顯示的內(nèi)容從存放在電腦里面的字庫里面提取字模數(shù)據(jù),再用串口發(fā)送給單片機。HZK16文件是按照的是GB2312-80標準,就是通常所說的國標碼也叫區(qū)位碼的標準排列。國標碼共有94個區(qū)(Section),每個區(qū)94個位(Position),因此也稱區(qū)位碼,其中01~09區(qū)是符號、數(shù)字區(qū),16~87區(qū)是漢字區(qū),而10~15區(qū)、88~94區(qū)為空白區(qū)域,計算機處理在漢字和ASCII字符的時候,一個ASCII字符就占用1個字節(jié),一個漢字要占用兩個字節(jié),這個值稱為漢字的內(nèi)碼[14]。其中第一個字節(jié)的值為區(qū)號加上32(20H),第二個字節(jié)的值為位號加上32(20H),為了與ASCII字符區(qū)別開,表示漢字的兩個字節(jié)的最高位都是1,也就是兩個字節(jié)的值都又加上了128(80H)。這樣,通過漢字的內(nèi)碼,就可以計算出漢字的區(qū)位碼,公式如下:Qh=c1-32-128=c1-160,Wh=c2-32-128=c2-160;Qh,Wh為漢字的區(qū)碼和位碼,c1,c2是漢字的第一、二字節(jié)。再用區(qū)碼和位碼就可以得到漢字字模在字庫中的位置:Location=(94*(Qh-1)+(Wh-1))*一個點陣字模的字節(jié)數(shù)[14]。上位機界面圖如圖4-2所示:圖4-2上位機界面圖4.3下位機編程系統(tǒng)軟件采用C語言編寫,按照模塊化的設計思路設計。無線發(fā)模塊的核心控制器為STC89C54,需里實現(xiàn)的功能是接收上位PC機通過RD-232串口發(fā)送過來的數(shù)據(jù),再將數(shù)據(jù)通過nRF24l01模塊轉(zhuǎn)發(fā)出去。4.3.1無線發(fā)射編程單片機從串口接收上位機數(shù)據(jù),是一個個字節(jié)進行接收的,當全部接收完后,就可以用無線發(fā)送出去了。接收完數(shù)據(jù)后判斷是控制命令還是字模數(shù)據(jù),因為無線模塊一次只能發(fā)送32個字節(jié),所以如果是命令數(shù)據(jù),一次就可以發(fā)完,是字模數(shù)據(jù)的話,一次只能發(fā)一個字的數(shù)據(jù),有多少個字就要發(fā)送多少次。無線發(fā)射程序流程圖如圖4-3所示:初始化初始化等待上位機發(fā)送數(shù)據(jù)Nrf24l01發(fā)送數(shù)據(jù)返回接收是否完成發(fā)送是否完成NN開始YY圖4-3無線發(fā)射程序流程圖4.3.2點陣顯示編程顯示屏軟件的編寫主要任務是給顯示屏提供想要顯示的信息數(shù)據(jù),同時設置各種控制信號,使顯示屏按設計的要求顯示信息。顯示屏顯示內(nèi)容可以通過nrf24l01接收顯示數(shù)據(jù),所以點陣顯示程序又分為無線接收和顯示驅(qū)動兩部分。無線接收程序流程圖如圖4-4所示:初始化初始化開始接收數(shù)據(jù)是否接收完成單片機返回NY圖4-4無線接收程序流程圖無線接收模塊的核心控制單元為STC89C54,需要實現(xiàn)的功能有:可以通過nRF24l01接收數(shù)據(jù),接收數(shù)據(jù)用的是中斷,無線模塊接收到數(shù)據(jù)IRQ管腳會產(chǎn)生低電平發(fā)送給單片機,使單片機產(chǎn)生一個外部中斷接收數(shù)據(jù),用中斷接收,可以馬上接收數(shù)據(jù),防止接收數(shù)據(jù)錯誤。接收完數(shù)據(jù)后保存到單片機內(nèi)部的EEPROM,實現(xiàn)掉電保存,最后更新顯示方式或者顯示內(nèi)容。在STC單片機中內(nèi)置了EEPROM(其實是采ISP/IAP技術讀寫內(nèi)部FLASH來實現(xiàn)EEPROM),這樣就節(jié)省了片外資源,使用起來就更加方便了。STC89C54內(nèi)部有16K的EEPROM,與EEPORM有關的寄存器有6個,分別是ISP_DATA、ISP_ADDRH、ISP_ADDRLISP_TRIG、ISP_CMD、ISP_CONTR。EEPROM的命令觸發(fā)必須對ISP_TRIG寄存器先寫入0x46,再寫入0xB9,無論單片機運行在什么工作頻率下,EEPROM的讀、寫、擦除操作的所需要的時間分別約為10us、60us、10ms。點陣顯示的控制器為無線接收單元的STC89C54,分別用74HC595和74HC154做點陣屏的列跟行的驅(qū)動,分別用于將單片機傳來的行掃描數(shù)據(jù)和行顯示串行數(shù)據(jù)轉(zhuǎn)換成并行輸出,行掃描數(shù)據(jù)是用來控制某一時刻要點亮哪一行的,行顯示串行數(shù)是要該行要顯示內(nèi)容的數(shù)據(jù)。工作原理是:先選擇點陣的某一行,再向列驅(qū)動器74HC595寫入該行要顯示的數(shù)據(jù),將該行點亮,同時選中下一行并寫入該行要顯示的數(shù)據(jù)進行顯示。這樣依此點亮,16行都點亮一遍后,又回到第一行,循環(huán)進行掃描,只要屏幕刷新頻率大于25Hz,人眼看來就會感覺是所有行都同時點亮了。點陣屏顯示程序流程圖如圖4-5所示:開始開始初始化從EEPROM中讀取數(shù)據(jù)循環(huán)控制點陣顯示是否有接收到新數(shù)據(jù)接收是否完成無線接收數(shù)據(jù)保存數(shù)據(jù)和更新顯示內(nèi)容或顯示方式NYNY圖4-5點陣屏顯示程序流程圖程序定義兩個32位長度的無符號LONG類型的數(shù)組,每個數(shù)組大小為16,數(shù)組的第一個數(shù)據(jù)就存放第一行的數(shù)據(jù),依次類推存完16行的數(shù)據(jù),一個數(shù)組緩存左邊兩個字,一個數(shù)組緩存右邊那兩個字,剛好能緩存完四個字的字模數(shù)據(jù),要顯示什么內(nèi)容,改變這兩個數(shù)組就內(nèi)容就可以了。實現(xiàn)靜態(tài)顯示內(nèi)容,只要每次把兩數(shù)組的內(nèi)容全部換為想要顯示的內(nèi)容,然后依次提取數(shù)組內(nèi)容去控制點陣驅(qū)動電路,就可以實現(xiàn)靜態(tài)顯示了。要實現(xiàn)左移功能,就是要把緩存左邊兩個字的那個數(shù)組的每個數(shù)據(jù)左移一位,丟棄最高位,再把緩存右邊兩個字的數(shù)組的每個數(shù)據(jù)也左移一位,把移出來的最高位加到左邊那個緩存數(shù)組的最低位,然后再把將要移進的那個數(shù)據(jù)的最高位加到右邊緩存數(shù)據(jù)的最低位,這樣就能實現(xiàn)左移功能了,控制每次移位數(shù)據(jù)的間隔時間就可以控制左移的速度了。要實現(xiàn)上移功能,就是要把兩個數(shù)組的第一個數(shù)據(jù)丟棄,數(shù)組的第二個數(shù)據(jù)放到一個數(shù)據(jù)的位置,依次類此,把第十六個數(shù)據(jù)放到了第十五個數(shù)據(jù)位置,然后再將要移進的數(shù)據(jù)放到第十六個數(shù)據(jù)位置,這樣就實現(xiàn)了上移功能,控制數(shù)據(jù)的替換的時間間隔就能控制上移的移動速度了。用兩個數(shù)組緩存將要顯示的內(nèi)容,這樣對顯示內(nèi)容的操作就是對這兩個數(shù)組的操作,這樣就可以實現(xiàn)字體的各種顯示了。第五章系統(tǒng)調(diào)試硬件設計和軟件編程設計完成后,得出硬件實物。硬件完成后必須對其進行調(diào)試,檢查設計功能是否實現(xiàn)了。軟件硬件完成后開始進行調(diào)試。調(diào)試可分為硬件調(diào)試,軟件調(diào)試。5.1系統(tǒng)硬件調(diào)試硬件調(diào)試是一項細心的工作一定要有耐心。硬件調(diào)試首先要熟悉各功能模塊的原理圖原理和PCB布局,然后根據(jù)各功能模塊進行調(diào)試。硬件調(diào)試主要是檢測電路板的焊接是否合理和各個芯片的輸出、輸入電壓是否符合各自要求,最后檢測各硬件模塊能否完成設計所期望的功能。這樣我們就把硬件調(diào)試分三部分進行調(diào)試:(1)檢測所有焊點是否有虛焊的現(xiàn)象存在以及檢測線路是否有短路;先目測電路板外觀是否焊接完成,是否有氣泡、連焊、虛焊、漏焊等不良焊點,再用萬用表測試看是否有短路和虛焊的現(xiàn)象,若萬用表蜂鳴器持續(xù)鳴響,則表明電路有短路現(xiàn)象。先檢測電路板上的電源線和地線間是否短路,再逐個原件和逐條線路檢測,若發(fā)現(xiàn)短路或虛焊現(xiàn)象,應當即改正,以確保電路完好可用。(2)通電測試所有硬件芯片的輸入輸出電壓是否在設計要求的范圍內(nèi);確保電路無短路和虛焊現(xiàn)象后,就可以通電測試所有電路板中芯片的輸入和輸出電壓是是不是在芯片工作要求的范圍內(nèi)。本系統(tǒng)電源輸入為5V電壓,上電后電路各元器件沒有發(fā)現(xiàn)過熱,異味,冒煙等不良現(xiàn)象。然后測試各器件的電源,接地及一些電平應該固定的端口的電壓。測試的結果為:各器件電源端在4.3V~4.8V之間滿足器件的電源電壓要求,單片機端口在未接負載時端口電壓為4.5V。(3)測試串口系統(tǒng)的通信功能是否能夠?qū)崿F(xiàn)。串口部分的作用是單片機與上位機之間通信,檢測通信是否成功可以用串口調(diào)試助手發(fā)送幾組不同的數(shù)據(jù)給單片機,單片機接收到數(shù)據(jù)后在發(fā)送回電腦,如果發(fā)送和接收回來的數(shù)據(jù)一樣,說明通信時正常的。5.2系統(tǒng)軟件調(diào)試當完成硬件調(diào)試之后,就可以開始軟件調(diào)試了。軟件調(diào)試其實就是軟件的編譯和將各功能模塊程序分別燒入以驗證各部分功能的可實現(xiàn)性。軟件調(diào)試,主要包括串口通信調(diào)試,無線通信調(diào)試,點陣驅(qū)動顯示調(diào)試。在串口通信調(diào)試中,首先用別人的串口調(diào)試助手軟件測試單片機與PC機的通信,如果通信都能正常,說明單片機的串口通信程序沒有問題了。就開始用VB編寫自己需要的上位機,因為以前沒用過VB,所以要了解一下VB的語法,才開始編寫上位機。編寫本系統(tǒng)的上位機,難點只有兩個,就是提取字模數(shù)據(jù)和實現(xiàn)與單片機的通信。通過上網(wǎng)查找資料和多次的反復修改程序,成功的實現(xiàn)了這兩個功能。無線通信調(diào)試,理解了無線模塊的工作原理,然后根據(jù)自己的需要設置無線模塊的寄存器。開始的時候,只是簡單的用一個字節(jié)來通信,成功之后,就設置了一次傳輸32個字節(jié),然后對比傳輸?shù)臄?shù)據(jù)有沒有發(fā)生錯誤。經(jīng)過測試,無線通信都能正確的通信。點陣驅(qū)動顯示調(diào)試部分是系統(tǒng)中最難的了,首先先用簡單的程序讓每一行亮,看看有沒有不亮的點,因為點陣的管腳比較多,很多時候有些地方是沒有連接上的。當每個點都能亮之后,就開始寫驅(qū)動顯示字了。最開始是先寫靜態(tài)顯示漢字的程序,這個最簡單實現(xiàn)了。成功之后,就開始寫左移的功能,這個比較難,要想好用什么方法實現(xiàn)這個功能。經(jīng)過反復的修改程序,終于實現(xiàn)這個功能。能實現(xiàn)左移了之后,要實現(xiàn)上移,就容易多了,不用像寫左移程序那樣走那么多彎路了。把各個部分的程序都寫好后,就開始整體測試了。上位機用串口通信發(fā)送顯示數(shù)據(jù)給單片機,再用無線發(fā)送給另外的單片機,然后再顯示出來。測試這個的時候,發(fā)現(xiàn)當單機控制點陣顯示的時候,有時接收不到無線發(fā)來的數(shù)據(jù)。那個時候接收無線發(fā)來的信息是用查詢的方法的,這樣不能正常的接收信息,就改為了用中斷接收信息,這樣就不會錯過無線發(fā)來的信息了。經(jīng)過整體程序的反復測試和修改,現(xiàn)在系統(tǒng)能夠在上位機輸入要顯示的內(nèi)容,然后提取字模通過串口發(fā)送給下位機,下位機再用無線發(fā)送給另外的單片機,單片機保存數(shù)據(jù)后再在點陣上顯示出來。顯示數(shù)據(jù)最終可以再顯示終端顯示出來了,實物顯示圖如圖5-1所示,從上位機輸入顯示內(nèi)容,可以顯示中文,英文和數(shù)字,字體顏色可以選擇紅色、綠色和黃色,其中黃色是有紅色和綠色兩種基色同時點亮而成的。從實物顯示圖可以看出,本系統(tǒng)的基本功能已然實現(xiàn),系統(tǒng)調(diào)試也就完成了。圖5-1實物顯示圖第六章總結與展望在老師和同學的幫助下畢業(yè)設計功能基本已經(jīng)實現(xiàn),任務總算是成功的完成了,整個畢業(yè)設計的過程中我受益良多。我在設計中學會并運用了很多知識。我掌握了ProtelDXP軟件應用、電路板印刷和焊接技術、LED點陣顯示系統(tǒng)驅(qū)動原理等。除此之外我還學習了上位機設計有關的知識,這是之前所沒有學習過的東西,VB語言的編程也是初次使用,所幸最終上位機的設計與編程最終達到了預期的效果。在設計和實現(xiàn)的過程中難免會遇到問題,我一方面向老師和同學求助,一方面自己也去查閱相關的資料,找出問題并解決了。在整個過程中,我克服困難的信心與決心經(jīng)歷了嚴峻的考驗。畢業(yè)設計完成了,我的專業(yè)基礎知識得到了鞏固和提高,也是一次很好的知識與實踐結合。本設計盡管還處在許多不足的地方,今后我必將努力學習,以彌補自己的不足。大屏幕LED顯示屏是一種應用廣泛地信息顯示媒體,今后必定會往更好更高要求的方向發(fā)展的,因知識和能力的限制,本系統(tǒng)還有很多不足的地方,在今后有很大的提升空間,我會關注LED的發(fā)展,學習更多相關的知識,這樣可以充足自己的知識。參考文獻[1]關積珍.LED顯示屏發(fā)展狀況及趨勢[J].世界電子元器件,2000,(02),277-301[2]陳玉華,王銘霞.LED大屏幕顯示電路的設計[J].大連:大連海事大學學報,1997,(03),55-56[3]周興華,單片機智能化產(chǎn)品C語言設計實例詳解[J].北京:北京航空航天大學出版社2006.7,123-143[4]STC增強型8051單片機指南,www.MCU-Msupportmcuupdatedate[Z]:2005-9-20,2-4[5]NordicVLSIASA.nRF24L01Singlechip2.4GHzTransceiverProductSpecification[Z],2007./.2-10[6]雷曉平,屈莉莉,羅海天.微機原理與接口技術[M].北京:人氏郵電山版社.2005,195-200.[7]李樣芳,肖看.單片機原理、接口及應用嵌入式系統(tǒng)技術基礎[M].北京:清華人學出社.2005,111-113[8]NationalSemiconductor公司器件資料手冊,MM74HC154,4-to-16LineDecoder[Z],2009,4-16[9]余欣.LED顯示屏及控制板的設計與實現(xiàn).[D],鄭州大學碩士學位論文,2011年,17-19[10]SipexCorporation.SPX1117800mALowDropoutVoltageRegulatorDatasheet[Z]..2004,10-12[11]單片機發(fā)展有限公司.基T-KEILC51的高級TKS系列仿真器[Z],使用手冊.2003,17-18[12]文哲雄.用單片機控制LED顯示屏[D].佛山科學技術學院學位論文,佛山:佛山科學技術學院,1995,20-25[13]覃俊、林芳.C語言程序設計教程[M].北京;清華大學出版社,2008.5,3-5[14]袁于程等.基于VB下的漢字字模提取及其LED顯示系統(tǒng)[J],中國科技信息,2008年,150-182[15]MarstonR.Radio-Electronics,WorkingwithLEDdisplaydrivers[J].War1992,Vol.63Issue3,65,8p,3charts,23diagrams;(AN920629056)[16]JeyamkondanS,JayasDS,HollyRA.16x16dotmatrixLEDhas4mmprofile[J].ElectronicsWeekly,11/26/2003Issue2125,36-36,1/9p,1c;(AN11842012).附錄一、下位機原理圖二、無線接收原理圖三、點陣驅(qū)動原理圖四、上位機程序DimsettingAsStringDimsendBytes()AsByteDimComBytes()AsByteDimcheckSumAsByteDimFsCountAsIntegerDimText2CountAsIntegerDimsendCountAsIntegerPrivateSubCom_Clear_Click()Text3.Text="0"FsCount=0EndSubPrivateSubCom_Com_Click()IfNotMSComm1.PortOpenThenMsgBox"串口沒有打開!",vbOKOnlyOrvbInformation,"提示信息"ExitSubEndIfReDimComBytes(0To3)ComBytes(0)=255ComBytes(1)=ComColor.ListIndexComBytes(2)=ComWay.ListIndexComBytes(3)=ComSpeed.ListIndexFsCount=FsCount+4Text3.Text=FsCountMSComm1.Output=ComBytesEndSubPrivateSubCom_Data_Click()IfNotMSComm1.PortOpenThenMsgBox"串口沒有打開!",vbOKOnlyOrvbInformation,"提示信息"ExitSubEndIfIfTrim(Text2.Text)=""ThenExitSubEndIfMSComm1.Output=sendBytesFsCount=FsCount+Text2CountText3.Text=FsCountEndSubPrivateSubCom_Open_Click()OnErrorGoToerrStrIfNotMSComm1.PortOpenThensetting=ComBaud.Text&",N,8,1"MSComm1.CommPort=ComPort.ListIndex+1MSComm1.Settings=settingMSComm1.InputMode=comInputModeBinaryMSComm1.Handshaking=comNoneMSComm1.OutBufferSize=1024MSComm1.InBufferSize=512MSComm1.InputLen=0MSComm1.SThreshold=1MSComm1.RThreshold=1MSComm1.PortOpen=TrueShape1.BackColor=RGB(255,0,0)Com_Open.Caption="關閉串口"ElseShape1.BackColor=RGB(255,255,255)MSComm1.PortOpen=FalseCom_Open.Caption="打開串口"EndIfExitSuberrStr:IfErr.Number=8002ThenMsgBox"串口不存在!",vbOKOnlyOrvbInformationElseIfErr.Number=8005ThenMsgBox"串口已打開!",vbOKOnlyOrvbInformationEndIfEndSubPrivateSubForm_Load()Text1=""Text2=""Text3.Text="0"ComPort.ListIndex=0ComBaud.ListIndex=0ComColor.ListIndex=0ComWay.ListIndex=0ComSpeed.ListIndex=0EndSubPrivateSubCommand1_Click()IfTrim(Text1.Text)=""ThenMsgBox"沒有輸入字符!",vbOKOnlyOrvbInformation,"提示信息"ExitSubEndIfText2=""OpenApp.Path+"\HZK16"ForBinaryAs#1'打開字庫文件DimbyteCnword(1To32)AsByte'漢字DimbyteEnword(1To16)AsByte'非漢字strWord=Text1.TextintLen=Len(strWord)'字符長度DimcharWord()AsStringReDimcharWord(1TointLen)Text2Count=intLen*32ReDimsendBytes(0ToText2Count)sendBytes(0)=intLenFori=1TointLencharWord(i)=Mid(strWord,i,1)intPosition=Position(charWord(i))IfintPosition>128ThenGet#1,intPosition,byteCnword()Forj=1To32sendBytes((i-1)*32+j)=byteCnword(j)IfbyteCnword(j)<16ThenText2.Text=Text2.Text+"0"+Hex(byteCnword(j))+"H,"ElseText2.Text=Text2.Text+Hex(byteCnword(j))+"H,"EndIfNextElseGet#1,intPosition,byteEnword()Forj=1To16IfbyteEnword(j)<16ThenText2.Text=Text2.Text+"0"+Hex(byteEnword(j))+"H,"ElseText2.Text=Text2.Text+Hex(byteEnword(j))+"H,"EndIfNextEndIfText2.Text=Text2.Text+Chr(13)+Chr(13)Text2.Text=Text2.Text+charWord(i)NextClose#1EndSubPublicFunctionPosition(chAsString)AsLong'輸入字符,返回字庫地址Ifch>"z"Then'字符串變量ch用于存放待處理的漢字strCh=Hex(Asc(ch))'獲得該漢字的十六進制的ASCII碼strQh=Left(strCh,2)'對應漢字機內(nèi)碼的高字節(jié)strWh=Right(strCh,2)'對應漢字機內(nèi)碼的低字節(jié)intQh=Val("&H"&strQh)intWh=Val("&H"&strWh)Position=32*((intQh-161)*94+(intWh-161))+1ElsePosition=Asc(ch)EndIfEndFunction五、下位機接收程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint//******************NRF24L01端口定義*************************sbitMISO=P2^4;sbitMOSI=P2^3;sbitSCK=P2^2;sbitCE=P2^0;sbitCSN=P2^1;sbitIRQ=P2^5;sbitLED=P2^6;sbitKEY=P2^7;//***********************************發(fā)送緩沖區(qū)*********************************************ucharTxBuf[32]={0};////***********************************NRF24L01*************************************#defineTX_ADR_WIDTH5//5字節(jié)的發(fā)送地址#defineRX_ADR_WIDTH5//5字節(jié)的接收地址#defineTX_PLOAD_WIDTH32//32字節(jié)的發(fā)送數(shù)據(jù)#defineRX_PLOAD_WIDTH32//32字節(jié)的接收數(shù)據(jù)ucharcodeTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//本地地址ucharcodeRX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//接收地址//*******************************NRF24L01寄存器指令*******************************************************#defineREAD_REG0x00//讀寄存器指令#defineWRITE_REG0x20//寫寄存器指令#defineRD_RX_PLOAD0x61//讀取接收數(shù)據(jù)指令#defineWR_TX_PLOAD0xA0//寫待發(fā)數(shù)據(jù)指令#defineFLUSH_TX0xE1//沖洗發(fā)送FIFO指令#defineFLUSH_RX0xE2//沖洗接收FIFO指令#defineREUSE_TX_PL0xE3//定義重復裝載數(shù)據(jù)指令#defineNOP0xFF//保留//**************************SPI(nRF24L01)寄存器地址************//#defineCONFIG0x00//配置收發(fā)狀態(tài),CRC校驗模式以及收發(fā)狀態(tài)響應方式#defineEN_AA

溫馨提示

  • 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

提交評論