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

下載本文檔

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

文檔簡(jiǎn)介

1、 1 交通燈的設(shè)計(jì)目的及方案介紹1設(shè)計(jì)課題的目的 通過單片機(jī)的課程設(shè)計(jì),加深和鞏固單片機(jī)知識(shí),提高綜合及靈活運(yùn)用所學(xué)的知識(shí)來(lái)解決日常生活及工業(yè)控制的能力,提高針對(duì)知識(shí)的需要,選擇和查閱其他資料書籍、靈活運(yùn)用其中知識(shí)及自學(xué)能力,提高組成系統(tǒng)、編程、制版、調(diào)試的全方面能力,通過對(duì)課題設(shè)計(jì)方案的分析、選擇、比較,熟悉單片機(jī)運(yùn)用于系統(tǒng)開發(fā)、研制的過程,軟硬件設(shè)計(jì)的方法、內(nèi)容及步驟。培養(yǎng)發(fā)現(xiàn)問題、分析問題和解決問題的能力以及創(chuàng)新能力和創(chuàng)新思維的提高。1.2設(shè)計(jì)要求及說明 設(shè)計(jì)一個(gè)具有特定功能的十字路口交通燈。該交通燈上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“p.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。按開始鍵則開始工作,按

2、結(jié)束鍵則返回“p.”狀態(tài)。要求甲車道和乙車道兩條交叉道路上的車輛交替運(yùn)行,甲車道為主車道,每次通車時(shí)間為60秒,乙車道為次車道,每次通車時(shí)間為30秒,要求黃燈亮3秒,并且1秒閃爍一次。有應(yīng)急車輛出現(xiàn)時(shí),紅燈全亮,應(yīng)急車輛通車時(shí)間10秒,同時(shí)禁止其他車輛通過。1.3方案介紹及工作原理1.3.1 方案介紹系統(tǒng)整體框圖如圖1.1所示:1.3.2 工作原理 該系統(tǒng)采用的是使用現(xiàn)有單片機(jī)最小的硬件電路和p3口控制交通燈,p2口控制數(shù)碼管各位,p0口控制數(shù)碼管各段,p1.0、p1.1口線控制數(shù)碼管各位和p1.2口接收緊急信號(hào)電路集合而成,構(gòu)成交通燈的總體電路,即交通燈。通過對(duì)單片機(jī)編寫對(duì)應(yīng)的程序,控制各個(gè)

3、部分,達(dá)到預(yù)期的效果。2 交通燈的硬件設(shè)計(jì)及pcb圖2.1 交通燈原理圖電路原理圖如附錄一,電路原理圖由各功能模塊組成。2.2 交通燈各模塊功能2.2.1 單片機(jī)最小系統(tǒng)電路 單片機(jī)最小系統(tǒng)由cpu,復(fù)位電路,振蕩電路三部分構(gòu)成,cpu采用的是atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容的at89s52芯片。at89s52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,at89s52 可降至0hz

4、靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8k 字節(jié)在系統(tǒng)可編程 flash at89s52 。復(fù)位電路用于產(chǎn)生復(fù)位信號(hào),通過rst引腳送入單片機(jī),進(jìn)行復(fù)位操作。而復(fù)位電路又可以分為上電復(fù)位,按鍵電平復(fù)位和按鍵脈沖復(fù)位這三種,在這次設(shè)計(jì)中,選用的是按鍵電平復(fù)位電路。其功能為:上電的同時(shí),rc回路開始充電,rst引腳端出現(xiàn)正脈沖,只要rst段保持10ms以上的高電平,就能夠使單片機(jī)有效的復(fù)位。振蕩電路

5、是從at89s52的xtal1和xtal2接入時(shí)鐘信號(hào)的。由外接晶振及電容c1,c2所構(gòu)成的并聯(lián)諧振電路接在放大器的反饋回路中。在設(shè)計(jì)電路板時(shí)為減小干擾,晶振和電容應(yīng)該盡可能的與單片機(jī)近些,以減少寄生電容,更好的保證振蕩器穩(wěn)定可靠。其功能為:產(chǎn)生振蕩脈沖,為單片機(jī)運(yùn)行提供時(shí)序。 上拉電阻是為了拉高電壓,增強(qiáng)io口的驅(qū)動(dòng)能力。2.2.2 顯示電路設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)最常用的顯示器是led(發(fā)光二極管顯示器)、led(液晶顯示器)。這兩種顯示器可顯示數(shù)字、字符及系統(tǒng)的狀態(tài)。它們的驅(qū)動(dòng)電路簡(jiǎn)單、易于實(shí)現(xiàn)且價(jià)格低廉,因此,得到了廣泛應(yīng)用。本次設(shè)計(jì)要顯示數(shù)字倒計(jì)時(shí),用數(shù)碼管動(dòng)態(tài)顯示。將led顯示器各位數(shù)碼

6、管的所有段控端相應(yīng)地并聯(lián)在一起,由p0的8個(gè)口線控制,形成段選線多路復(fù)用,而各位數(shù)碼管的共陽(yáng)極分別由p2口的其中四個(gè)口線控制,實(shí)現(xiàn)各位的分時(shí)選通。共陽(yáng)極數(shù)碼管字形代碼表如表2.1所示。表2.1 共陽(yáng)極數(shù)碼管字形代碼表字型共陽(yáng)代碼字型共陽(yáng)代碼0c0h682h1f9h7f8h2a4h880h3b0h990h499hp.0ch592h滅ffh2.2.3 數(shù)碼管驅(qū)動(dòng)電路設(shè)計(jì)本設(shè)計(jì)采用的數(shù)碼管驅(qū)動(dòng)是采用pnp三極管驅(qū)動(dòng),有效增強(qiáng)數(shù)碼管顯示的亮度。當(dāng)給p2口線與三極管的發(fā)射極相連,用于連接數(shù)碼管位控與三極管的集電極相連,三極管的基極通過電阻與地相連,當(dāng)給p2高電平的同時(shí),輸出高電平信號(hào)控制數(shù)碼管的顯示位顯

7、示。2.2.4 緊急按鍵電路設(shè)計(jì)緊急信號(hào)為低電平,通過設(shè)計(jì)緊急按鍵電路與p1.2口相連接,緊急信號(hào)通過p1.2輸入單片機(jī)內(nèi)部,當(dāng)緊急事件過去后,單片機(jī)回到原來(lái)的地方繼續(xù)工作。2.2.5 程序下載口電路設(shè)計(jì)atmel公司的89s5xx提供了支持isp(在線下載程序) 并口下載功能,它只需一塊八位鎖存器就可以實(shí)現(xiàn)了,原理如下:mosi:數(shù)據(jù)串行輸出 (s52p1.5腳),miso:串行數(shù)據(jù)輸入(s52 p1.6腳),sck:同步控制時(shí)鐘(s51 p1.7腳),rst接單片機(jī)復(fù)位腳,當(dāng)有足夠的高電平使s51處于復(fù)位狀態(tài),它就會(huì)開啟讀寫程序功能。2.2.6 電源電路設(shè)計(jì)因?yàn)楸敬卧O(shè)計(jì)所需電源的模塊有單片

8、機(jī)最小系統(tǒng),數(shù)碼管顯示器,二極管交通燈,它們所需電源都為+5v,因而電源設(shè)計(jì)只需設(shè)計(jì)一個(gè)+5v電源。為了供電方便,我們直接在插孔處引一根數(shù)據(jù)線用usb接口供電。 2.2.7 交通燈元器件清單 交通燈元件清單如表2.2。表2.2 交通燈元件清單元件名稱元件個(gè)數(shù)元件特性at89s521電阻25 4.7k3 1k1 200電容2 33pf極性電容1 22fled數(shù)碼管2 4位一體共陽(yáng)晶振1 12m發(fā)光二極管4 紅色4 綠色按鍵9 四角開關(guān)1 六角usb電源接口12.3 pcb設(shè)計(jì)圖我們可以根據(jù)設(shè)計(jì)電路原理圖,以購(gòu)買的元器件的尺寸、引腳,仔細(xì)封裝各個(gè)元器件,如果不能在庫(kù)里找到的我們自己根據(jù)實(shí)際需要,自

9、己創(chuàng)建封裝。2.3.1元器件布局圖 交通燈元器件布局圖如附錄二所示2.3.2pcb圖根據(jù)電路原理圖,將每個(gè)元器件放置在適當(dāng)?shù)奈蛔?,按照pcb畫線的原則,以正確,美觀,認(rèn)真將各個(gè)元器件連接起來(lái)。pcb圖如附錄三所示。3 交通燈的軟件設(shè)計(jì)3.1 單片機(jī)資源分配由電路原理圖可知,單片機(jī)at89s52的資源分配如下:第9腳rst接復(fù)位電路和下載口復(fù)位端;第18腳xtal1、第19腳xtal2接振蕩電路;p0口用于數(shù)碼管顯示器的段控控制;p1口接數(shù)碼管的位控控制 p3口接led燈3.2 軟件系統(tǒng)各模塊功能3.2.1 顯示p.模塊 該模塊的功能是在單片機(jī)上電或者復(fù)位后,在數(shù)碼管上顯示“p.”,此時(shí)系統(tǒng)處于

10、等待工作狀態(tài)。在按下開始按鈕后,跳出此模塊,進(jìn)入正常的工作狀態(tài)。3.2.2 亮燈模塊 該模塊的功能是控制交通燈的亮與滅,在程序中,先控制主路的綠燈亮57s,再黃燈閃爍3秒,即每秒亮半秒滅半秒,同時(shí)支路上的紅燈亮60s;再控制支路上的綠燈亮27s,再黃燈閃爍3秒,即每秒亮半秒滅半秒,同時(shí)主路上的紅燈亮30s。正常情況下,隨著主程序循環(huán)。當(dāng)緊急按鈕按下后,控制兩個(gè)路口的紅燈同時(shí)亮十秒,待緊急時(shí)間過去,主動(dòng)跳出。3.2.3 顯示模塊 該模塊的功能是主路和支路上的時(shí)間顯示。當(dāng)系統(tǒng)開始運(yùn)行時(shí),同時(shí)在主路和支路上顯示60s的倒計(jì)時(shí),待60s過后,同時(shí)在主路和支路上顯示30s的倒計(jì)時(shí),正常情況下,隨著主程序

11、循環(huán)。當(dāng)按下緊急按鈕之后,同時(shí)在主路和支路上顯示10s的倒計(jì)時(shí),之后主動(dòng)跳出。3.2.4 緊急按鈕模塊 該模塊的功能是在出現(xiàn)緊急情況下,按下緊急按鈕,送入單片機(jī)信號(hào),系統(tǒng)進(jìn)入緊急狀態(tài),在數(shù)碼管顯示10s倒計(jì)時(shí),同時(shí)主路和支路的紅燈都亮。待10s過后,自動(dòng)跳出。3.2.5 延時(shí)模塊 該模塊的功能是為其他各模塊提供延時(shí)。不論是數(shù)碼管顯示的延時(shí),紅綠燈亮的延時(shí),黃燈的閃爍,都需要此模塊來(lái)提供延時(shí)。采用延時(shí)子程序,延時(shí)50ms。3.3 程序流程框圖交通燈程序流程框圖如圖3.1所示。 圖3.1 程序流程框圖3.4 交通燈程序清單 交通燈程序清單如附錄四所示。4 交通燈設(shè)計(jì)仿真4.1 仿真原理圖仿真是我們

12、檢測(cè)我們的硬件設(shè)計(jì)和軟件與硬件的結(jié)合好壞的重要方法,也能為我們做實(shí)物提供保障。我們采用kiel結(jié)合proteus仿真,仿真電路原理圖如附錄五所示。4.2 仿真結(jié)果(1)當(dāng)開始鍵按下時(shí),數(shù)碼管顯示“p.”。如圖4.1所示。圖4.1 “p.”顯示(2)當(dāng)按開始按鈕時(shí),數(shù)碼顯示管和交通燈均開始正常工作。如圖4.2所示。圖4.2 正常工作顯示(3)當(dāng)緊急按鈕按下時(shí),數(shù)碼顯示管和交通燈均按照計(jì)劃工作。如圖4.3所示。圖4.3 緊急情況下顯示5 設(shè)計(jì)體會(huì)及出現(xiàn)的問題5.1 設(shè)計(jì)體會(huì)通過這次對(duì)交通燈的設(shè)計(jì),我們更加認(rèn)識(shí)了單片機(jī),更加熟悉了對(duì)單片機(jī)的應(yīng)用。在這次設(shè)計(jì)的過程中,從電路原理圖的設(shè)計(jì),就透徹的理解了

13、單片機(jī)最小系統(tǒng)的構(gòu)成及其工作原理。從數(shù)碼管的選擇中,懂得了可以采用不同的元器件,只要我們運(yùn)用相應(yīng)的程序,就能達(dá)到同樣的效果。從三極管的應(yīng)用中,發(fā)現(xiàn)了理論跟實(shí)踐存在的巨大差別。只有實(shí)踐才能檢驗(yàn)所學(xué)的理論,才能發(fā)自己對(duì)理論認(rèn)識(shí)的誤區(qū)和盲點(diǎn)。在軟件的設(shè)計(jì)過程中,收獲更大。通過此次設(shè)計(jì)程序,透徹的明白了每一個(gè)指令的應(yīng)用方法和功能,很好的統(tǒng)一復(fù)習(xí)了單片機(jī)的指令系統(tǒng)。也正是在運(yùn)用中也發(fā)現(xiàn)了自己對(duì)部分指令的錯(cuò)誤認(rèn)識(shí)和誤區(qū),在改正錯(cuò)誤中獲得了收獲。在實(shí)驗(yàn)的基礎(chǔ)上,再一次對(duì)keil軟件進(jìn)行了一次全面的運(yùn)用,更加熟悉了keil軟件的各項(xiàng)功能。在做實(shí)物的過程中,很好的鍛煉了自己的動(dòng)手能力,同時(shí)也提高了自己發(fā)現(xiàn)問題,

14、解決問題的能力。當(dāng)最終看到自己的成果握在手中時(shí),有一種非常美妙的成就感,也激發(fā)了自己的學(xué)習(xí)興趣。增強(qiáng)了自信,培養(yǎng)了自己的各個(gè)方面的能力。5.2 設(shè)計(jì)中出現(xiàn)的問題 在本次試驗(yàn)中,由于理論和實(shí)踐經(jīng)驗(yàn)缺乏,出現(xiàn)了很多問題。首先是先到倒計(jì)時(shí)的問題,我設(shè)計(jì)了1秒鐘的子程序,然后再按鍵功能1中調(diào)用它,同時(shí)在最后3秒鐘閃爍燈,后來(lái)發(fā)現(xiàn)這樣根本不能實(shí)現(xiàn)燈閃爍一秒,而是兩秒,針對(duì)這個(gè)問題,我就將1秒鐘的子程序改為0.5秒,然后再程序里面兩次調(diào)用它。其次出現(xiàn)了按了一個(gè)鍵實(shí)現(xiàn)了功能不能跳往另外一個(gè)鍵功能程序,我就想到了要分別在鍵功能程序里面再調(diào)用子程序,這個(gè)問題就解決了。最后在應(yīng)急的時(shí)候我只想到了在應(yīng)急里面循環(huán),在

15、老師的提點(diǎn)下,我想到了應(yīng)急之后應(yīng)該恢復(fù)原來(lái)的交通秩序,這個(gè)就要牽扯到現(xiàn)場(chǎng)的保護(hù)和恢復(fù),于是我馬上聯(lián)想到剛學(xué)完不久的中斷知識(shí),首先我想用外部中斷,但是發(fā)現(xiàn)外部中斷的兩根口線已經(jīng)被led燈占用,然后我就想到要用定時(shí)器中斷,編好以后,發(fā)現(xiàn)又有新的問題出現(xiàn)了。6 鳴謝 附錄一原理圖 附錄二 程序清單 附錄三仿真電路圖 附錄四pcb圖附錄二;*;設(shè)計(jì)者:xx;設(shè)計(jì)日期:2010年12月24日;*;堆棧棧底:7fh;*;led數(shù)碼管設(shè)置:;p0.0-p0.7接段控線,分別接a,b,c,d,e,f,g,dp.;p2.0-p2.7接位控線,分別接(從右至左)led1-led8;顯示緩沖區(qū):led1-led8分

16、別對(duì)應(yīng)78h-7fh;*;獨(dú)立式鍵盤:;八個(gè)按鍵s0-s7分別接p1.0-p1.7;*;led流水燈設(shè)置:;八個(gè)led燈led1-led8分別接p3.0-p3.7;*;項(xiàng)目名稱:交通燈;keya (s0鍵鍵功能程序);keyb (s1鍵鍵功能程序);keyc (s2鍵鍵功能程序);*;常數(shù)表格;kkk(系統(tǒng)顯示四位序號(hào)表);tab(共陽(yáng)數(shù)碼管字型代碼表);* ;子程序;delay(延時(shí)10ms子程序);dl(延時(shí)2ms子程序);key(鍵掃描子程序);loop0(p1.0口數(shù)據(jù)處理子程序);loop1(p1.1口數(shù)據(jù)處理子程序);loop2(p1.2口數(shù)據(jù)處理子程序);disp(數(shù)碼管顯示子程

17、序);kk0(0.5秒顯示處理程序);*;起始程序區(qū):org0000h ljmp main org0030h;*程序初始化*main: movsp, #7fh;堆棧初始化movr0, #20h ;對(duì)ram區(qū)清零 movr2, #96ql:movr0, #00h incr0djnzr2, ql movp2, #7fh ;送位控movp0, #0ch;送段控顯示p.;*監(jiān)控程序*key: lcall keyk;監(jiān)控程序 jb20h.0, loop0jb 20h.1, loop11jb 20h.2, loop22ljmpkeyloop11: ljmp loop1loop22: ljmp loop2;

18、*鍵功能程序*loop0: movr3, #60;甲通道顯示初值60秒 mov r5, #57;乙通道顯示初值57秒mm0:movp3, #33h;顯示交通燈,甲通道綠,乙通道紅lcall kk0;調(diào)顯示程序lcl0:lcall kk0jnb p1.0, lcl0 ;判按鍵0是否按下 jnb p1.1, loop1;判按鍵1是否按下jnb p1.2, ll0;判按鍵2是否按下ljmp lk0ll0: lcall loop2lk0:dec r5 dec r3cjne r5, #00h,mm0m1: movr3, #03;等于3時(shí)顯示乙通道黃燈處理 movr5, #03mm1: movp3, #3

19、3hlcl1:lcall kk0 jnb p1.1, loop1jnb p1.2, ll1 jnb p1.0, lcl1movp3, #077h lcall kk0ljmp lk1ll1: lcall loop2lk1:dec r3dec r5cjne r3, #00h,mm1m2: mov r3, #30 ;乙通道亮綠燈,甲通道亮紅燈 mov r5, #27mm2:movp3, #0cch ;點(diǎn)亮交通燈lcall kk0lcl2:lcall kk0jnb p1.0, lcl2 jnb p1.1, loop1jnb p1.2, ll2 ljmp lk2ll2: lcall loop2lk2:d

20、ec r3dec r5 cjne r5, #05h,mm2m3:movr3, #03 movr5, #03mm3: movp3, #0cch;等于三秒時(shí)甲通道黃燈處理lcl3:lcall kk0jnb p1.0, lcl3 jnb p1.1, loop1jnb p1.2, ll3 ljmp lk3ll3: lcall loop2lk3:mov p3, #0ddhlcall kk0dec r3dec r5cjne r3, #00h, mm3;等于三秒時(shí)乙通道黃燈處理ljmp loop0;沒有按鍵按下則在此程序循環(huán)loop1: movp3, #0ffh;按鍵1按下處理程序 lcallfuwei j

21、nb p1.0, key0jnb p1.2, loop2 ljmp loop1 ;沒有按鍵按下則在此程序循環(huán)loop2:mov 24h, r3;按鍵2按下處理程序 mov 25h, r5;將原寄存器內(nèi)容保存 movr3, #10 movr5, #10 movr7, #00hmovp3, #55hmm5:lcall kk0 lcall kk0jnb p1.1, loop1dec r3dec r5 cjne r3,#00h,mm5mov r3, 24h;返回時(shí)將原寄存器內(nèi)容還原mov r5, 25h;保護(hù)現(xiàn)場(chǎng)ret;緊急十秒處理后返回key0: ljmp loop0key1:ljmp key;*顯示子程序*disp: push dph;保護(hù)dptr內(nèi)容 pushdpl pushacc pushpsw clrrs0 setbrs1 movr1,#78h movr5,#08h movr2,#0fehdisp1: mova,r1 movdptr,#tab movca,a+dptr movp0,a movp2,r2 lcall dl mova,r2 rla movr2,a incr1 djnzr5, disp1disp2: poppsw popacc popdpl popdph ret;*顯示

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論