版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)論文論文題目基于上位機(jī)的無線雙色點(diǎn)陣顯示系統(tǒng)設(shè)計(jì)系別電子信息工程系專業(yè)電子科學(xué)與技術(shù)班級學(xué)號學(xué)生姓名指導(dǎo)教師(簽名)完成時(shí)間2013年5月摘要LED顯示屏是20世紀(jì)90年代出現(xiàn)的新型平板顯示器件,LED點(diǎn)陣屏是由許多發(fā)光二極管按規(guī)律排列所組成的點(diǎn)陣顯示屏幕,它可用來顯示字符、圖案等信息,具有可靠性高、使用壽命長、環(huán)境適應(yīng)能力強(qiáng)、性能價(jià)格比高等特點(diǎn),因此在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。本設(shè)計(jì)的顯示終端是用16塊8×8的雙色點(diǎn)陣組成16行64列的點(diǎn)陣,全屏能顯示4個(gè)漢字,整機(jī)以40腳單片機(jī)STC89C4RD+為核心,制作出可更新內(nèi)容的顯示屏,通過16塊74HC595組成兩路級聯(lián)電路來控制點(diǎn)陣的64列的兩種顏色,1塊74HC154和16個(gè)三極管(8550)來控制點(diǎn)陣的16行。本設(shè)計(jì)是一種基于無線傳輸?shù)腖ED點(diǎn)陣屏顯示系統(tǒng)。系統(tǒng)上位機(jī)與下位機(jī)之間的通信采用RS-232串口,再采用無線短距離通信方式,傳輸數(shù)據(jù),使得LED顯示終端既便于安裝和更換位置,又降低了運(yùn)行費(fèi)用,顯示方式可以靜態(tài)、移入移出、閃爍等。文中詳細(xì)介紹了LED點(diǎn)陣顯示的硬件設(shè)計(jì)思路、硬件電路各個(gè)部分的功能及原理、相應(yīng)軟件的程序設(shè)計(jì),以及使用說明等。關(guān)鍵詞:LED顯示屏;串行通信;無線傳輸;單片機(jī);上位機(jī)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項(xiàng)目背景 11.2國內(nèi)外發(fā)展?fàn)顩r及發(fā)展趨勢 11.3論文主要內(nèi)容 2第二章系統(tǒng)總體設(shè)計(jì) 32.1功能設(shè)計(jì) 32.2總體方案 32.3系統(tǒng)硬件總體設(shè)計(jì)方案 52.4系統(tǒng)軟件總體設(shè)計(jì)方案 6第三章系統(tǒng)硬件電路設(shè)計(jì) 83.1下位機(jī)無線發(fā)射電路設(shè)計(jì) 83.2LED點(diǎn)陣控制電路設(shè)計(jì) 123.3電源模塊電路 18第四章系統(tǒng)軟件設(shè)計(jì) 194.1軟件開發(fā)平臺及開發(fā)語言介紹 194.2上位機(jī)管理系統(tǒng)軟件設(shè)計(jì) 194.3下位機(jī)編程 21第五章系統(tǒng)調(diào)試 255.1系統(tǒng)硬件調(diào)試 255.2系統(tǒng)軟件調(diào)試 25第六章總結(jié)與展望 27參考文獻(xiàn) 28附錄 29致謝 54第一章前言電子顯示屏最初是由燈泡或照明燈構(gòu)成的,后來發(fā)展為由顯像管構(gòu)成,在全球發(fā)展很迅速,是一種很新型的顯示媒體。LED顯示屏是八十年代后期發(fā)展起來的,以其亮度高、動(dòng)態(tài)影像顯示效果好、故障低、能耗少、使用壽命長、顯示內(nèi)容多樣化、顯示方式豐富、性價(jià)比高等優(yōu)勢已廣泛應(yīng)用于各行各業(yè)。LED顯示屏制作技術(shù)已經(jīng)相當(dāng)成熟,售價(jià)也不高,因此隨處可見,它作為信息顯示媒體,應(yīng)用領(lǐng)域廣泛,如商場、機(jī)場、車站和室外廣告都有LED顯示屏。本課題即是針對信息顯示需求,在考慮安裝控制方便的基礎(chǔ)上,提出了一種基于無線的雙色LED顯示屏控制系統(tǒng)。1.1項(xiàng)目背景TA\s"1.1項(xiàng)目背景"\c1LED顯示屏是20世紀(jì)90年代新出現(xiàn)的平板顯示器件,LED顯示屏(LEDScreen,LEDdisplay):又叫飄字屏幕或者電子顯示屏,是由ledpc面板和LED點(diǎn)陣組成,用綠色,紅色,白色,藍(lán)色LED燈的亮滅來顯示文字、圖片、視頻等內(nèi)容,無論用LED制作單色、雙色還是三色屏,想要顯示圖象文字,就需要構(gòu)成象素的每個(gè)LED的發(fā)光亮度都必須能夠調(diào)節(jié),而且可以根據(jù)不同場合的需要做出不同的調(diào)節(jié)。LED顯示屏受到的廣泛應(yīng)用和關(guān)注,使得其已經(jīng)成為社會(huì)的一個(gè)重要的角色。LED的發(fā)展前景極為看好,目前正趨向于更高亮度、更耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,穩(wěn)定性、全色化方向發(fā)展。系統(tǒng)設(shè)計(jì)的是一個(gè)無線LED顯示屏,也就是說采用無線通信的方式,更新顯示顯示內(nèi)容,這樣做就可以達(dá)到便于安裝和更換位置的目的,同時(shí)也是為了節(jié)省費(fèi)用。這樣對LED顯示屏的發(fā)展也有促進(jìn)作用的,更利于它的發(fā)展,控制技術(shù)有所創(chuàng)新。不管無線LED顯示屏應(yīng)用在哪里,都能夠達(dá)到塑造良好形象的目的,有很好的社會(huì)效益。本系統(tǒng)的設(shè)計(jì)很利于自己專業(yè)知識的提升,同時(shí)對LED顯示屏的發(fā)展也有積極的意義。1.2國內(nèi)外發(fā)展?fàn)顩r及發(fā)展趨勢LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,它由許多的發(fā)發(fā)二極管或像素單元組成,靠燈的亮滅來顯示信息[1]。八十年代后期LED點(diǎn)陣顯示屏的應(yīng)用極少,顯示屏控制技術(shù)也沒有的到提高。初期的LED點(diǎn)陣顯示屏一般是紅、綠雙基色,成本較高,在國外應(yīng)用較廣泛,國內(nèi)甚少。九十年代,全球信息產(chǎn)業(yè)發(fā)展迅速,信息技術(shù)不斷突破,這時(shí)國產(chǎn)的LED顯示屏已經(jīng)具備了16級灰度、256色視控制技術(shù)和無線遙控等,技術(shù)達(dá)到了國際先進(jìn)水平。如今LED大屏幕的發(fā)展達(dá)到成熟期,LED器件成本大幅度下降,LED點(diǎn)陣顯示屏得到了廣泛應(yīng)用。我國LED點(diǎn)陣顯示屏,發(fā)展迅速,幾年下來,取得了很好地成績,不少是具有相當(dāng)規(guī)模的企業(yè),位居骨干企業(yè)之中。我國LED點(diǎn)陣顯示屏水平處于領(lǐng)先地位,例如,目前世界最大LED點(diǎn)陣顯示屏是一個(gè)9500平米巨型LED顯示屏,面積達(dá)400平方,在2010年上海世博會(huì)開幕式場館,這個(gè)顯示屏采用P18表貼工藝制做,壓鑄鋁箱體結(jié)構(gòu)。LED點(diǎn)陣顯示屏產(chǎn)業(yè)日益發(fā)展壯大,目前正成為我國電子信息產(chǎn)業(yè)的極其重要組成部分。據(jù)美國StandfordResources對LED顯示屏產(chǎn)品國際市場概況的預(yù)測,當(dāng)前和未來市場上對LED顯示屏產(chǎn)品的采用將會(huì)以全彩高畫質(zhì)為主。目前,LED顯示屏技術(shù)已經(jīng)基本把難關(guān)攻克,發(fā)光顯示器件的亮度很高,質(zhì)量也更加好,價(jià)格更是降低了不少,這樣就促進(jìn)了LED顯示屏的需求量,很有市場發(fā)展?jié)撃?。未來的LED顯示屏更完美,應(yīng)用更廣泛。LED控制器設(shè)計(jì)個(gè)屏幕設(shè)計(jì)開始逐漸分離,我國LED產(chǎn)業(yè)發(fā)展迅速,從幾家年產(chǎn)值不高的企業(yè)發(fā)展到了幾十家年產(chǎn)值幾億元的骨干企業(yè),就整個(gè)行業(yè)來說具有較強(qiáng)的開發(fā)能力,就整個(gè)LED顯示屏系統(tǒng)而言,中國與國際處在同一技術(shù)水平。我國的在顯示屏的制造上,在幾十年間發(fā)展的非常迅速,但在顯示器件的封裝和設(shè)計(jì)上還是跟不上發(fā)達(dá)國家的技術(shù)水平,還有更加努力去研制?,F(xiàn)代社會(huì)是一個(gè)信息社會(huì),顯示技術(shù)必將發(fā)展迅速,二十一世紀(jì)必將發(fā)展成直流式平板顯示。如此說來,LED點(diǎn)陣顯示屏發(fā)展方向很有可能是平板顯示的直流產(chǎn)品,那么其發(fā)展趨勢就是標(biāo)準(zhǔn)化和規(guī)范化。1.3論文主要內(nèi)容根據(jù)設(shè)計(jì)要求,擬定論文的內(nèi)容和結(jié)構(gòu)安排如下:(1)題目的選定根據(jù)選題要求,并結(jié)合自身興趣和所掌握的知識,決定做有關(guān)點(diǎn)陣顯示屏的題目,有你定了幾套方案,經(jīng)過分析和比較,最終決定以PC為上位機(jī),以單片機(jī)為核心控制器,加上點(diǎn)陣屏的驅(qū)動(dòng)電路,并選擇雙基色LED點(diǎn)陣,制作出一個(gè)可以更新信息的雙色LED點(diǎn)陣顯示屏。(2)方案實(shí)現(xiàn)根據(jù)設(shè)計(jì)思想,應(yīng)選擇合適的器件加以實(shí)現(xiàn)。根據(jù)功能要求,選定了以40腳單片機(jī)STC89C4RD+為核心,74HC595組成兩路級聯(lián)電路來做列驅(qū)動(dòng),控制點(diǎn)陣的兩種顏色74HC154和16個(gè)三極管(8550)來做行驅(qū)動(dòng)。論文中詳細(xì)介紹了這些器件參數(shù)和在設(shè)計(jì)中的應(yīng)用。(3)軟件編程根據(jù)硬件的特點(diǎn)和要求,選用C語言編寫下位機(jī)管理模塊程序,而上位機(jī)管理模塊則選用VB語言來編寫,用模塊化的方法編寫程序。(4)系統(tǒng)調(diào)試硬件的制作和軟件編程設(shè)計(jì)都完成之后,還有要對系統(tǒng)進(jìn)行調(diào)試,先進(jìn)行硬件調(diào)試,然后進(jìn)行軟件調(diào)試,完善設(shè)計(jì)中的不足,實(shí)現(xiàn)設(shè)計(jì)的功能,最終完成設(shè)計(jì)。(5)結(jié)論設(shè)計(jì)完成后對設(shè)計(jì)中所遇到的問題、經(jīng)驗(yàn)教訓(xùn)、以及自己的想法進(jìn)行總結(jié)。第二章系統(tǒng)總體設(shè)計(jì)2.1功能設(shè)計(jì)本方案設(shè)計(jì)一個(gè)LED顯示屏,具體要求滿足以下條件:(1)要求采用51單片機(jī)作為微控制器;(2)可以用上位機(jī)提取要顯示內(nèi)容的字模數(shù)據(jù),上位機(jī)可以通過串口發(fā)送數(shù)據(jù)給單片機(jī);(3)單片機(jī)控制無線模塊發(fā)送數(shù)據(jù)給LED顯示屏,四個(gè)16x16的LED點(diǎn)陣顯示屏進(jìn)行文字顯示;(4)在目測條件下LED點(diǎn)陣顯示屏各點(diǎn)顯示均勻、充足、穩(wěn)定、清晰。2.2總體方案要知道,LED作為信息顯示媒體,是要給更多的人提供信息的,所以應(yīng)用來流動(dòng)人口比較多的戶外的,戶外環(huán)境很容易損壞電子器件的,所以硬件要求很高。硬件的設(shè)計(jì)一般采用模塊化設(shè)計(jì),根據(jù)本設(shè)計(jì)功能的要求,本設(shè)計(jì)包括了上位機(jī)上的數(shù)據(jù)提取軟件設(shè)計(jì),上位機(jī)與單片機(jī)的串口傳輸數(shù)據(jù)的設(shè)計(jì),無線發(fā)送接收數(shù)據(jù)的設(shè)計(jì),16塊8×8的的雙色點(diǎn)陣組成的16×64雙色點(diǎn)陣驅(qū)動(dòng)電路設(shè)計(jì)。設(shè)計(jì)總體框圖如圖2-1所示:上位機(jī)上位機(jī)無線發(fā)送模塊無線接收模塊點(diǎn)陣控制電路16*64點(diǎn)陣顯示屏串口圖2-1設(shè)計(jì)總體框圖2.2.1主控器的選擇所謂單片機(jī)就是一種集成集成器件,其實(shí)質(zhì)上是一種微型計(jì)算機(jī),它由INTEL公司發(fā)明,最早是MCS-85,現(xiàn)在是MCS-5。單片機(jī)作為一種微機(jī),當(dāng)然就要進(jìn)行數(shù)學(xué)運(yùn)算或邏輯運(yùn)算,面向控制而設(shè)計(jì)的集成電路,可以用它來完成很多不同的控制任務(wù)。我們目前應(yīng)用的MCS-51單片機(jī)最基本的配置:集成了CPU、ROM、RAM、4個(gè)8位的并口(32個(gè)IO口)、全雙工串行口、定時(shí)器/計(jì)數(shù)器,并有控制功能較強(qiáng)的布爾處理器。單片機(jī)品種眾多,型號更是多樣化,CPU處理的位數(shù)選擇當(dāng)然也是很豐富的,有8,16,32到64位幾種選擇,根據(jù)需要來選擇。單片機(jī)片上I/O相當(dāng)?shù)呢S富,一些單片機(jī)很是集成有A/D轉(zhuǎn)換,“看門狗”等。它們的價(jià)格也高低不等,這樣就極大地滿足了開發(fā)者的選擇自由。系統(tǒng)下位機(jī)的核心控制器是單片機(jī),所以單片機(jī)的選擇尤為重要,選對了單片機(jī),就基本上保證了系統(tǒng)工作的靈活性和穩(wěn)定性,其實(shí)對于單片機(jī)的選擇就是對其本身的性能和片內(nèi)資源的選擇。本設(shè)計(jì)的單片機(jī)要接收上位機(jī)發(fā)送的數(shù)據(jù)并進(jìn)行存儲(chǔ),在既沒有沒有外擴(kuò)程序存儲(chǔ)器也沒有外擴(kuò)數(shù)據(jù)存儲(chǔ)器的情況下,本系統(tǒng)選擇了STC89C54RD+增強(qiáng)型51單片機(jī),它有大容量的數(shù)據(jù)存儲(chǔ)區(qū)。STC89C54RD+單片機(jī)最高時(shí)鐘頻率是80M,極大限度地提高了控制器的運(yùn)行速度,集成了大容量的16KB程序存儲(chǔ)器及1280B的數(shù)據(jù)存儲(chǔ)器,并有在系統(tǒng)可編程功能以及在應(yīng)用可編程功能,可以遠(yuǎn)程軟件升級,不需要編程器,這樣就降低了開發(fā)復(fù)雜度。2.2.2數(shù)據(jù)傳輸方案論證(1)并行傳輸顧名思義,并行傳輸方式就是多個(gè)數(shù)據(jù)并排地進(jìn)行傳輸,每個(gè)數(shù)據(jù)單獨(dú)使用一條線路,同時(shí)進(jìn)行數(shù)據(jù)的傳輸,例如,8位的數(shù)據(jù)就要用8根并排的線路同時(shí)傳輸。并行傳輸方式傳輸速度很快,但是數(shù)據(jù)位多信道也要多,投資就相當(dāng)大了。(2)串行傳輸所謂串行傳輸方式就是構(gòu)成字符的二進(jìn)制代碼在同一條信道上以位為單位,按順序逐位傳輸,按位發(fā)送,逐位接收,同時(shí)確認(rèn)字符,因此要采取同步措施。這種傳輸方式速度雖然很慢,但其只需要一條傳輸信道,投資小很多,相對易于實(shí)現(xiàn)。若采用并行方式,從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并列傳輸?shù)姆桨甘遣豢扇〉?。采用串行傳輸?shù)姆椒?,是?shù)據(jù)傳輸采用的主要傳輸方式,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器。相比較下選用串行通信較合理。2.2.3顯示方案論證LED顯示屏通常有兩種顯示驅(qū)動(dòng)方式(1)靜態(tài)顯示方式靜態(tài)驅(qū)動(dòng)方式就是對LED器件的控制實(shí)行“1對1”的方式,就是把多個(gè)LED顯器的每一段與一個(gè)獨(dú)立的I/O口連接起來,公共端就根據(jù)數(shù)碼管的種類連接到VCC或GND端,這種顯示方式的每一個(gè)顯示器都要占用一個(gè)單獨(dú)的I/O端口,單片機(jī)只需把要顯示的字形代碼發(fā)送到接口電路,要可以顯示字符了,因此,如果使用這種方法,當(dāng)顯示位數(shù)較多時(shí)單片機(jī)中I/O口的占用就很多了,需要提供的I/O接口電路也較復(fù)雜但它具有編程簡單,顯示穩(wěn)定,CPU的效率較高等優(yōu)點(diǎn),這種方式只適用LED器件較少的顯示電路。(2)動(dòng)態(tài)顯示方式LED動(dòng)態(tài)顯示方式其實(shí)利用人視覺暫留特性,一個(gè)LED動(dòng)態(tài)點(diǎn)亮,其實(shí)它并沒有一直被點(diǎn)亮,只是按一定的頻率掃描,而我們看到他一直是亮的,是看不出燈有熄滅過的,看著還是像一直都亮。只要LED掃描頻率大于25Hz,就可以在我們眼睛里殘留影像,這樣我們的眼睛就能看到一幅完整的圖像了。采用動(dòng)態(tài)顯,既節(jié)省了控制線數(shù),也節(jié)能,適用于大屏幕LED。本設(shè)計(jì)采用動(dòng)態(tài)掃描的方式,在設(shè)計(jì)電路時(shí)更是考慮用重疊處理的方法,在顯示本行各列顯示數(shù)據(jù)的同時(shí),傳送下一行的列顯示數(shù)據(jù),這樣還可以節(jié)省掃描時(shí)間。在設(shè)計(jì)電路的時(shí)候16行使用一個(gè)行驅(qū)動(dòng)器,64行就用8個(gè)列驅(qū)動(dòng)器,兩種顏色就要用16個(gè)列驅(qū)動(dòng)器了,這樣的設(shè)計(jì)可以實(shí)現(xiàn)重疊處理。顯示模塊的結(jié)構(gòu)框圖如圖2-2所示:單片機(jī)控制器行驅(qū)動(dòng)8*8LED點(diǎn)陣單片機(jī)控制器行驅(qū)動(dòng)8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣8*8LED點(diǎn)陣列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)列驅(qū)動(dòng)圖2-2顯示模塊的結(jié)構(gòu)框圖2.3系統(tǒng)硬件總體設(shè)計(jì)方案本系統(tǒng)需做出一個(gè)可行的方案,根據(jù)硬件的功能結(jié)構(gòu)選取合適的器件,器件不但要求能夠?qū)崿F(xiàn)所要求的功能還要能兼容整個(gè)系統(tǒng),且方案必須要符合LED顯示原理及驅(qū)動(dòng)方式才可以進(jìn)行,系統(tǒng)設(shè)計(jì)包括軟件和硬件兩個(gè)方面,其中硬件主要分為兩個(gè)部分:下位機(jī)無線發(fā)射部分,用于完成上位機(jī)數(shù)據(jù)接收及發(fā)射。無線接收和點(diǎn)陣控制,用于完成數(shù)據(jù)接收和控制LED點(diǎn)陣屏。PCPC上位機(jī)上位機(jī)串口STC89C54RD+單片機(jī)電源復(fù)位電路3.3V穩(wěn)壓Nrf24l01發(fā)射模塊圖2-3下位機(jī)無線發(fā)射結(jié)構(gòu)圖下位機(jī)無線發(fā)射結(jié)構(gòu)如圖2-3所示,系統(tǒng)中PC上位機(jī)機(jī)可以設(shè)置命令和提取顯示數(shù)據(jù),在由它發(fā)送命令指令和顯示數(shù)據(jù),通過RS-232發(fā)送給單片機(jī),單片機(jī)機(jī)接收后再通過無線模塊發(fā)送出去。無線接收和點(diǎn)陣控制結(jié)構(gòu)如圖2-4所示,主要包括LED驅(qū)動(dòng)電路和無線接收電路。由于單片機(jī)端口驅(qū)動(dòng)能力有限,不能夠直接驅(qū)動(dòng)LED屏,否則LED屏幕亮度不夠或者不亮,所以要加驅(qū)動(dòng)電路,驅(qū)動(dòng)電路又可以分為行驅(qū)動(dòng)和列驅(qū)動(dòng)電路,分別驅(qū)動(dòng)LED點(diǎn)陣顯示屏的16行和64列。無線接收到數(shù)據(jù)或命令,同時(shí)存儲(chǔ)在單片機(jī)中,單片機(jī)收到命令,就對LED進(jìn)行控制顯示信息。STC89C54RD+單片機(jī)電源3.3V穩(wěn)壓列驅(qū)動(dòng)行驅(qū)動(dòng)復(fù)位電路16*64點(diǎn)陣顯示屏Nrf24l01接收模塊圖2-4無線接收和點(diǎn)陣控制結(jié)構(gòu)圖2.4系統(tǒng)軟件總體設(shè)計(jì)方案根據(jù)系統(tǒng)功能的需求,主控軟件必須具有更改顯示內(nèi)容和發(fā)送命令等功能,系統(tǒng)軟件設(shè)計(jì)主要分為上位機(jī)設(shè)計(jì)和下位機(jī)控制設(shè)計(jì)兩部分,上位機(jī)用VB語言編寫,上位機(jī)管理系統(tǒng)設(shè)計(jì)圖如圖2-5所示:上位機(jī)管理系統(tǒng)上位機(jī)管理系統(tǒng)轉(zhuǎn)換和發(fā)射系統(tǒng)設(shè)置顯示文本處理圖2-5上位機(jī)管理系統(tǒng)設(shè)計(jì)圖下位機(jī)編程語言用C語言編寫,因?yàn)椴捎昧藷o線傳輸數(shù)據(jù),所以下位機(jī)軟件要分成兩部分。一部分為接收上位機(jī)的數(shù)據(jù),然后通過無線發(fā)送出去;另一部為無線接收和控制點(diǎn)陣顯示。下位機(jī)軟件編程結(jié)構(gòu)圖如圖2-6所示:LED點(diǎn)陣顯示程序LED點(diǎn)陣顯示程序主程序各種顯示方式子程序串口接收程序無線發(fā)送程序主程序無線接收程序圖2-6下位機(jī)軟件編程結(jié)構(gòu)圖第三章系統(tǒng)硬件電路設(shè)計(jì)根據(jù)基于上位機(jī)的無線雙色點(diǎn)陣顯示系統(tǒng)的功能將系統(tǒng)劃分為上位機(jī)發(fā)送管理模塊、無線發(fā)送無線接收、點(diǎn)陣控制和電源模塊四個(gè)部分,具體工作流程為:上位PC機(jī)通過串口通信向單片機(jī)發(fā)送顯示命令和顯示數(shù)據(jù)內(nèi)容,單片機(jī)接收后執(zhí)行顯示命令處理顯示代碼將顯示內(nèi)容通過I/O口串行輸出并且控制譯碼電路完成串并轉(zhuǎn)換并行輸出,最后由顯示驅(qū)動(dòng)電路進(jìn)行電壓和電流的處理以達(dá)到LED顯示屏的顯示電流、電壓要求,進(jìn)而使顯示屏顯示內(nèi)容[2]。四個(gè)模塊中的上位機(jī)管理單元是不需要硬件設(shè)計(jì),其余均需要硬件設(shè)計(jì),以下詳細(xì)介紹各單元電路設(shè)計(jì)。3.1下位機(jī)無線發(fā)射電路設(shè)計(jì)無線發(fā)射單元中控制器STC89C54RD+通過RS-232串口接收上位機(jī)傳來的數(shù)據(jù),然后傳給nrf24l01無線收發(fā)模塊,nrf24l01無線收發(fā)模塊通過天線將數(shù)據(jù)發(fā)送出去。3.1.1STC89C54RD+芯片介紹單片機(jī)是1971年誕生的,作為微型計(jì)算機(jī)一個(gè)很重要的分支,以極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用廣泛,發(fā)展迅速[3]。單片機(jī)種類繁多,MCS51系列單片機(jī)是一款技術(shù)相對成熟的控制器,比較受歡迎,價(jià)格便宜,性能又好,值得信賴。而圍繞51內(nèi)核衍生出來的單片機(jī)品中也很多,有很多增強(qiáng)型的單片機(jī),實(shí)用性更強(qiáng)。單片機(jī)是整個(gè)系統(tǒng)的核心部件,選擇合適的單片機(jī)才能保證系統(tǒng)的整體性能,單片機(jī)的選擇實(shí)際上就是對其內(nèi)部資源和靈活性的選擇。STC89C54RD+增強(qiáng)型51單片機(jī)是低功耗,在系統(tǒng)應(yīng)用可編程,不占用戶資源的單片機(jī),它的指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源是與標(biāo)準(zhǔn)8052單片機(jī)兼容的,它的最高時(shí)鐘頻率是80MHz,STC89C54RD+單片機(jī)的實(shí)物圖如圖3-1所示。STC89C54RD+單片機(jī)的特性[4]:(1)加密性強(qiáng),無法解密;(2)超強(qiáng)抗干擾;(3)在系統(tǒng)可編程,無需編程器,可遠(yuǎn)程升級;(4)可送STC-ISP下載器,1萬片/人/天;(5)可供應(yīng)內(nèi)部集成MAX810專用復(fù)位電路的單片機(jī),只有D版本才有內(nèi)部集成專用復(fù)位電路,原復(fù)位電路可以保留,也可以不用,不用時(shí)RESET腳直接短接到地。圖3-1STC89C54RD+單片機(jī)的實(shí)物圖STC89C54RD+單片機(jī)的封裝圖如圖3-2所示:圖3-2STC89C54RD+單片機(jī)的封裝圖[4]3.1.2nrf24l01無線收發(fā)模塊Nrf24L01微功率無線通訊模塊,采用Nordic公司的nrf24l01芯片,是一種工作在2.4-2.5GHz的無線收發(fā)器芯片,無線收發(fā)器包括:頻率發(fā)生器,增強(qiáng)型SchockBurstTM模式控制器,功率放大器,晶體振蕩器,調(diào)制器解調(diào)器,輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進(jìn)行設(shè)置極低的電流消耗當(dāng)工作在發(fā)射模式下發(fā)射功率為-6dBm時(shí)電流消耗為9.0mA接收模式時(shí)為12.3mA,掉電模式和待機(jī)模式下電流消耗更低[5]。nrf2401實(shí)物圖如圖3-3所示:圖3-3nrf24l01實(shí)物圖工作模式nRF24L01可以設(shè)置為以下幾種主要的模式表3-1nRF24L01主要工作模式[5]模式PWR_UPPRIM_RXCEFIFO寄存器狀態(tài)接收模式111-發(fā)送模式101數(shù)據(jù)在TX發(fā)送模式101→0停留在發(fā)送模式直至數(shù)據(jù)發(fā)送完待機(jī)模式II101TX待機(jī)模式I1-0無數(shù)據(jù)傳輸?shù)綦娔J?3.1.3LM1117-3.3芯片介紹LM1117是一個(gè)正向低壓降穩(wěn)壓器,在1A電流下壓降為1.2V,LM1117有兩個(gè)版本:固定輸出版本和可調(diào)版本,固定輸出電壓為1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有1%的精度;固定輸出電壓為1.2V的精度為2%。LM1117有過熱保護(hù)和電流限制功能,是電池供電的絕佳選擇。其引腳圖如圖3-4所示。圖3-4LM1117管腳圖3.1.4nrf24l01無線收發(fā)模塊原理圖nRF24L01的應(yīng)用電路原理圖如圖3-5所示。nRF24L01的應(yīng)用電路并不復(fù)雜,它采用了增強(qiáng)型SchockBurstTM模式控制器,其中通過程序進(jìn)行可以對輸出功率和通信頻道進(jìn)行配置。低壓供電,需要輸入3.3V,電源供電時(shí)5V的,所以設(shè)計(jì)中通過LM1117正向低壓穩(wěn)壓器輸出電壓為3.3V,供無線模塊nrf24l01使用。nrf24l01與單片機(jī)是通過SPI接口通信的,由于本系統(tǒng)所選擇的單片機(jī)沒有SPI接口,所以用I/O口模擬。圖3-5nRF24L01的應(yīng)用電路原理圖3.1.5RS-232串口通信串口的概念并不復(fù)雜,它是按位bit發(fā)送和接收字節(jié)的,是一種極其通用的計(jì)算機(jī)通信協(xié)議。串行通信有同步傳輸和異步傳輸兩種模式,但目前通常是用異步傳輸模式通信,異步傳輸用9支引腳(DB-9接口)。RS-232通信接口9支引腳的相關(guān)說明[6]:(1)CD載波檢測:(2)RXD接收數(shù)據(jù);(3)TXD發(fā)送數(shù)據(jù);(4)DTR數(shù)據(jù)終端準(zhǔn)備好;(5)GND信號地;(6)DSR數(shù)據(jù)設(shè)備準(zhǔn)備好;(7)RTS請求發(fā)送;(8)CTS允許發(fā)送;(9)RI振鈴指示。串口的電氣特性:(1)RS-232串口通信距離是16米左右(2)RS-232可以雙向傳輸,全雙工通訊,最高傳輸速率達(dá)20kbps(3)RS-232C上傳送的數(shù)字量采用負(fù)邏輯,且與地對稱(4)邏輯1:-3V~-15V(5)邏輯0:+3V~+15V單片機(jī)的串行發(fā)送端TXD和串行接收端RXD都是TTL電平,而PC機(jī)的COM口的RS-232C連接器(DB型9針插座)是EIA電平,所以需要用到電平轉(zhuǎn)換芯片與單片機(jī)連接,通過串行線和PC相連接[7]。RS-232電平的電壓轉(zhuǎn)換芯片選用MAX232,MAX232芯片是美信(MAXIM)公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。其管腳圖如圖3-6所示。圖3-6MAX232管腳圖[7]單片機(jī)接11.0592MHz的晶振,這樣單片機(jī)與串口通信時(shí)比較容易分頻成常見的標(biāo)準(zhǔn)串口通信波特率,按公式11.0592MHz=192*57600=384*28800=576*19200=1152*9600,如果用12MHz就無法整除了。單片機(jī)I/O口中的P3口是第二功能引腳,P3.0口和P3.1口分別是TXD和RXD,分別是單片機(jī)的串口的發(fā)送口與接收口,它們分別與MAX232的T2IN和R2OUT相連,通過標(biāo)準(zhǔn)的DC-9接口與MAX232的連接,電路連接如圖3-7所示。圖3-7DC-9串口通信原理圖3.2LED點(diǎn)陣控制電路設(shè)計(jì)以上章節(jié)介紹了nrf24l01無線收發(fā)模塊的發(fā)射模式應(yīng)用電路,由于其硬件連接電路和接收模式都是一樣的,本節(jié)就不再對無線接收硬件電路作介紹了。nrf24l01完成數(shù)據(jù)的接收后,經(jīng)控制器STC89C54RD+處理后,最后要在LED點(diǎn)陣顯示屏上顯示出來。LED點(diǎn)陣顯示控制器依然是STC89C54RD+,并采用24MHZ或更高頻率晶振,以獲得較高的刷新頻率。以下介紹LED點(diǎn)陣顯示原理、LED點(diǎn)陣顯示屏的行驅(qū)動(dòng)電路和列驅(qū)動(dòng)電路。LED點(diǎn)陣驅(qū)動(dòng)電路地設(shè)計(jì)是要根據(jù)LED點(diǎn)陣屏的大小來的,本系統(tǒng)設(shè)計(jì)要設(shè)計(jì)一個(gè)16*64規(guī)格的雙色LED點(diǎn)陣顯示屏,是用16個(gè)8*8的雙基色點(diǎn)陣模塊拼接而成的。3.2.1LED點(diǎn)陣行驅(qū)動(dòng)電路由于單片機(jī)的I/O口不足,本系統(tǒng)的行驅(qū)動(dòng)器選用的是一個(gè)譯碼器4線-16路芯片74HC154,輸入點(diǎn)有4根數(shù)據(jù)線,有16路輸出,可用來對于控制LED點(diǎn)陣屏的1-16行,為了保證點(diǎn)陣屏有足夠的電流供給,還用到了16個(gè)三極管8550進(jìn)行擴(kuò)流,與74HC154共同構(gòu)成的行驅(qū)動(dòng)電路,輸出口接單片機(jī)的P1口。以下介紹譯碼器74HC154和三極管8550。74HC154是一款高速CMOS器件,74HC154譯碼器可接受4位高有效二進(jìn)制地址輸入,并提供16個(gè)互斥的低有效輸出。74HC154的兩個(gè)輸入使能門電路可用于譯碼器選通,以消除輸出端上的通常譯碼“假信號”,也可用于譯碼器擴(kuò)展。該使能門電路包含兩個(gè)“邏輯與”輸入,必須置為低以便使能輸出端。任選一個(gè)使能輸入端作為數(shù)據(jù)輸入,74HC154可充當(dāng)一個(gè)1-16的多路分配器。當(dāng)其余的使能輸入端置低時(shí),地址輸出將會(huì)跟隨應(yīng)用的狀態(tài)。實(shí)現(xiàn)解調(diào)功能的辦法是:用4個(gè)輸入線寫出輸出線的地址,使得在一個(gè)選通輸入為低時(shí)數(shù)據(jù)通過另一個(gè)選通輸入。當(dāng)任何一個(gè)選通輸入是高時(shí),所有輸出都為高[8]。74HC154芯片引腳圖如圖3-8所示。圖3-874HC154引腳圖[8]74HC154具有以下特性[8]:(1)16線多路分配功能(2)4位二進(jìn)制碼輸入譯碼至16個(gè)互斥輸出(3)兼容JEDEC標(biāo)準(zhǔn)no.7A(4)ESD保護(hù)(5)邏輯電平CMOS(6)功耗考量低功耗或電池供電應(yīng)用(7)74HC154封裝與引腳SO24,SSOP24,DIP24,TSSOP274HC1544線-16線譯碼器/解調(diào)器[7]:(1)將4個(gè)二進(jìn)制編碼輸入譯成16個(gè)彼獨(dú)立的輸出之一(2)將數(shù)據(jù)從一個(gè)輸入線分配到16個(gè)輸出的任意一個(gè)而實(shí)現(xiàn)解調(diào)功能(3)輸入箝位二極管簡化了系統(tǒng)設(shè)計(jì)(4)與大部分TTL和DTL電路完全兼容三極管8550是一種常用的普通三極管。它是一種低電壓,大電流,小信號的PNP型硅三極管。8550特性及應(yīng)用(1)集電極-基極電壓Vcbo:-40V(2)工作溫度:-55℃to+150℃(3)和8050(NPN)相對主要用途:(1)開關(guān)應(yīng)用(2)射頻放大8550三極管(TO-92封裝)管腳圖如圖3-9所示:圖3-98550管腳圖注:(1)發(fā)射極(2)基極(3)集電極在行驅(qū)動(dòng)電路中,Y0-Y15是16路獨(dú)立的低電平輸出口,剛好接到點(diǎn)陣的16行,因?yàn)橹灰狾E1和OE2中有一個(gè)為高,A,B,C,D電平輸入都是無效的,只有它們都是低電平時(shí),才能操作芯片,所以把這兩腳同時(shí)接到單片機(jī)一個(gè)I/O上進(jìn)行控制。Y0-Y15輸出經(jīng)過一個(gè)限流電阻再接到三極管8550的基極,當(dāng)74HC154的輸出端輸出低電平時(shí),8550就可以導(dǎo)通,電流就經(jīng)過8550放大再流入點(diǎn)陣。這樣才有足夠的電路供點(diǎn)陣驅(qū)動(dòng),否則LED屏幕亮度不夠或者不亮。LED點(diǎn)陣行驅(qū)動(dòng)電路原理圖如圖3-10所示。圖3-10行驅(qū)動(dòng)電路3.2.2LED點(diǎn)陣列驅(qū)動(dòng)電路本系統(tǒng)采用的列驅(qū)動(dòng)芯片的74HC595,因?yàn)樵撔酒谴氩⒊?,而且具有輸出鎖存器。當(dāng)鎖存著本行的數(shù)據(jù)輸出時(shí),還可以輸入下一行的數(shù)據(jù),這樣就可以實(shí)現(xiàn)重疊的處理數(shù)據(jù)。要控制的LED點(diǎn)陣是紅、綠雙基色,所以每一個(gè)8*8的LED點(diǎn)陣就要用兩片74HC595分別控制兩種顏色。以下介紹74HC595芯片。74HC595芯片是一種串入并出的芯片,是一種電子顯示屏制作當(dāng)中非常通用的驅(qū)動(dòng)芯片。595是具有8位串行輸入/輸出移位寄存器和存儲(chǔ)器,高阻、關(guān)、斷三態(tài)輸出功能。能夠?qū)崿F(xiàn)串行輸出控制下一級級聯(lián)芯片。8位移位寄存器和一個(gè)存儲(chǔ)器分別是時(shí)鐘,在SCHcp的上升沿時(shí)數(shù)據(jù)輸入,在STcp的上升沿進(jìn)入到存儲(chǔ)寄存器中去。倘若兩個(gè)時(shí)鐘連在一起,移位寄存器就比存儲(chǔ)寄存器提前一個(gè)脈沖。移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出,和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。74HC595芯片引腳圖如圖3-11所示,其特點(diǎn)如下[9]:特點(diǎn):(1)高速移位時(shí)鐘頻率Fmax>25MHz(2)標(biāo)準(zhǔn)串行(SPI)接口(3)CMOS串行輸出,可用于多個(gè)設(shè)備的級聯(lián)(4)低功耗:TA=25℃時(shí),Icc=4μA(MAX)74595的數(shù)據(jù)端:(1)QA--QH:595的并行輸出端,可以直接控點(diǎn)陣的8個(gè)腳。(2)QH:級聯(lián)輸出端。我將它接下一個(gè)595的SI端。(3)SI:串行數(shù)據(jù)輸入端。74595的控制端說明:SRCLR(10腳):低點(diǎn)平時(shí)將移位寄存器的數(shù)據(jù)清零,通常將它接Vcc。SRCK(11腳):表示上升沿時(shí)對數(shù)據(jù)寄存器中的數(shù)據(jù)進(jìn)行移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。RCK(12腳):表示上升沿時(shí)移位寄存器中的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲(chǔ)寄存器中去,而下降沿時(shí)存儲(chǔ)寄存器中的數(shù)據(jù)則不變。當(dāng)移位結(jié)束后,在RCK端產(chǎn)生一個(gè)正脈沖,更新顯示數(shù)據(jù)。/G(13腳):高電平時(shí)禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用一個(gè)引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果[9]。比通過數(shù)據(jù)端移位控制要省時(shí)省力。圖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ù)輸入時(shí)鐘線12RCK輸出存儲(chǔ)器鎖存時(shí)鐘線13OE輸出使能14SI數(shù)據(jù)線74HC595的移位時(shí)鐘SCLK及數(shù)據(jù)鎖存信號RCLK接到單片機(jī)的P1.6和P1.7口進(jìn)行控制,控制兩種顏色的線腳都接在一起。而兩個(gè)數(shù)據(jù)輸入口SDI分別接兩個(gè)單片機(jī)I/O控制。LED點(diǎn)陣列驅(qū)動(dòng)電路原理圖如圖3-12所示。圖3-1274HC595線路圖3.2.3級聯(lián)LED點(diǎn)陣顯示屏74HC595進(jìn)行級聯(lián),可共用一個(gè)移位時(shí)鐘SCLK及數(shù)據(jù)鎖存信號RCLK。SDI口為數(shù)據(jù)輸入口,而數(shù)據(jù)移出是從SDO口,并從下一片的74HC595的SDI進(jìn)去,就這樣數(shù)據(jù)移位到了八片芯片中。74HC595級聯(lián)電路如圖3-13所示。圖3-1374HC595級聯(lián)電路圖采用級聯(lián)的方法,一塊74HC595可以控制一塊8*8的LED點(diǎn)陣的一種顏色,用8塊74HC595級聯(lián)起來,控制16*64點(diǎn)陣的一種顏色,兩種顏色就要用16塊74HC595。采用掃描的方法,就可以使得每行顯示不用的字符,也就是說每一瞬間只點(diǎn)亮一行。由于16*64LED點(diǎn)陣顯示屏有16行,用一個(gè)4-16線譯碼器74HC154,剛好就可以驅(qū)動(dòng)點(diǎn)陣的16行,它的輸入是一個(gè)16進(jìn)制碼,輸出低電平有效,8550為PNP型三極管,低電平導(dǎo)通,8550可以起到擴(kuò)大驅(qū)動(dòng)電流的作用。16*64LED點(diǎn)陣顯示線路如圖3-14所示。圖3-1416*64LED點(diǎn)陣顯示線路圖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電壓進(jìn)行降壓整流為5V直流電壓為顯示系統(tǒng)供電。電路圖如圖3-15所示。圖3-15電源電路如圖所示,我們用的是低壓直流電源,而我們平時(shí)的生活用電是交流的220V的,設(shè)計(jì)這個(gè)電源就是要把交流電220V變成能供我們使用的電,首先用一個(gè)變壓器把220V轉(zhuǎn)成12V的電壓,再通過一個(gè)整流電路將交流電整流為直流電。通過MC7809穩(wěn)壓芯片輸出9V,最后通過穩(wěn)壓芯片LM7805得出穩(wěn)定的5V電壓,本設(shè)計(jì)使用5V電源。第四章系統(tǒng)軟件設(shè)計(jì)在硬件設(shè)計(jì)好之后,還要進(jìn)行系統(tǒng)的軟件設(shè)計(jì)。系統(tǒng)軟件設(shè)計(jì)分為上位機(jī)軟件設(shè)計(jì)和下位機(jī)軟件設(shè)計(jì),上位機(jī)軟件是上位機(jī)管理模塊功能設(shè)計(jì),而下位機(jī)軟件是在硬件的基礎(chǔ)上,主要無線發(fā)射模塊和LED點(diǎn)陣顯示屏顯示模塊兩部分。本章介紹上位機(jī)管理模塊的編寫,上位機(jī)與下位機(jī)之間的通信協(xié)議的編寫,以及下位機(jī)各個(gè)功能模塊控制程序的編寫。4.1軟件開發(fā)平臺及開發(fā)語言介紹4.1.1Keil開發(fā)平臺KeilC51是一款兼容51系列單片機(jī)的開發(fā)系統(tǒng),它可以用C語言來開發(fā),也可以用匯編來開發(fā)。該軟件有很多的常用庫函數(shù)和非常方便的調(diào)試工具?,F(xiàn)在開發(fā)51單片機(jī)大多數(shù)都是用這個(gè)開發(fā)工具,因?yàn)檫@個(gè)軟件生成的目標(biāo)代碼效率非常的高,所以很多大型的項(xiàng)目開發(fā)都很理想【11】。4.1.2VisualBasic6.0開發(fā)平臺VisualBasic6.0是微軟專門為VB語言開發(fā)的編程環(huán)境軟件,它具有圖形用戶界面開發(fā)的環(huán)境軟件。VisualBasic6.0[12]因操作簡單實(shí)用,所以從其問世以來很受專業(yè)程序員和編程愛好者的追捧。VisualBasic6.0的組件有很多,比如編輯器、設(shè)計(jì)器、屬性等開發(fā)組件。VisualBasic6.0還提供了窗口編輯,可直接對窗口進(jìn)行編輯和預(yù)覽。4.1.3C語言介紹C語言是目前國際上最流行的、很有發(fā)展前途的程序設(shè)計(jì)語言之一,既具有一般高級語言特性,又具有低級語言特性[13],既可以用來編寫系統(tǒng)軟件,又可以用來編寫應(yīng)用程序。C語言其實(shí)是把高級的語言的基本機(jī)構(gòu)和低級的語言的實(shí)用性統(tǒng)一在一起的編程語言,所以它既有了高級語言的特性,也有低級語言的功能。該編程語言可以以函數(shù)的方式給編程者運(yùn)用,而且有循環(huán)、選擇和條件等基本語句,可以讓編程結(jié)構(gòu)化。C語言對編寫需要硬件進(jìn)行操作的場合,優(yōu)于其它高級語言,有一些大型應(yīng)用軟件也是用C語言編寫的[13]。目前,使用C語言進(jìn)行程序設(shè)計(jì)已經(jīng)成為軟件開發(fā)的一個(gè)主流。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強(qiáng)程序的可讀性,便于改進(jìn)、擴(kuò)充和移植。4.1.4VB語言介紹VisualBasic,簡稱VB,VisualBasic是一種基于Basic的編程語言,它是一種面向?qū)ο蟮目梢暬母呒壵Z言。該語言不僅僅執(zhí)行速度快,而且運(yùn)用的方法簡單。無論是用來開發(fā)功能復(fù)雜的商用應(yīng)用軟件,還是用來開發(fā)簡單的個(gè)人應(yīng)用軟件,都非常的方便。因?yàn)樵撜Z言的編程環(huán)境采用的可視化編程環(huán)境,還有面向?qū)ο蟮脑O(shè)計(jì)方式,所以開發(fā)應(yīng)用程序操作簡單方便。只要是你能想到的編程任務(wù),功能強(qiáng)大的VB語言基本都能幫你完成。不管你是要設(shè)計(jì)各種類型的用戶界面還是要利用其它應(yīng)用程序的對象,又或者是要處理文字圖象到使用數(shù)據(jù)庫,從開發(fā)個(gè)人或集體使用的小工具,到大型企業(yè)應(yīng)用系統(tǒng),更甚者是要通過Internet的遍及全球分布式應(yīng)用程序,都可在VisualBasic提供的工具中各取所需。4.2上位機(jī)管理系統(tǒng)軟件設(shè)計(jì)上位機(jī)管理系統(tǒng)軟件是用RS-232串口和下位機(jī)通信的,所以要對串口發(fā)送和接收進(jìn)行操作。首先根據(jù)系統(tǒng)建立主界面對話框,對串口進(jìn)行初始化,串口處理等,進(jìn)而實(shí)現(xiàn)給下位機(jī)發(fā)送數(shù)據(jù),在可視化界面上顯示出來,便進(jìn)行操作。4.2.1上位機(jī)功能設(shè)計(jì)上位機(jī)軟件管理系統(tǒng)可以實(shí)現(xiàn):設(shè)置波特率,選擇串口,在上位機(jī)軟件上輸入想要顯示的漢字,字母,數(shù)字,按下提取字模按鈕,可以看到相應(yīng)的16進(jìn)制數(shù)據(jù),按發(fā)送數(shù)據(jù)可以傳顯示信息給下位機(jī);控制命令有;顯示方式有從左到右、從右到左、靜止3種方式可選,字體顏色有紅、綠、黃三種選擇,顯示速度有慢速,中速和快速三種調(diào)節(jié)方式,選擇想要的控制命令,按發(fā)送命令按鈕,可以控制點(diǎn)陣的顯示。4.2.2上位機(jī)軟件設(shè)計(jì)本設(shè)計(jì)的上位機(jī)軟件是采用VB來編寫的,該上位機(jī)既要實(shí)現(xiàn)字模數(shù)據(jù)的提取,還要實(shí)現(xiàn)和單片機(jī)的通信。當(dāng)上位機(jī)提取了相應(yīng)的字模數(shù)據(jù)后,再通過串口發(fā)送給單片機(jī)。上位機(jī)和單片機(jī)的通信采用的是VB自帶的Mscomm控件,該控件已經(jīng)包含串口傳輸數(shù)據(jù)的協(xié)議,只要設(shè)置好該控件,和編寫發(fā)送和接收的函數(shù)就可以實(shí)現(xiàn)與單片機(jī)的通信了。用VB編寫的上位機(jī)串口通信程序如圖4-1所示:Mscomm口初始化Mscomm口初始化發(fā)送握手信息發(fā)送信息和校驗(yàn)信息單片機(jī)接收單片機(jī)應(yīng)答校驗(yàn)錯(cuò)誤正確錯(cuò)誤正確開始結(jié)束圖4-1上位機(jī)串口通信程序流程圖Mscomm控件有兩種方式來處理消息,一種是用OnComm事件來直接獲取消息,另一種是用查詢CommEvent的屬性來判斷再獲取消息。該控件工作的原理是調(diào)用API函數(shù),API函數(shù)再把數(shù)據(jù)傳送給串口的驅(qū)動(dòng)程序,驅(qū)動(dòng)程序再通過串口傳送給單片機(jī)。只要理解該控件的各個(gè)屬性和事件,就可以正確的實(shí)現(xiàn)和單片機(jī)的通信了。點(diǎn)陣要顯示的字的數(shù)據(jù)叫字模,本系統(tǒng)的字模的順序是從左到右,從上到下,每一行中左八位一個(gè)字節(jié),右八位一個(gè)字節(jié),每個(gè)字節(jié)中高位在左。上位機(jī)根據(jù)要顯示的內(nèi)容從存放在電腦里面的字庫里面提取字模數(shù)據(jù),再用串口發(fā)送給單片機(jī)。HZK16文件是按照的是GB2312-80標(biāo)準(zhǔn),就是通常所說的國標(biāo)碼也叫區(qū)位碼的標(biāo)準(zhǔn)排列。國標(biāo)碼共有94個(gè)區(qū)(Section),每個(gè)區(qū)94個(gè)位(Position),因此也稱區(qū)位碼,其中01~09區(qū)是符號、數(shù)字區(qū),16~87區(qū)是漢字區(qū),而10~15區(qū)、88~94區(qū)為空白區(qū)域,計(jì)算機(jī)處理在漢字和ASCII字符的時(shí)候,一個(gè)ASCII字符就占用1個(gè)字節(jié),一個(gè)漢字要占用兩個(gè)字節(jié),這個(gè)值稱為漢字的內(nèi)碼[14]。其中第一個(gè)字節(jié)的值為區(qū)號加上32(20H),第二個(gè)字節(jié)的值為位號加上32(20H),為了與ASCII字符區(qū)別開,表示漢字的兩個(gè)字節(jié)的最高位都是1,也就是兩個(gè)字節(jié)的值都又加上了128(80H)。這樣,通過漢字的內(nèi)碼,就可以計(jì)算出漢字的區(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))*一個(gè)點(diǎn)陣字模的字節(jié)數(shù)[14]。上位機(jī)界面圖如圖4-2所示:圖4-2上位機(jī)界面圖4.3下位機(jī)編程系統(tǒng)軟件采用C語言編寫,按照模塊化的設(shè)計(jì)思路設(shè)計(jì)。無線發(fā)模塊的核心控制器為STC89C54,需里實(shí)現(xiàn)的功能是接收上位PC機(jī)通過RD-232串口發(fā)送過來的數(shù)據(jù),再將數(shù)據(jù)通過nRF24l01模塊轉(zhuǎn)發(fā)出去。4.3.1無線發(fā)射編程單片機(jī)從串口接收上位機(jī)數(shù)據(jù),是一個(gè)個(gè)字節(jié)進(jìn)行接收的,當(dāng)全部接收完后,就可以用無線發(fā)送出去了。接收完數(shù)據(jù)后判斷是控制命令還是字模數(shù)據(jù),因?yàn)闊o線模塊一次只能發(fā)送32個(gè)字節(jié),所以如果是命令數(shù)據(jù),一次就可以發(fā)完,是字模數(shù)據(jù)的話,一次只能發(fā)一個(gè)字的數(shù)據(jù),有多少個(gè)字就要發(fā)送多少次。無線發(fā)射程序流程圖如圖4-3所示:初始化初始化等待上位機(jī)發(fā)送數(shù)據(jù)Nrf24l01發(fā)送數(shù)據(jù)返回接收是否完成發(fā)送是否完成NN開始YY圖4-3無線發(fā)射程序流程圖4.3.2點(diǎn)陣顯示編程顯示屏軟件的編寫主要任務(wù)是給顯示屏提供想要顯示的信息數(shù)據(jù),同時(shí)設(shè)置各種控制信號,使顯示屏按設(shè)計(jì)的要求顯示信息。顯示屏顯示內(nèi)容可以通過nrf24l01接收顯示數(shù)據(jù),所以點(diǎn)陣顯示程序又分為無線接收和顯示驅(qū)動(dòng)兩部分。無線接收程序流程圖如圖4-4所示:初始化初始化開始接收數(shù)據(jù)是否接收完成單片機(jī)返回NY圖4-4無線接收程序流程圖無線接收模塊的核心控制單元為STC89C54,需要實(shí)現(xiàn)的功能有:可以通過nRF24l01接收數(shù)據(jù),接收數(shù)據(jù)用的是中斷,無線模塊接收到數(shù)據(jù)IRQ管腳會(huì)產(chǎn)生低電平發(fā)送給單片機(jī),使單片機(jī)產(chǎn)生一個(gè)外部中斷接收數(shù)據(jù),用中斷接收,可以馬上接收數(shù)據(jù),防止接收數(shù)據(jù)錯(cuò)誤。接收完數(shù)據(jù)后保存到單片機(jī)內(nèi)部的EEPROM,實(shí)現(xiàn)掉電保存,最后更新顯示方式或者顯示內(nèi)容。在STC單片機(jī)中內(nèi)置了EEPROM(其實(shí)是采ISP/IAP技術(shù)讀寫內(nèi)部FLASH來實(shí)現(xiàn)EEPROM),這樣就節(jié)省了片外資源,使用起來就更加方便了。STC89C54內(nèi)部有16K的EEPROM,與EEPORM有關(guān)的寄存器有6個(gè),分別是ISP_DATA、ISP_ADDRH、ISP_ADDRLISP_TRIG、ISP_CMD、ISP_CONTR。EEPROM的命令觸發(fā)必須對ISP_TRIG寄存器先寫入0x46,再寫入0xB9,無論單片機(jī)運(yùn)行在什么工作頻率下,EEPROM的讀、寫、擦除操作的所需要的時(shí)間分別約為10us、60us、10ms。點(diǎn)陣顯示的控制器為無線接收單元的STC89C54,分別用74HC595和74HC154做點(diǎn)陣屏的列跟行的驅(qū)動(dòng),分別用于將單片機(jī)傳來的行掃描數(shù)據(jù)和行顯示串行數(shù)據(jù)轉(zhuǎn)換成并行輸出,行掃描數(shù)據(jù)是用來控制某一時(shí)刻要點(diǎn)亮哪一行的,行顯示串行數(shù)是要該行要顯示內(nèi)容的數(shù)據(jù)。工作原理是:先選擇點(diǎn)陣的某一行,再向列驅(qū)動(dòng)器74HC595寫入該行要顯示的數(shù)據(jù),將該行點(diǎn)亮,同時(shí)選中下一行并寫入該行要顯示的數(shù)據(jù)進(jìn)行顯示。這樣依此點(diǎn)亮,16行都點(diǎn)亮一遍后,又回到第一行,循環(huán)進(jìn)行掃描,只要屏幕刷新頻率大于25Hz,人眼看來就會(huì)感覺是所有行都同時(shí)點(diǎn)亮了。點(diǎn)陣屏顯示程序流程圖如圖4-5所示:開始開始初始化從EEPROM中讀取數(shù)據(jù)循環(huán)控制點(diǎn)陣顯示是否有接收到新數(shù)據(jù)接收是否完成無線接收數(shù)據(jù)保存數(shù)據(jù)和更新顯示內(nèi)容或顯示方式NYNY圖4-5點(diǎn)陣屏顯示程序流程圖程序定義兩個(gè)32位長度的無符號LONG類型的數(shù)組,每個(gè)數(shù)組大小為16,數(shù)組的第一個(gè)數(shù)據(jù)就存放第一行的數(shù)據(jù),依次類推存完16行的數(shù)據(jù),一個(gè)數(shù)組緩存左邊兩個(gè)字,一個(gè)數(shù)組緩存右邊那兩個(gè)字,剛好能緩存完四個(gè)字的字模數(shù)據(jù),要顯示什么內(nèi)容,改變這兩個(gè)數(shù)組就內(nèi)容就可以了。實(shí)現(xiàn)靜態(tài)顯示內(nèi)容,只要每次把兩數(shù)組的內(nèi)容全部換為想要顯示的內(nèi)容,然后依次提取數(shù)組內(nèi)容去控制點(diǎn)陣驅(qū)動(dòng)電路,就可以實(shí)現(xiàn)靜態(tài)顯示了。要實(shí)現(xiàn)左移功能,就是要把緩存左邊兩個(gè)字的那個(gè)數(shù)組的每個(gè)數(shù)據(jù)左移一位,丟棄最高位,再把緩存右邊兩個(gè)字的數(shù)組的每個(gè)數(shù)據(jù)也左移一位,把移出來的最高位加到左邊那個(gè)緩存數(shù)組的最低位,然后再把將要移進(jìn)的那個(gè)數(shù)據(jù)的最高位加到右邊緩存數(shù)據(jù)的最低位,這樣就能實(shí)現(xiàn)左移功能了,控制每次移位數(shù)據(jù)的間隔時(shí)間就可以控制左移的速度了。要實(shí)現(xiàn)上移功能,就是要把兩個(gè)數(shù)組的第一個(gè)數(shù)據(jù)丟棄,數(shù)組的第二個(gè)數(shù)據(jù)放到一個(gè)數(shù)據(jù)的位置,依次類此,把第十六個(gè)數(shù)據(jù)放到了第十五個(gè)數(shù)據(jù)位置,然后再將要移進(jìn)的數(shù)據(jù)放到第十六個(gè)數(shù)據(jù)位置,這樣就實(shí)現(xiàn)了上移功能,控制數(shù)據(jù)的替換的時(shí)間間隔就能控制上移的移動(dòng)速度了。用兩個(gè)數(shù)組緩存將要顯示的內(nèi)容,這樣對顯示內(nèi)容的操作就是對這兩個(gè)數(shù)組的操作,這樣就可以實(shí)現(xiàn)字體的各種顯示了。第五章系統(tǒng)調(diào)試硬件設(shè)計(jì)和軟件編程設(shè)計(jì)完成后,得出硬件實(shí)物。硬件完成后必須對其進(jìn)行調(diào)試,檢查設(shè)計(jì)功能是否實(shí)現(xiàn)了。軟件硬件完成后開始進(jìn)行調(diào)試。調(diào)試可分為硬件調(diào)試,軟件調(diào)試。5.1系統(tǒng)硬件調(diào)試硬件調(diào)試是一項(xiàng)細(xì)心的工作一定要有耐心。硬件調(diào)試首先要熟悉各功能模塊的原理圖原理和PCB布局,然后根據(jù)各功能模塊進(jìn)行調(diào)試。硬件調(diào)試主要是檢測電路板的焊接是否合理和各個(gè)芯片的輸出、輸入電壓是否符合各自要求,最后檢測各硬件模塊能否完成設(shè)計(jì)所期望的功能。這樣我們就把硬件調(diào)試分三部分進(jìn)行調(diào)試:(1)檢測所有焊點(diǎn)是否有虛焊的現(xiàn)象存在以及檢測線路是否有短路;先目測電路板外觀是否焊接完成,是否有氣泡、連焊、虛焊、漏焊等不良焊點(diǎn),再用萬用表測試看是否有短路和虛焊的現(xiàn)象,若萬用表蜂鳴器持續(xù)鳴響,則表明電路有短路現(xiàn)象。先檢測電路板上的電源線和地線間是否短路,再逐個(gè)原件和逐條線路檢測,若發(fā)現(xiàn)短路或虛焊現(xiàn)象,應(yīng)當(dāng)即改正,以確保電路完好可用。(2)通電測試所有硬件芯片的輸入輸出電壓是否在設(shè)計(jì)要求的范圍內(nèi);確保電路無短路和虛焊現(xiàn)象后,就可以通電測試所有電路板中芯片的輸入和輸出電壓是是不是在芯片工作要求的范圍內(nèi)。本系統(tǒng)電源輸入為5V電壓,上電后電路各元器件沒有發(fā)現(xiàn)過熱,異味,冒煙等不良現(xiàn)象。然后測試各器件的電源,接地及一些電平應(yīng)該固定的端口的電壓。測試的結(jié)果為:各器件電源端在4.3V~4.8V之間滿足器件的電源電壓要求,單片機(jī)端口在未接負(fù)載時(shí)端口電壓為4.5V。(3)測試串口系統(tǒng)的通信功能是否能夠?qū)崿F(xiàn)。串口部分的作用是單片機(jī)與上位機(jī)之間通信,檢測通信是否成功可以用串口調(diào)試助手發(fā)送幾組不同的數(shù)據(jù)給單片機(jī),單片機(jī)接收到數(shù)據(jù)后在發(fā)送回電腦,如果發(fā)送和接收回來的數(shù)據(jù)一樣,說明通信時(shí)正常的。5.2系統(tǒng)軟件調(diào)試當(dāng)完成硬件調(diào)試之后,就可以開始軟件調(diào)試了。軟件調(diào)試其實(shí)就是軟件的編譯和將各功能模塊程序分別燒入以驗(yàn)證各部分功能的可實(shí)現(xiàn)性。軟件調(diào)試,主要包括串口通信調(diào)試,無線通信調(diào)試,點(diǎn)陣驅(qū)動(dòng)顯示調(diào)試。在串口通信調(diào)試中,首先用別人的串口調(diào)試助手軟件測試單片機(jī)與PC機(jī)的通信,如果通信都能正常,說明單片機(jī)的串口通信程序沒有問題了。就開始用VB編寫自己需要的上位機(jī),因?yàn)橐郧皼]用過VB,所以要了解一下VB的語法,才開始編寫上位機(jī)。編寫本系統(tǒng)的上位機(jī),難點(diǎn)只有兩個(gè),就是提取字模數(shù)據(jù)和實(shí)現(xiàn)與單片機(jī)的通信。通過上網(wǎng)查找資料和多次的反復(fù)修改程序,成功的實(shí)現(xiàn)了這兩個(gè)功能。無線通信調(diào)試,理解了無線模塊的工作原理,然后根據(jù)自己的需要設(shè)置無線模塊的寄存器。開始的時(shí)候,只是簡單的用一個(gè)字節(jié)來通信,成功之后,就設(shè)置了一次傳輸32個(gè)字節(jié),然后對比傳輸?shù)臄?shù)據(jù)有沒有發(fā)生錯(cuò)誤。經(jīng)過測試,無線通信都能正確的通信。點(diǎn)陣驅(qū)動(dòng)顯示調(diào)試部分是系統(tǒng)中最難的了,首先先用簡單的程序讓每一行亮,看看有沒有不亮的點(diǎn),因?yàn)辄c(diǎn)陣的管腳比較多,很多時(shí)候有些地方是沒有連接上的。當(dāng)每個(gè)點(diǎn)都能亮之后,就開始寫驅(qū)動(dòng)顯示字了。最開始是先寫靜態(tài)顯示漢字的程序,這個(gè)最簡單實(shí)現(xiàn)了。成功之后,就開始寫左移的功能,這個(gè)比較難,要想好用什么方法實(shí)現(xiàn)這個(gè)功能。經(jīng)過反復(fù)的修改程序,終于實(shí)現(xiàn)這個(gè)功能。能實(shí)現(xiàn)左移了之后,要實(shí)現(xiàn)上移,就容易多了,不用像寫左移程序那樣走那么多彎路了。把各個(gè)部分的程序都寫好后,就開始整體測試了。上位機(jī)用串口通信發(fā)送顯示數(shù)據(jù)給單片機(jī),再用無線發(fā)送給另外的單片機(jī),然后再顯示出來。測試這個(gè)的時(shí)候,發(fā)現(xiàn)當(dāng)單機(jī)控制點(diǎn)陣顯示的時(shí)候,有時(shí)接收不到無線發(fā)來的數(shù)據(jù)。那個(gè)時(shí)候接收無線發(fā)來的信息是用查詢的方法的,這樣不能正常的接收信息,就改為了用中斷接收信息,這樣就不會(huì)錯(cuò)過無線發(fā)來的信息了。經(jīng)過整體程序的反復(fù)測試和修改,現(xiàn)在系統(tǒng)能夠在上位機(jī)輸入要顯示的內(nèi)容,然后提取字模通過串口發(fā)送給下位機(jī),下位機(jī)再用無線發(fā)送給另外的單片機(jī),單片機(jī)保存數(shù)據(jù)后再在點(diǎn)陣上顯示出來。顯示數(shù)據(jù)最終可以再顯示終端顯示出來了,實(shí)物顯示圖如圖5-1所示,從上位機(jī)輸入顯示內(nèi)容,可以顯示中文,英文和數(shù)字,字體顏色可以選擇紅色、綠色和黃色,其中黃色是有紅色和綠色兩種基色同時(shí)點(diǎn)亮而成的。從實(shí)物顯示圖可以看出,本系統(tǒng)的基本功能已然實(shí)現(xiàn),系統(tǒng)調(diào)試也就完成了。圖5-1實(shí)物顯示圖第六章總結(jié)與展望在老師和同學(xué)的幫助下畢業(yè)設(shè)計(jì)功能基本已經(jīng)實(shí)現(xiàn),任務(wù)總算是成功的完成了,整個(gè)畢業(yè)設(shè)計(jì)的過程中我受益良多。我在設(shè)計(jì)中學(xué)會(huì)并運(yùn)用了很多知識。我掌握了ProtelDXP軟件應(yīng)用、電路板印刷和焊接技術(shù)、LED點(diǎn)陣顯示系統(tǒng)驅(qū)動(dòng)原理等。除此之外我還學(xué)習(xí)了上位機(jī)設(shè)計(jì)有關(guān)的知識,這是之前所沒有學(xué)習(xí)過的東西,VB語言的編程也是初次使用,所幸最終上位機(jī)的設(shè)計(jì)與編程最終達(dá)到了預(yù)期的效果。在設(shè)計(jì)和實(shí)現(xiàn)的過程中難免會(huì)遇到問題,我一方面向老師和同學(xué)求助,一方面自己也去查閱相關(guān)的資料,找出問題并解決了。在整個(gè)過程中,我克服困難的信心與決心經(jīng)歷了嚴(yán)峻的考驗(yàn)。畢業(yè)設(shè)計(jì)完成了,我的專業(yè)基礎(chǔ)知識得到了鞏固和提高,也是一次很好的知識與實(shí)踐結(jié)合。本設(shè)計(jì)盡管還處在許多不足的地方,今后我必將努力學(xué)習(xí),以彌補(bǔ)自己的不足。大屏幕LED顯示屏是一種應(yīng)用廣泛地信息顯示媒體,今后必定會(huì)往更好更高要求的方向發(fā)展的,因知識和能力的限制,本系統(tǒng)還有很多不足的地方,在今后有很大的提升空間,我會(huì)關(guān)注LED的發(fā)展,學(xué)習(xí)更多相關(guān)的知識,這樣可以充足自己的知識。參考文獻(xiàn)[1]關(guān)積珍.LED顯示屏發(fā)展?fàn)顩r及趨勢[J].世界電子元器件,2000,(02),277-301[2]陳玉華,王銘霞.LED大屏幕顯示電路的設(shè)計(jì)[J].大連:大連海事大學(xué)學(xué)報(bào),1997,(03),55-56[3]周興華,單片機(jī)智能化產(chǎn)品C語言設(shè)計(jì)實(shí)例詳解[J].北京:北京航空航天大學(xué)出版社2006.7,123-143[4]STC增強(qiáng)型8051單片機(jī)指南,www.MCU-Msupportmcuupdatedate[Z]:2005-9-20,2-4[5]NordicVLSIASA.nRF24L01Singlechip2.4GHzTransceiverProductSpecification[Z],2007./.2-10[6]雷曉平,屈莉莉,羅海天.微機(jī)原理與接口技術(shù)[M].北京:人氏郵電山版社.2005,195-200.[7]李樣芳,肖看.單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ)[M].北京:清華人學(xué)出社.2005,111-113[8]NationalSemiconductor公司器件資料手冊,MM74HC154,4-to-16LineDecoder[Z],2009,4-16[9]余欣.LED顯示屏及控制板的設(shè)計(jì)與實(shí)現(xiàn).[D],鄭州大學(xué)碩士學(xué)位論文,2011年,17-19[10]SipexCorporation.SPX1117800mALowDropoutVoltageRegulatorDatasheet[Z]..2004,10-12[11]單片機(jī)發(fā)展有限公司.基T-KEILC51的高級TKS系列仿真器[Z],使用手冊.2003,17-18[12]文哲雄.用單片機(jī)控制LED顯示屏[D].佛山科學(xué)技術(shù)學(xué)院學(xué)位論文,佛山:佛山科學(xué)技術(shù)學(xué)院,1995,20-25[13]覃俊、林芳.C語言程序設(shè)計(jì)教程[M].北京;清華大學(xué)出版社,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).附錄一、下位機(jī)原理圖二、無線接收原理圖三、點(diǎn)陣驅(qū)動(dòng)原理圖四、上位機(jī)程序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="關(guān)閉串口"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))'獲得該漢字的十六進(jìn)制的ASCII碼strQh=Left(strCh,2)'對應(yīng)漢字機(jī)內(nèi)碼的高字節(jié)strWh=Right(strCh,2)'對應(yīng)漢字機(jī)內(nèi)碼的低字節(jié)intQh=Val("&H"&strQh)intWh=Val("&H"&strWh)Position=32*((intQh-161)*94+(intWh-161))+1ElsePosition=Asc(ch)EndIfEndFunction五、下位機(jī)接收程序#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//定義重復(fù)裝載數(shù)據(jù)指令#defineNOP0xFF//保留//**************************SPI(nRF24L01)寄存器地址************//#defineCONFIG0x00//配置收發(fā)狀態(tài),CRC校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式#defineEN_AA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院工作經(jīng)驗(yàn)與發(fā)展建議計(jì)劃
- 機(jī)械制造行業(yè)安全規(guī)范
- 文化行業(yè)助理職責(zé)概述
- 文化藝術(shù)行業(yè)營銷工作總結(jié)
- 機(jī)場前臺服務(wù)總結(jié)
- 2024年稅務(wù)師題庫【滿分必刷】
- 2024年認(rèn)位置的教案
- 2024年窮人教案6篇
- 農(nóng)村建筑構(gòu)建合同(2篇)
- 出租車包班合同(2篇)
- 金科新未來大聯(lián)考2025屆高三12月質(zhì)量檢測語文試題(含答案解析)
- 江蘇省2025年高中學(xué)業(yè)水平合格考?xì)v史試卷試題(含答案詳解)
- 《地下水環(huán)境背景值統(tǒng)計(jì)表征技術(shù)指南(試行)》
- 大學(xué)試卷(示范)
- 高職院校智能制造實(shí)驗(yàn)室實(shí)訓(xùn)中心建設(shè)方案
- 房產(chǎn)交易管理平臺行業(yè)發(fā)展預(yù)測分析
- 檔案工作人員分工及崗位責(zé)任制(4篇)
- 電商整年銷售規(guī)劃
- GB 4396-2024二氧化碳滅火劑
- 美麗的秋天景色作文500字小學(xué)
- 施工單位2025年度安全生產(chǎn)工作總結(jié)及計(jì)劃
評論
0/150
提交評論