版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
蘇州科技學院本科生畢業(yè)設計(論文)PAGEPAGE94PAGEI基于MSP430單片機的無線LED廣告屏設計摘要LED點陣顯示屏的發(fā)展前景極為廣闊,為使該模塊LED顯示屏控制系統(tǒng)具有更加方便和靈活性,本文對系統(tǒng)的硬件做了精心設計。本文設計的主體思想是通過主機將實時時間,采集的環(huán)境溫度以及光照信息,由無線模塊傳送到從機,動態(tài)顯示在廣告屏上。綜合多方面的因素,最終確立了設計方案:主控制器選用MSP430單片機,點陣屏選擇LED點陣單色圖文顯示屏,無線模塊采用NRF2401射頻收發(fā)芯片?;趩纹瑱C介紹了16*16LED顯示屏的設計與制作過程,內容包括LED顯示屏的硬件電路、PCB設計、C語言程序設計與調試等方面,涉及到單片機電子產品設計和制作方面的各個環(huán)節(jié),認識單片機的基本結構,工作原理及應用方法,并提高單片機知識技術的運用能力。關鍵詞單片機;點陣;無線;LED廣告屏;NRF2401TheDesignofWirelessLEDAdvertisingScreensBasedonMSP430AbstractThedevelopmentofLEDdisplayhasafar-rangeprospect.TomakethismodularofLEDdisplaycontrolsystemmoreconvenienceandflexible.Thisprojectmadeelaboratedesignofsystemhardware.Themainideaofthedesignisthroughthehostwillreal-timetime,acquisitionenvironmenttemperatureandlightinformationtransferredbywirelessmodule,dynamicdisplayfrommachine,inadvertisingscreen,comprehensiveinmanyfactors.ThefinaldesignisthatthemaincontrollerchoosesMSP430microcontroller,bitmapscreenchoiceofLEDdotmatrixmonochromaticgraphicdisplay,wirelessNRF2401transceivermoduleUSESchips.Thisprojectintroducesthedesignof16*16LEDscreenbasedonSCMandmanufactureprocess,whichcontentincludestheLEDdisplayhardwarecircuit,PCBdesign,Clanguageprogramdesignandcommissioningetc,andinvolvesmicrocontrollerelectronicproductsdesignandmanufactureaspecttheeachlink.Besides,understandingthebasicstructure,microcontrollerworkingprincipleandapplicationmethods,andimprovetheutilizationabilitymicrocontrollerknowledgetechnology.KeywordsMCU;Dotmatrix;Wireless;LEDadvertisingscreen;NRF2401目錄第1章緒論 11.1 引言 11.2 研究課題的目的與意義 11.3課題研究的主要內容 2第二章論文方案設計 42.1 系統(tǒng)方案總體分析 42.2 單片機的選擇 42.2.1C51單片機 42.2.2Mega16單片機 52.2.3MSP430單片機 52.3無線模塊的選擇 52.3.1NRF905模塊 52.3.2CC1020模塊 62.3.3NRF2401模塊 62.4 LED廣告屏的選擇 72.4.1按顏色分類 72.4.2按顯示器件分類 72.5LED驅動模塊 72.5.1靜態(tài)鎖存 72.5.2動態(tài)掃描 72.6 最終方案的確定 8第三章系統(tǒng)硬件設置 93.1 硬件電路的總體設計 93.2 單片機最小系統(tǒng) 103.2.1單片機MSP430的特點 103.2.2電源電路 113.2.3晶振電路 113.2.4復位電路原理圖 123.3 實時時鐘 123.4串行通信 143.5 LED點陣 143.6無線模塊 163.7溫度傳感器 163.8系統(tǒng)的電路設計 183.8.1LED電路原理圖 183.8.2單片機msp430最小系統(tǒng)的PCB版圖設計 19第4章軟件設計 204.1軟件設計方案 204.2實時時鐘模塊 204.2.1實時時鐘模塊簡介 204.2.2實時時鐘模塊的時序圖 214.2.3時鐘模塊操作流程圖 224.2.4模塊程序設計 234.3溫度,光照信息采集模塊 254.3.1溫度傳感器模塊的簡介 254.3.2溫度傳感器模塊的時序圖 264.3.3模塊操作流程 274.3.4模塊程序設計 274.3.5光敏傳感器模塊簡介 304.4無線模塊 314.4.1無線模塊簡介 314.4.2無線模塊的時序圖 314.4.3數據傳輸的流程圖 344.4.4無線模塊程序設計 354.5LED點陣模塊 374.5.1點陣模塊簡介 374.5.2點陣模塊時序圖 374.5.3點陣模塊程序流程圖 384.5.4點陣模塊程序設計 39第5章論文實驗與結論 435.1設計結果總結 435.2課題展望 45致謝 47參考文獻 48附錄A譯文 49附錄B外文原文 63緒論引言LED點陣顯示屏是一種簡單的漢字顯示器,由于其價廉、易于控制、使用壽命長等特點,被逐步廣泛應用于各種公共場合。在體育場館,大屏幕顯示系統(tǒng)可以顯示比賽實況及比賽比分、時間、精彩回放等;在交通運輸行業(yè),可以顯示道路運行情況;在金融行業(yè),可以實時顯示金融信息,如股票、匯率、利率等:在商業(yè)郵電系統(tǒng),可以向廣大顧客顯示通知、消息、廣告等等。據調查顯示,人們接收的信息有2/3的信息是通過眼睛取得的。顯示技術還應用于工業(yè)生產、軍事、醫(yī)療單位、公安系統(tǒng)乃至宇航事業(yè)等國民經濟、社會生活和軍事領域中,并起著重要作用,顯示技術已經成為現代人類社會生活的一項不可或缺的技術。這類的點陣屏常用的通信方式是經過一條RS-232串口線與電腦連接更換信息,操作簡單,使用方便,但是硬件連接上也會有一些局限性,因為需要連接的線比較多,如果要采集遠距離信息需要的傳輸線太長,影響精確度。所以本文提出了一個新的設計理念,運用單片機和無線模塊,通過SPI協(xié)議對LED進行控制,實現LED顯示屏的設計過程。研究課題的目的與意義單片機自20世紀70年代問世以來,以極其高的性能價格比受到人們的重視和關注,所以應用很廣,發(fā)展很快。單片機的特點是體積小、集成度高、重量輕、抗干擾能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好,開發(fā)較為容易。正因為單片機有如此多的優(yōu)點,因此其應用領域之廣,幾乎到了無孔不入的地步。在我國,單片機已被廣泛地應用在工業(yè)自動化控制、自動檢測、智能儀表、智能化家用電器、航空航天系統(tǒng)和和國防軍事、尖端武器等各個方面。我們可以開發(fā)利用單片機系統(tǒng)以獲得很高的經濟效益。更重要的意義是單片機的應用改變了控制系統(tǒng)傳統(tǒng)的設計思想和方法。以前采用硬件電路實現的大部分控制功能,正在用單片機通過軟件方法來實現。這種以軟件結合硬件或取代硬件并能提高系統(tǒng)性能的控制技術稱為微控制技術。例如,本文所要論述的通過單片機來控制LED點陣顯示。LED是發(fā)光二極管英文LightEmittingDiode的簡稱,是六十年代末發(fā)展起來的一種半導體顯示器件,七十年代,隨著半導體材料合成技術、單晶制造技術和P-N結形成技術的研究進展,發(fā)光二極管在發(fā)光顏色、亮度等性能得以提高并迅速進入批量化和實用化。進入八十年代后,LED在發(fā)光波長范圍和性能方面大大提高,并開始形成平板顯示產品即LED顯示屏。LED電子顯示屏是利用發(fā)光二極管點陣模塊或像素單元組成的平面式顯示屏幕。它是集微電子技術、光電子技術、計算機技術、信息處理技術于一體的顯示系統(tǒng),是目前國際上極為先進的顯示媒體。由于它具有發(fā)光效率高、使用壽命長、組態(tài)靈活、色彩豐富、工作性能穩(wěn)定以及對室內室外環(huán)境適應能力強等優(yōu)點而日漸成為顯示媒體中的佼佼者。在我國改革開放之后,特別是進入90年代國民經濟高速增長,對公眾場合發(fā)布信息的需求日益強烈,LED顯示屏的出現正好適應了這一市場形勢,因而在LED顯示屏的設計制造技術與應用水平上都得到了迅速的提高,生產也得到了迅速的發(fā)展,并逐步形成產業(yè),成為光電子行業(yè)的新興產業(yè)領域。LED顯示屏經歷了從單色、雙色圖文顯示屏,到圖像顯示屏的發(fā)展過程。隨著信息產業(yè)的高速發(fā)展,LED顯示屏作為信息傳播的一種重要手段成為現代信息化社會的一個閃亮標志。近年LED顯示屏已廣泛應用于室內、外需要進行服務內容和服務宗旨宣傳的公眾場所如銀行、營業(yè)部、車站、機場、港口、體育場館等信息的發(fā)布,政府機關政策、政令,各類市場行情信息的發(fā)部和宣傳等。目前,對于那些需要顯示的信息量不是很大,分辨率不是很高,又需要制造成本相對比較低的場合,使用大、小屏幕LED點陣顯示器是比較經濟適用的,它可以用單片機控制實現顯示字符、數字、漢字和簡單圖形,可以根據需要使用不同字號、字型。1.3課題研究的主要內容本課題研究的內容組要包括以下幾個內容:(1)MSP430單片機、無線模塊NRF2401、電源轉換芯片AMS1117、實時時鐘模塊DS1302、溫度傳感器模塊DS1820、光敏傳感器模塊、串口通信RS232、LED顯示屏以及LED驅動模塊的理論知識以及應用,熟練掌握各個模塊的不同引腳的連接方式;(2)熟練掌握各個硬件電路,并將以上各個模塊融合在一起,設計出一幅合理的硬件電路圖,其中需要用到兩塊單片機msp430和兩塊無線模塊NRF24L01,分別將兩塊NRF24L01裝在兩塊單片機上,一個充當發(fā)送模塊,一個充當接受模塊,然后在接收模塊上將16*16LED點陣模塊按照自己程序里定義的引腳將其連接起來。(3)深入研究該課題涉及到的軟件知識,并用C語言編寫程序,最后仿真,將仿真結果記錄下來并進行分析。其中的程序部分主要分為兩大部分,其中一個要編寫msp430的發(fā)送部分,一個用來編寫msp430的接收部分,并且用IAREmbeddedWorkbenchForMSP430這一款軟件對其程序經行編譯、創(chuàng)建連接和調試,并根據編譯和調試結果對其程序進行修改,直到其程序沒有出現錯誤和警告為止。在保證程序沒有錯誤的情況下,將msp430發(fā)送程序和msp430接收程序分別燒到相應的兩個單片機內,這樣即完成了軟件部分。第二章論文方案設計系統(tǒng)方案總體分析該電路大致上可以分成單片機系統(tǒng)及外圍電路、無線模塊、列驅動電路和行驅動電路以及LED廣告屏四大部分。主機通過采集溫度、日期、光照等信息并將其顯示到LED廣告屏上。其中溫度信息是通過溫度傳感器進行采集的,日期時間是通過時鐘模塊采集的,光照信息是通過光敏傳感器來采集的。時鐘,溫度傳感器和無線模塊,以及廣告屏的編程,上位機與下位機的軟件流程設計思路如下:下位機上電后,先初始化內部變量、時鐘、信息采集及通信模塊,然后進行信息采集,下位機將采集到的信息通過無線模塊依次發(fā)送出去,上位機采集到時鐘,溫度以及光照信息之后,將日期時間,環(huán)境溫度及光信息顯示在液晶顯示模塊上,然后保存在EEROM里面,掉電不丟失。圖2.1電路整體方框單片機的選擇2.2.1C51單片機主要性能參數:128*8字節(jié)內部RAM32個可編程I/O口線2個16位定時/計數器6個中斷源可編程串行UART通道2.2.2Mega16單片機主要產品特征如下:兩個具有獨立預分頻器和比較器功能的8位定時器/計數器一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數器四通道PWM,兩個可編程的串行USART可工作于主機/從機模式的SPI串行接口具有獨立片內振蕩器的可編程看門狗定時器2.2.3MSP430單片機主要產品特征如下:同其它微控制器相比MSP430系列可以大大延長電池的使用壽命外部中斷引腳I/O口具有中斷能力定時器中斷可用于事件計數時序發(fā)生PWM等看門狗功能片內USARTs綜上所述,采用51單片機,如果要驅動數列點陣顯示,通用51單片機會比較吃力,出現比較嚴重的閃爍停滯現象,此外,要實現文字的左右移動和調整移動速度等功能,都會給軟件設計帶來較多困難,所以該單片機不是本設計的最佳選擇;Ateml公司Mega16單片機,它的功能相對51而言是比較多的,操作起來也比較容易,沒有特別突出的優(yōu)點;而TI公司低功耗MSP430單片機,具有強大的處理能力和運行速度快,功耗超低,應用方便等優(yōu)點,在多年來已在全球得到了廣泛應用,如工業(yè)控制,智能化儀器儀表,無線采集,手持設備,在這些方面應用體現較高性價比,MSP430主要用戶需要對模擬信號進行數字控制的領域,當然,純數字的系統(tǒng)絕對可以用的。另外他帶有硬件乘法器在處理一些運算時速度也較快,基于以上各種優(yōu)點,最終方案確定為單片機msp430。2.3無線模塊的選擇2.3.1NRF905模塊挪威nordic公司推出的單片射頻發(fā)射器芯片NRF905基本特征如下:1、433/868/915工作頻段,433MHZ開放ISM頻段可免許使用。2、最高發(fā)射速率50KBPS,10dbm發(fā)射功率條件下,配置外置鞭狀天線有效通信距離在300米左右。3、室內通信良好通信效果,4層之間可實現有效通信,抗干擾性能強,很強的擾障礙穿透性能。4、單次最多可發(fā)送接收32字節(jié),并可軟件設置發(fā)送/接收緩沖區(qū)大小2/4/8/16/32字節(jié),其配置非常方便,功耗比較低,由于頻段的限制,本方案放棄。2.3.2CC1020模塊基本特性:1、工作電壓:3.3V~3.6V,推薦3.3V,直線通信距離600米左右
2、頻率范圍為402MHz-470MHz工作
3、低電流消耗(RX:19.9mA)
4、SPI接口配置內部寄存器
5、標準DIP間距接口,便于嵌入式應用該芯片特點外圍電路元器件復雜,好多器件難以在短時間內采購齊全,故本方案也放棄。2.3.3NRF2401模塊挪威nordic公司推出的單片射頻發(fā)射器芯片NRF2401基本特征如下:1、2.4Ghz全球開放ISM頻段免許可證使用;2、最高工作速率1Mbps,高效GFSK調制,抗干擾能力強,適合工業(yè)控制場合;3、可直接接各種單片機使用,軟件編程非常方便;4、收發(fā)完成中斷標志,每次最多可發(fā)28字節(jié);5、CLK,DATA,DR三線接口,軟件編簡單。6、雙通道數據接收,內置環(huán)行天線,開闊無干擾條件通信距離在100米左右。將以上三種芯片進行對比,從距離,硬件復雜度和編程方面考慮,選擇方案三中nordic公司出品的NRF2401芯片構成無線通信模塊。LED廣告屏的選擇2.4.1按顏色分類單基色顯示屏:單一顏色(紅色或綠色)。雙基色顯示屏:紅和綠雙基色,256級灰度、可以顯示65536種顏色。全彩色顯示屏:紅、綠、藍三基色,256級灰度的全彩色顯示屏可以顯示一千六百多萬種顏色。2.4.2按顯示器件分類LED數碼顯示屏:顯示器件為7段碼數碼管,適于制作時鐘屏、利率屏等,顯示數字的電子顯示屏。LED點陣圖文顯示屏:顯示器件是由許多均勻排列的發(fā)光二極管組成的點陣顯示模塊,適于播放文字、圖像信息。其中的LED點陣單色圖文動態(tài)條幅屏(下文中簡稱條屏),因為成本低廉、可靠性高、顯示效果優(yōu)良,所以成為點陣式LED漢字廣告屏中的主流產品。2.5LED驅動模塊2.5.1靜態(tài)鎖存采用靜態(tài)鎖存方式,將每一個LED發(fā)光管的一端接至單片機的一個I/O口,另一端通過電阻接電源。這種方法可以直接驅動LED,原理簡單,驅動能力強,LED的亮度也可以通過限流電阻調節(jié),非常方便,但此種方法太浪費單片機的I/O口,只適合于較小的系統(tǒng)。2.5.2動態(tài)掃描采用動態(tài)掃描方式,通過三極管驅動并聯(lián)在一起的LED發(fā)光管的一端(共陰或共2端),LED發(fā)光管的另一腳接通用I/O口,控制其亮滅。該方法能驅動較多的LED,控制方式較靈活,而且節(jié)省單片機的資源。比較以上兩種方案,系統(tǒng)設計中采用方案二。最終方案的確定綜上所述,在本次設計中單片機選定為MSP430,無線模塊選定為NRF2401,點陣屏選定位LED點陣單色圖文顯示屏且驅動模塊為動態(tài)掃描。其中單片機和無線模塊各需要兩塊,其中一塊作為發(fā)送模塊,一個作為接收模塊,并且在接收模塊上將16*16LED點陣模塊連接上去,這樣在兩個NRF24L01之間可以通過無線傳播數據,即所謂的無線傳輸。第三章系統(tǒng)硬件設置由第二章的系統(tǒng)整體設計方案的確定,我們開始著手選擇各個模塊所使用的硬件。包括單片機,行列驅動以及LED點陣。為該模塊化LED顯示屏控制系統(tǒng)具有更加方便和靈活性,特對系統(tǒng)的硬件做了精心設計。硬件電路包括LED驅動模塊、PC機通信模塊等兩大模塊。硬件電路的總體設計本設計硬件部分包括上位機和下位機兩個部分,即充當采集數據的主機,和接收數據,并顯示出來的從機,由此可見,主機的結構比較復雜一下,包括時鐘模塊,溫度、光照采集電路,串口以及無線模塊,從機相對簡單一下,除了單片機典型最小系統(tǒng)電路,只要接上無線模塊,用以接收主機發(fā)出的數據,還有點陣模塊,將外界的信息顯示出來就可以了。光源采集光源采集電源模塊電源模塊無線發(fā)送模塊下位機無線發(fā)送模塊下位機溫度采集溫度采集串口接收串口接收模塊時鐘模塊時鐘模塊電源模塊上位機電源模塊上位機廣告屏顯示無線接收模塊單片機最小系統(tǒng)單片機片機芯片配以必要的外部器件,一般包括電源供入及電源開關、復位電路、晶振、輸入輸出電路等就能構成最小系統(tǒng)。圖3.2單片機MSP430的各個引腳3.2.1單片機MSP430的特點MSP430F149芯片是美國TI公司推出的超低功耗微處理器,有60KB+256字節(jié)FLASH,2KBRAM,包括基本時鐘模塊、看門狗定時器、帶3個捕獲/比較寄存器和PWM輸出的16位定時器、帶7個捕獲/比較寄存器和PWM輸出的16位定時器、2個具有中斷功能的8位并行端口、4個8位并行端口、模擬比較器、12位A/D轉換器、2個串行通信接口等模塊。MSP430F149芯片具有如下特點:1)功耗低:電壓2.2V、時鐘頻率1MHz時,活動模式為200μA;關閉模式時僅為0.1A,且具有5種節(jié)能工作方式。2)高效16位RISC-CPU,27條指令,8MHz時鐘頻率時,指令周期時間為125ns,絕大多數指令在一個時鐘周期完成;32kHz時鐘頻率時,16位MSP430單片機的執(zhí)行速度高于典型的8位單片機20MHz時鐘頻率時的執(zhí)行速度。3)低電壓供電、寬工作電壓范圍:1.8~3.6V;4)靈活的時鐘系統(tǒng):兩個外部時鐘和一個內部時鐘;5)低時鐘頻率可實現高速通信;6)具有串行在線編程能力;7)強大的中斷功能;8)喚醒時間短,從低功耗模式下喚醒僅需6μs;9)ESD保護,抗干擾力強;10)運行環(huán)境溫度范圍為-40~+85℃,適合于工業(yè)環(huán)境。MSP430系列單片機的所有外圍模塊的控制都是通過特殊寄存器來實現的,故其程序的編寫相對簡單。編程開發(fā)時通過專用的編程器,可以選擇匯編或C語言編程,IAR公司為MSP430系列的單片機開發(fā)了專用的C語言,可以通過WORKBENCH和C-SPY直接編譯調試,使用靈活簡單。3.2.2電源電路本系統(tǒng)需要使用+5V和+3.3V的直流穩(wěn)壓電源,其中MSP430Fl49及部分外圍器件需要+3.3V電源,另外部分需要+5V電源。在本系統(tǒng)中,以+5V直流電壓為輸入電壓,+3.3V由+5V直接線性降壓。圖3.3電源轉換電路原理3.2.3晶振電路由于MSP430有三個晶振源,兩個外部晶振,一個內部RC晶振,所以在晶振電路中我連了兩個外部晶振一個32768Hz,另一個是8MHz。在程序中我們可以通過程序的要求,選著合適的晶振圖3.4晶振電路3.2.4復位電路原理圖手動復位是最小系統(tǒng)常用的功能,本系統(tǒng)采用專用復位芯片IMP811實現手動復位。圖3.5復位電路實時時鐘DS1302是DALLAS公司推出的涓流充電時鐘芯片,內含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數和閏年的天數可自動調整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線(1)RES(復位),(2)I/O(數據線),(3)SCLK(串行時鐘)。在本設計中,時鐘芯片上這三個引腳直接跟MSP430F149的P3.0,P3.1,P3.2相連。時鐘/RAM的讀/寫數據以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302工作時功耗很低,保持數據和時鐘信息時功率小于1mW。管腳描述X1X232.768KHz晶振管腳GND地RST復位腳I/O數據輸入/輸出引腳SCLK串行時鐘Vcc1,Vcc2電源供電管腳3.4串行通信圖3.7串行通信電路這是232串口通信的一個典型電路,Max232產品是由德州儀器公司(TI)推出的一款兼容RS232標準的芯片。該器件包含2驅動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標準,每一個接收器將TIA/EIA-232-F電平轉換成5-VTTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉換成TIA/EIA-232-F電平。所以它可以做成一個雙串口的電路,分別接單片機的串行通信口或者實驗板的其它串行通信接口,本設計不需要那么復雜,故只用了其中一組驅動、接收器。LED點陣對于點陣型LED顯示可以采用共陰極或共陽極,本系統(tǒng)采用共陽極,其硬件電路如圖2.1所示。當行上有一正選通信號時,列選端四位數據為0的發(fā)光二極管便導通點亮。這樣只需要將圖形或文字的顯示編碼作為列信號跟對應的行信號進行逐次掃描,就可以逐行點亮點陣。只要掃描速度大于24Hz,由于掃描時間很快,人眼的視覺有暫留效應,就可以看到顯示的是完整的圖形或文字。圖3.88*8共陽極LED點陣例如,若要圖中所示16個LED顯示一個“口”字的方框,則首先在列1~4上寫入列編碼信號,接著應將對應的行上加選通信號,即在行、列的信號端分別加上如表3.1所示數據:表3.1在點陣上所加的行信號以及列選擇信號列1列2列3列4行10000行20110行30110行40000這樣,當第一行選通時列信號為0000;第二行選通時列信號為0110;第三行選通時列信號為0110;第四行選通時列信號為0000;再選通第一行送列信號0000……如此循環(huán)下去,當刷新頻率足夠高時(大于24Hz),由于人眼的視覺暫留特性,便可觀察到穩(wěn)定的方框。3.6無線模塊圖3.9無線模塊NRF24L01集成版圖主要參數:(1)2.4Ghz全球開放ISM頻段免許可證使用(2)最高工作速率2Mbps,高效GFSK調制,抗干擾能力強(3)126頻道,滿足多點通信和跳頻通信需要(4)內置硬件CRC檢錯和點對多點通信地址控制(5)低功耗1.9-3.6V工作,待機模式下狀態(tài)為22uA;掉電模式下為900nA(6)內置2.4Ghz天線,體積小巧15mmX22mm3.7溫度傳感器下圖是常用的溫度傳感器芯片18b20的實物圖,它只有三個引腳,操作很簡單圖3.10溫度傳感器芯片以下是傳感器在板子上的電路圖3.11DS18B02下面簡要介紹一下溫度傳感器18b201.DS18B20基本知識DS18B20數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。溫度/數據關系表3.2溫度數據關系溫度數字輸出/(二進制)安息字輸出(十六進制)+125°C000000001111101000FAh+25°C00000000001100100032h+1/2°C00000000000000010001h+0°C00000000000000000000h–1//2°C1111111111111111FFFFh–25°C1111111111001110FFCEh–55°C1111111110010010FF92h3、DS18B20的引腳介紹GND地信號DQ數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。3.8.系統(tǒng)的電路設計3.8.1LED電路原理圖圖3.12LED電路原理3.8.2單片機msp430最小系統(tǒng)的PCB版圖設計圖3.13msp430最小系統(tǒng)的PCB版圖設計第4章軟件設計4.1軟件設計方案在本次設計中,軟件部分有以下幾大塊:時鐘DS1302,溫度傳感器18B20和光敏傳感器,無線模塊,以及廣告屏的編程,上位機與下位機的軟件流程設計思路如下:下位機上電后,先初始化內部變量、時鐘,信息采集及通信模塊,然后進行信息采集,下位機將采集到的信息通過無線模塊依次發(fā)送出去,上位機采集到時鐘,溫度以及光照信息之后,將日期時間,環(huán)境溫度及光信息顯示在液晶顯示模塊上,然后保存在EEROM里面,掉電不丟失。下位機下位機上位機廣告屏顯示程序溫度采集程序光照采集程序時鐘信息程序無線模塊(發(fā)送)程序無線模塊(接收)程序圖4.1軟件設計方案的流程圖4.2實時時鐘模塊因為本設計需要在顯示屏上顯示時間以及日期的信息,故需要用到實時時鐘模塊,以下就軟件方面對時鐘模塊做詳細的介紹:4.2.1實時時鐘模塊簡介DS1302是DALLAS公司推出的涓流充電時鐘芯片,內含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數和閏年的天數可自動調整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線(1)RES(復位),(2)I/O(數據線),(3)SCLK(串行時鐘)。時鐘/RAM的讀/寫數據以一個字節(jié)或多達31個字節(jié)的字符組方式通信,DS1302工作時功耗很低,保持數據和時鐘信息時功率小于1mW。4.2.2實時時鐘模塊的時序圖1)寄存器操作當寫保護寄存器的最高位為0時,允許數據寫入寄存器,寫保護寄存器可以通過命令字節(jié)8E、8F來規(guī)定禁止寫入/讀出。寫保護位不能在多字節(jié)傳送模式下寫入。它的寄存器分配如下:1RAM/CKA4A3A2A1A0RD/W2)寫操作時序讀寫操作需要嚴格按照時序圖來進行,下面分別是1302的寫操作時序圖以上是DS1302一個字節(jié)寫入的時序圖。第一個字節(jié)是地址字節(jié),第二個字節(jié)是數據字節(jié),RST信號必須拉高,否則數據的輸入是無數的。換一句話說,RST信號控制數據時間信號輸入的開始和結束。地址字節(jié)和數據字節(jié)的讀取時上升沿有效,而且是由LSB開始讀入,3)讀操作時序讀一個字節(jié)和寫一個字節(jié)有明顯的不一樣,先是寫地址字節(jié),然后再讀數據字節(jié),寫地址字節(jié)時上升沿有效,而讀數據字節(jié)時下降沿有效,當然前提是RST信號必須拉高,寫地址字節(jié)和數據字節(jié)同是LSB開始。讀一個字節(jié)和寫一個字節(jié)最大的區(qū)別是,寫一個字節(jié)的時候,MSP430的IO口一直保持輸出狀態(tài),相反的在讀一個字節(jié)時MSP430的IO口先是輸出狀態(tài),然后是輸入狀態(tài),且必須改變是在信號的順序。4.2.3時鐘模塊操作流程圖開始開始變量初始化變量初始化使DS1302不具備寫保護使DS1302不具備寫保護復位端產生一個高電平復位端產生一個高電平復位端產生一個高電平復位端產生一個高電平寫1302地址寫1302地址寫1302地址寫1302地址延時一段時間延時一段時間延時一段時間延時一段時間將該地址的數據讀出向該地址寫數據將該地址的數據讀出向該地址寫數據地址增加地址增加地址增加地址增加數據讀完了嗎?數據寫完了嗎?數據讀完了嗎?數據寫完了嗎?YY顯示數據顯示數據NN圖4.2時鐘模塊流程圖4.2.4模塊程序設計?初始化定義初始化定義就是將DS1302需要操作的三個口對應跟單片機的I/O口相連,得以在接下去的子程序中顯得直觀一點#defineSET_SCKP3OUT|=0X01;#defineCLR_SCKP3OUT&=~0X01; #defineSET_SDAP3OUT|=0X02;#defineCLR_SDAP3OUT&=~0X02;#defineSET_RSTP3OUT|=0X04;#defineCLR_RSTP3OUT&=~0X04; 以上宏定義是將時鐘芯片DS1302的三個引腳定義到PD4、PD5、PD6三個口上,便于在下面的程序中顯得直觀一點unsignedcharl_tmpdate[7]={0,0,12,15,4,3,9};};//秒分時日月周年,可隨時更改unsignedcharwrite_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//秒分時日月周年寫寄存器地址,最低位是讀寫位Unsignedcharread_rtc_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};//秒分時日月周年讀寄存器地址,最低位是讀寫位constunsignedchartable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; //共陽數碼管0-9'-''熄滅‘表?寫操作讀寫操作需要嚴格按照時序圖來進行,對應時序圖,我們可以通過軟件進行操作:voidWrite_Ds1302(unsignedcharaddress,unsignedchardat)向寄存器寫數據{ CLR_RST;_NOP();CLR_SCK;_NOP();SET_RST; _NOP();//啟動 Write_Ds1302_Byte(address); //發(fā)送地址 Write_Ds1302_Byte(dat); //發(fā)送數據 CLR_RST; //恢復}voidWrite_Ds1302_Byte(unsignedchartemp)//寫一個字節(jié){{unsignedchari;for(i=0;i<8;i++) //循環(huán)8次寫入數據{CLR_SCK;if(temp&0x01){SET_SDA;}//每次傳輸低字節(jié) elseCLR_SDA;temp>>=1; //右移一位SET_SCK;}}?讀操作同樣地,根據上一節(jié)提到的讀操作的時序圖,可以進行如下的軟件操作:unsignedcharRead_Ds1302(unsignedcharaddress)//從寄存器讀取數據{ unsignedchari,temp=0x00; CLR_RST;_NOP();CLR_SCK;_NOP();SET_RST;_NOP(); Write_Ds1302_Byte(address); DDRD&=~(1<<4); for(i=0;i<8;i++) //循環(huán)8次讀取數據 { if(PIND&(1<<PD4)) temp|=0x80; //每次傳輸低字節(jié) CLR_SCK; temp>>=1; //右移一位 SET_SCK; } DDRD|=(1<<4);CLR_RST; _NOP(); //以下為DS1302復位的穩(wěn)定時間 CLR_RST;CLR_SCK;_NOP();SET_SCK;_NOP();CLR_SDA; _NOP();SET_SDA;_NOP();return(temp); //返回}voidRead_RTC(void) //讀取日歷{unsignedchari,*p;p=read_rtc_address; //讀的地址傳遞for(i=0;i<7;i++) //分7次讀取秒分時日月周年{l_tmpdate[i]=Read_Ds1302(*p);p++;}}voidSet_RTC(void) //設定日歷{ unsignedchari,*p,tmp; for(i=0;i<7;i++){//BCD處理,將十六進制轉換為十進制 tmp=l_tmpdate[i]/10; l_tmpdate[i]=l_tmpdate[i]%10; l_tmpdate[i]=l_tmpdate[i]+tmp*16; } Write_Ds1302(0x8E,0X00);//關閉寫保護 p=write_rtc_address; //傳要寫的寄存器地址 for(i=0;i<7;i++) //7次寫入秒分時日月周年 { Write_Ds1302(*p,l_tmpdate[i]); p++; } Write_Ds1302(0x8E,0x80);//打開寫保護}4.3溫度,光照信息采集模塊4.3.1溫度傳感器模塊的簡介DS18B20數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。1、DS18B20產品的特點(1)、只要求一個端口即可實現通信。(2)、在DS18B20中的每個器件上都有獨一無二的序列號。(3)、實際應用中不需要外部任何元器件即可實現測溫。(4)、測量溫度范圍在-55°C到+125°C之間。(5)、數字溫度計的分辨率用戶可以從9位到12位選擇。(6)、內部有溫度上、下限告警設置。4.3.2溫度傳感器模塊的時序圖初始化.主機總線在T0時刻從電源降到0并保持400-960uS時間,然后再上升到電源大約在15-60uS后,18B20輸出低電平并保持60uS-240uS,然后上升到電源,完成初始化。寫0和1時序寫0時序寫1時序當主機總線T0時刻從高拉到低電平時,就產生寫時間時序,從T0時刻開始15uS之內應該將所需要的位送到總線上。寫0時序,總線輸出0后,15uS對總線采樣,若為低電平則寫入的位是0,若為高電平則寫入的位是1,連續(xù)寫2位的間隙應該大于1uS。寫1時序時,單總線被拉低之后,在15us之內就得釋放單總線。讀時序對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內就得釋放單總線,以讓DS18B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。4.3.3模塊操作流程初始化初始化設置18b20個數B設置18b20個數B匹配ROM跳過ROM匹配ROM跳過ROM讀存儲器變換溫度讀存儲器變換溫度存在緩沖區(qū)指針增1等待1s存在緩沖區(qū)指針增1等待1s初始化初始化初始化初始化B-1=0?否B-1=0?是圖4.3模塊操作流程圖4.3.4模塊程序設計由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數據線實現數據的雙向傳輸,因此,對讀寫的數據位有著嚴格的時序要求,即編程時要嚴格按照上面的時序圖來進行。DS18B20有嚴格的通信協(xié)議來保證各位數據傳輸的正確性和完整性。該協(xié)議定義了幾種信號的時序,就是上面提到的初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。下面就本設計的程序做一下詳細的分析:(1)18b20初始化函數voidInit_DS18B20(void){unsignedcharx=0;SET_DQ;//DQ復位delay(8);//稍做延時CLR_DQ;//單片機將DQ拉低delay(80);//精確延時大于480usSET_DQ;//拉高總線delay(10);DDRB&=~(1<<7);x=(P2IN&0X80);//稍做延時后,如果x=0則初始化成功;x=1則初始化失敗delay(5);DDRB|=(1<<7);}(2)讀一個字節(jié)unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){CLR_DQ;//給脈沖信號dat>>=1;SET_DQ;//給脈沖信號DDRB&=~(1<<7);if(P2IN&(1<<7))dat|=0x80;delay(5);DDRB|=(1<<7);}return(dat);}(3)寫一個字節(jié)voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){CLR_DQ;if(dat&0x01)SET_DQ;elseCLR_DQ;delay(5);SET_DQ;dat>>=1;}delay(5);}(4)讀取溫度unsignedcharReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedchart=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0x44);//啟動溫度轉換delay(200);Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度a=ReadOneChar();b=ReadOneChar();b<<=4;b+=(a&0xf0)>>4;t=b;//tt=t*0.0625;//t=tt*10+0.5;//放大10倍輸出并四舍五入return(t);}4.3.5光敏傳感器模塊簡介1、光敏傳感器的選擇光敏傳感器有很多類型,主要有:光電管、光電倍增管、光敏電阻、光敏三極管、太陽能電池、紅外線傳感器、紫外線傳感器、光纖式光電傳感器、色彩傳感器等,由于光敏電阻靈敏度高,體積小,重量輕,性能穩(wěn)定,價格便宜,因為在本次設計中不需要很精確地采集外圍環(huán)境的光照信息,故選用光敏電阻來比較合適。光敏電阻可以作為程序的運行指令與終止指令。光敏電阻就是一個傳感器,有“有信號”與“無信號”兩種狀態(tài),所以軟件編程相對很容易。因為設計中用到的光敏電阻實際上就相當于是一個電阻,所以,只需要讀取它上面的電壓值就知道有沒有光照了,在本設計中,由于時間顯示,又要是實驗結果盡量直觀,我們就將有光的時候在顯示屏上顯示“亮”,然后在用手遮住光敏電阻之后顯示“暗”,表示此時已經沒有光照了。以下是設計中用到的程序(1)、端口初始化PORTD&=~_BV(PD7);//此口總保持低DDRD&=~_BV(PD7);//初始化為輸入,用外部上拉電阻保持總線的高電平因為光敏電阻是跟單片機上的PD7口相連的,而在執(zhí)行過程中要隨時讀取上面的電壓值,故將PD7口初始化為輸入。(2)、顯示光照狀態(tài)的宏定義constunsignedcharbright[32]={/*--文字:亮--*//*--宋體12;此字體下對應的點陣為:寬x高=16x16--*/0x01,0x00,0x7F,0xFC,0x00,0x00,0x0F,0xE0,0x08,0x20,0x0F,0xE0,0x00,0x04,0x7F,0xFE,0x40,0x04,0x87,0xC8,0x04,0x40,0x04,0x40,0x08,0x42,0x10,0x42,0x60,0x3E,0x00,0x00};//用來顯示有亮光時的漢字宏定義,即“亮”constunsignedchardark[32]={/*--文字:暗--*//*--宋體12;此字體下對應的點陣為:寬x高=16x16--*/0x00,0x40,0x00,0x20,0x7B,0xFC,0x49,0x10,0x48,0x90,0x48,0xA0,0x7F,0xFE,0x48,0x00,0x49,0xF8,0x49,0x08,0x79,0xF8,0x49,0x08,0x01,0x08,0x01,0xF8,0x01,0x08,0x00,0x00};//用來顯示無亮光時的信息漢字宏定義,即“暗”(3)、讀取光敏電阻上的值點陣上顯示if((P2IN&0X80)==0X80) { for(i=0;i<32;i++) lhj[i]=bright[i];//將漢字“亮”的編碼復制到顯示緩存用來顯示display();//顯示 } else {for(i=0;i<32;i++) lhj[i]=bright[i];//將漢字“暗”的編碼復制到顯示緩存用來顯示display();//顯示 }4.4無線模塊4.4.1無線模塊簡介對nRF2401的配置接口由CE、PWR、CS組成。有4種工作模式(如表1所列),數據通過DATA、CLK1輸入。工作模式PWRCECS收發(fā)模式110配置模式101空閑模式100掉電模式0XX表4.1
4種工作模式其發(fā)射功率、工作頻率等所有工作參數全部通過軟件設置完成。系統(tǒng)工作之前必須對nRF2401進行初始化配置,可通過DATA、CLK1串行輸入120位的配置位。nRF2401有2種通信方式:ShockBurst和Direct方式。ShockBurst方式時,nRF2401可以自動加載數據頭,進行CRC等工作,對外部編程的工作量少,為此在此系統(tǒng)中采用ShockBurst方式。ShockBurst方式的發(fā)送、接收工作流程如下一節(jié)所示。4.4.2無線模塊的時序圖正如上幾節(jié)提到的,在編程時時序是非常重要的,所以向nRF2401A寫控制字操作也必須嚴格下面的時序進行(1)、向nRF2401A寫命令字時序圖PWR_UP為高、CE為低時,置位CS,芯片處于命令字寫入狀態(tài),通過通道1向芯片的控制字緩沖區(qū)寫入命令字,按照由高位到低位的順序,命令字全部寫入后,將CS置低,nRF24101A芯片將會根據命令字配置相應的內部模塊。在第一次配置操作結束后,只有最后兩個字節(jié)的命令字可以被更改,前16個字節(jié)的修改無效,如果需要修改前16個字節(jié)的命令字(如通道接收地址,接收數據長度等),則需要掉電(PWR_UP置低)后重新上電(PWR_UP置高),才能對芯片進行徹底初始化操作。需要注意的地方:并不是18個Byte的命令字全部需要寫入,通常我們只需要寫后15個Byte即可;15個Byte的命令字在nRF2401.C文件中通過InitData[15]定義,用戶需根據自己的通信格式對之進行修改;bit15~bit0可以根據需要反復修改,但是bit144~bit16只有上電后的第一次初始化有效。(2)、單片機向nRF2401A發(fā)送數據的時序如下MSB?LSB數據格式為如下:An~A0為接收機地址,不超過40位,通過更換地址,可以向多個nRF2401A模塊發(fā)送數據;Dk~D0為待發(fā)送的數據。以上數據由單片機發(fā)送到nRF2401A之后,nRF2401A將會進行打包并發(fā)射,打包后的數據格式為:其中Pre為8位的校驗頭,CRC為8位或16位的校驗尾,在ShockBurst模式下由nRF2401A自動添加。需要注意的地方:Address、Data、CRC的位數之和不超過256;Address長度必須和目標接接收通道的地址一致(數據和長度);Data長度必須和目標接接收通道的接收數據寬度一致。發(fā)射端和接收端的RF頻率須一致,如兩端均采用通道1,則二者控制字的bit7~bit1一致,如接收端采用通道2,則發(fā)射端bit7~bit1值比接收端bit7~bit1值大8。(3)、單片機從nRF2401A讀取數據的時序如下當接收端成功接收到數據后,將會置位對應的數據請求管腳DR1/DR2,單片機通過查詢該管腳狀態(tài),或者通過中斷方式接收數據,nRF2401.C文件提供的從nRF2401A讀取數據的函數有兩個:4.4.3數據傳輸的流程圖(1)、NRF2401ShockBurst方式發(fā)送流程圖配置NRF2401配置NRF2401數據碼=256-地址碼[8~40位]數據打包(地址碼+數據)數據打包(地址碼+數據)置CE為高置CE為高串行裝載數據CE置低CE置低NRF2401自動加數據頭,并以250kbps或1Mbps的速率向外發(fā)數據NRF2401自動加數據頭,并以250kbps或1Mbps的速率向外發(fā)數據此段在NRF2401中自動完成,只需在MCU中延時大約200us即發(fā)送完畢?可發(fā)送完畢?NY(2)、NRF2401ShockBurst方式接收流程圖配置NRF2401配置NRF2401NRF2401是否接收到數據?NRF2401是否接收到數據?N在NRF2401中Y自動完成NRF2401判斷地址是否正確?NRF2401判斷地址是否正確?MCU從NRF2401的FIFO中串行接收數據,MCU從NRF2401的FIFO中串行接收數據,FIFO讀空后DR1變高NYDR1被NRF2401置高,引發(fā)MCU中斷接收數據,并判斷CRC是否正確?DR1被NRF2401置高,引發(fā)MCU中斷接收數據,并判斷CRC是否正確?NY圖4.4數據傳輸流程圖4.4.4無線模塊程序設計(1)、數據發(fā)送程序單片機向nRF2401A傳送數據的函數有以下4個:voidnRF2401_SendByte(unsignedintTxData),用于發(fā)送一個字節(jié)數據;voidnRF2401_SendWord(unsignedintTxData),用于發(fā)送一個字數據;voidnRF2401_SendBuffer_Byte(unsignedintTxData[],unsignedintDataByte),用于發(fā)送一個字節(jié)數組;voidnRF2401_SendBuffer_Word(unsignedintTxData[],unsignedintDataWord),用于發(fā)送一個字數組。以上幾個函數的流程是一樣的,只是發(fā)送數據的長度不同。函數的使用:voidnRF2401_SetAddress(unsignedintAddress[],unsignedintAddrByte):設置目標nRF2401A的地址,發(fā)送端在發(fā)送數據前調用,只需要一次即可。其中Address[]數組為目標nRF2401A地址,AddrByte為有效地址的字節(jié)數。voidnRF2401_SendByte(unsignedintTxData):用于向nRF2401A發(fā)送一幀數據(目標地址+一個字節(jié)數據TxData);voidnRF2401_SendWord(unsignedintTxData):用于向nRF2401A發(fā)送一幀數據(目標地址+一個字數據TxData);voidnRF2401_SendBuffer_Byte(unsignedintTxData[],unsignedintDataByte):用于向nRF2401A發(fā)送一幀數據(目標地址+一個字節(jié)數組TxData[]),其中DataByte為數組元素個數;voidnRF2401_SendBuffer_Word(unsignedintTxData[],unsignedintDataWord):用于向nRF2401A發(fā)送一幀數據(目標地址+一個字數組TxData),其中DataWord為數組元素個數;(2)數據接收程序當接收端成功接收到數據后,將會置位對應的數據請求管腳DR1/DR2,單片機通過查詢該管腳狀態(tài),或者通過中斷方式接收數據,nRF2401.C文件提供的從nRF2401A讀取數據的函數有兩個:voidnRF2401_ReceiveByte(unsignedintRxData[]),以Byte格式從nRF2401A讀取數據;voidnRF2401_ReceiveWord(unsignedintRxData[]),以Word格式從nRF2401A讀取數據。以上兩個函數的操作流程是一樣的,只是存儲的數據格式不同。函數的使用:voidnRF2401_ReceiveByte(unsignedintRxData[]):以Byte格式從nRF2401A讀取數據,接收數據存儲在數組RxData[]中。voidnRF2401_ReceiveWord(unsignedintRxData[]):以Word格式從nRF2401A讀取數據,接收數據存儲在數組RxData[]中。(3)、其他程序其他程序如下:voidnRF2401_ON()://nRF2401A上電操作,在初始化nRF2401A之前執(zhí)行該操作;voidnRF2401_OFF()://nRF2401A掉電操作,在需要重新初始化nRF2401A時執(zhí)行該操作;voidnRF2401_Mode(unsignedintuiMode)://nRF2401A收/發(fā)模式切換,uiMode=0,設置nRF2401A為接收;uiMode=1,設置nRF2401A為發(fā)送;unsignedintnRF2401_RxStatus()://判斷nRF2401A是否有數據接收,如果已經接收到數據,返回值為“1”,如果沒有接收到數據,返回值為“0”;4.5LED點陣模塊4.5.1點陣模塊簡介LED顯示屏是一種通過控制半導體發(fā)光二極管的顯示方式,用來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號燈各種信息的顯示屏幕。LED顯示屏控制系統(tǒng)實現顯示信息的刷新技術有動態(tài)掃描和靜態(tài)鎖存兩種方式。一般室內顯示屏多采用動態(tài)掃描技術,即一行發(fā)光二極管共用一行驅動寄存器,根據共用一行驅動寄存器的發(fā)光二極管像素數目。室外顯示屏基本上采用靜態(tài)鎖存技術,即每一個發(fā)光二極管都對應有二個驅動寄存器。動態(tài)掃描法可以大大減少控制器的I/O口,因此應用較廣。4.5.2點陣模塊時序圖本設計使用的點陣屏是由4個大小為φ1.9mm的8*8共陽點陣組成16*16點陣,點陣屏可拆裝,采用圓孔銅排針,連接性能非常好。驅動部份使用兩個移位帶存儲器的74HC595和兩個移位寄存器74HC164組成,74HC595負責列掃描數據,74HC164負責行掃描數據。列掃描采用三極管放大電流,加大掃描強度,提高點陣屏亮度。數據接口采用可并接方式,有輸入和輸出,方便并接多個單板,組成32*16、48*16、64*16等點陣。下圖就是點陣模塊的時序圖:4.5.3點陣模塊程序流程圖1)顯示驅動程序顯示驅動程序在進入中斷后首先要對定時器T0重現賦初值,以保證顯示屏刷新率的穩(wěn)定,然后顯示驅動程序查詢當前燃亮的行號,從顯示緩存區(qū)內讀取下一行的顯示數據,并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數據的時候產生拖尾現象,驅動程序先要關閉顯示屏,即消隱,等顯示數據打開輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示,以下就是顯示驅動程序的流程圖:進入中斷進入中斷定時器賦初值讀取行號并增加1送新行顯示數據消隱切換顯示數據發(fā)送新行號,打開顯示退出中斷圖4.5顯示驅動程序流程圖2)系統(tǒng)主程序系統(tǒng)主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設置串口、定時器、中斷和端口;然后以“卷簾出”效果顯示圖形,停留約3s;接著向上滾動顯示信息,然后以“卷簾入”效果隱去圖形。單元顯示屏可以接收來自控制器或上一級顯示單元模塊傳輸下來的數據信息和命令信息,并可將這些數據信息和命令信息部經任何變化地再傳送給下一級顯示模塊單元中,因此顯示板可擴展至更多的顯示單元,用于顯示更多的顯示內容。下圖是系統(tǒng)主程序流程圖:開始開始系統(tǒng)初始化“卷簾出”顯示效果“上滾屏”顯示效果“左跑馬”顯示效果“卷簾入”顯示效果圖4.8系統(tǒng)總程序流程圖4.5.4點陣模塊程序設計1.IC-74HC59574HC595是硅結構的CMOS器件,兼容低電壓TTL電路,它的引腳圖如下:圖4.974HC59574HC595是具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。移位寄存器和存儲器是分別的時鐘。數據在SCHcp的上升沿輸入,在STcp的上升沿進入存儲寄存器。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖,電路中,將兩個時鐘分開控制,目的是先移好位,再存儲數據,這樣在移位的過程中,可保持輸出的數據。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7‘),電路將其接入下一個IC的輸入(Ds)組成16位移位存儲。一個異步的低電平復位/MR,電路中不使用復位信號,將此腳直接接入電源VCC)。存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線,電路中直接將此腳接GND,做直接輸出。IC-74HC16474HC164是簡單的8位移位寄存器,下圖是它的引腳圖:圖4.1074HC164如上圖:輸入A、B在SCK時鐘脈沖作用下移入寄存器。A、B是與的輸入,電路將其合并做一個輸入,移位寄存器的最后一位輸出Qh接入下一個74HC164的輸入AB,組成16位移位寄存器,位的輸出經過三極管放大電流加到點陣共陽端,即做為點陣的行控制。軟件部分:列的處理信號有三個,SER、SRCLK、RCLK,SER做為列移位寄存器的輸入,SRCLK是移位時鐘,RCLK做為鎖存時鐘,當將16個位數據在SRCLK的脈沖作用下移入寄存器后,就可以開啟RCLK時鐘,使寄存器中的數據存入鎖存器,因使能腳接0使能,數據直接輸出Q端,Q端數據經限流電阻接入點陣COL腳位,即一行的數據顯示。另外兩個信號是AB和SCK,AB做為行移位寄存器的輸入,SCK是移位時鐘,AB的輸入在SCK的時鐘脈沖下移入寄存器,寄存器輸出端Q經電阻接入三極管B極,控制三極管的導通和截止,從面控制點陣ROW腳位電量。每次移位行的輸出16個Q位只允許有一個是低電平,即是分時輪流的輸出低電平使用三極管輪流導通,從而使掃描至上而下進行。對于16*16點陣,整個過程是先移出16個列數據信號,再移一個行信號,重復完成16行掃描。對于32*16點陣,整個過程是先移出32個列數據信號,再移一個行信號,重復完成16行掃描。對于48*16點陣,整個過程是先移出48個列數據信號,再移一個行信號,重復完成16行掃描。下面對程序設計做一下簡要的分析:voiddisplay(void)//顯示{ unsignedchari,ia,tmp; //定義變量 unsignedintj; PORTC=0xff; //置位高電平做準備 CLR_AB; //將列數據位清0,準備移位 for(i=0;i<16;i++){ //循環(huán)輸出16行數據 CLR_SCK; //為列移位做準備 CLR_SCLT; //為行鎖存做準備 for(ia=8;ia>0;){ //每行48個點,循環(huán)位移6個字節(jié) ia--; //循環(huán)四次 tmp=~lhj[i*8+ia]; //讀取點陣數據做輸出,這里用到ia目的是先讀取點陣數據的第8個字節(jié),因一行64個點由8個字節(jié)組成, //電路中的移位寄存器最后一位對應最后一列,所以要先輸出一行中的第四個字節(jié)數據 for(j=0;j<8;j++){ //循環(huán)兩次,每次移一個字節(jié), CLR_SCLH; //為列移位做準備 if(tmp&0x01){SET_DATA;} elseCLR_DATA; //將數據低位做輸出,由電路圖可知,移位寄存器的最后一位對應最后一列,因此先移最后一位 tmp>>=1; //將數據緩沖右移一位,為下次輸出做準備 SET_SCLH; //將DATA上的數據移入寄存器 } //移入單字節(jié)結束 } //移入兩個字節(jié)結束 SET_SCK; //SCK拉高,列數據移位,相應行拉低,三極管導通輸出電量到相應行點陣管陽極(共陽) SET_SCLT; //SCLT拉高,將數據鎖存輸出到相應行的點陣發(fā)光管顯示,顯示一行后將保持到下一行顯示開始 SET_AB; //列數據位只在第一行時為0,其它時候都為1,當將這個0移入寄存器后,從第一位開始一直移位最后一位, //移位的過程,AB就必需是1,這是因為不能同時有兩個及兩個以上0的出現,否則顯示出亂 } j=500; while(j--); //每一行的顯示,保持16個移位時間,因此,最后一行的顯示,也要加入保持時間,補償顯示的亮度 CLR_SCK; // SET_SCK; //將最后一行數據移出}voiddisplayS(unsignedinttimer) //指定時間掃描顯示{ unsignedchari; while(timer--){ //當timer=1時,大約1秒時間 i=600; while(i--) display(); }}第5章論文實驗與結論5.1設計結果總結這次廣告屏的設計讓我學到了不少知識,第一次接觸并且了解了單片機msp430,對其內部結構和最小模塊系統(tǒng)有了一個深入的了解。為了完成畢業(yè)設計我也在平時工作緊張的情況下,盡己所能努力完成畢業(yè)設計。在該設計中共用到了兩個單片機msp430模塊,一個用來發(fā)送數據,一個用來接收數據,實物圖如下:圖5.1發(fā)送模塊實物圖圖5.2接收模塊實物圖圖5.3總電路實物圖如上圖所示,左邊為發(fā)送模塊,右邊為接收模塊,其中發(fā)送與接受之間用到了兩塊無線模塊NRF24L01,右邊接收到數據后將會將其結果顯示在LED點陣屏上,這樣在廣告屏上將會顯示信息。硬件電路連好以后,將msp430的發(fā)送程序燒到左邊的單片機,msp430的接受程序燒到右邊的單片機,最終的顯示結果如下圖:圖5.4最終顯示結果5.2課題展望本文通過設計單片機控制單色LED顯示屏的方法,對LED顯示模塊單元如何進行行列信號控制及信號傳輸中的驅動問題進行了研究。介紹了硬件的原理以及連接的方法,軟件的設計流程以及部分代碼,并給出了完整的電路圖,經調試后可以正常顯示溫度、光照、時間信息,并且可動態(tài)顯示。軟件部分的設計跟硬件完美配合實現各個信息的顯示。通過LED點陣顯示原理,我們知道只要合理的安排行選信號以及列信號同時導通的組合順序就可以顯示任何的圖形、文字。軟件的設計就是完成將漢字點陣數據通過一些特殊的算法調整,得到跟LED點陣相對應的數據,并將這些數據以及控制信號傳送到LED點陣屏,來實現分屏掃描顯示以及左移掃描顯示的效果。致謝經過本次的畢業(yè)設計實踐,讓我加深了對專業(yè)知識的認識與了解,同時這對我個人而言,它既是一次展現我動手能力的機會,也是一次對我專業(yè)知識全方面的考查。在整個設計過程中,我時刻嚴格要求自己,并且不斷地反思自己的不足之處,爭取做到更好。我要感謝學校里為我們提供了這樣一個展現自己成果的平臺,在這樣一個平臺上,我們不僅可以擴充自己的專業(yè)知識,而且也提高了自己的動手能力。在這里,還要特別感謝我的指導老師。在這段時間里,他不辭辛苦
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 35031.5-2025用戶端能源管理系統(tǒng)第5部分:應用側接口規(guī)范
- CCAA - 2018年03月建筑施工領域專業(yè)答案及解析 - 詳解版(56題)
- 中學宿舍管理規(guī)則制度
- 養(yǎng)老院醫(yī)療廢物處理制度
- 養(yǎng)老院個性化服務制度
- 企業(yè)人力資源配置制度
- CCAA - 2024年03月認證基礎 認通基答案及解析 - 詳解版(62題)
- 統(tǒng)編版(2024)七年級下冊語文第六單元(22~25課)教案
- 老年終末期尿失禁皮膚護理的循證個性化護理方案
- 兒童肺炎支原體肺炎診療指南2026
- 江蘇省鹽城市大豐區(qū)四校聯(lián)考2025-2026學年七年級上學期12月月考歷史試卷(含答案)
- 事業(yè)編退休報告申請書
- 原發(fā)性骨髓纖維化2026
- 子宮內膜癌(本科)+
- 軟基施工方案
- 鋼結構清包工合同
- 安全技術勞動保護措施管理規(guī)定
- 新建加油站可行性研究報告6118933
- 論高級管理人員應具備的財務知識
- GB/T 7354-2003局部放電測量
- GB/T 1690-1992硫化橡膠耐液體試驗方法
評論
0/150
提交評論