基于單片機(jī)的五岔路口交通燈方案設(shè)計(jì)_第1頁
基于單片機(jī)的五岔路口交通燈方案設(shè)計(jì)_第2頁
基于單片機(jī)的五岔路口交通燈方案設(shè)計(jì)_第3頁
基于單片機(jī)的五岔路口交通燈方案設(shè)計(jì)_第4頁
基于單片機(jī)的五岔路口交通燈方案設(shè)計(jì)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單片機(jī)的五岔路口交通燈方案設(shè)計(jì)關(guān)鍵詞:AT89S52交通燈倒計(jì)時(shí)LED

目錄TOC\o"1-3"\h\u摘要 IAbstract II1課題研究的背景 IV1.1交通信號(hào)燈的發(fā)展及研究意義 11.2現(xiàn)在城市路口交通燈控制技術(shù)現(xiàn)狀 21.3單片機(jī)概述 21.4方案的設(shè)計(jì)與論證 31.4.1電源提供方案 31.4.2顯示界面方案 31.4.3輸入方案 42系統(tǒng)總體設(shè)計(jì) 42.1總體設(shè)計(jì) 52.2單片機(jī)的選擇 112.3單片機(jī)的基本結(jié)構(gòu) 72.4單片機(jī)外圍電路設(shè)計(jì) 102.4.1復(fù)位電路設(shè)計(jì) 102.2.2外部晶振時(shí)鐘電路設(shè)計(jì) 102.2.3顯示模塊電路設(shè)計(jì) 113交通信號(hào)燈控制系統(tǒng)的設(shè)計(jì) 143.1十字路口交通信號(hào)燈具體的控制要求 143.2五岔路口交通信號(hào)燈示意圖 143.3五岔路口交通燈工作情況 153.4路口交通燈時(shí)間處理函數(shù)模塊 154交通信號(hào)燈控制系統(tǒng)程序編制 194.1軟件設(shè)計(jì)應(yīng)用環(huán)境 194.2軟件設(shè)計(jì)流程 194.3交通燈定時(shí)器模塊 204.4定時(shí)器初值模塊設(shè)計(jì) 21結(jié)論 22主要參考文獻(xiàn) 25附錄一:源程序代碼 261課題研究的背景1.1交通信號(hào)燈的發(fā)展及研究意義現(xiàn)如今,安裝在各個(gè)路口上的紅綠燈,已經(jīng)成為疏導(dǎo)交通車輛最常見以及有效的工具,這一技術(shù)的發(fā)展已經(jīng)有了相當(dāng)長的歷史。1858年,世界上最早的交通信號(hào)燈在英國倫敦出現(xiàn)。他是通過在其主要街頭安裝了紅,藍(lán)兩色的信號(hào)燈。這些信號(hào)燈是機(jī)械扳手式的,它由燃煤氣提供光源,用以指揮馬車通行。1868年,在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場(chǎng)上,英國機(jī)械工程師納伊特安裝了世界上最早的一盞煤氣紅綠燈。它是紅綠兩個(gè)旋轉(zhuǎn)式方形玻璃提燈組成的,紅色表示“停止”,綠色表示“注意”。1869年1月2日,因?yàn)槊簹鉄舯?,造成警察受傷,于是被取消了。而后,在美國出現(xiàn)了電氣啟動(dòng)的紅綠燈,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始就安裝在了紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,出現(xiàn)了新式的帶控制的紅綠燈以及紅外線紅綠燈。帶控制的紅綠燈有兩種類型,一種是用擴(kuò)音器來控制紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。另一種是把壓力探測(cè)器裝在地下,當(dāng)車輛一接近紅燈便變?yōu)榫G燈;紅外線紅綠燈則是當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),壓力感應(yīng)器就能察覺到有人要過馬路,繼而紅外光束將延長紅燈時(shí)間,推遲汽車放行,避免發(fā)生交通事故。目前,我國平均每一分鐘就有一個(gè)人因交通事故受傷,平均每五分鐘就有一個(gè)人因交通事故而死亡。同時(shí),交通的阻塞以及不便,給全球的經(jīng)濟(jì)甚至也帶來了很大的影響。英國大約有100個(gè)城市是屬于平面交叉口的,因?yàn)檐囕v延誤造成的經(jīng)濟(jì)損失每年就可以達(dá)到1400萬英鎊左右。我國百萬人以上的大城市因?yàn)榻煌〒頂D造成的經(jīng)濟(jì)損失每年估計(jì)為1600億人民幣,相當(dāng)于我國國內(nèi)生產(chǎn)總值的3.2%。不僅如此,城市交通問題還產(chǎn)生量其他一些城市問題。例如,城市生態(tài)環(huán)境狀況就十分不樂觀,交通工具排放廢氣,這己經(jīng)成了破壞大氣的重要污染源頭之一。嚴(yán)重的大氣污染不僅導(dǎo)致了環(huán)境變差,也會(huì)導(dǎo)致經(jīng)濟(jì)損失,不僅僅對(duì)公眾健康造成損害。而且因?yàn)榻煌ㄔO(shè)施建設(shè),更是加重了環(huán)境破壞的嚴(yán)重程度,土地資源正在以每年2%-3%的速度不斷減少著。合理的交通控制方法能有效的減少尾氣排放及能源消耗、緩解交通擁擠、縮短出行延時(shí),改善我國獨(dú)有的交通問題。平面交叉口是城市交通改善的一個(gè)重點(diǎn),它是整個(gè)城市道路的瓶頸帶,對(duì)其進(jìn)行的交通信號(hào)控制方法的研究具有重大意義。交通信號(hào)燈的出現(xiàn),使得交通狀況可以被有效管制成為可能,對(duì)于提高道路通行能力、疏導(dǎo)交通流量以及減少交通事故的發(fā)生有著明顯效果,更減輕了交警輪流指揮的辛苦和危險(xiǎn),實(shí)現(xiàn)了人,車,路三者的同步協(xié)調(diào)?,F(xiàn)階段,已經(jīng)有一些先進(jìn)的創(chuàng)意,它們體現(xiàn)出了更多智能化、自動(dòng)化、數(shù)字化等更先進(jìn)的交通燈控制方案,這讓我們更加方便地對(duì)城市交通進(jìn)行維護(hù)管理,并讓我們可以在更加便利和安全的交通環(huán)境下生活。1.2現(xiàn)在城市路口交通燈控制技術(shù)現(xiàn)狀城市機(jī)動(dòng)車數(shù)量正在不斷地增加,在許多大城市中,也出現(xiàn)了交通超負(fù)荷運(yùn)行的狀況。所以,從80年代后期開始,這些城市紛紛開始修建高速道路,在高速道路建設(shè)完成之初,也確實(shí)有效地改善了交通狀況。然而,隨著交通量的快速增長和對(duì)高速路的系統(tǒng)控制以及研究意識(shí)的缺乏,高速道路沒有如預(yù)期充分發(fā)揮出其作用。而在構(gòu)造上城市高速道路的特點(diǎn),也決定了必然城市高速道路的交通狀況會(huì)受到普通道路與高速道路藕合處交通狀況的制約。所以,采用什么樣的控制方法才合適,才能最大限度地利用好耗費(fèi)巨資修建的城市高速道路,緩解主干道車流量繁忙的交通擁堵狀況這一問題,已經(jīng)慢慢成為城市規(guī)劃以及交通運(yùn)輸管理部門需要解決的主要問題。1.3單片機(jī)概述目前,計(jì)算機(jī)系統(tǒng)的開發(fā)方向分為三個(gè),這三個(gè)方向分別是:網(wǎng)絡(luò)化,巨型化,單片化。高速數(shù)據(jù)處理的超級(jí)計(jì)算機(jī)以及解決復(fù)雜的計(jì)算系統(tǒng)仍然在工作,因此,超級(jí)計(jì)算機(jī)朝向電流以及高速方向的處理能力也在不斷努力。供應(yīng)鏈管理的最明顯的好處是,你可以嵌入到各種儀器,設(shè)備。這是不可能的超級(jí)計(jì)算機(jī)以及網(wǎng)絡(luò)[1]單片機(jī)在目前的發(fā)展情況來看,呈現(xiàn)出幾個(gè)趨勢(shì):

(1)高可靠性。提高應(yīng)用以及互聯(lián)網(wǎng)連接的水平是一個(gè)明顯的趨勢(shì)。

(2)越來越多的集成組件。NS(美國國家半導(dǎo)體)公司宜巴單片機(jī)語音,視頻組件也被集成到設(shè)備中,也就是單片機(jī)的意義只在于一個(gè)單片集成電路,而不在其功能;如果它可以從功能的角度講是萬能機(jī)。因?yàn)橛糜诟鞣N應(yīng)用其內(nèi)部集成電路。

(3)低功耗。而在越來越多的模擬電路中,隨著半導(dǎo)體工藝技術(shù)的發(fā)展以及系統(tǒng)設(shè)計(jì)水平的提高,單片機(jī)將繼續(xù)產(chǎn)生新的變化以及進(jìn)步,人們最終可能會(huì)發(fā)現(xiàn):微控制器以及微處理器系統(tǒng)之間的距離越來越小,甚至難以辨認(rèn)。1.4方案的設(shè)計(jì)與論證設(shè)計(jì)單片機(jī)為核心,倒計(jì)時(shí)用LED數(shù)碼來指示,根據(jù)設(shè)計(jì)要求,我們考慮的功能模塊,最佳解決方案的多種設(shè)計(jì)方案,以實(shí)現(xiàn)各種實(shí)時(shí)顯示系統(tǒng)狀態(tài),系統(tǒng)還創(chuàng)建根據(jù)交通擁堵的運(yùn)輸時(shí)間可分別公路以及二級(jí)公路設(shè)置,以提高工作效率,緩解交通擁堵。系統(tǒng)總體設(shè)計(jì)框圖如圖所示。交通燈控制的框圖如下圖1-1所示,主要有控制電路、按鍵電路、晶振電路、復(fù)位電路、顯示電路、電源電路等電路組成。數(shù)碼管顯示電路電源電路單片數(shù)碼管顯示電路電源電路單片機(jī)時(shí)鐘電路時(shí)鐘電路Led信號(hào)燈控制電路復(fù)位電路Led信號(hào)燈控制電路復(fù)位電路按鍵電路按鍵電路圖1-1交通燈控制框圖1.4.1電源提供方案為了模塊的穩(wěn)定性,它必須有一個(gè)可靠的電源。設(shè)計(jì)考慮到了兩種動(dòng)力選擇:方案一:使用單獨(dú)的電源。這個(gè)方案的優(yōu)勢(shì)是穩(wěn)定以及可靠,并且有多種成熟電路可用;缺點(diǎn)是,每個(gè)模塊使用獨(dú)立的電源,會(huì)使系統(tǒng)變得復(fù)雜,可能影響電路的整體穩(wěn)定性。

方案二:用單片機(jī)控制模塊來提供電力。這個(gè)方案的優(yōu)勢(shì)是,該系統(tǒng)簡(jiǎn)潔,節(jié)約成本;缺點(diǎn)是輸出功率不高。

綜上所述,選擇第二個(gè)方案。1.4.2顯示界面方案該系統(tǒng)要求完成倒計(jì)時(shí)功能。因?yàn)樯鲜鲈颍@次設(shè)計(jì)考慮了兩種選擇:方案一:完整的LED點(diǎn)陣顯示屏。這個(gè)功能強(qiáng)大的程序,它可以很容易地顯示各種中國文字,英文字符和圖形等;但復(fù)雜,必須做大量的軟件工作。

方案二:完全采用數(shù)字顯示。這個(gè)方案的優(yōu)勢(shì)是簡(jiǎn)單,是可以做到的倒計(jì)時(shí)功能。但缺點(diǎn)是,更少的特征只能顯示有限的符號(hào)以及數(shù)字的字符。根據(jù)設(shè)計(jì)要求,方案二較為滿足要求,所以這種設(shè)計(jì)使用了方案二來實(shí)現(xiàn)顯示功能。1.4.3輸入方案這里同樣給出了兩種可用方案:方案一:8155擴(kuò)展I/O端口,鍵盤以及顯示器。這一方案的優(yōu)勢(shì)是使用的靈活可編程的,并且有RAM以及計(jì)數(shù)器。如果選用這個(gè)當(dāng)個(gè)可以給我們提供更多的I/O端口,但是操作稍微復(fù)雜一些。方案二:在I/O端口線直接連接按鈕開關(guān)。因?yàn)榱骶€型以及優(yōu)化電路的設(shè)計(jì),所以端口資源還更的其余部分。因?yàn)樵撓到y(tǒng)是一個(gè)交通燈以及數(shù)字控制,只需使用微控制器本身的I/O端口,可實(shí)現(xiàn)的,以及自己的計(jì)數(shù)器以及RAM已經(jīng)足夠,所以選擇方案二。2系統(tǒng)總體設(shè)計(jì)在硬件計(jì)劃的全部體系的基礎(chǔ)上還要斟酌許多方面,例如要達(dá)成交通燈的基本功能,除此之外,還重要思考如下要素:①體系的穩(wěn)定性,設(shè)備的通用性②容易購買;③軟件編程易于實(shí)施;④其他系統(tǒng)功能以及性能。因此,至關(guān)硬件設(shè)計(jì)很重要?,F(xiàn)在,一個(gè)個(gè)從實(shí)現(xiàn)各功能模塊的討論以及分析。2.1總體設(shè)計(jì)該計(jì)劃以單片機(jī)為中心,選用模塊化來進(jìn)行分模塊設(shè)計(jì),分別為了實(shí)現(xiàn)如下功效模塊:?jiǎn)纹瑱C(jī)控制體系,鍵盤以及狀態(tài)體現(xiàn),模塊倒計(jì)時(shí)。單片機(jī)作為硬件系統(tǒng)的核心,既作為協(xié)調(diào)作業(yè)機(jī)械控制器以及數(shù)據(jù)處理器。她是有單片機(jī)的振蕩電路和復(fù)位電路。該體系選用雙數(shù)字倒計(jì)時(shí)計(jì)數(shù)功效,最大體現(xiàn)數(shù)為99。界面設(shè)計(jì)方便,控制簡(jiǎn)單,本設(shè)計(jì)的最大特點(diǎn)是優(yōu)化物理結(jié)構(gòu)。2.2單片機(jī)的選擇在微型計(jì)算機(jī)的重要分支中單片機(jī)占有一席之地,它是可行性很強(qiáng)的模式。單片機(jī)的全稱是單片微型計(jì)算機(jī),尤其是在控制領(lǐng)域,通常也稱為微控制器。一般設(shè)備構(gòu)成一個(gè)單芯片。具備和計(jì)算機(jī)相同的基本功能:CPU,存儲(chǔ)器以及I/O接口電路。所以,微型控制器只需要軟硬件之間組合適當(dāng),就可以是組成一個(gè)單芯片的控制系統(tǒng)。單片機(jī)從一代開始發(fā)展到如今的第四代,正朝著功能多樣化,性能高級(jí)化,功耗低消耗,價(jià)格低廉,存儲(chǔ)容量大等良好的相容性結(jié)構(gòu)的方向發(fā)展。僅限于以下幾個(gè)方面的發(fā)展趨勢(shì):功能將單片機(jī)所需要的存儲(chǔ)器以及I/O端口集成在一個(gè)芯片上,從而形成可以實(shí)現(xiàn)更多的微控制器。例如,A/D,PWM,PCA(可編程計(jì)數(shù)器陣列),WDT(看門狗定時(shí)器看門狗),高速I/O端口以及計(jì)數(shù)器捕捉/比較邏輯。[2]一些微控制器,用于在一定的應(yīng)用領(lǐng)域,集成相關(guān)聯(lián)的控制設(shè)備,以降低芯片的應(yīng)用的數(shù)目。例如,少許以51內(nèi)核芯片為中心,集成USB控制器,智能卡接口,MP3解碼器,CAN或I*I*C總線控制器,LED,LCD或VFD顯示驅(qū)動(dòng)器開始被集成在八個(gè)MCU。(2)高效率以及高性能單片機(jī)采用RISC功能,來提高執(zhí)行速度以及效率處理,為了控制器的性能得到顯著改善,提出了流水線以及DSP設(shè)計(jì)技術(shù),MCU時(shí)鐘頻率提高;單片機(jī)的運(yùn)行效率相同的頻率已經(jīng)大大提升;因?yàn)樵黾恿思杉夹g(shù),供應(yīng)鏈管理的尋址能力以及片上ROM(FLASH)、RAM容量突破了以往的限制。因?yàn)橄到y(tǒng)具有很強(qiáng)的復(fù)雜性,開始采用如C語言的高級(jí)語言開發(fā)的單芯片方案。降低了開發(fā)難度,縮短了開發(fā)周期,減少了開發(fā)成本,改善了軟件的可塑性,增加了軟件的使用壽命。低電壓以及低功耗低電壓以及低功耗對(duì)于單片機(jī)來說是最基本的一項(xiàng)重要指標(biāo)。由于CMOS技術(shù)的廣泛使用,很多這些設(shè)備都已經(jīng)在在較低的電壓(1.2V或0.9V)下工作,功率消耗已經(jīng)降低到微安級(jí)。這些特性使單片機(jī)系統(tǒng)可以支持根據(jù)功率較小的工作時(shí)間更長。[3](4)低價(jià)格普遍的微控制器應(yīng)用中,使用了大量的單片機(jī)系統(tǒng)直接的益處便是降低成本。當(dāng)前世界各大公司為了進(jìn)步競(jìng)爭(zhēng)力,同時(shí)加強(qiáng)MCU技能,高度重視,通過削減其產(chǎn)品的價(jià)格來實(shí)現(xiàn)。這里介紹大致SCM主要應(yīng)用領(lǐng)域以及功能:(1)家用電器領(lǐng)域現(xiàn)在更新家電,銷售等環(huán)節(jié),應(yīng)用越來越廣泛,如電子玩具以及先進(jìn)的視頻游戲單片機(jī),單片機(jī)將應(yīng)用其控制功能;以及衣物的洗滌機(jī)可用于識(shí)別微控制器以及臟污染程度,從而自動(dòng)選擇洗滌強(qiáng)度以及洗滌時(shí)間的類型;在冰柜冷藏室選用單片機(jī)控制食物的種類和保存食品標(biāo)識(shí)可以自動(dòng)選擇制冷溫度和貯藏時(shí)間;微波加熱也可以通過微控制器確定自動(dòng)識(shí)別食物的溫度以及加熱時(shí)間,在等芯片技術(shù)的應(yīng)用,這些家電的類型,兩者相比傳統(tǒng)技術(shù)的性能以及功能方面取得了很大的進(jìn)步。(2)辦公自動(dòng)化領(lǐng)域單片機(jī)被廣泛應(yīng)用于計(jì)算機(jī)鍵盤,磁盤驅(qū)動(dòng)器,打印機(jī),復(fù)印機(jī),電話以及傳真機(jī)等。商業(yè)應(yīng)用領(lǐng)域商業(yè)應(yīng)用類似于家庭和辦公應(yīng)用,而是著眼于穩(wěn)定,設(shè)備的可靠性和安全性。電子測(cè)量儀器廣泛應(yīng)用于商業(yè)系統(tǒng),收銀,條碼閱讀器,安防監(jiān)控系統(tǒng),空調(diào)系統(tǒng)以及制冷保鮮系統(tǒng),全部采用專用系統(tǒng)芯片微處理器。與通用計(jì)算機(jī)比擬,因?yàn)檫@些體系相對(duì)關(guān)閉,病毒能夠更有效地防備電磁干預(yù),升高可靠性。(4)工業(yè)自動(dòng)化事實(shí)上,它是從最初單芯片產(chǎn)業(yè)開始興起,是因?yàn)樗诠I(yè)控制領(lǐng)域的應(yīng)用非常廣泛,單片機(jī)技術(shù),構(gòu)成了各種各樣的數(shù)據(jù)采集系統(tǒng)以及智能控制系統(tǒng),如工廠流水線智能管理,智能電梯,報(bào)警系統(tǒng)等,都通過單片機(jī)技術(shù)以及計(jì)算機(jī)匯集形成二級(jí)控制體系。(5)智能儀表與集成智能傳感器MCU具有集成度高,體積小,強(qiáng)大的控制功能以及靈活擴(kuò)展等特點(diǎn),處理速度快,可靠性高,所以應(yīng)用程序的智能儀器儀表等領(lǐng)域是非常廣泛的。在某方面上來說,微控制器驅(qū)動(dòng)的基礎(chǔ)衡量,保持儀表技巧的一場(chǎng)革命,通過單片機(jī)技巧實(shí)現(xiàn)了儀表技術(shù)數(shù)字化,智能化,綜合性,多功能的,與傳統(tǒng)的或數(shù)字電子電路電路相比,功能更強(qiáng)大,集成而更為突出。(6)現(xiàn)代交通與航空航天領(lǐng)域通常用在電子綜合顯示系統(tǒng),電力監(jiān)控系統(tǒng),自動(dòng)駕駛系統(tǒng),通訊系統(tǒng)以及運(yùn)營監(jiān)控系統(tǒng)。尺寸,功耗,穩(wěn)定性,以及實(shí)時(shí)性請(qǐng)求的這些區(qū)域每每比商業(yè)系統(tǒng)甚至更高,因此,使用該SCM體系是更重要的。2.3單片機(jī)的基本結(jié)構(gòu)AT89S52單片機(jī)是一種低功耗,低電壓,高性能CMOS8位微控制器,具有8KB(可承受1000年擦除周期)可擦寫閃存可編程只讀程序存儲(chǔ)器(EPROM),該器件采用ATMEL高密度CMOS技術(shù)以及公司的非易失性存儲(chǔ)器(NURAM)技術(shù)制造,輸出引腳以及指令集兼容的MCS-51,快閃存儲(chǔ)器芯片允許可再編程系統(tǒng)內(nèi),或通過常規(guī)的非易失性存儲(chǔ)器編程到程序。因此,AT89C52是一款功能強(qiáng)大,高靈活性以及低成本的單芯片,可在各控制區(qū)很容易地應(yīng)用。AT89S52具有以下主要特性:(1)8KB可改編流程FLASH存儲(chǔ)器;全表態(tài)工作:0~24HZ;(3)256X8字節(jié)內(nèi)部RAM;(4)32個(gè)外部雙向輸入,輸出(I、O)口;引腳說明如圖2-1。圖2-1AT89S52引腳說明引腳功能如下:VCC:電源電壓。GND:地面。P0口:設(shè)定時(shí)間線端口地址轉(zhuǎn)換(低8位)以及數(shù)據(jù)總線復(fù)用,激活內(nèi)部上拉電阻。當(dāng)FLASH編程,P0口回收指令字節(jié),而在流程校驗(yàn)輸出目標(biāo)字節(jié),當(dāng)檢查需求外部上拉電阻。在拜訪外部數(shù)據(jù)儲(chǔ)存器或流程儲(chǔ)存器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)以及數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。FLASH編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻[15]。P1口:內(nèi)部的上拉電阻I/O口包括一個(gè)8位雙向P1,P1的硬件輸出緩沖器可啟動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門。端口寫“1”拉通的端口內(nèi)部拉高,此時(shí)可以作為輸入。行為輸入端口利用,由于內(nèi)部上拉電阻的存在,一個(gè)引腳被拉低時(shí),當(dāng)前的外部信號(hào)的輸出。在FLASH編程以及驗(yàn)證,P1接收低8位地址。P2口:8位雙向IP2是一個(gè)內(nèi)部的上拉電阻/O口,P2輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門。端口寫“1”拉通的端口內(nèi)部拉高,此時(shí)可以作為輸入。作為輸入端口使用,因?yàn)閮?nèi)部上拉電阻的存在,一個(gè)引腳被拉低時(shí),當(dāng)前的外部信號(hào)的輸出。要訪問外部程序存儲(chǔ)器或16位外部數(shù)據(jù)存儲(chǔ)器地址(如執(zhí)行MOVX@DPTR指令),P2口送出高8位地址數(shù)據(jù)。P3口:8位雙向IP3是一個(gè)內(nèi)部的上拉電阻/O口,P3輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門。端口寫“1”拉通的端口內(nèi)部拉高,此時(shí)可以作為輸入。作為輸入端口使用,因?yàn)閮?nèi)部上拉電阻的存在,一個(gè)引腳被拉低時(shí),當(dāng)前的外部信號(hào)的輸出[9]。P3除了作為通用I/O口線,但更重要的用途是它的第二個(gè)功能,表2-1中所述的具體特征。P3口還接收了閃存FLASH編程以及學(xué)校一些控制信號(hào)。表2-1P3口的第二功能表端口引腳第二功能P3.0RXD(穿行輸出口)P3.1TXD(穿行輸入口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時(shí)/計(jì)數(shù)器0)P3.5T1(定時(shí)/計(jì)數(shù)器0)P3.6WR(外部數(shù)據(jù)寫選通)P3.7RD(外部數(shù)據(jù)讀選通)RST:復(fù)位輸入。當(dāng)振蕩器RST引腳為高電平兩個(gè)機(jī)器周期以上的復(fù)位裝置。ALE/PROG:訪問外部程序存儲(chǔ)器以及數(shù)據(jù)存儲(chǔ)器,當(dāng)ALE(地址鎖存使能)輸出脈沖用于鎖存低8個(gè)字節(jié)的地址。無論是否會(huì)訪問外部存儲(chǔ)器,ALE輸出的時(shí)鐘振蕩頻率都是固定值,為正脈沖信號(hào)的1/6,所以他可能或外部輸出時(shí)鐘定時(shí)的目的。應(yīng)當(dāng)指出的是:ALE脈沖會(huì)在訪問外部存儲(chǔ)器是跳過一個(gè)脈沖。在FLASH存儲(chǔ)器編程,該引腳還可以應(yīng)用于輸入編程脈沖(PROG)。即使有需要,經(jīng)過特別功效寄存器(SFR)地區(qū)D0位8EH單位ALE操作能夠禁止。這一點(diǎn),ALE惟有被一個(gè)MOVX以及MOVC指令激活。另外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE失效。PSEN:外部程序存儲(chǔ)器讀選通信號(hào)循序的一個(gè)信號(hào),當(dāng)AT80C51取從外部程序存儲(chǔ)器指令(或數(shù)據(jù)),PSEN被激活兩次,每臺(tái)機(jī)器在每個(gè)周期內(nèi)可以激活兩次。在此期間,訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),兩個(gè)有效PSEN信號(hào)不出現(xiàn)。EA/VPP:外部訪問允許。為了使CPU僅訪問外部程序存儲(chǔ)器(尋址空間0000H-FFFFH),EA端必須保持低(地)。作為EA的高端(Vcc的一側(cè)),CPU的指令執(zhí)行的內(nèi)部程序存儲(chǔ)器。當(dāng)FLASH存儲(chǔ)器編程,該引腳與+12V的編程許可電源Vpp的,這務(wù)必利用編程電壓12V的器件。XTAL1:反相振蕩放大器以及內(nèi)部時(shí)鐘發(fā)生器的輸入。XTAL2:振蕩器反相放大器的輸出端2.4單片機(jī)外圍電路設(shè)計(jì)2.4.1復(fù)位電路設(shè)計(jì)MCS-51RST復(fù)位輸入引腳MCS-51提供了技術(shù)措施來初始化,您可以使程序從指定位置開始,只要RST引腳發(fā)生在兩個(gè)機(jī)器周期以上高的時(shí)候,它可以產(chǎn)生復(fù)位操作,只要RST居高不下,MCS-51周期復(fù)位[5],從高級(jí)別只有一個(gè)RET低電平后,MCS-51開始從地址0000H該系統(tǒng)程序執(zhí)行使用復(fù)位按鈕復(fù)位電路,如圖2-2所示。圖2-2按鍵復(fù)位方式復(fù)位電圖2.2.2外部晶振時(shí)鐘電路設(shè)計(jì)時(shí)鐘MCS-51可以用兩種方式來生產(chǎn),一個(gè)是內(nèi)部的方式,與芯片振蕩器電路;另一個(gè)是外部的方式,本文根據(jù)實(shí)際需求以及簡(jiǎn)單,使用內(nèi)部振蕩模式中,內(nèi)部的MCS-51具有一個(gè)放大器,引腳XTAL1以及XTAL2是的輸入以及輸出放大器,該放大器芯片是晶體或陶瓷諧振器的反饋元件,兩個(gè)放大器芯片一起構(gòu)成一個(gè)自激振蕩裝置。MCS-51,雖然也有內(nèi)部振蕩電路,而是形成時(shí)鐘,必須添加成分,所以振蕩時(shí)鐘電路,外部晶體振蕩器以及電容器C1以及C2的實(shí)際組合物形成的并聯(lián)諧振電路連接到反饋回路,電容器的尺寸將影響振蕩器的振蕩頻率穩(wěn)定的水平,因?yàn)檎駝?dòng)速度以及溫度的穩(wěn)定性。晶體頻率可以是1.2MHZ?12MHZ任選之間,電容器C1以及C2是20PF之間的典型值?100pF的選擇,因?yàn)樵撓到y(tǒng)使用一個(gè)計(jì)時(shí)器,為了便于計(jì)算,使用12MHZ晶體,選擇電容30pF的。如圖2-3。圖2-3外部晶振時(shí)鐘電路2.2.3顯示模塊電路設(shè)計(jì)該模塊由共陽極LED數(shù)碼管,采用數(shù)字化控制的動(dòng)態(tài)掃描基本思路,由晶體管,當(dāng)控制數(shù)字IO端口P20以及P21低(以及晶體管基數(shù)很低),晶體管導(dǎo)通,VCC電源鎖通過晶體管數(shù)字電源,數(shù)碼管點(diǎn)亮,采用數(shù)碼管點(diǎn)亮余輝以及人眼視覺基本思路的持久性的,它看起來像數(shù)碼管被同時(shí)點(diǎn)亮。如圖2-4。圖2-4顯示模塊電路從設(shè)計(jì)的角度要求,表示時(shí)間的流逝,必須是兩位LED,從節(jié)省硬件資源的角度考慮,可用于掃描處理,對(duì)7段的方式,占據(jù)7的微控制器I/O口,并分別在兩個(gè)顯示復(fù)雜的兩個(gè)電子開關(guān)占用兩個(gè)I/O端口,共四組紅綠燈十字路口,有黃色的轉(zhuǎn)換,共有12燈應(yīng)與12端口以及應(yīng)急交通控制按鈕在兩個(gè)方向,占兩個(gè)I/O端口,所以單片機(jī)的I/O端口是24的實(shí)際占領(lǐng),因此,我們可以在ATAT89S52使用51臺(tái)計(jì)算機(jī)的中央處理器。單片機(jī)的I/O口作為輸出,以更大的能力來吸收電流,所以我們可以使用常見的數(shù)碼顯示管,所以I/O端口可以直接啟動(dòng),可以簡(jiǎn)化硬件設(shè)計(jì)[10]以下為數(shù)碼管的相關(guān)定義函數(shù)[8]:ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,// A B C D EF 不顯示 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼 uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=4;//顯示數(shù)碼管的個(gè)位數(shù)//數(shù)碼管位選定義sbitsmg_we1=P2^0; //數(shù)碼管位選定義sbitsmg_we2=P2^1;sbitsmg_we3=P3^6;sbitsmg_we4=P3^7;chardx_s=0; //東西南北倒計(jì)時(shí)變量sbitdx_red=P2^4; //東西紅燈sbitdx_green=P2^3; //東西綠燈sbitdx_yellow=P2^2; //東西黃燈sbitnb_red=P2^7; //南北紅燈sbitnb_green=P2^6; //南北綠燈sbitnb_yellow=P2^5; //南北黃燈 ucharflag_jtd_mode;//交通燈的模式根據(jù)時(shí)間bitflag_1s=0;bitflag_500ms;bitflag_dx_nb; //東西南北模式ucharflag_5m_value;uchari;ucharflag_alarm; //模式uchardx_time=30,nb_time=20;//東西、南北的時(shí)間ucharflag_jdgz;//交通管制3交通信號(hào)燈控制系統(tǒng)的設(shè)計(jì)交通燈由紅,綠,黃燈組成。紅色光以指示流量,它允許綠光通過,黃燈表示警告。機(jī)動(dòng)車信號(hào)燈,非機(jī)動(dòng)車信號(hào)燈,行人信號(hào)燈,車道燈,方向燈,警燈,道路以及鐵路穿越燈都是交通信號(hào)燈的一部分。交通燈十字路口的道路,通過發(fā)出旅游或停止指揮車輛,行人,讓誰在同一時(shí)間到達(dá)所有的人,車輛通行流量,保證平穩(wěn)安全道口。因此,在主要道路路口必須正確設(shè)計(jì)的系統(tǒng)。3.1十字路口交通信號(hào)燈具體的控制要求(1)交通信號(hào)燈位于卡車和一個(gè)較小的分支道路交通量,每個(gè)有三個(gè)。青綠色的南北方向以及東西方向不能亮;如果你光,應(yīng)立即關(guān)閉自動(dòng)信號(hào)系統(tǒng),并立即發(fā)出報(bào)警信號(hào)。系統(tǒng)工作后,第南北紅燈亮并保持30秒;與此同時(shí),一些綠色的光,并維持25秒的時(shí)候25歲,東西綠燈熄滅。當(dāng)當(dāng)西方向上的綠燈時(shí)間到熄滅時(shí),東西方向上的黃燈亮并保持5秒,然后將黃色的東西了,東西紅燈,紅燈熄滅,而南北,南北綠燈;東西紅燈并維持30秒;同時(shí),南北以及綠燈25秒保持;那么,南北綠燈熄滅時(shí),綠燈熄滅南北,南北黃燈熄滅保持5秒后;而紅光南北,東西向綠燈。因此,工作周期結(jié)束時(shí),如下圖3-1交通信號(hào)燈變化表:圖3-1交通燈循環(huán)過程示意圖(2)在交通燈以及閃光的同時(shí),兩個(gè)七段顯示器與一個(gè)倒計(jì)時(shí)的交點(diǎn),這樣,車輛以及行人可以清楚地知道多久燈將在另一個(gè)變化。司機(jī)以及行人,以能夠準(zhǔn)確地傳遞在有限的時(shí)間。3.2五岔路口交通信號(hào)燈示意圖五岔路口可簡(jiǎn)化為圖3-2如下顯示,圖中道路部分分為五個(gè)岔口,我分別將五個(gè)岔口進(jìn)行編號(hào),以方便在下文中進(jìn)行循環(huán)描述。在實(shí)際情況中,可根據(jù)各個(gè)路口的實(shí)際車流量大小來進(jìn)行編號(hào)。圖3-2五岔路口示意圖3.3五岔路口交通燈工作情況一個(gè)循環(huán)兩分半鐘:1->4,1->3,3->130秒1->2,3->5,3->430秒2->5,2->4,4->230秒2->3,4->1,4->530秒5->1,5->2,5->330秒3.4路口交通燈時(shí)間處理函數(shù)模塊voidjiaotongdeng_dis(){if(flag_1s==1) { flag_1s=0; if(dx_s==0) { if(flag_dx_nb==1) dx_s=nb_time; //南北時(shí)間 else dx_s=dx_time; //東西時(shí)間 flag_dx_nb=~flag_dx_nb; } dx_s--; } dis_smg[0]=smg_du[dx_s%10]; dis_smg[1]=smg_du[dx_s/10]; dis_smg[2]=smg_du[dx_s%10]; dis_smg[3]=smg_du[dx_s/10];/***********************南北時(shí)間*********************************/ if(flag_dx_nb==0) { if(dx_s>5) { dx_red=1;//滅 dx_green= 0; //亮 dx_yellow=1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當(dāng)小于5秒時(shí)黃燈要閃了 { dx_red=1;//滅 dx_green= 1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 if(flag_500ms==0) { dx_yellow=0;//亮 } else { dx_yellow=1;//滅 } } }/***********************東西時(shí)間*********************************/ if(flag_dx_nb==1) { if(dx_s>5) { dx_red=0;//亮 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 0; //亮 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當(dāng)小于5秒時(shí)黃燈要閃了 { dx_red=0;//滅 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 1; //滅 if(flag_500ms==0) //黃燈閃爍 { nb_yellow=0; //亮 } else { nb_yellow=1; //滅 } } } }4交通信號(hào)燈控制系統(tǒng)程序編制4.1軟件設(shè)計(jì)應(yīng)用環(huán)境本計(jì)劃軟件的計(jì)劃是在KeilC51的環(huán)境下編譯的。KeilC51單片機(jī)兼容凱爾軟件公司在美國發(fā)布的51系列單片機(jī)C語言軟件開發(fā)系統(tǒng),軟件提供了一個(gè)豐富的庫函數(shù)和強(qiáng)大的開發(fā)和調(diào)試工具的集成,所有的Windows界面。另一個(gè)重要的點(diǎn),只要看一下編譯后生成的匯編代碼,可以實(shí)現(xiàn)我們的C51單片機(jī)生成的目標(biāo)代碼效率非常高,大部分的語句生成的匯編代碼非常緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。C語言有以下特點(diǎn):(1)語言簡(jiǎn)潔、緊湊、使用方便、靈活。C語言一共只有32個(gè)字,9種控制語句,程序書寫自由,主要在小寫字母,壓縮不必要的成分。(2)運(yùn)算符豐富。C操作符包含范圍很廣,共有34種運(yùn)營商,使C操作類型非常豐富,表達(dá)類型多樣化,靈活使用不同的運(yùn)營商在其他高級(jí)語言很難實(shí)現(xiàn)。(3)數(shù)據(jù)結(jié)構(gòu)豐富,各種現(xiàn)代語言的數(shù)據(jù)結(jié)構(gòu),可以用于操作來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。(4)結(jié)構(gòu)化控制語句作為一個(gè)方便的程序的程序模塊的實(shí)現(xiàn)功能的模塊單元。(5)語法要求不多,可自由發(fā)揮程序構(gòu)想。(6)C語言可以執(zhí)行一個(gè)操作[2],可以實(shí)現(xiàn)大部分的匯編語言功能,可以直接對(duì)硬件。因此,C高級(jí)語言的功能,但也有許多低級(jí)語言的功能,可以用來編寫系統(tǒng)軟件。C語言的二元性,使它不僅是成功的系統(tǒng)描述語言,和泛型編程語言。(7)用C語言寫的程序可移植性好。基本沒有修改就可以用于計(jì)算機(jī)和各種操作系統(tǒng)的各種模型用C語言來對(duì)操作系統(tǒng)進(jìn)行系統(tǒng)實(shí)用程序設(shè)計(jì)以及需求對(duì)硬件進(jìn)行操作的場(chǎng)合,明顯地優(yōu)勢(shì)于其他高級(jí)語言,有的大型應(yīng)用軟件也用C語言來編寫。4.2軟件設(shè)計(jì)流程軟件總體設(shè)計(jì)主要完成各部分的軟件控制以及協(xié)調(diào)。本系統(tǒng)主程序模塊主要完成系統(tǒng)的初始化、發(fā)送數(shù)據(jù)顯示和鍵盤掃描,同時(shí)等待外部中斷,并根據(jù)功能的要求相應(yīng)的操作。交通燈根據(jù)其顯示情況可以分為四個(gè)狀態(tài),可以通過定時(shí)來控制每個(gè)狀態(tài)的時(shí)間。其流程圖如圖4-1所示。設(shè)置定時(shí),顯示初始化設(shè)置定時(shí),顯示初始化南北綠燈亮,東西紅燈亮,延時(shí)南北黃燈閃爍,東西紅燈亮,延時(shí)南北紅燈亮,東西綠燈亮,延時(shí)南北紅燈亮,東西黃燈閃爍,延時(shí)開始圖4-1軟件流程設(shè)計(jì)4.3交通燈定時(shí)器模塊AT89S52單片機(jī)內(nèi)部的3個(gè)定時(shí)器分別是T0,T1和T2,本次設(shè)計(jì)中使用T0工作方式1,在16位定時(shí)器,定時(shí)50ms,每秒信號(hào)產(chǎn)生20次中斷,來控制紅綠燈的亮滅時(shí)間。T0、T1的工作方式由工作方式寄存器TMOD來設(shè)置。這次設(shè)置TMOD=0x01,即T0工作于方式0(16位定時(shí)器)。內(nèi)部定時(shí)器用來當(dāng)作定時(shí)器時(shí),是對(duì)機(jī)器周期計(jì)數(shù),每個(gè)機(jī)器周期的長度是12個(gè)振蕩周期。定時(shí)常數(shù)的設(shè)置可用一下方式計(jì)算:機(jī)器周期=12/12MHz=1us(65536-定時(shí)常數(shù))*1.0us=50ms所以定時(shí)常數(shù)是50000。定時(shí)器T0,定時(shí)器T1初始化相關(guān)程序:voidtime0_init() {EA=1;//開總中斷TMOD=0X11;//定時(shí)器0、定時(shí)器1工作方式1ET0=1;//開定時(shí)器0中斷TR0=1;//允許定時(shí)器0定時(shí)ET1=1;//開定時(shí)器1中斷TR1=1;//允許定時(shí)器1定時(shí)} 4.4定時(shí)器初值模塊設(shè)計(jì)定時(shí)器工作時(shí)要事先給計(jì)數(shù)器假設(shè)一個(gè)初始值,將這個(gè)值送到TH以及TL中。它是用加法運(yùn)算法則來存儲(chǔ)數(shù)字的,并能當(dāng)出現(xiàn)全1到全0時(shí)自動(dòng)產(chǎn)生中斷請(qǐng)求。因此工作于方式1,定時(shí)器為16位計(jì)數(shù)器其定時(shí)時(shí)間由下式計(jì)算:定時(shí)時(shí)間=(216-X)×振蕩周期×12(或)X=216-定時(shí)時(shí)間/振蕩周期×12式中X為T0的初始值,該值以及計(jì)數(shù)器工作方式有關(guān)。方式0定時(shí)時(shí)間=213×1微秒=8.192毫秒方式1定時(shí)時(shí)間=216×1微秒=65.536毫秒18秒鐘仍舊高處了計(jì)數(shù)器的最大按時(shí),因此咱們只有采納定時(shí)器以及軟件相結(jié)合的舉措才氣辦理這個(gè)問題,定時(shí)器需定時(shí)50毫秒,故T0工作于方式1,定時(shí)20次,就可定時(shí)一秒。相應(yīng)程序代碼(1)主程序定時(shí)器需定時(shí)50毫秒,故T0工作于方式1。振蕩周期×12=1微秒初值:X=216-50ms/1us=15536=3CBOHORG1000HSTART:MOVTMOD,#01H;令T0為定時(shí)器方式1MOVTH0,#3CH;裝入定時(shí)器初值MOVTL0,#BOH;MOVIE,#82H;開T0中斷SEBTTR0;啟動(dòng)T0計(jì)數(shù)器MOVRO,#14H;軟件計(jì)數(shù)器賦初值LOOP:SJMP$;等待中斷(2)中斷服務(wù)子程序ORG000BHAJMPBRT0ORG00BHBRT0:DJNZR0,NEXTAJMPTIME;跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序DJNZ:MOVR0,#14H;;恢復(fù)R0值MOVTH0,#3CH;重裝入定時(shí)器初值MOVTL0,#BOH;MOVIE,#82H;開T0中斷RET1END結(jié)論本論文介紹了基于AT89S52單片機(jī)的交通燈的設(shè)計(jì)方法,我在這次論文中完成了基本的硬件和軟件兩方面的設(shè)計(jì)與制作,詳細(xì)介紹了系統(tǒng)硬件的背景知識(shí)以及硬件的選擇方案,還介紹了硬件設(shè)計(jì)的全部過程,并結(jié)合相關(guān)軟件知識(shí)完成了整個(gè)系統(tǒng)的軟、硬件調(diào)試,系統(tǒng)工作正常,實(shí)現(xiàn)了基本功能,完成了最初的目標(biāo)。通過這次畢業(yè)設(shè)計(jì),加強(qiáng)了我對(duì)于學(xué)習(xí)過的專業(yè)知識(shí)的了解,真正意義上的把理論知識(shí)運(yùn)用在了實(shí)際實(shí)踐當(dāng)中。在完成設(shè)計(jì)的過程中,我通過在互聯(lián)網(wǎng)上查找相關(guān)資料,詢問老師,在圖書館查找有關(guān)書籍等方法將不懂不理解的地方一一擊破。在這短時(shí)間中,也認(rèn)識(shí)到了自己的不足和短板,在日后的學(xué)習(xí)工作過程中要不斷改進(jìn)和提高。通過這次畢業(yè)設(shè)計(jì),我不僅在專業(yè)知識(shí)上進(jìn)一步的鞏固了,而且還與同學(xué)和老師建立了良好的奮斗伙伴。鍛煉了自己獨(dú)立思考和團(tuán)隊(duì)協(xié)作能力,讓自己在步入社會(huì)之前,又一次成熟了一次。再遇到不懂的地方我首先自己在網(wǎng)上查找相關(guān)資料,先自己努力了解一點(diǎn),對(duì)于再不懂的點(diǎn)我會(huì)去詢問專業(yè)知識(shí)比較扎實(shí)的同學(xué)或者找自己的導(dǎo)師去尋求幫助。提高了自己的應(yīng)用能力也提高了自己的動(dòng)手能力。主要參考文獻(xiàn)[1]秦志強(qiáng).C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)(第2版).電子工業(yè)出版社[2]譚浩強(qiáng).C語言程序設(shè)計(jì)(第三版).清華大學(xué)出版社,2005[3]蘭吉昌.51單片機(jī)應(yīng)用設(shè)計(jì)例.北京化學(xué)工業(yè)出版社,2009[4]周荷琴,吳秀清.微型計(jì)算機(jī)基本思路與接口技術(shù)(第四版).中國科學(xué)技術(shù)大學(xué)出社,2008.[5]康華光.電子技術(shù)基礎(chǔ)(第五版).華中科技大學(xué)出版社,2005[6]胡壽松.自動(dòng)控制基本思路(第五版).科學(xué)出版社,2007[7]實(shí)用電子電路設(shè)計(jì)制作300例[M].中國電力出版社,2005[8]彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例:基于8051+Proteus仿真(第2版)北京:電子工業(yè)出版社,2012,(10).[9]朱定華.數(shù)字電路與邏輯設(shè)計(jì).北京:清華大學(xué)出版社,2011.[10]趙建玲.51系列單片機(jī)開發(fā)寶典[M].電子工業(yè)出版社,2007.[11]郭天祥.新概念51單片機(jī)C語言教程.北京:電子工業(yè)出版社,2012.[12]陳毅,許飛,王學(xué)飛.基于單片機(jī)的交通燈智能控制系統(tǒng)[J].中國高新技術(shù)企業(yè),2009年第15期.[13]CharlesBlandRadcliffe.Proteus.NabuPress,2012,(02).[14]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.20082~5[15]B.A.Artwick,MicrocomputerInterfacing,Prentice-Hall,Inc,1980..附錄一:源程序代碼#include<reg52.h> //調(diào)用單片機(jī)頭文件#defineucharunsignedchar//宏定義"uchar"代替"unsignedchar"。#defineuintunsignedint //宏定義"uint"用來定義無符號(hào)整型數(shù)。#include"eeprom52.h"http://數(shù)碼管段選定義0123 4 5 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,// A B C D EF 不顯示 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼 uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=4;//顯示數(shù)碼管的個(gè)位數(shù)//數(shù)碼管位選定義sbitsmg_we1=P2^0; //數(shù)碼管位選定義sbitsmg_we2=P2^1;sbitsmg_we3=P3^6;sbitsmg_we4=P3^7;chardx_s=0; //東西南北倒計(jì)時(shí)變量sbitdx_red=P2^4; //東西紅燈sbitdx_green=P2^3; //東西綠燈sbitdx_yellow=P2^2; //東西黃燈sbitnb_red=P2^7; //南北紅燈sbitnb_green=P2^6; //南北綠燈sbitnb_yellow=P2^5; //南北黃燈 ucharflag_jtd_mode;//交通燈的模式根據(jù)時(shí)間bitflag_1s=0;bitflag_500ms;bitflag_dx_nb; //東西南北模式ucharflag_5m_value;uchari;ucharflag_alarm; //模式uchardx_time=30,nb_time=20;//東西、南北的時(shí)間ucharflag_jdgz;//交通管制/***********************數(shù)碼位選函數(shù)*****************************/voidsmg_we_switch(uchari){ switch(i) { case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;break; case1:smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break; case2:smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break; case3:smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break; } }/******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中******************/voidwrite_eeprom(){ SectorErase(0x2000); byte_write(0x2000,dx_time); byte_write(0x2001,nb_time); byte_write(0x2058,a_a); }/******************把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來*****************/voidread_eeprom(){ dx_time=byte_read(0x2000); nb_time=byte_read(0x2001); a_a=byte_read(0x2058);}/**************開機(jī)自檢eeprom初始化*****************/voidinit_eeprom() ///開機(jī)自檢eeprom初始化{ read_eeprom(); //先讀 if(a_a!=1) //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom { a_a=1; dx_time=30; nb_time=20;//東西、南北的時(shí)間 write_eeprom(); //保存數(shù)據(jù) } }/*********************************************************************名稱:delay_1ms()*功能:延時(shí)1ms函數(shù)*輸入:q*輸出:無***********************************************************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}/*********************************************************************名稱:display()*功能:數(shù)碼管顯示*輸入:無*輸出:無***********************************************************************/voiddisplay(){ uchari; for(i=0;i<smg_i;i++) { P0=0xff; //消隱 smg_we_switch(i); //位選 P0=dis_smg[i]; //段選 delay_1ms(3); }}/*********************定時(shí)器0、定時(shí)器1初始化******************/voidtime0_init() { EA=1; //開總中斷 TMOD=0X11; //定時(shí)器0、定時(shí)器1工作方式1 ET0=1; //開定時(shí)器0中斷 TR0=1; //允許定時(shí)器0定時(shí)// ET1=1; //開定時(shí)器1中斷// TR1=1; //允許定時(shí)器1定時(shí) }/*********************交通燈處理函數(shù)*********************************/voidjiaotongdeng_dis(){ if(flag_1s==1) { flag_1s=0; if(dx_s==0) { if(flag_dx_nb==1) dx_s=nb_time; //南北時(shí)間 else dx_s=dx_time; //東西時(shí)間 flag_dx_nb=~flag_dx_nb; } dx_s--; } dis_smg[0]=smg_du[dx_s%10]; dis_smg[1]=smg_du[dx_s/10]; dis_smg[2]=smg_du[dx_s%10]; dis_smg[3]=smg_du[dx_s/10];/***********************南北時(shí)間*********************************/ if(flag_dx_nb==0) { if(dx_s>5) { dx_red=1;//滅 dx_green= 0; //亮 dx_yellow=1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當(dāng)小于5秒時(shí)黃燈要閃了 { dx_red=1;//滅 dx_green= 1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 if(flag_500ms==0) { dx_yellow=0;//亮 } else { dx_yellow=1;//滅 } } }/***********************東西時(shí)間*********************************/ if(flag_dx_nb==1) { if(dx_s>5) { dx_red=0;//亮 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 0; //亮 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當(dāng)小于5秒時(shí)黃燈要閃了 { dx_red=0;//滅 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 1; //滅 if(flag_500ms==0) //黃燈閃爍 { nb_yellow=0; //亮 } else { nb_yellow=1; //滅 } } } }/********************獨(dú)立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨(dú)立按鍵程序{ staticucharkey_new; key_can=20;//按鍵值還原 P1|=0x1f; if((P1&0x1f)!=0x1f) //按鍵按下 { delay_1ms(1); //按鍵消抖動(dòng) if(((P1&0x1f)!=0x1f)&&(key_new==1)) { //確認(rèn)是按鍵按下 key_new=0; switch(P1&0x1f) { case0x1e:key_can=1;break; //得到按鍵值 case0x1d:key_can=2;break; //得到按鍵值 case0x1b:key_can=3;break; //得到按鍵值 case0x17:key_can=4;break; //得到按鍵值 } } } else key_new=1; }ucharmenu_1,flag_s;/********************設(shè)置函數(shù)*****************/voidkey_with(){ if(key_can==4)//交通管制按鍵 { flag_jdgz++; if(flag_jdgz>5) flag_jdgz=0; if(flag_jdgz==1) //全部亮紅燈 { dx_red=0;//亮 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 } if(flag_jdgz==2) //東西紅燈南北綠燈 { dx_red=0;//亮 dx_gr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論