freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stc89c51單片機(jī)的交通燈控制器設(shè)計(jì)(參考版)

2024-12-10 01:18本頁面
  

【正文】 其次我還要感謝在一起愉快的度過大學(xué)生活的同學(xué),正是你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直至本文的順利完成。轉(zhuǎn)眼間幾個(gè)月的畢業(yè)論文設(shè)計(jì)即將結(jié)束。通過平臺(tái)來協(xié)調(diào)好每個(gè)十字路口交通的情況,增加道路的利用率,減少道路擁堵的幾率,使交通燈控制系統(tǒng)更加智能化。本設(shè)計(jì)沒有網(wǎng)絡(luò)功能, 應(yīng)當(dāng)在交通燈控制系統(tǒng)上擁有一個(gè)專業(yè)的網(wǎng)絡(luò)平臺(tái)。但是其中綠燈的亮度不高。倒計(jì)時(shí)計(jì)數(shù)精確度夠強(qiáng)。經(jīng)過測(cè)試,本設(shè)計(jì)的各個(gè)功能顯示正常并且較為穩(wěn)定。詳細(xì)測(cè)試本設(shè)計(jì)的各個(gè)功能,檢查 LED 狀態(tài)顯示燈的交替顯示是否正常、數(shù)碼管計(jì)數(shù)顯示是否正常與個(gè)功能是否正常。在焊接的過程中注意不要短接和虛焊。若沒有問題則上網(wǎng)查看本設(shè)計(jì)相關(guān)芯片信息,計(jì)劃好管腳、線路的連接。 再根據(jù)電路原理圖去買元器件并進(jìn)行焊接。然后根據(jù)所需要的要求以及功能畫出程序流程圖。在此基礎(chǔ)上,增加了 增加、減少倒計(jì)時(shí)時(shí)間,南北通行,東西通行,緊急模式等功能,使該交通等控制系統(tǒng)更加適應(yīng)道路上可能發(fā)生的各種情況。能夠正 41 常的顯示該按鈕所設(shè)定的功能。而且人為方面測(cè)試的反應(yīng)時(shí)間也是一個(gè)存在誤差的原因。 倒計(jì)時(shí)顯示數(shù)碼管的倒計(jì)時(shí)時(shí)間與設(shè)計(jì)的時(shí)間的誤差很小,精確度較高。 第八步:按下南北通行、東西通行和緊急模式按鈕,觀察是否 LED 狀態(tài)顯示燈顯示是否正常。 第六步:觀察 LED 狀態(tài)顯示燈是否正常的替換亮滅,若不正常,檢測(cè)管腳是否接錯(cuò),單片機(jī)是否正常工作。 第四步:接通所有的電路并 進(jìn)行通電測(cè)試。 第二步:檢查線路是否接錯(cuò),有無短路,然后接上電源。 軟硬聯(lián)試 經(jīng)過硬件調(diào)試和軟件調(diào)試后,進(jìn)行系統(tǒng)的完整調(diào)試。 第二步:根據(jù)流程圖編寫好程序,然后用 KEIL 軟件對(duì)已編寫完的程序進(jìn)行編譯,觀察是否有錯(cuò)誤。 40 軟件調(diào)試 本設(shè)計(jì)系統(tǒng)是使用 C51 來編寫的。然后給數(shù)碼管管腳進(jìn)行通電,一根一根的試。經(jīng)過檢查,原來是網(wǎng)絡(luò)上百度的數(shù)碼管管腳圖是不正確的。若不正常,檢查數(shù)碼管有無接錯(cuò)和時(shí)鐘電路有沒有問題。 第七步:對(duì)數(shù)碼管顯示電路進(jìn)行檢查。 第六步:對(duì)復(fù)位電路進(jìn)行檢查。觀察按鍵是否接錯(cuò),有無短路。檢查信號(hào)燈間的連線是否正常,有無短路等。 第四步:對(duì) LED 狀態(tài)信號(hào)燈模塊進(jìn)行調(diào)試。 第三步 :接通電源,檢查單片機(jī)是否正常工作。 第二步:用萬用表測(cè)試。 硬件調(diào)試 硬件調(diào)試步驟如下: 第一步:目測(cè)。單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件聯(lián)調(diào)。 } 39 5 調(diào)試與檢測(cè) 本設(shè)計(jì)系統(tǒng)的調(diào)試分為三大部分:硬件調(diào)試、軟件調(diào)試和軟硬件聯(lián)調(diào)。 P0=table[buf[0]]。 P0=0x00。 38 delay(1)。 P1=0Xfb。 P1=0xff。 //片選 LED2 P0=table[buf[2]]。 //關(guān)顯示 P0=0x00。 //送東西時(shí)間十位的數(shù)碼管編碼 delay(1)。 P1=0xfe。 //第 4 位 南北秒個(gè) 位 P1=0xff。 //第 2 位 東西秒個(gè)位 buf[3]=sec_dx/10。子程序如下: void display(void) //顯示子程序 { buf[1]=sec_nb/10。接下來又顯示綠燈的時(shí)間,如此循環(huán)。 以南北方向?yàn)槔?,?shù)碼管顯示的數(shù)值從綠燈的設(shè)置時(shí)間最大值往下減,每秒 37 鐘減 1,一直減 到 0。該裝置采用 2位八段數(shù)碼管來顯示,每個(gè)路口需要 1 個(gè),共 4 個(gè)。但也不能太長(zhǎng),因?yàn)楫吘挂芟抻谂R界閃爍頻率,而且此時(shí)間越長(zhǎng)占用 CPU 時(shí)間也越多。在段選碼和位選碼每送出一次后,應(yīng)保持 1ms 左右,這個(gè)時(shí)間應(yīng)根據(jù)實(shí)際情況而 定。利用人眼的 “視覺暫停 ”效應(yīng),只要每位顯示間隔足夠短就可以給人以同時(shí)顯示的感覺。 LED 動(dòng)態(tài)顯示方法: LED 動(dòng)態(tài)顯示就是利用單片機(jī)依次輸出每一位數(shù)碼管的段選碼和對(duì)應(yīng)于該位數(shù)碼管的位選控制信號(hào),一位一位輪流點(diǎn)亮各七段數(shù)碼管。 } while(k1!=1)。 //設(shè)置的數(shù)值賦給東西南北 sec_dx=set_timedx。 if( set_timedx==100) set_timedx=1。 //南北加 1S else set_timenb++。 P2=0x00。 //調(diào)用顯示,用于延時(shí)消抖 if(k1!=1) { TR0=0。0x1f)==0x10) //判斷是否是抖動(dòng) return 1; return 0; } 本設(shè)計(jì)使用了 8 個(gè)按鍵,根據(jù)其功能,得到其相應(yīng)程序流程圖。 If(KEY) Buf=0x01。為了保證 CPU 對(duì)鍵的一次閉合僅在按鍵穩(wěn)定時(shí)作一次鍵輸入處理,必須消除產(chǎn)生的前沿(后沿)抖動(dòng)影響。由于抖動(dòng),會(huì)造成被查詢的開關(guān)狀態(tài)無法準(zhǔn)確讀出。 Buzz=1。(shanruo==1)) //南北黃燈閃 { Green_nb=0。(dx_nb==1)amp。 } if((sec_dx=5)amp。 Yellow_dx=1。amp。amp。 //東西時(shí)間減 1 sec_nb。 } } 33 if(countt0==20) // 定時(shí)器 中斷次數(shù) =20 時(shí)(即 1 秒時(shí)) { countt0=0。 Yellow_nb=0。amp。amp。 Buzz=0。(shanruo==1)) //東西黃燈閃 { Green_dx=0。(dx_nb==0)amp。 //軟件計(jì)數(shù)加 1 if(countt0==10) { if((sec_nb=5)amp。 TR0=1。 定時(shí)中斷子程序: void time0(void) interrupt 1 using 1 //定時(shí)中斷子程序 { TH0=0X3C。因此工作于方式 1,定時(shí)器為 16 位計(jì)數(shù)器,其定時(shí)時(shí)間由下式計(jì)算: 式中 X 為 T0 的初始值,該值和計(jì)數(shù)器工作方式有關(guān)。 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送初值,將這個(gè)值送到 TH 和 TL 中。 //大約 1 毫秒的延時(shí) } 在主程序中設(shè)定一個(gè)初值為 20 的軟件計(jì)數(shù)器使定時(shí)器 T0 工作于方式 1 定時(shí)50 毫秒,這樣每當(dāng) T0 到 50 毫秒時(shí) CPU 就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入它的中斷服 務(wù)子程序。k124。jms。 延時(shí)子程序: void delay(int ms) //延時(shí)子程序 { uint j,k。若使用軟件則會(huì)耽擱程序流程,顯然不可行。如單片機(jī)的主脈沖頻率為 12MHz,經(jīng)過 12 分頻后,若采用方式 0 最大延時(shí)只有 毫秒, 31 采用方式 1 最大延時(shí)也只有 毫秒。在方式 0 時(shí) M 為 8192;在方式 1 時(shí) M 的值為65536;在方式 2 和 3 為 256。計(jì)數(shù)值并不是目的,目的是時(shí)間值,設(shè)計(jì) 1 次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為 )(計(jì)數(shù)T ,它是單片機(jī)系統(tǒng)主頻周期的 12 倍,設(shè)要求的時(shí)間值為 T,則有: )(/ 計(jì)數(shù)TTC? 。它是以加法記 數(shù)的,并能從全 1 到全 0 時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。這里采用 T0 定時(shí)器中斷方法。本設(shè)計(jì)采用 T0 定時(shí)器方法來設(shè)定 1S 時(shí)間。東西方向綠燈亮,南北方向紅燈亮,如此循環(huán)。表示南北方向車道允許直行 ,東西方向車道禁止通行。經(jīng)過一定時(shí)間倒計(jì)時(shí)完成后,南北紅燈不變,東西黃燈閃爍 5 秒,轉(zhuǎn)到下一工作狀態(tài)。 該交通信號(hào)燈控制系統(tǒng)的工作狀態(tài): ( 1)東西方向直行綠燈亮,南北方向紅燈亮。再把 P0 端口作為數(shù)碼管時(shí)間顯示的輸出端口。 開始T 0 初始化中斷初始化啟動(dòng) T 0顯示初始化查閱狀態(tài)表保存表地址調(diào)用顯示掃描按鍵 圖 41 主程序循環(huán)流程圖 LED 狀態(tài)信號(hào)燈總共有 4 個(gè)狀態(tài) ,中間間隔著一個(gè) 5 秒的黃 燈閃爍時(shí)間。根據(jù)設(shè)計(jì)的要求和功能,系統(tǒng)的工作流程可以按如下方式進(jìn)行: ( 1)程序設(shè)置初始時(shí)間,通過 89C51 單片機(jī)內(nèi)部相應(yīng)寄存器來實(shí)現(xiàn); ( 2)由 89C51 單片機(jī)的定時(shí)器每秒鐘通過 P0 口向 74HC245 的輸入口輸入信息,由 74HC245 的輸出口顯示紅、綠、黃燈的燃亮?xí)r間,由 89C51 的 P2 口顯示 4 組紅、綠、黃燈的燃亮情況; ( 3) 89C51 通過程序設(shè)置每組信號(hào)燈的燃亮 時(shí)間,通過程序設(shè)置紅、綠、黃每組信號(hào)燈的燃亮狀態(tài); ( 4)當(dāng)系統(tǒng)出現(xiàn)異常,通過手動(dòng)復(fù)位方式,引起 RESET 復(fù)位信號(hào)復(fù)位系統(tǒng)。大多數(shù)情況下匯編程序能和用 C 語言編寫的程序很好地結(jié)合在一起。 由于單片機(jī)硬件的限制。語言的特點(diǎn)就是可以使程序員盡量少地對(duì)硬件進(jìn)行操作,它是一種功能性和結(jié)構(gòu)性很強(qiáng)的語言。對(duì)時(shí)鐘要求嚴(yán)格時(shí),使用匯編語言是唯一的方法。用 C 語言編寫程序比用匯編語言更符合人們的思考習(xí)慣,開發(fā)者可以更專心地考慮算法而不是考慮一些細(xì)節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時(shí)間。 C 語言具有良好的模塊化,容易閱讀和維護(hù)等優(yōu)點(diǎn)。但是使用匯編語言會(huì)遇到很多問題,首先它的可讀性和可維護(hù)性不強(qiáng),特別是當(dāng)程序沒有很好標(biāo)注的時(shí)候,其次就是代碼的可重用性也比較低。 在單片機(jī)的開發(fā)應(yīng)用中,逐漸引入了高級(jí)語言, C 語言就是其中的一種。 27 4 軟件設(shè)計(jì) 編程語言 在基于 51 單片機(jī)交通燈控制器的軟件設(shè)計(jì)當(dāng)中,采用 C 語言作為開發(fā)語言。 圖 312 DC 電源及自鎖開關(guān)原理圖 DC 電源的 3 腳接地, 1 腳實(shí)際是 VCC(電源),但是電路中要接自鎖開關(guān),然后開關(guān)的另一個(gè)腳再接電源。所以整個(gè)電路中所提供的電源為 +5V。所以說電路中只要接 3 腳或 4 腳或 3 腳或 4 腳就可以導(dǎo)通了。 本設(shè)計(jì)采用輕觸按鍵,其原理圖如下所示。因此設(shè)置按鍵進(jìn)行控制,當(dāng)深夜時(shí)間車輛很少時(shí),東西、南北方向四個(gè)黃燈同時(shí)燃亮,提醒人們注意交通情況,減速慢行,相互謙讓,安全的通過交通十字路口。按鍵彈起,交通燈恢復(fù)中斷前狀態(tài),數(shù)碼管繼續(xù)倒計(jì)時(shí)。因此需要在設(shè)計(jì)中加入按鍵進(jìn)行中斷控制,當(dāng)急行情況發(fā)生時(shí),南北綠燈東西紅燈或東西綠燈南北紅燈,倒計(jì)時(shí)顯示變?yōu)?00 不動(dòng)。等到緊急情況結(jié)束,切換正常模式恢復(fù)交通指揮。因此需要在設(shè)計(jì)中加入按鍵進(jìn)行中斷控制。所以設(shè)立增加倒計(jì)時(shí)時(shí)間、減少倒計(jì)時(shí)時(shí)間這 2 個(gè)功能按鍵,通過按鍵對(duì)時(shí)間進(jìn)行手動(dòng)設(shè)置,增加了人為的可控性,避免車少長(zhǎng)等和減緩車多交通堵塞 的麻煩。當(dāng)按鍵按下端口接地,單片機(jī)捕獲到低電平,從而知道相應(yīng)的 25 中斷輸入信息。每個(gè)按鍵一段接地,另一端 89C51 單片機(jī) P3 口各接口,低電平有效。其中均是高電平有效。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對(duì)稱分布的,如圖所示。 根據(jù)本設(shè)計(jì)的特點(diǎn),紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過停車線。綠燈是通行信號(hào),面對(duì)綠燈的車輛可以直行。常用的發(fā)光二極管應(yīng)用電路有 4 種,即直流驅(qū)動(dòng)電路,交流驅(qū)動(dòng)電路,脈沖驅(qū)動(dòng)電路,變色發(fā)光驅(qū)動(dòng)電路。發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等等。另外,有些材料由于組分和摻雜不同,例如 ,有的具有很復(fù)雜的能帶結(jié)構(gòu),相應(yīng)的還有間接躍遷輻射等,因此有各種各樣的發(fā)光二極管。 發(fā)光二極管是由一個(gè)塑性燈泡覆蓋集中燈光于一個(gè)特定方向。 發(fā)光二極管簡(jiǎn)稱 LED,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個(gè) PN 結(jié),具有單向?qū)щ娦?。本設(shè)計(jì)采用的是 10個(gè)管腳的 2位共陽極數(shù)碼管。通過分時(shí)輪流控制各個(gè)數(shù)碼管的 COM 端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng),在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為 1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的 余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度夠快,給人的感覺就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍的感覺,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,但能 23 夠節(jié)省大量的 I/O 端口,而且功耗更低。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O 端口多,如驅(qū)動(dòng) 5個(gè)數(shù)碼管靜態(tài)顯示則需要 58=40根 I/O 端口來驅(qū)動(dòng),要知道一個(gè) 89C51單片機(jī)可用的 I/O 端口才 32個(gè),實(shí)際應(yīng)用必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 第一類為 靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。 a b c d e f g hD 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 圖 37 共陽極 共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極 (COM)的數(shù)碼管。 共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極 (COM)的數(shù)碼管,共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極 COM 接到 +5V,當(dāng)某一字段 發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。 LED 數(shù)碼管顯示器是由發(fā)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1