基于單片機的智能路燈節(jié)能系統(tǒng)的設計與實現(xiàn)1_第1頁
基于單片機的智能路燈節(jié)能系統(tǒng)的設計與實現(xiàn)1_第2頁
基于單片機的智能路燈節(jié)能系統(tǒng)的設計與實現(xiàn)1_第3頁
基于單片機的智能路燈節(jié)能系統(tǒng)的設計與實現(xiàn)1_第4頁
基于單片機的智能路燈節(jié)能系統(tǒng)的設計與實現(xiàn)1_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要本文介紹了基于單片機的智能路燈節(jié)能系統(tǒng)的設計與實現(xiàn)。本系統(tǒng)會根據(jù)交通情況和環(huán)境明暗自動調節(jié)亮燈狀態(tài):當環(huán)境較暗時,汽車靠近路燈時,路燈能自動點亮;當汽車遠離時,路燈自動熄滅。本方案以AT89S52單片機為核心,用來實現(xiàn)物體感應模塊,時鐘模塊,主控制模塊,按鍵控制模塊,顯示模塊,加以簡單的外圍電路,實現(xiàn)了智能路燈節(jié)能系統(tǒng)所要求的全部技術內(nèi)容。單片機在最近幾年應用越來越廣泛,因其抗干擾能力強、穩(wěn)定性好,性價比高,因此是低本錢路燈控制解決方案的首選。該控制系統(tǒng)除了選用廉價的單片機芯片,還采用了廉價的紅外對射傳感器,大大降低了系統(tǒng)本錢。整個系統(tǒng)的電路簡單,結構緊湊,電源驅動僅采用變壓器與三端穩(wěn)壓器相結合,附加少許濾波電容便實現(xiàn)了穩(wěn)定的電源輸出。系統(tǒng)的單片機程序使用C語言編寫,windowsxp為開發(fā)平臺,keil為開發(fā)工具。經(jīng)過屢次測試,證實該系統(tǒng)能長時間穩(wěn)定工作,完全滿足設計要求指標。關鍵詞:模擬控制LED照明單片機C語言ABSTRACTThispaperintroducesthedesignandimplementationofintelligentstreetlampenergysavingsystembasedonMCU.Thesystemwillaccordingtothetrafficconditionsandthebrightnessautomaticallyadjustthelightingstate:whentheenvironmentisdark,thecarclosetothestreetlamp,streetlamplightautomatically;whenmovingawayfromthecar,streetlampsautomaticallyextinguished.ThisplantomacrocrystalcompanyAT89S52asthecore,usedtorealizetheobjectsensingmodule,clockmodule,mastercontrolmodule,keycontrolmodule,displaymodule,tochiptheperipheryofthesimplecircuit,realizethesimulationstreetlampcontrolsystemalloftherequestedtechnologycontent.STCSCMinrecentyearsmoreandmorewideapplication,becauseofitsstronganti-interferenceability,goodstability,highperformance/priceratio,andsoisthelowcoststreetlampcontrolsolutionsofchoice.Thecontrolsysteminadditiontochoosecheapsingle-chipmicrocomputerchip,alsoadoptedthecheapinfraredmutualilluminatesensor,andgreatlyreducethecostofsystem.Thewholesystemofthecircuitissimple,compactstructure,powerdriveonlyusedthreetransformerandtheregulators,andthecombinationofafewadditionalfiltercapacitancewillrealizethestablepoweroutput.ThemicrocontrollerprogramofthesystemiswritteninClanguage,WindowsXPisthedevelopmentplatform,Keilisthedevelopmenttool.Aftermanytest,andconfirmthatthesystemcanworkstablyforalongtime,fullymeetthedesignrequirementsindex.Keywords:SimulatecontrollingLEDlightingSingle-chipmicrocomputerClanguage目錄第一章緒論51.1概述51.2論文的題目51.3研究的背景51.4研究的目的及意義51.5國內(nèi)開展現(xiàn)狀與趨勢61.6研究內(nèi)容6第二章系統(tǒng)總體設計方案92.1.0系統(tǒng)設計思路與方案比擬論證9系統(tǒng)設計思路9方案論證與確立9第三章系統(tǒng)硬件設計132.2.0各個模塊的硬件電路設計132.2.1時鐘模塊設計132.2.3主控制模塊設計142.2.4單片機AT89S52芯片介紹142.2.4顯示模塊設計172.3.0系統(tǒng)各模塊的最終方案192.4.0系統(tǒng)功能說明書202.4.1路燈的工作模式20第四章軟件設計243.1.0系統(tǒng)主程序流程圖24系統(tǒng)流程圖243.2.0定時器溢出中斷處理函數(shù)流程圖253.3.0按鍵掃描流程圖26總結27致謝28參考文獻29附錄30第一章緒論1.1研究的背景隨著全球經(jīng)濟的飛速開展,節(jié)約能源己成為全世界各國最為關注的問題。中國的電力能源問題近年來十分緊迫,個別地區(qū)時常會出現(xiàn)停電問題,停電事故嚴重阻礙人們的日常生活和工作,甚至會影響中國之崛起,華夏文明之延續(xù)。在城市美化和夜間亮化潮流的趨勢下,城市夜間照明也巨大的消耗著我們的電能資源。然而電業(yè)的投資和建設需要一個很長的周期,快速的經(jīng)濟開展需要更多更充足的電能供給,電力的供給與需求之間存在大量矛盾。電力供給缺陷很難在短時間內(nèi)得到解決,開展與節(jié)約并重,已然成為經(jīng)濟建設的必然選擇。因此,燈光照明行業(yè)節(jié)電也成為了我們的必然要求!1.2研究的目的及意義〔1〕研究的目的智能路燈節(jié)能系統(tǒng)主要以AT89S52單片機作為智能路燈節(jié)能系統(tǒng)的控制核心,用以實現(xiàn)物體感應,時鐘,主控制,按鍵控制,顯示,五大模塊。〔2〕研究的意義介于單片機具有集成度高,處理能力強,可靠性高,系統(tǒng)結構簡單,價格低廉的優(yōu)點,因此在交通照明中被廣泛使用,照明管理的先進與否又將直接影響到城市的外觀、交通平安和社會治安等方面,是營造良好城市環(huán)境的重要條件,對城市建設和未來開展都有著重要的影響。1.3國內(nèi)開展現(xiàn)狀與趨勢隨著中國城市化建設的不斷深入,人們出行更加方便,交通設施也更加健全,但是城市的能耗也更加嚴重。在現(xiàn)代化的城市里,公路、建筑照明已成為城市必不可少的一局部,一座城市的興旺程度往往和城市夜間照明成正比。在開展城市照明的進程中,照明強度及控制設備取得了前所未有的進步,然而城市照明的電能消耗和損耗也越來越大,隨著地區(qū)停電和電費漲價,人們越來越關心節(jié)能問題。其中路燈的節(jié)能控制相當重要,目前國內(nèi)路燈節(jié)能主要的途徑有三種:合理的光照度;使用節(jié)能光源,例如日常生活中常見的LED節(jié)能燈;合理的管控設備,即根據(jù)環(huán)境而控制開關的系統(tǒng),可以在現(xiàn)有照明系統(tǒng)上加裝節(jié)能控制設備。從現(xiàn)實的角度來看,第一種方案輸入電壓不過高即可,可人為調控;第二種方案適用于新設計的照明回路,對于已有的照明系統(tǒng),更換所有燈具的投入資金過大;第三種方案比擬流行,對現(xiàn)有照明系統(tǒng)的節(jié)能進行再次改造即可,一般在原有根底上加裝節(jié)能設備較為經(jīng)濟和實用,目前國內(nèi)的照明節(jié)能設備市場中照明調控裝置所占的比例是最大的而且也是最實用的。1.4研究內(nèi)容圖1-1路燈控制系統(tǒng)示意圖圖1-2路燈模型示意圖〔單位:厘米〕如圖1-1所示,支路控制器能控制其所在支路上的所有LED燈的開關時間并顯示,而且能根據(jù)環(huán)境明暗變化,自動開燈和關燈。根據(jù)車流情況自動改變亮光狀態(tài)。如圖1-2所示,當車輛M〔在車輛M前已標出定位點,由此確定車輛位置〕由左至右行進到S處,LED燈1亮;當車輛M行進到B處,LED燈1滅,LED燈2亮;假設車輛M由右至左移行進,那么LED燈開啟順序與之正好相反。支路控制器能分別控制每個LED燈的開關時間。當LED燈出現(xiàn)故障時,支路控制器會在城市路燈終端系統(tǒng)顯示故障LED燈的地址號碼。單元控制器具有調節(jié)燈光,采用恒流驅動電源等特性,路燈的輸出功率能在要求下自動減小或增大,其功率能在百分之二十到全額輸出的范圍設置和改變,它的誤差小于等于百分之二。具有穩(wěn)定性強,性價比相對較高,符合電磁兼容方面的要求,無對外干擾或干擾較小。第二章系統(tǒng)總體設計方案2.1系統(tǒng)設計思路本智能路燈節(jié)能系統(tǒng)的設計方案主要實現(xiàn)以下五個方面的功能:〔1〕顯示損壞路燈編號功能:當路燈出現(xiàn)故障不亮時,系統(tǒng)會向維護終端發(fā)出信號,顯示有故障燈的地址號碼?!?〕時鐘功能及定時開關燈?!?〕根據(jù)環(huán)境光照變化自動開關燈,相對于固定開啟時間設置更具人性化,例如在陰雨的白天也會自動開啟?!?〕根據(jù)路況自動開關燈:當汽車行近路燈時,路燈自動點亮;當汽車遠離時,路燈自動熄滅?!?〕是根據(jù)綠色節(jié)能照明要求,采用恒流源驅動LED路燈發(fā)亮且能調光,路燈電源功率能在百分之二十到全額輸出范圍調節(jié)和設置,誤差小于等于百分之二。以上功能的實現(xiàn),都是基于單片機技術,在單片機實現(xiàn)的輸入輸出和顯示功能的根底上,由單片機的內(nèi)置邏輯和運算功能,加上假設干的功能性電路來到達設計的需求。針對以上的五個方面,使用模塊化的設計,以下逐一表達之。2.2方案論證與確立〔1〕時鐘功能及定時開關機方案一:采用專用時鐘芯片目前常用的串行時鐘電路有常見的DS1307、PCF8485、DS1302.其優(yōu)勢是可以單獨使用,直接連接到單片機外圍,有自己獨立的時鐘晶振,精度較高。單片機通過串行接口能夠實現(xiàn)讀取和寫入時鐘值,時鐘芯片的運行受單片機死機的影響少。其缺點一是消耗了單片機IO口資源。二是在編程時需要增加讀寫串行口的內(nèi)容,消耗了單片機的運行時間。三是增加了本錢。增加了時鐘芯片及其外圍電路的開支。方案二:采用單片機內(nèi)置時鐘本方案直接通過單片機內(nèi)置定時器的中斷和運算實現(xiàn)時鐘功能。例如:單片機,在4M時鐘時,單個指令的運行時間是1微秒,設置定時器1每125個指令周期產(chǎn)生一個中斷,即125微秒,8個中斷后,時間平臺是1毫秒,設置以下時間計數(shù)變量分別為:ucharTo1mS=0x00;//當該變量增加到某個數(shù)值時,表示經(jīng)過了1毫秒ucharTo2mS=0x00;//當該變量增加到某個數(shù)值時,表示經(jīng)過了2毫秒ucharIs2mS=0;//到達2毫秒時刻ucharTo20mS=0x00;//當該變量增加到某個數(shù)值時,表示經(jīng)過了20毫秒ucharIs20mS=0;//到達20毫秒時刻ucharTo1S=0x00;//當該變量增加到某個數(shù)值時,表示經(jīng)過了1秒ucharIs1S=0;//到達1秒時刻在秒時間平臺,用ToMIN變量,計數(shù)60秒后進入分鐘平臺,計數(shù)60分鐘后,進入小時平臺。方案二沒有增加外置電路,充分利用了單片機的定時器功能,實施簡潔方便,主要的缺點是當控制系統(tǒng)斷電或死機以后,需要人工重新定時。因此本系統(tǒng)的時鐘功能實現(xiàn)采用方案二?!?〕根據(jù)環(huán)境光照度變化,自動控制燈的開關。方案一:使用比擬器。光敏電阻與固定電阻串聯(lián)加一級電壓跟隨器后輸入比擬器,與比擬器負輸入端的電壓值進行比擬得到一個高電平或低電平輸出,進入單片機的IO口。優(yōu)點是電路比擬直觀,操作比擬方便,可直接通過電位器調節(jié)路燈的開啟亮度。對維護人員的要求不高。缺點是不方便進行數(shù)碼控制。方案二:采用AD變換。光敏電阻與固定電阻串聯(lián),由單片機內(nèi)置的AD變換接口讀入當前的電壓值,然后根據(jù)讀取的電壓值判斷當前的環(huán)境亮度。路燈開啟電壓由內(nèi)部變量控制。方案二的優(yōu)點在于能方便的對路燈開啟電平的數(shù)碼控制和遠程控制。本系統(tǒng)采用方案二?!?〕根據(jù)路況自動調控LED燈的開關。當車輛行近LED燈時,LED燈能自動發(fā)光;當汽車遠離時,路燈自動熄滅。方案一:使用工業(yè)級的光電傳感器,這種光電傳感器普遍運用于電梯、生產(chǎn)線等工業(yè)場所。優(yōu)點是使用方便,型號很多,輸出量是開關量,不需調理電路。缺點是價格較貴。方案二:使用廉價的紅外對射傳感器。紅外對射傳感器的特點是傳輸距離較遠且信號集中,當沒車輛遮擋時,紅外光直射到紅外探頭上,紅外接收管連續(xù)輸出低電壓到單片機,當有車輛經(jīng)過時,紅外光被遮住,此時紅外探頭輸出高電壓到單片機。由于紅外光的發(fā)射有一定的偏角,本設計利用了黑色套管遮擋紅外發(fā)射燈頭,以減少紅外光的散失。綜合考慮,本系統(tǒng)采用方案二?!?〕故障報警功能用光敏電阻檢測路燈的亮度,同時能防止環(huán)境的干擾。利用單片機的AD口,讀入光敏電阻上檢測到的路燈亮度值?!?〕恒流源驅動LED及20%到100%范圍內(nèi)可調亮度。方案一:采用恒流源驅動芯片,目前市場上成品的恒流源驅動芯片比擬多,一般采用使用取樣電阻調節(jié)輸出電流的方式。這些芯片使用方便,性能較好,但價格較貴。方案二:采用PWM方式驅動功率三極管輸出驅動電流,用電流取樣電阻串入LED供電回路,用AD口讀取當前的電流值,實現(xiàn)閉環(huán)控制。此方案利用AT89S52的AD變換,并且使用PWM的形式,能使路燈工作在間歇狀態(tài),可以延長路燈的使用時限。因此本系統(tǒng)采用方案二?!?〕顯示模塊方案一:數(shù)碼管顯示,由于此題要求實時顯示系統(tǒng)時間、狀態(tài)、和故障LED燈編號等,而數(shù)碼管不能顯示字符。方案二:LED點陣顯示,LED點陣顯示雖然能顯示字符和數(shù)字,但顯示效果不好,且不易編程。方案三:LCD液晶顯示,LCD液晶不但能顯示字符和數(shù)字,而且顯示效果較好,容易編程實現(xiàn)。因此采用方案三?!?〕按鍵控制模塊 方案:均采用輕觸按鍵。第三章系統(tǒng)硬件設計3.1時鐘模塊設計時鐘模塊的功能是設置時間,它由DS1302芯片實現(xiàn),時鐘模塊過串行方式與單片機連接,實現(xiàn)數(shù)據(jù)的傳送,它能向單片機提供詳細的時間信息,并可對月末日期、閏年日期進行自動調整;它還擁有用于主電源和備份電源的雙電源引腳,在主電源斷電的狀況下,仍能使時鐘繼續(xù)工作。另外,它還能提供31字節(jié)的用于高速數(shù)據(jù)暫存的RAM.介于上述特點,DS1302已在許多單片機系統(tǒng)中得到應用,為系統(tǒng)提供所需的實時時鐘信息。1.DS1302芯片概述DS1302慢速充電時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM,它經(jīng)過一個簡單的串行接口與微處理器通信,實時時鐘/日歷提供秒、分、時、日、周、月和年等信息,對于小于31天的月,月末的日期自動進行調整,還包括了閏年校正的功能。時鐘的運行可以采用24小時或帶AM〔上午〕/PM〔下午〕的12小時格式。使用同步串行通信,簡化了DS1302與微處理器的通信。與時鐘/RAM通信僅需三根線:〔1〕(復位)、〔2〕I/O〔數(shù)據(jù)線〕、和〔3〕SCLK〔串行時鐘〕。數(shù)據(jù)可以以每次一個字節(jié)或多達31字節(jié)的多字節(jié)形式傳送至時鐘/RAM或從其中送出。DS1302設計成為能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存數(shù)據(jù)和時鐘信息。DS1302是DS1202的升級產(chǎn)品,除了DS1202根本的慢速充電功能外,DS1302具有的其它特點包括:用于主電源和備份電源的雙電源的雙電源引腳,可編程的VCC1慢速充電器以及7個附加字節(jié)的高速暫存存儲器。2.DS1302工作原理串行時鐘芯片的主要組成局部:移位存放器、控制邏輯、振蕩器、實時時鐘以及RAM。為了初始化任何的數(shù)據(jù)傳送,把置為高電平且把提供地址和命令的8位裝入到移位存放器,數(shù)據(jù)在SCLK的上升沿串行輸入,無論是讀周期還是寫周期發(fā)生,也無論傳送方式是單字節(jié)傳送還是多字節(jié)傳送,開始8位指定40個字節(jié)中的哪個將被訪問。在開始8個時鐘周期把命令字裝入移位存放器之后,另外的時鐘在讀操作時輸出數(shù)據(jù),在寫操作時輸入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加最大可達248的數(shù)。如圖2-2,引腳排列:圖2-2DS1302引腳排列引腳說明:X1,X2:32,768kHz晶振引腳;GND:接地;:復位;I/O數(shù)據(jù)輸入輸出;SCLK:串行時鐘;VCC1,VCC2:電源引腳。3.2主控制模塊設計2.2.4單片機AT89S52芯片介紹AT89S52為ATMEL所生產(chǎn)的一種低功耗,高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flsah存儲器。AT89S52主要功能列舉如下:1.擁有靈巧的8位CPU和在系統(tǒng)可編程Flash;2.芯片內(nèi)部具時鐘振蕩器〔傳統(tǒng)最高工作頻率可至12MHz〕;3.內(nèi)部程序存儲器〔ROM〕為8KB;4.內(nèi)部數(shù)據(jù)存儲器〔RAM〕為256字節(jié);5.32個可編程I/O口線;6.5個中斷向量源;7.兩個16位定時器/計數(shù)器;8.三級加密程序存儲器;9.全雙工UART串行通道;AT89S52各引腳功能介紹:VCC:AT89S52電源正端輸入,接+5V;VSS:電源地端;XTAL1:單芯片系統(tǒng)時鐘的反相放大器輸入端;XTAL2:系統(tǒng)時鐘的反相放大器輸出端,一般在設計上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地之間參加一20PF的小電容,可以使系統(tǒng)更穩(wěn)定,防止噪聲干擾而死機。RESET:AT89S52的重置引腳,高電平動作,當要對芯片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S52便能完成系統(tǒng)重置的各項動作,使得內(nèi)部特殊功能存放器之內(nèi)容均被設成狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。EA/Vpp:EA〔ExternalAccessEnable〕為該引腳的第一功能,即外部程序存儲器訪問允許控制端。當EA接高電平時,在PC值不超出0FFFH時,單片機讀片內(nèi)程序存儲器中的程序;當PC值超出0FFFH時,當自動轉向讀取片外60KB程序存儲器空間中的程序。當EA接低電平時只讀取外部程序存儲器中的內(nèi)容,片內(nèi)程序存儲器不起作用。Vpp為該引腳的第二功能,即在對片內(nèi)Flash進行編程時,接入編程電壓。ALE/PROG:ALE是英文"AddressLatchEnable"的縮寫,表示地址鎖存器啟用信號。AT89S52可以利用這支引腳來觸發(fā)外部的8位鎖存器〔如74LS373〕,將端口0的地址總線〔A0~A7〕鎖進鎖存器中,因為AT89S52是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規(guī)劃的特殊功能來使用。當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。PSEN:此為"ProgramStoreEnable"的縮寫,其意為程序儲存啟用,當AT89S52設成為讀取外部程序代碼工作模式時〔EA=0〕,會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S52可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。PORT0〔P0.0~P0.7〕:端口0是一個8位寬的開路汲極〔OpenDrain〕雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口〔P1、P2、P3〕那么不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時〔即取用外部程序代碼或數(shù)據(jù)存儲器〕,P0就以多工方式提供地址總線〔A0~A7〕及數(shù)據(jù)總線〔D0~D7〕。設計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址總線,而定址到64K的外部存儲器空間。PORT1〔P1.0~P1.7〕:端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LSTTL負載,同樣地假設將端口1的輸出設為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。PORT2〔P2.0~P2.7〕:端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,假設將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,假設是在AT89S52擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當做I/O來使用了。PORT3〔P3.0~P3.7〕:端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或寫入控制等功能。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數(shù)器0輸入。P3.5:T1,計時計數(shù)器1輸入。P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。3.3顯示模塊設計1.1602液晶概述 液晶是一種高分子材料,因為其特殊的物理、化學、光學特性,被廣泛應用于輕薄顯示器上。本系統(tǒng)顯示模塊采用了LCD1602液晶顯示器每行能夠顯示16個字符,可以顯示兩行。主要實現(xiàn)系統(tǒng)時間設定,燈的開關時間的功能,系統(tǒng)狀態(tài)顯示。2.1602各引腳簡介:1062采用標準的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器比照度調整端,接地正電源時比照度最弱,接地電源是比照度最高〔比照度過高時會產(chǎn)生“鬼影〞,使用時可以通過一個10K的電位器調整比照度〕。第4腳:RS為存放器選擇,高電平1時選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。第5腳:RW為讀寫信號線,高電平〔1〕時進行讀操作,低電平〔0〕時進行寫操作。第6腳:E〔或EN〕端為使能〔enable〕端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈源。15腳背光正極,16腳背光負極3.1602LCD的特性3V或5V工作電壓,比照度可調內(nèi)含復位電路提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM.8個可由用戶自定義的5X7的字符發(fā)生器CGRAM。4.1602LCD特征微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應用系統(tǒng)中。5.與單片機連接見圖2-5所示:圖2-53.4系統(tǒng)各模塊的最終方案鍵盤鍵盤單片機時間顯示明暗環(huán)境交通環(huán)境節(jié)能控制LED燈報警3.5路燈的工作模式本模擬路燈控制系統(tǒng)具備5種工作模式,分別是自動群控模式、自動分控模式、根據(jù)照度自動控制模式、根據(jù)交通情況自動控制模式、手動控制模式,下面對每種工作模式簡單介紹如下:〔1〕自動群控模式在該模式下,支路控制器根據(jù)設定好的定時信息,自動地同時翻開或者關閉兩盞路燈。系統(tǒng)啟動后默認進入該模式?!?〕自動分控模式在該模式下,支路控制器根據(jù)設定好的定時信息,分別控制兩盞路燈的開關,例如,當系統(tǒng)的時間和路燈1開燈的時間相等時,開啟路燈1;當系統(tǒng)的時間和路燈2關燈的時間相等時開啟路燈2?!?〕根據(jù)照度自動控制模式在該模式下,當環(huán)境照度低于一定的值時開啟兩盞路燈,當環(huán)境照度高于一定的值時關閉兩盞路燈。〔4〕根據(jù)交通情況自動控制模式在該模式下,當可移動物體M由左到右到達S點時〔見圖××〕,燈1亮;當物體M到達B點時,燈1滅,燈2亮;假設物體M由右到左移動時,那么亮燈的次序與上相反?!?〕手動控制模式在手動模式時,兩盞路燈只能由支路控制器用增加和減少鍵手動的調整亮度,路燈的亮度可以在0%~100%自由的上下調整,步進為10%?!?〕~〔4〕等四種工作模式是互斥的,即在某一時刻只能具有其中的一種功能,不過各種模式可以手動的切換,手動調整路燈亮度的功能在這四種模式中都是有效的。另外,該路燈控制系統(tǒng)還具備故障檢測功能,當路燈出現(xiàn)無法正常工作的狀況時,該控制系統(tǒng)能夠判定是哪一環(huán)節(jié)出現(xiàn)問題,并將故障通過聲音警報及數(shù)碼管顯示告知用戶。3.6按鍵操作說明支路控制器具備5個按鍵,分別為時間調整鍵、模式選擇鍵、增加鍵、減少鍵、確認鍵?!?〕時間調整鍵:按時間調整鍵時,可以循環(huán)地選擇系統(tǒng)時間、路燈1和2共同的開關燈時間、路燈1的開關燈時間和路燈2的開關燈時間。〔2〕模式選擇鍵:按模式選擇鍵可以進行系統(tǒng)工作模式的切換,順序為自動群控模式;自動分控模式;根據(jù)照度自動控制模式;根據(jù)交通情況自動控制模式;手動控制模式?!?〕增加、減少鍵:按這兩個鍵可以對時間或者亮度進行增減,長按時時間或者亮度可以連續(xù)變換?!?〕確認鍵:確認鍵只在時間調整時有效,分別確認小時、分鐘、秒的輸入。3.7輸入模塊按鍵輸出采用AD變換,節(jié)省了IO口資源。通過不同大小的電阻進行分壓,按下不同的按鍵就會向單片機發(fā)送不同的電壓值。如:按下s1是0V;按下s2,電壓=2K/〔2K+10K〕*5V=0.83V。經(jīng)過單片機AD變換之后,就可以判斷是哪個按鍵按下去,從而執(zhí)行相應的功能。按鍵輸入如圖下所示2.3。3.8電流驅動源電流源驅動電路,是為驅動1W大功率LED燈而設計的。LED燈屬于電流源驅動,根據(jù)計算,每個1W的LED燈至少需要200mA的驅動電流才能點亮,而單片機的IO輸出電流實際只有20mA到30mA,所以必須經(jīng)過電流放大才能使其工作。因此在該電路中采用了一個9013對電流進行放大。電流驅動源電路如圖2.72.8硬件電路圖第四章軟件設計3.1.0系統(tǒng)主程序流程圖3.1.1系統(tǒng)流程圖圖3.1系統(tǒng)流程圖3.2.0定時器溢出中斷處理函數(shù)流程圖圖3.2定時器溢出中斷處理函數(shù)流程圖3.3.0按鍵掃描流程圖圖3.3按鍵掃描流程圖總結該系統(tǒng)調試最終結果,符合本次設計的全部要求。經(jīng)過功率擴大、電網(wǎng)通訊等方面的改進,就能用于實際路燈控制。以其超低本錢,高可靠性的特點,與其他現(xiàn)有成品相比,具有一定的競爭優(yōu)勢。該控制系統(tǒng)在調試過程中,遇到過一些與理論相差很大的實際問題。比方紅外對射傳感器的對焦問題,因為紅外線是不可見光,對焦比擬麻煩,但是借用其他輔助工具就會簡單很多。最簡便的方法是利用帶攝像頭的來獲取紅外光,從而能順利完成對紅外對射傳感器的對焦。紅外對射的接收局部,因受頻率限制,只能接收頻率在38KHz的紅外信號,所以在調試過程中有一定的難度。經(jīng)方案論證,采用PWM脈寬調制輸出,是切實可行的最有效方案致謝本文的研究工作是在老師的精心指導和悉心關心下完成的,在我的設計題目的選擇、實物的調試和論文的研究工作中無不傾注著指導老師辛勤的汗水和心血。同時也要感謝幫助過我們的同學,給我們提供了珍貴的建議。指導老師的嚴謹治學態(tài)度、無私的奉獻精神使我深受的啟迪。從尊敬的指導老師身上,我不僅學到了扎實、寬廣的專業(yè)知識,也學到了做人的道理,在此我要向我的指導老師致以最衷心的感謝和深深的敬意。在多年的學習生活中,還得到了許多領導和老師的熱情關心和幫助,在此,向所有關心和幫助過我的領導、老師、同學和朋友表示由衷的謝意!參考文獻[1]于殿泓,王新年.單片機原理與程序設計實驗教程[M].西安:西安電子科技大學出版社,2007,8.[2]趙文博,劉文濤.單片機語言C51程序設計[M].北京:人民郵電出版社,2005,10.[3]李愛秋.紅外線遙控12位電子密碼鎖的設計[J].溫州職業(yè)技術學院學報第8卷第一期,2023.[4]陳杰,黃鴻.傳感器與檢測技術[M].北京:高等教育出版社,2023,8.[5]周航慈.單片機應用程序設計技術[M].北京:北京航空航天大學出版社,2023,2.[6]李朝青.單片機原理及接口技術[M].北京:北京航空航天大學出版社,2005,10.[7]孫育才.MCS-51系列單片微型計算機及其應用[M].東南大學出版社,2004,6.[8]沈紅衛(wèi).單片機應用系統(tǒng)設計實力與分析[M].北京:北京航空航天大學出版社,2003.[9]徐愛鈞,彭秀華.單片機高級語言C51應用程序設計[M].北京航空航天大學出版社,2006.[10]曾一江.單片微機原理與接口技術[M].北京:科技出版社,2023,12.[11]康華光.電子技術根底〔模擬局部〕[M].北京:高等教育出版社,2004,4.附錄:程序#include<reg52.h>//52單片機頭文件,規(guī)定了52單片機的存放器和IO口等#include<intrins.h>//_nop_空指令及左右循環(huán)移位子函數(shù)庫#defineucharunsignedchar//宏定義#defineuintunsignedint//宏定義sbitlcden=P1^2;//定義下面通過lcden來操作P2^7口,1602液晶使能控制端sbitlcdwr=P1^1;//定義下面通過lcdrw來操作P2^5口,1602讀寫選擇端sbitlcdrs=P1^0;//定義選數(shù)據(jù)存放器選指令存放器控制端sbitsda=P2^1;//定義DS1302數(shù)據(jù)總線sbitrst=P2^3;//DS1320復位sbitsck=P2^2;//定義時鐘總線sbits1=P1^3;//定義設置按鈕sbits2=P1^4;//定義調時按鈕sbits3=P1^5;//定義確定按鈕sbits4=P1^6;sbitACC0=ACC^0;sbitACC7=ACC^7;sbitBELL=P1^5;sbitGuang=P3^2;sbitL=P2^3;sbitD1=P2^4;sbitD2=P2^5;sbitD3=P2^6;sbitD4=P2^7;sbitH1=P3^0;sbitH2=P3^1;charfen,shi,miao,ri,yue,nian,zhou,s1num,s2num,s4num,flag1,flag2,lshi,lfen;ucharcodetable[]={"2023--"};//要寫入1602液晶的數(shù)據(jù)ucharcodetable1[]={":::"};//字庫中的字可直接以外加""號的形式直接寫入ucharcodetable2[]={"WelcomeToLcd!"};//歡送界面ucharcodetable3[]={"HappyEveryDay!"}; //歡送界面/*******************************************************************************時函數(shù),z的取值為這個函數(shù)的延時ms數(shù),delay(200);大約延時200ms.delay(500);大約延時500ms*******************************************************************************/voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}/*********************蜂鳴器函數(shù)************************************************/voiddidi(){ uchari;for(i=0;i<60;i++){BELL=0; delay(1); BELL=1; delay(1);}}/*******************向1602液晶中寫一個指令**************************************/voidwrite_com(ucharcom){ lcdwr=0; //lcdwr為讀寫控制端,lcdwr=0,這里可不寫 lcdrs=0;//液晶rs接口為0時,寫指令,rs為1時寫數(shù)據(jù) P0=com;//將要寫的指令賦給P0口, delay(5);//由1602讀寫操作時序圖,先將指令賦給P0口,延時后將使能 lcden=1;//端lcden置高,再延時一段時間,然后將lcden置低,這樣指令 delay(5); //就寫入到LCD了 lcden=0;}/****************************向液晶寫數(shù)據(jù)***************************************/voidwrite_data(uchardate)//與寫指令類似,這里lcdrs設為1{ lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0;}/*****************************初使化1602液晶************************************/voidinit_1602(){ lcdwr=0; lcden=0; write_com(0x38);//設置LCD為16*2顯示、5*7點陣、8位數(shù)據(jù)接口模式 write_com(0x0c);//開顯示、不顯示光標 write_com(0x06);//寫一個字符后,地址指針加1 write_com(0x01);//顯示清0}/*******************************************************************************/voidgudingtime_1602(){ucharnum; write_com(0x80);//將指針指向初始位置 for(num=0;num<16;num++)//循環(huán)函數(shù),用于將"2023--"寫入液晶 write_data(table[num]); write_com(0x80+0x40);//將指針指向1602液晶的第二行 for(num=0;num<16;num++)//功能與上同,用于將":::"寫入 write_data(table1[num]);}/**************************顯示歡送界面函數(shù)*************************************/voiddisplaystar(void){ uchari; write_com(0x80); for(i=0;i<16;i++) write_data(table2[i]); write_com(0x80+0x40); for(i=0;i<16;i++) write_data(table3[i]);}/***************************顯示時間、日期子函數(shù)*********************************/voidwrite_sfm(ucharadd,uchartime)//用于在1602上顯示年、月、日、時、分、秒。Add為顯示位置,time為要顯示的內(nèi)容{ ucharshiwei,gewei; shiwei=time/16;//將從DS1302中讀取的BCD碼數(shù)據(jù)轉化成10進制個位和10 gewei=time%16;//進制十位 write_com(add+0x80);//定義顯示在液晶的什么位置 write_data(0x30+shiwei);//由1602液晶字庫可知,0~9的數(shù)據(jù)碼分別對應0x30~0x39 write_data(0x30+gewei); //初使化中設定了寫一個字符后,地址指針加1,因此這里}//不用重新光標寫位/**************************顯示周子函數(shù)*****************************************/voidwrite_zhou(uchartime1)//用于在1602上顯示周信息,與顯示{//時間日期子函數(shù)類似 uchargewei; gewei=time1%16;//一周七天,因此只需個位 write_com(0x80+13); write_data(0x30+gewei);}/***************************寫數(shù)據(jù)字節(jié)子函數(shù)************************************/voidInput_1byte(ucharTD)//寫一字節(jié)數(shù)據(jù){uchari;ACC=TD;for(i=8;i>0;i--){sda=ACC0;sck=1;sck=0;ACC=ACC>>1;}}/*************************讀數(shù)據(jù)字節(jié)子函數(shù)**************************************/ucharOutput_1byte(void)//讀一字節(jié)數(shù)據(jù){uchari;for(i=8;i>0;i--){ACC=ACC>>1;ACC7=sda;sck=1;sck=0;}return(ACC);}/***************************寫DS1302數(shù)據(jù)函數(shù)***********************************/voidwrite_1302(ucharDS_ADD,ucharDS_DAT)//寫操作{ rst=0; sck=0; rst=1; Input_1byte(DS_ADD); Input_1byte(DS_DAT); sck=1; rst=0;}/***************************讀DS1302數(shù)據(jù)函數(shù)***********************************/ucharread_1302(ucharDS_ADD)//讀操作{ ucharDS_INF; rst=0; sck=0; rst=1; Input_1byte(DS_ADD); DS_INF=Output_1byte(); sck=1; rst=0; return(DS_INF);}/*************************初始化DS1302子函數(shù)***********************************/voidinital_1302(){write_1302(0x8e,0x00);//禁止寫保護write_1302(0x90,0xaa);//定義充電 write_1302(0x80,0x53);//秒write_1302(0x84,0x13);//時 write_1302(0x82,0x43);//分 write_1302(0x8c,0x12);//年 write_1302(0x88,0x06);//月 write_1302(0x86,0x03);//日 write_1302(0x8a,0x06);//星期write_1302(0xc0,0x08);//鬧鐘小時初始化 write_1302(0xfc,0x00);//鬧鐘分鐘初始化 write_1302(0x8e,0x80);//開保護}/********************************************************************************掃描函數(shù)********************************************************************************/voidkeyscan(){ if(s1==0&&s4num==0) //按鍵1按下且s4再次之前未曾按過 { delay(5); if(s1==0&&s4num==0) {flag1=1; s1num++; while(!s1);didi(); if(s1num==1) { write_com(0x80+0x40+8);//光標移動到**位置 write_com(0x0f);//顯示光標 } if(s1num==2) { write_1302(0x8e,0x00);//禁止寫保護 write_1302(0x80,miao);//寫入秒信息 write_1302(0x8e,0x80);//開寫保護 write_com(0x80+0x40+5); } if(s1num==3) { write_1302(0x8e,0x00); write_1302(0x82,fen); write_1302(0x8e,0x80); write_com(0x80+0x40+2); } if(s1num==4) { write_1302(0x8e,0x00); write_1302(0x88,yue); write_1302(0x8e,0x80); write_com(0x80+13); } if(s1num==5) { write_1302(0x8e,0x00); write_1302(0x84,shi); write_1302(0x8e,0x80); write_com(0x80+10); } if(s1num==6) { write_1302(0x8e,0x00); write_1302(0x86,ri); write_1302(0x8e,0x80); write_com(0x80+7); } if(s1num==7) { write_1302(0x8e,0x00); write_1302(0x8c,nian); write_1302(0x8e,0x80); write_com(0x80+4); }if(s1num==8) { flag1=0; s1num=0; write_1302(0x8e,0x00); write_1302(0x8a,zhou); write_1302(0x8e,0x80); write_com(0x0c);//不顯示光標 } } } /*******************************************************************************/ if(s1num!=0&&s4num==0)//按鍵1按下*次且s4再次之前未曾按過 { if(s2==0) { delay(5); if(s2==0) { while(!s2);didi(); if(s1num==1) { intx1,x2; x1=miao%16; x2=miao/16; x1++; if(x1==10) { x1=0; x2++; if(x2>=6) x2=0; } miao=x1+x2*16; write_sfm(7+0x40,miao);//將修改的數(shù)送到1602顯示 write_com(0x80+0x40+8);//挪回光標 } if(s1num==2) { intx3,x4; x3=fen%16; x4=fen/16; x3++; if(x3==10) { x3=0; x4++; if(x4>=6) x4=0; } fen=x3+x4*16; write_sfm(4+0x40,fen); write_com(0x80+0x40+5); } if(s1num==3) { intx5,x6; x5=shi%16; x6=shi/16; x5++; if(x6>=2&&x5>=4) { x5=0; x6=0; } if(x5==10) { x5=0; x6++; } shi=x5+x6*16; write_sfm(1+0x40,shi); write_com(0x80+0x40+2); } if(s1num==4) { zhou++; if(zhou==8) zhou=1; write_zhou(zhou); write_com(0x80+13); } if(s1num==5) { intx5,x6; x5=ri%16; x6=ri/16; x5++; if(x6>=3&&x5>=1) { x5=1; x6=0; } if(x5==10) { x5=0; x6++; } ri=x5+x6*16; write_sfm(9,ri); write_com(0x80+10); } if(s1num==6) { intx5,x6; x5=yue%16; x6=yue/16; x5++; if(x6>=1&&x5>=3) { x5=1; x6=0; } if(x5==10) { x5=0; x6++; } yue=x5+x6*16; write_sfm(6,yue); write_com(0x80+7); } if(s1num==7) { intx5,x6; x5=nian%16; x6=nian/16; x5++; if(x6>=2&&x5>=1) { x5=1; x6=0; } if(x5==10) { x5=0; x6++; } nian=x5+x6*16; write_sfm(3,nian); write_com(0x80+4); } } } }/*******************************************************************************/ if(s1num!=0||s4num!=0)//在調整模式下 { if(s3==0)//如果確定鍵按下 { delay(5); if(s3==0)//延時并重新檢測S3是否按下,用于差小誤差 { if(s1num!=0) { while(!s3);didi();//在松手時將調整后的時間、日期及周信息寫入DS1302,退出調整模式并隱藏光標,按鍵次數(shù)清0 write_1302(0x8e,0x00); write_1302(0x80,miao); write_1302(0x84,shi); write_1302(0x82,fen); write_1302(0x8a,zhou); write_1302(0x8c,nian);//年 write_1302(0x88,yue);//月 write_1302(0x86,ri); write_1302(0x8e,0x80); flag1=0; write_com(0x0c); s1num=0;} if(s4num!=0) { while(!s3);didi();//在松手時將調整后的時間、日期及周信息寫入DS1302,退出調整模式并隱藏光標,按鍵次數(shù)清0write_1302(0x8e,0x00); write_1302(0xc0,lshi);write_1302(0xfc,lfen); write_1302(0x8e,0x80); flag2=0; s4num=0; write_com(0x0c);} } } }if(s4==0&&s1num==0)//按鍵4按下*次且s1再次之前未曾按過{delay(5); if(s4==0&&s1num==0) { s4num++; flag2=1;while(!s4);didi(); if(s4num==1) { write_com(0x80+0x40+14); write_com(0x0f); } if(s4num==2) { write_1302(0x8e,0x00);//禁止寫保護 write_1302(0xfc,lfen);//鬧鐘初始化 write_1302(0x8e,0x80);//開寫保護 write_com(0x80+0x40+11);

溫馨提示

  • 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

提交評論