版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
紅綠燈控制系統(tǒng)的設(shè)計與制作摘要摘要隨著城市化的不斷進步,交通問題逐漸成為人們?nèi)找骊P(guān)注的熱點,因此如何制定一套完善的紅綠燈控制系統(tǒng),是實現(xiàn)交通順暢的重要保障。本人設(shè)計主要采用AT89C51單片機作為核心器件,設(shè)計一套紅綠燈控制系統(tǒng),并通過系統(tǒng)調(diào)試,實現(xiàn)設(shè)計的運作。該系統(tǒng)具備輕便、安裝簡單、可操作性強、實用性高等優(yōu)點,適合多種情況使用。本設(shè)計基于AT89C51單片機的紅綠燈控制系統(tǒng),其中有兩個LED數(shù)碼顯示管,采用的是模塊化的設(shè)計方法,主要的模塊包括單片機模塊,發(fā)光二極管模塊,控制模塊,以及顯示模塊等等。運用KEILuVision4編譯系統(tǒng)進行軟件編程,生成目標代碼,并下載到單片機當中,實現(xiàn)軟硬件相結(jié)合,最終實現(xiàn)了本系統(tǒng)所需要實現(xiàn)的功能。關(guān)鍵詞:紅綠燈;單片機;數(shù)碼管;KEILuVision4目錄目錄TOC\o"1-3"\h\u摘要 第一章引言 1.1研究背景及意義 1.2研究內(nèi)容 第二章系統(tǒng)設(shè)計方案 2.1總體方案 2.2總設(shè)計圖 2.3設(shè)計方案分析 2.3.1倒計時顯示界面 2.3.2紅綠燈 第三章硬件系統(tǒng)設(shè)計 3.1單片機的選擇 3.2最小系統(tǒng)設(shè)計 3.2.1復(fù)位電路 3.2.2振蕩電路 3.3顯示設(shè)計 3.4發(fā)光二極管模擬紅綠燈 3.5按鍵模擬 第四章系統(tǒng)軟件設(shè)計 4.1軟件編譯環(huán)境測試 4.1.1C語言介紹 4.1.2KeiluVision4介紹 4.2系統(tǒng)總體設(shè)計 第五章系統(tǒng)調(diào)試及實物制作 5.1系統(tǒng)調(diào)試 5.2實物制作流程 總結(jié)與展望 參考文獻 致謝 附件:原理圖和程序清單 第一章引言第一章引言1.1研究背景及意義隨著時代不斷的發(fā)展,人們逐漸意識到,要想提升城市化的管理水平,就必須要做好城市交通管理,而城市交通管理的關(guān)鍵在于紅綠燈控制系統(tǒng)的應(yīng)用方面。紅綠燈控制系統(tǒng)的設(shè)計是一個十分復(fù)雜的過程,紅綠燈系統(tǒng)之間的協(xié)調(diào)不僅僅局限于某一個路口之間,更重要的是整個區(qū)域之間每一個道路系統(tǒng)的整體性配合。從紅綠燈開始出現(xiàn)到如今,經(jīng)歷多種發(fā)展階段。目前為止,紅綠燈控制系統(tǒng)已經(jīng)形成了一個完善的機制,對交通起到了有效的維護作用。倘若在每一個交通路口都需要安排交警來進行交通的維護,那么不僅僅會浪費人力資源,同時還存在人工監(jiān)管方面的缺陷,所以這種方法并不能減少交通事故的產(chǎn)生,因此有必要設(shè)計一個以單片機為核心的紅綠燈控制系統(tǒng),實現(xiàn)自動化控制,具備較強的社會意義和價值。1.2研究內(nèi)容根據(jù)課題的要求進行紅綠燈控制系統(tǒng)的硬件設(shè)計和軟件編程,并完成實物的制作與調(diào)試。章節(jié)內(nèi)容為:第一章:主要介紹了本文的研究背景和意義,以及研究內(nèi)容。第二部:主要介紹了系統(tǒng)的設(shè)計方案,如何來完成紅綠燈控制系統(tǒng)。第三章:主要介紹了系統(tǒng)的硬件設(shè)計,單片機的型號選擇,各電路模塊的硬件搭建,模塊設(shè)計包含了單片機最小系統(tǒng)、顯示模塊、按鍵模塊。第四章:主要介紹了編程系統(tǒng)的使用,采用了KEILuVision4軟件作為編程軟件完成系統(tǒng)程序的設(shè)計和編譯。第五章:主要介紹了系統(tǒng)的調(diào)試過程,在實際制作遇到的一些問題和實物制作的流程,最后寫了總結(jié)與展望,以及對老師的感謝。第二章系統(tǒng)設(shè)計方案第二章系統(tǒng)設(shè)計方案2.1總體方案本文的紅綠燈控制系統(tǒng)主要有單片機,交通顯示以及數(shù)碼管顯示等部分組成,除了基本的維護交通的作用之外,還擁有倒計時的功能。在一個十字路口,每一個干道都配備紅綠燈,不僅如此,每個路口也有左轉(zhuǎn)向燈,與執(zhí)行分離。該系統(tǒng)設(shè)置的紅綠燈間隔時間為60秒,分三種工作狀態(tài),分別是正常、繁忙以及特殊。在正常狀態(tài)之下,首先是南北通行,時間為40秒,當時間到數(shù)到5秒時,南北直行燈轉(zhuǎn)為黃燈,此后轉(zhuǎn)變?yōu)樽筠D(zhuǎn)向燈,時間為20秒,當?shù)箶?shù)到第5秒時,左轉(zhuǎn)燈轉(zhuǎn)變?yōu)辄S燈0秒后開始東西直行,時間為40秒,當時間到5秒,開始變?yōu)樽筠D(zhuǎn)向燈,時間為20秒,倒數(shù)到5秒之后開始變成黃燈,然后又是南北通行。緊急模式之下,禁止直行和左轉(zhuǎn),四個方向全為紅燈。特殊模式之下,四個方向全為黃燈,夜間通行。運用單片機的定時計數(shù)器中斷系統(tǒng)實現(xiàn)倒計時,其中倒計時工作通過計時器進行控制,每過0.05秒中斷一次,第20次恰好過了1秒,這個時候便實現(xiàn)了倒計時的目的。2.2總設(shè)計圖圖2.1總設(shè)計圖2.3設(shè)計方案分析本文的設(shè)計系統(tǒng)主要分為倒計時,紅綠燈以及控制模塊,主要希望可以試想一下基本功能,首先是時間的顯示,以及時間的倒數(shù)功能,其次是紅綠燈之間的相互轉(zhuǎn)換,然后是南北直行,東西直行,南北左轉(zhuǎn),東西左轉(zhuǎn)四種模式的切換。系統(tǒng)硬件圖如下所示。圖2.2系統(tǒng)整體框架圖2.3.1倒計時顯示界面系統(tǒng)主要需要完成倒計時的功能以及狀態(tài)燈的轉(zhuǎn)化功能,所以我們主要有兩種方案的選擇。第一種是完全使用數(shù)碼管,這種顯示方法比較簡單,并且程序設(shè)計起來比較簡單,需要的端口較少。第二種方法采用點陣式的LED顯示,這種方法比較復(fù)雜,并且需要設(shè)計復(fù)雜的軟件設(shè)計,但是功能比較完善,可以顯示各種圖形和字符。經(jīng)過方案的對比,在本次畢業(yè)設(shè)計當中,由于實驗情況,實驗素材以及成本的限制,我們決定采用第一種數(shù)碼管方案以來進行倒計時的顯示。2.3.2紅綠燈在系統(tǒng)設(shè)計當中,擬采用LED燈來模擬紅綠燈。LED具備體積小、電流小、安裝方便、使用壽命長等特點,可以使用各種電源進行供電。在使用的過程當中需要串接適合的限流電阻,才能保障其正常使用。第三章硬件系統(tǒng)設(shè)計第三章硬件系統(tǒng)設(shè)計3.1單片機的選擇AT89C51是一種帶4k字節(jié)flash可編程、可擦除的低電壓存儲器,能與傳統(tǒng)型的MCS-51指令集和輸出管角相兼容。AT89C51是一種十分高級的微型控制器,在很多嵌入式控制系統(tǒng)當中利用AT89C51,會變得十分高效便捷。如圖是其引腳圖以及內(nèi)部結(jié)構(gòu)圖。圖3.1AT89C51引腳圖及內(nèi)部結(jié)構(gòu)圖3.2最小系統(tǒng)設(shè)計單片機的最小系統(tǒng)的組成有處理數(shù)據(jù)的單片機芯片,能夠進行計時,提供晶振頻率的震蕩電路以及初始化系統(tǒng)的復(fù)位電路這三個模塊組成,如圖3.2所示圖3.2單片機最小系統(tǒng)3.2.1復(fù)位電路復(fù)位單片機的原理是一個上電復(fù)位和單片機的復(fù)位引腳外部接連的電阻器、電容器,當開啟復(fù)位電路,可以通過外部電容器充電,達成復(fù)位操作。當電源接通時,微控制器的引腳高電平降低,所述電容器在持續(xù)兩個機器周期的基礎(chǔ)上,可以實現(xiàn)微控制器的復(fù)位操作。為了實現(xiàn)手動復(fù)位,需要設(shè)置一個開關(guān)與所述電容器并聯(lián)連接。通過推動微控制器的引腳得到一個高電平。同時鑒于對電容器需要進行充電,于是保留高電平以實現(xiàn)單片機的復(fù)位。如圖是復(fù)位電路圖。圖3.3復(fù)位電路圖3.2.2振蕩電路在整個單片機系統(tǒng)當中,晶體振蕩器的作用十分的中澳,它需要整合單片機里面電路,用來創(chuàng)造單片機內(nèi)需的時鐘頻率。單片機運行的速度越快,則代表晶振創(chuàng)造的時鐘頻率越高。單片機的所有指令的執(zhí)行都是在晶振提供的時鐘頻率基礎(chǔ)之上進行的,而單片機晶振的主要功能就是給系統(tǒng)提供基本的時鐘信號,在單片機的時鐘電路設(shè)計過程當中,主要可以分為內(nèi)部時鐘方式,以及外部時鐘方式。外部時鐘方式的主要工作原理就是將外部原有的時鐘信號導入到單片機工作系統(tǒng)當中,這種外部時鐘方式更多的適用于多個單品及共同工作的狀態(tài),有利于同步每一個單片機。在這個系統(tǒng)中,使用內(nèi)部時鐘方式。單片機的內(nèi)部放大器由一個外部晶體管振蕩器和一個電容器,并聯(lián)諧振電路產(chǎn)生平穩(wěn)的自激振蕩器,其供給了振蕩時鐘的內(nèi)部時鐘電路。下圖為振蕩電路圖,它選擇的晶振為11.0592MHz和兩個22pF的電容器。圖3.4振蕩電路圖3.3顯示設(shè)計本設(shè)計采用的是將七個發(fā)光的二極管的陰極連在一起,組成一個公共陰極,在陽極端輸入高電平,就會使得發(fā)光二極管點亮,不會影響輸入低電平的發(fā)光二極管。如圖所示。圖3.5共陰極以及二位數(shù)碼管LED顯示包括靜態(tài)以及動態(tài)顯示、靜態(tài)顯示,指的是當LED顯示器顯示某一個字符的時候,其對應(yīng)的發(fā)光二極管始終處于流通或者是停滯的狀態(tài),要想實現(xiàn)靜態(tài)顯示,必須要有一個八位的輸出控口進行控制,這種顯示方法需要占用較多的資源,所以一般適合使用在較少的顯示位置,當靜態(tài)顯示的過程當中僅需要較小的電流,就可以使LED燈達到較高的亮度,因此可以通過芯片直接驅(qū)動。動態(tài)顯示是依次點亮每一個數(shù)碼管,對于顯示器來說,他有多個接口電路,所以需要兩個輸出口,才能將數(shù)碼管的段控線并聯(lián)在一起。由一個八位的I/O口進行控制,不僅如此還要有一個輸出口來實現(xiàn)信號的控制。所謂位控指的就是控制LED顯示器的公共端,位控信號的數(shù)目應(yīng)該與顯示器的個數(shù)相等,這種動態(tài)顯示的電路主要特點就是成本較低,并且電路組裝起來比靜態(tài)顯示更加方便。動態(tài)顯示和靜態(tài)顯示的主要區(qū)別在于:動態(tài)顯示方式硬件電路比較單一,而靜態(tài)顯示方式的程序比較單一。在本系統(tǒng)的設(shè)計當中,使用的是兩個二位一體的共陰數(shù)碼管,無論鏈接幾個共陰數(shù)碼管,其都是一樣的顯示原理。動態(tài)顯示方式使用的是動態(tài)掃描的手段來使數(shù)碼管變亮,盡管只能依次點亮數(shù)碼管,但是由于人員在觀察的過程當中受到暫留效應(yīng)的影響,只要間隔時間達到一定的要求,就可以在人眼中實現(xiàn)同時顯示。圖3.6二位數(shù)碼管3.4發(fā)光二極管模擬紅綠燈發(fā)光二極管屬于半導體二極管,可以把電能轉(zhuǎn)換為光能,縮寫為LED。其和普通的二極管類似,又有單向的導電性。當給發(fā)光二極管施加正電壓之后,從p區(qū)注入到N區(qū)的空穴以及從N區(qū)注入到P區(qū)的電子,在PN結(jié)附近數(shù)微米內(nèi)分別與N區(qū)的電子以及P區(qū)的空穴復(fù)合,產(chǎn)生自發(fā)輻射的熒光。不同的半導體材料擁有不同狀態(tài),電池和空穴復(fù)活的過程當中,可以產(chǎn)生不同的能量,釋放的能量越多表示,他們所散發(fā)的波長就越短。因此常常使用紅黃綠三種顏色的二極管作為紅綠燈的模擬。3.5按鍵模擬單片機鍵盤有獨立鍵盤和矩陣式鍵盤兩種:獨立鍵盤每一個I/O口上只接一個按鍵,按鍵的另一端接電源或接地(一般接地),這種接法程序比較簡單且系統(tǒng)更加穩(wěn)定;而矩陣式鍵盤式接法程序比較復(fù)雜,但是占用的I/O少。根據(jù)本設(shè)計的需要這里選用了獨立式鍵盤接法。獨立式鍵盤的實現(xiàn)方法是利用單片機I/O口讀取口的電平高低來判斷是否有鍵按下。將常開按鍵的一端接地,另一端接一個I/O口,程序開始時將此I/O口置于高電平,平時無鍵按下時I/O口保護高電平。當有鍵按下時,此I/O口與地短路迫使I/O口為低電平。按鍵釋放后,單片機內(nèi)部的上拉電阻使I/O口仍然保持高電平。我們所要做的就是在程序中查尋此I/O口的電平狀態(tài)就可以了解我們是否有按鍵動作了。在用單片機對鍵盤處理的時候涉及到了一個重要的過程,那就是鍵盤的去抖動。這里說的抖動是機械的抖動,是當鍵盤在未按到按下的臨界區(qū)產(chǎn)生的電平不穩(wěn)定正?,F(xiàn)象,并不是我們在按鍵時通過注意可以避免的。這種抖動一般10~200毫秒之間,這種不穩(wěn)定電平的抖動時間對于人來說太快了,而對于時鐘是微秒的單片機而言則是慢長的。硬件去抖動就是用部分電路對抖動部分加之處理,軟件去抖動不是去掉抖動,而是避抖動部分的時間,等鍵盤穩(wěn)定了再對其處理。所以這里選擇了軟件去抖動,實現(xiàn)法是先查尋按鍵當有低電平出現(xiàn)時立即延時10~200毫秒以避開抖動(經(jīng)典值為20毫秒),延時結(jié)束后再讀一次I/O口的值,這一次的值如果為1表示低電平的時間不到10~200毫秒,視為干擾信號。當讀出的值是0時則表示有按鍵按下,調(diào)用相應(yīng)的處理程序。硬件電路如圖3.7所示:本文設(shè)計的紅綠燈系統(tǒng)在程序開始時先實行的是南北方向的直行,東西方向顯示為60秒的紅燈,此后改為東西段直行,南北方向顯示的是60秒的紅燈,以此作為一個循環(huán)。整個系統(tǒng)分為正常,繁忙,以及特殊三種工作狀態(tài),可以通過按鈕來實現(xiàn)正常、繁忙和特殊三種狀態(tài)的相互轉(zhuǎn)換。在正常模式之下,東西方和南北方的直行時間都為40秒,左轉(zhuǎn)時間為20秒。在繁忙模式之下,東西方以及南北方的直行時間改為20秒,左轉(zhuǎn)時間為15秒,在特殊狀態(tài)之下,東西方和南北方的四個燈全為紅燈,四個路口禁止通行。如下圖是按鍵模塊的電路圖。這里的開關(guān)使用的是二極管,主要是為了避免三個線同時被按下產(chǎn)生的系統(tǒng)中斷。圖3.7按鍵模塊電路原理圖第四章系統(tǒng)軟件設(shè)計第四章系統(tǒng)軟件設(shè)計4.1軟件編譯環(huán)境測試4.1.1C語言介紹C語言是計算機程序設(shè)計語言中一種常見的語言,它的主要功能是完成計算機的系統(tǒng)程序的編寫工作,同時也可以用來一般應(yīng)用程序的編寫。在傳統(tǒng)的計算機系統(tǒng)軟件當中,主要是利用匯編語言進行程序的編寫,在單片機系統(tǒng)當中也是這樣。但是由于匯編語言的程序在各種性能方面都表現(xiàn)得較差,所以這個匯編語言編寫出來的單片機應(yīng)用程序存在周期長等缺點,并且在調(diào)試的過程當中也很難發(fā)現(xiàn)錯誤。所以為了更好地提高單片機系統(tǒng)的效率,減少整個程序的錯誤性和波動性,采用C語言是一種更好的方法。相對于其他的語言來說,C語言比較高級,同時也能對計算機的硬件進行直接的操作,無論是在計算能力還是表達能力方面都有著較高的優(yōu)點。對于傳統(tǒng)的應(yīng)用軟件當中不能用其他匯編語言解決的問題,都可以使用C語言來解決。因此不管是在功能、結(jié)構(gòu)還是穩(wěn)定性方面,C語言都是軟件編譯中的不二之選。4.1.2KeiluVision4介紹在本系統(tǒng)當中使用的調(diào)試軟件是KeiluVision4開發(fā)系統(tǒng),他是美國微軟公司出行的,適用于51單片機的C語言開發(fā)環(huán)境。該系統(tǒng)有較強的適應(yīng)性,不僅有源代碼和功能導航器的功能之外,還有獨特的配置向?qū)Чδ?,加快了代碼和文件的生成。4.2系統(tǒng)總體設(shè)計如圖4.1,是整個系統(tǒng)的流程圖。圖4.1主程序流程圖如圖4.2為定時中斷流程圖圖4.2定時中斷流程圖圖4.3外部中斷流程圖第五章系統(tǒng)調(diào)試及實物制作第五章系統(tǒng)調(diào)試及實物制作5.1系統(tǒng)調(diào)試仿真電路和程序的編寫完成我們就可以開始對系統(tǒng)進行調(diào)試,在初步的調(diào)試過程中發(fā)現(xiàn)系統(tǒng)不能如期的運行。下圖為初次運行失敗情況顯示。圖5.1運行失敗觀察仿真運行效果,發(fā)現(xiàn)LED燈全部亮起,但是數(shù)碼管不顯示時間,第一步我們先排查軟件問題,發(fā)現(xiàn)軟件系統(tǒng)提示丟失模型。圖5.2系統(tǒng)報警提示首先我們需要解決軟件問題,根據(jù)系統(tǒng)報警提示,我們首先將軟件模型補充完整,由于不是正版的軟件所以元件仿真模型可能有數(shù)據(jù)的改變,不能有效的運行,將模型更新完成后發(fā)現(xiàn)問題并不能解決。接著排查后三條報警,報警顯示為CPU運行速度慢而且在實際運行時,線路當中的電平變化非常的慢,通過百度查詢,最終得出結(jié)論:是因為仿真里面用了大量的led燈,雙擊該器件可以看到ModelType選項里選擇的是Analog(模擬),所以大大增加的軟件的計算量,導致運行緩慢,而在我的仿真里只需要LED實現(xiàn)亮滅兩種狀態(tài)就可以了,所以將該選項改為Digital(數(shù)字)就可以了,實測有效。圖5.3輸數(shù)據(jù)改變圖在將所有的LED燈的數(shù)據(jù)改變完成之后,初步的運行發(fā)現(xiàn)在東西與南北方向切換時系統(tǒng)會重新復(fù)位,并且顯示異常。在編程中找出了時間設(shè)定的錯誤,紅燈的時間應(yīng)該大于綠燈與黃燈的總和,最好的情況就是綠燈加黃燈等于紅燈的時間最后我們設(shè)定紅燈35S、綠燈30S、黃燈5S。圖5.4東西通行圖5.5南北通行系統(tǒng)的主要功能運行完成后我們需要測試按鍵功能,根據(jù)設(shè)計需求我們設(shè)置了七個按鍵,從上到下依次是復(fù)位按鍵、特殊模式、緊急模式、調(diào)試確定、時間+、時間-、時間調(diào)試選擇。1、特殊模式:按下特殊模式按鍵,四個路口的燈都為黃燈閃爍,計時器歸零圖5.6特殊模式緊急模式:按下緊急模式按鍵后,四個路口的燈都為紅燈,計時器歸零。圖5.7緊急模式圖5.8時間調(diào)整按鍵圖5.9時間調(diào)試按鍵圖5.10系統(tǒng)復(fù)位系統(tǒng)整體的調(diào)試結(jié)果還算樂觀,但是還是有不足之處例如在時間調(diào)試時我們只能調(diào)試綠燈的時間,紅燈的時間由于程序的編寫,所以會在你調(diào)的綠燈時間上自動加上黃燈的時間進行自動的調(diào)整,緊急模式與特殊模式不能退出模式,只有復(fù)位系統(tǒng)才能正常運行。5.2實物制作流程表5.11元件清單名稱規(guī)格數(shù)量主要功能或作用按鈕6*6*59分別控制黃燈常亮(深夜模式)、禁行(緊急模式)、東西通行、南北通行、時間加、時間減、切換、確定。電容30P2單片機時鐘振蕩電容10UF1單片機復(fù)位電阻2203限流排阻10K2單片機單片機AT89C20521CPU晶體12M1單片機時鐘振蕩芯片74HC2451放大驅(qū)動數(shù)碼管顯示三極管90121驅(qū)動蜂鳴器兩位一體共陰數(shù)碼0.364倒計顯示芯片底座40腳1保護引腳芯片底座20腳1保護引腳發(fā)光二極管(紅)5MM4交通燈路口顯示發(fā)光二極管(綠)5MM4交通燈路口顯示發(fā)光二極管(黃)5MM4交通燈路口顯示發(fā)光二極管3MM1電源顯示自鎖開關(guān)8*8MM1控制VCCUSB電源線60MM1連接USB口DC座3.5*1.3MM1直流電源插座插針2外接電源接線PCB板155MMX100MM11、元件的分布及安插2、焊接飛線連接上電測試總結(jié)與展望總結(jié)與展望一、總結(jié)本設(shè)計基于AT89C51單片機的紅綠燈控制系統(tǒng),其中有兩個LED數(shù)碼顯示管,采用的是模塊化的設(shè)計方法,主要的模塊包括單片機模塊,發(fā)光二極管模塊,控制模塊,以及顯示模塊等等。通過硬件和軟件的相結(jié)合,完成了本次系統(tǒng)的設(shè)計。由于使用的單片機是整個系統(tǒng)的核心控件,同時單片機的性能較高,所以整個系統(tǒng)的功能比較強大,能夠有效地達到預(yù)期的設(shè)計效果,實現(xiàn)了紅綠燈之間的相互轉(zhuǎn)化,以及特殊情況之下紅綠燈的調(diào)整。在系統(tǒng)調(diào)試階段,主要考查的是我們的邏輯思維能力和對軟件的熟悉程度,所以在整個系統(tǒng)設(shè)計的過程當中,盡管也出現(xiàn)了一些問題,但是通過我不斷地調(diào)試和努力,最終讓我對匯編制定有了更加深刻的印象和自我理解。二、今后研究方向通過本次系統(tǒng)的設(shè)計,讓我充分的認識到,自己在實踐過程當中仍然存在諸多問題,因為實踐不僅僅是書本上學到的東西還有更多經(jīng)驗需要自己去摸索。我的主要問題在于前期沒有做好充足的準備,導致實際行動起來容易出現(xiàn)錯誤。所以,在未來的發(fā)展過程當中,希望能夠提高自己的實際解決問題的能力以及綜合素質(zhì),應(yīng)該盡量先保障自己有充足的理論知識,同時要提高自身的實踐能力。在實踐的過程當中要不怕失敗,只有經(jīng)過反復(fù)的調(diào)試才能夠優(yōu)化整個系統(tǒng)的設(shè)計。參考文獻參考文獻[1]王子樂,黃志遠.基于單機片的智能交通紅綠燈控制系統(tǒng)設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2018,v.36;No.332(02):13+16.[2]鄧紅.交通燈智能應(yīng)用系統(tǒng)的設(shè)計與實現(xiàn)[J].大觀周刊,2012(39):42-43.[3]盧易楓,鄭麗敏.LED彩燈控制系統(tǒng)設(shè)計[J].學園,2015:200.[4]吳振英,莊林.汽車自動識別紅綠燈系統(tǒng)設(shè)計[J].科技通報,2015(07):221-225.[5]蘆軍軍.GIS紅綠燈控制管理系統(tǒng)設(shè)計與實現(xiàn)[J].城市建設(shè)理論研究(電子版),2018,No.259(13):181.[6]何瑞,滕道祥,仲學,馬曉杰.紅綠色交通燈輔助系統(tǒng)的設(shè)計與實現(xiàn)[J].科技視界,2016:261[7]蘇永斌.簡析路燈與紅綠燈智能化管理系統(tǒng)[J].《城市照明》,2016(2):15-15.[8]曹競豪,徐天偉,鄭鵬.基于單機片的智能交通紅綠燈控制系統(tǒng)設(shè)計[J].科技創(chuàng)新與應(yīng)用,2017(16):78-78.[9]吳家存.基于單機片的智能交通紅綠燈控制系統(tǒng)設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2012(06):183.致謝致謝一轉(zhuǎn)眼就到了與大家分別的日子,回想老師和同學們親切的眼神歷歷在目,感謝在我學習的這幾年同學們的熱情陪伴,是你們教會了我許多與人相處的道理。感謝我的老師們的悉心教導,是你們讓我成為了一個更加完整的成年人。畢業(yè)之際,我要感謝每一個幫助過我的人,也感謝我的指導老師在我的畢業(yè)設(shè)計過程當中對我的悉心指導,您孜孜不倦的身影始終影響著我,未來我會以你為榜樣,不忘初心,砥礪前行。附錄附錄原理圖程序#include<reg51.h> //頭文件#defineucharunsignedchar#defineuintunsignedint //宏定義uchardatabuf[4]; //秒顯示的變量uchardatasec_dx=20; //東西數(shù)默認uchardatasec_nb=30; //南北默認值uchardataset_timedx=20; //設(shè)置東西方向的時間uchardataset_timenb=30; //設(shè)置南北方向的時間intn;uchardatacountt0,countt1;//定時器0中斷次數(shù)//定義6組開關(guān)sbitk4=P3^7;//切換方向sbitk1=P3^5; //時間加sbitk2=P3^6; //時間減sbitk3=P3^4; //確認sbitk5=P3^1; //禁止sbitk6=P1^5; //夜間模式sbitRed_nb=P2^6; //南北紅燈標志sbitYellow_nb=P2^5; //南北黃燈標志sbitGreen_nb=P2^4;//南北綠燈標志sbitRed_dx=P2^3; //東西紅燈標志sbitYellow_dx=P2^2; //東西黃燈標志sbitGreen_dx=P2^1; //東西綠燈標志 bitset=0; //調(diào)時方向切換鍵標志=1時,南北,=0時,東西bitdx_nb=0; //東西南北控制位bitshanruo=0; //閃爍標志位bityejian=0; //夜間黃燈閃爍標志位ucharcodetable[11]={ //共陰極字型碼 0x3f,//--0 0x06,//--1 0x5b,//--2 0x4f,//--3 0x66,//--4 0x6d,//--5 0x7d,//--6 0x07,//--7 0x7f,//--8 0x6f,//--9 0x00//--NULL};//函數(shù)的聲明部分voiddelay(intms); //延時子程序voidkey(); //按鍵掃描子程序voidkey_to1(); //鍵處理子程序voidkey_to2();voidkey_to3();voiddisplay(); //顯示子程序voidlogo(); //開機LOGOvoidBuzzer();//主程序voidmain(){ TMOD=0X11; //定時器設(shè)置 TH1=0X3C; TL1=0XB0; TH0=0X3C; //定時器0置初值0.05S TL0=0XB0; EA=1; //開總中斷 ET0=1; //定時器0中斷開啟 ET1=1; //定時器1中斷開啟 TR0=1; //啟動定時0 TR1=0; //關(guān)閉定時1 EX0=1; //開外部中斷0 EX1=1; //開外部中斷1logo(); //開機初始化 P2=0Xc3; //開始默認狀態(tài),東西綠燈,南北黃燈sec_nb=sec_dx+5; //默認南北通行時間比東西多5秒 while(1) //主循環(huán) { key(); //調(diào)用按鍵掃描程序 display(); //調(diào)用顯示程序 } }//函數(shù)的定義部分voidkey(void) //按鍵掃描子程序{ if(k1!=1) //當K1(時間加)按下時 { display(); //調(diào)用顯示,用于延時消抖 if(k1!=1) //如果確定按下 { TR0=0; //關(guān)定時器 shanruo=0; //閃爍標志位關(guān) P2=0x00; //滅顯示 TR1=0; //啟動定時1 if(set==0) //設(shè)置鍵按下 set_timedx++; //南北加1S else set_timenb++; //東西加1S if(set_timenb==100) set_timenb=1; if( set_timedx==100) set_timedx=1; //加到100置1 sec_nb=set_timenb; //設(shè)置的數(shù)值賦給東西南北 sec_dx=set_timedx; do { display(); //調(diào)用顯示,用于延時 } while(k1!=1); //等待按鍵釋放 } } if(k2!=1) //當K2(時間減)按鍵按下時 { display(); //調(diào)用顯示,用于延時消抖 if(k2!=1) //如果確定按下 { TR0=0; //關(guān)定時器0 shanruo=0; //閃爍標志位關(guān) P2=0x00; //滅顯示 TR1=0; //關(guān)定時器1 if(set==0) set_timedx--; //南北減1S else set_timenb--; //東西減1S if(set_timenb==0) set_timenb=99; if( set_timedx==0) set_timedx=99; //減到1重置99 sec_nb=set_timenb; //設(shè)置的數(shù)值賦給東西南北 sec_dx=set_timedx; do { display(); //調(diào)用顯示,用于延時 } while(k2!=1); //等待按鍵釋放 } } if(k3!=1) //當K3(確認)鍵按下時 { display(); //調(diào)用顯示,用于延時消抖 if(k3!=1) //如果確定按下 { TR0=1; //啟動定時器0 sec_nb=set_timenb; //從中斷回復(fù),仍顯示設(shè)置過的數(shù)值 sec_dx=set_timedx; //顯示設(shè)置過的時間 TR1=0; //關(guān)定時器1 if(set==0) //時間倒時到0時 { P2=0X00; //滅顯示 Green_dx=1; //東西綠燈亮 Red_nb=1; //南北紅燈亮 sec_nb=sec_dx+5; //回到初值 } else { P2=0x00; //南北綠燈,東西紅燈 Green_nb=1; Red_dx=1; sec_dx=sec_nb+5; } } } if(k4!=1) //當K4(切換)鍵按下{ display(); //調(diào)用顯示,用于延時消抖 if(k4!=1) //如果確定按下 { TR0=0; //關(guān)定時器0 set=!set; //取反set標志位,以切換調(diào)節(jié)方向 TR1=0; //關(guān)定時器1 dx_nb=set; do { display(); //調(diào)用顯示,用于延時 } while(k4!=1); //等待按鍵釋放 } } if(k5!=1) //當K5(禁止)鍵按下時 { display(); //調(diào)用顯示,用于延時消抖 if(k5!=1) //如果確定按下 { TR0=0; //關(guān)定時器 P2=0x00; //滅顯示 Red_dx=1; Red_nb=1; //全部置紅燈 TR1=0; sec_dx=00; //四個方向的時間都為00 sec_nb=00; do { display(); //調(diào)用顯示,用于延時 } while(k5!=1); //等待按鍵釋放 } } if(k6!=1) //當K6(夜間模式)按下 { display(); //調(diào)用顯示,用于延時消抖 if(k6!=1) //如果確定按下 { TR0=0; //關(guān)定時器 P2=0x00; TR1=1; sec_dx=00; //四個方向的時間都為00 sec_nb=00; do { display(); //調(diào)用顯示,用于延時 } while(k6!=1); //等待按鍵釋放 } }}voiddisplay(void)//顯示子程序{ buf[1]=sec_nb/10; //第1位東西秒十位 buf[2]=sec_nb%10; //第2位東西秒個位 buf[3]=sec_dx/10; //第3位南北秒十位 buf[0]=sec_dx%10; //第4位南北秒個位 P1=0xff; //初始燈為滅的 P0=0x00; ////滅顯示 P1=0xfe; //片選LED1 P0=table[buf[1]]; //送東西時間十位的數(shù)碼管編碼 delay(1); //延時 P1=0xff; //關(guān)顯示 P0=0x00; //滅顯示 P1=0xfd; //片選LED2 P0=table[buf[2]]; //送東西時間個位的數(shù)碼管編碼 delay(1); //延時 P1=0xff; //關(guān)顯示 P0=0x00; //關(guān)顯示 P1=0Xfb; //片選LED3 P0=table[buf[3]]; //送南北時間十位的數(shù)碼管編碼 delay(1); //延時 P1=0xff; //關(guān)顯示 P0=0x00; //關(guān)顯示 P1=0Xf7; //片選LED4 P0=table[buf[0]]; //送南北時間個位的數(shù)碼管編碼 delay(1); //延時}voidtime0(void)interrupt1using1 //定時中斷子程序{ TH0=0X3C; //重賦初值 TL0=0XB0; //12m晶振50ms//重賦初值 TR0=1; //重新啟動定時器 countt0++; //軟件計數(shù)加1 if(countt0==10) //加到10也就是半秒 { if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //東西黃燈閃 { Green_dx=0; Yellow_dx=0; } if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黃燈閃 { Green_nb=0; Yellow_nb=0; } } if(countt0==20) //定時器中斷次數(shù)=20時(即1秒時) { countt0=0; //清零計數(shù)器 sec_dx--; //東西時間減1 sec_nb--; //南北時間減1 if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //東西黃燈閃 { Green_dx=0; Yellow_dx=1; } if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黃燈閃 { Green_nb=0; Yellow_nb=1; } if(sec_dx==0&&sec_nb==5) //當東西倒計時到0時,重置5秒,用于黃燈閃爍時間 { sec_dx=5; shanruo=1; } if(sec_nb==0&&sec_dx==5) //當南北倒計時到0時,重置5秒,用于黃燈閃爍時間 { sec_nb=5; shanruo=1; } if(dx_nb==0&&sec_
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度石油天然氣管道建設(shè)合同6篇
- 2025年冀少新版五年級英語下冊月考試卷含答案
- 2025年外研版八年級地理下冊階段測試試卷含答案
- 二零二五年白灰市場分銷購銷合同正式版3篇
- 2025年牛津譯林版共同必修2物理上冊階段測試試卷
- 2025年人教五四新版九年級地理上冊月考試卷含答案
- 二零二五年環(huán)保設(shè)施運營維護技術(shù)服務(wù)合同書2篇
- 2025-2030年中國單段式煤氣發(fā)生爐市場運行態(tài)勢及投資前景規(guī)劃研究報告
- 2024年魚池承包及水產(chǎn)養(yǎng)殖技術(shù)研發(fā)合同3篇
- 新蘇教版一年級數(shù)學下冊第五單元第4課時《兩位數(shù)減一位數(shù)(退位)》教案
- 【物 理】2024-2025學年八年級上冊物理寒假作業(yè)人教版
- 廣東省深圳市名校2023-2024學年高一上學期期中聯(lián)考物理試題
- 發(fā)那科注塑機講義課件
- 2023年廣西北海市創(chuàng)城辦招聘20人(共500題)筆試必備質(zhì)量檢測、歷年高頻考點模擬試題含答案解析
- 2023高考英語新高考1卷完形填空全考點解析附譯文全
- 工作票知識培訓課件
- GB/T 42616-2023電梯物聯(lián)網(wǎng)監(jiān)測終端技術(shù)規(guī)范
- 河南省醫(yī)院信息大全
- 酒店賠償價目表
- 廣西貴港市2023年中考物理試題(原卷版)
- 集團總裁崗位說明書
評論
0/150
提交評論