大學(xué)畢業(yè)論文--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)_第1頁
大學(xué)畢業(yè)論文--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)_第2頁
大學(xué)畢業(yè)論文--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)_第3頁
大學(xué)畢業(yè)論文--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)_第4頁
大學(xué)畢業(yè)論文--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

IIAbstractWhenyoupassanintersection,haveyounoticedthatvehiclesandpedestriansthroughtheintersectionmethodical.Suchanorderlysituationrelyontoachieveit?Relyonthetrafficlightcontrolsystem.Thispaperwillintr-oduceasingle-chipmicrocomputerATC89C51asthemaincontrolunitsystem.Thr-oughtheSTC89C51microcontrollerchipP1andP2portrespectivelycontroltheeast-westandnorth-southdirectionredyellowgreenlight.ThroughSTC89C51microcontrollerRXDandTXDcontroldigitaltubedisplaytime.Lightemittingdiodeisusedtorealizetrafficlightslit,achievedbythedigitaltimedisplay.Thesystemnotonlyhasthebasicfunctionofthetrafficlightsandthecountdown,youcanalsothroughthebuttonsintheeventofanemergencyissettofourdirectionsfortheredlightinemergencymode,canalsothroughthebuttonsinthenightissettothefourdirectionsofyellowlightnightmode,ofcourse,alsocanthroughthebuttontosetthecountdowntimeoftrafficlight,makethesystemmoreinlinewiththeactualsituation.Idesignthetrafficlightcontrolsystemcanbettersimulatethecrossroadsoftraffic,thepedestriansandvehiclestoorderlytraffic.Idesignedthesystemoflowcost,simpleoperation,stableperformance,strongpracticability.Keywords:TrafficLightControlSystemSCMAT89C51DigitalpipeLED目錄TOC\o"1-3"\h\u3165摘要 I18454Abstract II25404緒論 19201系統(tǒng)設(shè)計(jì)方案論證 358281.1設(shè)計(jì)方案 3317321.2功能概述 4171422系統(tǒng)硬件設(shè)計(jì) 5210362.1交通燈控制系統(tǒng)組成 5245842.1.1ATC89C51芯片 529302.1.2交通燈控制系統(tǒng)構(gòu)成 8184292.2各單元電路模塊功能 9160762.2.1時鐘電路模塊 917082.2.2復(fù)位電路模塊 9130772.2.3主控制系統(tǒng)模塊 10181622.2.4信號燈輸出控制模塊 1142222.2.5時間顯示電路模塊 11294702.2.6系統(tǒng)電源模塊電路 12249302.2.7按鍵輸入模塊 1362363系統(tǒng)軟件設(shè)計(jì) 14249723.1軟件總體流程圖 14271843.2延時的設(shè)定 1584773.2.1計(jì)數(shù)器初值計(jì)算 15282333.2.2相應(yīng)程序代碼 15216544系統(tǒng)調(diào)試分析及結(jié)果 2133744.1電路板實(shí)物的制作 21251144.1.1印制電路板PCB圖的繪制 21255134.1.2實(shí)物的制做 21104214.2系統(tǒng)硬件調(diào)試 22236424.3系統(tǒng)軟件調(diào)試 22228464.4系統(tǒng)總體調(diào)試 2331373結(jié)論 2528763致謝 2623732參考文獻(xiàn) 2723954附錄1元器件清單 2915275附錄2總體電路原理圖、PCB 3010232附錄3程序 31緒論國內(nèi)外交通系統(tǒng)發(fā)展現(xiàn)狀隨著現(xiàn)代社會對交通運(yùn)輸?shù)娜遮呉蕾?,交通控制系統(tǒng)受到普遍的重視。近年來,英國、美國等西方國家均在某些大城市建立了智能的交通控制系統(tǒng)。一般的交通控制系統(tǒng)中,大部分在路口裝有車輛檢測器,由各路口的控制設(shè)備或著工作人員將交通控制參數(shù)通過電話線、電纜、光纖或無線網(wǎng)絡(luò)等方式輸入到微處理器,用小型計(jì)算機(jī)控制。尤其是伴隨著信息技術(shù)的發(fā)展,交通控制的概念已從交通管理者的行為改變?yōu)榻煌ü芾碚吆偷缆肥褂谜吖餐男袨?,從而使得交通的最?yōu)化向全局最優(yōu)發(fā)展[1]。在這些發(fā)展中,除了新設(shè)備的應(yīng)用外,數(shù)據(jù)的采集、傳輸、處理、存儲與發(fā)送等技術(shù)的發(fā)展也起了關(guān)鍵的作用。與國外先進(jìn)的控制系統(tǒng)相比,我國的交通控制系統(tǒng)比較落后,目前我國的城市交通有以下問題:管理不力,秩序混亂;沒有科學(xué)而合理有效的城市交通監(jiān)控系統(tǒng)。從而造就了道路的通行能力遠(yuǎn)低于設(shè)計(jì)時候所預(yù)期的要求并且波動性比較大,交通事故發(fā)生率高等問題。城市交通的解決方法城市交通擁擠有人說是因?yàn)榈缆藩M窄引起的,所以有些人建議加寬道路或者架設(shè)高架橋來緩解交通壓力。但是,過不了多久加寬的道路又陷入了擁擠。一般來說新加寬的道路不會改變原來的擁擠狀況,很快新的交通量占據(jù)新增的道路設(shè)施,這部分潛在的交通量受制于以前道路供給而未能得到實(shí)現(xiàn)的。由于加寬道路不能從根本上解決擁擠的城市交通問題,所以就開始尋求新的解決方法。隨著人們對控制理論的深入研究與探索以及科技的不斷發(fā)展,利用微計(jì)算機(jī)的控制系統(tǒng)對解決交通問題越來越重要?,F(xiàn)如今國內(nèi)外開發(fā)了許多交通控制系統(tǒng)為緩解交通壓力做出了突出貢獻(xiàn)。伴隨著人工智能的興起,人們開始將人工智能引入到交通燈控制系統(tǒng)當(dāng)中。經(jīng)過這么多年的實(shí)踐研究和探索,人們相信智能控制是緩解城市交通問題的強(qiáng)力工具。課題研究范圍及意義本文利用單片機(jī)自動控制交通燈及時間倒計(jì)時顯示的方法,將整個系統(tǒng)集成在單片機(jī)上,使產(chǎn)品具有成本低和輕便性的特點(diǎn)。設(shè)計(jì)過程包括硬件電路和程序兩大部分。硬件電路其結(jié)構(gòu)比較簡單,主要包括核心器件ATC89C51單片機(jī),12只二極管組成的模擬交通燈、復(fù)位電路、振蕩電路、數(shù)碼管顯示模塊。單片機(jī)開發(fā)中不僅僅有硬件設(shè)計(jì)同樣需要軟件編程,我設(shè)計(jì)的系統(tǒng)用軟件Keil來進(jìn)行程序的編程。相比硬件設(shè)計(jì),軟件部分設(shè)計(jì)較為復(fù)雜,需要同時考慮模擬紅綠黃三色燈的控制、倒計(jì)時時間的顯示、緊急情況下的緊急開關(guān)等問題。并且還需要自己具有基本的C基礎(chǔ)和應(yīng)有的思維能力以及比較強(qiáng)的邏輯能力。基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)凸顯了它的意義。通過交通燈控制系統(tǒng)的設(shè)計(jì),使我對C語言的編程有更深層次的認(rèn)識,同時將理論同社會實(shí)踐有效的結(jié)合一起,提高了自己的動手能力和思考能力。1系統(tǒng)設(shè)計(jì)方案論證1.1設(shè)計(jì)方案方案一:控制系統(tǒng)主要控制東西方向和南北方向交通狀況,系統(tǒng)以單片機(jī)芯片STC89C51為主控單元,通過控制三種顏色LED的亮滅來來指導(dǎo)各車道的通行,上電時復(fù)位電路使系統(tǒng)進(jìn)入運(yùn)行狀態(tài)??傮w設(shè)計(jì)框圖如圖1-1所示:STC89C51STC89C51單片機(jī)兩段數(shù)碼管倒計(jì)時顯示電路兩段數(shù)碼管倒計(jì)時顯示電路復(fù)位電路晶振電路晶振電路圖1-1方案一設(shè)計(jì)框圖方案二:采用STC89C51單片機(jī)為控制器,采用2段數(shù)碼管作為倒計(jì)時顯示;車道指示燈采用三色發(fā)光二極管,LED顯示采用動態(tài)掃描,用來節(jié)省端口[2]。用手動按鍵通過中斷完成緊急情況下車輛的通行。本方案中芯片端口剛好滿足要求。本方案電路設(shè)計(jì)簡單,顯示亮度高,耗電少,可靠性高,但是占用單片機(jī)資源太多,整個框圖設(shè)計(jì)如圖1-2所示:P1P2INT1P0P3P3南北通行燈東西通行燈2位LED顯示器器列掃描驅(qū)動上電復(fù)位電路晶振電路圖1-2方案二設(shè)計(jì)框圖方案三:采用STC89C51單片機(jī)為主控單元,用單塊LCD對東西方向和南北方向車道通行進(jìn)行倒計(jì)時顯示。這種方案設(shè)計(jì)端口和硬件的需求最少,但是亮度太暗,所以較少采用。對上述三種方案的優(yōu)缺點(diǎn)分析可知,方案一最好。1.2功能概述在東西方向和南北方向的十字路口分別設(shè)立紅黃綠交通指示燈,用數(shù)碼管倒計(jì)時顯示。正常情況下兩個主干線上的紅黃綠燈進(jìn)行轉(zhuǎn)換。紅燈亮表示禁止通行,綠燈亮表示可以通行,每次綠燈變紅燈前,黃燈亮5秒,方便那些未能及時通過十字路口的車輛能繼續(xù)通過。十字路口設(shè)立數(shù)碼管具有倒計(jì)時功能,方便人們直觀的把握通過時間。本設(shè)計(jì)也考慮到緊急情況,當(dāng)按下緊急模式按鍵后,四個方向紅燈都會常亮。對于夜晚車流量比較少,本設(shè)計(jì)設(shè)計(jì)了夜晚模式,按下按鍵后四個方向黃燈會常亮。2系統(tǒng)硬件設(shè)計(jì)2.1交通燈控制系統(tǒng)組成2.1.1ATC89C51芯片選用的ATC89C51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實(shí)現(xiàn)在線的編程。用于實(shí)現(xiàn)系統(tǒng)的總的控制。其主要功能列舉如下:(1)為一般控制應(yīng)用的8位單片機(jī)(2)內(nèi)部具有時鐘振蕩器(3)內(nèi)部程式存儲器(ROM)為4KB(4)內(nèi)部數(shù)據(jù)存儲器(RAM)為128B(5)外部程序存儲器可擴(kuò)充至64KB(6)外部數(shù)據(jù)存儲器可擴(kuò)充至64KB(7)32條雙向輸入輸出線,且每條均可以單獨(dú)做I/O的控制(8)5個中斷向量源(9)2組獨(dú)立的16位定時器(10)1個全雙工串行通信端口(11)單芯片提供位邏輯運(yùn)算指令A(yù)TC89C51各引腳功能介紹:如圖2-1圖2-1ATC89C51芯片VCC:ATC89C51電源正端輸入,接+5V。VSS:電源地端。XTAL1:單芯片系統(tǒng)時鐘的反向放大器輸入端。XTAL2:系統(tǒng)時鐘的反向放大器輸出端,一般在設(shè)計(jì)上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩個引腳與地之間加入一個20PF的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機(jī)。RESET:AT89S51的重置引腳,高電平動作,當(dāng)要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機(jī)器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項(xiàng)動作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。EA/Vpp:"EA"為英文"ExternalAccess"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當(dāng)此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因?yàn)槠鋬?nèi)部無程序存儲器空間。如果是使用8751內(nèi)部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。ALE/PROG:ALE是英文"AddressLatchEnable"的縮寫,表示地址鎖存器啟用信號。ATAT89S51可以利用這個引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進(jìn)鎖存器中,因?yàn)锳TAT89S51是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅(qū)動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當(dāng)成程序規(guī)劃的特殊功能來使用。PSEN:此為"ProgramStoreEnable"的縮寫,其意為程序儲存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。ATAT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。PORT0(P0.0~P0.7):端口0是一個8位寬的開路電極(OpenDrain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)作I/O用時可以推動8個LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設(shè)計(jì)者必須外加一個鎖存器將端口0送出的地址鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一組完整的16位地址總線,而定位地址到64K的外部存儲器空間。PORT2(P2.0~P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時,此端口便能當(dāng)成輸入端口來使用。P2除了當(dāng)作一般I/O端口使用外,若是在ATAT89S51擴(kuò)充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當(dāng)作I/O來使用了。PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LSTTL負(fù)載,同樣地,若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當(dāng)作定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)引腳。PORT3(P3.0~P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負(fù)載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時計(jì)數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計(jì)時計(jì)數(shù)器0輸入。P3.5:T1,計(jì)時計(jì)數(shù)器1輸入。P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。2.1.2交通燈控制系統(tǒng)構(gòu)成電路板一塊,芯片ATC89C51一片,2段共陰極數(shù)碼顯示管四個,紅黃綠發(fā)光二極管各四個,電阻若干,晶振一個,電容若干,按鍵若干。交通燈控制系統(tǒng)結(jié)構(gòu)框圖2-2:按鍵按鍵LEDATC89C51LEDATC89C51共陰極數(shù)碼管共陰極數(shù)碼管圖2-2原理框圖系統(tǒng)各部分工作原理:采用單片機(jī)的I/O口P0口通過上拉電阻和交通燈相連接,P3.0、P3.1口接到數(shù)碼管控制位上,控制數(shù)碼管的顯示,程序放在ATC89C51單片機(jī)的ROM中來設(shè)置初始時間,在十字路口的四組紅、黃、綠交通燈中,由單片機(jī)的P1.5-P1.7、P1.0-P1.2、P2.5-P2.7、P2.0-P2.2分別控制東西南北方向的三色燈。由于交通燈為發(fā)光二極管并且陽極通過限流電阻和電源正極相連,因此I/O口輸出低電平時,與之相連的指示燈才會點(diǎn)亮,然后通過數(shù)碼管倒計(jì)時時間。I/O口輸出高電平時,相應(yīng)指示燈會滅。由于ATC89C51本身集成了看門狗指令,當(dāng)系統(tǒng)出現(xiàn)異常的時候看門狗會發(fā)出溢出中斷。通過專用端口輸出,引起RESET復(fù)位信號復(fù)位系統(tǒng)。2.2各單元電路模塊功能2.2.1時鐘電路模塊本時鐘電路由一個晶體振蕩器12MHZ和兩個30pF的瓷片電容組成。時鐘電路用于產(chǎn)生單片機(jī)工作所需的時鐘信號,而時序所研究的是指令執(zhí)行中各信號之間的相互關(guān)系。單片機(jī)本身就是一個復(fù)雜的同步時序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時鐘信號控制下嚴(yán)格地工作[3]。其電路如圖2-3所示:圖2-3時鐘電路模塊2.2.2復(fù)位電路模塊電容在上接高電平,電阻在下接地,中間為RST。這種復(fù)位電路為高電平復(fù)位。其工作原理是:通電時,電容兩端相當(dāng)于是短路,于是RST引腳上為高電平,然后電源通過電阻對電容充電,RST端電壓慢慢下降,降到一定程度,即為低電平,單片機(jī)開始正常工作[4]。其電路如圖2-4所示:圖2-4復(fù)位電路模塊2.2.3主控制系統(tǒng)模塊主控制器STC89C51單片機(jī)是推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時鐘/機(jī)器周期和6時鐘/機(jī)器周期可以任意選擇。[5]主控制系統(tǒng)模塊電路如圖2-5:圖2-5主控置系統(tǒng)模塊電路2.2.4信號燈輸出控制模塊道口交通燈指示采用紅、黃、綠發(fā)光二極管進(jìn)行提示。其圖如圖2-6所示:圖2-6LED顯示模塊電路2.2.5時間顯示電路模塊本系統(tǒng)使用數(shù)碼管完成倒計(jì)時顯示功能。以方向東西為為例,數(shù)碼管顯示的數(shù)值從綠燈的設(shè)置時間最大值往下減,每秒鐘減1,一直減到0。然后又從紅燈的設(shè)置時間最大值往下減,一直減到0。接下來又顯示綠燈時間,如此循環(huán)。系統(tǒng)共有4個二位的LED數(shù)碼管,分別放置在模擬交通燈上方。道口通行剩余時間采用紅色7段數(shù)碼管顯示,采用共陰數(shù)碼管,如用單片機(jī)P0口加上拉電阻驅(qū)動,P3.0/P3.1來控制數(shù)碼管的位。其顯示電路如圖2-7所示:圖2-7數(shù)碼管顯示模塊電路2.2.6系統(tǒng)電源模塊電路由于該系統(tǒng)中51單片機(jī)及二極管工作電壓均為5V電壓,所以要保證系統(tǒng)穩(wěn)定可靠的工作,需要設(shè)計(jì)一個可以穩(wěn)定提供5V電壓的供電系統(tǒng)。本設(shè)計(jì)采用外置3節(jié)5號電池作為系統(tǒng)的供電電源,該系統(tǒng)電源電路設(shè)計(jì)如圖2-8所示:圖2-8系統(tǒng)電源電路2.2.7按鍵輸入模塊由于該系統(tǒng)具有夜間模式,緊急模式和交通燈倒計(jì)時時間設(shè)定功能,所有需要加上這些功能鍵,如下圖2-9所示:圖2-9按鍵輸入夜間模式:按下夜間模式按鍵進(jìn)入,四方向紅燈長亮,再次按下按鍵退出。緊急模式:按下緊急模式按鍵進(jìn)入,四方向黃燈閃爍,再次按下按鍵退出。設(shè)定倒計(jì)時時間:按下設(shè)定鍵后,進(jìn)入設(shè)定狀態(tài),先設(shè)定南北方向,再次按下按鍵設(shè)定東西方向,設(shè)定好后,按下按鍵退出,正常運(yùn)行。3系統(tǒng)軟件設(shè)計(jì)3.1軟件總體流程圖軟件總體設(shè)計(jì)及流程圖見圖3-1,主要完成各部分的軟件控制和協(xié)調(diào)。圖3-1流程圖3.2延時的設(shè)定3.2.1計(jì)數(shù)器初值計(jì)算定時器工作時必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC可得到如下計(jì)算通式:TC=M-C式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時M為213;在方式1時M的值為216;在方式2和3為28;算法公式:T=(M-TC)T計(jì)數(shù)或TC=M-T/T計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時鐘周期TCLK的12倍;TC為定時初值如單片機(jī)的主脈沖頻率為TCLK12MHZ,經(jīng)過12分頻方式0TMAX=213×1微秒=8.192毫秒方式1TMAX=216×1微秒=65.536毫秒顯然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時間,所以只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題.實(shí)現(xiàn)1秒的方法:我采用在主程序中設(shè)定一個初值為20的軟件計(jì)數(shù)器和使T1定時50毫秒。這樣每當(dāng)T1到50毫秒時CPU就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是否為零。為0表示1秒已到可以返回到輸出時間顯示程序。3.2.2相應(yīng)程序代碼(1)定時器的設(shè)置定時器需定時50毫秒,故T1工作于方式1。初值計(jì)算:TC=M-T/T計(jì)數(shù)=216-50ms/1us=15536=3CBOHSTART:MOVTMOD,#10H;令TO為定時器方式1MOVTH0,#3CH;裝入定時器初值MOVTL0,#0BOHSETBEA;打開總中斷SETBET1;開T1中斷SETBER;啟動T1計(jì)數(shù)器CLRFLAG1CLRFLAG2CLRFLAG3MOVR3,#20H;軟件計(jì)數(shù)器賦初值(2)相應(yīng)中斷服務(wù)子程序ORG001BHLJMPDSDORG0030HDSD:INCR3MOVTH0,#3CH;重裝入定時器初值MOVTL0,#BOHCJNER3,#20,F(xiàn)HDECR0DECR1MOVR3,#00HFH:RETI程序的軟件延時:我選單片機(jī)的工作頻率為12MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個機(jī)器周期的時間為12*(1/12M)=1us。可以知道具體每條指令的周期數(shù),這樣就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。具體的延時程序分析:DELAY:MOVR4,#08H延時1秒主程序DE2:LCALLDELAY1DJNZR4,DE2RETDELAY1:MOVR4,#00H;延時125us子程序D1:MOVR5,#00HD2:DJNER5,DL2DJNER4,D1RETDELAY1為一個雙重循壞循環(huán)次數(shù)為256*256=65536所以延時時間=65536*2=131072us約為125usDELAYR4設(shè)置的初值為8主延時程序循環(huán)8次,所以125us*8=1秒(3)數(shù)碼管動態(tài)顯示用于四個數(shù)碼管的倒計(jì)時顯示,代碼如下:sbitsmg1=P3^0; //定義南北方向數(shù)碼管低位sbitsmg2=P3^1; //定義南北方向數(shù)碼管高位sbitsmg3=P3^2; //定義東西方向數(shù)碼管低位sbitsmg4=P3^3; //定義東西方向數(shù)碼管高位voiddjsxs22() /4個數(shù)碼管動態(tài)顯示 { intb1,b2; b1=djs1/10; //將倒計(jì)時時間的高位賦予b1 b2=djs1%10; //將倒計(jì)時時間的低位賦予b2 P0=table[b1];smg1=0;delayms(3);smg1=1; //顯示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //顯示b2 P0=table[b1];smg3=0;delayms(3);smg3=1; //顯示b1 P0=table[b2]; smg4=0; delayms(3); smg4=1; //顯示b2}voiddjsxs11() /4個數(shù)碼管動態(tài)顯示{ intb1,b2; b1=djs/10; //將倒計(jì)時時間的高位賦予b1 b2=djs%10; //將倒計(jì)時時間的低位賦予b2 P0=table[b1];smg1=0;delayms(3);smg1=1; //顯示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //顯示b2 P0=table[b1];smg3=0;delayms(3);smg3=1; //顯示b1 P0=table[b2]; smg4=0; delayms(3); smg4=1; //顯示b2}利用對數(shù)字的拆分使數(shù)字分為十位和個位,比如31,利用程序inta=31;intb1,b2;b1=a/10;b2=a%10;可以拆分為b1=3,b2=1.而在動態(tài)顯示的過程中,通過這個方法可以動態(tài)在數(shù)碼管上顯示出來。由于東西方向和南北方向的顯示時間不一樣,我們可以通過數(shù)碼管的高低位去組合的顯示正確的顯示時間。組合顯示程序如下:voiddjsxs1()/用來顯示設(shè)定南北倒計(jì)時的時間{ intb1,b2; b1=djs1/10;//將倒計(jì)時時間的高位賦予b1 b2=djs1%10; //將倒計(jì)時時間的低位賦予b2 P0=table[b1];smg3=0;delayms(3);smg3=1; //顯示b1 P0=table[b2]; smg4=0; delayms(3); //顯示b2 smg4=1;}voiddjsxs()/用來顯示設(shè)定南北倒計(jì)時的時間{ intb1,b2; b1=djs/10; //將倒計(jì)時時間的高位賦予b1 b2=djs%10; //將倒計(jì)時時間的低位賦予b2 P0=table[b1];smg1=0;delayms(3);smg1=1; //顯示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //顯示b24系統(tǒng)調(diào)試分析及結(jié)果4.1電路板實(shí)物的制作4.1.1印制電路板PCB圖的繪制在同一芯片中,要連的線比較多。在硬件的布局中,每個LED燈和每個數(shù)碼管的分布比較固定,而且集中分布在所控制的兩個路口上。如果采用雙面的PCB板的話,那么該電路的布線比較容易實(shí)現(xiàn)。但是,在實(shí)際生活中做雙面板經(jīng)常會出現(xiàn)一些焊點(diǎn)接觸不良導(dǎo)致電路調(diào)試失敗。因此,使用單面板布線。單片面板的布線的缺點(diǎn)是焊接后的成品不怎么美觀。印制電路板的設(shè)計(jì)是以電路原理圖為根據(jù),來實(shí)現(xiàn)設(shè)計(jì)者所需要的功能。印刷電路板主要指版圖設(shè)計(jì),需要考慮外部布局的連接、內(nèi)部電子元件的優(yōu)化布局、金屬連線和通孔的優(yōu)化布局、電磁保護(hù)、熱耗散等各種因素。4.1.2實(shí)物的制做(1)總制板工藝程序把所需要的元器件分類擺放在桌子上,確定各個原件的最好位置。原則上,既美觀,又容易焊接,然后把元器件焊到板子上,最好用焊臺來完成。根據(jù)原理圖,把所有的連線連接起來,連接的導(dǎo)線,為了不斷路盡量用細(xì)一點(diǎn)的導(dǎo)線。(2)制板心得:我們在制板過程中,首先,是在用PROTEL設(shè)計(jì)的時候出現(xiàn)的錯誤導(dǎo)致印制電路板錯誤。其次,是由于理論和實(shí)際有誤差導(dǎo)致無法實(shí)現(xiàn)目標(biāo)。最后在焊接中有一些小問題,比如在焊跳線的時,由于手工焊接導(dǎo)致焊線比較多,而且焊盤在高溫下容易老化氧化,導(dǎo)致焊盤脫落報廢了好幾塊板子。此外,焊盤太小并且有的有損壞跡象,所以焊接不怎么方便。為了不虛焊,我花了大量時間去焊這些元器件,造成一些焊點(diǎn)不是那么的很美觀。還有在焊接過程中,有時候焊錫會不小心將相鄰的兩根引線短路。這次設(shè)計(jì)積累了做板一些經(jīng)驗(yàn),再次做板的時候一定要注意PCB的引線之間的距離不能設(shè)置太近。焊接完成后的實(shí)物圖4-1:圖4-1焊接完成的實(shí)物4.2系統(tǒng)硬件調(diào)試在實(shí)際焊接過程中,實(shí)物交通燈控制系統(tǒng)的PCB電路板焊接工作量非常大。電路安裝完成后,首先進(jìn)行檢查,即確認(rèn)電路無虛焊,無短路,無斷路,集成元件安裝是否正確,之后進(jìn)行電路功能模塊的分級調(diào)試。根據(jù)電路功能逐級進(jìn)行調(diào)試,通行方式功能調(diào)試包括對兩種通行方式控制調(diào)試,指示燈亮度和驅(qū)動電路調(diào)試,倒計(jì)時功能調(diào)試,數(shù)碼管亮度調(diào)試,復(fù)位功能調(diào)試。4.3系統(tǒng)軟件調(diào)試在keil工作平臺上,新建交通燈控制系統(tǒng)工程,用C語言對各個功能模塊進(jìn)行編寫和調(diào)試。除了基本語法差錯外,如果程序沒問題,那么直接下載到單片機(jī)來調(diào)試。采取的是自下到上的調(diào)試方法,即單獨(dú)調(diào)試好每一個模塊,然后再連接成一個完整的系統(tǒng),最后完成一個完整的系統(tǒng)調(diào)試。交通燈控制系統(tǒng)仿真圖如圖4-2:圖4-2交通燈控制系統(tǒng)仿真圖4.4系統(tǒng)總體調(diào)試系統(tǒng)做好后,需進(jìn)行完整的系統(tǒng)調(diào)試。測試剛開始,就發(fā)現(xiàn)兩個問題:一個是有一部分交通燈亮度不夠,發(fā)出來的光非常的微弱;二是數(shù)碼管沒反應(yīng)。為了解決這個問題,我重新查看了電路的輸出端各部分的輸出電平。發(fā)現(xiàn)了我采用是共陰極數(shù)碼管。而控制數(shù)碼段的P3.0和P3.1口輸出的則是高電平。解決第二個問題有兩個方法。其一,將硬件電路稍作修改,將共陰極數(shù)碼管換成共陽極的數(shù)碼管。這樣數(shù)碼管就可以正常進(jìn)行時間顯示。其二,修改程序,讓控制數(shù)碼管的P0輸出的是低電平。如果采用修改硬件電路的方法,那么整個硬件電路就得作改動。而已經(jīng)布好的線也必須有相應(yīng)的變動,操作起來比較麻煩繁瑣。所以,我采用了第二種方法。修改了程序電路中的數(shù)碼管代碼。修改完后再次調(diào)試,數(shù)碼管部分基本上能按照預(yù)先設(shè)定的要求進(jìn)行倒計(jì)時顯示。亮度要求也基本符合預(yù)先設(shè)想那樣。還有一個來問題有待解決,那就是LED燈亮度問題,以致部分交通燈只能偶爾的看得出在亮。經(jīng)多方檢測,我認(rèn)為這是LED燈驅(qū)動能力不足引起的亮度弱問題。如果要修正這個問題,那就得為LED燈增加驅(qū)動電路以提高電路的驅(qū)動能力。但是,要實(shí)現(xiàn)上述方法必須對硬件電路進(jìn)行一定的改動。LED燈的驅(qū)動電路可以用集成電路芯片來進(jìn)行驅(qū)動。但是由于沒有相關(guān)的條件就沒有去實(shí)踐。但是,基本問題和解決問題的方法還是有了一定的了解。

結(jié)論我設(shè)計(jì)的系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)ATC89C51芯片作為交通燈控制系統(tǒng)的主控單元,利用ATC89C51芯片的I/O引腳實(shí)現(xiàn)了數(shù)字路口的交通控制。實(shí)物做成后其功能如下:當(dāng)系統(tǒng)啟動時,東西方向綠燈亮并且LED顯示30秒倒計(jì)時,此時南北方向紅燈亮LED顯示35秒倒計(jì)時,當(dāng)東西方向綠燈變?yōu)辄S燈時LED還會倒計(jì)時5秒。當(dāng)東西方向五秒倒計(jì)時結(jié)束時,東西方向紅燈點(diǎn)亮,南北方

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論