2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p>  十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不

2、紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式很多。本系統(tǒng)采用MCS-51系列單片機(jī)AT89C51為中心器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過8051芯片的P3口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩5秒時(shí)黃燈閃爍警示(交通燈信號(hào)通過P1口輸出,顯示時(shí)間通過P0口輸出至雙位數(shù)碼管)。本系統(tǒng)設(shè)計(jì)周期短、可靠性高、實(shí)用性強(qiáng)、操作簡單、維護(hù)方便、擴(kuò)展功能強(qiáng)。 </p>

3、;<p>  關(guān)鍵詞:單片機(jī);交通燈 ;數(shù)碼管</p><p><b>  Abstract</b></p><p>  In recent years, with the rapid development of science and technology, the application of SCM is going deep, driving

4、the traditional detection techniques 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 pa

5、rt uses. The monolithic integrated circuit aspect knowledge is only insufficient, but should also act according to the concrete hardware architecture software and </p><p>  The intersection vehicles shuttle,

6、 the pedestrian is bustling, car dealership traffic lane, person sidewalk, methodical. Then depending on what to realizes this orderly order? the traffic lights on the automatic control system. There are great number ki

7、nds of modes to control the traffic lights. The system uses a series of MCS-51 as the center AT89C51 single-chip device designed to control the traffic lights, so as to realize the function of setting red, green light ti

8、me by 8051 chip’s P3 port </p><p>  Key words: SCM, MCU,traffic light,Nixie tube</p><p><b>  目 錄</b></p><p>  1緒論…………………………………………………1</p><p>  1.1 研究的背景和意義

9、……………………………………………1</p><p>  1.2 國內(nèi)外發(fā)展概況……………………………………………1</p><p>  1.3設(shè)計(jì)要求……………………………………………3</p><p>  1.4設(shè)計(jì)目的……………………………………………3</p><p>  1.5 方案比較、設(shè)計(jì)與論證…………………………………………

10、…4</p><p>  2 原理分析… … … … … … … … … … … … … … … …5</p><p>  2.1 交通燈顯示時(shí)序的分析……………………………………………5</p><p>  2.2 交通燈顯示的理論分析 … … … … … … … … … … … …7</p><p>  3 程序設(shè)計(jì)流程圖… …

11、 … … … … … … … … … … … ……7</p><p>  4 總體設(shè)計(jì)與電路圖……………………………………………9</p><p>  4.1 芯片的選擇…………………………………………………………94.2 電路的設(shè)計(jì) ………………………………………… … … … …15</p><p>  5 系統(tǒng)仿真… … … … … … … … … … …

12、 … … … … … … … … ……16</p><p>  5.1 Protues軟件介紹 … … … … … … … … … … … … … … … … 16</p><p>  5.2 Keil軟件介紹… … … … … … … … … … … … … … … … … 20</p><p>

13、  5.3 交通燈程序…… … … … … … … … … … … … … … … … … 25</p><p>  6總結(jié)與展望………………………………………36</p><p>  致謝……………………………………………………36</p><p><b>  1 緒論</b></p><

14、;p>  1.1 交通燈研究的背景和意義</p><p>  交通是城市經(jīng)濟(jì)活動(dòng)的命脈,對(duì)城市經(jīng)濟(jì)發(fā)展、人民生活水平的提高起著十</p><p>  分重要的作用。城市交通問題是困擾城市發(fā)展、制約城市經(jīng)濟(jì)建設(shè)的重要因素。</p><p>  城市道路增長的有限與車輛增加的無限這一對(duì)矛盾是導(dǎo)致城市交通擁擠的根本原因。城市街道網(wǎng)絡(luò)上的交通容量的不斷增加,表明車輛

15、對(duì)道路容量的要求仍然很高,短期內(nèi)還不可能改變。自從開始使用計(jì)算機(jī)控制系統(tǒng)后,不管在控制硬件里取得什么樣的實(shí)際進(jìn)展,交通控制領(lǐng)域的控制邏輯方面始終沒能取得重大突破。</p><p>  可以肯定的說,對(duì)于減輕交通擁塞及其副作用特別是對(duì)于大的交通網(wǎng)絡(luò)而言,仍然缺乏一種真正的交通響應(yīng)控制策略。計(jì)算機(jī)硬件能力與控制軟件能力很不相符,由此造成的影響是很多交通控制策略根本不能實(shí)現(xiàn)。在少數(shù)幾個(gè)例子中,一些新的控制策略確實(shí)能得以

16、實(shí)現(xiàn),但他們卻沒能對(duì)早期的控制策略進(jìn)行改進(jìn)。由于缺乏能提高交通狀況、特別是缺乏擁塞網(wǎng)絡(luò)交通狀況的實(shí)時(shí)控制策略,幾乎可以說真正成熟的控制策略仍然不存在.智能化和集成化是城市交通信號(hào)控制系統(tǒng)的發(fā)展趨勢和研究前沿,而針對(duì)交通系統(tǒng)規(guī)模復(fù)雜性特征的控制結(jié)構(gòu)和針對(duì)城市交通瓶頸問題并代表智能決策的阻塞處理則是智能交通控制優(yōu)化管理的關(guān)鍵和突破口。因此,研究基于智能集成的城市交通信號(hào)控制系統(tǒng)具有相當(dāng)?shù)膶W(xué)術(shù)價(jià)值和實(shí)用價(jià)值。把智能控制引入到城市交通控制系統(tǒng)中

17、,未來的城市交通控制系統(tǒng)才能適應(yīng)城市交通的發(fā)展。從長遠(yuǎn)來看該研究具有巨大的現(xiàn)實(shí)意義。</p><p>  1.2 交通燈國內(nèi)外發(fā)展概況</p><p>  隨著經(jīng)濟(jì)的發(fā)展,城市現(xiàn)代化程度不斷提高,交通需求和交通量迅速增長,城市交通網(wǎng)絡(luò)中交通擁擠日益嚴(yán)重,道路運(yùn)輸所帶來的交通擁堵、交通事故和環(huán)境污染等負(fù)面效應(yīng)也日益突出,逐步成為經(jīng)濟(jì)和社會(huì)發(fā)展中的全球性共同問題。交通問題已經(jīng)日益成為世界性的

18、難題,城市交通事故、交通阻塞和交通污染問題愈加突出。為了解決車和路的矛盾,常用的有兩種方法:一是控制需求,最直接的辦法就是限制車輛的增加;二是增加供給,也就是修路。但是這兩個(gè)辦法都有其局限性。交通是社會(huì)發(fā)展和人民生活水平提高的基本條件,經(jīng)濟(jì)的發(fā)展必然帶來出行的增加,而且在我國汽車工業(yè)正處在起步階段的時(shí)期,因此限制車輛的增加不是解決問題的好方法。而采取增加供給,即大量修筑道路基礎(chǔ)設(shè)施的方法,在資源、環(huán)境矛盾越來越突出的今天,面對(duì)越來越擁擠

19、的交通,有限的源和財(cái)力以及環(huán)境的壓力,也將受到限制。這就需要依靠除限制需求和提供道路設(shè)施之外的其他方法來滿足日益增長的交通需求。</p><p>  交通系統(tǒng)正是解決這一矛盾的途徑之一。智能交通系統(tǒng)是將先進(jìn)的信息技術(shù)、數(shù)據(jù)通訊傳輸技術(shù)、電子傳感技術(shù)、電子控制技術(shù)及計(jì)算機(jī)處理技術(shù)等有效的集成運(yùn)用于整個(gè)地面交通管理系統(tǒng)而建立的一種在大范圍內(nèi)、全方位發(fā)揮作用的實(shí)時(shí)、準(zhǔn)確、高效的綜合交通運(yùn)輸管理系統(tǒng)。對(duì)城市交通流進(jìn)行智能

20、控制,可以使道路暢通,提高交通效率。合理進(jìn)行交通控制可以對(duì)交通流進(jìn)行有效的引導(dǎo)和調(diào)度,使交通保持在一個(gè)平穩(wěn)的運(yùn)行狀態(tài),從而避免或緩和交通擁擠狀況,大大提高交通運(yùn)輸?shù)倪\(yùn)行效率,還可以減少交通事故,增加交通安全,降低污染程度,節(jié)省能源消耗,本文就是通過對(duì)交叉路口交通信號(hào)的智能控制,達(dá)到優(yōu)化路口交通流的目的</p><p>  進(jìn)入20世紀(jì)70年代,隨著計(jì)算機(jī)技術(shù)和自動(dòng)控制技術(shù)的發(fā)展,以及交通流理論的不斷完善,交通運(yùn)輸

21、組織與優(yōu)化理論和技術(shù)水平不斷提高,控制手段越來越先進(jìn),形成了一批商水平有實(shí)效的城市道路交通控制系統(tǒng)。早在1977年,Pappis等人就將模糊控制運(yùn)用到交通控制上,通過建立規(guī)則庫或是專家系統(tǒng)對(duì)各種交通狀況進(jìn)行模糊控制,并取得了很好的效果。近年來,歐美日本等相繼建立了智能交通控制系統(tǒng)。在這些系統(tǒng)中,大部分都在路口附近安裝磁性環(huán)路檢測器,還使用了新型檢測器等技術(shù)和設(shè)備。這些現(xiàn)代化設(shè)備技術(shù)加上控制理論和現(xiàn)代化科學(xué)管理技術(shù),使得交通控制系統(tǒng)日益完

22、善。隨著一些研究控制理論的學(xué)者投身到交通控制的研究中,在交通信號(hào)控制領(lǐng)域提出了一些新方法、新思路。如靜態(tài)多段配時(shí)控制、準(zhǔn)動(dòng)態(tài)多段配時(shí)控制、最優(yōu)控制、大系統(tǒng)遞階控制、模糊控制、神經(jīng)網(wǎng)絡(luò)控制,網(wǎng)絡(luò)路由控制等。模糊交通控制已經(jīng)成為了交通信號(hào)控制的主流方向之一。國內(nèi)外很多學(xué)者都進(jìn)行了此類研究。</p><p>  交通系統(tǒng)作為一個(gè)時(shí)變的、具有隨機(jī)性的復(fù)雜系統(tǒng),傳統(tǒng)的人為設(shè)定多種方案或是建立各種預(yù)測模型均比較困難。城市交通

23、控制研究的起源比較早。1868年,英國倫敦燃汽信號(hào)燈的問世,標(biāo)志著城市交通控制的開始。1913年,在美國俄亥俄州的Cleveland市出現(xiàn)了世界上最早的交通信號(hào)控制。1926年美國的芝加哥市采用了交通燈控制方案,每個(gè)交叉口設(shè)有唯一的交通燈,適用于單一的交通流。從此,交通控制技術(shù)和相關(guān)的控制算法得到了發(fā)展和改善,提高了交通控制的安全性、有效性,并減少了對(duì)環(huán)境的影響。</p><p>  雖然模糊控制能有效處理模糊信

24、息,但是產(chǎn)生的規(guī)則比較粗糙,利用規(guī)則表查表進(jìn)行控制,運(yùn)算速度雖然比較快,但沒有自學(xué)習(xí)功能。而且這些研究有些以相序固定為前提。不能保證相序與實(shí)際交通流狀況的一致性,影響了綠燈時(shí)間的利用率。有些研究則提出了可變相序的模糊控制方法,提高了綠燈時(shí)間的利用率,彌補(bǔ)了相序固定的缺點(diǎn),但同時(shí)也存在一些不足。例如目前應(yīng)用比較好的交通系統(tǒng):SCOOT(經(jīng)典交通系統(tǒng)),他們都是主要采用統(tǒng)計(jì)模型和經(jīng)典算法。但城市交通系統(tǒng)是一個(gè)復(fù)雜的、隨機(jī)性很強(qiáng)的巨型系統(tǒng),要

25、想建立實(shí)用性較強(qiáng)的數(shù)學(xué)模型是十分困難。利用模糊控制智能控制技術(shù)進(jìn)行交叉口信號(hào)燈控制能取得比定時(shí)控制與感應(yīng)控制更好的效果,是今后單交叉路口信號(hào)燈控制的主要研究方向。</p><p><b>  1.3設(shè)計(jì)要求</b></p><p>  1.3.1 系統(tǒng)分三種工作模式:</p><p>  正常模式、繁忙模式、特殊模式,并且通過三個(gè)按鈕“正?!?、

26、“繁忙”、“特殊”可相互轉(zhuǎn)化。程序開始運(yùn)行先南北段通行、東西段禁止60s,后東西段通行、南北段禁止60s,依此循環(huán),還可以在線更改直行時(shí)間,可以通過按時(shí)間加和時(shí)間減來實(shí)現(xiàn)。</p><p>  1.3.2 正常模式: </p><p>  直行時(shí)間顯示數(shù)碼管顯示60。此時(shí)南北段直行通行(綠燈)、東西段禁止(紅燈)40s,南北段人行道通行(綠燈),東西段人行道禁止(紅燈),同時(shí)南北段和東西段

27、方向的數(shù)碼管分別從40s和60s開始倒計(jì)時(shí),至最后5s時(shí)南北段綠燈變成黃燈閃爍;此后南北段左拐(左拐燈亮)通行、東西段禁止(紅燈)20s,南北段、東西段人行道都禁止(紅燈),同時(shí)南北段和東西段方向的數(shù)碼管都從20s開始倒計(jì)時(shí),至最后5s時(shí)南北段左拐燈變成黃燈閃爍;再后東西段直行通行(綠燈)、南北段禁止(紅燈)40s,東西段人行道通行(綠燈),南北段人行道禁止(紅燈),同時(shí)東西段和南北段方向的數(shù)碼管分別從40s和60s開始倒計(jì)時(shí),至最后5

28、s時(shí)東西段綠燈變成黃燈閃爍;最后東西段左拐(左拐燈亮)通行、南北段禁止(紅燈)20s,東西段、南北段人行道都禁止(紅燈),同時(shí)東西段和南北段方向的數(shù)碼管都從20s開始倒計(jì)時(shí),至最后5s時(shí)東西段左拐燈變成黃燈閃爍。</p><p>  1.3.3 繁忙模式:</p><p>  繁忙指示燈亮,南北段、東西段的通行時(shí)間改為45s,其中左拐的時(shí)間改為15s,其它與正常模式類似。</p>

29、;<p>  1.3.4特殊模式:</p><p>  特殊模式燈亮,南北、東西段數(shù)碼管滅,東西、南北段的紅燈都亮,人行道禁止通行。當(dāng)退出特殊模式時(shí)直行數(shù)碼管的顯示是時(shí)間改為75s,其中左拐的時(shí)間改為20s,其它與正常模式類似。</p><p><b>  1.4 設(shè)計(jì)目的</b></p><p>  1.4.1 了解交通燈管理的

30、基本工作原理</p><p>  交通燈中三種燈都有著不同的作用,綠燈亮?xí)r,準(zhǔn)許車輛通行,黃燈時(shí)亮?xí)r,已越過停止線的車輛可以繼續(xù)通行,紅燈亮?xí)r,禁止車輛通行。交通燈的工作是有單片機(jī)來控制,使得車輛能夠有序的通過十字路口。1.4.2掌握多位LED顯示問題的解決 </p><p>  本設(shè)計(jì)用的是兩位七段共陰極數(shù)碼管來顯示倒計(jì)時(shí)功能,數(shù)碼管有兩個(gè)位選引腳分別為5腳和10腳,其他幾個(gè)腳分別為A

31、、B、C、D、E、F、G、dp他們對(duì)應(yīng)的引腳編號(hào)分別為3、9、8、6、7、4、1、2。</p><p>  1.5方案比較、設(shè)計(jì)與論證</p><p>  1.5.1 顯示界面方案</p><p>  1.5.1.1 倒計(jì)時(shí)顯示  該系統(tǒng)要求完成倒計(jì)時(shí)的功能。因只需顯示數(shù)字,基于上述原因,我們考慮完全采用數(shù)碼管顯示,四個(gè)路口分別采用一個(gè)二位陰極數(shù)碼管即可。<

32、;/p><p>  表1 七段LED字型碼</p><p>  1.5.1.2 狀態(tài)燈顯示</p><p>  該系統(tǒng)要求完成狀態(tài)燈顯示的功能。求于簡單,我們把各個(gè)路口的紅燈和黃燈設(shè)成直行和左拐兩個(gè)通行方式所共有,也就是說,一個(gè)路口只需四個(gè)狀態(tài)燈,一個(gè)直行通行的綠燈,一個(gè)左拐通行的綠燈,一個(gè)共有的紅燈,一個(gè)共有的黃燈。</p><p>  1.5

33、.2 輸入方案</p><p>  該系統(tǒng)要求能手動(dòng)改變東西與南北的通行時(shí)間、緊急情況處理,我們采用擴(kuò)展I/O</p><p>  口方法,在外部中斷P32口上擴(kuò)展三個(gè)中斷口,分別連接三個(gè)按鈕。該方案的優(yōu)點(diǎn)是:使用靈活,并且可提供較多I/O口,節(jié)省了AT89S52的中斷口資源。</p><p><b>  2 原理分析</b></p>

34、;<p>  2.1 交通燈顯示時(shí)序的理論分析</p><p>  下圖所示為一種紅綠燈規(guī)則的狀態(tài)圖。</p><p>  狀態(tài)S1南北直行通行</p><p>  狀態(tài)S2南北左右拐通行</p><p>  狀態(tài)S3東西直行通行 狀態(tài)S4東西左右拐通行</p>&l

35、t;p>  2.2 循環(huán)執(zhí)行如下圖所示:</p><p>  依據(jù)上述車輛行駛的狀態(tài)圖,可以列出各個(gè)路口燈的邏輯表如下表所示(其中邏輯值“1”代表直行通行,邏輯值“0”代表禁止通行,邏輯值“LR”代表左右拐通行):</p><p>  程序就是在上述四種狀態(tài)下循環(huán)轉(zhuǎn)化的。一個(gè)周期四個(gè)狀態(tài),在正常模式下共花費(fèi)2分鐘。</p><p>  2.2 交通燈顯示的理論

36、分析</p><p>  2.2.1 倒計(jì)時(shí)顯示的理論分析</p><p>  利用定時(shí)器中斷,設(shè)置TH0=TH1=(65536-50000)/256,即每0.05秒中斷一次。每到第20次中斷即過了20*0.05秒=1秒時(shí),使時(shí)間的計(jì)數(shù)值減1,便實(shí)現(xiàn)了倒計(jì)時(shí)的功能。</p><p>  2.2.2 狀態(tài)燈顯示的理論分析</p><p>  

37、黃燈閃爍同樣可以利用定時(shí)器中斷。每到第10次中斷即過了10*0.05秒=0.5秒時(shí),使黃燈標(biāo)志位反置,即可讓黃燈1秒閃爍一次。</p><p><b>  3 程序設(shè)計(jì)流程圖</b></p><p>  圖3.1 定時(shí)器0中斷流程圖</p><p>  圖3.2 主程序流程圖</p><p>  圖3.3 外部中斷0中斷

38、流程圖</p><p>  4 總體設(shè)計(jì)與電路圖</p><p><b>  4.1 芯片選擇 </b></p><p>  4.1.1 單片機(jī)AT89S52</p><p>  AT89S52——低功耗高性能CMOS 8位單片機(jī),片內(nèi)8k Bytes ISP(In-system </p><p>

39、;  programmable)的可反復(fù)擦寫1000次的FLASH只讀程序存儲(chǔ)器,器件采用ATMEL公司之高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn) MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。單芯片上,擁有8 位CPU及在系統(tǒng)可編程FLASH,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效之解決方案。</p><p>  AT89S52之特點(diǎn):4

40、0個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes</p><p>  的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。</p><p>  AT89C52——低電壓高性能CMOS 8位單片機(jī),片內(nèi)8k bytes的可反復(fù)擦寫的

41、</p><p>  FLASH只讀程序存儲(chǔ)器及256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器及FLASH存儲(chǔ)單元,功能強(qiáng)大之AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制之應(yīng)用場合。</p><p>  AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)

42、內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可按照常規(guī)方法進(jìn)行編程,亦可在線編程。其將通用之微處理器及Flash存儲(chǔ)器結(jié)合,特別是可反復(fù)擦寫的FLASH存儲(chǔ)器可有效降低開發(fā)成本。AT89C52及AT89S52之別,在于C及S, C表示需用并行編程器下載(接線多且復(fù)雜),S表示可支持ISP下載,可在89S52系統(tǒng)板上面預(yù)留ISP下載接口,ISP下載線可方便地自制,一74HC373,若干電

43、阻,連接電腦并口就可用軟件將hex文件下至89S52。相比較AT89C52及AT89S52 ,以方便計(jì),選用AT89S52。T89S52功能:8k字節(jié)FLASH,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一6向</p><p>  量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選節(jié)電模式。空閑模式下,CP

44、U 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被結(jié),單片機(jī)一切工作停止,直到下一中斷或硬件復(fù)位為止。</p><p>  P0口——8位漏極開路之雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口亦被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻。在FLASH編

45、程時(shí),P0口亦用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需外部上拉電阻。</p><p>  P1口——有內(nèi)部上拉電阻的8位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可作輸入口用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可作輸入口用。作輸入

46、用時(shí),被外部拉低的引腳因內(nèi)部電阻,將輸出電流(IIL)。此外,P1.0及P1.2分別作定時(shí)器/計(jì)數(shù)器2之外部計(jì)數(shù)輸入(P1.0/T2)及時(shí)器/計(jì)數(shù)器2之觸發(fā)輸入(P1.1/T2EX),詳見表1所示。在flash編程及校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 表2:</p><p>  P2口——有內(nèi)部上拉電阻的8 位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P2 端口寫

47、“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可作輸入口。作輸入用時(shí),被外部拉低的引腳因內(nèi)部電阻,將輸出電流(IIL)。 在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR) 時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口用很強(qiáng)的內(nèi)部上拉發(fā)送1。在用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器之內(nèi)容。在FLASH編程及校驗(yàn)時(shí),P2口亦接收高8位地址字節(jié)及一些控制信號(hào)。 </p&g

48、t;<p>  P3口——有內(nèi)部上拉電阻的8位雙向I/O口,p3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可用作輸入口。作輸入用時(shí),被外部拉低的引腳因內(nèi)部電阻之原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)用,如表2所示。在FLASH編程及校驗(yàn)時(shí),P3口亦接收些控制信號(hào)。此外,P3口亦接收些用于FLASH閃存編程及程序校驗(yàn)的控制信號(hào)。 </p

49、><p>  表3: </p><p>  RST——復(fù)位輸入。振蕩器工作時(shí),RST引腳有兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 </p><p>  ALE/PROG——訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈

50、沖用于鎖存地址的低8位字節(jié)。一般,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定之脈沖信號(hào),故它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。需注意:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳亦用于輸入編程脈沖(PROG)。若必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX及MOVC指令方能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置

51、ALE禁止位無效。</p><p>  PSEN——程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器之讀選通信號(hào),AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。 </p><p>  EA/VPP——外部訪問允許,要CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端須保持低

52、電平(接地)。需注意:若加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。若EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器之指令。 </p><p>  FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這須是該器件是使用12V編程電壓Vpp。</p><p>  XTAL1——振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生電路之輸入端。</p><p>

53、  XTAL2——振蕩器反相放大器之輸出端。</p><p><b>  單片機(jī)最小系統(tǒng):</b></p><p>  圖4.2 單片機(jī)最小系統(tǒng)</p><p>  要使單片機(jī)工作起來,最基本的電路的構(gòu)成為</p><p><b>  注意:</b></p><p>  1

54、)EA/VP(31腳)</p><p><b>  接+5V</b></p><p>  1、電源電路:向單片機(jī)供電。單片機(jī)電源:</p><p>  AT89S51單片機(jī)的工作電壓范圍:4.0V—5.5V, 所以通常給單片機(jī)外接5V直流電源。連接方式為VCC(40腳):接電源+5V端VSS(20腳):接電源地端</p><

55、p>  2、時(shí)鐘電路:單片機(jī)工作的時(shí)間基準(zhǔn),決定單片機(jī)工作速度。時(shí)鐘電路就是振蕩電路,向單片機(jī)提供一個(gè)正弦波信號(hào)作為基準(zhǔn),決定單片機(jī)的執(zhí)行速度。AT89S51單片機(jī)時(shí)鐘頻率范圍:0 — 33MHz。</p><p>  圖4.3 時(shí)鐘電路連接方式 </p><p>  3、復(fù)位電路:確定單片機(jī)工作的起始狀態(tài),完成單片機(jī)的啟動(dòng)過程。</p><p>  圖4.

56、4 復(fù)位的電路圖</p><p>  單片機(jī)接通電源時(shí)產(chǎn)生復(fù)位信號(hào),完成單片機(jī)啟動(dòng),確定單片機(jī)起始工作狀態(tài)。手動(dòng)按鍵產(chǎn)生復(fù)位信號(hào),完成單片機(jī)啟動(dòng),確定單片機(jī)的初始狀態(tài)。</p><p>  通常在單片機(jī)工作出現(xiàn)混亂或“死機(jī)”時(shí),使用手動(dòng)復(fù)位可實(shí)現(xiàn)單片機(jī)“重啟”。</p><p><b>  4.2電路的設(shè)計(jì):</b></p>

57、<p>  圖4.5 總體電路圖</p><p>  圖中共有5個(gè)兩位七段共陰極數(shù)碼管,其中四個(gè)分別用于四個(gè)路口的倒計(jì)時(shí)顯示,另一個(gè)用于總體的直行時(shí)間顯示,五個(gè)數(shù)碼管的陽極都接到AT89s52的P0口,陰極接到P2口;共22個(gè)發(fā)光二極管,其中10個(gè)綠色發(fā)光二極管,8個(gè)紅色發(fā)光二極管,4個(gè)黃色發(fā)光二極管,四個(gè)路口每個(gè)路口各有一個(gè)紅(禁行)、黃(警告)發(fā)光二極管,二個(gè)綠色發(fā)光二極管(通行),一個(gè)用于直行通

58、行,一個(gè)用于左拐通行,四個(gè)人行道,SN和EW人行道各有一紅、綠發(fā)光二極管,另外兩個(gè)紅色發(fā)光二極管分別用于繁忙模式和特殊模式的指示,其中四個(gè)路口的二極管接到P1口,人行道的發(fā)光二極管接到P3口,繁忙模式和特殊模式的指示燈接P2口;外部中斷0接上五個(gè)按鈕,其中三個(gè)分別用于繁忙、特殊、正常模式的轉(zhuǎn)化,這三個(gè)按鈕是帶自鎖功能的開關(guān)。另外兩個(gè)用于在線時(shí)間修改時(shí)間加和時(shí)間減。圖中模式開關(guān)采用自鎖開關(guān)。</p><p><

59、;b>  5 系統(tǒng)仿真</b></p><p>  5.1 Protues軟件介紹</p><p>  Protues軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、

60、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cor

61、tex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯。</p><p>  Proteus是一個(gè)標(biāo)準(zhǔn)的Windows窗口程序,其啟動(dòng)界面如圖5.1所示:</p><p><b>  圖5.1</b></p><p>  如圖中所示,區(qū)域①為菜單及工具欄,區(qū)域②為預(yù)覽區(qū),區(qū)域③為元器件

62、瀏覽區(qū),區(qū)域④為編輯窗口,區(qū)域⑤對(duì)象拾取區(qū),區(qū)域⑥為元器件調(diào)整工具欄,區(qū)域⑦為運(yùn)行工具條。</p><p>  在 Keil簡介中所講的工程項(xiàng)目相配套的Proteus工程為例來詳細(xì)講述Proteus的操作方法以及注意事項(xiàng)。</p><p>  首先點(diǎn)擊啟動(dòng)界面區(qū)域③中的“P”按鈕( Pick Devices,拾取元器件)來打開“Pick Devices ”(拾取元器件)對(duì)話框從元件庫中拾取

63、所需的元器件。對(duì)話框如圖5.2所示:</p><p><b>  圖5.2</b></p><p>  在對(duì)話框中的“Keywords ”里面輸入要檢索的元器件的關(guān)鍵詞,比如要選擇項(xiàng)目中使用的 AT89C51直接輸入。輸入以后我們能在“Results ”結(jié)果欄里面看到我們搜索的元器件的結(jié)果。在對(duì)話框的右側(cè),我們還能夠看到我們選擇的元器件的仿真模型,引腳以及PCB參數(shù)。

64、有時(shí)候選擇的元器件并沒有仿真模型,對(duì)話框?qū)⒃诜抡婺P秃鸵_一欄中顯示“ No Simulator Model”(無仿真模型)。那么就不能夠用該元器件進(jìn)行仿真了,只能做它的PCB板,或者選擇其他的與其功能類似而且具有仿真模型的元器件。</p><p>  搜索到所需的元器件后,雙擊元器件名來將相應(yīng)的元器件加入到文檔中,接著還可以用相同的方法來搜索并加入其他的元器件,當(dāng)已經(jīng)將所需的元器件全部加入到文檔中時(shí),點(diǎn)擊“OK

65、”按鈕來完成元器件的添加。</p><p>  添加好元器件以后,下面就是將元器件按照需要連接成電路。首先在元器件瀏覽區(qū)中點(diǎn)擊需要添加到文檔中的元器件,這時(shí)就可以在瀏覽區(qū)看到所選擇的元器件的形狀與方向,如果其方向不符合你的要求,通過點(diǎn)擊元器件調(diào)整工具欄中的工具來任意進(jìn)行調(diào)整,調(diào)整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線,事實(shí)上Proteus的自動(dòng)布線功

66、能是相當(dāng)?shù)耐晟?。布線時(shí)只需要單擊選擇起點(diǎn),然后在需要轉(zhuǎn)彎的地方單擊一下,按照你所需走線的方向移動(dòng)鼠標(biāo)到線的終點(diǎn)單擊即可。布線如圖5.3所示</p><p><b>  圖5.3</b></p><p> ?。海⊿election Mode),選擇模式,通常情況下都需要選中它,比如布局時(shí)和布線時(shí)。</p><p> ?。海–omponent Mo

67、de),組件模式,點(diǎn)擊該按鈕,能夠顯示出區(qū)域③中的元器件,以便選擇。</p><p> ?。海╓ire Label Mode),線路標(biāo)簽?zāi)J?,選中它并單擊文檔區(qū)電路連線能夠?yàn)檫B線添加標(biāo)簽,經(jīng)常與總線配合使用。</p><p> ?。海═ext Script Mode),文本模式,選中它能夠?yàn)槲臋n添加文本。</p><p>  :(Buses Mode),總線模式,選

68、中它能夠在電路中畫總線。</p><p> ?。海═erminals Mode),終端模式,選中它能夠?yàn)殡娐诽砑痈鞣N終端,比如輸入、輸出、電源、地等</p><p> ?。海╒irtual Instruments Mode),虛擬儀器模式,選中它能夠在區(qū)域③中看到很多虛擬儀器,比如示波器,電壓表,電流表。</p><p>  首先點(diǎn)擊,選擇終端模式,然后在元器件瀏覽

69、區(qū)中點(diǎn)擊POWER (電源)來選中電源,通過區(qū)域⑥中元器件調(diào)整工具進(jìn)行適當(dāng)?shù)恼{(diào)整,然后就可在文檔區(qū)中單擊放置電源了,放置并連接好線路。</p><p>  調(diào)試組件屬性以后就要將程序(HEX文件)載入單片機(jī)了。雙擊單片機(jī)圖標(biāo),系統(tǒng)同樣會(huì)彈出“Edit Component”對(duì)話框,在這個(gè)對(duì)話框中點(diǎn)擊“Program files”框右側(cè)的,來打開選擇程序代碼窗口,選中相應(yīng)的HEX文件后返回,這時(shí),按鈕左側(cè)的框中就填入

70、了相應(yīng)的HEX文件,點(diǎn)擊對(duì)話框的“OK”按鈕,回到文檔,程序文件添加完成。</p><p>  5 .2 keil軟件介紹</p><p>  5.2.1 系統(tǒng)概述</p><p>  Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過

71、匯編語言后再使用C來開發(fā),體會(huì)更加深刻。</p><p>  Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。</p><

72、;p>  5.2.2 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)</p><p>  C51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文

73、件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中,下圖為利用keil所編寫的交通燈程序(圖5.4)。</p><p><b>  圖5.4</b></p&

74、gt;<p>  通過Protues畫圖和Keil寫程序和編譯所產(chǎn)生的.hex文件添加到Protues中仿真產(chǎn)生的效果圖如下所示:</p><p>  圖5.5 Protues仿真1</p><p>  圖5.6 Protues仿真2</p><p>  圖5.7 Protues仿真3</p><p><b>  程序

75、仿真結(jié)果如下:</b></p><p>  首先,直行時(shí)間顯示數(shù)碼管顯示60。此時(shí)南北段綠燈亮、東西段紅燈亮40s,南北段人行道綠燈亮,東西段人行道紅燈亮,同時(shí)南北段和東西段方向的數(shù)碼管分別從40s和60s開始倒計(jì)時(shí)。 35秒后,南北方向的黃燈閃爍5秒鐘,此時(shí)東西方向仍維持紅燈亮,人行道燈不變。 40秒后,南北方向左拐燈亮,東西方向紅燈亮,東西和南北人行道全部紅燈亮,同時(shí)南北段和東西段方向的數(shù)碼管分別

76、從19秒開始倒計(jì)時(shí)。 55秒鐘后,南北方向的黃燈閃爍5秒,此時(shí)東西方向仍維持紅燈亮,人行道燈不變。 1分鐘后,東西段綠燈亮、南北段紅燈亮40s,東西段人行道綠燈亮,南北段人行道紅燈亮,同時(shí)南北段和東西段方向的數(shù)碼管分別從60s和40s開始倒計(jì)時(shí)。 1分35秒后,東西方向的黃燈閃爍5秒鐘,此時(shí)南北方向仍維持紅燈亮,人行道燈不變。 1分40秒后,東西方向左拐燈亮,南北方向紅燈亮,東西和南北人行道全部紅燈亮,同時(shí)南北段和東西段方向的數(shù)碼管分

77、別從19秒開始倒計(jì)時(shí)。 1分55秒鐘后,東西方向的黃燈閃爍5秒,此時(shí)南北方向仍維持紅燈亮,人行道燈不變。 按下“繁忙”按鈕時(shí)直行顯示分別為45和75。其它過程與正常模式下相同。按下“特殊”按鈕時(shí)數(shù)碼管</p><p>  5.3 交通燈程序:</p><p>  /*****************************************************</p>

78、<p>  十字路口交通燈控制 C 程序</p><p>  ******************************************************/</p><p>  #defineucharunsigned char</p><p>  #defineuintunsigned int</p><p

79、>  #include<reg52.h></p><p>  /*****定義控制位**********************/</p><p>  sbit Time_Show_LED2=P2^5;//Time_Show_LED2控制位</p><p>  sbit Time_Show_LED1=P2^4;//Time_Show_

80、LED1控制位</p><p>  sbitEW_LED2=P2^3;//EW_LED2控制位</p><p>  sbitEW_LED1=P2^2;//EW_LED1控制位</p><p>  sbitSN_LED2=P2^1;//SN_LED2控制位</p><p>  sbitSN_LED1=P2^0;//SN_LED1

81、控制位</p><p>  sbit SN_Yellow=P1^6;//SN黃燈</p><p>  sbit EW_Yellow=P1^2;//EW黃燈</p><p>  sbit EW_Red=P1^3;//EW紅燈</p><p>  sbit SN_Red=P1^7;//SN紅燈</p><

82、;p>  sbitSN_Green=P1^5;//SN直行綠燈</p><p>  sbitSN_GreenL=P1^4;//SN左拐綠燈</p><p>  sbit EW_Green=P1^1; // EW直行綠燈</p><p>  sbit EW_GreenL=P1^0; // EW左拐綠燈</p><p

83、>  sbit EW_ManGreen=P3^0;//EW人行道綠燈</p><p>  sbit SN_ManGreen=P3^1;//SN人行道綠燈</p><p>  sbit Special_LED=P2^6;//交通特殊指示燈</p><p>  sbit Busy_LED=P2^7;//交通繁忙指示燈</p>

84、<p>  sbit Nomor_Button=P3^5;//交通正常按鍵</p><p>  sbit Busy_Button=P3^6;//交通繁忙按鍵</p><p>  sbit Special_Button=P3^7;//交通特殊按鍵 </p><p>  sbit Add_Button=P3^3;//時(shí)間加</p&

85、gt;<p>  sbit Reduces_Button=P3^4;//時(shí)間減</p><p>  bit Flag_SN_Yellow; //SN黃燈標(biāo)志位</p><p>  bit Flag_EW_Yellow;//EW黃燈標(biāo)志位</p><p>  charTime_EW;//東西方向倒計(jì)時(shí)單元</p>&

86、lt;p>  charTime_SN;//南北方向倒計(jì)時(shí)單元</p><p>  uchar EW=60,SN=40,EWL=19,SNL=19; //程序初始化賦值,正常模式</p><p>  uchar EW1=60,SN1=40,EWL1=19,SNL1=19;//用于存放修改值的變量</p><p>  uchar code table[10]={

87、0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1~~~~9段選碼</p><p>  uchar code S[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};//交通信號(hào)燈控制代碼</p><p>  /**********************延時(shí)子程序***************

88、*********/</p><p>  voidDelay(uchar a)</p><p><b>  {</b></p><p><b>  uchari;</b></p><p><b>  i=a;</b></p><p>  while

89、(i--){;}</p><p><b>  }</b></p><p>  /*****************顯示子函數(shù)**************************/</p><p>  voidDisplay(void)</p><p><b>  {</b></p>

90、<p><b>  char h,l;</b></p><p>  h=Time_EW/10;</p><p>  l=Time_EW%10;</p><p>  P0=table[l];</p><p>  EW_LED2=1;</p><p><b>  Delay(2);

91、</b></p><p>  EW_LED2=0;</p><p>  P0=table[h];</p><p>  EW_LED1=1;</p><p><b>  Delay(2);</b></p><p>  EW_LED1=0;</p><p>  h=

92、Time_SN/10;</p><p>  l=Time_SN%10;</p><p>  P0=table[l];</p><p>  SN_LED2=1;</p><p><b>  Delay(2);</b></p><p>  SN_LED2=0;</p><p>

93、  P0=table[h];</p><p>  SN_LED1=1;</p><p><b>  Delay(2);</b></p><p>  SN_LED1=0;</p><p>  h= EW1/10;</p><p>  l= EW1%10;</p><p>  

94、P0=table[l];</p><p>  Time_Show_LED1=1;</p><p><b>  Delay(2);</b></p><p>  Time_Show_LED1=0;</p><p>  P0=table[h];</p><p>  Time_Show_LED2=1;&l

95、t;/p><p><b>  Delay(2);</b></p><p>  Time_Show_LED2=0;</p><p><b>  } </b></p><p>  /**********************外部0中斷服務(wù)程序************************/</p&

96、gt;<p>  voidEXINT0(void)interrupt 0 using 1</p><p><b>  {</b></p><p>  EX0=0; //關(guān)中斷</p><p>  if(Add_Button==0) //時(shí)間加</p><p><b>  { </b>

97、</p><p><b>  EW1+=5;</b></p><p><b>  SN1+=5;</b></p><p>  if(EW1>=100)</p><p><b>  {</b></p><p><b>  EW1=99;&l

98、t;/b></p><p><b>  SN1=79;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(Reduces_Button==0) //時(shí)間減</p><p><b&

99、gt;  {</b></p><p><b>  EW1-=5;</b></p><p><b>  SN1-=5;</b></p><p>  if(EW1<=40)</p><p><b>  { </b></p><p><

100、b>  EW1=40;</b></p><p><b>  SN1=20;</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  if(Nomor_Button==0)//測試按鍵是否按下,按下為正常狀態(tài)

101、</p><p><b>  {</b></p><p><b>  EW1=60;</b></p><p><b>  SN1=40;</b></p><p><b>  EWL1=19;</b></p><p><b>

102、;  SNL1=19;</b></p><p>  Busy_LED=0;//關(guān)繁忙信號(hào)燈</p><p>  Special_LED =0;//關(guān)特殊信號(hào)燈</p><p><b>  }</b></p><p>  if(Busy_Button==0) //測試按鍵是否按下,按下為繁忙狀態(tài)</p&g

103、t;<p><b>  {</b></p><p><b>  EW1=45;</b></p><p><b>  SN1=30;</b></p><p><b>  EWL1=14;</b></p><p><b>  SNL1=

104、14;</b></p><p>  Special_LED=0;//關(guān)特殊信號(hào)燈</p><p>  Busy_LED=1;//開繁忙信號(hào)燈</p><p><b>  }</b></p><p>  while(Special_Button==0)//測試按鍵是否按下,按下為特殊狀態(tài)</p>

105、<p><b>  {</b></p><p><b>  P0=0;</b></p><p>  SN_Red=1; //SN紅燈亮</p><p>  EW_Red=1; //EW紅燈亮</p><p>  SN_Green=0;</p>

106、<p>  SN_GreenL=0;</p><p>  EW_Green=0;</p><p>  EW_GreenL=0;</p><p>  SN_ManGreen=0;//EW人行道禁止 </p><p><b>  EW1=75;</b></p><p><b>

107、  SN1=55;</b></p><p><b>  EWL1=19;</b></p><p><b>  SNL1=19;</b></p><p>  Busy_LED=0;//關(guān)繁忙信號(hào)燈</p><p>  Special_LED =1;//開特殊信號(hào)燈</p>&

108、lt;p><b>  }</b></p><p>  if (Special_Button==1)</p><p><b>  {</b></p><p>  Special_LED=0;}</p><p>  if (Busy_Button==1)</p><p>

109、;<b>  {</b></p><p>  Busy_LED=0;}</p><p>  EX0=1;//開中斷</p><p><b>  }</b></p><p>  /**********************T0中斷服務(wù)程序*******************/</p

110、><p>  void timer0(void)interrupt 1 using 1</p><p><b>  {</b></p><p>  static uchar count;</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-500

111、00)%256;</p><p><b>  count++;</b></p><p>  if(count==10)</p><p><b>  {</b></p><p>  if(Flag_SN_Yellow==1) //測試南北黃燈標(biāo)志位</p><p>  {SN_

112、Yellow=~SN_Yellow;}</p><p>  if(Flag_EW_Yellow==1) //測試東西黃燈標(biāo)志位</p><p>  {EW_Yellow=~EW_Yellow;} </p><p><b>  }</b></p><p>  if(count==20)</p><p&

113、gt;<b>  {</b></p><p>  Time_EW--;</p><p>  Time_SN--;</p><p>  if(Flag_SN_Yellow==1)//測試南北黃燈標(biāo)志位</p><p>  {SN_Yellow=~SN_Yellow;}</p><p>  if(Fl

114、ag_EW_Yellow==1)//測試東西黃燈標(biāo)志位</p><p>  {EW_Yellow=~EW_Yellow;}</p><p><b>  count=0;</b></p><p><b>  }</b></p><p><b>  }</b></p>

115、<p>  /*********************主程序開始**********************/</p><p>  voidmain(void)</p><p><b>  { </b></p><p>  Busy_LED=0;</p><p>  Special_LED=0;</

溫馨提示

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