




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