單片機(jī)原理及應(yīng)用課程設(shè)計(jì)_第1頁(yè)
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)_第2頁(yè)
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)_第3頁(yè)
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)_第4頁(yè)
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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、單片機(jī)原理及應(yīng)用課程設(shè)計(jì) - 交通燈控制系統(tǒng)設(shè)計(jì) 作 者 姓 名:張 濤學(xué) 號(hào): 20042365指 導(dǎo) 教 師:李新光學(xué) 院 名 稱: 信息科學(xué)與工程學(xué)院專 業(yè) 名 稱:測(cè)控技術(shù)與儀器東 北 大 學(xué)2007年7月任務(wù)書課程設(shè)計(jì)(論文)題目: 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)基本內(nèi)容: 用AT89C51單片機(jī)模擬實(shí)現(xiàn)十字路口的交通燈亮、滅及倒計(jì)時(shí)功能課程設(shè)計(jì)(論文)專題部分題目:交通燈控制系統(tǒng)設(shè)計(jì)基本內(nèi)容:用AT89C51單片機(jī)模擬實(shí)現(xiàn)十字路口的交通燈亮、滅及倒計(jì)時(shí)功能。學(xué)生接受課程設(shè)計(jì)(論文)題目日期第18、19周指導(dǎo)教師簽字:2007年7月13日摘 要交通在人們的日常生活中占有重要的地位,隨著人們

2、社會(huì)活動(dòng)的日益頻繁,這點(diǎn)更是體現(xiàn)的淋漓盡致。交通信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統(tǒng)采用單片機(jī)AT89C51為中心器件來設(shè)計(jì)交通燈控制器,系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展性強(qiáng)。本設(shè)計(jì)就是采用單片機(jī)模擬十字路口交通燈的各種狀態(tài)顯示以及倒計(jì)時(shí)時(shí)間。本設(shè)計(jì)系統(tǒng)由單片機(jī)I/O口擴(kuò)展系統(tǒng)、交通燈狀態(tài)顯示系統(tǒng)、LED數(shù)碼顯示系統(tǒng)、緊急情況中斷系統(tǒng)、復(fù)位電路等幾大部分組成。系統(tǒng)除基本的交通燈功能外,還具有倒計(jì)時(shí)、緊急情況處理等功能,較好的模擬實(shí)現(xiàn)了十字路口可能出現(xiàn)的狀況。軟件上采用C51編程,主要編寫了主程序,LED數(shù)碼管顯示程序,中斷程序延時(shí)程序

3、等。經(jīng)過整機(jī)調(diào)試,實(shí)現(xiàn)了對(duì)十字路口交通燈的模擬。關(guān)鍵詞: AT89C51 8255A 74LS164 LED 交通燈 程序目 錄任務(wù)書i摘 要ii第一章 緒 論11.1 概述11.2 設(shè)計(jì)目的11.3 設(shè)計(jì)任務(wù)和內(nèi)容1第二章 總體設(shè)計(jì)及核心器件簡(jiǎn)介2總體設(shè)計(jì)22.2 AT89C5122.3 8255A42.4 74LS16452.5 X50457第三章 單元電路模塊設(shè)計(jì)11復(fù)位電路11晶振電路113.4 I/O口擴(kuò)展電路123.5 LED數(shù)碼管顯示電路123.6 交通燈狀態(tài)顯示電路143.7 緊急情況中斷電路153.8 總體設(shè)計(jì)原理圖及功能介紹16第四章 軟件編程設(shè)計(jì)174.1 設(shè)計(jì)思想174

4、.2 程序框圖174.3 源程序17第五章 設(shè)計(jì)心得和存在問題21參考文獻(xiàn)24第一章 緒 論 概述近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。交通信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1.2 設(shè)計(jì)目的(1)加強(qiáng)對(duì)單片機(jī)和C51語(yǔ)言的認(rèn)識(shí),充分掌握和理解設(shè)計(jì)各部分的工作原理、設(shè)計(jì)過程、選擇芯片器件、模塊化編程等多項(xiàng)知識(shí)。(2)

5、用單片機(jī)模擬實(shí)現(xiàn)具體應(yīng)用,使個(gè)人設(shè)計(jì)能夠真正使用。(3)把理論知識(shí)與實(shí)踐相結(jié)合,充分發(fā)揮個(gè)人能力,并在實(shí)踐中鍛煉。(4)提高利用已學(xué)知識(shí)分析和解決問題的能力。(5)提高實(shí)踐動(dòng)手能力。1.3 設(shè)計(jì)任務(wù)和內(nèi)容設(shè)計(jì)任務(wù)結(jié)合教材及參考資料,用AT89C51單片機(jī)模擬實(shí)現(xiàn)十字路口的交通燈亮滅、倒計(jì)時(shí)顯示、緊急情況處理等功能。設(shè)計(jì)內(nèi)容(1)填寫設(shè)計(jì)任務(wù)書。(2)進(jìn)行總體設(shè)計(jì),畫出原理圖。(3)用Protel軟件畫出PCB板并制板。(4)焊接器件和芯片。(5)編寫并調(diào)試程序。第二章 總體設(shè)計(jì)及核心器件簡(jiǎn)介整個(gè)設(shè)計(jì)以AT89C51單片機(jī)為核心,由I/O口擴(kuò)展,LED數(shù)碼管顯示,緊急情況中斷電路,watchdo

6、g復(fù)位電路組成。硬件模塊入圖3-1。AT89C51單片機(jī)I/0口擴(kuò)展LED數(shù)碼管顯示中斷系統(tǒng)復(fù)位電路圖21 硬件模塊2.2 AT89C511AT89C51單片機(jī)簡(jiǎn)介AT89C51是美國(guó)ATMEL公司推出的系列單片機(jī),將多種功能的8位CPU與FPEROM(快閃可編程/擦除只讀存儲(chǔ)器)結(jié)合在一個(gè)芯片上,是一種低功耗、高性能的CMOS控制器,為很多嵌入式控制應(yīng)用提供了非常靈活而又價(jià)格適宜的方案,其性能價(jià)格比遠(yuǎn)高于同類芯片。它與MCS-51指令系統(tǒng)兼容,片內(nèi)FPEROM允許對(duì)程序存儲(chǔ)器在線重復(fù)編程,也可用常規(guī)的EPROM編程器編程,可循環(huán)寫入/擦除1000次。89C51內(nèi)含4KB的FPEROM,一般的

7、EEPROM的字節(jié)擦除時(shí)間和寫入時(shí)間基本上均為10ms,對(duì)于任一個(gè)實(shí)時(shí)控制系統(tǒng)來說,這樣長(zhǎng)的時(shí)間是不可能在線修改程序的。圖22 89C51內(nèi)部結(jié)構(gòu)圖與EEPROM相比較,F(xiàn)PEROM大大縮短了存儲(chǔ)內(nèi)容擦除和寫入的時(shí)間,為在線改寫程序提供了極大的方便,而且價(jià)格也比帶EPROM87C系列單片機(jī)便宜,這更顯示出了89C系列的優(yōu)越性。它還有128*8Bit的片內(nèi)RAM;32根I/O線;2個(gè)16位定時(shí)/計(jì)數(shù)器;5個(gè)中斷源;一個(gè)全雙工的異步串行口;間歇和掉電工作模式;三級(jí)程序存儲(chǔ)器加密;全靜態(tài)工作,晶振工作范圍:0Hz24MHz。2管腳功能AT89C51單片機(jī)為40引腳芯片如圖23所示。I/O口線: P0

8、、P1、P2、P3共四個(gè)八位P0口是三態(tài)雙向口, 通稱數(shù)據(jù)總線口, 因?yàn)橹挥性摽谀苤苯佑糜趯?duì)外部存儲(chǔ)器的讀寫操作。P0口也用以輸出外部存儲(chǔ)器的低8位地址。由于是分時(shí)輸出, 故應(yīng)在外部加鎖存器將此地址數(shù)據(jù)鎖存, 地址鎖存信號(hào)用ALE。P1口是專門供用戶使用的I/O口, 是準(zhǔn)雙向口。P2口是從系統(tǒng)擴(kuò)展時(shí)作高8位地址線用。不擴(kuò)展外部存儲(chǔ)器時(shí), P口也可以作為用戶I/O口線使用, P2口也是準(zhǔn)雙向口。P3口是雙功能口, 該口的每一位均可獨(dú)立地定義為第一I/O 功能或第二I/O功能。作為第一功能使用時(shí)操作同P1口。P3口的第二功能如表21。圖2-3 89C51引腳圖控制口線: PSEN (片外取控制)、

9、AL E( 地址鎖存控制)、EA (片外儲(chǔ)器選擇)、RE2SET (復(fù)位控制) ;電源及時(shí)鐘: CCC、VSS; XTAL 1, XTAL 2表2-1 引腳功能表2.3 8255A8255A是Intel公司生產(chǎn)的可編程輸入輸出接口芯片,它具有3個(gè)8位的并I/O口,具有三種工作方式,可通過程序改變其功能,因而使用靈活,通用性強(qiáng),可作為單片機(jī)與多種外圍設(shè)備連接時(shí)的中間接口電路。8255有三種基本工作方式,PC口被分為兩個(gè)部分,上半部分隨PA口稱為A組,下半部分隨PBPA口可工作與方式0、1和2,而PB口只能工作在方式0和1。8255共有40個(gè)引腳,采用雙列直插式封裝。其引腳圖如圖2-4所示,各引腳

10、功能如下:圖2-4 8255A引腳圖D0-D7:三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接,用來傳送數(shù)據(jù)信息。CS:片選信號(hào)線,低電平有效,表示芯片被選中。RD:讀出信號(hào)線,低電平有效,控制數(shù)據(jù)的讀出。WR:寫入信號(hào)線,低電平有效,控制數(shù)據(jù)的寫入。Vcc:+5V電源。PA0-PA7:A口輸入/輸出線。PB0-PB7:B口輸入/輸出線。PC0-PC7:C口輸入/輸出線。RESET:復(fù)位信號(hào)線。A1、A0:地址線,用來選擇8255內(nèi)部端口。GND:地線。 74LS16474LS164引腳定義如圖2-5所示,其真值表如表2-2所示,其功能是將外部輸入的串行數(shù)據(jù)轉(zhuǎn)化為8位的并行數(shù)據(jù)輸出具有鎖寸功能。A、B端

11、為串行數(shù)據(jù)輸入端,QA QH為數(shù)據(jù)輸出端,CLK為外部時(shí)鐘輸入端,CLR為清零端。圖2-5 74LS164引腳圖表2-2 74LS164真值表 輸入輸出CLEARCLOCKA BQA QB QHLX X XL L LHL X XQA0 QB0 QH0H H HH QAn QGnH L XL QAn QGnH X LL QAn QGn注 QA0、 QB0、QH0為在穩(wěn)態(tài)輸入條件建立之前QA 、QB 和QH相應(yīng)的電平;QAn 、QGn 為在最近的時(shí)鐘轉(zhuǎn)換前QA或QG的電平,表示移1位。74LS164內(nèi)部功能圖如圖2-6所示:圖2-6 74LS164內(nèi)部功能圖2.5 X5045 X5045是一種集看

12、門狗、電壓監(jiān)控和串行EEPROM 三種功能于一身的可編程電路。這種組合設(shè)計(jì)減少了電路對(duì)電路板空間的需求。X5045中的看門狗對(duì)系統(tǒng)提供了保護(hù)功能。當(dāng)系統(tǒng)發(fā)生故障而超過設(shè)置時(shí)間時(shí),電路中的看門狗將通過RESET信號(hào)向CPU 作出反應(yīng)。X5045提供了三個(gè)時(shí)間值供用戶選擇使用。它所具有的電壓監(jiān)控功能還可以保護(hù)系統(tǒng)免受低電壓的影響,當(dāng)電源電壓降到允許范圍以下時(shí),系統(tǒng)將復(fù)位,直到電源電壓返回到穩(wěn)定值為止。X5045的存儲(chǔ)器與CPU 可通過串行通信方式接口,共有4096個(gè)位,可以按512 x 8個(gè)字節(jié)來放置數(shù)據(jù)。1 引腳介紹CS/WDI:片選輸入/看門狗復(fù)位輸入;SO:串行輸出;WP:寫保護(hù)輸入;RES

13、ET:復(fù)位輸出;SCK:同步時(shí)鐘輸入;SI:串行輸入。 圖2-7 X5045引腳圖 Vss:地;Vcc:電源;2 工作原理 2.1 上電復(fù)位 向X5045加電時(shí)會(huì)激活其內(nèi)部的上電復(fù)位電路,從而使RESET 引腳有效。該信號(hào)可避免系統(tǒng)微處理器在電壓不足或振蕩器未穩(wěn)定的情況下工作。當(dāng)VCC 超過器件的Vtrip門限值時(shí),電路將在200ms(典型)延時(shí)后釋放RESET 以允許系統(tǒng)開始工作。 2.2 低電壓監(jiān)視 工作時(shí), X5045對(duì)VCC 電平進(jìn)行監(jiān)測(cè),若電源電壓跌落至預(yù)置的最小Vtrip以下時(shí),系統(tǒng)即確認(rèn)RESET,從而避免微處理器在電源失效或斷開的情況下工作。當(dāng)RESET 被確認(rèn)后,該RESET

14、 信號(hào)將一直保持有效,直到電壓跌到低于1V 。而當(dāng)VCC 返回并超過Vtrip達(dá)200ms時(shí),系統(tǒng)重新開始工作。 2.3 看門狗定時(shí)器看門狗定時(shí)器的作用是通過監(jiān)視WDI輸入來監(jiān)視微處理器是否激活。由于微處理器必須周期性的觸發(fā)CS/WDI引腳以避免RESET 信號(hào)激活而使電路復(fù)位,所以CS/WDI引腳必須在看門狗超時(shí)時(shí)間終止之前受到由高至低信號(hào)的觸發(fā)。2.4 重新設(shè)置VCC 門限X5045/45出廠時(shí)設(shè)置的標(biāo)準(zhǔn)VCC 門限電壓為Vtrip,但在應(yīng)用時(shí),如果標(biāo)準(zhǔn)值不恰當(dāng),用戶可以重新調(diào)整。2.5 SPI串行存儲(chǔ)器器件存儲(chǔ)器部分是帶塊鎖保護(hù)的CMOS串行EEPROM 陣列,陣列的內(nèi)部組織是x8 位。

15、X5045可提供最少為1000,000次擦寫和100年的數(shù)據(jù)保存期,并具有串行外圍接口(SPI)和軟件協(xié)議的特點(diǎn),允許工作在簡(jiǎn)單的四總線上。X5045主要是通過一個(gè)8 位的指令寄存器來控制器件的工作,其指令代碼通過SI輸入端(MSB在前)寫入寄存器。表2-3所列為X5045的指令格式及其操作。表2-3 X5045的指令格式及其操作2.6 時(shí)鐘和數(shù)據(jù)時(shí)序 當(dāng)CS變低以后,SI線上的輸入數(shù)據(jù)在SCK 的第一個(gè)上升沿時(shí)被鎖存。而SO 線上的數(shù)據(jù)則由SCK的下降沿輸出。用戶可以停止時(shí)鐘,然后再啟動(dòng)它, 以便在它停止的地方恢復(fù)操作。在整個(gè)工作期間,CS必須為低。2.7 狀態(tài)寄存器 狀態(tài)寄存器包含四個(gè)非易

16、失性狀態(tài)位和兩個(gè)易失性狀態(tài)位??刂莆挥糜谠O(shè)置看門狗定時(shí)器的操作和存儲(chǔ)器的塊鎖保護(hù)。狀態(tài)寄存器的格式如表2-4(缺省值為00H) :表2-4 狀態(tài)寄存器格式其中: WIP (Write-In-Progress) 位是易失性只讀位,用于指明器件是否忙于內(nèi)部非易失性寫操作。WIP 位可用RDSR指令讀出。當(dāng)該位為“1”時(shí),表示非易失性寫操作正在進(jìn)行;為“0”時(shí),表示沒有進(jìn)行寫操作。 WEL(Write Enable Latch)位用于指出“寫使能”鎖存的狀態(tài)。WEL=1時(shí),表示鎖存被設(shè)置;WEL=0 表示鎖存已復(fù)位。WEL 位是易失性只讀位??梢杂肳REN指令設(shè)置WEL 位;用WRDI指令復(fù)位WEL

17、位。 用BLO,BL1(Block Lock)位可設(shè)置塊鎖存保護(hù)的范圍。任何被塊鎖保護(hù)的存儲(chǔ)器都只能讀出不能寫入。這兩個(gè)非易失性位可用WRSR指令來編程,并允許用戶保護(hù)EEPROM 陣列的1/4 、1/2、全部或0。參見表2-5 。2-5 受保護(hù)的EEPROM陳列地址WD0、WD1( Watchdog Timer)位用于選擇看門狗的超時(shí)周期。見表2-6 。表2-6 看門狗的超時(shí)周期選擇 當(dāng)用CS 選中器件后,送8 位RDSR指令,并由CLK 信號(hào)觸發(fā)即可將狀態(tài)寄存器的內(nèi)容從SO 線上讀出。而在寫狀態(tài)寄存器時(shí),應(yīng)先將CS 拉低,然后送WREN指令,再拉高CS。然后再次拉低CS,最后送入WREN指

18、令及對(duì)應(yīng)于狀態(tài)寄存器內(nèi)容的8 位數(shù)據(jù)即可。該操作由CS 變高結(jié)束。 WEL位及WP引腳的狀態(tài)對(duì)器件內(nèi)的存儲(chǔ)器及狀態(tài)寄存器各部分保護(hù)的影響如表2-7所列。表2-7 WREN命令和/WP引腳狀態(tài)寄存器的影響 第三章 單元電路模塊設(shè)計(jì)復(fù)位方式有多種,但本設(shè)計(jì)采用看門狗芯片X5045,接線圖如圖3-1所示。 3-1 復(fù)位電路原理圖在設(shè)定的定時(shí)時(shí)間內(nèi),89C51必須在/CS/WDI引腳產(chǎn)生一個(gè)由高到低的電平變化,以清內(nèi)部定時(shí)器,即“喂狗”,否則X5045將產(chǎn)生一個(gè)復(fù)位信號(hào)。晶振電路晶振電路原理圖如3-2:3-2晶振模塊原理圖選取原則:傳統(tǒng)做法,但能夠?qū)崿F(xiàn)所需,即最簡(jiǎn)單也最是實(shí)用。電容選取22uF,晶振為

19、11.0592Hz。3.4 I/O口擴(kuò)展電路 硬件原理設(shè)計(jì)圖如圖3-3所示:圖3-3 8255A擴(kuò)展單片機(jī)I/0口電路圖用74LS373鎖存,74LS138譯碼,擴(kuò)展單片機(jī)的I/O口,由原理圖得8255端口地址分配為:A口:0FFD8HB口:0FFD9HC口:0FFDAH LED數(shù)碼管顯示電路在單片機(jī)應(yīng)用系統(tǒng)中,數(shù)碼管顯示常用兩種方法:靜態(tài)顯示和動(dòng)態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個(gè)顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小,可以提

20、供單獨(dú)鎖存的I/O接口電路很多。所以本設(shè)計(jì)采用串并轉(zhuǎn)換電路74LS164的靜態(tài)顯示電路。其電路圖如圖3-4所示。 圖3-4 數(shù)碼管顯示靜態(tài)驅(qū)動(dòng)電路MCS-51單片機(jī)串行口方式0為移位寄存器方式,外接2片74LS164作為2位LED顯示器的靜態(tài)顯示接口,把89C51的RXD作為數(shù)據(jù)輸出線,TXD作為移位時(shí)鐘脈沖。74LS164為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個(gè)引腳按邏輯與運(yùn)算規(guī)律輸入信號(hào),共一個(gè)輸入信號(hào)時(shí)可并接。T(第8腳)為時(shí)鐘輸入端,可連接到串行口的TXD端。每一個(gè)時(shí)鐘信號(hào)的上升沿加到T端時(shí),移位寄存器移一位,8個(gè)時(shí)鐘脈沖過后

21、,8位二進(jìn)制數(shù)全部移入74LS164中。R(第9腳)為復(fù)位端,當(dāng)R=0時(shí),移位寄存器各位復(fù)0,只有當(dāng)R=1時(shí),時(shí)鐘脈沖才起作用。Q1Q8(第3-6和10-13引腳)并行輸出端分別接LED顯示器的hg···a各段對(duì)應(yīng)的引腳上。在給出了8個(gè)脈沖后,最先進(jìn)入74LS164的第一個(gè)數(shù)據(jù)到達(dá)了最高位,然后如果再來一個(gè)脈沖,第一個(gè)脈沖就會(huì)從最高位移出。設(shè)計(jì)中的2片7LS164首尾相串,而時(shí)鐘端則接在一起,這樣,當(dāng)輸入8個(gè)脈沖時(shí),從單片機(jī)RXD端輸出的數(shù)據(jù)就進(jìn)入到了第一片74LS164中了,而當(dāng)?shù)诙€(gè)8個(gè)脈沖到來后,這個(gè)數(shù)據(jù)就進(jìn)入了第二片74LS164,而新的數(shù)據(jù)則進(jìn)入了第一片

22、74LS164,這樣首先送出的數(shù)據(jù)被送到了右面的164中,后送入的則在左面的164中。本設(shè)計(jì)中采用的是共陰極LED數(shù)碼管,其字形碼如表3-1所示。表3-1 共陰極LED數(shù)碼管字形碼表數(shù)據(jù)位D7D6D5D4D3D2D1D0筆段位ABCDEFGH字形碼0011111107EH10001001012H210111100BCH310110110B6H411010010D2H511100110E6H611101110EEH70011001032H811111110FEH911110110F6H全滅0000000000H3.6 交通燈狀態(tài)顯示電路十字路口的交通燈分布示意圖如圖3-5所示,將這12個(gè)交通燈進(jìn)

23、行編號(hào)。圖3-5 十字路口交通燈分布示意圖這12個(gè)交通燈共有四個(gè)狀態(tài):狀態(tài)1(S1):東西紅燈(4、10)亮,南北綠燈(3、9)亮狀態(tài)2(S2):南北黃燈(2、8)亮,東西仍為紅燈(4、10)亮狀態(tài)3(S3):南北紅燈(1、7)亮,東西綠燈(6、12)亮狀態(tài)4(S4):東西黃燈(5、11)亮,南北仍為紅燈(1、7)亮對(duì)應(yīng)的硬件原理設(shè)計(jì)圖如圖3-6所示:圖3-6 交通燈狀態(tài)顯示電路用7407對(duì)發(fā)光二極管進(jìn)行驅(qū)動(dòng),圖中電阻R為390歐姆,以保證通過發(fā)光二極管的電流大于工作電流10mA。四種狀態(tài)下發(fā)光二極管與相應(yīng)端口取值關(guān)系見表3-2。表3-2 發(fā)光二極管與相應(yīng)端口取值關(guān)系PB5PB4PB3PB2P

24、B1PB0PA5PA4PA3PA2PA1PA0西紅西綠西黃南紅南綠南黃東紅東綠東黃北紅北綠北黃東西紅燈亮南北綠燈亮0111010111011D1DH東西紅燈亮南北黃燈亮0111100111101E1EH東西綠燈亮南北紅燈亮1010111010112B2BH東西黃燈亮南北紅燈亮1100111100113333h紅燈全亮0110110110111B1BH3.7 緊急情況中斷電路緊急情況中斷處理電路圖如圖3-7所示:圖3-7 緊急情況中斷電路圖當(dāng)東西向(或南北向)有特殊情況,比如有救護(hù)車通過,開關(guān)SW0為低電平則應(yīng)使交通燈處于S3(東西綠燈、南北),開關(guān)SW1為低電平則應(yīng)使交通燈處于S1(南北向綠燈

25、、東西向紅燈)。 總體設(shè)計(jì)原理圖及功能介紹 整個(gè)設(shè)計(jì)原理圖見附圖。 功能介紹在應(yīng)用電路中,采用8255A對(duì)單片機(jī)的I/O口進(jìn)行有效的擴(kuò)展,從而大大增加了可利用的I/O口資源,使得I/O口很充裕。8255的PA口和PB口接發(fā)光二極管,通過對(duì)PA口和PB口的位寫“1”或“0”來控制發(fā)光二極管的亮、滅,進(jìn)而模擬顯示出十字路口交通燈的各種狀態(tài)。 LED數(shù)碼管則用來對(duì)各種狀態(tài)進(jìn)行倒計(jì)時(shí)的顯示。設(shè)計(jì)中采用74LS164靜態(tài)驅(qū)動(dòng)LED數(shù)碼管,利用單片機(jī)的RXD作為數(shù)據(jù)的輸出端給164送數(shù)。利用164的移位進(jìn)行多位的顯示。利用延時(shí)程序控制每秒時(shí)間,從而控制RXD送數(shù)的時(shí)間間隔。緊急情況的處理則采用查詢加中斷的

26、方式。通過查詢P1.2和P1.3的狀態(tài)來控制外部中斷1,然后進(jìn)去相應(yīng)的處理程序。在哪一方向上有緊急情況,則能通過開關(guān)進(jìn)行中斷,使該方向上為綠燈放行,同時(shí)緊急情況報(bào)警燈亮。第四章 軟件編程設(shè)計(jì)4.1 設(shè)計(jì)思想交通燈根據(jù)其顯示情況可以分為四個(gè)狀態(tài),可以通過定時(shí)來控制每個(gè)狀態(tài)的時(shí)間;通過定時(shí)也可以向LED數(shù)碼管中每隔1秒送一個(gè)數(shù),顯示該狀態(tài)剩余的時(shí)間;如果有中斷出現(xiàn)則進(jìn)入相應(yīng)的處理程序:先保留目前的顯示狀態(tài),然后根據(jù)情況顯示處理中的狀態(tài),緊急情況結(jié)束則恢復(fù)到保留的原來狀態(tài)。4.2 程序框圖 主程序框圖和中斷程序框圖分別如圖4-1和4-2所示。程序初始化狀態(tài)1(S1)狀態(tài)2 (S2)狀態(tài)3(S3)狀態(tài)

27、4(S4) 圖4-1 主程序框圖 圖4-2 中斷程序框圖4.3 源程序#include <reg51.h>#include <absacc.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char#define COM8255 XBYTE0xffdb#define PA8255 XBYTE0xffd8#define PB8255 XBYTE0Xffd9sbit P1_0=P10;sbit P1_2=P12;sbit P1_3=P13;sbit P3_0=P30;sbi

28、t P3_1=P31;uchar code table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6,0x00;void delay_500ms(int x) /*延時(shí)子程序*/ int i; for(;x>0;x-) for(i=6245;i>0;i+) ;void int1_srv(void)interrupt 2 using 2 uchar a,b; if(!INT1) a=PA8255; b=PB8255; /*保留A口,B口狀態(tài)*/ if(P1_2=0) PA8255=0x1d; PB8255=0x1d; P1_0=0

29、; if(P1_3=0) PA8255=0x2b; PB8255=0x2b; P1_0=0; while(!INT1); /*等待開關(guān)斷開*/ PA8255=0xff; PA8255=0xff; PA8255=a; PB8255=b; /*恢復(fù)A口,B口狀態(tài)*/ P1_0=1; void display(uchar x,uchar y) uchar a2=5,1,4,1,3,1,2,1,1,1,0,1,9,10,8,10,7,10,6,10,5,10,4,10,3,10,2,10,1,10,0,10; uchar i,j; for(i=x;i<y;i+) for(j=0;j<2;j

30、+) x=aij; SBUF=tablex; dowhile(TI=0); TI=0; delay_500ms(2); void main()SCON=0x00;P3_0=1;P3_1=1;COM8255=0x88;SCON=0x00;EA=1;ET0=1;PX1=1;EX1=1;PA8255=0x1b;PB8255=0x1b;delay_500ms(2);while(1) PA8255=0x1d;/*東西紅,南北綠:12秒*/ PB8255=0x1d; display(0,12); PA8255=0x1e; /*東西紅,南北黃:3秒*/ PB8255=0x1e; display(12,16)

31、; PA8255=0x2b; /*東西綠,南北紅:8秒*/ PB8255=0x2b; display(5,12); PA8255=0x33; /*東西黃,南北紅:3秒*/ PB8255=0x33; display(12,16); PA8255=0x1d;/*循環(huán)*/ PB8255=0x1d; 第五章 設(shè)計(jì)心得和存在問題 通過本次課程設(shè)計(jì),我深深的體會(huì)到了作為一個(gè)硬件工程師的艱辛。即使做一個(gè)小小的項(xiàng)目,都需要這么多的辛苦,必須考慮到問題的任何一個(gè)細(xì)節(jié),否則最后也將是功敗垂成。 原理圖設(shè)計(jì): 當(dāng)我們選取了這樣一個(gè)題目,我們就開始收集相關(guān)的各種資料,對(duì)題目有個(gè)大致的了解,規(guī)劃一下設(shè)計(jì)的任務(wù)將要完成哪

32、些功能。然后就具體的每一項(xiàng)功能應(yīng)該怎樣具體的設(shè)計(jì),例如用什么方法完成這一功能,這種想法是否合理,比較使用哪個(gè)芯片來完成這項(xiàng)功能。經(jīng)過長(zhǎng)時(shí)間的查閱資料、思索、推敲,最后定出了這次設(shè)計(jì)的原理圖。PCB板設(shè)計(jì):在上學(xué)期兩個(gè)星期的課程設(shè)計(jì)中我們從圖書館借來了有關(guān)protel軟件使用方面的資料,研究應(yīng)該怎樣生成正確的網(wǎng)絡(luò)表,PCB板的布局,布線,制板等工作。剛開始由于經(jīng)驗(yàn)不足,不知道如何封裝庫(kù)里面沒有的器件和芯片而且生成的網(wǎng)絡(luò)表又有那么多的線,當(dāng)時(shí)真是一頭霧水,經(jīng)過老師和同學(xué)的幫助以及自己的摸索,最后以勉強(qiáng)及格的水準(zhǔn)畫出了這次的設(shè)計(jì)用板。硬件焊接:在拿到板之后,按照老師的要求我們首先檢查了一下板子是否有

33、錯(cuò)誤,這是一個(gè)非常關(guān)鍵的步驟,因?yàn)楫?dāng)你焊接上器件之后將會(huì)很難檢查。結(jié)果發(fā)現(xiàn)了真的還有一些不足,比如在畫板的過程中我們居然忘記留出電源接口,還有一些兩根電源線沒有和其他線接到一塊,另外我們給按鍵留的引腳的孔太小了,數(shù)碼管的引腳情況也給弄錯(cuò)了,這些應(yīng)該是初學(xué)這些東西經(jīng)驗(yàn)不夠和粗心造成的。這些也都給以后的學(xué)習(xí)留下了經(jīng)驗(yàn)和教訓(xùn),必須先拿到或熟悉芯片才能確定引腳的間距以及大小,制板過程必須要細(xì)心。發(fā)現(xiàn)這些錯(cuò)誤,在焊接過程中我們采取了一系列的措施來補(bǔ)救這些錯(cuò)誤。比如割斷板子上的線,用導(dǎo)線來連接等。關(guān)于焊接這塊我參與的并不多,因?yàn)樽约旱乃酱_實(shí)不怎么樣,這需要一定的經(jīng)驗(yàn)和技巧,但是我卻是遲遲把握不到這種技巧。剛開始烙鐵和焊錫配合不到一塊,然后就是焊錫的量的控制問題。始終達(dá)不到老師說明的那種效果。所以我只能在我的組員焊板的同

溫馨提示

  • 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)論