交通燈控制系統(tǒng)設(shè)計(jì)_第1頁
交通燈控制系統(tǒng)設(shè)計(jì)_第2頁
交通燈控制系統(tǒng)設(shè)計(jì)_第3頁
交通燈控制系統(tǒng)設(shè)計(jì)_第4頁
交通燈控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理及應(yīng)用課程設(shè)計(jì) - 交通燈控制系統(tǒng)設(shè)計(jì)作 者 姓 名:張 濤學(xué)號:20042365指 導(dǎo) 教 師:李新光學(xué) 院 名 稱:信息科學(xué)與工程學(xué)院專 業(yè) 名 稱:測控技術(shù)與儀器東 北 大 學(xué)2007年 7 月東北大學(xué)課程設(shè)計(jì)任務(wù)書i 任務(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 日東北大學(xué)課程設(shè)

2、計(jì)摘要ii 摘要交通在人們的日常生活中占有重要的地位,隨著人們社會(huì)活動(dòng)的日益頻繁,這點(diǎn)更是體現(xiàn)的淋漓盡致。 交通信號燈的出現(xiàn), 使交通得以有效管制, 對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統(tǒng)采用單片機(jī)at89c51 為中心器件來設(shè)計(jì)交通燈控制器,系統(tǒng)實(shí)用性強(qiáng)、 操作簡單、擴(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)的狀

3、況。軟件上采用 c51編程,主要編寫了主程序, led數(shù)碼管顯示程序,中斷程序延時(shí)程序等。經(jīng)過整機(jī)調(diào)試,實(shí)現(xiàn)了對十字路口交通燈的模擬。關(guān)鍵詞:at89c51 8255a 74ls164 led 交通燈 程序東北大學(xué)課程設(shè)計(jì)目錄目 錄任 務(wù) 書 . i摘要 . ii第 一 章緒論 . 11.1 概述 . 11.2 設(shè)計(jì)目的 . 11.3 設(shè)計(jì)任務(wù)和內(nèi)容 . 1第 二 章總 體 設(shè) 計(jì) 及 核 心 器 件 簡 介 . 22.1 總體設(shè)計(jì) . 22.2 at89c51 . 22.3 8255a . 42.4 74ls164 . 52.5 x5045 . 7第 三 章單 元 電 路 模 塊 設(shè) 計(jì) .

4、 113.1 復(fù)位電路 . 113.3 晶振電路 . 113.4 i/o口擴(kuò)展電路 . 123.5 led 數(shù)碼管顯示電路 . 123.6 交通燈狀態(tài)顯示電路. 143.7 緊急情況中斷電路. 153.8 總體設(shè)計(jì)原理圖及功能介紹. 16第 四 章軟 件 編 程 設(shè) 計(jì) . 17東北大學(xué)課程設(shè)計(jì)目錄4.1 設(shè)計(jì)思想 . 174.2 程序框圖 . 174.3 源程序 . 17第 五 章設(shè) 計(jì) 心 得 和 存 在 問 題 . 21參 考 文 獻(xiàn) . 24東北大學(xué)課程設(shè)計(jì)第一章緒論1 第一章緒論1.1 概述近年來隨著科技的飛速發(fā)展, 單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測日新月益更新。

5、 在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來使用,僅單片機(jī)方面知識是不夠的, 還應(yīng)根據(jù)具體硬件結(jié)構(gòu), 以及針對具體應(yīng)用對象特點(diǎn)的軟件結(jié)合,加以完善。 交通信號燈的出現(xiàn),使交通得以有效管制, 對于疏導(dǎo)交通流量、 提高道路通行能力, 減少交通事故有明顯效果。1.2 設(shè)計(jì)目的(1)加強(qiáng)對單片機(jī)和c51語言的認(rèn)識,充分掌握和理解設(shè)計(jì)各部分的工作原理、設(shè)計(jì)過程、選擇芯片器件、模塊化編程等多項(xiàng)知識。(2)用單片機(jī)模擬實(shí)現(xiàn)具體應(yīng)用,使個(gè)人設(shè)計(jì)能夠真正使用。(3)把理論知識與實(shí)踐相結(jié)合,充分發(fā)揮個(gè)人能力,并在實(shí)踐中鍛煉。(4)提高利用已學(xué)知識分析和解決問題的能力。(5)提高實(shí)踐動(dòng)手

6、能力。1.3 設(shè)計(jì)任務(wù)和內(nèi)容1.3.1 設(shè)計(jì)任務(wù)結(jié)合教材及參考資料, 用 at89c51 單片機(jī)模擬實(shí)現(xiàn)十字路口的交通燈亮滅、倒計(jì)時(shí)顯示、緊急情況處理等功能。1.3.2 設(shè)計(jì)內(nèi)容(1)填寫設(shè)計(jì)任務(wù)書。(2)進(jìn)行總體設(shè)計(jì),畫出原理圖。(3)用 protel軟件畫出 pcb 板并制板。(4)焊接器件和芯片。(5)編寫并調(diào)試程序。東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介2 第二章總體設(shè)計(jì)及核心器件簡介2.1 總體設(shè)計(jì)整個(gè)設(shè)計(jì)以 at89c51 單片機(jī)為核心,由i/o 口擴(kuò)展, led 數(shù)碼管顯示 ,緊急情況中斷電路, watchdog復(fù)位電路組成。硬件模塊入圖 3-1。圖 21 硬件模塊2.2

7、at89c51 1at89c51 單片機(jī)簡介at89c51 是美國 atmel 公司推出的系列單片機(jī),將多種功能的8 位 cpu與 fperom(快閃可編程 /擦除只讀存儲器) 結(jié)合在一個(gè)芯片上, 是一種低功耗、高性能的 cmos 控制器,為很多嵌入式控制應(yīng)用提供了非常靈活而又價(jià)格適宜的方案,其性能價(jià)格比遠(yuǎn)高于同類芯片。它與mcs-51 指令系統(tǒng)兼容,片內(nèi)fperom 允許對程序存儲器在線重復(fù)編程,也可用常規(guī)的 eprom編程器編程,可循環(huán)寫入 /擦除 1000次。89c51內(nèi)含 4kb 的 fperom,一般的 eeprom 的字節(jié)擦除時(shí)間和寫入時(shí)間基本上均為10ms ,對于任一個(gè)實(shí)時(shí)控制系

8、統(tǒng)來說,這樣長的時(shí)間是不可能在線修改程序的。at89c51單片機(jī)i/0 口擴(kuò)展led 數(shù)碼管顯示中斷系統(tǒng)復(fù)位電路東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介3 圖 2 2 89 c51 內(nèi) 部 結(jié) 構(gòu) 圖與 eeprom 相比較,fperom 大大縮短了存儲內(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è)全雙工的異步串行口;間歇和掉電工作模式;三級程序存儲器加密;全靜態(tài)工作,晶振工作范圍:0h

9、z24mhz。2管 腳 功 能at89c51單片機(jī)為 40 引腳芯片如圖 23 所示。錯(cuò)誤!未找到引用源。i/o口線: p0、p1、p2、p3共四個(gè)八位 p0口是三態(tài)雙向口, 通稱數(shù)據(jù)總線口 , 因?yàn)橹挥性摽谀苤苯佑糜趯ν獠看鎯ζ鞯淖x? 寫操作。p0口也用以輸出外部存儲器的低8位地址。由于是分時(shí)輸出, 故應(yīng)在外部加鎖存器將此地址數(shù)據(jù)鎖存 , 地址鎖存信號用 ale。p1口是專門供用戶使用的 i/o口, 是準(zhǔn)雙向口。 p2口是從系統(tǒng)擴(kuò)展時(shí)作高 8位地址線用。不擴(kuò)展外部存儲器時(shí), p口也可東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介4 以作為用戶 i/o口線使用 , p2口也是準(zhǔn)雙向口。 p3口是

10、雙功能口 , 該口的每一位均可獨(dú)立地定義為第一 i/o 功能或第二 i/o功能。作為第一功能使用時(shí)操作同p1口。p3口的第二功能如表 21。圖 2-3 89c51 引腳圖錯(cuò) 誤 ! 未 找 到 引 用 源 。 控 制口 線 : ps en ( 片外 取 控 制)、 al e( 地址 鎖 存 控制 )、 ea (片外 儲 器選 擇 )、 re2s et (復(fù) 位 控 制 ) ; 錯(cuò) 誤 ! 未 找 到 引 用 源 。 電 源及 時(shí) 鐘 : ccc 、 vs s; xtal 1, xtal 2表 2-1 引腳功能表2.3 8255a 8255a是intel公司生產(chǎn)的可編程輸入輸出接口芯片, 它具有

11、 3 個(gè) 8位的并 i/o 口, 具有三種工作方式 , 可通過程序改變其功能 , 因而使用靈活 , 通用性強(qiáng) , 可作為東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介5 單片機(jī)與多種外圍設(shè)備連接時(shí)的中間接口電路。8255 有三種基本工作方式,三種工作方式由工作方式控制字決定 , 方式控制字由cpu通過輸入 /輸出指令來提供 . 三個(gè)端口中 pc口被分為兩個(gè)部分, 上半部分隨 pa口稱為 a 組, 下半部分隨 pb口稱為 b組. 其中 pa口可工作與方式0、1 和 2,而pb口只能工作在方式0 和 1。8255 共有 40 個(gè)引腳, 采用雙列直插式封裝。其引腳圖如圖2-4 所示,各引腳功能如下:圖

12、 2-4 8255a 引腳圖d0-d7:三態(tài)雙向數(shù)據(jù)線 , 與單片機(jī)數(shù)據(jù)總線連接 , 用來傳送數(shù)據(jù)信息。cs :片選信號線,低電平有效,表示芯片被選中。rd :讀出信號線,低電平有效,控制數(shù)據(jù)的讀出。wr :寫入信號線,低電平有效,控制數(shù)據(jù)的寫入。vcc:+5v電源。pa0-pa7:a口輸入 / 輸出線。pb0-pb7:b口輸入 / 輸出線。pc0-pc7 :c口輸入 / 輸出線。reset :復(fù)位信號線。a1、a0:地址線,用來選擇8255 內(nèi)部端口。gnd :地線。2.4 74ls164 74ls164引腳定義如圖2-5 所示,其真值表如表2-2 所示,其功能是將外部輸入的串行數(shù)據(jù)轉(zhuǎn)化為8

13、 位的并行數(shù)據(jù)輸出具有鎖寸功能。a、b 端為串行數(shù)據(jù)輸入端, qa qh為數(shù)據(jù)輸出端, clk為外部時(shí)鐘輸入端, clr為清零端。東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介6 圖 2-5 74ls164引腳圖表 2-2 74ls164真值表輸入輸出clear clock a b qaqb,qhl x x x l l l h l x x qa0qb0 qh0 h h h h qanqgn h l x l qanqgnh x l l qanqgn注 qa0、 qb0、qh0為在穩(wěn)態(tài)輸入條件建立之前qa、qb和 qh相應(yīng)的電平; qan、 qgn為在最近的時(shí)鐘轉(zhuǎn)換前qa或 qg的電平,表示移1 位

14、。74ls164內(nèi)部功能圖如圖2-6 所示:圖 2-6 74ls164 內(nèi)部功能圖東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介7 2.5 x5045x5045是一種集看門狗、電壓監(jiān)控和串行eeprom 三種功能于一身的可編程電路。這種組合設(shè)計(jì)減少了電路對電路板空間的需求。x5045中的看門狗對系統(tǒng)提供了保護(hù)功能。當(dāng)系統(tǒng)發(fā)生故障而超過設(shè)置時(shí)間時(shí),電路中的看門狗將通過reset 信號向 cpu 作出反應(yīng)。x5045提供了三個(gè)時(shí)間值供用戶選擇使用。它所具有的電壓監(jiān)控功能還可以保護(hù)系統(tǒng)免受低電壓的影響,當(dāng)電源電壓降到允許范圍以下時(shí),系統(tǒng)將復(fù)位, 直到電源電壓返回到穩(wěn)定值為止。 x5045的存儲器與 c

15、pu 可通過串行通信方式接口,共有4096個(gè)位,可以按 512 x 8 個(gè)字節(jié)來放置數(shù)據(jù)。1 引腳介紹cs/wdi :片選輸入 / 看門狗復(fù)位輸入;so :串行輸出;wp :寫保護(hù)輸入;reset :復(fù)位輸出;sck :同步時(shí)鐘輸入;si:串行輸入。圖2-7 x5045 引腳圖vss:地;vcc:電源;2 工作原理 2.1 上電復(fù)位向 x5045加電時(shí)會(huì)激活其內(nèi)部的上電復(fù)位電路,從而使reset 引腳有效。該信號可避免系統(tǒng)微處理器在電壓不足或振蕩器未穩(wěn)定的情況下工作。當(dāng)vcc 超過器件的 vtrip門限值時(shí), 電路將在 200ms (典型)延時(shí)后釋放 reset 以允許系統(tǒng)開始工作。 2.2

16、低電壓監(jiān)視工作時(shí), x5045 對 vcc 電平進(jìn)行監(jiān)測,若電源電壓跌落至預(yù)置的最小vtrip以下時(shí),系統(tǒng)即確認(rèn) reset , 從而避免微處理器在電源失效或斷開的情況下工作。當(dāng) reset 被確認(rèn)后,該 reset 信號將一直保持有效,直到電壓跌到低于1v 。而當(dāng) vcc 返回并超過 vtrip達(dá) 200ms時(shí),系統(tǒng)重新開始工作。 2.3 看門狗定時(shí)器東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介8 看門狗定時(shí)器的作用是通過監(jiān)視wdi輸入來監(jiān)視微處理器是否激活。 由于微處理器必須周期性的觸發(fā)cs/wdi引腳以避免 reset 信號激活而使電路復(fù)位, 所以 cs/wdi引腳必須在看門狗超時(shí)時(shí)間終

17、止之前受到由高至低信號的觸發(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 串行存儲器器件存儲器部分是帶塊鎖保護(hù)的cmos 串行 eeprom 陣列,陣列的內(nèi)部組織是 x8 位。x5045可提供最少為 1000,000 次擦寫和 100 年的數(shù)據(jù)保存期, 并具有串行外圍接口( spi)和軟件協(xié)議的特點(diǎn),允許工作在簡單的四總線上。x5045主要是通過一個(gè) 8 位的指令寄存器來控制器件的工作,其指令代碼通過 si 輸入端( msb 在前)寫入寄存器。表2-3 所列為 x5045的指令

18、格式及其操作。表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è)非易失性狀態(tài)位和兩個(gè)易失性狀態(tài)位??刂莆挥糜谠O(shè)置看門狗定時(shí)器的操作和存儲器的塊鎖保護(hù)。狀態(tài)寄存器的格式如表2-4(缺省值為 00h) :東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介9 表2-4 狀態(tài)寄存器格式其中: wip (write-in-progress) 位是易失

19、性只讀位,用于指明器件是否忙于內(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 位是易失性只讀位。 可以用wren 指令設(shè)置 wel 位;用 wrdi 指令復(fù)位 wel 位。用 blo ,bl1(block lock)位可設(shè)置塊鎖存保護(hù)的范圍。任何被塊鎖保護(hù)的存儲器都只能讀出不能寫入。這兩個(gè)非易失性位可用wrsr 指令來編程,并允許用戶保護(hù) eeprom 陣列

20、的 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 信號觸發(fā)即可將狀態(tài)寄存器的內(nèi)容從 so 線上讀出。 而在寫狀態(tài)寄存器時(shí), 應(yīng)先將cs 拉低,然后送 wren指令,再拉高 cs 。然后再次拉低 cs ,最后送入 wren指令及對應(yīng)于狀態(tài)寄存器內(nèi)容東北大學(xué)課程設(shè)計(jì)第二章總體設(shè)計(jì)及核心器件簡介10 的8 位數(shù)據(jù)即可。該操作由 cs 變高結(jié)束。 wel 位及wp 引腳的狀態(tài)對器

21、件內(nèi)的存儲器及狀態(tài)寄存器各部分保護(hù)的影響如表2-7所列。表2-7 wren 命令和 /wp 引腳狀態(tài)寄存器的影響東北大學(xué)課程設(shè)計(jì)第三章單元電路模塊設(shè)計(jì)11 第三章單元電路模塊設(shè)計(jì)3.1 復(fù)位電路復(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ù)位信號。3.3 晶振電路晶振電路原理圖如3-2:3-2晶振模塊原理圖選取原則:傳統(tǒng)做法,但能夠?qū)崿F(xiàn)所需,即最簡單也最是實(shí)用。電容選取22uf,晶振為 11.059

22、2hz。東北大學(xué)課程設(shè)計(jì)第三章單元電路模塊設(shè)計(jì)12 3.4 i/o口擴(kuò)展電路硬件原理設(shè)計(jì)圖如圖3-3 所示:圖 3-3 8255a 擴(kuò)展單片機(jī)i/0口電路圖用 74ls373鎖存, 74ls138譯碼,擴(kuò)展單片機(jī)的i/o 口,由原理圖得8255 端口地址分配為:a口:0ffd8h b口:0ffd9h c口:0ffdah 3.5 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í),

23、 再發(fā)送新的字形碼, 因此,使用這種方法單片機(jī)中 cpu 的開銷小, 可以提供單獨(dú)鎖存的i/o 接口電路很多。 所以本設(shè)計(jì)采用串并轉(zhuǎn)換電路 74ls164的靜態(tài)顯示電路。其電路圖如圖3-4 所示。東北大學(xué)課程設(shè)計(jì)第三章單元電路模塊設(shè)計(jì)13 圖 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)算

24、規(guī)律輸入信號,共一個(gè)輸入信號時(shí)可并接。t(第 8 腳)為時(shí)鐘輸入端,可連接到串行口的txd端。每一個(gè)時(shí)鐘信號的上升沿加到t 端時(shí),移位寄存器移一位,8 個(gè)時(shí)鐘脈沖過后, 8 位二進(jìn)制數(shù)全部移入74ls164中。r(第 9 腳)為復(fù)位端,當(dāng) r=0時(shí),移位寄存器各位復(fù)0, 只有當(dāng) r=1時(shí), 時(shí)鐘脈沖才起作用。q1, q8(第 3-6 和 10-13引腳)并行輸出端分別接led顯示器的 hg a 各段對應(yīng)的引腳上。在給出了8個(gè)脈沖后,最先進(jìn)入 74ls164的第一個(gè)數(shù)據(jù)到達(dá)了最高位, 然后如果再來一個(gè)脈沖,第一個(gè)脈沖就會(huì)從最高位移出。設(shè)計(jì)中的2 片 7ls164首尾相串,而時(shí)鐘端則接在一起, 這

25、樣,當(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)入了第一片74ls164 ,這樣首先送出的數(shù)據(jù)被送到了右面的 164 中,后送入的則在左面的164中。本設(shè)計(jì)中采用的是共陰極led數(shù)碼管,其字形碼如表3-1 所示。表 3-1 共陰極 led數(shù)碼管字形碼表數(shù)據(jù)位d7 d6 d5 d4 d3 d2 d1 d0 筆段位a b c d e f g h 字形碼0 0 1 1 1 1 1 1 0 7eh 1 0 0 0 1 0 0 1 0 12h 2 1 0 1 1 1 1 0

26、0 bch 東北大學(xué)課程設(shè)計(jì)第三章單元電路模塊設(shè)計(jì)14 3 1 0 1 1 0 1 1 0 b6h 4 1 1 0 1 0 0 1 0 d2h 5 1 1 1 0 0 1 1 0 e6h 6 1 1 1 0 1 1 1 0 eeh 7 0 0 1 1 0 0 1 0 32h 8 1 1 1 1 1 1 1 0 feh 9 1 1 1 1 0 1 1 0 f6h 全滅0 0 0 0 0 0 0 0 00h 3.6 交通燈狀態(tài)顯示電路十字路口的交通燈分布示意圖如圖3-5 所示,將這 12 個(gè)交通燈進(jìn)行編號。圖 3-5 十字路口交通燈分布示意圖這 12 個(gè)交通燈共有四個(gè)狀態(tài):狀態(tài) 1(s1) :東西

27、紅燈( 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)亮對應(yīng)的硬件原理設(shè)計(jì)圖如圖3-6 所示:東北大學(xué)課程設(shè)計(jì)第三章單元電路模塊設(shè)計(jì)15 圖3-6 交通燈狀態(tài)顯示電路用7407對發(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)系pb5 pb4 pb3 pb2 p

28、b1 pb0 pa5 pa4 pa3 pa2 pa1 pa0 西紅西綠西黃南紅南綠南黃東紅東綠東黃北紅北綠北黃東西紅燈亮南北綠燈亮0 1 1 1 0 1 0 1 1 1 0 1 1d1dh 東西紅燈亮南北黃燈亮0 1 1 1 1 0 0 1 1 1 1 0 1e1eh 東西綠燈亮南北紅燈亮1 0 1 0 1 1 1 0 1 0 1 1 2b2bh 東西黃燈亮南北紅燈亮1 1 0 0 1 1 1 1 0 0 1 1 3333h 紅燈全亮0 1 1 0 1 1 0 1 1 0 1 1 1b1bh 3.7 緊急情況中斷電路緊急情況中斷處理電路圖如圖3-7 所示:東北大學(xué)課程設(shè)計(jì)第三章單元電路模塊設(shè)計(jì)

29、16 圖 3-7 緊急情況中斷電路圖當(dāng)東西向(或南北向)有特殊情況,比如有救護(hù)車通過,開關(guān)sw0為低電平則應(yīng)使交通燈處于 s3(東西綠燈、南北),開關(guān) sw1為低電平則應(yīng)使交通燈處于s1(南北向綠燈、東西向紅燈) 。3.8 總體設(shè)計(jì)原理圖及功能介紹整個(gè) 設(shè) 計(jì) 原 理 圖見 附 圖 。功 能 介 紹在應(yīng) 用 電 路 中 ,采 用 8255a 對 單 片 機(jī) 的 i/o口 進(jìn) 行 有 效的 擴(kuò) 展 ,從 而 大 大增 加 了可 利 用 的 i/ o 口 資 源 , 使 得 i /o 口 很 充 裕 。 8255 的pa 口 和 pb 口 接 發(fā)光 二 極 管 ,通 過 對 pa 口 和 pb 口

30、 的 位寫“ 1”或“ 0”來 控 制 發(fā)光 二 極管 的 亮 、滅 ,進(jìn) 而 模 擬 顯 示 出 十 字 路 口 交通 燈 的 各 種狀 態(tài) 。led 數(shù) 碼 管 則 用 來 對 各 種 狀 態(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í) 間 間 隔 。緊 急 情 況 的 處 理 則 采 用 查 詢 加 中 斷 的 方

31、式 。 通 過 查 詢p1.2和p1.3 的狀 態(tài) 來 控 制 外部 中斷 1,然 后進(jìn) 去 相應(yīng) 的 處 理 程 序。在 哪 一 方向 上 有 緊急 情 況, 則 能 通 過 開關(guān) 進(jìn) 行 中 斷 , 使 該 方 向上 為 綠燈 放 行 ,同 時(shí) 緊 急情 況 報(bào)警 燈 亮 。東北大學(xué)課程設(shè)計(jì)第四章軟件編程設(shè)計(jì)17 第四章軟件編程設(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),緊急情況

32、結(jié)束則恢復(fù)到保留的原來狀態(tài)。4.2 程序框圖主 程 序 框 圖 和 中 斷 程 序 框 圖 分 別 如 圖4-1和4-2所 示 。圖 4-1 主程序框圖圖 4-2 中斷程序框圖4.3 源程序#include #include #include #define uint unsigned int #define uchar unsigned char 程序初始化狀態(tài) 1(s1) 狀態(tài) 2 (s2) 狀態(tài) 3 (s3)狀態(tài) 4 (s4)東北大學(xué)課程設(shè)計(jì)第四章軟件編程設(shè)計(jì)18 #define com8255 xbyte0 xffdb #define pa8255 xbyte0 xffd8 #defi

33、ne pb8255 xbyte0xffd9 sbit p1_0=p10; sbit p1_2=p12; sbit p1_3=p13; sbit p3_0=p30; sbit p3_1=p31; uchar code table=0 xfc,0 x60,0 xda,0 xf2,0 x66,0 xb6,0 xbe,0 xe0,0 xff,0 xf6,0 x00; void delay_500ms(int x) /*延時(shí)子程序 */ int i; for(;x0;x-) for(i=6245;i0;i+) ; void int1_srv(void)interrupt 2 using 2 uchar

34、a,b; if(!int1) a=pa8255; b=pb8255; /*保留 a 口, b 口狀態(tài) */ if(p1_2=0) pa8255=0 x1d; pb8255=0 x1d; p1_0=0; if(p1_3=0) pa8255=0 x2b; pb8255=0 x2b; 東北大學(xué)課程設(shè)計(jì)第四章軟件編程設(shè)計(jì)19 p1_0=0; while(!int1); /*等待開關(guān)斷開 */ pa8255=0 xff; pa8255=0 xff; pa8255=a; pb8255=b; /*恢復(fù) a 口, b 口狀態(tài) */ p1_0=1; void display(uchar x,uchar y) u

35、char 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;iy;i+) for(j=0;j2;j+) x=aij; sbuf=tablex; dowhile(ti=0); ti=0; delay_500ms(2); void main() scon=0 x00; p3_0=1; p3_1=1; com8255=0 x88; 東北大學(xué)課程設(shè)計(jì)第四章軟件編程設(shè)計(jì)20 scon=0 x00; ea=1; et0=1; px1=1; ex1=1; pa825

36、5=0 x1b; pb8255=0 x1b; delay_500ms(2); while(1) pa8255=0 x1d; /*東西紅,南北綠: 12 秒*/ pb8255=0 x1d; display(0,12); pa8255=0 x1e; /*東西紅,南北黃: 3 秒*/ pb8255=0 x1e; display(12,16); pa8255=0 x2b; /*東西綠,南北紅: 8 秒*/ pb8255=0 x2b; display(5,12); pa8255=0 x33; /*東西黃,南北紅: 3 秒*/ pb8255=0 x33; display(12,16); pa8255=0

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

38、 完 成哪 些 功 能。然 后 就 具 體的 每 一 項(xiàng) 功 能應(yīng) 該 怎樣 具 體 的 設(shè) 計(jì),例 如 用 什么 方 法 完成 這 一功 能 ,這 種 想 法 是 否合 理 ,比 較 使 用 哪 個(gè)芯 片 來 完 成這 項(xiàng) 功 能 。經(jīng) 過 長 時(shí) 間 的 查 閱 資 料 、思 索 、推 敲 ,最 后 定出 了 這 次 設(shè)計(jì) 的 原 理圖 。pcb板 設(shè) 計(jì) : 在 上 學(xué) 期兩 個(gè) 星 期 的 課 程 設(shè) 計(jì) 中 我 們 從圖 書 館 借 來了 有 關(guān) pro tel軟 件 使 用 方 面 的 資 料 , 研 究 應(yīng) 該 怎 樣 生 成正 確 的 網(wǎng) 絡(luò)表 ,pcb板 的 布 局 , 布

39、線 , 制 板 等 工 作 。 剛 開始 由 于經(jīng) 驗(yàn) 不 足 , 不 知道 如 何 封 裝 庫 里 面 沒 有 的 器 件 和 芯 片 而 且 生 成 的 網(wǎng) 絡(luò) 表 又 有 那 么 多的 線 , 當(dāng)時(shí) 真 是一 頭 霧 水 , 經(jīng)過 老 師 和 同 學(xué) 的 幫 助 以及 自 己的 摸 索 ,最 后 以 勉強(qiáng) 及 格的 水 準(zhǔn) 畫 出 了這 次 的 設(shè) 計(jì) 用 板 。硬 件 焊 接 :在 拿 到 板 之后 ,按 照 老 師 的 要 求 我 們 首 先檢 查 了 一 下板 子 是 否有 錯(cuò) 誤,這 是一 個(gè) 非 常 關(guān) 鍵的 步 驟,因 為 當(dāng) 你 焊接 上 器 件 之后 將 會(huì) 很難 檢 查

40、。結(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ò)誤 ,

41、在 焊 接過 程 中 我們 采 取了 一 系 列 的 措施 來 補(bǔ) 救 這 些 錯(cuò) 誤 。比 如 割 斷 板 子 上 的線 ,用 導(dǎo)線 來 連 接 等 。關(guān) 于 焊 接 這 塊我 參 與的 并 不 多 ,因 為 自 己 的 水平 確 實(shí) 不怎 么 樣,這 需要 一 定 的 經(jīng) 驗(yàn)和 技 巧,但 是 我 卻 是遲 遲 把 握 不東北大學(xué)課程設(shè)計(jì)第五章設(shè)計(jì)心得和存在問題22 到 這 種 技巧 。剛 開 始 烙鐵 和 焊 錫 配 合不 到 一塊 ,然 后 就 是焊 錫 的 量 的控 制 問 題。始 終 達(dá) 不 到老 師 說 明 的 那種 效 果。所 以 我 只 能在 我 的 組 員焊 板 的 同時(shí)

42、編 制程 序 了 。編 程 調(diào) 試 :此 次 設(shè) 計(jì) 的編 程 ,難 點(diǎn) 在 于 對 led數(shù) 碼 管顯 示 程 序 的編 寫 ,由 于 對 74ls164 的 工 作 原 理 不是 很 熟悉 ,所 以 一 開始 摸 不 著 頭腦 。 上 網(wǎng) 查閱 164 的 相 關(guān) 資 料 , 對 164 的 工 作 原理 有 個(gè) 大 致 的了 解 后 ,程 序 的 編寫 也 初見 端 倪 了 ,所 以 花 在編 此 段程 序 的 時(shí) 間 最長 ;交 通 燈狀 態(tài) 的 顯示 則 沒有 費(fèi) 多 大 力 氣,因 為 通 過 所 學(xué) 的 課 程 已 經(jīng) 了 解 了 其 工作 原 理 ,就 是 向 每 個(gè) 相應(yīng) 的 口上 寫“ 1”或 “ 0” ;中 斷 程序 的 編 寫 也是 常 規(guī) 的編 寫 ,就 是 保存 原 來狀 態(tài) ,處 理 ,恢 復(fù) 現(xiàn) 場 這 一中 斷 的 基 本步 驟 。在 整 個(gè) 程 序 的 編 寫 過 程 中 ,研 究 每 個(gè) 子程 序 是 否 好

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論