版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 重慶xxx大學(xué)</b></p><p><b> 畢業(yè)設(shè)計(jì)</b></p><p> 系 部 名 稱: </p><p> 專 業(yè) 班 級(jí): </p><p> 課 題 名 稱: 十字路口道路交通信號(hào)燈控
2、制 </p><p> 指 導(dǎo) 教 師: </p><p> 學(xué) 生 姓 名: </p><p> 學(xué) 號(hào): </p><p> 二O一二 年 十一 月</p><p><b> 摘要</
3、b></p><p> 紅綠燈控制是智能交通系統(tǒng)的一個(gè)重要部分。在高度科技化的今天,交通系統(tǒng)也在自動(dòng)化上不斷地更新、發(fā)展和完善,道路更寬敞,路口更復(fù)雜。交通燈出現(xiàn)了更多的變化,從最早的紅綠燈,發(fā)展到現(xiàn)今的箭頭指向紅綠燈,人行紅綠燈等。這些改變都只有一個(gè)目的,為使道路更通暢,更安全。</p><p> 隨著社會(huì)的不斷進(jìn)步,傳統(tǒng)的交通燈的缺陷也日益出現(xiàn),其中設(shè)計(jì)過于死板,達(dá)不到道路的
4、最大通行效率是最明顯的問題,紅綠燈交替變換時(shí)間過于程式化。基于傳統(tǒng)交通燈控制系統(tǒng)設(shè)計(jì)過于死板,紅綠燈交替是間過于程式化的缺點(diǎn),智能交通燈控制系統(tǒng)的設(shè)計(jì)就更顯示出了它的研究意義,它能根據(jù)道路交通擁護(hù),交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機(jī)控制技術(shù)提出了軟件和硬件設(shè)計(jì)方案,能夠?qū)崿F(xiàn)道路的最大通行效率。</p><p> 本文所設(shè)計(jì)的單片機(jī)控制交通燈系統(tǒng)是基于十字路口交通信號(hào)燈控制,并對(duì)放行和禁行時(shí)間進(jìn)行倒計(jì)時(shí)顯示(
5、秒)。單片機(jī)即單片微型計(jì)算機(jī)。由RAM,ROM,CPU構(gòu)成,其集定時(shí)、計(jì)數(shù)和多種接口與一體的微控制器。它體積小、成本低、功能強(qiáng),廣泛的應(yīng)用于只能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51系列單片機(jī)是各類單片機(jī)中最為典型和富有代表性的一種。</p><p> 單片機(jī)的十字路口道路交通信號(hào)燈控制器設(shè)計(jì),利用單片機(jī)的定時(shí)器產(chǎn)生秒信號(hào),控制十字路口的紅綠黃燈交替點(diǎn)亮和熄滅,并且用4只LED數(shù)碼管顯示器顯示十字路口南北、東西兩個(gè)方向的通
6、行時(shí)間(綠燈點(diǎn)亮的時(shí)間)、暫緩?fù)ㄐ袝r(shí)間(黃燈點(diǎn)亮的時(shí)間)、禁止通行時(shí)間(紅燈點(diǎn)亮的時(shí)間)。</p><p> C語言是一種結(jié)構(gòu)化的高級(jí)語言,以其優(yōu)點(diǎn)是可讀性好、移植容易的特點(diǎn)被普遍應(yīng)用于單片機(jī)編程。本設(shè)計(jì)即使用C語言編程,使程序條理清晰、功能擴(kuò)展性好、實(shí)用性強(qiáng)。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī) 紅綠燈 AT89C51 Proteus仿真</p><p>
7、<b> 目錄</b></p><p><b> 1 概述1</b></p><p><b> 1.1課題名稱1</b></p><p><b> 1.2設(shè)計(jì)要求1</b></p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)1</p>
8、;<p> 2.1 AT89S51單片機(jī)簡(jiǎn)介1</p><p> 2.2 AT89S51芯片內(nèi)部結(jié)構(gòu)簡(jiǎn)介2</p><p> 2.3主要引腳功能4</p><p> 2.4系統(tǒng)方框圖6</p><p><b> 2.5工作原理6</b></p><p> 2.6
9、電路原理圖7</p><p> 2.7單片機(jī)最小系統(tǒng)8</p><p> 2.8時(shí)間顯示電路8</p><p> 2.9交通燈電路9</p><p><b> 3 軟件設(shè)計(jì)10</b></p><p> 3.1整體系統(tǒng)分析10</p><p> 3.
10、2通行方案設(shè)計(jì)10</p><p> 3.2程序主體設(shè)計(jì)流程11</p><p> 3.3子程序模塊設(shè)計(jì)12</p><p> 4 Proteus軟件仿真13</p><p><b> 參考文獻(xiàn)14</b></p><p> 附錄 源程序代碼15</p><
11、;p><b> 設(shè)計(jì)體會(huì)20</b></p><p><b> 1 概述</b></p><p><b> 1.1課題名稱</b></p><p> 基于MCS-51單片機(jī)的十字路口道路交通信號(hào)燈控制器設(shè)計(jì)</p><p><b> 1.2設(shè)計(jì)要求&
12、lt;/b></p><p> 1)信號(hào)燈受一個(gè)起動(dòng)開關(guān)控制,當(dāng)起動(dòng)開關(guān)接通時(shí),信號(hào)系統(tǒng)開始工作,且南北紅燈亮,東西綠燈亮,反之則東西紅燈亮,南北綠燈亮。當(dāng)起動(dòng)開關(guān)斷開時(shí),所有信號(hào)燈都熄滅。</p><p> 2)南北紅燈亮,維持25S。在南北紅燈亮的同時(shí)東西綠燈也亮,并維持20S。到20S時(shí),東西綠燈閃爍,閃爍3S后熄滅。在東西綠燈熄滅時(shí),東西黃燈亮,并維持2S。到2S時(shí),東西
13、黃燈熄,東西紅燈亮。同時(shí),南北紅燈熄滅,南北綠燈亮。</p><p> 3)東西紅燈亮,維持30S。南北綠燈亮,維持25S。然后閃爍3S,熄滅。同時(shí)南北黃燈亮,維持2S后熄滅,這時(shí)南北紅燈亮,東西綠燈亮。</p><p> 4)每個(gè)燈亮?xí)r,輔以電子秒表并倒計(jì)時(shí)。如按前面描述,南北紅燈亮25秒并倒計(jì)時(shí),最后3秒鐘時(shí)閃爍,歸零時(shí)即切換為綠燈并同時(shí)開始倒計(jì)時(shí);東西綠燈與南北紅燈同時(shí)亮25秒并
14、倒計(jì)時(shí),20秒起閃爍3秒鐘,然后再變成黃色2秒鐘。</p><p><b> 5)周而復(fù)始</b></p><p> 6)Proteus軟件仿真</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)</p><p> 2.1 AT89S51單片機(jī)簡(jiǎn)介</p><p> AT89S51是美國(guó)ATM
15、EL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器 既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。</p><
16、;p> 單片機(jī)以體積小、功能全、性價(jià)比等諸多優(yōu)點(diǎn)而獨(dú)具特色,在工業(yè)控制、尖端武器、通信設(shè)備、家用電器等嵌入式應(yīng)用領(lǐng)域中獨(dú)占鰲頭。如果說C語言程序設(shè)計(jì)課程設(shè)計(jì)的基礎(chǔ)課,那么單片機(jī)以其系統(tǒng)硬件構(gòu)架完整、價(jià)格低廉、學(xué)生能動(dòng)手等特點(diǎn),成為工科學(xué)生硬件設(shè)計(jì)基礎(chǔ)課。</p><p> 2.2 AT89S51芯片內(nèi)部結(jié)構(gòu)簡(jiǎn)介</p><p> 8051單片機(jī)(其管腳圖如圖-1所示)包含中央處
17、理器(CPU)、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p> 1.中央處理器(CPU)</p><p> 中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完
18、成運(yùn)算和控制輸入輸出功能等操作。</p><p> 2.數(shù)據(jù)存儲(chǔ)器(RAM)</p><p> 8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。</p><p>
19、; 3.程序存儲(chǔ)器(內(nèi)部ROM):</p><p> 程序存儲(chǔ)器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲(chǔ)器,且其又多種類型,在89系列單片機(jī)中全部采用閃存。AT89S51內(nèi)部配置了4KB閃存。 </p><p> 3.1.定時(shí)/計(jì)數(shù)器(ROM):</p><p> 定時(shí)/計(jì)數(shù)器用于實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。AT89S51共有2個(gè)16位定時(shí)/計(jì)數(shù)器。
20、</p><p> 3.2.并行輸入輸出(I/O)口:</p><p> 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。每個(gè)口都由1個(gè)鎖存器和一個(gè)驅(qū)動(dòng)器組成。它們主要用于實(shí)現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。</p><p><b> 4.全雙工串行口:</b></p>
21、;<p> A89S51內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b> 5.時(shí)鐘電路:</b></p><p> 時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列。</p><p><b> 6.中斷系統(tǒng):</
22、b></p><p> 中斷系統(tǒng)的作用主要是對(duì)外部或內(nèi)部的終端請(qǐng)求進(jìn)行管理與處理。AT89S51共有5個(gè)中斷源:2個(gè)外部中斷,即/INT0(P3.2)和/INT1(P3.3);3個(gè)片內(nèi)中斷,即定時(shí)器T0的溢出中斷、定時(shí)器T1的溢出中斷和串行口中斷。</p><p> 除去圖中的存儲(chǔ)電路和I/O部件,剩下的是CPU,它可以分為運(yùn)算器和控制器兩部分。運(yùn)算器功能部件包括算術(shù)邏輯運(yùn)算單元
23、ALU、累加器ACC、寄存器B、暫存寄存器TMP1、TMP2、程序狀態(tài)字寄存器PSW等??刂破鞴δ懿考ǔ绦蛴?jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、定時(shí)控制邏輯電路CU、數(shù)據(jù)指針寄存器DPTR、堆棧指針SP及時(shí)鐘電路等。</p><p><b> 7.定時(shí)/計(jì)數(shù)器</b></p><p> 8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用
24、于控制程序轉(zhuǎn)向。</p><p><b> 2.3主要引腳功能</b></p><p> ·P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電
25、阻。</p><p> ·P1口:Pl 是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。Flash編程和程序校驗(yàn)期間,Pl接收低8位地址。如下表1所示:</p><p><b> 表1<
26、;/b></p><p> ·P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR指令
27、)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX @Ri 指令)時(shí),P2 口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個(gè)訪問期間不改變。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和其它控制信號(hào)。</p><p> ·P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/0 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。
28、對(duì)P3口寫入“l(fā)”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表2所示:</p><p><b> 表2</b></p><p> P3口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p>
29、; ·RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。</p><p> ·ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外
30、部存儲(chǔ)器,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)F1ash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條M0VX和M0VC指令A(yù)LE才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置AL
31、E無效。</p><p> ·PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的PSEN信號(hào)。</p><p><b> 2.4系統(tǒng)方框圖</b></p><p><b>
32、; 2.5工作原理</b></p><p> 由軟件設(shè)置交通燈的初始時(shí)間,南北方向通行30秒,東西方向通行20秒,數(shù)碼管采用動(dòng)態(tài)顯示,P0口送字形碼,P2口送字位選通信號(hào),通過單片機(jī)的P1口控制各種信號(hào)燈的燃亮與熄滅。</p><p><b> 2.6電路原理圖</b></p><p> 2.7單片機(jī)最小系統(tǒng)</p&g
33、t;<p> 單片機(jī)最小系統(tǒng)以80C52為核心,外加時(shí)鐘和復(fù)位電路,電路結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),成本相對(duì)較低,非常符合本設(shè)計(jì)的所有要求。時(shí)鐘電路在單片機(jī)的外部通過XTAL1,XTAL2這兩個(gè)引腳跨接晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器。本系統(tǒng)采用的為12MHz的晶振,一個(gè)機(jī)器周期為1us,C1,C2為30pF。</p><p> 復(fù)位電路分為上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位,RST引腳是復(fù)位信號(hào)
34、的輸入端,復(fù)位信號(hào)是高電平有效.上電自動(dòng)復(fù)位通過電容C3和電阻R1來實(shí)現(xiàn),按鍵手動(dòng)復(fù)位是圖中復(fù)位鍵來實(shí)現(xiàn)的。</p><p><b> 2.8時(shí)間顯示電路</b></p><p> 倒計(jì)時(shí)顯示可以提醒駕駛員在信號(hào)燈燈色發(fā)生改變的時(shí)間、在“停止”和“通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號(hào)控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒
35、計(jì)時(shí)顯示是用來減少駕駛員在信號(hào)燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的1種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇 。</p><p> 因?yàn)橄到y(tǒng)要求南北和東西方向的信號(hào)燈時(shí)間不一樣,所以就利用單片機(jī)的P0口送出數(shù)據(jù)的段碼,位選信號(hào)用P2口送出,用動(dòng)態(tài)掃描的方法顯示東西、南北的倒計(jì)時(shí)間(如圖-4所示)。</p><p> 數(shù)碼管使用共陰數(shù)碼管
36、,需要接上470Ω上拉電阻以提供足夠大的電流來驅(qū)動(dòng)數(shù)碼管,數(shù)碼管的每段的電流是約10毫安。</p><p><b> 2.9交通燈電路</b></p><p> 本設(shè)計(jì)利用單片機(jī)的p1口來驅(qū)動(dòng)和控制各種信號(hào)燈的燃亮和燃亮?xí)r間,在實(shí)際中,交通燈的信號(hào)燈需要用高電壓控制,在這里我們只是模擬一下它的控制信號(hào),所以我們就只用單片機(jī)的信號(hào)引腳直接來控制發(fā)光二極管(如圖-5所
37、示)</p><p><b> 3 軟件設(shè)計(jì)</b></p><p><b> 3.1整體系統(tǒng)分析</b></p><p> 總體流程圖(實(shí)現(xiàn)各種狀態(tài)間的轉(zhuǎn)換):</p><p><b> 3.2通行方案設(shè)計(jì)</b></p><p> 設(shè)在十字
38、路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說明:彩色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開始變換,直至狀態(tài)6然后循環(huán)至狀1,周而復(fù)始,直至狀態(tài)6然后循環(huán)至狀態(tài)1,通過具體的路口交通燈狀態(tài)的演示分析我們把其中燈顏色變化的4個(gè)狀態(tài)歸結(jié)如下:</p><p> 3.2程序主體設(shè)計(jì)流程</p><p
39、> 全部控制程序?qū)嶋H上分為若干模塊:按鍵掃描程序,紅綠燈控制程序,LED顯示程序,消抖動(dòng)延時(shí)程序,初始化程序,中斷服務(wù)子程序等。</p><p> 流程圖如圖(圖-6)所示: </p><p> 3.3子程序模塊設(shè)計(jì)</p><p> · 3.3.1 按鍵掃描子程序</p><p&g
40、t; 首先系統(tǒng)不執(zhí)行按鍵掃描子程序,以判斷K1按鍵是否被按下。本系統(tǒng)要求信號(hào)燈受一個(gè)起動(dòng)開關(guān)控制,當(dāng)起動(dòng)開關(guān)接通時(shí),信號(hào)系統(tǒng)開始工作;當(dāng)起動(dòng)開關(guān)斷開時(shí),所有信號(hào)燈都熄滅。</p><p> 關(guān)鍵程序如下,action為程序啟動(dòng)標(biāo)志位。</p><p> if(!action)</p><p><b> {</b></p>
41、<p> P0=P1=P2=P3=0xff;</p><p> (*(void(*)( ))0) ( );</p><p><b> }</b></p><p> 檢測(cè)到按下按鍵停止程序時(shí),關(guān)閉顯示,同時(shí)使程序回到起點(diǎn),下一次啟動(dòng)時(shí)重頭執(zhí)行。</p><p> · 3.3.2 紅綠燈控制程序
42、</p><p> 分析得實(shí)際控制的燈只有6個(gè),即:東西紅燈,東西黃燈,東西綠燈,南北紅燈,南北黃燈,南北綠燈。定義IO端口如下,其均是低電平有效。</p><p> 將交通燈顏色變化的四種狀態(tài)進(jìn)行分析后整理P1口四種情況的編碼表如下: unsigned char code c[4]={0xDE,0xEE,0xF3,0xF5};</p><p> 分別是:0x
43、DE 南北紅燈,東西綠燈</p><p> 0xEE 南北紅燈,東西黃燈</p><p> 0xF3 南北綠燈,東西紅燈</p><p> 0xF5南北黃燈,東西紅燈</p><p><b> 程序應(yīng)用:</b></p><p> P1=c[k];/*交通燈對(duì)應(yīng)著k的值變化*/&
44、lt;/p><p> · 3.3.3 LED倒計(jì)時(shí)顯示程序</p><p> LED計(jì)時(shí)每一秒都要刷新一次,將時(shí)間數(shù)據(jù)的個(gè)位、十位分開送顯。單片機(jī)的P0口送出數(shù)據(jù)的段碼,位選信號(hào)用P2口送出,用動(dòng)態(tài)掃描的方法顯示東西、南北的時(shí)間。</p><p> 動(dòng)態(tài)顯示節(jié)省了I/O口,降低了能耗。</p><p><b> 應(yīng)用實(shí)
45、例如下:</b></p><p> P2=b[0],P0=a[SN%10];/*顯示南北方向個(gè)位*/</p><p> delay(5); </p><p> P2=b[1],P0=a[SN/10];/*顯示南北方向十位*/</p><p><b> delay(5);</b></p>
46、<p> P2=b[2],P0=a[WE%10];/*顯示東西方向個(gè)位*/</p><p> delay(5); </p><p> P2=b[3],P0=a[WE/10];/*顯示東西方向十位*/</p><p><b> delay(5);</b></p><p> 4 Prot
47、eus軟件仿真</p><p><b> 系統(tǒng)仿真電路圖</b></p><p> 交通燈控制系統(tǒng)正常運(yùn)行時(shí)仿真圖(見圖-7)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]王為青,邱文勛. 51單片機(jī)開發(fā)案例精選[J].人民郵電出版社,2001,(5):45-47.
48、</p><p> [2]張?chǎng)危A臻,陳書謙. 單片機(jī)原理及應(yīng)用[J].電子工業(yè)出版社,2008(5).</p><p> [3]張洪潤(rùn),張亞凡.單片機(jī)原理及應(yīng)用[J]. 清華大學(xué)出版社,2005,(4).</p><p> [4]黃智偉.凌陽單片機(jī)課程設(shè)計(jì)指導(dǎo)[J]. 北京航空航天大學(xué)出版社,2007,(6)</p><p> [5
49、]蔣輝平,周國(guó)雄. 基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例[M].機(jī)械工業(yè)出版社,2009.</p><p> [6]陳梓城 電子技術(shù)實(shí)訓(xùn) [M].北京:機(jī)械工業(yè)出版社 2003</p><p> [7]先鋒工作室 單片機(jī)程序?qū)嵗齕M].北京:清華大學(xué)出版社,2002.</p><p> [8]李學(xué)海 標(biāo)準(zhǔn)80C51單片機(jī)基礎(chǔ)教程[M]. 北京:北京航空
50、航天大學(xué)出版社 2006</p><p> [9]張萌·單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例·第二版·清華大學(xué)出版社·2005年</p><p> [10]張一工·現(xiàn)代電力電子技術(shù)原理與應(yīng)用第一版·科學(xué)出版社·2002年</p><p> [11]吳黎明 單片機(jī)原理及應(yīng)用技術(shù)[M].北京:科學(xué)出版社
51、2003</p><p> [12]歐陽文·ATMEL89系列單片機(jī)的原理與開發(fā)實(shí)踐·第一版·中國(guó)電力出版社·2007年</p><p><b> 附錄 源程序代碼</b></p><p> #include<AT89X51.H> </p><p> #def
52、ine uchar unsigned char /*定義字符串類型為無符號(hào)型*/</p><p> uchar code a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};</p><p> uchar code b[4]={0x0D,0x0E,0x07,0x0B}; /****P2口,低有效*/</p>
53、<p> uchar code c[4]={0xDE,0xEE,0xF3,0xF5}; /****P1口,低有效*/</p><p> char SN=25,WE=30; </p><p> char SN_G=25,WE_G=15,Y=5; </p><p> uchar i,k=0,count=0; </p>
54、<p> bit action=0; </p><p> sbit K1=P3^7;/*開關(guān)K1接P3^7管腳*/</p><p> sbit SNG=P1^2;/*東西綠燈*/</p><p> sbit WEG=P1^5;/*南北綠燈*/</p><p> void delay(uchar t);</
55、p><p> void start_keyscan();</p><p> void light();</p><p> void led();</p><p><b> /*程序初始化*/</b></p><p> void init(void)</p><p>&
56、lt;b> { </b></p><p> /*12MHz */</p><p> TMOD=0x01; </p><p> TH1=(65536-50000)/256; </p><p> TL1=(65536-50000)%256; /*計(jì)50000個(gè)數(shù),用時(shí)50ms*/</p><
57、p> ET0=1;/*允許T0中斷*/</p><p> TR0=1;/*啟動(dòng)計(jì)數(shù)器*/</p><p> EA=1;/*CPU開放總中斷*/</p><p><b> }</b></p><p><b> /*定時(shí)函數(shù)*/</b></p><p> voi
58、d time1(void) interrupt 1</p><p><b> {</b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p> count++; </p><p><b&g
59、t; }</b></p><p><b> /*延時(shí)t毫秒*/</b></p><p> void delay(uchar t)</p><p><b> {</b></p><p><b> uchar i;</b></p><p&g
60、t; for(t;t>0;t--)</p><p> for(i=255;i>0;i--) ;</p><p><b> } </b></p><p> /*開關(guān)鍵啟動(dòng)關(guān)閉*/</p><p> void start_keyscan()</p><p><b>
61、 {</b></p><p><b> if(K1==0)</b></p><p><b> {</b></p><p> delay(10);</p><p><b> if(K1==0)</b></p><p> action
62、=~action;</p><p> while(!K1);</p><p> if(!action)</p><p><b> {</b></p><p><b> EA=0;</b></p><p> P0=P1=P2=P3=0xff;</p>&
63、lt;p> (*(void(*)())0)();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> /*交通燈函數(shù)*/</b></p>
64、<p> void light()</p><p><b> { </b></p><p> if(k==0||k==2)</p><p> P1=c[k];/*交通燈對(duì)應(yīng)著k的值變化*/</p><p><b> if(k==1)</b></p><
65、p><b> {</b></p><p> if(SN<=2) P1=c[1];</p><p><b> else </b></p><p><b> {</b></p><p> if(count<6) WEG=1;</p><
66、;p> else WEG=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> if(k==3)</b></p><p><b> {</b></p><p>
67、 if(SN<=2) P1=c[3];</p><p><b> else </b></p><p><b> {</b></p><p> if(count<6) SNG=1;</p><p> else SNG=0;</p><p><b>
68、; }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> /*數(shù)碼管函數(shù)*/</b></p><p> void led()</p><p><b> {&l
69、t;/b></p><p> if((k==1||k==3)&&(SN<4)&&(count<6))</p><p><b> P2=0xff;</b></p><p><b> else </b></p><p><b> {&l
70、t;/b></p><p> P2=b[0],P0=a[SN%10];/*顯示南北方向個(gè)位*/</p><p> delay(5); </p><p> P2=b[1],P0=a[SN/10];/*顯示南北方向十位*/</p><p> delay(5); </p><p> P2=b[2],P0=a[
71、WE%10];/*顯示東西方向個(gè)位*/</p><p> delay(5); </p><p> P2=b[3],P0=a[WE/10];/*顯示東西方向十位*/</p><p> delay(5); </p><p><b> }</b></p><p><b> }<
72、/b></p><p><b> /*主函數(shù)*/</b></p><p> void main(void)</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {&
73、lt;/b></p><p><b> init();</b></p><p> start_keyscan();</p><p> if(action)</p><p><b> {</b></p><p> light();/*調(diào)用交通燈函數(shù)*/</
74、p><p> led(); /*調(diào)用數(shù)碼管函數(shù)*/ </p><p> if(count>=20)/*歷時(shí)1s,執(zhí)行程序*/</p><p><b> {</b></p><p><b> SN--;</b></p><p><b> WE--;<
75、;/b></p><p><b> count=0;</b></p><p> if(SN==0||WE==0)</p><p><b> {</b></p><p><b> k++;</b></p><p><b> if(
76、k>3)</b></p><p><b> k=0;</b></p><p><b> switch(k)</b></p><p><b> { </b></p><p> case 0:SN=WE_G+Y,WE=WE_G;break;
77、case 1:SN=Y,WE=Y;break;case 2:SN=SN_G,WE=SN_G+Y;break;</p><p> case 3:SN=Y,WE=Y;break;}</p><p><b> }</b></p><p><b> }</b></p&
78、gt;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 設(shè)計(jì)體會(huì)</b></p><p> 畢業(yè)設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決
79、實(shí)際問題,鍛煉實(shí)踐能力的重要體現(xiàn),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在,因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技是十分重要的。</p><p> 本系統(tǒng)就是充分利用了AT89S52芯片的I/O引角。系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)為中心器件來設(shè)計(jì)交通燈控制器,通過單片機(jī)芯片的P1口控制紅、黃、綠燈的
80、燃亮與熄滅;P0口外接數(shù)碼管來顯示各個(gè)信號(hào)燈的時(shí)間。系統(tǒng)設(shè)計(jì)簡(jiǎn)便、實(shí)用性強(qiáng)、操作簡(jiǎn)單、程序設(shè)計(jì)簡(jiǎn)便。</p><p> 通過這次畢業(yè)設(shè)計(jì),我得到了一次用所學(xué)知識(shí)與技能分析和解決問題的可貴的鍛煉機(jī)會(huì),使我深刻領(lǐng)會(huì)了單片機(jī)的基本原理和單片機(jī)應(yīng)用系統(tǒng)開發(fā)的過程。在常用編程設(shè)計(jì)思路技巧的掌握方面都向前邁了一大步,為日后成為合格的應(yīng)用型人才打下了良好的基礎(chǔ)。</p><p> 回顧起此次單片機(jī)畢
81、業(yè)設(shè)計(jì),感慨頗多,開始覺得無從下手,到后來找到系統(tǒng)的方法,構(gòu)建框架,遇到問題查找資料逐個(gè)解決,最終看到了自己的成果,事實(shí)證明只要努力沒有什么是做不到的。在設(shè)計(jì)的過程中遇到了許許多多的問題,可以說得是困難重重,這畢竟是第一次做這種系統(tǒng)化的設(shè)計(jì),難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,沒有深刻之前所學(xué),知識(shí)掌握得不夠牢固。這次設(shè)計(jì)不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí),在設(shè)計(jì)的過程中
82、,查找了大量的資料,受益匪淺。通過這次畢業(yè)設(shè)計(jì)我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。</p><p> 這里是大學(xué)生活的結(jié)點(diǎn),也是社會(huì)生活的起點(diǎn),經(jīng)過這次歷練我更有信心在以后的日子里迎戰(zhàn)更復(fù)雜的難題。在此特別感謝敖朝華導(dǎo)師對(duì)我的悉心指導(dǎo),還要感謝一直陪伴我的同學(xué)們!&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 十字路口道路交通信號(hào)燈控制畢業(yè)設(shè)計(jì)
- 課程設(shè)計(jì)---十字路口的交通信號(hào)燈控制
- 十字路口交通信號(hào)燈plc控制系統(tǒng)設(shè)計(jì)
- 十字路口帶倒計(jì)時(shí)顯示的交通信號(hào)燈控制
- 十字路口帶倒計(jì)時(shí)顯示的交通信號(hào)燈控制的課程設(shè)計(jì)
- 十字路口交通信號(hào)燈PLC控制系統(tǒng)設(shè)計(jì)說明書.doc
- 十字路口交通信號(hào)燈PLC控制系統(tǒng)設(shè)計(jì)說明書.doc
- plc課程設(shè)計(jì)---十字路口帶倒計(jì)時(shí)顯示的交通信號(hào)燈控制
- plc課程設(shè)計(jì)(論文)-十字路口帶倒計(jì)時(shí)顯示的交通信號(hào)燈控制
- 【jp085】十字路口交通信號(hào)燈plc控制系統(tǒng)[c][三菱]
- 【jp085】十字路口交通信號(hào)燈plc控制系統(tǒng)[c][三菱]
- 十字路口交通信號(hào)燈plc控制系統(tǒng)設(shè)計(jì)【8張cad圖紙和說明書】
- 十字路口交通信號(hào)燈plc控制系統(tǒng)設(shè)計(jì)【8張cad圖紙和說明書】
- 畢業(yè)設(shè)計(jì)---十字路口智能交通燈
- 畢業(yè)設(shè)計(jì)---基于plc的交通十字路口模糊控制
- 畢業(yè)設(shè)計(jì)----基于plc的交通十字路口模糊控制
- 畢業(yè)設(shè)計(jì)---基于plc的交通十字路口模糊控制
- 交通信號(hào)燈畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--交通信號(hào)燈的控制
- plc、組態(tài)控制十字路口交通燈畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論