版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 第1章 緒 論1</b></p><p> 1.1單片機(jī)的概念1</p><p
2、> 1.2 單片機(jī)的工作過程2</p><p> 1.3單片機(jī)的發(fā)展3</p><p> 1.4 本文研究的內(nèi)容及意義3</p><p> 1.5 設(shè)計指標(biāo)4</p><p> 1.6本課題的主要工作4</p><p> 第2章 路燈用電分配裝置的硬件設(shè)計5</p><
3、p> 2.1 用電量的分配原理5</p><p> 2.2 方案的選擇與論證6</p><p> 2.3 主控單片機(jī)芯片的選擇和介紹7</p><p> 2.3.1 AT89C52的概述及功能特性8</p><p> 2.3.2 時鐘電路11</p><p> 2.3. 3 芯片擦除12&
4、lt;/p><p> 2.3.4 復(fù)位電路12</p><p> 2. 4 路燈按鈕電路的設(shè)計13</p><p> 2.5光耦合隔離電路14</p><p> 2.6 執(zhí)行分配的繼電器電路的設(shè)計15</p><p> 2.7數(shù)碼管顯示電路設(shè)計15</p><p> 2.8 系
5、統(tǒng)可靠性問題的設(shè)計16</p><p> 2.8.1長期運(yùn)行需要考慮的安全性問題16</p><p> 2.8.2看門狗電路設(shè)計17</p><p> 第3章 軟件設(shè)計19</p><p> 3.1 主程序流程圖及分析19</p><p> 3.2 中斷子程序流程圖及分析20</p>
6、<p> 3.2.1定時器子程序流程圖及分析20</p><p> 3.2.2外部中斷子程序流程圖及程序22</p><p> 3.2.3數(shù)碼管顯示子程序及分析24</p><p> 3.3 總程序24</p><p> 第4章 抗干擾設(shè)計30</p><p> 4.1干擾產(chǎn)生的原因
7、30</p><p> 4.1.1干擾源30</p><p> 4.1.2干擾傳輸途徑30</p><p> 4.2抗干擾設(shè)計31</p><p><b> 結(jié) 論33</b></p><p><b> 參考文獻(xiàn)34</b></p><
8、;p><b> 致 謝35</b></p><p> 附錄B 程序清單36</p><p><b> 摘 要</b></p><p> 隨著住房制度改革的深入,越來越多的居民買了商品房,原來的單位住宅樓的公用路燈費(fèi)用是由單位出資的,而商品住宅樓內(nèi)的居民來自不同的單位,要不要安裝路燈?安裝路燈后費(fèi)用如何解
9、決?“住宅公用路燈用電量分配裝置”是為了解決商品住宅樓內(nèi)公用路燈的收繳費(fèi)用問題。住宅小區(qū)的建設(shè)水平日益提高,需要規(guī)劃設(shè)計合理、功能齊全、配套完善,而且環(huán)境優(yōu)美,這樣會深受城市居民的喜愛,其中住宅小區(qū)的路燈對小區(qū)作用尤其是夜間照明的作用越來越受到人們的重視。隨之而來的問題是,原來單位住宅樓是由單位安裝路燈并由單位負(fù)責(zé)繳費(fèi)的,樓內(nèi)居住的單位職工不用擔(dān)心沒路燈和收繳費(fèi)用的問題;而商品樓內(nèi)的住戶來自不同的單位,要不要安裝路燈?裝了路燈后費(fèi)用如何
10、收?。窟@就出現(xiàn)了所謂的路燈問題。此裝置的設(shè)計包括系統(tǒng)硬件框圖結(jié)構(gòu),部分主要功能模塊(單片機(jī)芯片AT89C52,復(fù)位及看門狗電路 MAX813L,繼電器接口電路,數(shù)碼管顯示電路等組成)和單元電路,軟件編程思想及設(shè)計中應(yīng)考慮和解決的幾個主要問題。系統(tǒng)以AT89C52單片機(jī)為核心,利用其指令來實(shí)現(xiàn)對住宅公用路燈用電量的自動分配. 住宅公用路燈用電量分配裝置具有低功耗;可靠性;安全性;低成本等特點(diǎn)</p><p&g
11、t; 關(guān)鍵詞:單片機(jī);看門狗;繼電器電路</p><p><b> Abstract</b></p><p> With the developing of the house system , more and more people have bought the commodity apartment, the cost of street lamp wa
12、s pay by the unit in the past, but the people in the commodity are coming from different places. Do they need the street lamp and how to pay the cost for everyone ? " the power consumption of public street lamp of
13、 the house distributes the device " can solve all of them . The design includes the systematic hardware block diagram structure, some main function module (th</p><p> KeyWords: microcomput
14、er;watchdog timer ;relay interface circuit</p><p><b> 第1章 緒 論</b></p><p> 1.1單片機(jī)的概念 </p><p> 單片微型計算機(jī)簡稱單片機(jī),是典型的嵌入式微控制器Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被
15、用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。 </p><p> 單片機(jī)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講
16、就是把中央處理器CPU(Central Processing Unit)、存儲器(Memory)、定時器、I/0(Input/Output)接口電路等一些計算機(jī)的主要功能部件集成在一塊集成電路芯片上的微型計算機(jī)。它的體積小、質(zhì)量輕、價格便宜,為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機(jī)是了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。雖然單片機(jī)只是一個芯片,但從組合和功能上看,它已具有微型計算機(jī)系統(tǒng)的含義。單片機(jī)把微型計算機(jī)的各主要部分集成在
17、一塊芯片上,大大縮短了系統(tǒng)內(nèi)信號傳送距離,從而提高了系統(tǒng)的可靠性及運(yùn)行速度。因而在工業(yè)測控領(lǐng)域中,單片機(jī)系統(tǒng)是最理想的控制系統(tǒng)。所以,單片機(jī)是典型的嵌人式系統(tǒng),是嵌入式系統(tǒng)低端應(yīng)用的最佳選擇[2]。</p><p> 由于單片機(jī)的這種結(jié)構(gòu)形式及它所采取的半導(dǎo)體工藝,使其具有很多顯著的特點(diǎn),因而在各個領(lǐng)域都得到了迅猛的發(fā)展。單片機(jī)主要有如下特點(diǎn): </p><p> ?。?)有優(yōu)異的性能價
18、格比。 (2)集成度高、體積小、有很高的可靠性。單片機(jī)把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對于強(qiáng)磁場環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。 </p><p> ?。?)控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有極豐富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。單片機(jī)的邏輯控制功能及運(yùn)行速度
19、均高于同一檔次的微機(jī)。 </p><p> ?。?)低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。 </p><p> ?。?)外部總線增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行總線方式,進(jìn)一步縮小了體積,簡化了結(jié)構(gòu)。 </p><p> (6)單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、規(guī)
20、范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。 由此來看,單片機(jī)有著一般微處理器(CPU)芯片所不具備的功能,它可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。然而單片機(jī)又不同于單板機(jī)(一種將微處理器芯片、存儲器芯片、輸入輸出接口芯片安裝在同一塊印制電路板上的微型計算機(jī)),單片機(jī)芯片在沒有開發(fā)前,它只是具備功能極強(qiáng)的超大規(guī)模集成電路,如果對它進(jìn)行應(yīng)用開發(fā),它便是一個小型的微型計算機(jī)控制系統(tǒng),但它與單板機(jī)或個人電腦(PC
21、機(jī))有著本質(zhì)的區(qū)別[2]。</p><p> 不同的單片機(jī)有著不同的硬件特征和軟件特征,即它們的技術(shù)特征均不盡相同,硬件特征取決于單片機(jī)芯片的內(nèi)部結(jié)構(gòu),用戶要使用某種單片機(jī),必須了解該型產(chǎn)品是否滿足需要的功能和應(yīng)用系統(tǒng)所要求的特性指標(biāo)。這里的技術(shù)特征包括功能特性、控制特性和電氣特性等等,這些信息需要從生產(chǎn)廠商的技術(shù)手冊中得到。軟件特征是指指令系統(tǒng)特性和開發(fā)支持環(huán)境,指令特性即我們熟悉的單片機(jī)的尋址方式,數(shù)據(jù)處理
22、和邏輯處理方式,輸入輸出特性及對電源的要求等等。開發(fā)支持的環(huán)境包括指令的兼容及可移植性,支持軟件(包含可支持開發(fā)應(yīng)用程序的軟件資源)及硬件資源。要利用某型號單片機(jī)開發(fā)自己的應(yīng)用系統(tǒng),掌握其結(jié)構(gòu)特征和技術(shù)特征是必須的。</p><p> 1.2 單片機(jī)的工作過程</p><p> 單片機(jī)自動完成賦予它的任務(wù)的過程,也就是單片機(jī)執(zhí)行程序的過程,即一條條執(zhí)行的指令的過程,所謂指令就是把要求單
23、片機(jī)執(zhí)行的各種操作用的命令的形式寫下來,這是在設(shè)計人員賦予它的指令系統(tǒng)所決定的,一條指令對應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。為使單片機(jī)能自動完成某一特定任務(wù),必須把要解決的問題編成一系列指令(這些指令必須是選定單片機(jī)能識別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓
24、房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然后再被執(zhí)行。 </p><p> 程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,單片機(jī)在執(zhí)行程序時要能把這些指令一條條取出并加
25、以執(zhí)行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數(shù)器PC(包含在CPU中),在開始執(zhí)行程序時,給PC賦以程序中第一條指令所在的地址,然后取得每一條要執(zhí)行的命令,PC在中的內(nèi)容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執(zhí)行。 </p><p><b> 1.3單片機(jī)的發(fā)展</b></p><p>
26、 1946年第一臺電子計算機(jī)誕生至今,依靠微電子技術(shù)和半導(dǎo)體技術(shù)的進(jìn)步,從電子管——晶體管——集成電路——大規(guī)模集成電路,使得計算機(jī)體積更小,功能更強(qiáng)。特別是近20年時間里,計算機(jī)技術(shù)獲得飛速的發(fā)展,計算機(jī)在工農(nóng)業(yè),科研,教育,國防和航空航天領(lǐng)域獲得了廣泛的應(yīng)用,計算機(jī)技術(shù)已經(jīng)是一個國家現(xiàn)代科技水平的重要標(biāo)志。20世紀(jì)70午代,微電子技術(shù)正處于發(fā)展階段,集成電路屬于中規(guī)模發(fā)展時期,各種新材料新工藝尚未成熟,單片機(jī)仍處在初級的發(fā)展階段,元
27、件集成規(guī)模還比較小,功能比較簡單,一般均把CPU、RAM有的還包括了一些簡單的I/O口集成到芯片上.到了80年代初,單片機(jī)已發(fā)展到了高性能階段,在MCS-48探索成功的基礎(chǔ)上很快推出了完善的、典型的單片機(jī)系列MCS-5l。MCS-51系列單片機(jī)的推出,標(biāo)志Single Chip Microcomputer體系結(jié)構(gòu)的完善。雖然它仍是8位的單片機(jī),但是其功能卻有很大的增強(qiáng)。不但擁有完善的總線結(jié)構(gòu)(8位數(shù)據(jù)總線、16位地址總線及相應(yīng)的控制總線
28、,通信總線,擴(kuò)展總線)還有完善的指令系統(tǒng)[1]。8位單片機(jī)之后,16位單片機(jī)也有很大的發(fā)展,如1983年Intel公司推出</p><p> 1.4 本文研究的內(nèi)容及意義</p><p> 本文主要研究的是住宅小區(qū)中公用路燈用電量的分配裝置。隨著人民生活水平的提高和住房制度改革的深入,越來越多的居民買了商品房,住進(jìn)了商品住宅樓。住宅小區(qū)的建設(shè)水平也在日益提高,不僅規(guī)劃設(shè)計合理、功能齊全
29、、配套完善,而且環(huán)境優(yōu)美,深受城市居民的喜愛,其中住宅小區(qū)的路燈對小區(qū)作用尤其是夜間照明的作用越來越受到人們的重視。隨之而來的問題是,原來單位住宅樓是由單位安裝路燈并由單位負(fù)責(zé)繳費(fèi)的,樓內(nèi)居住的單位職工不用擔(dān)心沒路燈和收繳費(fèi)用的問題;而商品樓內(nèi)的住戶來自不同的單位,要不要安裝路燈?裝了路燈后費(fèi)用如何收取?這就出現(xiàn)了所謂的路燈問題。為什么呢?因?yàn)槭紫劝惭b路燈不便利,其次安裝路燈后費(fèi)用收繳不方便。很多城市已經(jīng)普及了1戶1表,小區(qū)的路燈用電從
30、哪里來?對于以上的問題,目前往往采用2個辦法解決:其一是為每個樓道路燈接一電表,但次方法需要根據(jù)電表度數(shù)人工分?jǐn)偅腥松祥T挨戶定期收費(fèi),十分不方便;另外一是把樓道路燈接入樓到內(nèi)某住戶電表,大概估算后由各住戶協(xié)商出資,但此方法容易引起糾紛。</p><p> 鑒于以上情況,樓道路燈問題正日益成為住房商品化后的一大難題。住宅公用路燈用電量分配裝置正是為了徹底解決樓道路燈的費(fèi)用分擔(dān)問題而設(shè)計的。采用該裝置后,樓道路燈
31、的電費(fèi)能自動分?jǐn)偟阶舾髯缘碾姳韮?nèi),解決了住戶的后顧之憂,給生活帶來了便利[3]。</p><p><b> 1.5 設(shè)計指標(biāo)</b></p><p> 設(shè)計住宅小區(qū)公用路燈用電量分配裝置的技術(shù)指標(biāo)如下:</p><p> 1.系統(tǒng)采用單片機(jī)作為控制器;</p><p> 2.裝置能夠解決電費(fèi)自動分?jǐn)偟阶舾髯噪?/p>
32、表中;</p><p> 3. 根據(jù)環(huán)境照度控制是否需要路燈;</p><p> 4. 要求系統(tǒng)在死機(jī)狀態(tài)下能自動復(fù)位,恢復(fù)正常工作。</p><p> 1.6本課題的主要工作</p><p> 詳細(xì)分析課題任務(wù),對單片機(jī)在用電量分配原理應(yīng)用這方面進(jìn)行深入的研究,結(jié)合所學(xué)的知識根據(jù)課題任務(wù)設(shè)計出實(shí)現(xiàn)公用路燈的硬件原理圖和軟件,達(dá)到設(shè)計
33、的要求。全文將分為四章。</p><p> 第一章緒論,先簡要介紹單片機(jī)的概況及住宅公用路燈分配裝置的現(xiàn)狀,再介紹本文的主要工作。</p><p> 第二章硬件設(shè)計部分,主要介紹了系統(tǒng)硬件設(shè)計的基本結(jié)構(gòu)和各部分器件的說明。</p><p> 第三章軟件設(shè)計,分為2個部分,一部分是分析流程,一部分是軟件編程。</p><p> 第四章是
34、抗干擾設(shè)計,介紹了采用硬件和軟件結(jié)合的方式盡可能降低干擾。</p><p> 最后是結(jié)論、參考文獻(xiàn)、致謝及目錄。</p><p> 第2章 路燈用電分配裝置的硬件設(shè)計</p><p> 2.1 用電量的分配原理</p><p> 住宅公用路燈用電量分配裝置主要解決電費(fèi)自動分?jǐn)倖栴},下面討論電費(fèi)分配原理。 眾所周知,電費(fèi)是按照用電度數(shù)
35、×每度單位電費(fèi)計算的。因此,在某種意義上說,電費(fèi)即用電量(度數(shù)),而用電量即電能=功率×小時(即時間),所以在電器功率一定的前提下,電費(fèi)的分配就是時間的分配問題,也就是說,每戶承擔(dān)一定時間的路燈供電任務(wù)。住宅公用路燈用電量分配裝置的電費(fèi)分配就是用電量的分配,其原理圖如圖2.1所示。只要分時依次控制開關(guān)S1、S2 …Sn接通,即可實(shí)現(xiàn)所有的路燈用電量的分?jǐn)?。這里關(guān)鍵是各開關(guān)的控制問題,要求每次上個開關(guān)斷開后,下個開關(guān)接
36、通,并在任何時刻只允許有一個開關(guān)處于接通狀態(tài).假設(shè)電費(fèi)用F表示,電價用J表示,用電度用W表示,路燈功率用P表示(KW),點(diǎn)燈總時間用t表示(h),則各物理量之間的關(guān)系為:F=W×J,W=P×t</p><p> 如果有n住戶分?jǐn)傠娰M(fèi),則每戶所承擔(dān)的電費(fèi)F1=F/n=W×J/n=P×t×J/n=P×(t/n)×J[3]</p>&
37、lt;p> 圖2.1 用電量分配原理圖</p><p> 2.2 方案的選擇與論證</p><p> 方案一:采用單片機(jī)為主的設(shè)計方案。該方案主要由四部分構(gòu)成:;一是單片機(jī)AT89C52系統(tǒng),這是整個系統(tǒng)的核心部分,用戶輪流承擔(dān)路燈點(diǎn)亮的任務(wù)由單片機(jī)的指令來實(shí)現(xiàn)完成。二是繼電器接口電路,電量通過此電路平均分?jǐn)偟礁饔脩綦姳碇?。三是看門狗電路,它作用是使單片機(jī)進(jìn)入復(fù)位狀態(tài),使之從
38、故障中解脫出來[8]。四是數(shù)碼管顯示電路。它作用是使每個用戶輪流供電時間顯示出來。系統(tǒng)原理框圖如下圖2.2</p><p> 圖2.2方案一的原理框圖</p><p> 方案二:采用PLC為主要控制器的設(shè)計方案,原理圖如下圖2.3所示。</p><p> 以PLC控制器為主,輔以光電傳感器,放大器,A/D轉(zhuǎn)換器組成,整個電路工作原理是:由光電傳感器檢測光線亮度
39、從而決定是否使用路燈,亮度模擬信號經(jīng)放大器放大和A/D轉(zhuǎn)換成數(shù)字信號傳給PLC,最后由PLC將用電量平均分配到用戶電表[15]。</p><p> 按照用電量分配原理和分配裝置的用途,在設(shè)計系統(tǒng)方案時至少要考慮以下一些因素:</p><p> 功能因素。本分配裝置的主要功能是樓道路燈用電量的自動分?jǐn)?,但同時也必須考慮其它一些附加功能。</p><p> 成本因
40、素。普通電表或者各種電子計量電表的價格相對較低,每個樓道必須安裝一個此分配裝置,因此,必須要考慮住戶的心里接受傾向,生產(chǎn)成本不能太高,最好與普通電表接近。這樣才能為住戶所認(rèn)可,才有市場推廣價值。</p><p> 性能因素:1)可靠性,必須能可靠實(shí)現(xiàn)電量的分配,同時必須確保不會因?yàn)橥饨绺蓴_引起誤動作等;2)安全性,主要是指裝置本身的安全運(yùn)行和路燈使用者的安全方面,即裝置本身不會出現(xiàn)過熱燒毀等問題及使用者不會觸電
41、等;3)實(shí)用性,裝置的選取需是常見的元件器材,在發(fā)生故障時維修起來也比較方便;4)低功耗,因?yàn)樵撗b置在公用電網(wǎng)中,作為一個電子裝置本身一定要耗能;但功耗過高,則電力部門每年承擔(dān)的電力損失就會非常大,也會影響產(chǎn)品應(yīng)用[11]。</p><p> 從節(jié)省能源這方面來看,方案二的PLC要一直處與工作狀態(tài),消耗大量的電能來時刻監(jiān)視系統(tǒng)的運(yùn)行,而方案一采用的單片機(jī)系統(tǒng)自帶了待機(jī)功能,在使用的時候才處于正常工作狀態(tài),此外大
42、多數(shù)時間是待機(jī)狀態(tài),消耗的電能極少,可以說是低功耗系統(tǒng)。從實(shí)現(xiàn)功能來說,兩個方案都能達(dá)到基本的功能,但是采用PLC控制器的系統(tǒng)實(shí)現(xiàn)的功能多,然而本設(shè)計主要是達(dá)到基本的功能就行,其它功能可以省略,沒必要多花錢去增加額外的功能。從成本方面來比較,方案二的投資較大,相比下方案一采用單片機(jī)控制的系統(tǒng)投資成本小。住宅小區(qū)的用戶來自不同單位的人,如果公用設(shè)備投資過高,會給用戶帶來經(jīng)濟(jì)方面的壓力,公用設(shè)備應(yīng)盡量采用信價比高的元件,所以在考慮成本這方面
43、,方案一的可行度高。從操作性來說,PLC控制需要有人在旁邊操作和輸入程序,而單片機(jī)幾乎實(shí)現(xiàn)全自動化,無須有關(guān)人員操作。采用單片機(jī)的系統(tǒng)維護(hù)起來也比PLC控制系統(tǒng)方便和便宜?;谏鲜鲈颍罱K確定采用方案一。</p><p> 2.3 主控單片機(jī)芯片的選擇和介紹</p><p> 單片機(jī)的選型從以下幾個方面考慮:</p><p> 1.單片機(jī)的系統(tǒng)適應(yīng)性。適應(yīng)性
44、指單片機(jī)能否完成應(yīng)用系統(tǒng)的控制功能,它主要從以下幾個方面體現(xiàn):</p><p> ?。?)單片機(jī)的CPU是否有合適的處理能力。</p><p> ?。?)單片機(jī)是否有系統(tǒng)所需要的I/O端口數(shù)。</p><p> (3)單片機(jī)是否含有系統(tǒng)所需的中斷源和定時器。</p><p> ?。?)單片機(jī)片內(nèi)是否有系統(tǒng)所需的外接口。</p>
45、<p> ?。?)單片機(jī)的極限性能是否能夠滿足要求。</p><p> 2. 單片機(jī)的市場供應(yīng)情況。</p><p> 3. 單片機(jī)的可開發(fā)性[9]。</p><p> 本方案最大特點(diǎn)在于核心控制芯片的選擇,采用AT89C52單片機(jī),利用AT89C52的掉電工作方式,構(gòu)成高可靠、低功耗系統(tǒng)方法。AT89C52的采用有很多方面的優(yōu)勢。用AT89C52
46、作為控制核心的設(shè)計大多在性能上要求很高。原因在于,在一些應(yīng)用場合,單片機(jī)并不是每時每刻都在工作,而是多數(shù)時間處于守候狀態(tài) 。為使單片機(jī)系統(tǒng)工作更省電、更可靠,我們可以使單片機(jī)在不工作時處于掉電工作方式,其工作狀態(tài)被凍結(jié),如AT89C52處于掉電工作方式時耗電僅十幾微安。此外,AT89C52設(shè)有穩(wěn)態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍工作。在掉電模式下,保存RAM的內(nèi)容
47、并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。另外考慮到在調(diào)試過程中實(shí)驗(yàn)器材的現(xiàn)實(shí)情況,該系統(tǒng)選選用AT89C52單片機(jī)為主控芯片。</p><p> 2.3.1 AT89C52的概述及功能特性 </p><p> AT89C52是美國ATMEL公司生產(chǎn)的低電壓、高性能COMS 8位單片機(jī),片內(nèi)含8K bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和256
48、bytes 的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強(qiáng)大的AT89C52適用在許多高性價比的場合,可靈活應(yīng)用于各種控制領(lǐng)域[6]。</p><p><b> 主要性能參數(shù):</b></p><p> 與MCS—51產(chǎn)品指令系統(tǒng)完全兼容<
49、;/p><p> 8k字節(jié)可重擦寫Flash閃速存儲器</p><p><b> 1000次擦寫周期</b></p><p> 全靜態(tài)操作:0Hz—24MHz</p><p> 256x8bit內(nèi)部RAM; </p><p> 32個可編程I/O口線</p><p>
50、 3個16位可編程定時/計數(shù)器中斷;</p><p> 2個外部中斷源,共8個中斷源;</p><p> 2個串行中斷,可編程UART串行通道;</p><p> 低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能</p><p><b> 功能特性概述:</b></p><p> AT89
51、C2051提供以下標(biāo)準(zhǔn)功能:兼容MCS51指令系統(tǒng), 8k可反復(fù)擦寫(大于1000次)Flash ROM,32個雙向I/O口,256x8bit內(nèi)部RAM,3個16位可編程定時/計數(shù)器中斷,時鐘頻率0-24MHz,2個串行中斷,可編程UART串行通道,2個外部中斷源,共8個中斷源,2個讀寫中斷口線,3級加密位,低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能,有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求[18]
52、。</p><p> 引腳功能說明:圖2.4是AT89C2051的引腳結(jié)構(gòu)圖,有雙列直插封裝(DIP)方式和方行封裝方式。下面介紹這些引腳。</p><p> 圖2.4AT89C52引腳圖</p><p> 準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功
53、能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計中,P0 端口(32~39 腳)被
54、定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進(jìn)入的控制功能。 </p><p><b> (1)P0 口</b></p>&
55、lt;p> P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用.在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時,P0 口接收指令字節(jié),而在程序校驗(yàn)時,輸出指令字節(jié),校驗(yàn)時,要求外接上拉電阻。 </p>
56、<p><b> (2)P1口</b></p><p> P1 是一個帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51 不同之處是,P1.0 和P
57、1.1 還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX), </p><p><b> (3)P2 口</b></p><p> P2 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作
58、輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL).在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI 指令)時,P2 口輸出P2 鎖存器的內(nèi)容.Flash 編程或校驗(yàn)時,P2亦接收高位地址和一些控制信號。 </p><p><b> (4)
59、P3 口</b></p><p> P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL).P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能 .P3 口還接收一些用于Flash 閃速存儲器編程和程序
60、校驗(yàn)的控制信號。 </p><p><b> (5)RST</b></p><p> 復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 </p><p> (6)ALE/PROG</p><p> 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位
61、字節(jié)。一般情況下,ALE 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE 脈沖.對Flash 存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條 MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程
62、序時,應(yīng)設(shè)置ALE 禁止位無效。 </p><p><b> (7)PSEN</b></p><p> 程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。 </p><p>&
63、lt;b> (8)EA/VPP</b></p><p> 外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài).如EA端為高電平(接Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲器中的指令.Flash 存儲器編程時,該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是
64、使用12V 編程電壓Vpp。 </p><p><b> (9)XTAL1</b></p><p> 振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 </p><p><b> (10)XTAL2</b></p><p> 振蕩器反相放大器的輸出端。</p><p>
65、 (11)Vcc:電源電壓</p><p> (12)GND:接地端</p><p> 2.3.2 時鐘電路</p><p> 振蕩電路和單片機(jī)內(nèi)部的時鐘電路共同構(gòu)成了單片機(jī)的時鐘方式。AT89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,單片機(jī)引腳XTAL1和XTAL2分別是放大器的輸入和輸出端。放大器與作為反饋組件的片外晶體或陶瓷諧振器一切構(gòu)成一個自激
66、振蕩器。</p><p> 單片機(jī)的時鐘產(chǎn)生方法有兩種,一種是內(nèi)部時鐘方式,另一種是外部時鐘方式。設(shè)計中選用的是內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振電路。單片機(jī)片內(nèi)振蕩器的時鐘電路如圖2.5所示。</p><p> 圖2.5中選擇12MHz的振蕩晶體,兩只電容器取值27PF。則單片機(jī)的4個周期的具體數(shù)值分別是:</p><p>
67、 振蕩周期=1/12μs;</p><p> 時鐘周期=1/6μs;</p><p><b> 機(jī)器周期=1μs;</b></p><p> 指令周期=1~4μs。</p><p> 片內(nèi)時鐘電路在設(shè)計時應(yīng)注意晶體和電容器應(yīng)盡可能地靠近單片機(jī)芯片,以減少寄生電容,保證振蕩器穩(wěn)定可靠的工作。 </p>
68、<p> 圖2.5 主控芯片設(shè)計圖</p><p> 2.3. 3 芯片擦除</p><p> 整個EPROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89C52設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯
69、,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止。</p><p> 2.3.4 復(fù)位電路</p><p> 單片機(jī)應(yīng)用系統(tǒng)工作時,會經(jīng)常要求進(jìn)入復(fù)位工作狀態(tài),所以復(fù)位電路要求能準(zhǔn)確可靠地工作,而且單片機(jī)的復(fù)位狀態(tài)與應(yīng)用系統(tǒng)的復(fù)位狀態(tài)是
70、密切相關(guān)的。單片機(jī)的復(fù)位都是靠外部電路實(shí)現(xiàn)的。</p><p> 在時鐘電路工作后,只要在單片機(jī)的RST腳上出現(xiàn)24個時鐘振蕩脈沖以上的高電平,單片機(jī)便可實(shí)現(xiàn)初始化狀態(tài)復(fù)位。為了保證系統(tǒng)可靠地復(fù)位,在設(shè)計復(fù)位電路時,通常使RST引腳保持10ms以上的高電平。只要RST保持高電平,單片機(jī)就循環(huán)復(fù)位;當(dāng)RST從高電平變?yōu)榈碗娖揭院?,單片機(jī)就從0000H地址開始執(zhí)行程序。在單片機(jī)復(fù)位的有效期間,ALE、PSEN引腳輸
71、出高電平。</p><p> 單片機(jī)的通常采用上電自動復(fù)位和按鍵復(fù)位兩種方式。設(shè)計中選用上電自動復(fù)位方式,由“看門狗”電路實(shí)現(xiàn)。如圖2.6看門狗電路。</p><p><b> 圖2.6看門狗電路</b></p><p> 2. 4 路燈按鈕電路的設(shè)計</p><p> 是為了方便物業(yè)控制供電,每個用戶的供電時間
72、由物業(yè)操縱,如果沒有此電路,將會帶來很多不便,并且不會實(shí)現(xiàn)均攤供電的效果。</p><p> 按鈕共有3個,一個是“上”按鈕,一個是“下”按鈕,還有一個是“確定”按鈕。假設(shè)每個用戶供電10S的時間,當(dāng)按下“上”操作按鈕時,每個用戶輪流的供電時間增加,當(dāng)達(dá)到了需要的輪流時間時,按下“確定”按鈕;當(dāng)按下“下”操作按鈕時,每個用戶輪流供電時間減少,當(dāng)達(dá)到了需要的輪流時間時,按下“確定”按鈕,這樣每個用戶的供電時間就會
73、得到相應(yīng)的改變。如圖2.7所示。</p><p><b> 圖2.7按鍵電路圖</b></p><p> 2.5光耦合隔離電路</p><p> 光耦合器TLP521-2是一個光電耦合器件,它是把發(fā)光把發(fā)光器件(如發(fā)光二極管)和光敏器件(如光敏三極管)組裝在一起,通過光線實(shí)現(xiàn)耦合構(gòu)成電一光和光一電的轉(zhuǎn)換器件。TLP521-2芯片的內(nèi)部結(jié)構(gòu)
74、圖如下圖2.8所示。當(dāng)電信號送入光電耦合器的輸入端時,發(fā)光二極管通過電流而發(fā)光,光敏器件受到光照后產(chǎn)生電流導(dǎo)通,當(dāng)輸入無信號時,發(fā)光二極管不兩,光敏電阻截止。使用光電耦合器時,輸入部分和輸出部分必須分別采用獨(dú)立的電源,如果兩端共用一個電源,則光電耦合器件的隔離將失去意義。</p><p> 光電耦合器主要是用來隔離輸入輸出的,主要是隔離輸入信號。因?yàn)樵诟鞣N應(yīng)用電路中,往往有一些信號需要傳輸?shù)娇刂破鳎绻麑⑦@些
75、信號接到單片機(jī)上,會有以下問題:信號不匹配,輸入信號可能是交流信號、高壓信號、按鍵等干接點(diǎn)信號;比較長的接連線路容易引進(jìn)干擾、雷電、感應(yīng)電磁等。不經(jīng)常過隔離不可靠,所以信號需要光耦進(jìn)行隔離接入單片機(jī)。選用TLP521-2的原因是因?yàn)檫@芯片便宜而且功能達(dá)到我們設(shè)計的要求。 圖</p><p> 2.6 執(zhí)行分配的繼電器電路的設(shè)計</p><p> 本裝置設(shè)計的樓道住戶為12戶,符合國
76、內(nèi)大多數(shù)住宅樓每個樓道12戶(6×2)的要求;因此,分別由12路繼電器擔(dān)當(dāng)個住戶分時供電的切換功能。繼電器線圈分別由US1~US12驅(qū)動,繼電器動合觸電的一端接每個住戶的用戶側(cè)相線L1~L12,另一側(cè)并接作為路燈的相線LINE[16]。設(shè)計電路如圖2.9所示。</p><p> 繼電器電路動作設(shè)計的關(guān)鍵是繼電器觸電合、斷的延時時間,必須考慮繼電器的動作有一定時滯;否則,會出現(xiàn)上個繼電器尚未徹底斷開,下
77、一個繼電器已經(jīng)動合的現(xiàn)象,使得系統(tǒng)分配精度出現(xiàn)較大的誤差,甚至不能正常分配。</p><p> 繼電器中的線圈為感性負(fù)載,在電路分?jǐn)鄷r,電感存儲的能量會使電路分?jǐn)嗬щy,所產(chǎn)生的電火花的劇烈變化向空間輻射電磁波,從而可能改變單片機(jī)的I/O口電平,造成單片機(jī)輸出的不正常變化。為此,本設(shè)計在繼電器的常開觸頭并聯(lián)了阻容吸收電路,以減少觸頭間電火花能量,減少誤動作的概率。</p><p> 2.
78、7數(shù)碼管顯示電路設(shè)計</p><p> 數(shù)碼管是一種常用的顯示設(shè)備終端,具有成本低,設(shè)計簡單的優(yōu)點(diǎn),因此被廣泛的應(yīng)用在數(shù)字系統(tǒng)設(shè)計中.此處使用的是共陽的數(shù)碼管顯示,顯示出的是每個用戶輪流供電的時間.如圖2.10所示。</p><p> 圖2.10數(shù)碼管顯示電路設(shè)計圖</p><p> 2.8 系統(tǒng)可靠性問題的設(shè)計</p><p> 該
79、系統(tǒng)用在長期連續(xù)工作且無人監(jiān)控的狀態(tài)下,因此必須十分重視系統(tǒng)的可靠性問題。在本設(shè)計中,主要考慮了系統(tǒng)死機(jī)后的自恢復(fù)問題和系統(tǒng)能不能保持長年累月的運(yùn)行。</p><p> 為了解決這些問題,設(shè)計中是通過系統(tǒng)的監(jiān)視定時器(即看門狗電路“WDT”)以及元器件的合理選用等方面來實(shí)現(xiàn)的。</p><p> 2.8.1長期運(yùn)行需要考慮的安全性問題</p><p> 由于該
80、裝置長期運(yùn)行狀況,因此必須考慮裝置本身的安全性問題和裝置安全性引發(fā)的其它諸如人身安全性、住宅樓安全性等問題。這里的關(guān)鍵是要保證裝置本身的安全性。以下從幾個方面進(jìn)行簡要闡述。</p><p> 裝置的功耗和散熱問題是連在一起的,只有降低功耗,才能減少裝置的發(fā)熱,也才能從根本上解決散熱問題。關(guān)于功耗問題,前面已經(jīng)作了專門討論,這里只說明一點(diǎn):三端穩(wěn)壓器和變壓器均緊貼在裝置的金屬外殼上,以金屬外殼作為一個大散熱體。由
81、于此裝置一般安裝在配電箱內(nèi),而配電箱一般又是金屬外殼,這樣又可促進(jìn)散熱,從外界解決了散熱問題。</p><p> 由于裝置本身的元件失效導(dǎo)致系統(tǒng)過流,引發(fā)電力火災(zāi)等,這個問題比較容易解決。只要在裝置的電源進(jìn)線上串接快速熔斷器,就足以保證避免此類現(xiàn)象的發(fā)生。</p><p> 有些時候市電的波動會比較大,可能因?yàn)殡妷哼^高而造成器件的損壞,如果在器件外面添加過電壓保護(hù)電路,就能使器件得到保
82、護(hù)。本裝置采用了過電壓保護(hù)電路來實(shí)現(xiàn)對器件的保護(hù)。在正常的情況下,通過互感器L1和L2的電流大小相等,方向相反,合成磁場為0。所以L3上無感生電流,晶閘管上沒有觸發(fā)電流而截止;如果過壓或者發(fā)生漏電,L1與L2之間的電流就不平衡,于是合磁場就不為0,L3就產(chǎn)生感生電流。產(chǎn)生的感生電流經(jīng)過電阻Rw流入晶閘管而使其導(dǎo)通,接觸器線圈得電使其常閉觸點(diǎn)斷開,達(dá)到過壓保護(hù)。即保護(hù)了器件的目的,也可以保障人身的安全。</p><p&
83、gt; 2.8.2看門狗電路設(shè)計</p><p> 看門狗電路主要選用了MAX813L。這種電源監(jiān)視器件的功耗很低,主要功能有3個:復(fù)位;電源電壓監(jiān)視;看門狗定時器[17]。設(shè)計原理如圖2.11所示</p><p> 圖2.11看門狗電路設(shè)計圖</p><p> MAX813L實(shí)質(zhì)上是一個可使微處理器復(fù)位或者產(chǎn)生中斷請求的定時器,使其輸出端與單片機(jī)的復(fù)位端(
84、RESET)相連。這樣就形成了硬件的看門狗技術(shù)。</p><p> 看門狗的設(shè)計使用目的是作為微處理器的一個監(jiān)控者。微處理器在運(yùn)行中會受到各種各樣的干擾,如電源及空間電磁干擾,當(dāng)它們超過抗干擾極限的時候,就有可能引起微處理器死機(jī)。尤其在單片機(jī)的應(yīng)用環(huán)境中,更容易受到復(fù)雜干擾源的干擾影響。有了看門狗這個監(jiān)控,就能夠在單片機(jī)死機(jī)后,重新使它復(fù)位恢復(fù)運(yùn)行。</p><p> MAX813L引
85、腳圖如圖2.12所示:</p><p> 工作電源(VCC):接+5V電源。</p><p> 電源接地端(GND):接地。</p><p> 電源故障輸入端(PFI):當(dāng)該端輸入低于1.25V時,5號引腳輸出端的信號由高電平變?yōu)榈碗娖健?lt;/p><p> 電源故障輸出端(PFO):電源正常時,保持高電平,電源電壓變低或掉電時,輸出由
86、高電平變?yōu)榈碗娖健?lt;/p><p> 看門狗信號輸入端(WDL):程序正常運(yùn)行時,必須在小于1.6s的時間間隔內(nèi)向該輸入端發(fā)送一個脈沖信號,以清除芯片內(nèi)部的看門狗定時器。若超過1.6s該輸入端收不到脈沖信號,則內(nèi)部定時器溢出。</p><p> 復(fù)位信號輸出端(RST):上電時,自動產(chǎn)生200ms的復(fù)位脈沖;手動復(fù)位端輸入低電平時,該端也產(chǎn)生復(fù)位信號輸出。</p><
87、;p> 看門狗信號輸出端:正常工作時輸出保持高電平,看門狗輸出時,該端輸出信號由高電平變?yōu)榈碗娖健?lt;/p><p><b> 第3章 軟件設(shè)計</b></p><p> 本文的軟件設(shè)計包括主程序的設(shè)計以及Time0Interrupt中斷,Interrupt1中斷子程序,數(shù)碼管顯示子程序設(shè)計4部分。</p><p> 3.1 主程序
88、流程圖及分析</p><p> 在本系統(tǒng)中,軟件的功能主要是實(shí)現(xiàn)繼電器電路的切換。圖3.1是系統(tǒng)分配裝置的主程序流程圖。</p><p> 圖3.1主程序流程圖</p><p> 系統(tǒng)的初始化包含了以下的內(nèi)容:</p><p> 編寫實(shí)現(xiàn)初始化內(nèi)容的程序如下:</p><p> void InitSystem
89、(void)</p><p><b> {</b></p><p> EA=0;//關(guān)閉所有中斷 </p><p> DecoderG1=1;//使譯碼器失效繼電器全部關(guān)閉</p><p> SwitchTime=10;//初始化時設(shè)定每10s轉(zhuǎn)換一次用戶<
90、/p><p> SetFlag=0;//設(shè)置標(biāo)記位置零</p><p> DecoderState=0;//設(shè)置譯碼器初始狀態(tài)</p><p> IT1=0;//外部中斷1由低電平觸發(fā) </p><p> PT0=1;//將定時器0中斷設(shè)為高優(yōu)先級 </p><p> TMOD=0x01;//
91、設(shè)定定時器0工作在方式1</p><p> TH0=19456/256;//11.0592MHz</p><p> TL0=19456%256; </p><p> ET0=1;//使能T0中斷 </p><p> EX1=1;//使能外部中斷1
92、 </p><p> EA=1;//開啟總中斷 </p><p> DecoderG1=0;//譯碼器使能</p><p> TR0=1;//定時器0開始定時 }</p><p> 3.2 中斷子程序流程圖及分析
93、</p><p> 3.2.1定時器子程序流程圖及分析</p><p> 當(dāng)系統(tǒng)檢測到外部有路燈啟動按鍵按下時,進(jìn)入外部中斷0并且關(guān)閉所有中斷。經(jīng)過延時15ms去抖后判斷P3.2是否為低電平,如果為低則進(jìn)入下一步;如果為高則退出中斷子程序。先是用戶1點(diǎn)亮5s后,延時15ms以便繼電器切換,接著用戶2電亮路燈5s后延時15ms,用戶3點(diǎn)亮路燈......如此循環(huán)下去.流程圖如下圖3.2所
94、示。</p><p> 圖3.2定時器子程序流程圖</p><p><b> 定時器子程序?yàn)?lt;/b></p><p> void Time0Interrupt (void) interrupt 1 using 1</p><p><b> {</b></p><p>
95、 static unsigned int TimeCount=0;</p><p> EA=0;//關(guān)閉所有中斷 </p><p> TR0=0;//停止定時器 </p><p> TimeCount++; 中斷次數(shù) </p&g
96、t;<p> if(TimeCount==SwitchTime*20) </p><p><b> {</b></p><p> TimeCount=0;//時間計數(shù)清空</p><p> if(DecoderState==0x0F)//到最后一個狀態(tài)清零 </p><p> Decod
97、erState=0; </p><p><b> else</b></p><p> DecoderState++;</p><p> DecoderG1=1;//改變譯碼器狀態(tài) </p><p> DecoderA=DecoderState^0;</p><p> Decoder
98、B=DecoderState^1; </p><p> DecoderC=DecoderState^2;</p><p> DecoderD=DecoderState^3;</p><p> DecoderG1=0;</p><p><b> }</b></p><p> TH0
99、=19456/256;//重裝數(shù) 定時50ms </p><p> TL0=19456%256;</p><p> EA=1;//開啟總中斷 </p><p> TR0=1;//開啟定時器 </p><p><
100、;b> }</b></p><p> 3.2.2外部中斷子程序流程圖及程序</p><p> 此中斷子程序是控制按鍵的</p><p><b> 外部中斷子程序?yàn)?lt;/b></p><p> void Interrupt1(void) interrupt 2 using 2</p>
101、<p><b> {</b></p><p> EX1=0;//外部中斷1禁止</p><p> if(SetFlag!=0)</p><p><b> {</b></p><p> if(SwUp==0&&SwitchTime!=99) </p>
102、<p> SwitchTime++;</p><p> else if(SwUp==0&&SwitchTime==99)</p><p> SwitchTime=0;</p><p> else if(SwDown==0&&SwitchTime!=0)</p><p> SwitchTi
103、me--;</p><p> else if(SwDown==0&&SwitchTime==0)</p><p> SwitchTime=99;</p><p><b> }</b></p><p> if(SwSet==0)</p><p> SetFlag=~SetF
104、lag; </p><p> LEDShow(SwitchTime);</p><p> EX1=1;//重開中斷1</p><p><b> }</b></p><p><b> 流程圖如圖3.3.</b></p><p> 圖3.3中斷子程序流程圖<
105、/p><p> 3.2.3數(shù)碼管顯示子程序及分析</p><p> 數(shù)碼管是一種常用的顯示設(shè)備終端,具有成本低,設(shè)計簡單的優(yōu)點(diǎn),因此被廣泛的應(yīng)用在數(shù)字系統(tǒng)設(shè)計中.此處是一個共陽的數(shù)碼管顯示電路,顯示的是每個用戶輪流給路燈供電的時間.</p><p><b> 數(shù)碼管顯示子程序?yàn)?lt;/b></p><p> void L
106、EDShow(char SwitchTime)</p><p><b> { </b></p><p> unsigned char BitTime,TenTime,i,k; </p><p> BitTime=SwitchTime%10;</p><p> TenTime=(SwitchTime
107、-BitTime)/10; </p><p> k=LEDTab[BitTime];</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> LEDClk=0; </p><p> LEDData=k&0x01;
108、 </p><p><b> k>>=1;</b></p><p><b> LEDClk=1;</b></p><p><b> }</b></p><p> k=LEDTab[TenTime];</p><p> for
109、(i=0;i<8;i++)</p><p><b> {</b></p><p><b> LEDClk=0;</b></p><p> LEDData= k&0x01;</p><p><b> k>>=1;</b></p>&
110、lt;p><b> LEDClk=1;</b></p><p><b> }</b></p><p><b> } </b></p><p><b> 3.3 總程序</b></p><p> #include "reg51.h&
111、quot;包含頭文件</p><p> /****端口定義****/</p><p> sbit DecoderA=P0^3;</p><p> sbit DecoderB=P0^2;</p><p> sbit DecoderC=P0^1;</p><p> sbit DecoderD=P0^0;</
112、p><p> sbit DecoderG1=P0^4;</p><p> sbit SwUp=P0^5;</p><p> sbit SwDown=P0^6;</p><p> sbit SwSet=P0^7;</p><p> sbit LEDData=P2^7;</p><p> s
113、bit LEDClk=P2^6;</p><p> sbit WDI=P1^0;看門狗芯片</p><p> /****全局變量定義****/</p><p> char SwitchTime;</p><p> char bdata DecoderState; </p><p> char SetFlag;
114、 </p><p> unsigned char code </p><p> LEDTab[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p> /****函數(shù)聲明****/</p><p> void InitSystem(void); </p
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 用電量多元回歸模型畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-景觀路燈
- led路燈畢業(yè)設(shè)計
- 空心杯電機(jī)塑料尾蓋裝配裝置設(shè)計【畢業(yè)設(shè)計】
- 畢業(yè)設(shè)計---某框架多層住宅結(jié)構(gòu)畢業(yè)設(shè)計
- 備用電源投入自動裝置畢業(yè)設(shè)計
- 民用住宅畢業(yè)設(shè)計
- 住宅建筑畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-家用電餅鐺設(shè)計
- 備用電源投入自動裝置畢業(yè)設(shè)計
- 畢業(yè)設(shè)計 路燈控制系統(tǒng)
- 路燈控制畢業(yè)設(shè)計開題報告
- 太陽能路燈畢業(yè)設(shè)計
- 太陽能路燈畢業(yè)設(shè)計
- 太陽能路燈畢業(yè)設(shè)計
- 太陽能路燈系統(tǒng)設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----路燈控制系統(tǒng)的設(shè)計
- 住宅樓設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-智能路燈控制器設(shè)計
- 高層塔式住宅畢業(yè)設(shè)計
評論
0/150
提交評論