模擬路燈控制系統(tǒng)附硬件圖及c程序剖析_第1頁
模擬路燈控制系統(tǒng)附硬件圖及c程序剖析_第2頁
模擬路燈控制系統(tǒng)附硬件圖及c程序剖析_第3頁
模擬路燈控制系統(tǒng)附硬件圖及c程序剖析_第4頁
模擬路燈控制系統(tǒng)附硬件圖及c程序剖析_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘要本文介紹了一個模擬路燈控制系統(tǒng)的應(yīng)用方案,用以實(shí)現(xiàn)模擬路燈的智能控制。本方案以宏晶公司的MCU芯片STC12C5410AD為核心,加以簡單的外圍電路,實(shí)現(xiàn)了模擬路燈控制系統(tǒng)所要求的全部技術(shù)內(nèi)容。STC單片機(jī)在最近幾年應(yīng)用越來越廣泛,因其抗干擾能力強(qiáng)、穩(wěn)定性好,性價比高,因此是低成本路燈控制解決方案的首選。該控制系統(tǒng)除了選用廉價的單片機(jī)芯片,還采用了廉價的紅外對射傳感器,大大降低了系統(tǒng)成本。整個系統(tǒng)的電路簡單,結(jié)構(gòu)緊湊,電源驅(qū)動僅采用變壓器與三端穩(wěn)壓器相結(jié)合,附加少許濾波電容便實(shí)現(xiàn)了穩(wěn)定的電源輸出。經(jīng)過多次測試,證實(shí)該系統(tǒng)能長時間穩(wěn)定工作,完全滿足設(shè)計要求指標(biāo)。關(guān)鍵詞:模擬控制;LED照明;

2、單片機(jī)3ABSTRACTThispaperintroducesasimulationcontrolsystemapplicationschemestreet,tosimulatethestreetlampofintelligentcontrol.ThisplantomacrocrystalcompanyMCU,STC12C5410ADasthecore,tochiptheperipheryofthesimplecircuit,realizethesimulationstreetlampcontrolsystemalloftherequestedtechnologycontent.STCSCMi

3、nrecentyearsmoreandmorewideapplication,becauseofitsstronganti-interferenceability,goodstability,highperformance/priceratio,andsoisthelowcoststreetlampcontrolsolutionsofchoice.Thecontrolsysteminadditiontochoosecheapsingle-chipmicrocomputerchip,alsoadoptedthecheapinfraredmutualilluminatesensor,andgrea

4、tlyreducethecostofsystem.Thewholesystemofthecircuitissimple,compactstructure,powerdriveonlyusedthreetransformerandtheregulators,andthecombinationofafewadditionalfiltercapacitancewillrealizethestablepoweroutput.Aftermanytest,andconfirmthatthesystemcanworkstablyforalongtime,fullymeetthedesignrequireme

5、ntsindex.Keywords:Simulatecontrolling;LEDlighting;Single-chipmicrocomputer1 系統(tǒng)設(shè)計11.1 設(shè)計要求11.1.1 基本要求11.1.2 發(fā)揮部分21.2 總體設(shè)計方案21.2.1 功能分解及設(shè)計思路21.2.2 方案論證與比較21.2.3 系統(tǒng)各模塊的最終方案51.3 系統(tǒng)功能說明書(用戶使用說明書)51.3.1 路燈的工作模式51.3.2 按鍵操作說明62 單元電路設(shè)計62.1 電源供電電路62.2 單片機(jī)最小系統(tǒng)72.3 輸入與輸出72.4 電流源驅(qū)動83 軟件設(shè)計93.1 系統(tǒng)主程序流程圖93.1.1 系統(tǒng)流程

6、圖93.1.2 定時器溢出中斷處理函數(shù)流程圖103.1.3 按鍵掃描流程圖113.2 系統(tǒng)子程序114 系統(tǒng)測試124.1 測試儀器124.2 指標(biāo)測試134.2.1 各部分測試的指標(biāo)134.2.2 系統(tǒng)實(shí)現(xiàn)的功能135 結(jié)論15參考文獻(xiàn)16附錄1程序代碼17附錄2硬件原理圖29附錄3PCB圖(部分)301系統(tǒng)設(shè)計1.1 設(shè)計要求設(shè)計并制作一套模擬路燈控制系統(tǒng)??刂葡到y(tǒng)結(jié)構(gòu)如圖1.1所示:LED 燈 1LED 燈2圖1.1模擬路燈控制系統(tǒng)路燈布置如圖1.2所示:1.1.1 基本要求(1)支路控制器有時鐘功能,能設(shè)定、顯示開關(guān)燈時間,并控制整條支路按時開燈和關(guān)燈。(2)支路控制器應(yīng)能根據(jù)環(huán)境明暗

7、變化,自動開燈和關(guān)燈。(3)支路控制器應(yīng)能根據(jù)交通情況自動調(diào)節(jié)亮燈狀態(tài):當(dāng)可移動物體M(在物體前端標(biāo)出定位點(diǎn),由定位點(diǎn)確定物體位置)由左至右到達(dá)S點(diǎn)時(見圖2),燈1亮;當(dāng)物體M到達(dá)B點(diǎn)時,燈1滅,燈2亮;若物體M由右至左移動時,則亮燈次序與上相反。(4)支路控制器能分別獨(dú)立控制每只路燈的開燈和關(guān)燈時間。(5)當(dāng)路燈出現(xiàn)故障時(燈不亮),支路控制器應(yīng)發(fā)出聲光報警信號,并顯示有故障路燈的地址編號。1.1.2 發(fā)揮部分(1)自制單元控制器中的LED燈恒流驅(qū)動電源。(2)單元控制器具有調(diào)光功能,路燈驅(qū)動電源輸出功率能在規(guī)定時間按設(shè)定要求自動減小,該功率應(yīng)能在20%-100%£圍內(nèi)設(shè)定并調(diào)節(jié)

8、,調(diào)節(jié)誤差02%(3)性價比高,工作穩(wěn)定,符合電磁兼容(EMC)方面的要求,無對外干擾或干擾小。1.2總體設(shè)計方案1.2.1 功能分解及設(shè)計思路本模擬路燈控制系統(tǒng)的設(shè)計方案要實(shí)現(xiàn)的主要功能主要分解為以下五個方面:( 1)是時鐘功能及定時開關(guān)燈。( 2)是根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈。( 3)是根據(jù)交通情況自動調(diào)節(jié)亮燈狀態(tài):當(dāng)汽車靠近路燈時,路燈能自動點(diǎn)亮;當(dāng)汽車遠(yuǎn)離時,路燈自動熄滅。( 4)聲光報警功能,當(dāng)路燈出現(xiàn)故障時而不亮?xí)r,控制器發(fā)出信號,并顯示有故障路燈的地址編號。( 5)是根據(jù)綠色節(jié)能照明要求,采用恒流源驅(qū)動LED路燈發(fā)亮且能調(diào)光,路燈驅(qū)動電源輸出功率能在20%-100%

9、3;圍內(nèi)設(shè)定并調(diào)節(jié),調(diào)節(jié)誤差02%以上功能的實(shí)現(xiàn),都是以單片機(jī)為核心,在單片機(jī)系統(tǒng)實(shí)現(xiàn)的輸入輸出和顯示功能的基礎(chǔ)上,由單片機(jī)的內(nèi)置邏輯和運(yùn)算功能,加上一定的外圍電路得以實(shí)現(xiàn)。針對以上的五個功能,采用模塊化的設(shè)計思想,以下分別敘述之。1.2.2 方案論證與比較(1)時鐘功能及定時開關(guān)機(jī)【方案一】采用專用時鐘芯片現(xiàn)在流行的串行時鐘電路很多,如DS1302DS1307、PCF8485等。其優(yōu)勢是可以單獨(dú)使用,直接連接到單片機(jī)外圍,有自己獨(dú)立的時鐘晶振,精度較高。單片機(jī)通過串行接口讀取和寫入當(dāng)前的時鐘值,時鐘芯片的運(yùn)行受單片機(jī)死機(jī)的影響少。其缺點(diǎn)一是消耗了單片機(jī)IO口資源。二是在編程時需要增加讀寫串行

10、口的內(nèi)容,消耗了單片機(jī)的運(yùn)行時間。三是增加了成本。增加了時鐘芯片及其外圍電路的開支。DS1302的典型應(yīng)用電路如圖1.3所示:2011/06/17Ueek613:49:12 7,p '8p -g圖1.3DS1302的典型應(yīng)用電路【方案二】采用單片機(jī)內(nèi)置時鐘本方案直接利用單片機(jī)的內(nèi)置定時器,通過定時器的中斷和簡單運(yùn)算實(shí)現(xiàn)時鐘功能。例如:STC單片機(jī),在4M時鐘時,單個指令的運(yùn)行時間是1微秒,設(shè)置定時器1每125個指令周期產(chǎn)生一個中斷,即125微秒,8個中斷后,時間平臺是1毫秒,設(shè)置以下時間計數(shù)變量分別為:ucharTo1mS二=0x00;/當(dāng)該變量增加到某個數(shù)值時,表示經(jīng)過了1毫秒uch

11、arTo2mS二=0x00;/當(dāng)該變量增加到某個數(shù)值時,表示經(jīng)過了2毫秒ucharIs2mS=0;/到達(dá)2毫秒時刻ucharTo20mS=0x00;/當(dāng)該變量增加到某個數(shù)值時,表示經(jīng)過了20毫秒ucharIs20mS=0;/到達(dá)20毫秒時刻ucharTo1S=0x00;/當(dāng)該變量增加到某個數(shù)值時,表示經(jīng)過了1秒ucharIs1S=:0;/到達(dá)1秒時刻在秒時間平臺,用ToMIN變量,計數(shù)60秒后進(jìn)入分鐘平臺,計數(shù)60分鐘后,進(jìn)入小時平臺。方案二沒有增加外置電路,充分利用了單片機(jī)的定時器功能,實(shí)施簡潔方便,主要的缺點(diǎn)是當(dāng)控制系統(tǒng)斷電或死機(jī)以后,需要人工重新定時。本系統(tǒng)的時鐘功能實(shí)現(xiàn)采用方案二。2)

12、根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈功能?!痉桨敢弧坎捎帽容^器的解決方案。光敏電阻與固定電阻串聯(lián),加一級電壓跟隨器后輸入比較器,與比較器負(fù)輸入端的電壓值進(jìn)行比較,得到一個高電平或低電平輸出,進(jìn)入單片機(jī)的IO口。優(yōu)點(diǎn)是電路比較直觀,操作比較方便,可直接通過電位器調(diào)節(jié)路燈的開啟亮度。對維護(hù)人員的要求不高。缺點(diǎn)是不方便進(jìn)行數(shù)碼控制?!痉桨付坎捎肁D變換。光敏電阻與固定電阻串聯(lián),由單片機(jī)內(nèi)置的AD變換接口讀入當(dāng)前的電壓值,然后根據(jù)讀取的電壓值判斷當(dāng)前的環(huán)境亮度。路燈的開啟電平由內(nèi)部的變量控制。方案二的優(yōu)點(diǎn)在于可以方便以實(shí)現(xiàn)對路燈開啟電平的數(shù)碼控制和遠(yuǎn)程控制。本系統(tǒng)采用方案二。(3)根據(jù)交通情況自動調(diào)節(jié)亮

13、燈狀態(tài)。當(dāng)汽車靠近路燈時,路燈能自動點(diǎn)亮;當(dāng)汽車遠(yuǎn)離時,路燈自動熄滅?!痉桨敢弧坎捎霉I(yè)級的光電傳感器。這種光電傳感器普遍運(yùn)用于電梯、生產(chǎn)線等工業(yè)場所。優(yōu)點(diǎn)是使用方便,型號很多,輸出量是開關(guān)量,不需調(diào)理電路。缺點(diǎn)是價格較貴?!痉桨付坎捎昧畠r的紅外對射傳感器。紅外對射的特點(diǎn)是傳輸距離較遠(yuǎn),能量集中。當(dāng)沒有物體遮擋時,紅外光直射到紅外探頭上,紅外接收管連續(xù)輸出低電平到單片機(jī),當(dāng)有物體經(jīng)過時,紅外光被遮住,此時紅外探頭輸出高電平到單片機(jī)。由于紅外光的發(fā)射有一定的偏角,本設(shè)計利用了黑色套管遮擋紅外發(fā)射燈頭,以減少紅外光的散失。本系統(tǒng)采用方案二。(4)故障報警功能采用光敏電阻檢測路燈的亮度,同時排除環(huán)

14、境光的干擾。利用單片機(jī)的ADR,讀入光敏電阻上檢測到的路燈亮度值。(5)恒流源驅(qū)動LED及20%到100%范圍內(nèi)可調(diào)亮度?!痉桨敢弧坎捎煤懔髟打?qū)動芯片,目前市場上成品的恒流源驅(qū)動芯片比較多,一般采用使用取樣電阻調(diào)節(jié)輸出電流的方式。這些芯片使用方便,性能較好,但價格較貴?!痉桨付坎捎肞WMT式驅(qū)動功率三極管輸出驅(qū)動電流,用電流取樣電阻用入LEDffi電回路,用AD口讀取當(dāng)前的電流值,實(shí)現(xiàn)閉環(huán)控制。方案二利用了單片機(jī)的AD變換資源,同時采用PWMT式,可以使LED工作在斷斷續(xù)續(xù)的狀態(tài),可以延長LED的使用壽命。本系統(tǒng)采用方案二。31.2.3 系統(tǒng)各模塊的最終方案圖1.41.3系統(tǒng)功能說明書(用戶

15、使用說明書)1.3.1 路燈的工作模式本模擬路燈控制系統(tǒng)具備5種工作模式,分別是自動群控模式、自動分控模式、根據(jù)照度自動控制模式、根據(jù)交通情況自動控制模式、手動控制模式,下面對每種工作模式簡單介紹如下:(1)自動群控模式在該模式下,支路控制器根據(jù)設(shè)定好的定時信息,自動地同時打開或者關(guān)閉兩盞路燈。系統(tǒng)啟動后默認(rèn)進(jìn)入該模式。(2)自動分控模式在該模式下,支路控制器根據(jù)設(shè)定好的定時信息,分別控制兩盞路燈的開關(guān),例如,當(dāng)系統(tǒng)的時間和路燈1開燈的時間相等時,開啟路燈1;當(dāng)系統(tǒng)的時間和路燈2關(guān)燈的時間相等時開啟路燈2。(3)根據(jù)照度自動控制模式在該模式下,當(dāng)環(huán)境照度低于一定的值時開啟兩盞路燈,當(dāng)環(huán)境照度高

16、于一定的值時關(guān)閉兩盞路燈。(4)根據(jù)交通情況自動控制模式在該模式下,當(dāng)可移動物體M由左到右到達(dá)S點(diǎn)時(見圖XX),燈1亮;當(dāng)物體M到達(dá)B點(diǎn)時,燈1滅,燈2亮;若物體M由右到左移動時,則亮燈的次序與上相反。(5)手動控制模式在手動模式時,兩盞路燈只能由支路控制器用增加和減少鍵手動的調(diào)整亮度,路燈的亮度可以在0%100%自由的上下調(diào)整,步進(jìn)為10%。(1)(4)等四種工作模式是互斥的,即在某一時刻只能具有其中的一種功能,不過各種模式可以手動的切換,手動調(diào)整路燈亮度的功能在這四種模式中都是有效的。另外,該路燈控制系統(tǒng)還具備故障檢測功能,當(dāng)路燈出現(xiàn)無法正常工作的狀況時,該控制系統(tǒng)能夠判定是哪一環(huán)節(jié)出現(xiàn)

17、問題,并將故障通過聲音警報及數(shù)碼管顯示告知用戶。1.3.2 按鍵操作說明支路控制器具備5個按鍵,分別為時間調(diào)整鍵、模式選擇鍵、增加鍵、減少鍵、確認(rèn)鍵。(1)時間調(diào)整鍵:按時間調(diào)整鍵時,可以循環(huán)地選擇系統(tǒng)時間、路燈1和2共同的開關(guān)燈時間、路燈1的開關(guān)燈時間和路燈2的開關(guān)燈時間。(2)模式選擇鍵:按模式選擇鍵可以進(jìn)行系統(tǒng)工作模式的切換,順序?yàn)樽詣尤嚎啬J?;自動分控模式;根?jù)照度自動控制模式;根據(jù)交通情況自動控制模式;手動控制模式。(3)增加、減少鍵:按這兩個鍵可以對時間或者亮度進(jìn)行增減,長按時時間或者亮度可以連續(xù)變換。(4)確認(rèn)鍵:確認(rèn)鍵只在時間調(diào)整時有效,分別確認(rèn)小時、分鐘、秒的輸入。2單元電路

18、設(shè)計2.1 電源供電電路該電路采用變壓器與三端穩(wěn)壓器相結(jié)合。使220V電壓經(jīng)變壓器變壓,降為12V。過整流橋并利用兩個容量較大的電容濾波,從而得到較為穩(wěn)定的直流電壓。通過7805型號的三端穩(wěn)壓器穩(wěn)壓之后,輸出一個電壓為5V,電流為750mA勺直流電源。2.2 單片機(jī)最小系統(tǒng)圖2.2該控制系統(tǒng)的核心芯片采用的是STC12C5404AD,它的最小系統(tǒng)由STC單片機(jī),電容和晶振組成。上電瞬間,電源經(jīng)復(fù)位電容向單片機(jī)發(fā)送一個高電平信號,使單片機(jī)復(fù)位。同時晶振起振,使單片機(jī)工作。晶振的大小可根據(jù)實(shí)際需要進(jìn)行選擇,常用的晶振有4M,6M,11.0592M,12M,24M等。2.3 輸入與輸出按鍵輸出采用A

19、D變換,節(jié)省了IO口資源。通過不同大小的電阻進(jìn)行分壓,按下不同的按鍵就會向單片機(jī)發(fā)送不同的電壓值。如:按下si是0V;按下s2,電壓=2K/(2K+10K)*5V=0.83V。經(jīng)過單片機(jī)AD變換之后,就可以判斷是哪個按鍵按下去,從而執(zhí)行相應(yīng)的功能。7圖2.4顯示輸出該控制系統(tǒng)采用LED數(shù)碼管顯示輸出。LED數(shù)碼管最突出的特點(diǎn)是使用簡單,價格低廉。在該系統(tǒng)中主要用來顯示數(shù)字時鐘,顯示模式設(shè)定等。2.4 電流源驅(qū)動圖2.5電流源驅(qū)動電路,是為驅(qū)動1W大功率LED燈而設(shè)計的。LED燈屬于電流源驅(qū)動,根據(jù)計算,每個1W的LED燈至少需要200mA的驅(qū)動電流才能點(diǎn)亮,而單片機(jī)的IO輸出電流實(shí)際只有20m

20、A到30mA,所以必須經(jīng)過電流放大才能使其工作。因此在該電路中采用了一個9013對電流進(jìn)行放大。113軟件設(shè)計3.1 系統(tǒng)主程序流程圖3.1.1 系統(tǒng)流程圖c開始)單片機(jī)存儲器%變量初始化顯示初始化圖3.1系統(tǒng)流程圖3.1.2定時器溢出中斷處理函數(shù)流程圖開始圖3.2定時器溢出中斷處理函數(shù)流程圖3.1.3按鍵掃描流程圖圖3.3按鍵掃描流程圖3.2系統(tǒng)子程序本系統(tǒng)包含以下子程序/鍵盤處理voidKeyboardScan(void);/鍵盤掃描函數(shù)voidKeyboardOperate(ucharKeyNum);/按鍵處理函數(shù)/定時器處理voidInitTimer(void);/定時器參數(shù)設(shè)定及啟動

21、/路燈控制voidBrightnessSet(ucharLightNum,ucharBrightness);/亮度調(diào)整/延時函數(shù)voiddelay(uinti);#/AD采樣voidInitADC();ucharGetADCResult(ucharch);uintget_adc(ucharch);/顯示函數(shù)voiddisplay();/蜂鳴器發(fā)生函數(shù)voidspeak();/ADC轉(zhuǎn)換初始化/取ADC專換初值/對ADO值進(jìn)行操作/*亮度調(diào)整函數(shù)*/voidBrightnessSet(ucharLightNum,ucharBrightness);/*中斷處理程序*/voidt0()interru

22、pt1using1voidt1()interrupt34系統(tǒng)測試4.1測試儀器數(shù)字示波器:該系統(tǒng)采用紅外對射傳感器,因?yàn)樗恼9ぷ餍枰饧?8KHz的觸發(fā)頻率。數(shù)字示波器主要用來測量頻率。萬用表:在該系統(tǒng)中用來測量電壓、電流、電阻等。334.2指標(biāo)測試4.2.1 各部分測試的指標(biāo)表12功能測試在舁廳P指標(biāo)(目標(biāo)值)實(shí)測值1故障指示(編號)LED上顯示正確2過中點(diǎn)后前打鳧后打火,試驗(yàn)成功率(100%)100%3自動開關(guān)燈功能,試驗(yàn)成功率100%4實(shí)時誤差,米用時間加速方法(誤差小于5MINJ)誤差1MIN5單元控制器具有調(diào)光功能,路燈驅(qū)動電源輸出功率能在規(guī)定時間按設(shè)定要求自動減小,該功率應(yīng)能在

23、20%100%£圍內(nèi)設(shè)定并調(diào)節(jié),調(diào)節(jié)誤差02%電流從0mA®750mA度化平緩穩(wěn)定4.2.2 系統(tǒng)實(shí)現(xiàn)的功能表21基本要求在舁廳P功能是否實(shí)現(xiàn)1支路控制器有時鐘功能,能設(shè)定、顯示開關(guān)燈時間,并控制整條支路按時開燈和關(guān)燈。是2支路控制器應(yīng)能根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈。是3支路控制器應(yīng)能根據(jù)交通情況自動調(diào)節(jié)亮燈狀態(tài):當(dāng)可移動物體M(在物體前端標(biāo)出定位點(diǎn),由定位點(diǎn)確定物體位置)由左至右到達(dá)S點(diǎn)時(見圖2),燈1亮;當(dāng)物體M到達(dá)B點(diǎn)時,燈1滅,燈2亮;若物體M由右至左移動時,則亮燈次序與上相反。是4支路控制器能分別獨(dú)立控制每只路燈的開燈和關(guān)燈時間。是5當(dāng)路燈出現(xiàn)故障時(燈不亮

24、),支路控制器應(yīng)發(fā)出聲光報警信號,并顯示肩故障路燈的地址編號。是表22發(fā)揮部分在舁廳P功能是否實(shí)現(xiàn)1自制單元控制器中的LED燈恒流驅(qū)動電源是2單元控制器具有調(diào)光功能,路燈驅(qū)動電源輸出功率能在規(guī)定時間按設(shè)定要求自動減小,該功率應(yīng)能在20%100%范圍內(nèi)設(shè)定并調(diào)節(jié),調(diào)節(jié)誤差02%。是表23特色功能在舁廳P功能是否實(shí)現(xiàn)1自制微型紅外光發(fā)射與光敏電阻組合替代工業(yè)光電傳感器是2利用單片機(jī)的AD變換功能,實(shí)現(xiàn)用一個IO口讀多個按鍵是3使用單片機(jī)內(nèi)部的定時器代替時鐘芯片,實(shí)現(xiàn)時鐘功能和定時開關(guān)機(jī)功能是4米用PWM與電流取樣方式,實(shí)現(xiàn)閉環(huán)的恒流源控制是5結(jié)論該系統(tǒng)調(diào)試最終結(jié)果,符合本次設(shè)計的全部要求。經(jīng)過功率

25、擴(kuò)大、電網(wǎng)通訊等方面的改良,就能用于實(shí)際路燈控制。以其超低成本,高可靠性的特點(diǎn),與其他現(xiàn)有成品相比,具有一定的競爭優(yōu)勢。該控制系統(tǒng)在調(diào)試過程中,遇到過一些與理論相差很大的實(shí)際問題。比如紅外對射傳感器的對焦問題,因?yàn)榧t外線是不可見光,對焦比較麻煩,但是借用其他輔助工具就會簡單很多。最簡便的方法是利用帶攝像頭的手機(jī)來獲取紅外光,從而能順利完成對紅外對射傳感器的對焦。紅外對射的接收部分,因受頻率限制,只能接收頻率在38KHz的紅外信號,所以在調(diào)試過程中有一定的難度。經(jīng)方案論證,采用PWM脈寬調(diào)制輸出,是切實(shí)可行的最有效方案。程序書寫如下:#include<reg51.h>sbitpwmo

26、ut=P1A1;/定義PWM輸出端口voidinit()interrupt1/中斷方式1TH0=0xff;TL0=0xf3;/定時器初值pwmout=pwmout;/對PWM輸出取反,產(chǎn)生一高一低的脈沖信號voidmain()TMOD=0X11;/定時計數(shù)器工作在1方式TH0=0xff;TL0=0xf3;/初始化初值EA=1;ET0=1;TR0=1;/開總中斷,允許定時器1中斷,開定時器1中斷while(1);參考文獻(xiàn)1 于殿泓,王新年單片機(jī)原理與程序設(shè)計實(shí)驗(yàn)教程M西安:西安電子科技大學(xué)出版社,2007,82 趙文博,劉文濤.單片機(jī)語言C51程序設(shè)計M.北京:人民郵電出版社,2005,103

27、李愛秋紅外線遙控12位電子密碼鎖的設(shè)計J溫州職業(yè)技術(shù)學(xué)院學(xué)報第8卷第一期,20084 陳杰,黃鴻傳感器與檢測技術(shù)M北京:高等教育出版社,2010,85 周航慈.單片機(jī)應(yīng)用程序設(shè)計技術(shù)M.北京:北京航空航天大學(xué)出版社,2011,26 李朝青.單片機(jī)原理及接口技術(shù)M.北京:北京航空航天大學(xué)出版社,2005,107 孫育才.MCS-51系列單片微型計算機(jī)及其應(yīng)用M.東南大學(xué)出版社,2004,6.8 沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計實(shí)力與分析M.北京:北京航空航天大學(xué)出版社,2003.9 徐愛鈞,彭秀華.單片機(jī)高級語言C51應(yīng)用程序設(shè)計M.北京航空航天大學(xué)出版社,200610 曾一江.單片微機(jī)原理與接口技術(shù)

28、M.北京:科技出版社,2009,1211 康華光.電子技術(shù)基礎(chǔ)(模擬部分)M.北京:高等教育出版社,2004,4附錄1程序代碼#include"STC12C5410AD.h"#include"intrins.h"#include<math.h>#defineuintunsignedint#defineucharunsignedcharuchardis=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3e,0x77,0x40,0x00,0x76,0x71,0x37,0x79,0x31,0x

29、38;/10_V,A,-,熄滅,H,F_15,N,E,R,L/sfr ADC_RES =0xC6;/#define ADC_POWER 0x80#define ADC_FLAG 0x10#define ADC_START 0x08#define ADC_SPEEDLL 0x00#define ADC_SPEEDL 0x20#define ADC_SPEEDH 0x40#define ADC_SPEEDHH 0x60/ISP/#define ENABLE_ISP 0x83 / 系統(tǒng)工作時鐘/ADC high 8-bit result register/ADC power control bit/

30、ADC complete flag/ADC start control bit/420 clocks/280 clocks/140 clocks/70 clocks<12MHz 時,對 IAP_CONTR 寄存器設(shè)置此值/sbitk1=P1A0;按鈕sbitk2=P1A1;sbitk3=P1A2;sbitk4=P1A3;sbitk5=P1A4;sbitcgq_a=P1A3;sbitcgq_b=P1A4;sbitcgq_c=P3A0;sbitzishi=P3A1;/sbiten1=P3A4;/373使能端端碼sbiten2=P3A5;/373使能端位碼/sbitfeng=P3A7;/sbi

31、tled1=P3A2;sbitled2=P3A3;/函數(shù)定義部分uchard8;charshi=0,fen=0,miao=0,set_miao=0,pwm,k3num=0,set_fen=0;set_on_shi=0,set_off_shi=0,light=0,pwm_count=0;bitshijian_bit=1,pwm_bit=1,light_bit=1,bad_deng1=0,bad_bit=0,bad_deng2=0,display_bit=0,auto_mode=1,sdong=1,sdong_bit=0;uintsum2=0,shi_count=0,sum_deng1,sum_d

32、eng2,kk,jj,ff,ii;/voidIAP_Disable();ucharByte_Read(ucharaddh,ucharaddl);voidSector_Erase(ucharaddh,ucharaddl);voidByte_Program(ucharaddh,ucharaddl,ucharch);/voidInitADC();/ADC轉(zhuǎn)換初始化ucharGetADCResult(ucharch);/取ADC轉(zhuǎn)換初值uintget_adc(ucharch);/取ADC轉(zhuǎn)換數(shù)據(jù)10位voiddelay(uinti);voidjiyi();voidread_jiyi();voidrun

33、_shijian();/延時1MS/voiddelay(uinti)/延時函數(shù)uinta,b;for(a=0;a<i;a+)for(b=0;b<120;b+);/voiddisplay()/顯示函數(shù)uchari,s=0x01;for(i=0;i<8;i+)P2=disdi;en1=1;en1=0;P2=s;en2=1;en2=0;delay(4);P2=0xff;en2=1;en2=0;s=s<<1;voidchaizi()/拆字函數(shù)d0=shi/10;d1=shi%10;d2=12;d3=fen/10;d4=fen%10;d5=12;d6=miao/10;d7=

34、miao%10;voidspeak()/蜂鳴器發(fā)生函數(shù)feng=0;delay(10);feng=1;voidt0()interrupt1using1TH0=0Xfc;TL0=0X18;if(light_bit)if(pwm_count>=10)pwm_count=0;elsepwm_count+;if(pwm_count<=pwm)led1=led2=1;elseled1=led2=0;/sum2=get_adc(7);sum2=sum2*48/1000;if(sum2<5)led1=led2=1;elseif(sum2<15)pwm=9;elseif(sum2<

35、;35)pwm=0;elseif(sum2<45)led1=led2=0;else;if(shijian_bit)if(shi_count<500)shi_count+;elsemiao+;shi_count=0;if(miao>=60)miao=0;fen+;if(fen>=60)fen=0;shi+;if(shi>23)shi=0;/if(kk<=2000)kk+;elsekk=0;bad_bit=1;if(ff<=1000)ff+;elseff=0;ii+;bad_bit=0;if(ii=6)ii=0;/sum_deng1=get_adc(6);

36、sum_deng1=sum_deng1*48/1000;/光敏檢測燈Aif(sum_deng1>=25)bad_deng1=1;elsebad_deng1=0;/sum_deng2=get_adc(5);sum_deng2=sum_deng2*48/1000;/光敏檢測燈Bif(sum_deng2>=25)bad_deng2=1;elsebad_deng2=0;voidset_time()/設(shè)置時間while(1)shijian_bit=0;d5=12;d6=miao/10;d7=miao%10;d0=d1=d2=d3=d4=13;display();if(k4=0)while(!

37、k4)display();speak();if(miao<59)miao=miao+1;elsemiao=0;if(k5=0)while(!k5)display();speak();miao=miao-1;if(miao<=0)miao=59;if(k1=0)while(!k1)display();speak();gotom1;m1:while(1)shijian_bit=0;d2=12;d3=fen/10;d4=fen%10;d0=d1=d5=d6=d7=13;display();if(k4=0)while(!k4)display();speak();if(fen<59)f

38、en=fen+1;elsefen=0;if(k5=0)while(!k5)display();speak();fen=fen-1;if(fen<=0)fen=59;if(k1=0)while(!k1)display();speak();gotom2;m2:while(1)shijian_bit=0;d0=shi/10;d1=shi%10;d2=d3=d4=d5=d6=d7=13;display();if(k4=0)while(!k4)display();speak();if(shi<23)shi=shi+1;elseshi=0;if(k5=0)while(!k5)display()

39、;speak();shi=shi-1;if(shi<=0)shi=23;if(k1=0)while(!k1)display();speak();gotom3;m3:jiyi();shijian_bit=1;voidjiyi()/存儲函數(shù)Sector_Erase(0x2a,0x00);delay(10);Byte_Program(0x2a,0x01,shi);delay(10);Byte_Program(0x2a,0x02,fen);delay(10);Byte_Program(0x2a,0x03,miao);delay(10);Byte_Program(0x2a,0x04,set_on_

40、shi);delay(10);Byte_Program(0x2a,0x05,set_off_shi);delay(10);voidread_jiyi()/讀出存人的值shi=Byte_Read(0x2a,0x01);delay(10);fen=Byte_Read(0x2a,0x02);delay(10);miao=Byte_Read(0x2a,0x03);delay(10);set_on_shi=Byte_Read(0x2a,0x04);delay(10);set_off_shi=Byte_Read(0x2a,0x05);delay(10);voidset_on_off()/設(shè)置開關(guān)燈時間wh

41、ile(1)d3=0;d4=16;d5=12;d6=set_on_shi/10;d7=set_on_shi%10;d0=d1=d2=13;display();if(k4=0)while(!k4)display();speak();if(set_on_shi<23)set_on_shi=set_on_shi+1;elseset_on_shi=0;if(k5=0)while(!k5)display();speak();set_on_shi=set_on_shi-1;if(set_on_shi<=0)set_on_shi=23;if(k2=0)while(!k2)display();sp

42、eak();gotom1;m1:while(1)d2=0;d3=d4=15;d0=d1=13;d5=12;d6=set_off_shi/10;d7=set_off_shi%10;display();if(k4=0)while(!k4)display();speak();if(set_off_shi<23)set_off_shi=set_off_shi+1;elseset_off_shi=0;if(k5=0)while(!k5)display();speak();set_off_shi=set_off_shi-1;if(set_off_shi<=0)set_off_shi=23;if

43、(k2=0)while(!k2)display();speak();gotom2;m2:jiyi();shijian_bit=1;voidmain()/主函數(shù)P2M0=0x00;P2M1=0xff;TMOD=0x11;TH0=0Xfc;TL0=0X18;/TH1=0xff;TL1=0x9c;EA=1;ET0=1;TR0=1;/EA=1;ET1=1;TR1=1;P3M0=0x00;P3M1=0xff;InitADC();delay(10);read_jiyi();zishi=1;loop:if(bad_bit)if(bad_deng1=1)bad_deng1=0;gotoloop1;/1if(b

44、ad_deng2=1)bad_deng2=0;gotoloop3;/2if(bad_deng1=1&&bad_deng2=1)bad_deng2=bad_deng1=0;gotoloop2;/1.2if(k1=0)while(!k1)display();speak();set_time();/設(shè)置時間if(k2=0)while(!k2)display();speak();set_on_off();/設(shè)置開關(guān)燈時間if(sdong_bit)if(shi>=set_on_shi)led1=led2=0;sdong=1;if(shi>=set_off_shi)led1=l

45、ed2=1;sdong=0;chaizi();display();/if(k3=0)while(!k3);speak();k3num+;switch(k3num%2)case1:zishi=0;led1=led2=0;bad_bit=0;auto_mode=1;sdong=1;sdong_bit=0;light_bit=1;break;/自動模式case0:zishi=1;led1=led2=1;bad_bit=1;auto_mode=1;sdong=0;sdong_bit=1;light_bit=0;break;/手動模式if(auto_mode)/自動模式if(sdong)if(cgq_a

46、=0&&cgq_b=1&&cgq_c=1)led1=0;led2=1;/3.2開3.3關(guān)if(cgq_a=1&&cgq_b=0&&cgq_c=1)led1=1;led2=0;/3.2關(guān)3.3開if(cgq_a=1&&cgq_b=1&&cgq_c=0)led1=1;led2=1;/3.2關(guān)3.3關(guān)gotoloop;/loop2:if(ii=3|ii=6)bad_bit=0;gotoloop;bad_bit=0;d0=17;d1=18;d2=d5=12;d3=19;d4=1;d6=19;d7=2;/ER

47、-L1-L2display();if(bad_deng1=0|bad_deng2=0)gotoloop;gotoloop2;loop1:if(ii=3|ii=6)bad_bit=0;gotoloop;bad_bit=0;d0=17;d1=d2=d4=18;d3=0;d5=12;d6=19;d7=1;/ERROR-L1display();if(bad_deng1=0)gotoloop;gotoloop1;loop3:if(ii=3|ii=6)bad_bit=0;gotoloop;bad_bit=0;d0=17;d1=d2=d4=18;d3=0;d5=12;d6=19;d7=2;/ERROR-L2

48、display();if(bad_deng2=0)gotoloop;gotoloop3;/uintget_adc(ucharch)uintadc_r;adc_r=GetADCResult(ch)*4+ADC_LOW2;return(adc_r);/ucharGetADCResult(ucharch)ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START;_nop_();_nop_();_nop_();_nop_();/Mustwaitbeforeinquirywhile(!(ADC_CONTR&ADC_FLAG);/WaitcompleteflagADC_CONTR&=ADC_FLAG;returnA

溫馨提示

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

評論

0/150

提交評論