畢業(yè)設(shè)計(jì)---基于單片機(jī)交通燈的設(shè)計(jì)_第1頁
已閱讀1頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)</b></p><p><b> ?。▽?疲?lt;/b></p><p>  題目:基于單片機(jī)交通燈的設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制

2、檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p>  十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊??康木褪墙煌ㄐ盘?hào)燈的自動(dòng)指揮系統(tǒng)來實(shí)現(xiàn)這井然秩序。交通信號(hào)燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機(jī)ATSC51和可編程并行I/O接口芯片8255A為中心器件來設(shè)計(jì)交通燈

3、控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過8051芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩5秒時(shí)黃燈閃爍警示(交通燈信號(hào)通過PA口輸出,顯示時(shí)間直接通過8255的PC口輸出至雙位數(shù)碼管);車輛闖紅燈報(bào)警;綠燈時(shí)間可檢測(cè)車流量并可通過雙位數(shù)碼管顯示。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展功能強(qiáng)。。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī) 交通燈 闖紅燈 檢測(cè)車流量</p><p>&

4、lt;b>  Abstract</b></p><p>  In recent years along with technical rapid development, monolithic integrated circuit application unceasingly thorough, simultaneously leads the traditional control exam

5、ination technology to renew day by day.In the real-time examination and in the automatic control monolithic integrated circuit application system, the monolithic integrated circuit often took a core part uses, the monoli

6、thic integrated circuit aspect knowledge is only insufficient, but also should act according to the concrete ha</p><p>  The intersection vehicles shuttle, the pedestrian is bustling, car dealership traffic

7、lane, human sidewalk, methodical.Depends on is the street-traffic control lights automatic command system realizes this orderly order.The street-traffic control lights control mode are very many.This system uses MSC-51 s

8、eries monolithic integrated circuit ATSC51 and programmable parallel I/O connection chip 8255A is the central component designs the traffic light controller, realized has been able to act accord</p><p>  Key

9、words:monolithic integrated circuit traffic light runs a red light the examination traffic flow magnitude</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><

10、p>  AbstractII</p><p><b>  目 錄III</b></p><p><b>  第1章 緒論1</b></p><p>  第2章 總體規(guī)劃方案9</p><p>  2.1 規(guī)劃設(shè)計(jì)方案9</p><p>  2.2 交通管理的

11、方案論證9</p><p>  第3章 系統(tǒng)的芯片簡(jiǎn)介10</p><p>  3.1 MSC-51芯片簡(jiǎn)介10</p><p>  3.1.1 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)10</p><p>  3.1.2 MCS-51的引腳和功能概述11</p><p>  3.2 8255芯片簡(jiǎn)介13</p&

12、gt;<p>  3.2.1 8255A 的內(nèi)部結(jié)構(gòu)13</p><p>  3.2.2 8255可編程并行接口芯片簡(jiǎn)介14</p><p>  第4章 系統(tǒng)硬件設(shè)計(jì)19</p><p>  4.1 系統(tǒng)總框圖設(shè)計(jì)19</p><p>  4.2各個(gè)模塊電路設(shè)計(jì)24</p><p>  4.2.

13、1 鍵盤設(shè)置電路24</p><p>  4.2.2 看門狗硬件電路25</p><p>  4.2.3 顯示電路25</p><p>  4.2.4 交通燈的控制電路25</p><p>  第5章 系統(tǒng)的軟件設(shè)計(jì)27</p><p>  5.1 系統(tǒng)總程序設(shè)計(jì)27</p><p>

14、;  5.2每秒鐘的設(shè)定28</p><p>  5.2.1計(jì)數(shù)器初值計(jì)算28</p><p>  5.2.2 計(jì)算公式28</p><p>  5.2.3 1秒的方法29</p><p>  5.2.4 相應(yīng)程序代碼29</p><p>  5.2.5 軟件延時(shí)30</p><p>

15、;  5.3顯示程序設(shè)計(jì)30</p><p>  5.3.1顯示原理31</p><p>  5.3.2 8255輸出信號(hào)與數(shù)碼管的連接31</p><p>  5.3.3 8255與8051的連接31</p><p><b>  第6章 結(jié)論32</b></p><p><b&g

16、t;  參考文獻(xiàn)33</b></p><p><b>  致 謝34</b></p><p><b>  附 錄35</b></p><p><b>  附錄1:總圖35</b></p><p>  附錄2:程序源代碼36</p><

17、;p><b>  第1章 緒論</b></p><p>  當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。</p><p>  1858年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車通行。這是世界上最早的交通信號(hào)燈。1868年,英國(guó)機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)

18、的議會(huì)大廈前的廣場(chǎng)上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p>  電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó),這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p>  1918年,又出

19、現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測(cè)器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),它就能察覺到有人要過馬路。紅外光束能把信號(hào)燈的紅燈延長(zhǎng)一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。</p><p>  信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事

20、故有明顯效果。1968年,聯(lián)合國(guó)《道路交通和道路標(biāo)志信號(hào)協(xié)定》對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。本論文是基于單片機(jī)的交通燈控

21、制設(shè)計(jì)。</p><p>  本論文使用單片機(jī)的原因是看到單片機(jī)的發(fā)展趨勢(shì)。單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p>  通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為

22、一個(gè)單片機(jī)控制系統(tǒng)。</p><p>  單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p>  單片機(jī)在目前的發(fā)展形勢(shì)下,表現(xiàn)出幾大趨勢(shì):·可靠性及應(yīng)用越來越水平高和互聯(lián)網(wǎng)連接已是一種明顯的走向。</p><p>  ·所集成的部件

23、越來越多;NS(美國(guó)國(guó)家半導(dǎo)體)公司的單片機(jī)已把語音、圖象部件也集成到單片機(jī)中,也就是說,單片機(jī)的意義只是在于單片集成電路,而不在于其功能了;如果從功能上講它可以講是萬用機(jī)。原因是其內(nèi)部已集成上各種應(yīng)用電路。</p><p>  ·功耗越來越低和模擬電路結(jié)合越來越多。 </p><p>  隨著半導(dǎo)體工藝技術(shù)的發(fā)展及系統(tǒng)設(shè)計(jì)水平的提高,單片機(jī)還會(huì)不斷產(chǎn)生新的變化和進(jìn)步,最終人們可

24、能發(fā)現(xiàn):?jiǎn)纹瑱C(jī)與微機(jī)系統(tǒng)之間的距離越來越小,甚至難以辨認(rèn)。</p><p>  所以用單片機(jī)將越來越普遍,而且實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展功能強(qiáng)。</p><p>  隨著各種交通工具的發(fā)展和交通指揮的需要,第一盞名副其實(shí)的三色燈(紅、黃、綠三種標(biāo)志)于1918年誕生。它是三色圓形四面投影器,被安裝在紐約市五號(hào)街的一座高塔上,由于它的誕生,使城市交通大為改善。</p><p

25、>  黃色信號(hào)燈的發(fā)明者是我國(guó)的胡汝鼎,他懷著“科學(xué)救國(guó)”的抱負(fù)到美國(guó)深造,在大發(fā)明家愛迪生為董事長(zhǎng)的美國(guó)通用電器公司任職員。一天,他站在繁華的十字路口等待綠燈信號(hào),當(dāng)他看到紅燈而正要過去時(shí),一輛轉(zhuǎn)彎的汽車呼地一聲擦身而過,嚇了他一身冷汗?;氐剿奚?,他反復(fù)琢磨,終于想到在紅、綠燈中間再加上一個(gè)黃色信號(hào)燈,提醒人們注意危險(xiǎn)。他的建議立即得到有關(guān)方面的肯定。于是紅、黃、綠三色信號(hào)燈即以一個(gè)完整的指揮信號(hào)家族,遍及全世界陸、海、空交通領(lǐng)

26、域了。</p><p>  中國(guó)最早的馬路紅綠燈,是于1928年出現(xiàn)在上海的英租界。從最早的手牽皮帶到20世紀(jì)50年代的電氣控制,從采用計(jì)算機(jī)控制到現(xiàn)代化的電子定時(shí)監(jiān)控,交通信號(hào)燈在科學(xué)化、自動(dòng)化上不斷地更新、發(fā)展和完善。</p><p>  縱觀交通事業(yè)的發(fā)展歷史,以前,人們出門遠(yuǎn)行或運(yùn)輸東西最常用到的的交通工具是馬車,但是隨著社會(huì)的進(jìn)步經(jīng)濟(jì)的發(fā)展,一種新型交通工具汽車隨之問世。如195

27、0年英國(guó)陸虎公司推出世界上第一臺(tái)采用燃?xì)鉁u輪發(fā)動(dòng)機(jī)的汽車,1952年美國(guó)通用公司推出“別</p><p>  克”牌小轎車,1955年福特“雷鳥”牌兩座位汽車問世,1956年中國(guó)第一汽車制造廠成立,“解放”牌汽車問世。特別是近幾年汽車產(chǎn)業(yè)更是日新月異,2006年全世界汽車總已產(chǎn)量已超過6400萬輛。在汽車產(chǎn)業(yè)蓬勃發(fā)展的背后,隨之而來交通問題也越來越多,如交通堵塞和交通事故時(shí)常發(fā)生,這不但給人們的生命和財(cái)產(chǎn)造成了威

28、脅,同時(shí)還制約著國(guó)民經(jīng)濟(jì)的發(fā)展,特別是發(fā)達(dá)國(guó)家和發(fā)展中國(guó)家面臨的形勢(shì)更是嚴(yán)峻。為了緩解交通的負(fù)荷量,使車輛運(yùn)行暢通無阻,交通事業(yè)整嚴(yán)有序,國(guó)家起用了雙車道交通燈控制系統(tǒng)。通過紅,綠,黃三色燈進(jìn)行單一的控制,使其遵守紅燈停,綠燈行的原則。但是隨著社會(huì)的發(fā)展,此系統(tǒng)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足交通控制事業(yè)的需求,需要一種全新的控制理念,進(jìn)而引進(jìn)了與我國(guó)國(guó)情相符合的國(guó)外先進(jìn)的控制體系,多車道交通燈控制系統(tǒng),不但解決以往交通控制系統(tǒng)的局限性,同時(shí)還加快車了

29、車流輛速度。并制定了<<道路交通安全法實(shí)施條例>>第三十八條明確規(guī)定:綠燈亮?xí)r,準(zhǔn)許車輛通行,但轉(zhuǎn)彎的車輛不得妨礙被放行的直行車輛、行人通行,黃燈亮?xí)r,已越過停止線的車輛可以繼續(xù)通行,紅燈亮?xí)r,禁止車輛通行。</p><p>  隨著社會(huì)的進(jìn)步和科技的發(fā)展,交通工具設(shè)備也日益劇增,從而有序的交通秩序也越來越重要,單片機(jī)的應(yīng)用也日益廣泛。</p><p>  本論文用

30、三端橋式整流電路將220V交流電轉(zhuǎn)變?yōu)榉€(wěn)定、可靠,高效率的5V直流電源。而此交通路口采用的是8051單片機(jī)來控制,8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,而中斷系統(tǒng)來實(shí)現(xiàn)實(shí)時(shí)控制、故障自動(dòng)處理、計(jì)算機(jī)與外圍設(shè)備的數(shù)據(jù)傳送。使CPU能夠具有應(yīng)變的功能,能夠秩序的工作,從而提高了工作效率和系統(tǒng)的可靠性。同時(shí)也為了系

31、統(tǒng)穩(wěn)定可靠采用了MAX629“看門狗”芯片,避免了系統(tǒng)因?yàn)樗罊C(jī)而停止工作的情況發(fā)生;顯示時(shí)間直接通過8255的PA、PB口輸出;交通燈信號(hào)通過PC口輸出;交通燈的點(diǎn)亮采用VT雙向晶閘管來控制。</p><p>  第2章 總體規(guī)劃方案</p><p>  2.1 規(guī)劃設(shè)計(jì)方案</p><p>  根據(jù)此路口的車流量:由于東西方向比南北方向的車流量要大,所以在東西方向

32、的綠燈時(shí)間較長(zhǎng)設(shè)為80s,南北方向的紅燈設(shè)為60s,黃燈時(shí)間為5s。以最大限度的提高交通疏通的可靠系數(shù)。</p><p>  2.2 交通管理的方案論證</p><p>  圖2.1 十字路口圖</p><p>  首先了解實(shí)際交通燈的變化情況和規(guī)律。假設(shè)一個(gè)十字路口如圖2.1所示,為東南西北走向。初始狀態(tài)0為東西南北都紅燈亮。然后轉(zhuǎn)狀態(tài)1東西綠燈通車,南北紅燈亮。

33、過一段時(shí)間后,轉(zhuǎn)狀態(tài)2,東西綠燈滅,黃燈閃幾下,南北還是紅燈。再轉(zhuǎn)狀態(tài)3,南北綠燈通車,東西紅燈亮。過一段時(shí)間后轉(zhuǎn)狀態(tài)4,南北綠燈滅,閃幾個(gè)黃燈,東西還是為紅燈亮,一段時(shí)間后,又循環(huán)至狀態(tài)1。</p><p>  列出交通信號(hào)燈的狀態(tài)表如表2.1所示:(其中,1代表燈亮,0代表燈滅)</p><p><b>  表2.1</b></p><p>

34、;  東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如表2.2。</p><p><b>  表2.2</b></p><p><b>  表2.

35、2說明:</b></p><p> ?。?)當(dāng)東西方向?yàn)榧t燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時(shí)間為60秒。</p><p> ?。?)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 </p><p>  (3)當(dāng)東西方向?yàn)榫G燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止通過,行人通行。時(shí)

36、間為80秒。 東西方向車流大 通行時(shí)間長(zhǎng)。</p><p> ?。?)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。</p><p> ?。?)此表可根據(jù)車流量動(dòng)態(tài)設(shè)定紅綠燈初始值。</p><p><b>  系統(tǒng)的芯片簡(jiǎn)介</b></p><p>  3.1 MSC-51芯片簡(jiǎn)介&l

37、t;/p><p>  3.11MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)。8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。</p><p>  8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p> 

38、 ·中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。</p><p>  ·數(shù)據(jù)存儲(chǔ)器(RAM):8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶

39、數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。</p><p>  ·程序存儲(chǔ)器(ROM):8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p><p>  ·定時(shí)/計(jì)數(shù)器(ROM):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p>&

40、lt;p>  ·并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。</p><p>  ·全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p>  ·中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外

41、中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。</p><p>  ·時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。</p><p>  單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的

42、程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。</p><p>  3.1.2 MCS-51的引腳和功能概述</p><p>  MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配

43、置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明:</p><p>  MCS-51的引腳說明:</p><p>  MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根

44、,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明:如圖3.2</p><p><b>  圖3.1 引腳圖</b></p><p>  Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出

45、口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。</p><p>  8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見下圖3.3。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。<

46、;/p><p>  圖3.2 復(fù)位方式圖</p><p>  ·Pin30:ALE/當(dāng)訪問外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲(chǔ)器,ALE會(huì)跳過一個(gè)脈沖。</p><p> 

47、 如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。</p><p>  ·Pin29:當(dāng)訪問外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p>  ·Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,

48、當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無程序存儲(chǔ)器的8031,EA端必須接地。</p><p>  在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。</p><p>  3.2 8255芯片簡(jiǎn)介</p><p>  3.2.1

49、8255A 的內(nèi)部結(jié)構(gòu):8255A 的內(nèi)部結(jié)構(gòu)框圖和引腳圖如圖3.3所示,由以下幾個(gè)部分組成:</p><p>  圖3.3 8255的內(nèi)部結(jié)構(gòu)圖</p><p>  數(shù)據(jù)總線緩沖器:8位雙向三態(tài),它是8255A和CPU之間的數(shù)據(jù)接口。I/O的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息都是通過這個(gè)緩沖器傳送的,數(shù)據(jù)總線緩沖器的8根數(shù)據(jù)線D7~D0一般與8086CPU低8位數(shù)據(jù)線相連。

50、并行I/O端口(A、B、C口):除C口輸入沒有鎖存器外,其余A口、B口輸入輸出都有緩沖器和鎖存器,C口輸出也都有緩沖器和鎖存器,C口輸入只有緩沖器。通常A口和B口作為獨(dú)立工作的I/O數(shù)據(jù)端口,C口作為控制或狀態(tài)信息端口。在方式控制字控制下,C口可以分成兩個(gè)4位端口,每個(gè)端口包含一個(gè)4位鎖存器,分別與A口和B口配合使用,作為與外設(shè)之間的聯(lián)絡(luò)信號(hào)和存放接口電路當(dāng)前的狀態(tài)信息。</p><p>  A組和B組控制電路:

51、</p><p>  A組:A口和C口上半部;</p><p>  B組:B口和C口下半部。</p><p>  A組控制和B組控制結(jié)合,組成控制字寄存器,接收CPU寫入的方式控制字和對(duì)C口按位置位/復(fù)位控制字。</p><p>  3.2.2 8255可編程并行接口芯片簡(jiǎn)介</p><p>  8255可編程并行接口

52、芯片有三個(gè)輸入輸出端口,即A口、B口和C口,對(duì)應(yīng)于引腳PA7~PA0、PB7~PB0和PC7~PC0。其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個(gè)端口包含一個(gè)4位鎖存器。它們分別與端口A/B配合使用,可以用作控制信號(hào)輸出或作為狀態(tài)信號(hào)輸入。</p><p>  8255可編程并行接口芯片方式控制字格式說明(下圖

53、表3.1):</p><p>  8255有兩種控制命令字;一個(gè)是方式選擇控制字;另一個(gè)是C口按位置位/復(fù)位控制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說明也較冗長(zhǎng)。方式控制字格式說明如表3.1:制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說明也較冗長(zhǎng)</p><p>  D7:設(shè)定工作方式標(biāo)志,1有效。</p><p>  D6、D5:A口方式選

54、擇</p><p><b>  0 0 —方式0</b></p><p><b>  0 1 —方式1</b></p><p><b>  1 ×—方式2</b></p><p>  D4:A口功能 (1=輸入,0=輸出)</p><p

55、>  D3:C口高4位功能 (1=輸入,0=輸出)</p><p>  D2:B口方式選擇 (0=方式0,1=方式1)</p><p>  D1:B口功能 (1=輸入,0=輸出)</p><p>  D0:C口低4位功能 (1=輸入,0=輸出)</p><p>  8255可編程并行接口芯片工作方式說明:</p&g

56、t;<p>  方式0:基本輸入/輸出方式。適用于三個(gè)端口中的任何一個(gè)。每一個(gè)端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。</p><p>  方式1:選通輸入/輸出方式。這時(shí)A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。</p><p>  方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用作輸入或輸出,

57、此時(shí)C口的5條線用作通訊聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。</p><p>  3.3 74LS373簡(jiǎn)介</p><p>  74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖如圖3.4所示:</p><p>  其中:1D-8D為8個(gè)輸入端。</p><p>  1Q-8Q為8個(gè)輸出端。</p><p>  LE為數(shù)據(jù)

58、打入端:當(dāng)LE為“1”時(shí),鎖存器輸出</p><p>  狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0”時(shí),數(shù)據(jù)</p><p><b>  打入鎖存器</b></p><p>  OE為輸出允許端:當(dāng)OE=0時(shí),三態(tài)門打開;</p><p>  當(dāng)OE=1時(shí),三態(tài)門關(guān)閉,輸出高阻。</p><p>  

59、圖3.4 74LS373管腳示意圖</p><p>  單片機(jī)系統(tǒng)中常用的地址鎖存器芯片74LS373以及coms的74hc373。是帶三態(tài)緩沖輸出的8D觸發(fā)器,其引腳圖如圖3.5所示: </p><p>  圖3.5 74ls373引腳圖</p><p>  .1腳是輸出使能(OE),是低電平有效,當(dāng)1腳是高電平時(shí),不管輸入3、4、7、8、13、14、17、18如

60、何,也不管11腳(鎖存控制端,G)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現(xiàn)高阻狀態(tài)(或者叫浮空狀態(tài))。</p><p>  .當(dāng)1腳是低電平時(shí),只要11腳(鎖存控制端,G)上出現(xiàn)一個(gè)下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈現(xiàn)輸入腳3、4、7、8、13、14

61、、17、18的狀態(tài).</p><p>  鎖存端LE 由高變低時(shí),輸出端8 位信息被鎖存,直到LE 端再次有效。 當(dāng)三態(tài)門使能信號(hào)OE為低電平時(shí),三態(tài)門導(dǎo)通,允許Q0~Q7輸出,OE為高電平時(shí),輸出懸空。當(dāng)74LS373用作地址鎖存器時(shí),應(yīng)使OE為低電平,此時(shí)鎖存使能端C為高電平時(shí),輸出Q0~Q7 狀態(tài)與輸入端D1~D7狀態(tài)相同;當(dāng)C發(fā)生負(fù)的跳變時(shí),輸入端D0~D7 數(shù)據(jù)鎖入Q0~Q7。51單片機(jī)的ALE信號(hào)可以

62、直接與74LS373的C連接。</p><p>  表3.2 74LS373功能表</p><p>  E G D Q    L H H H    L H L L    L L X Q  上表3.2是74LS373的真值表,表中: 

63、;       L——低電平;        H——高電平;        X——不定態(tài);        Q0——建立穩(wěn)態(tài)前Q的電平;  &#

64、160;    G——輸入端,與8031ALE連高電平:暢通無阻低電平:關(guān)門鎖存。圖中OE——使能端,接地。       當(dāng)G=“1”時(shí),74LS373輸出端1Q—8Q與輸入端1D—8D相同;       當(dāng)G為下降沿時(shí),將輸入數(shù)據(jù)鎖存。74ls373是常用的地址鎖存器芯片,它實(shí)質(zhì)是一

65、個(gè)是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲(chǔ)器,通常需要一塊74ls373芯片。</p><p>  3.4 MAX692簡(jiǎn)介</p><p>  MAX692是微系統(tǒng)監(jiān)控電路芯片,具有后備電池切換、掉電判別、看門狗監(jiān)控等功能。</p><p>  VOUT VBATT</p><

66、;p>  VCC / RESET</p><p>  GND WDI</p><p>  PFI /PFD</p><p>  圖 3.6 MAX692封裝和引腳</p><p>  VOU

67、T:電源輸出引腳。</p><p>  VCC:接電源引腳,電源供電3.0~5.5V。</p><p><b>  GND:接地。</b></p><p>  PFI:電池故障輸入。</p><p>  /PFO:電池故障輸出。</p><p>  WDI:監(jiān)視器輸入引腳。</p>

68、<p>  /RESET:復(fù)位輸出引腳,低電平有效。</p><p>  VBATT:后備電池輸入端。</p><p>  第4章 系統(tǒng)硬件設(shè)計(jì)</p><p>  4.1 系統(tǒng)總框圖設(shè)計(jì)</p><p>  圖4.1 系統(tǒng)總框圖</p><p> ?。?)開關(guān)鍵盤輸入交通燈初始時(shí)間,通過8051單片機(jī)P1輸

69、入到系統(tǒng)</p><p> ?。?)由8051單片機(jī)的定時(shí)器每秒鐘通過P0口向8255的數(shù)據(jù)口送信息,由8255的PA 口顯示紅、綠、黃燈的燃亮情況;由8255的PC口顯示每個(gè)燈的燃亮?xí)r間。</p><p>  (3)通過8031設(shè)置各個(gè)信號(hào)等的燃亮?xí)r間,綠、紅時(shí)間分別為60秒、80秒。</p><p> ?。?)通過8051單片機(jī)的P3.0位來控制系統(tǒng)是工作或設(shè)置

70、初值,當(dāng).牌位0就對(duì)系統(tǒng)進(jìn)行初始化,為1系統(tǒng)就開始工作。</p><p> ?。?)紅燈倒計(jì)時(shí)時(shí)間,當(dāng)有車輛闖紅燈時(shí),啟動(dòng)蜂鳴器進(jìn)行報(bào)警,3S后然后恢復(fù)正常。</p><p> ?。?)增加每次綠燈時(shí)間車流量檢測(cè)的功能,并且通過查詢P2.0端口的電平是否為低,開關(guān)按下為低電平,雙位數(shù)碼管顯示車流量,直到下一次綠燈時(shí)間重新記入。</p><p> ?。?)綠燈時(shí)間倒計(jì)

71、時(shí)完畢,重新循環(huán)。</p><p>  4.2各個(gè)模塊電路設(shè)計(jì)</p><p>  選用設(shè)備:8051彈片機(jī)一片,8255并行通用接口芯片一片,74LS07兩片,MAX692‘看門狗’一片,共陰極的七段數(shù)碼管兩個(gè)雙向晶閘管若干,7805三端穩(wěn)壓電源一個(gè),紅、黃、綠交通燈各兩個(gè),開關(guān)鍵盤、連線若干。</p><p>  4.2.1 鍵盤設(shè)置電路</p>

72、<p>  鍵盤是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)重要輸入設(shè)備,用于輸入數(shù)據(jù)、干預(yù)系統(tǒng)的工作狀態(tài)。</p><p><b>  1.單片機(jī)上的按鍵</b></p><p>  單片機(jī)系統(tǒng)中最常見的是觸點(diǎn)式開關(guān)按鍵, 這些按鍵的連接方式,可分為獨(dú)立式按鍵和行列式鍵盤。</p><p>  觸點(diǎn)式按鍵在按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有

73、一定時(shí)間的觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來。其抖動(dòng)過程如圖所示,抖動(dòng)時(shí)間的長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為510 ms。</p><p>  在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放被錯(cuò)誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)誤判,必須采取去抖動(dòng)措施。這一點(diǎn)可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件去抖,而當(dāng)鍵數(shù)較多時(shí),采用軟件

74、去抖。</p><p>  圖4.2 去抖動(dòng)電路</p><p>  在硬件上可采用在鍵輸出端加R-S觸發(fā)器(雙穩(wěn)態(tài)觸發(fā)器)或單穩(wěn)態(tài)觸發(fā)器構(gòu)成去抖動(dòng)電路。圖4.2是一種由R-S觸發(fā)器構(gòu)成的去抖動(dòng)電路,當(dāng)觸發(fā)器一旦翻轉(zhuǎn),觸點(diǎn)抖動(dòng)不會(huì)對(duì)其產(chǎn)生任何影響。</p><p><b>  2.電路工作過程</b></p><p> 

75、 按鍵未按下時(shí),a = 0,b = 1,輸出Q = 1。按鍵按下時(shí),因按鍵的機(jī)械彈性作用的影響,使按鍵產(chǎn)生抖動(dòng)。當(dāng)開關(guān)沒有穩(wěn)定到達(dá)b端時(shí),因與非門2輸出為0反饋到與非門1的輸入端,封鎖了與非門1,雙穩(wěn)態(tài)電路的狀態(tài)不會(huì)改變,輸出保持為1,輸出Q不會(huì)產(chǎn)生抖動(dòng)的波形。</p><p>  圖4.3 鍵盤輸出電路</p><p>  當(dāng)開關(guān)穩(wěn)定到達(dá)b端時(shí),因a = 1,b = 0,使Q = 0,雙

76、穩(wěn)態(tài)電路狀態(tài)發(fā)生翻轉(zhuǎn)。當(dāng)釋放按鍵時(shí),在開關(guān)未穩(wěn)定到達(dá)a端時(shí),因Q = 0,封鎖了與非門2,雙穩(wěn)態(tài)電路的狀態(tài)不變,輸出Q保持不變,消除了后沿的抖動(dòng)波形。當(dāng)開關(guān)穩(wěn)定到達(dá)a端時(shí),因a = 0,b = 1,使Q = 1,雙穩(wěn)態(tài)電路狀態(tài)發(fā)生翻轉(zhuǎn),輸出Q重新返回原狀態(tài)。由此可見,鍵盤輸出經(jīng)雙穩(wěn)態(tài)電路之后,輸出已變?yōu)橐?guī)范的矩形方波。</p><p>  3.行列式鍵盤接口電路</p><p>  單片機(jī)

77、系統(tǒng)中,若使用按鍵較多時(shí),通常采用行列式(也稱行列式)鍵盤。用I/O口線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上。例如用2×2的行、列可構(gòu)成4個(gè)鍵的鍵盤,4×4的行列結(jié)構(gòu)可構(gòu)成16個(gè)鍵的鍵盤。因此,在按鍵數(shù)量較多時(shí),可以節(jié)省I/O口線。</p><p><b>  4.中斷掃描方式</b></p><p>  單片機(jī)應(yīng)用系統(tǒng)工作時(shí),并非經(jīng)常需要鍵盤輸

78、入,因此,CPU經(jīng)常處于空掃描狀態(tài)。 為提高CPU工作效率,可采用中斷掃描工作方式。其工作過程如下:當(dāng)無鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤掃描子程序,并識(shí)別鍵號(hào)。 </p><p>  圖4.4 鍵盤接口電路</p><p>  圖4.4是一種簡(jiǎn)易鍵盤接口電路,該鍵盤是由8051 P1口的高、低字節(jié)構(gòu)成的4×4鍵盤。鍵盤的列線與P1口的

79、高4位相連,鍵盤的行線與P1口的低4位相連,因此,P1.4P1.7是鍵輸出線,P1.0P1.3是掃描輸入線。圖4.4中的4輸入與門用于產(chǎn)生按鍵中斷,其輸入端與各列線相連,再通過上拉電阻接至+5V電源,輸出端接至8051的外部中斷輸入端。具體工作如下:當(dāng)鍵盤無鍵按下時(shí),與門各輸入端均為高電平,保持輸出端為高電平;當(dāng)有鍵按下時(shí),INT0端為低電平,向CPU申請(qǐng)中斷,若CPU開放外部中斷,則會(huì)響應(yīng)中斷請(qǐng)求,轉(zhuǎn)去執(zhí)行鍵盤掃4.2.2 看門狗硬件

80、電路</p><p>  由于單片機(jī)自身的抗干擾能力比較差,尤其在一些條件比較惡劣、噪聲大的場(chǎng)合,常會(huì)出現(xiàn)單片機(jī)因?yàn)槭芡饨绺蓴_而導(dǎo)致死機(jī)的現(xiàn)象,造成系統(tǒng)不能正常工作。設(shè)置看門狗是為了防止單片機(jī)死機(jī)、提高單片機(jī)系統(tǒng)抗干擾性的一種重要途徑。</p><p>  一個(gè)完整的單片機(jī)應(yīng)用系統(tǒng)應(yīng)該是一個(gè)軟、硬件的結(jié)合體。系統(tǒng)正常工作時(shí),會(huì)受到各種外界干擾因素的影響。這種外界干擾輕者導(dǎo)致系統(tǒng)內(nèi)部數(shù)據(jù)出錯(cuò)

81、,重者將嚴(yán)重影響程序的運(yùn)行。因此單片機(jī)應(yīng)用系統(tǒng)的開發(fā)一定要考慮系統(tǒng)可靠性的設(shè)計(jì),以滿足系統(tǒng)在現(xiàn)場(chǎng)苛刻環(huán)境下的正常運(yùn)行,而“看門狗”則是系統(tǒng)可靠性設(shè)計(jì)的重要一環(huán)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,所謂的“看門狗”是指在系統(tǒng)設(shè)計(jì)中通過軟件或硬件方式在一定的周期內(nèi)監(jiān)控單片機(jī)或其他CPU的運(yùn)行情況。如果在規(guī)定的時(shí)間內(nèi)沒有收到來自單片機(jī)或其他CPU的觸發(fā)信號(hào),則系統(tǒng)會(huì)強(qiáng)制復(fù)位,以保證系統(tǒng)在受到干擾時(shí)仍能夠維持正常的工作狀態(tài)。在單片機(jī)系統(tǒng)中,看門狗的設(shè)計(jì)一般

82、采用硬件和軟件結(jié)合兩種方式。</p><p><b>  硬件看門狗</b></p><p>  專用硬件看門狗是指一些集成化的或集成在單片機(jī)內(nèi)的專用看門狗電路,它實(shí)際上是一個(gè)特殊的定時(shí)器,當(dāng)定時(shí)時(shí)間到時(shí),發(fā)出溢出脈沖。從實(shí)現(xiàn)角度上看,該方式是一種軟件與片外專用電路相結(jié)合的技術(shù),硬件電路連接好后,在程序中適當(dāng)?shù)夭迦胍恍┛撮T狗復(fù)位的指令,保證程序正常運(yùn)行時(shí)看門狗不溢出。

83、而當(dāng)程序運(yùn)行異常時(shí),看門狗超時(shí)發(fā)出溢出脈沖,通過單片機(jī)的RESET引腳使單片機(jī)復(fù)位。這種方式中,看門狗能否可靠有效地工作,與硬件組成及軟件的控制策略都有密切的關(guān)系。目前常用的集成看門狗電路很多,如MAX705~708、MAX813L、X5043/5045等。</p><p>  看門狗電路可以分為內(nèi)看門狗和外看門狗??撮T狗電路是指看門狗的硬件電路包含在單片機(jī)內(nèi)部,如Microchip的16C5x系列,MOTORO

84、LA的68C05系列,51內(nèi)核中比較典型的有Atmel公司的AT89C55WD、AT89S8252,Winbond公司的W77E58,SST公司的SST89C58以及Philips公司87系列的多種型號(hào)的單片機(jī)等。</p><p>  對(duì)于沒有看門狗定時(shí)器的單片機(jī)或是認(rèn)為內(nèi)部看門狗不可靠時(shí),可以采用外部看門狗定時(shí)器。外部看門狗電路既可以用專用看門狗芯片,也可由普通芯片實(shí)現(xiàn)。</p><p>

85、;  MAX692在本文的單片機(jī)系統(tǒng)中的具體使用方法和電路原理圖如圖4.5所示。</p><p>  如圖4.5所示,其中WDI是看門狗監(jiān)測(cè)輸入腳,接到CPU的一個(gè)專用I/O口或一個(gè)總線上。/RESET是復(fù)位信號(hào)輸出腳,接到CPU的復(fù)位輸入腳。</p><p>  MAX692的WDI定時(shí)周期是1.6s,復(fù)位脈沖寬度是200ms。如果WDI保持高或低超過看門狗定時(shí)周期(1.6s),/RES

86、ET端將發(fā)生200ms的負(fù)脈沖使CPU復(fù)位。</p><p>  4.5 MAX692電路原理圖</p><p>  4.2.3 顯示電路</p><p>  顯示器是最常見的輸出設(shè)備。特別是發(fā)光二極管(LED)和液晶顯示器(LCD),由于結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜、接口容易,得到廣泛的應(yīng)用,尤其在單片機(jī)系統(tǒng)中大量使用?,F(xiàn)在簡(jiǎn)單介紹 發(fā)光二極管。</p>&

87、lt;p>  發(fā)光顯示器是單片機(jī)應(yīng)用產(chǎn)品中常用的廉價(jià)輸出設(shè)備。它是由若干個(gè)發(fā)光二級(jí)管組成的,但發(fā)光二級(jí)管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或一個(gè)比劃發(fā)光,控制不同組合的二級(jí)管導(dǎo)通,就顯示出各種字符。點(diǎn)亮顯示器有靜態(tài)和動(dòng)態(tài)兩種方法。所謂靜態(tài)顯示,就是顯示器顯示某個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。例如,七段顯示器的a,b,c,d,e,f導(dǎo)通,g截止,則顯示0.這種顯示器方式,每一位都需要一個(gè)8位輸出口控制,所以占用硬件多,一般用于顯示器為

88、數(shù)較?。ê苌伲┑膱?chǎng)合。當(dāng)位數(shù)較多時(shí),用靜態(tài)顯示所需的I/O口太多,一般采用動(dòng)態(tài)顯示方法。</p><p>  所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各位顯示器(掃描),對(duì)于每一位顯示器來說,每隔一段時(shí)間點(diǎn)亮一次。顯示器的點(diǎn)亮既跟點(diǎn)亮?xí)r的導(dǎo)通電流有關(guān),也跟點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間的參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需一個(gè)I/O口(稱掃描口),控制各位

89、顯示器的字形也需一個(gè)8位口。</p><p>  圖4.6數(shù)碼管顯示圖</p><p>  圖4.7晶閘管和數(shù)碼管</p><p>  要是行人能看見信號(hào)燈的情況,必須把8255輸出的信號(hào)進(jìn)行放大VT為雙向晶閘管,當(dāng)門極為高電平時(shí)晶閘管導(dǎo)通,該支路指示燈亮;當(dāng)門極為低電平時(shí)晶閘管管斷,該支路指示燈滅。</p><p>  4.2.4 交通燈的

90、控制電路</p><p>  要求每個(gè)方向有三盞燈,分別為紅、黃、綠,配以紅、黃、綠三組時(shí)間到計(jì)時(shí)顯示。每個(gè)方向的綠黃燈的定時(shí)時(shí)間可以預(yù)設(shè),一個(gè)方向綠燈、黃燈亮?xí)r,另一個(gè)方向紅燈亮。每盞燈順序點(diǎn)亮,循環(huán)往復(fù),每個(gè)方向順序?yàn)榫G燈、黃燈、紅燈。交通燈的運(yùn)行狀態(tài)共有四種,分別為:東西方向綠燈亮、東西方向黃燈亮、南北方向綠燈亮和南北方向黃燈亮。在東西方向綠燈和黃燈亮?xí)r,南北方向紅燈亮,并且紅燈的倒計(jì)初始值為綠燈的倒計(jì)初始

91、值和黃燈的倒計(jì)初始值之和。</p><p>  1. 8051并行口的擴(kuò)展</p><p>  8051雖然有4個(gè)8位I/O端口,但真正能提供借用的只有P1口,因?yàn)镻2和P0口通常用于傳送外部傳送地址和數(shù)據(jù),P3口也有它的第二功能。因此,8051通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠燈倒計(jì)時(shí)初值、數(shù)碼管的輸出顯示、紅綠黃信號(hào)燈的顯示都要用到一個(gè)I/O端口,顯然8051的端口是不夠,需要擴(kuò)

92、展。</p><p>  擴(kuò)展的方法有兩種:(1)借用外部RAM地址來擴(kuò)展I/O端口;(2)采用I/O接口新片來擴(kuò)充。我們用8255并行接口信片來擴(kuò)展I/O端口。</p><p>  2. 8255PA口輸出信號(hào)接信號(hào)燈:</p><p>  由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對(duì)應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃發(fā)光二極管。</p&g

93、t;<p>  第5章 系統(tǒng)的軟件設(shè)計(jì)</p><p>  5.1 系統(tǒng)總程序設(shè)計(jì)</p><p>  圖5.1 程序總流程圖</p><p>  主程序中放了一個(gè)按鍵的判斷指令,當(dāng)有鍵按下的時(shí)候,程序就跳到按鍵子程序處理,當(dāng)檢測(cè)到K2鍵按下的時(shí)候就自動(dòng)返回到主程序。</p><p>  按緊急預(yù)按鍵K5后,先出現(xiàn)全紅狀態(tài),再

94、按下該鍵,就出現(xiàn)一方通行狀態(tài),再按,則另一方通行,如此循環(huán)。</p><p>  按手動(dòng)控制鍵后,進(jìn)行手動(dòng)控制,每按一次,燈會(huì)轉(zhuǎn)到下一個(gè)狀態(tài)。</p><p>  按恢復(fù)鍵對(duì)上兩者進(jìn)行恢復(fù)到正常狀態(tài)。</p><p>  R4 存放黃燈時(shí)間 5 03H </p><p>  R5 存放紅燈時(shí)間 60 3CH</p

95、><p>  R6 存放綠燈時(shí)間 80 50H</p><p>  PC0 顯示黃燈信號(hào)</p><p>  PC1 顯示紅燈信號(hào)</p><p>  PC2 顯示黃燈信號(hào) </p><p>  8255 工作于方式0</p><p>  8255 PA、

96、PB、 PC口輸出 PC 控制字為10000000B (80H)</p><p><b>  5.2每秒鐘的設(shè)定</b></p><p>  延時(shí)方法可以有兩種一中是利用MCS-51內(nèi)部定時(shí)器才生溢出中斷來確定1秒的時(shí)間,另一種是采用軟延時(shí)的方法。</p><p>  5.2.1計(jì)數(shù)器初值計(jì)算</p><p>  定時(shí)器

97、工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:</p><p><b>  TC=M-C</b></p><p>  式中,M為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213 ;在方式1時(shí)M的值

98、為216;在方式2和3為28</p><p>  5.2.2 計(jì)算公式</p><p>  T=(M-TC)T計(jì)數(shù)</p><p>  或TC=M-T/T計(jì)數(shù)</p><p>  T計(jì)數(shù)是單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值</p><p>  如單片機(jī)的主脈沖頻率為TCLK12MHZ,經(jīng)過12分頻</

99、p><p>  方式0 TMAX=213?。蔽⒚耄?.192毫秒</p><p>  方式1 TMAX=216?。蔽⒚耄?5.563毫秒</p><p>  顯然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題.</p><p>  5.2.3 1秒的方法</p&g

100、t;<p>  我們采用在主程序中設(shè)定一個(gè)初值為20的軟件計(jì)數(shù)器和使T0定時(shí)50毫秒.這樣每當(dāng)T0到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時(shí)間顯示程序。</p><p>  5.2.4 相應(yīng)程序代碼</p><p><b> ?。ǎ保┲鞒绦?lt

101、;/b></p><p>  定時(shí)器需定時(shí)50毫秒,故T0工作于方式1?!〕踔担?lt;/p><p>  TC=M-T/ T計(jì)數(shù)=216?。担癿s/1us=15536=3CBOH</p><p><b>  ORG 1000H</b></p><p>  START: MOV TMOD, #01H ; 令T

102、O為定時(shí)器方式1</p><p>  MOV TH0, #3CH ;裝入定時(shí)器初值</p><p>  MOV TL0, #BOH  ;</p><p>  MOV IE,   #82H ;開T0中斷</p><p>  SEBT  TRO      ??;啟動(dòng)T0計(jì)數(shù)器</p><p>

103、;  MOV  RO,  #14H   ;軟件計(jì)數(shù)器賦初值</p><p>  LOOP: SJMP $        ?。坏却袛?lt;/p><p> ?。?)中斷服務(wù)子程序</p><p><b>  ORG OOOBH</b></p><p>  AJMP  BRTO</p><p>&l

104、t;b>  ORG OOBH</b></p><p>  BRTO:DJNZ RO,NEXT</p><p>  AJMP TIME ; 跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序</p><p>  DJNZ:MOV RO,#14#??;恢復(fù)R0值</p><p>  MOV TH0, #3CH ;重裝入定時(shí)器

105、初值</p><p>  MOV TL0, #BOH  ;</p><p>  MOV IE,   #82H </p><p><b>  RET1</b></p><p><b>  END</b></p><p>  5.2.5 軟件延時(shí)</p>

106、<p>  MCS-51的工作頻率為2-12MHZ,我們選用的8051單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間。</p><p>  具體的延時(shí)程序分析:</p><p>  DELAY:MOV R4,#08H

107、 延時(shí)1秒子程序</p><p>  DE2:LCALL DELAY1 </p><p>  DJNZ R4,DE2</p><p><b>  RET</b></p><p>  DELAY1:MOV R6,#0 延時(shí)125ms 子程序</p><p><b>  MOV R5

108、,#0</b></p><p>  DE1: DJNZ R5,$</p><p>  DJNZ R6,DE1</p><p><b>  RET</b></p><p>  MOV RN,#DATA </p><p>  字節(jié)數(shù)數(shù)為2,機(jī)器周期數(shù)為1,所以此指令的執(zhí)行時(shí)間為2ms

109、</p><p>  DELAY1為一雙重循環(huán),循環(huán)次數(shù)為256*256=65536,所以延時(shí)時(shí)間=65536*2=131072us 約為125us </p><p>  DELAY R4設(shè)置的初值為8,主延時(shí)程序循環(huán)8次,所以125us*8= 1秒</p><p>  由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。</p><p&g

110、t;<b>  5.3顯示程序設(shè)計(jì)</b></p><p><b>  5.3.1顯示原理</b></p><p>  當(dāng)定時(shí)器定時(shí)為1秒,時(shí)程序跳轉(zhuǎn)到時(shí)間顯示及信號(hào)燈顯示子程序,它將依次顯示信號(hào)燈時(shí)間 ,同時(shí)一直顯示信號(hào)燈的顏色,這時(shí)在返回定時(shí)子程序定時(shí)一秒,在顯示黃燈的下一個(gè)時(shí)間,這樣依次把所有的燈色的時(shí)間顯示完后在重新給時(shí)間計(jì)數(shù)器賦初值 ,

111、重新進(jìn)入循環(huán)。</p><p>  5.3.2 8255輸出信號(hào)與數(shù)碼管的連接</p><p>  LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)量而顯示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以 SP上為0伏,不亮其余為TTL高電平,全亮則顯示為8</p><p><b>  采用共陰級(jí)連接:</

112、b></p><p>  其中 PC0\PB0-a,</p><p>  PC1\PB1-b, </p><p>  PC2\PB2-c,</p><p>  PC3\PB3-d,</p><p>  PC4\PB4-e,</p><p>  PC5\PB5-f,</p>

113、<p><b>  PC6\PB6-g</b></p><p>  PC7\PB7 -SP接地</p><p>  表 5.1 驅(qū)動(dòng)代碼表</p><p>  5.3.3 8255與8051的連接</p><p>  用8051的P0 口的 p0.7 連接8255的片選信號(hào)cs 我們用8031的地址采用全譯

114、碼方式,當(dāng)p0.7 =0 時(shí)片選有效, 其他無效, p0.1 p0.1 用于選擇8255端口</p><p>  P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0</p><p>  A7 A6 A5 A4 A3 A2 A1 A0</p><p>  1 X X X X

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論