【正文】
4 引言 照明工程迅猛發(fā)展,其路燈數(shù)量的增大,而且功耗和性能大大提高,因而對路燈定時器控制的要求比較精確 . 目前,對路燈控制方法多為“人工控制”和“光控”。前者會造成巨大的電能浪費,后者會損害城市形象、影響社會治安和交通安全,從而影響城市的投資環(huán)境。而照明管理的高低又將直接影響到城市的市容、投資環(huán)境、交通安全和社會治安等,這些都是構(gòu)建良好的城市環(huán)境的重要組成部份,對城市的建設(shè)和發(fā)展有著重要的意義。路燈管理工作需要一個以計算機為核心的、自動化的管理手段來替代傳統(tǒng)的路燈監(jiān)控系統(tǒng)。因此,建設(shè)現(xiàn)代化的“路燈監(jiān)控管理系統(tǒng)”已迫在眉睫。因此,它具有體積小、使用靈活、成本低、易于產(chǎn)品化、抗干擾能力強、可在各種惡劣環(huán)境下可靠地工作等特點。 本設(shè)計中正是運用單片機的 AT89C51作為主控芯片設(shè)計的路燈控制系統(tǒng)。該控制系統(tǒng)體積小,適用與校園、 街道、小區(qū)等各種場所的路燈控制,可以最大限度的滿足人們的生活需要。 本設(shè)計的最大優(yōu)點在于不影響路燈照明的情況下,達到了節(jié)能的效果,在同樣設(shè)備的路燈中,可以節(jié)約一半的電能,起到環(huán)保的作用。該復(fù)位電路簡單易行,但缺點是在遇到較強干擾或瞬間斷電時,復(fù)位端電容充放電特性變化,往往電源低至 RAM區(qū)數(shù)據(jù)不能保持時,復(fù)位端上仍儲有相當?shù)碾姾?,致使電源電壓恢?fù)時復(fù)位端不能產(chǎn)生復(fù)位信號而出現(xiàn)“死機”或“程序跑飛”。 [1] 方案二:看門狗復(fù)位電路,在“死機”或“程序跑飛”時,對系統(tǒng)進行重新置位或者復(fù)位,以使系統(tǒng)恢復(fù)正常運行的一種專門電路。 用于復(fù)位精度要求較高的設(shè)計中。 2. 2 主控模塊 方案一:采用 AT89C2051芯片,它體積小,管腳少, 沒有提供外部擴展存儲器與 I/O設(shè)備所需的地址、數(shù)據(jù)、控制信號 ,因此利用 AT89C2051構(gòu)成的單片機應(yīng)用系統(tǒng)不能在 AT89C2051 之外擴展存儲器或I/O設(shè)備 。 方案二:采用 AT89C51芯片,具有 AT89C2051的所有功能,管腳充足, AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持 兩種軟件可選的掉電模式。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。 主控模塊 按鍵模塊 顯示模塊 電源模塊 6 結(jié)合設(shè)計要求,我選擇方案二 2. 3 按鍵輸入模塊 對按鍵處理的重要環(huán)節(jié)是去抖動 ,即 去 除按下和抬起瞬間的抖動 。 [3]可以采用硬件消抖和軟件消抖兩種方式,在本設(shè)計中采用的是軟件的延遲法來對按鍵消抖。 它可視面積大,畫面好,抗干擾能力強,可以節(jié)省軟件中斷資源,其缺點是顯示內(nèi)容需要存儲字模信息,需要一定存儲空間。 用發(fā)光二極管(簡稱 LED)組成的字形來顯示數(shù)字,七個條形發(fā)光二極管排列成七段組合字型,便構(gòu)成了半導(dǎo)體數(shù)碼管。當共陰極數(shù)碼管的某一陽極接高電平時,相應(yīng)的二極管發(fā)光,根據(jù)字形使某幾段二極管發(fā)光,所以共陰極數(shù)碼管需要輸出高電平有效的譯碼器來驅(qū) 動。 LED數(shù)碼顯示器有兩種控制方式,即靜態(tài)數(shù)據(jù)鎖存方式和動態(tài)掃描顯示。動態(tài)掃描顯示,就是讓各位數(shù)碼管按照一定順序輪流顯示,其主要優(yōu)點是能顯著降低顯示器的功耗,并能大大減少顯示器的外部接線。 [4] 3 系統(tǒng)硬件設(shè)計 3. 1 總體思路 在設(shè)計路燈系統(tǒng)控制器之前,先了解系統(tǒng)所要實現(xiàn)的各個功能情 況。這樣才能達到設(shè)計的實際要求,硬件支持軟件,軟件帶動硬件。最基本的程序是時鐘顯示程序,之后的設(shè)定開燈和關(guān)燈時間并能對路燈進行實時控制以及對路燈的點控都是在基本程序上擴展而得到的。所以對對按鍵的控制顯得尤為重要了。其中在按鍵掃描時要進行去抖動控制 ,這一功能在軟件中進行實現(xiàn)。 3. 2 各模塊電路圖 3. 2. 1 復(fù)位模塊電路設(shè)計 單片機的復(fù)位都是靠外部電路來實現(xiàn)的。因此 ,要想保證單片機能夠可靠的復(fù)位 ,在應(yīng)用系統(tǒng)的電路設(shè)計中 ,就要使 RST 引腳保持 10ns 以上的高電平 ,使AT89C51能循環(huán)到復(fù)位狀態(tài)。 圖 31復(fù)位電路 3. 2. 2 主控模塊電路設(shè)計 采用的 AT89C51芯片對整個系統(tǒng)進行控制,其中 P0口控制數(shù)碼管的 7段的亮暗情況, P2口控制選擇數(shù)碼管的位數(shù), P3 口用于控制調(diào)時指示燈, P1 口用于按鍵輸入的控制及路燈開關(guān)控制。 8 圖 32 AT89C51芯片管腳 3. 2. 3 按鍵輸入模塊電路設(shè)計 整個按鍵輸入模塊集中在對時間的調(diào)節(jié)和手動開關(guān)燈上,設(shè)計圖如圖 33示。 圖 33 按鍵輸入電路 3. 2. 4 顯示模塊電路設(shè)計 ( 1)數(shù)碼管顯示電路設(shè)計 設(shè)計中采用兩個四位數(shù)碼管并排來顯示 6位時間,通過單片機的 P0、 P2口同時控制數(shù)碼管的工作, 9 并在 PO口與數(shù)碼管間接上拉電阻對數(shù)碼管進行保護,同時 也增加了數(shù)碼管的亮度,電路如圖 34所示。另外兩個發(fā)光二極管是路燈指示燈,分別代表兩路路燈,如圖 36示。其中,動態(tài)顯示是在中斷子程序中進行的,每一次中斷的時間為 2MS,每中斷一次掃描一次,實現(xiàn)動態(tài)顯示。主程序流程圖如圖 41示。下面我簡述一下定時器的一些基礎(chǔ)知識。它們既可用作定時器方式,又可用作計數(shù)器方式。 在作定時器使用時,輸入的時鐘脈沖是由晶體振蕩器的輸出經(jīng) 12 分頻后得到的,所以定時器也可看作是對計算機機器周期的計數(shù)器(因為每個機器周期包含 12個振蕩周期,故每一個機器周期定時器加 1,可以把輸入的時鐘脈沖看成機器周期信號)。如果晶振頻率為 12MHZ,則定時器每接收一個輸入脈沖的時間為 1us。用指令改變 TMOD或 TCON的內(nèi)容后,則在下一條置定時器 1 初值, 打開定時器 1 1 秒鐘定時到,秒加 1 秒數(shù)到 60 秒? 秒數(shù)為 0,分鐘數(shù)加 1 分鐘數(shù)到 60? 分鐘數(shù)為 0,小時數(shù)加 1 小時數(shù)到 24,小時、分鐘、秒都清零 返回 Y N N N Y Y 12 指令的第一個機器周期的 S1P1時起作用。在中斷子程序中放進了顯示程序,中斷時間為 2MS,可以實現(xiàn)數(shù)碼管的動態(tài)掃描且無閃爍感。 4. 3 中斷程序設(shè)計 所謂中斷 ,是指在計算機執(zhí)行程序過程中 ,當出現(xiàn)某種情況 ,如發(fā)生停電和其他情況時 ,由服務(wù)對象向 CPU發(fā)出中斷請求信號 ,要求 CPU暫時中斷當前程序的執(zhí)行 ,而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序 ,待處理程序執(zhí)行完畢后 ,再繼續(xù)處理執(zhí)行原來被中斷的程序 中斷子程序能實現(xiàn)時鐘自動走時功能,從而實現(xiàn)倒計時的運行,在程序設(shè)計的過程中有著重要的作用。 C語言編寫的程序有許多優(yōu)越性:( 1)不懂得單片機的指令集,也能夠編寫完美的單片機程序;( 2)無須懂得單片機的具體硬件,也能夠編出符合硬件實際的專業(yè)水平的程序;( 3) C語言對數(shù)據(jù)進行了許多專業(yè)處理,避免了運行中間異步的破壞等。 5. 2 硬件及總體電路調(diào)試 根據(jù)原理 圖及 PCB圖制作電路板,焊接完成后,把程序燒寫到 AT89C51中,把芯片插到電路中,接入 5V電源,數(shù)碼管顯示 120210并開始正常走時,這時通過按鍵部分調(diào)節(jié)當前時間、開燈時間和關(guān)燈時間。如果沒有設(shè)定開關(guān)燈時間,路燈則在 180000時開啟, 060000時熄滅。 系統(tǒng)改進方案 在本設(shè)計中首先存在不足的是斷電保護,為了在斷電的情況下系統(tǒng)也能夠正常工作,在電源供電方面進行改進:用一組備用電池與電源并聯(lián),通過繼電器連接。本設(shè)計中讓繼電器的常閉觸電一端與電源相連接,另一端與備用電池相連接,當正常通電情況下,繼電器斷開,使備用電池斷開,系統(tǒng)由電源供電,當電源斷電,繼 電器閉合,系統(tǒng)由備用電池供電,這樣系統(tǒng)就可以在電源斷電的情況下也能正常工作。該模塊由光敏二極管為核心元件,通過光敏二極管對光線的采集,反饋給單片機,再由單片機來控制路燈的開關(guān)。在點亮或熄滅狀態(tài)下仍受原來系統(tǒng)的控制。 6 結(jié)束語 為期一個多月的畢業(yè)設(shè)計即將結(jié)束了,在這一個月里我在同學和老師的幫助下完成了路燈控制系統(tǒng)的設(shè)計。以前的所做的一些設(shè)計主要是根據(jù)相關(guān)的課本及老師所給資料去完成的,有一定的參照性,所以相對而言比較簡單,不能完全達到鍛煉自己動手能力的目的。并對我們?nèi)绾胃鶕?jù)要做的課題對現(xiàn)有的資料進行理解和運用 的能力的考核。 從剛確定畢業(yè)設(shè)計課題以來,我首先是查找一些相關(guān)的書籍及資料,然后分析設(shè)計,并根據(jù)實際情況擬定設(shè)計方案,從而達到優(yōu)化方案。同時,通過這次畢業(yè)設(shè)計,我們在各個方面都有了很大的提高,特別是在理論和實踐結(jié)合方面使我們受益匪淺,使大學里學習的理 14 論知識在根本上得到一次最完整的實踐和提高。 同時,在本次畢業(yè)設(shè)計中深深認識到自己的各個方面的不足之處,本著提高動手能力以及檢測四年所學知識的目的,我嚴格要求自己,每一環(huán)節(jié)都認真對待,定期向知道老師報告進展情況和請教不懂的地方,得以完成任務(wù)。由于環(huán)境條件的影響,理論與實踐還是有一定的差距,這也要求我們在實踐中注意檢驗的積累。在我讀書的四年中,物理與機電工程學院的老師們對我的學習、生活給予了很大的幫助。 同時我還要感謝實驗室的所有的老師,在畢業(yè)設(shè)計的進展中,他們給了我很多的關(guān)心和幫助,為我們創(chuàng)造一個良好的研究學習環(huán)境。 在此,祝他們在未來的歲月里生活幸福!我將努力工作,用所學到的知識為社會服務(wù),以出色的工作成績來 回報學校、老師和家人。 Electrical engineering Profession:Electronic information engineering Number:2021040202 Author:Chen Juan Teacher:Zhang Wei Ping 【 Abstract】 The street lamp control system for the needs of the actual situation to optimize the design. In the design, using the time switch button control, LED digital display is the six tubes and five lightemitting diode, the time for the normal 24hour travel time can be opened from time to time adjust buttons to control. LED to show when the state transferred control of street lamps and simulation, so the more figurative designs. The design system of hours, minutes and seconds to adjust the switch to control the state of street lamps, and 23 o39。 when the day cycle of the past can continue to control and use lightemitting diodes to simulate the display. 【 Keyword】 Singlechip Street Lights Energy Saving Control System 16 附錄一:系統(tǒng)總體原理圖 附錄二:元器件清單 器件名稱 器件型號 數(shù)量 單片機 AC89C51 1 晶振 12M 1 四聯(lián)數(shù)碼管 共陰型 2 發(fā)光二極管 5 按鍵 5 磁介電容 30pf 2 104 2 電解電容 470uf 2 22uf 1 電阻 1K 5 470 歐 5 200 歐 1 排阻 511 1 電源 5V 1 17 附錄三:源程序 include unsigned char code changled[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f}。//用來顯示用的 unsigned char guandeng[3]。//燈 開燈的時間 unsigned char present_time[3]。//燈關(guān)小的時間 unsigned char flash=0。//T1中斷次數(shù)計算 40*20=1秒 unsigned char flash_cs=0。//燈關(guān)小一點的控制 sbit xiaodeng =P1^5。//調(diào)整燈關(guān)開暗的狀態(tài) bit enablebit=0。 sbit P1_0 =P1^0。 sbit P1_2 =P1^2。 /////調(diào)整時間 1為調(diào)整目前的時間, 2為調(diào)整關(guān)燈時間, 3為調(diào)整秒 void change_data(unsigned char i) { unsigned char x,change。 change=x/100。 led[0]=x/10change*10。 led[1]=(unsigned char)(xchange*100led[0