久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8384|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

WORD格式可編輯 單片機太陽能路燈設(shè)計及proteus仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:161768 發(fā)表于 2017-5-3 22:31 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

     在本文中,我們計劃了含有單片機STC12C2051和時鐘芯片DS1302的一個結(jié)合時鐘控制和光線控制的太陽能路燈控制系統(tǒng)(此句不通)。使用常見的存儲器AT24C02存儲路燈開關(guān)時間,光敏電阻來實現(xiàn)光開關(guān)。傍晚天黑時光敏電阻控制路燈開啟,行人稀少的凌晨按照預(yù)先設(shè)定的時間熄滅街燈,早上行人增加時按照預(yù)先設(shè)定的時間點亮街燈,早上根據(jù)照明水平日出自動切斷電路的。本文描述了整個系統(tǒng)的的工作原理和大部分電路,描述了單片機的優(yōu)化設(shè)計和研究。

太陽能路燈的部分構(gòu)成如下:光能電池、鉛酸免維護電池、超亮LED, LED路燈系統(tǒng)等。太陽能是一種取之不盡、用之不竭的能源,是人類最有發(fā)展前途的能源。當今世界能源短缺,環(huán)境污染日益嚴重。盡可能多地發(fā)展太陽能技術(shù)已成為世界各國政府在可持續(xù)發(fā)展的主要方法。與白熾燈等照明方法相比,超高亮度LED燈體積小,重量輕,可靠性高,方向性好,并在各種惡劣的環(huán)境下工作穩(wěn)定等優(yōu)點。而且除了太陽能LED燈超節(jié)能外還有安裝方便等優(yōu)點。



第一章 緒論            

1.1研究背景

1.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢

1.3本文的主要研究內(nèi)容

第二章 方案論證              2

2.1 設(shè)計要求              2

2.2 方案選擇              2

第三章 系統(tǒng)總體框圖              3

第四章 系統(tǒng)硬件設(shè)計              4

4.1 電源電路              4

4.2 太陽能電池板組件              4

4.3 蓄電池              5

4.4 照明負載              6

4.5 蓄電池和太陽能板的選用              7

4.6 顯示電路              8

4.7 過充、過放控制電路              9

4.8 DS1302的結(jié)構(gòu)及工作原理              10

4.9 存儲器AT24C02簡介1

第五章 系統(tǒng)軟件設(shè)計及仿真3

5.1 系統(tǒng)軟件設(shè)計              13

5.2 系統(tǒng)的仿真              16

結(jié)束語及致謝              21

參考文獻2

附錄3




第一章 緒論
1.1研究背景

太陽能路燈,因為其先進的技術(shù),穩(wěn)定的控制,成熟的節(jié)能效果,突出景觀技術(shù),被眾人作為一種投資回報周期短,易于維護特征的推廣。隨著快速發(fā)展規(guī)模的太陽能街燈的擴大和大量應(yīng)用,各種實際項目和施工質(zhì)量差別很大。因此,我們應(yīng)分析原因,不斷總結(jié)經(jīng)驗,繼續(xù)規(guī)范市場秩序,讓LED路燈市場穩(wěn)步發(fā)展。太陽能作為一種綠色能源是非常有價值的。每日的地球表面受到的的陽光照射能量約等于 250000000 桶石油。

太陽能 LED 燈具的使用應(yīng)該引起全世界的注意,太陽能 LED 燈有重要的現(xiàn)實意義,特別是依靠火力發(fā)電或水力發(fā)電的其他偏遠地區(qū),因火力發(fā)電和水力發(fā)電無法連入國家大電網(wǎng)而造成自身的浪費,這些地區(qū)應(yīng)加大開發(fā)太陽能電力的力度。這是利國利民可持續(xù)發(fā)展的好事。

1.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢

如今能源日益緊張,太陽能照明已迅速發(fā)展。在太陽能照明體系的成長中,人們不間斷的的對照明系統(tǒng)經(jīng)常使用的控制方法進行剖析,設(shè)計出了許多方便可行的控制方式,蓄電池充電效率不斷進步,有效利用方面和充電時間是越來越理想。協(xié)調(diào)發(fā)展的太陽能組件、 太陽能照明技術(shù)使其越來越有價值。太陽能照明的電能,是真正的綠色照明,政府方面,自動省心還不用付電費,百姓方面,太陽能燈可免費提供能源和每晚的照明。道路照明在城市街道中占大部分。作為一種新能源和工業(yè)技術(shù)、一種新的成熟技術(shù),與其他行業(yè)相比,有優(yōu)勢但仍有不完善的地方如發(fā)展時間短,技術(shù)不成熟。特別是性能、價格、安全、標準、售后、耐用等。

目前,太陽能路燈在城市路燈路燈中仍然沒有得到廣泛使用,但體積小、 可靠性強、 維修簡便、 良好的指向性,相信未來的發(fā)展前景將是非常理想的,很值得被推廣應(yīng)用在城市路燈照明系統(tǒng)。


1.3本文的主要研究內(nèi)容

    本文主要研究太陽能路燈控制系統(tǒng)的應(yīng)用。太陽能控制器即太陽能充電放電控制器。控制太陽電池陣電源自動控制設(shè)備的負載和電池充電。自動防止蓄電池過充電和過放電。它對蓄電池的充、放電條件加以規(guī)定和控制,并根據(jù)太陽能電池模塊的負荷控制電池向負載輸出功率的電力需求,是整個系統(tǒng)的核心控制部分[1]。

太陽能路燈太陽能控制器是它的最重要組成部分。太陽能控制系統(tǒng)的作用是避免過充電和過放電, 使電池充電和放電條件通過設(shè)置以便電池不會深度充電和放電。當存在較大的溫差,太陽能控制器將彌補電池溫度。能量控制器完成過充電保護,過放電保護,設(shè)計,燈光控制,時間控制,甚至反接保護功能。如果注重成本控制,可以實現(xiàn)其高性價比。

控制系統(tǒng)在照明系統(tǒng)中有核心充電、過充電和過放電保護、進行系統(tǒng)控制、時間控制和逆變器的功能。

第二章 方案論證
2.1 設(shè)計要求

(1)電池板功率的計算和選用;(要求功率多大?)

(2)蓄電池電池容量,充電和放電控制和狀態(tài)顯示;

(3)連續(xù)陰雨天三天路燈仍能照明;

(4)光線暗時路燈自動點亮;

(5)晚上24點熄滅;

(6)早上5點路燈點亮;

(7)早上光線強時路燈自動熄滅;

(8)系統(tǒng)斷電時后下次使用依然有數(shù)據(jù)存在。
2.2 方案選擇(寫清楚方案,功率如何滿足等,要寫出結(jié)算過程)

太陽能 LED 燈和其他路燈光一樣,必須在早上熄燈在晚上亮光。并且24小時管理蓄電池電量。今天的世界上通用的控制器: 時鐘類型、 經(jīng)緯類型等,但因為不同的工程,每個都有優(yōu)點和缺點。  

光敏感探頭的時候會在光線微弱的晚上自動打開;早晨的光線變強時,自動斷電。為節(jié)約用電,原來的光控開關(guān),是半導(dǎo)體分立器件,電路復(fù)雜,組件多,體積大,失敗率高。隨著現(xiàn)代技術(shù)的不斷發(fā)展,出現(xiàn)了以NE555為代表的時基集成電路,光控開關(guān)電路開始大幅度地簡化高效。光開關(guān)特性的感光部件中探頭的安裝位置是關(guān)鍵,也是需要技巧避免光的干涉,但在實際使用中,很難判斷。產(chǎn)生誤動作是經(jīng)常發(fā)生也是不可避免的。

采用時鐘控制器的路燈控制器,可以提前選好開關(guān)燈的時間。路燈將根據(jù)設(shè)定的時間定時亮燈、熄燈。也就實現(xiàn)了自動控制的效果。優(yōu)點:因為是提前設(shè)定的開關(guān)時間控制路燈,這樣就不會收到外界較大干擾,只要本身沒故障就不會有誤動作的現(xiàn)象。缺點:因為日出日落的時間每天都不同。無法根據(jù)日期變化和陰雨天氣自動更改開關(guān)時間,如果找專人定期更改每天開關(guān)時間,就無法達到自動控制的效果了。定時開關(guān)有機械鐘和電子鐘兩種,石英鐘的機械手表,走時準確,但由于在核心溫度高的塑料齒輪會變形,會造成關(guān)機現(xiàn)象。以LR6818、LM8650為代表的電子鐘的定時開關(guān)的代表也開始廣泛地使用。近年來,現(xiàn)有的電子時鐘 LED 液晶顯示器具有體積小、 外圍元件少等優(yōu)點,可以設(shè)置 6 組開關(guān),許多制造商對于大批量生產(chǎn)的產(chǎn)品,現(xiàn)在主要用于路燈控制系統(tǒng)。

利用計算機技術(shù),在陽光下的仿真技術(shù),經(jīng)緯控制器自動的夜燈,早上可以自動關(guān)燈。它的優(yōu)點是時間敏感的開關(guān)、 光學(xué)開關(guān)不容易受到干涉,控制時間準確。 能克服計時器無法自動切換開關(guān)時間的弱點。目前,路燈控制系統(tǒng)經(jīng)常使用這種控制方法,但價格較高,街道照明會增加不必要的成本[2]。

關(guān)于這一主題的路燈智能控制一直有研究者,但還不是一個成熟的產(chǎn)品。本文會結(jié)合上面幾種方法的優(yōu)點,減少缺點。節(jié)約能源,從成本和環(huán)境保護等方面的設(shè)計,使定時控制和光電控制相結(jié)合,以實現(xiàn)智能設(shè)計的太陽能燈。

第三章 系統(tǒng)總體框圖

總體電路部分組成如下:太陽能電池板、防止過充過放電路、51單片機、蓄電池、時間控制電路、光控光敏電路、照明負載LED燈與時間顯示電路[3]。系統(tǒng)總體方框圖如圖3.1所示。

太陽能發(fā)電的單片機電池電壓低時,電池的使用壽命將會減少,所以要防止電池過充和過放,以上的充電和放電控制電路必須有。要介紹該工作原理第四章 系統(tǒng)硬件設(shè)計4.1 電源電路

電源電路如圖4.1所示。太陽能發(fā)電系統(tǒng),電池電壓24V電壓5V輸出電壓,作為主電源控制器。電容器C2,C3作為高頻旁路電容器。電容器C1,C4是濾波電容器。為什么這么設(shè)計

圖4.1  電源電路

4.2 太陽能電池板組件

  太陽能發(fā)電分為熱能發(fā)電和光能發(fā)電兩種。

(1) 太陽能熱發(fā)電:太陽輻射的第一吸收的熱能轉(zhuǎn)換成電能,有兩個類別:一種是直接轉(zhuǎn)換為熱能發(fā)電作為太陽能熱發(fā)電的代表,但功率很小[4]。有的還處于原理實驗階段;其他的是太陽能熱發(fā)電,太陽能發(fā)電機由發(fā)動機驅(qū)動,其基本結(jié)構(gòu)包括集熱器,儲能系統(tǒng),發(fā)動機和發(fā)電機。一些國家正在研制的大電網(wǎng)設(shè)備,已達到實際應(yīng)用的水平。因為太陽能熱發(fā)電技術(shù)的復(fù)雜性,業(yè)務(wù)應(yīng)用程序僅適用于大容量,所以其發(fā)展緩慢、 不是很多的應(yīng)用程序。   

(2) 太陽能光發(fā)電:不發(fā)熱,光是太陽光轉(zhuǎn)化為電能,太陽能,風力發(fā)電機,光化學(xué)和光生物發(fā)電發(fā)電四類。目前廣泛用于周圍世界光伏、 光照到該單元格,利用光伏效應(yīng)直接可以產(chǎn)生直流電,太陽能電池的一部分,蓄電池,控制器,逆變器和模擬的其他部分。目前世界上廣泛使用太陽能電池的應(yīng)用,從而生產(chǎn)成本開始放緩。目前情況下。光伏發(fā)電在世界主要用于三個方面:為無電場合提供電源;太陽能日用電子產(chǎn)品。

太陽能電池的基本特性:電壓特性具有較強的非線性。S=l050W/m2;太陽能電池溫度T=24℃;大氣質(zhì)量AM=1.52。在這種條件下的最大輸出功率就是太陽能電池陣列的額定功率[5]。其額定輸出功率單位是“峰瓦”,簡記為“Wp”。

在365天太陽電池組件接受太陽輻射能量,選擇最佳角度是很重要的。

通過計算模型可以計算太陽輻射在不同的角度要從中選擇最合適的角度斜平面作為最后一種選擇的平均輻射劑量的月度變化。
    太陽能電池板分為多晶硅和單晶硅,多晶硅區(qū)域,發(fā)電比單晶效率高,所以使用 70 W 將單個晶體硅太陽能電池組件符合設(shè)計要求[6]。

4.3 蓄電池

蓄電池是將太陽能電池的能量轉(zhuǎn)化存儲到自身的裝置,其作用是儲存陽光發(fā)出的多余的電力負荷矩陣,用于在夜間。總的要求是沒有陽光的日子里仍然滿足用戶要求的電源性能指標。最常用的鉛酸電池經(jīng)常用在重要的場合,也可用于鎘鎳電池,但價格較高,相對沒有廣泛應(yīng)用。

電池可以把直流電動能量轉(zhuǎn)化為化學(xué)能,化學(xué)材料將其及時和有效地存儲。光電轉(zhuǎn)換系統(tǒng)有電池蓄電和調(diào)理作用。每個光伏系統(tǒng)將是不同的,沒有陽光發(fā)電,電池可以提供穩(wěn)定的電。

光伏發(fā)電系統(tǒng),電池正在放電周期浮動狀態(tài), 夏天, 太陽能電池板充電電池;冬天陽光不足,儲存的電能開始慢慢輸出。日循環(huán)的次數(shù)比季節(jié)性循環(huán)要多得多:白天時儲存的能量轉(zhuǎn)換為電池電量,晚上,充的電開始緩慢輸出。因此電池泄漏少,充放電效率盡可能高,最后,考慮的因素,如價格性能。

蓄電池的壽命的影響因素有制造質(zhì)量的結(jié)構(gòu)和工藝。還有一些是使用過程和維護工作。首先,徹底的影響電池放電深度的循環(huán)壽命,電池深度放電,往往會縮短生命周期。其次,電池的標稱容量通常用于高電流充電放電,影響電池壽命。大電流充電,活性物質(zhì),特別是板不易脫落,短路正負極板嚴重;大電流放電,產(chǎn)生大的硫酸鹽顆粒,板活性物質(zhì)不能充分利用長電池的實際容量會逐漸減少,這樣生活也會受到影響[7]。

這個電路使用免維護鉛酸電池,不用特別的維修 ;即使傾倒也不溢出電解質(zhì)的氫和空氣的霧,更好的安全性能。但是充電電池是更敏感,所以過充電保護的要求;當長時間反復(fù)充電后,電池板變形。

4.4 照明負載

LED被加上電壓后在內(nèi)部會產(chǎn)生躍遷光輻射。不同類型的半導(dǎo)體材料,光的波長產(chǎn)生自然不同。發(fā)光二極管的基本構(gòu)成是 P N 交界處,少數(shù)載體將積極當前 P N 交界,復(fù)合載體是光的發(fā)射發(fā)光二極管的一個基本原則。P N 半導(dǎo)體結(jié)燈發(fā)光固態(tài)照明材料和電子轉(zhuǎn)型固體結(jié)果中不同國家的各種固體發(fā)光。半導(dǎo)體材料的工作原理決定了不連續(xù)的白光LED,但使用其他的合成方法。氮化銦鎵結(jié)合熒光材料發(fā)射藍光變成了白光LED ,藍光,熒光材料發(fā)出黃光時的激勵,合成為藍色,黃色和白色。

超亮白光LED用太陽能照明,單梁式超高亮度LED燈管方向太強了,有不好的綜合視覺效果,所以應(yīng)該首選平面型超級明亮的單位類型和超級明亮的LED照明燈類型結(jié)合使用,集中了一批LED , LED光源布置有超高亮白光的某些規(guī)則的LED光源,以確保光效的發(fā)光強度是必要的,但也有了更高的,但是電流的增大,流量雖然增加了,但另一方面,目前的增加將導(dǎo)致增加熱損失的來源,通常會導(dǎo)致溫度升高,結(jié)合效果是減少的光,光通量和相交的最佳工作發(fā)光效率的影響,通常17.5ma。   

超亮白光LED光源具有以下優(yōu)點:

(1)壽命長。LED 的壽命至少 100000 小時、 白熾燈燈具的一般是 2000 小時,熒光燈通常約 5000 小時。

   (2)效率高。LED耗電只有白熾燈的10%至20%。   

(3)綠色環(huán)保。日光燈不含汞,無頻閃,環(huán)境友好。

    (4)耐低溫。LED 的溫度可在零下 40 ℃ ~ 80 ℃ 的溫度中工作,范圍是非常廣泛。

這個電路的電壓是關(guān)鍵特征點,一個充電和放電的電池更好的設(shè)計,和充電狀態(tài)指示電路,發(fā)光二極管智能控制器已成為一種實用的功能,功能,防止電池過放電,充電。在太陽輻射不足的一個月,因為電壓低,電池的充電的電池狀態(tài)的低排放,所以負載電流很小,功率小、 系統(tǒng)可以工作有較長的時間。每月的太陽輻射是不夠的,因為電池電壓的電池充電狀態(tài)為低,低排放,因此負載電流小,小系統(tǒng)可較長時間工作。

太陽能LED路燈, LED光源的數(shù)量范圍是從1到幾千的一批LED光源組成,排列組合是非常重要的一點。不同的排列組合的整體亮度的影響。

    這種設(shè)計使用,超級光亮管正常工作電壓為 3.3 V,即 28 個1 W 超高亮管,四組每七個超亮MOSFET為一組,即使在電路中,這也減少了影響,超亮管其他明管的電路故障,由于超亮管井的直接影響,所以的燈去嘗試的體積更小,曝光范圍,這樣就可以使超光管大,超亮管選擇較大的管道明亮的燈光。

4.5 蓄電池和太陽能板的選用

路燈電壓為24V ,電流約1.2A。路燈大約在一天內(nèi)要工作8小時,陰天3天時系統(tǒng)也要正常工作,后備電源要有80%的放電率并堅持24h供電[8]。則蓄電池的容量如公式(1)為:

       Qx=(Tx×Is)=(24×1.2)/0.8=36(Ah)                     (1)

    式中:

       Qx——蓄電池容量;

       Tx——蓄電池放電時間;

       Is——設(shè)備工作電流。

最終選擇了24V/36Ah蓄電池。有陽光時,16小時充滿電。


(2)是用來計算的太陽能電池板功率如公式:

       P=24Ic

       =Vg〔Qx+Qs ×(D-1)〕/(Tc ×D)

                  =24Qx/Tc=24*(36+9.6)/16=68.4W               (2)

    式中:

       Qx——蓄電池容量;

       D——充滿電需要的天數(shù);

       Qs——日耗蓄電池容量;

       Vg——設(shè)備工作電壓;

       Tc——充電滿電所用時間。

    則太陽能板取24V/70W。

    太陽能各項性能指標如表所示:

太陽能電池

70W ,24 V

LED發(fā)光源

28個LED、每個1 W

工作溫度

-40℃ +80℃

過充保護電壓

26 V

過放保護電壓

22 V

蓄電池

24 V,36Ah


照明時間

光敏電阻來實現(xiàn)光開關(guān)。 傍晚天黑時光敏電阻控制路燈開啟,行人稀少的凌晨按照預(yù)先設(shè)定的時間熄滅街燈,早上行人增加時按照預(yù)先設(shè)定的時間點亮街燈, 早上根據(jù)照明水平日出自動切斷電路的。

陰雨天保證時間

3個陰雨天也能正常工作

表4.1 太陽能LED的各種性能指標

4.6 顯示電路(為啥這么設(shè)計,寫清楚)

單片機的串行顯示電路,由74 LS164為數(shù)碼管驅(qū)動電路,二極管D1 , D2和D3 可降壓,保護數(shù)碼管,共顯示四個數(shù)字,1.2顯示小時,3.4顯示分鐘[9]。

      

圖4.2 顯示電路

可以為同步移位寄存器使用雙工串行通信端口,模式 0、 RXD (P3.0) 是一種串行輸入或輸出 ;通過數(shù)據(jù)同步的時鐘(P3.1)終端串行輸出,在時鐘的同步功能,實現(xiàn)串行數(shù)據(jù)通信。允許低電平輸出電流,不增加驅(qū)動電路的原因,亮度是可取的。4.7 過充、過放控制電路

過度充電的控制,在電池的充滿狀態(tài)時,充電電路保護,該控制電路是為電池放電的放電電路。過充和過放電保護電池,延長電池使用壽命。充放電控制電路如圖4.3所示。:

過充電,過放電的判斷主要是基于電池的電壓水平,其工作原理如下:過載繼電器開關(guān)控制電路的充電顯示的運動范圍的電路時,白天電荷狀態(tài)正常,太陽熱吸收從常閉繼電器切換到電池當電池電壓超過,電池的充電狀態(tài), U1 A”-”端電壓大于“+”端的電壓輸出 U1 A,”“低水平的 Q1,接通和斷開,繼電器線圈通電時,繼電器的常閉,常開觸點斷開充電電路,充電指示燈,停止對電池進行充電,過充電保護功能實現(xiàn)[10]。

繼電器 J2 控制電路的串聯(lián)電路,放電電路工作正常。晚上當蓄電池從電池到負載,當電池電壓低于22 v,認為電池處于放電狀態(tài), U1 B電壓的電壓下面的“+”“-”,輸出”“低,和打開和關(guān)閉,繼電器線圈電源繼電器開關(guān)從封閉走向開放,過放電指示燈停止向負載供電。達到過放保護功能。

4.8 DS1302的結(jié)構(gòu)及工作原理

時序電路的功能是普遍使用的軟件定時器,定時器的設(shè)計,但缺點是定時誤差,不時修正時間的需要;另一個是電路硬件定時器,現(xiàn)在許多流行的串行時鐘,如DS1302,DS1307等,該接口電路簡單,價格低廉,使用方便,廣泛應(yīng)用[11]。DS1302是一家達拉斯的公司可以持續(xù)慢充電能力的電路,主要特征是串行數(shù)據(jù)傳輸?shù)氖褂茫梢蕴峁┛删幊屉娫闯潆姡娫幢Wo,并且可以關(guān)閉充電功能[12]。

DS1302工作電壓為2.5V~5.5V。接口與CPU同步線,三字節(jié)的RAM使用突發(fā)數(shù)據(jù)傳輸。DS1302內(nèi)部有RAM寄存器。

表4.2是DS1302的引腳功能,連接圖如圖4.4與單片機, VCC1 , VCC2作為備用電源的主電源[13]。在一般情況下,電源由主電源供電,而備用電源充電主電源,在主電源關(guān)閉,連續(xù)操作,可以保持時鐘運行。Vcc1與Vcc2較大者供電DS1302。X1和X2為振蕩源,外部的32.768kHz振蕩器。RST是片選線,輸入高電平來傳送數(shù)據(jù)。


表4.2  DS1302的管腳介紹

RST輸入有兩個功能:第一,通過控制邏輯,使移位寄存器的地址/命令序列;最后,RST提供終止字節(jié)數(shù)據(jù)傳送。如果RST設(shè)置為低電平的過程中傳播,可以終止數(shù)據(jù)傳輸,I / O針進入一個高阻抗狀態(tài)。運行用電,在 VCC ≥ 2.5 v,首先必須保持低水平。只有在SCLK為低,RST可以設(shè)置為高的水平,圖4.4scl,I / O,用1302單片機讀寫控制RST連接[14]。

         


圖4.4 1302與單片機的連接圖

4.9 存儲器AT24C02簡介

AT2402的1,2,3腳為空,4腳接地,5腳數(shù)據(jù)端,6腳時鐘端,7腳寫保護,8腳是電源。其與單片機的連接方法如圖4.5:







圖4.5 24C02與單片機連接方法

AT24C02角色在這個設(shè)計是電動記憶,是防止電源突然斷開連接,用戶的信息不丟失,存儲當前的一組信息。AT24C02是2 KB字節(jié)ATMEL公司的電力可刪除內(nèi)存芯片,由于數(shù)據(jù)和地址線AT24C02重用,使用串行數(shù)據(jù)傳輸模式,所以只有兩根電線 sci (shift 脈沖) 和 SDA 來傳輸數(shù)據(jù) (數(shù)據(jù) / 地址) 和微控制器。最低電壓為2.5 V,額定電流1 ma,靜態(tài)電流10 ua(5.5 V),芯片中的信息可以在有電源的情況下保存很長時間,并使用8英尺的保護,易于使用。

  管腳名稱

     功    能

A0、A1、A2

器件地址選擇

SDA

串行數(shù)據(jù)/地址

SCL

串行時鐘

WP

寫保護

VCC

+1.8V~6.0V工作電壓

GND













表4.3  24C02的管腳介紹

R18,R19是上拉電阻,靜態(tài)功耗可降低AT24C02。設(shè)置一個時間的信息時,系統(tǒng)會自動調(diào)用存儲過程,存儲芯片中的信息;當系統(tǒng)重新上電,自動呼叫存儲器讀取程序,信息存儲,讀取緩存單元,用于使用主程序。










  •   系統(tǒng)軟件設(shè)計
5.1 系統(tǒng)軟件設(shè)計

軟件設(shè)計主要包括初始化程序,時間設(shè)置, 1302讀寫程序, 24 C02讀寫程序,子程序,按鈕,顯示刷新子例程,Program初始化[15]。該計劃將用當前的系統(tǒng)時間相比較,時間設(shè)置,設(shè)置第二個時間間隔,并在同一時間,通過使用輸出控制信號的驅(qū)動電路來驅(qū)動。整體系統(tǒng)的程序流程圖如圖5.1所示。

如果想調(diào)整時間開關(guān)燈和1302的時間可以通過地圖按鈕手動設(shè)置在S1,S2時間開關(guān)調(diào)整,S3分別顯示1302次關(guān)鍵,具體程序流程圖如圖5.2所示。(具體程序請?zhí)砑拥礁戒浝锩妫?/p>



5.2 系統(tǒng)仿真

圖5.3 顯示1302時間光線較亮,光敏電阻的電阻值較小,從而路燈斷路,路燈熄滅。


圖5.4 顯示1302時間光線較暗,光敏電阻的電阻值較大,從而路燈亮。

圖5.5 功能鍵標志位為“1”時,顯示1302時間“時”并閃爍。此時可調(diào)節(jié)時間“時”。

圖5.6 功能鍵標志位為“2”時,顯示1302時間“分”并閃爍。此時可調(diào)節(jié)時間“分”。

圖5.7 功能鍵標志位為“3”時,顯示關(guān)路燈時間點“時”并閃爍。此時可調(diào)節(jié)關(guān)路燈時間點“時”。存上次1302時間。

圖5.8 功能鍵標志位為“4”時,顯示關(guān)路燈時間點“分”并閃爍。此時可調(diào)節(jié)關(guān)路燈時間點“分”。



圖5.9 功能鍵標志位為“5”時,顯示開路燈時間點“時”并閃爍。此時可調(diào)節(jié)關(guān)開路燈時間點“時”。存上次關(guān)路燈時間。


圖5.10 功能鍵標志位為“6”時,顯示開路燈時間點“分”并閃爍。此時可調(diào)節(jié)關(guān)開路燈時間點“分”。確定后存開路燈時間。

以下是總體電路圖放在這章的開頭,并介紹每個模塊的功能


                 






附錄(寫清楚是什么內(nèi)容)
//頭文件


  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include<math.h>
  4. #define uchar  unsigned char
  5. #define uint   unsigned int
  6. #define ulong  unsigned long
  7. #include "delay.h"
  8. #include "key.h"
  9. #include "ad.h"
  10. #include "24c02.h"
  11. #include "1602.h"
  12. #include "time.h"
  13. //功能按鍵變量
  14. uchar set=0;
  15. uint  shanshuo=0;
  16. uint light;
  17. //-------
  18. uchar openh=18;
  19. uchar openm=18;
  20. uchar closh=23;
  21. uchar closm=18;

  22. uchar cun[]={0,0,0,0};
  23. //顯示函數(shù)
  24. void xianshi0()
  25. {
  26.    num[0]=SEG7[time[2]%100/10];
  27.    num[1]=SEG7[time[2]%10]&0X7F;
  28.    num[2]=SEG7[time[1]%100/10];
  29.    num[3]=SEG7[time[1]%10];
  30. }
  31. //---------------------------------------------------------------------
  32. //---------------------------------------------------------------------
  33. //顯示設(shè)置時--1=00
  34. void xianshi1()
  35. {
  36.    num[0]=SEG7[1];
  37.    num[1]=0xb7;
  38.    shanshuo=(shanshuo+1)%80;
  39.    if(shanshuo>40){num[2]=SEG7[time[2]%100/10];num[3]=SEG7[time[2]%10];}
  40.    if(shanshuo<40){num[2]=0xff;num[3]=0xff;}
  41. }
  42. //顯示設(shè)置分--2=00
  43. void xianshi2()
  44. {
  45.    num[0]=SEG7[2];
  46.    num[1]=0xb7;
  47.    shanshuo=(shanshuo+1)%80;
  48.    if(shanshuo>40){num[2]=SEG7[time[1]%100/10];num[3]=SEG7[time[1]%10];}
  49.    if(shanshuo<40){num[2]=0xff;num[3]=0xff;}
  50. }
  51. //---------------------------------------------------------------------
  52. //---------------------------------------------------------------------
  53. //顯示設(shè)置打開時--3=00
  54. void xianshi3()
  55. {
  56.    num[0]=SEG7[3];
  57.    num[1]=0xb7;
  58.    shanshuo=(shanshuo+1)%80;
  59.    if(shanshuo>40){num[2]=SEG7[openh%100/10];num[3]=SEG7[openh%10];}
  60.    if(shanshuo<40){num[2]=0xff;num[3]=0xff;}
  61. }

  62. //顯示設(shè)置打開時--4=00
  63. void xianshi4()
  64. {
  65.    num[0]=SEG7[4];
  66.    num[1]=0xb7;
  67.    shanshuo=(shanshuo+1)%80;
  68.    if(shanshuo>40){num[2]=SEG7[openm%100/10];num[3]=SEG7[openm%10];}
  69.    if(shanshuo<40){num[2]=0xff;num[3]=0xff;}
  70. }
  71. //---------------------------------------------------------------------
  72. //---------------------------------------------------------------------
  73. //顯示設(shè)置關(guān)閉時--5=00
  74. void xianshi5()
  75. {
  76.    num[0]=SEG7[5];
  77.    num[1]=0xb7;
  78.    shanshuo=(shanshuo+1)%80;
  79.    if(shanshuo>40){num[2]=SEG7[closh%100/10];num[3]=SEG7[closh%10];}
  80.    if(shanshuo<40){num[2]=0xff;num[3]=0xff;}
  81. }

  82. //顯示設(shè)置關(guān)閉時--6=00
  83. void xianshi6()
  84. {
  85.    num[0]=SEG7[6];
  86.    num[1]=0xb7;
  87.    shanshuo=(shanshuo+1)%80;
  88.    if(shanshuo>40){num[2]=SEG7[closm%100/10];num[3]=SEG7[closm%10];}
  89.    if(shanshuo<40){num[2]=0xff;num[3]=0xff;}
  90. }
  91. //按鍵處理函數(shù)
  92. void ctrl_key()
  93. {
  94.   if(key1==0)set=(set+1)%8;              while(key1==0);
  95.   //----------------
  96.   if(set==1){if(key2==0)time[2]=(time[2]+1)%24;while(key2==0);if(key3==0)time[2]=(time[2]-1)%24;while(key3==0);}
  97.   if(set==2){if(key2==0)time[1]=(time[1]+1)%60;while(key2==0);if(key3==0)time[1]=(time[1]-1)%60;while(key3==0);}
  98.   //----------------
  99.   if(set==3){if(key2==0)openh=(openh+1)%24;while(key2==0);    if(key3==0)openh=(openh-1)%24;while(key3==0);}
  100.   if(set==4){if(key2==0)openm=(openm+1)%60;while(key2==0);    if(key3==0)openm=(openm-1)%60;while(key3==0);}
  101.   //----------------
  102.   if(set==5){if(key2==0)closh=(closh+1)%24;while(key2==0);    if(key3==0)closh=(closh-1)%24;while(key3==0);}
  103.   if(set==6){if(key2==0)closm=(closm+1)%60;while(key2==0);    if(key3==0)closm=(closm-1)%60;while(key3==0);}
  104.   //----------------

  105. }

  106. void  chuli()
  107. {
  108.   //------------------------------
  109.   //------------------------------
  110.   if(set==7)
  111.   {
  112.    ds1302_settime();
  113.    cun[0]=openh;
  114.    cun[1]=openm;
  115.    cun[2]=closh;
  116.    cun[3]=closm;
  117.    WrToROM(cun,1,4); set=0;
  118.   }
  119.   //------------------------------
  120.   //-光線-----------
  121.   if(light<60)out=led=0;else out=led=1;
  122.   //------------------------------
  123.    if((time[2]==openh)&&(time[1]==openm))out=led=0;
  124.   if((time[2]==closh)&&(time[1]==closm))out=led=1;


  125. }                                                                                                                                                                                    
  126. //主函數(shù)
  127. void main()
  128. {
  129.   //初始化
  130.   ds1302_int();

  131.   RdFromROM(cun,1,4);
  132.    openh=cun[0];
  133.    openm=cun[1];
  134.    closh=cun[2];
  135.    closm=cun[3];
  136.   //-------定時器0配置
  137.   TMOD=0x01;              //方式1
  138.   //使能定時器0
  139.   ET0=1;
  140.   //定時器的初值
  141.   TH0=(65536-30000)/256;
  142.   TL0=(65536-30000)%256;
  143.   //停止開啟定時器0
  144.   TR0=1;
  145.   EA=1;
  146.   //延時函數(shù)ms
  147.   _delay_ms(1);
  148.   _delay_us(1);
  149.   while(1)
  150.   {
  151.   if(set==0)xianshi0();
  152.   if(set==1)xianshi1();
  153.   if(set==2)xianshi2();
  154.   if(set==3)xianshi3();
  155.   if(set==4)xianshi4();
  156.   if(set==5)xianshi5();
  157.   if(set==6)xianshi6();
  158.   dispaly();
  159.   ctrl_key();
  160.   chuli();
  161.   }
  162. }

  163. //----T0 計數(shù)                           
  164. void  Time0() interrupt 1
  165. {
  166.   //重裝初值30ms;
  167.   TH0=(65536-30000)/256;
  168.   TL0=(65536-30000)%256;
  169.   if(set==0)ds1302_readtime();
  170.   light=adc0832(0);
  171.   }


  172. sbit  CS= P3^2;
  173. sbit  Clk= P3^4;
  174. sbit  DATI=P3^3;
  175. sbit  DATO= P3^3;
  176. uint  dat = 0x00;      //AD值
  177. //AD轉(zhuǎn)換子程序
  178. uint adc0832(unsigned char CH)
  179. {
  180.   uchar i,test,adval;
  181.   adval = 0x00;
  182.   test = 0x00;
  183.   Clk = 0;       //初始化
  184.   DATI = 1;
  185.   _nop_();   _nop_();

  186.   CS = 0;
  187.   _nop_();
  188.   Clk = 1;
  189.   _nop_();  _nop_();

  190. if ( CH == 0x00 )      //通道選擇
  191.    {
  192.        Clk = 0;
  193.        DATI = 1;      //通道0的第一位
  194.        _nop_();
  195.        Clk = 1;
  196.        _nop_();  _nop_();

  197.        Clk = 0;
  198.        DATI = 0;      //通道0的第二位
  199.        _nop_();  _nop_();

  200.        Clk = 1;
  201.        _nop_();
  202.     }
  203.     else
  204.     {
  205.        Clk = 0;
  206.        DATI = 1;      //通道1的第一位
  207.         _nop_();  _nop_();

  208.        Clk = 1;
  209.         _nop_();  _nop_();

  210.        Clk = 0;
  211.        DATI = 1;      //通道1的第二位
  212.       _nop_();
  213.       Clk = 1;
  214.       _nop_();
  215.     }
  216.       Clk = 0;   _nop_();

  217.       DATI = 1;
  218.    for( i = 0;i < 8;i++ )      //讀取前8位的值
  219.     {
  220.        _nop_();
  221.        adval <<= 1;
  222.        Clk = 1;
  223.        _nop_();  _nop_();

  224.        Clk = 0;                 _nop_();

  225.        if (DATO)
  226.           adval |= 0x01;
  227.       else
  228.           adval |= 0x00;
  229.     }
  230.   for (i = 0; i < 8; i++)      //讀取后8位的值
  231.       {
  232.            test >>= 1;
  233.            if (DATO)
  234.               test |= 0x80;
  235.            else
  236.               test |= 0x00;
  237.           _nop_();
  238.           Clk = 1;
  239.           _nop_();  _nop_();

  240.           Clk = 0;   _nop_();

  241.       }
  242. //比較前8位與后8位的值,如果不相同舍去。
  243.   if (adval == test)   
  244.      dat = test;
  245.      _nop_();  _nop_();

  246.      CS = 1;        //釋放ADC0832
  247.      DATO = 1;
  248.      Clk = 1;

  249.      return dat;

  250. }


  251. //------------------------------------
  252. #define at89c_51
  253. //-----------------------------------
  254. //--------------at89c_51-------------
  255. #ifdef  at89c_51
  256. #define at89c_51
  257. sbit     SDA=P1^7 ;
  258. sbit     SCL=P1^6 ;
  259. #define  SCL_1          SCL=1
  260. #define  SCL_0                       SCL=0

  261. #define  SDA_1          SDA=1
  262. #define  SDA_0          SDA=0

  263. #define  AddWr        0xa0                    //器件地址選擇及寫標志
  264. #define  AddRd        0xa1                              //器件地址選擇及讀標志
  265. void Nop()                              //空操作
  266. {
  267.   _nop_();
  268.   _nop_();
  269.   _nop_();
  270.   _nop_();
  271. }
  272. #endif
  273. //延時函數(shù)ms
  274. #ifdef  atmega_16
  275. #define atmega_16
  276. void Nop()                              //空操作

  277. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼


word格式的完整文檔下載地址:http://www.zg4o1577.cn/bbs/dpj-83421-1.html
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:62391 發(fā)表于 2018-3-25 23:32 | 只看該作者
有源程序嗎
回復(fù)

使用道具 舉報

板凳
ID:303672 發(fā)表于 2018-4-8 14:37 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲欧美日韩精品专区 | www日本高清 | 亚洲xxxxx | 久久久久成人精品 | 久久视频免费看 | av在线一区二区三区 | 日韩免费一区二区 | 亚洲精品久久久久中文字幕欢迎你 | 亚洲欧美日韩在线不卡 | 欧美一区二区三区在线看 | 日本黄视频在线观看 | av免费成人| 天天av天天好逼 | 国产免费一区二区三区 | 日韩在线视频一区二区三区 | 久久久精品在线 | 国产精品99久久久久久www | 国产精品久久久久久久久免费相片 | 国产精品视频在线播放 | 天天干狠狠干 | 成人免费一区二区 | 欧美在线a | 国产精品视频播放 | 精品国产乱码久久久久久闺蜜 | 女同久久 | www.99热| 国产成人久久久 | 国产精品一区在线观看你懂的 | 韩国av网站在线观看 | 日日摸天天添天天添破 | 一本一道久久a久久精品综合 | 天天操 夜夜操 | 成人免费淫片aa视频免费 | 一区二区三区四区电影视频在线观看 | 精品欧美乱码久久久久久1区2区 | 精品九九 | 中文字幕亚洲精品 | 婷婷久久网 | 久久久国产精品网站 | 欧美黄视频 | 国产精品久久久久免费 |