版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 簡(jiǎn)易智能交通燈設(shè)計(jì)</b></p><p><b> 1、設(shè)計(jì)背景</b></p><p> 自從1886兩個(gè)德國(guó)人發(fā)明了第一輛汽車(chē)交通燈改變了交通路況,交通問(wèn)題也漸漸被人們所重視。從英國(guó)倫敦街頭的第一個(gè)以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,到現(xiàn)在以電為光源的紅黃綠三色交通燈,不知不覺(jué)中交通信號(hào)燈在人們?nèi)?/p>
2、常生活中占據(jù)了重要地位。隨著人們社會(huì)活動(dòng)日益增加,經(jīng)濟(jì)發(fā)展,汽車(chē)數(shù)量急劇增加,城市道路日漸擁擠,交通燈更加顯示出了它的功能,使得交通得到有效管制,對(duì)于交通疏導(dǎo),提高道路導(dǎo)通能力,減少交通事故有顯著的效果。</p><p> 近年來(lái),隨著科技的飛速發(fā)展,電子器件也隨之廣泛應(yīng)用,其中單片機(jī)也不斷深入人民的生活當(dāng)中。本次課程設(shè)計(jì)以模擬交通燈系統(tǒng)利用單片機(jī)AT89C51作為核心元件,實(shí)現(xiàn)了通過(guò)信號(hào)燈對(duì)路面狀況的智能控制
3、。在一定程度上解決了交通路口堵塞、車(chē)輛停車(chē),特殊情況的交通燈等待時(shí)間不合理、急車(chē)強(qiáng)通等問(wèn)題。在該次的設(shè)計(jì)系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、可靠性高、成本低、實(shí)時(shí)性好、安裝維護(hù)方便等優(yōu)點(diǎn),有廣泛的應(yīng)用前景。</p><p> 本模擬系統(tǒng)由單片機(jī)軟件系統(tǒng),兩位8段數(shù)碼管和LED燈顯示系統(tǒng)。和復(fù)位電路控制電路等組成,較好的模擬了對(duì)交通路面的控制。</p><p><b> 1.1 設(shè)計(jì)思路<
4、/b></p><p> (1)分析目前交通路口的基本控制技術(shù)以及各種通行方案,并以此為基礎(chǔ)提出自己的交通控制的初步方案。</p><p> ?。?)確定系統(tǒng)交通控制的總體設(shè)計(jì),包括,十字路口具體的通行禁行方案設(shè)計(jì)以及系統(tǒng)應(yīng)擁有的各項(xiàng)功能,在這里,本設(shè)計(jì)除了有信號(hào)燈狀態(tài)控制能實(shí)現(xiàn)基本的交通功能,還增加了倒計(jì)時(shí)顯示提示,并基于實(shí)際情況,又增加了緊急狀況處理和通行時(shí)間可調(diào)這兩項(xiàng)特特殊功
5、能。 </p><p> (3)進(jìn)行倒計(jì)時(shí)顯示電路,燈狀態(tài)電路,特殊情況按鍵電路的設(shè)計(jì)和對(duì)各器件的選擇及連接,大體分配各個(gè)器件及模塊的基本功能要求。</p><p> ?。?)進(jìn)行軟件系統(tǒng)的設(shè)計(jì)和仿真中,程序在KEIL軟件中用單片機(jī)c語(yǔ)言編寫(xiě),電路的搭建和仿真實(shí)現(xiàn)是在proteus軟件中實(shí)現(xiàn)的。在本次課程設(shè)計(jì)中通過(guò)對(duì)單片機(jī)內(nèi)部結(jié)構(gòu)和工作情況做了一定的研究,充分了解定時(shí)器,中斷以及延時(shí)
6、原理,為本次智能交通燈的設(shè)計(jì)提供了理論基礎(chǔ)。 </p><p> 2.單片機(jī)交通控制系統(tǒng)方案的比較、設(shè)計(jì)與論證 </p><p> 2.1 電源提供方案為使模塊穩(wěn)定工作,須有可靠電源。因此考慮了兩種電源方案:</p><p> 方案一:采用獨(dú)立的穩(wěn)壓電源。此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟</p><p> 電路可供選
7、用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會(huì)使系統(tǒng)復(fù)雜,且可能影響電路電平。</p><p> 方案二:采用單片機(jī)控制模塊提供電源。改方案的優(yōu)點(diǎn)是系統(tǒng)簡(jiǎn)明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高。</p><p> 綜上所述,選擇方案二。</p><p> 2.2 顯示界面方案</p><p> 該系統(tǒng)要求完成倒計(jì)時(shí)功能。基于上述原因,我考慮了二種方
8、案:</p><p> 方案一:采用數(shù)碼管顯示。這種方案只顯示有限的符號(hào)和數(shù)碼字符,簡(jiǎn)單,方便。</p><p> 方案二:采用點(diǎn)陣式LED 顯示。這種方案雖然功能強(qiáng)大,并可方便的顯示各種英文字符,漢字,圖形等,但實(shí)現(xiàn)復(fù)雜,成本較高。</p><p> 綜上所述,選擇方案一。</p><p><b> 2.3 輸入方案:&l
9、t;/b></p><p> 設(shè)計(jì)要求系統(tǒng)能調(diào)節(jié)燈亮?xí)r間,并可處理緊急情況,我研究了兩種方案:</p><p> 方案一:采用8155擴(kuò)展I/O 口及鍵盤(pán),顯示等。</p><p> 該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有RAM,及計(jì)數(shù)器。若用該方案,可提供較多I/O 口,但操作起來(lái)稍顯復(fù)雜。</p><p> 方案二: 直接在
10、I/O口線上接上按鍵開(kāi)關(guān)。</p><p> 由于該系統(tǒng)對(duì)于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的I/O 口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器及RAM已經(jīng)夠用。</p><p> 綜上所述,選擇方案二。</p><p> 3 單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)</p><p> 3.1單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì)</p><p&
11、gt; 設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過(guò)短暫的過(guò)渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說(shuō)明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開(kāi)始變換,直至狀態(tài)6然后循環(huán)至狀態(tài)1,周而復(fù)始,即如圖2.1所示:</p><p><b> 圖1 交通狀態(tài)</b></p><p> 本系統(tǒng)采用MSC-51
12、系列單片機(jī)AT89C51作為中心器件來(lái)設(shè)計(jì)交通燈控制器。</p><p><b> 實(shí)現(xiàn)以下功能:</b></p><p> 初始東西綠燈亮,南北紅燈亮,東西路口車(chē)通行,時(shí)隔24s,黃燈閃爍6次。之后,南北綠燈亮,東西紅燈亮,方向開(kāi)始通車(chē),時(shí)隔24s,南北黃燈閃爍6次,然后又切換成東西方向通車(chē),如此重復(fù)。</p><p> 當(dāng)發(fā)生交通意外
13、(中斷產(chǎn)生)時(shí),全部亮紅燈,進(jìn)行交通事故的處理。當(dāng)事故處理完畢(再次按中斷鍵),重新按上述方式工作。</p><p> 當(dāng)南北路口的流量大時(shí),可以增加南北路口亮綠燈的時(shí)間,當(dāng)東西路口的流量大時(shí),可以增加?xùn)|西路口亮綠燈的時(shí)間,結(jié)束后調(diào)回正常狀態(tài)。</p><p> 下面我們可以用圖表表示燈狀態(tài)和行止?fàn)顟B(tài)的關(guān)系如下:</p><p> 表1交通狀態(tài)及紅綠燈狀態(tài)&l
14、t;/p><p> 東西南北四個(gè)路口均有紅綠黃3燈和數(shù)碼顯示管2個(gè),在任一個(gè)路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止?fàn)顟B(tài)將變換。狀態(tài)及紅綠燈狀態(tài)如表1所示。說(shuō)明:0表示滅,1表示亮。</p><p> 3.2 單片機(jī)智能交通燈控制系統(tǒng)的功能要求</p><p> 本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的</p>
15、<p> 信號(hào)發(fā)生,還能進(jìn)行倒計(jì)時(shí)顯示,通行時(shí)間調(diào)整和緊急處理等功能。</p><p><b> ?。?)倒計(jì)時(shí)顯示</b></p><p> 倒計(jì)時(shí)顯示可以提醒駕駛員在信號(hào)燈燈色發(fā)生改變的時(shí)間、在“停止”和“通過(guò)”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號(hào)控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒計(jì)時(shí)顯示是用來(lái)減少駕駛員在
16、信號(hào)燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的1種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過(guò)”兩者間作出合適的選擇 。</p><p><b> ?。?)時(shí)間的設(shè)置</b></p><p> 本設(shè)計(jì)中可通過(guò)鍵盤(pán)對(duì)時(shí)間進(jìn)行手動(dòng)設(shè)置,增加了人為的可控性,如在某一時(shí)間段某一方向的車(chē)流量多時(shí),可以將延長(zhǎng)該行車(chē)方向的綠燈時(shí)間,減少紅燈時(shí)間。</p>
17、;<p> 鍵盤(pán)是單片機(jī)系統(tǒng)中最常用的人機(jī)接口,一般情況下有獨(dú)立式和行列式兩種。前者軟件編寫(xiě)簡(jiǎn)單,但在按鍵數(shù)量較多時(shí)特別浪費(fèi)I/0口資源,一般用于按鍵數(shù)量少的系統(tǒng)。后者適用于按鍵數(shù)量較多的場(chǎng)合,但是在單片機(jī)I/0 口資源相對(duì)較少而需要較多按鍵時(shí),此方法仍不能滿(mǎn)足設(shè)計(jì)要求,需要進(jìn)行I/0口的擴(kuò)展。在本次設(shè)計(jì)中,要求的按鍵控制不多,且I/0口足夠,可直接采用獨(dú)立式,方便程序的編寫(xiě)。</p><p>&
18、lt;b> (3)緊急處理</b></p><p> 交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護(hù)車(chē)、消防車(chē)、特殊車(chē)隊(duì)等急行車(chē)通過(guò)時(shí),我們都必須盡量允許其暢通無(wú)阻,畢竟在這種情況下是分秒必爭(zhēng)的,時(shí)時(shí)刻刻關(guān)系著公共財(cái)產(chǎn)安全,個(gè)人生死攸關(guān)等。由此在交通燈控制中增設(shè)禁停按鍵,使某一方向一直為綠燈,另一方向一直為紅燈就可達(dá)到想此目的。</p><p> 3.3單片機(jī)智
19、能交通燈控制系統(tǒng)的基本構(gòu)成及原理</p><p> 單片機(jī)設(shè)計(jì)智能交通燈控制系統(tǒng),可用單片機(jī)直接控制交通信號(hào)燈的狀態(tài)變化,實(shí)現(xiàn)倒計(jì)時(shí)、緊急情況處理與時(shí)間調(diào)整等功能。</p><p><b> 圖2系統(tǒng)的總體框圖</b></p><p> 據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)為控制核心,連接成最小系統(tǒng),由按鍵設(shè)置模塊產(chǎn)生輸入,信號(hào)燈狀態(tài)模塊、LED倒計(jì)
20、時(shí)模塊接受輸出。系統(tǒng)的總體框圖如上所示。</p><p> 單片機(jī)上電后,系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到LED數(shù)碼管上實(shí)時(shí)顯示。在此過(guò)程中隨時(shí)通過(guò)鍵盤(pán)調(diào)用急停按鍵和時(shí)間調(diào)節(jié)中斷。</p><p> 4智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)</p><p> 4.1 AT89C51單片機(jī)簡(jiǎn)介</p><p>
21、; AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容
22、。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 與MCS-51 兼容 ,4K字節(jié)可編程閃爍存儲(chǔ)器 ,壽命:1000寫(xiě)/擦循環(huán),數(shù)據(jù)保留時(shí)間:10年,全靜態(tài)工作:0Hz-24Hz,三級(jí)程序存儲(chǔ)器鎖定,128*8位內(nèi)部RAM,32可編程I/O線,兩個(gè)16位定時(shí)器/計(jì)數(shù)
23、器,5個(gè)中斷源(兩個(gè)外部中斷源和3個(gè)內(nèi)部中斷源) ,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時(shí)鐘電路。 </p><p><b> ·時(shí)鐘電路:</b></p><p> 時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列。</p><p><b> ·中斷系統(tǒng):</b></p&
24、gt;<p> 中斷系統(tǒng)的作用主要是對(duì)外部或內(nèi)部的終端請(qǐng)求進(jìn)行管理與處理。AT89S51共有5個(gè)中斷源,其中又2個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。</p><p> 圖3 AT89C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖</p><p> 4.2 交通燈中的中斷處理流程</p><p> ?。ǎ保┈F(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù):</p><p>
25、; 有特殊車(chē)輛要通過(guò)時(shí)就要進(jìn)行中斷,在中斷之前,先將交通燈中斷前情況保護(hù)好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場(chǎng),包括信號(hào)燈和時(shí)間顯示電路。</p><p> ?。ǎ玻┲袛啻蜷_(kāi)和中斷關(guān)閉:</p><p> 為了使特殊車(chē)輛通行按一下打開(kāi)中斷開(kāi)關(guān)就可以打開(kāi)中斷,關(guān)閉中斷開(kāi)關(guān)就關(guān)閉中斷。</p><p> ?。ǎ常┲袛喾?wù)程序:</p><p> 有中斷
26、產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車(chē)輛要求通過(guò),南北方向轉(zhuǎn)換為綠燈,東西方向?yàn)榧t燈;如果東西方向有特殊車(chē)輛要求通過(guò),東西方向轉(zhuǎn)換為綠燈,南北方向?yàn)榧t燈。</p><p><b> ?。ǎ矗┲袛喾祷兀?lt;/b></p><p> 執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號(hào)回到中斷前狀態(tài),顯示時(shí)間也和中斷
27、前一樣。</p><p> 4.3 系統(tǒng)硬件總電路構(gòu)成及原理</p><p> 實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用AT89C51單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),12個(gè)發(fā)光二極管分成4組紅綠黃三色燈構(gòu)成信號(hào)燈指示模塊,8個(gè)LED東西南北各兩個(gè)構(gòu)成倒計(jì)時(shí)顯示模塊,若干按鍵組成時(shí)間設(shè)置和緊急按鈕。</p><p> 4.3.1系統(tǒng)硬件電路構(gòu)成</p>
28、<p> 本系統(tǒng)以單片機(jī)為核心,系統(tǒng)硬件電路由狀態(tài)燈,LED顯示,按鍵,組成。其具體的硬件電路總</p><p> 其中P0用于送顯兩片LED數(shù)碼管,P1用于控制紅綠黃發(fā)光二極管,XTAL1和XTAL2接入晶振時(shí)鐘電路,REST引腳接上復(fù)位電路,P2.6與P2.7對(duì)數(shù)碼管進(jìn)行片選,P3.2即INT0緊急情況處理按鍵,P3.3即INT1接時(shí)間調(diào)整中斷按鍵。</p><p>
29、 4.3.2系統(tǒng)工作原理</p><p> 系統(tǒng)上電或手動(dòng)復(fù)位之后,系統(tǒng)先顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值送顯P1口,將要顯示的時(shí)間值的個(gè)位和十位分別送顯P0口,在此同時(shí)用軟件方法計(jì)時(shí)1秒,到達(dá)1s就要將時(shí)間值減1,刷新LED數(shù)碼管。</p><p> 時(shí)間到達(dá)一個(gè)狀態(tài)所要全部時(shí)間,則要進(jìn)行下一狀態(tài)判斷及銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時(shí)間值,</p><p
30、> 當(dāng)然,還要開(kāi)啟兩個(gè)外部中斷,其一為緊急情況處理中斷,一旦信號(hào)有效,即K鍵為低電平時(shí)進(jìn)入中斷服務(wù)子程序,東西南北路口的保持現(xiàn)有通行狀態(tài),再按一下K鍵,中斷結(jié)束返回。其二為通行時(shí)間調(diào)整中斷,若按鍵有效,進(jìn)入相應(yīng)的中斷子程序,對(duì)時(shí)間進(jìn)行調(diào)整,可延長(zhǎng)或減少某一路段的通行時(shí)間,此后再按鍵則中斷結(jié)束返回。</p><p> 4.4其它硬件介紹及連接</p><p> 4.4.1八段LE
31、D數(shù)碼管</p><p> LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長(zhǎng)、維護(hù)簡(jiǎn)便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡(jiǎn)單,分為七段和八段兩種形式,也有共陽(yáng)和共陰之分。以八段共陽(yáng)管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來(lái)顯示dP,即點(diǎn)),每個(gè)發(fā)光二極管的陽(yáng)極連在一起,如圖3.6所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的高低電平來(lái)加以控制。為方
32、便起見(jiàn),本文主要討論共陽(yáng)八段LED數(shù)碼顯示管,其他類(lèi)形的顯示管與其類(lèi)似。</p><p> LED 燈的顯示原理:通過(guò)同名管腳上所加電平的高低來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如 dp,g,f,e,d,c,b,a全亮顯示為8,采用共陽(yáng)極連接驅(qū)動(dòng)代碼,代碼表如下圖所示。 </p><p><b> 表驅(qū)動(dòng)代碼表</b></p>
33、<p> 相應(yīng)在程序軟件上,可以通過(guò)調(diào)用程序給定的秒值經(jīng)過(guò)特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取LEDMAP的代碼。</p><p> LED8段數(shù)碼管的設(shè)置為每個(gè)方位上的一對(duì)2為顯示器。四個(gè)方位上總共用8個(gè)LED接在單片機(jī)的IO口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以?xún)蛇呥B接的IO口是對(duì)稱(chēng)的。如圖3.7所示,其中A,B分別是P0,P1的網(wǎng)絡(luò)標(biāo)號(hào)。</p>
34、<p> 4.4.2 發(fā)光二極管</p><p> 根據(jù)本設(shè)計(jì)的特點(diǎn),紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。每個(gè)方向上設(shè)置紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對(duì)稱(chēng)分布的,如下圖8所示。</p><p> 4.4.3 按鍵控制</p><p> 本設(shè)計(jì)設(shè)置了有3個(gè)鍵:每個(gè)按鍵
35、一端接地,另一端接對(duì)應(yīng)的P3端口。低電平有效,當(dāng)按鍵按下端口接地,單片機(jī)捕獲到低電平,從而知道相應(yīng)的輸入信息。按鍵連接如下圖</p><p> 5 系統(tǒng)軟件程序的設(shè)計(jì)</p><p> 5.1 程序主體設(shè)計(jì)流程圖</p><p> 整個(gè)軟件程序方面主要分三大部分:主程序部分、運(yùn)行部分程序和中斷處理程序。流程圖如圖所示。</p><p>
36、 設(shè)計(jì)說(shuō)明:該智能交通燈控制系統(tǒng)的軟件設(shè)計(jì)采用的是順序執(zhí)行并反復(fù)循環(huán)的方法。智能交通燈控制系統(tǒng)在正常工作的情況下,每30S循環(huán)變化一次。每個(gè)循環(huán)周期在還剩6s時(shí),正在通行路口的黃燈同時(shí)點(diǎn)亮并開(kāi)始閃爍,以提醒路人上的行人及車(chē)輛,交通燈即將發(fā)生變化。在此期間若中斷按鍵按下則轉(zhuǎn)入中斷服務(wù)子程序進(jìn)行相關(guān)操作。</p><p><b> 5.2實(shí)驗(yàn)仿真調(diào)試</b></p><p
37、><b> 系統(tǒng)軟件調(diào)試</b></p><p> 一、 集成開(kāi)發(fā)環(huán)境KEIL</p><p> KEIL IDE Vision2集成開(kāi)發(fā)環(huán)境主要由以下部分組成:</p><p> ◆ u Vision2 IDE。ision2 IDE包括:一個(gè)工程管理器,一個(gè)功能豐富并有交互式錯(cuò)誤提示的編輯器選項(xiàng)設(shè)置生成工具,以及在線幫助。使用v
38、ision2創(chuàng)建源文件并組成應(yīng)用工程加以管理。vision2可以自動(dòng)完成編譯匯編鏈接程序的操作;</p><p> ◆ C51編譯器和A51匯編器。Vision2 IDE創(chuàng)建的源文件可以被C51編譯器或A51匯編器處理生成可重定位的object文件。KEIL C51編譯器遵照ANSI C語(yǔ)言標(biāo)準(zhǔn)支持C語(yǔ)言的所有標(biāo)準(zhǔn)特性,另外還增加了幾個(gè)可以直接支持80C51結(jié)構(gòu)的特性。KEIL A51宏匯編器支持80C51及其
39、派生系列的所有指令集;</p><p> ◆ LIB51庫(kù)管理器。B51庫(kù)管理器可以從由匯編器和編譯器創(chuàng)建的目標(biāo)文件建立目標(biāo)庫(kù),這些庫(kù)是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用當(dāng)鏈接器處理一個(gè)庫(kù)時(shí)僅僅使用了庫(kù)中程序使用了的目標(biāo)模塊而不是全部加以引用;</p><p> ◆BL51鏈接器定位器。L51鏈接器使用從庫(kù)中提取出來(lái)的目標(biāo)模塊和由編譯器匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址
40、目標(biāo)模塊,絕對(duì)地址目標(biāo)文件或模塊包括不可重定位的代碼和數(shù)據(jù)所有的代碼和數(shù)據(jù)都被固定在具體的存儲(chǔ)器單元中。</p><p> 利用KEIL開(kāi)發(fā)和調(diào)試系統(tǒng)軟件流程大致如下:</p><p> ◆啟動(dòng)Vision2,進(jìn)入KEIL軟件的集成開(kāi)發(fā)環(huán)境;</p><p> ◆利用KEIL內(nèi)置的文本編輯器進(jìn)行程序源文件的編輯,因?yàn)镵EIL集成的文本編輯器對(duì)中文支持不是很好,
41、可以選擇其他的編輯器(本文使用的文本編輯器是Ultraedit—32),Vision2能夠自動(dòng)識(shí)別外部改變了的源文件;</p><p> ◆建立工程,指定針對(duì)哪種單片機(jī)進(jìn)行開(kāi)發(fā),指定對(duì)源程序的編譯、鏈接參數(shù),指定調(diào)試方式(本文采用外部硬件仿真器仿真調(diào)試的方式,即使TKS仿真器仿真),然后對(duì)工程進(jìn)行相關(guān)設(shè)置;</p><p> ◆設(shè)置好工程后即可進(jìn)行編譯、鏈接。連接仿真器對(duì)軟件進(jìn)行調(diào)試。
42、也可以生成下載到單片機(jī)存儲(chǔ)器上的HEX文件。</p><p><b> 系統(tǒng)軟件調(diào)試</b></p><p><b> 軟件源程序</b></p><p> //***************簡(jiǎn)易智能交通燈設(shè)計(jì)**************//</p><p> //*************
43、**********************************//</p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> //**************
44、*********************************//</p><p> uchar code tab[]={ 0x3F,/*0*/</p><p> 0x06,/*1*/</p><p> 0x5B,/*2*/</p><p> 0x4F,/*3*/</p><p> 0x66,/*
45、4*/</p><p> 0x6D,/*5*/</p><p> 0x7D,/*6*/</p><p> 0x07,/*7*/</p><p> 0x7F,/*8*/</p><p> 0x6F,/*9*/</p><p> } ;</p><p
46、> //*******************共陰碼**********************//</p><p> sbit wela=P3^0;//段選</p><p> sbit dula=P3^1;//位選</p><p> sbit K1=P3^6;//停止</p>
47、<p> sbit K2=P3^7;//清零</p><p> sbit K3=P3^5;</p><p> sbit D1=P1^0;</p><p> sbit D2=P1^1;</p><p> sbit D3=P1^2;</p><p&
48、gt; uchar aa,shi,ge,flag,tt;</p><p> uint num=30;</p><p> //*******************延時(shí)函數(shù)*******************//</p><p> void delay(uint z)</p><p><b> {<
49、;/b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> //*******
50、*初始化主函數(shù)T0定時(shí)器******************//</p><p> void init()</p><p><b> {</b></p><p> TMOD=0x01;//設(shè)置定時(shí)器0工作在方式一(16位工作方式)</p><p> TH0=(65536-
51、50000)/256;</p><p> TH1=(65536-50000)%256;</p><p> EA=1;//開(kāi)總中斷</p><p> ET0=1;//開(kāi)定時(shí)器0中斷</p><p> TR0=1;//開(kāi)定時(shí)器</p><p><
52、;b> D2=0;</b></p><p><b> D1=0;</b></p><p><b> }</b></p><p> //*************數(shù)碼顯示子程序*******************//</p><p> void Display(uchar
53、 shi,uchar ge)//顯示十位和個(gè)位</p><p><b> {</b></p><p> dula=1;//開(kāi)段選</p><p> P2=tab[shi];//把十位給</p><p> dula=0;//關(guān)段選</p>
54、<p> wela=1;//開(kāi)位選</p><p> P0=0xfe;//打開(kāi)第一個(gè)數(shù)碼管 1111 1110 - 0111 1111 </p><p> wela=0;//關(guān)位選</p><p> P2=0x00;//關(guān)閉數(shù)碼管</p><p>
55、 delay(10);</p><p><b> dula=1;</b></p><p> P2=tab[ge];</p><p><b> dula=0;</b></p><p><b> wela=1;</b></p><p>
56、;<b> P0=0xfd;</b></p><p><b> wela=0;</b></p><p><b> P2=0x00;</b></p><p> delay(10);</p><p><b> } </b></p>&l
57、t;p> //************鍵盤(pán)掃描程序**********************//</p><p> void keyscan()</p><p><b> {</b></p><p><b> uchar aa;</b></p><p><b> if(K
58、1==0)</b></p><p><b> {</b></p><p><b> aa++;</b></p><p> switch(aa)</p><p><b> {</b></p><p> case 1:TR0=0;
59、//停止</p><p><b> break;</b></p><p> case 2:TR0=1;//啟動(dòng)</p><p><b> }</b></p><p><b> if(aa==2)</b></p><p><
60、b> {</b></p><p><b> aa=0;</b></p><p><b> init();</b></p><p><b> }</b></p><p><b> }</b></p><p&g
61、t;<b> if(K2==0)</b></p><p><b> {</b></p><p> delay(80);</p><p><b> if(K2==0)</b></p><p><b> {</b></p><p&
62、gt; delay(80);</p><p><b> num++;</b></p><p><b> }</b></p><p> while(!K2);</p><p><b> }</b></p><p><b> if(
63、K3==0)</b></p><p><b> {</b></p><p> delay(80);</p><p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(80);&
64、lt;/p><p><b> num--;</b></p><p><b> }</b></p><p> while(!K3);</p><p><b> }</b></p><p><b> }</b></p>
65、;<p> void main()</p><p><b> {</b></p><p><b> init();</b></p><p><b> while(1)</b></p><p><b> {</b></p>
66、;<p> shi=num/10;</p><p> ge =num%10;</p><p> Display(shi,ge);</p><p> keyscan();</p><p><b> }</b></p><p><b> }</b>
67、</p><p> //*************定時(shí)器控制**********************//</p><p> void timer0() interrupt 1</p><p><b> {</b></p><p> TH0=(65536-50000)/256;</p><p
68、> TH1=(65536-50000)%256;</p><p><b> aa++;</b></p><p> if(aa==20)</p><p><b> {</b></p><p><b> aa=0;</b></p><p>&
69、lt;b> num--;</b></p><p> if(num<=10)</p><p><b> {</b></p><p> D3=1; //紅燈亮</p><p><b> D2=0;</b></p><p&
70、gt; if(num<=5)</p><p><b> {</b></p><p> D1=1; //黃燈開(kāi)始閃爍</p><p> delay(80);</p><p><b> D1=0;</b></p><p><b> }
71、</b></p><p> if(num==0)</p><p><b> {</b></p><p><b> D2=1;</b></p><p><b> D3=0;</b></p><p><b> }</b&
72、gt;</p><p><b> }</b></p><p> if(num==-1)</p><p><b> {</b></p><p> num=30;</p><p><b> }</b></p><p>
73、;<b> }</b></p><p><b> }</b></p><p> 二、 proteus仿真器</p><p> Proteus是目前最好的模擬單片機(jī)外圍器件的工具??梢苑抡?1 系列、AVR,PIC 等常用的MCU 及其外圍電路(如LCD,RAM,ROM,鍵盤(pán),馬達(dá),LED,AD/DA
74、,部分SPI 器件,部分IIC 器件,...)Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。</p><p>
75、; 仿真結(jié)果圖如下所示:</p><p> 南北綠燈亮,東西為紅燈亮</p><p> 倒計(jì)時(shí)6s開(kāi)始,黃燈開(kāi)始閃爍</p><p> 南北紅燈亮,東西綠燈亮</p><p><b> 6、設(shè)計(jì)心得體會(huì)</b></p><p> 經(jīng)過(guò)兩周的努力工作,終于在同組人的共同合作下完成了《簡(jiǎn)易
76、智能交通燈設(shè)計(jì)》單片機(jī)課程設(shè)計(jì)。雖然設(shè)計(jì)仿真調(diào)試的過(guò)程很艱辛,但結(jié)果還是好的,看到仿真結(jié)果出來(lái),看到交通燈的循環(huán)閃爍,心情頓時(shí)好起來(lái),調(diào)試過(guò)程中的種種怨言都沒(méi)有了。這次課程設(shè)計(jì)主要是軟件仿真,由于器材有限就沒(méi)有弄硬件部分。在軟件的設(shè)計(jì)與調(diào)試過(guò)程中,我覺(jué)得它主要考驗(yàn)?zāi)愕乃季S邏輯能力及你對(duì)指令的熟悉程度。可以說(shuō)再整個(gè)軟件設(shè)計(jì)過(guò)程中,我感覺(jué)又重新學(xué)了一次單片機(jī),在學(xué)習(xí)的過(guò)程中不僅學(xué)會(huì)了延時(shí)的兩種方法,即軟件延時(shí)和硬件延時(shí),還掌握數(shù)碼管的兩種顯
77、示方式(即動(dòng)態(tài)顯示與靜態(tài)顯示)及其如何選擇。通過(guò)幾次反復(fù)調(diào)試過(guò)程,使得我對(duì)c語(yǔ)言有了更深刻的理解。</p><p> 在整個(gè)課程設(shè)計(jì)過(guò)程我還學(xué)會(huì)熟練使用Keil、proteus等軟件,對(duì)我在今后的學(xué)習(xí)中會(huì)有很大的幫助。 </p><p> 同時(shí),在這次課程設(shè)計(jì)中,老師和同組的xx同學(xué)給了我很大的幫助,要特別感謝他們。</p><p><b> 7
78、參考文獻(xiàn)</b></p><p> [1] 肖業(yè)偉,郭雪峰,黃輝先.盤(pán)宏斌.自適應(yīng)的智能交通信號(hào)機(jī)系統(tǒng)設(shè)計(jì).計(jì)算機(jī)工程.2009,35(7):220一222.</p><p> [2] 張飛舟,曹學(xué)軍,孫敏.基于多智能體的城市交通集成控制系統(tǒng)設(shè)計(jì).北京大學(xué)學(xué)報(bào)(自然科學(xué)版).2008,44(2):289一292.</p><p> [3] 史新宏,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于51單片機(jī)的智能交通燈課程設(shè)計(jì)
- 基于51單片機(jī)的智能交通燈課程設(shè)計(jì)
- 51單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的交通燈
- 課程設(shè)計(jì)---基于51單片機(jī)的交通燈設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈控制設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- 交通燈單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈顯示系統(tǒng)
- 交通燈單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈顯示系統(tǒng)
- 基于51單片機(jī)控制的交通燈的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--模擬智能交通燈
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- c51單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈設(shè)計(jì)
- 基于89c51單片機(jī)交通燈課程設(shè)計(jì)
- 基于單片機(jī)的交通燈課程設(shè)計(jì)
- 基于單片機(jī)的交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---交通燈
- 單片機(jī)交通燈課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論