畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的交通燈控制器設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的交通燈控制器設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的交通燈控制器設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的交通燈控制器設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的交通燈控制器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(報(bào)告)課題:基于單片機(jī)的交通燈控制器設(shè)計(jì)學(xué)生: 金林林 系部: 電子信息系班級(jí): 微電091 學(xué)號(hào): 2009001055指導(dǎo)教師: 周瑩裝訂交卷日期:2012.4.15裝訂順序: (1)封面(2)畢業(yè)設(shè)計(jì)(報(bào)告)成績(jī)?cè)u(píng)定記錄(3)標(biāo)題、中文摘要及關(guān)鍵詞(4)正文(5)附錄(6)參考文獻(xiàn)畢業(yè)設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定記錄表指導(dǎo)教師評(píng)語(yǔ)(包含學(xué)生在畢業(yè)實(shí)習(xí)期間的表現(xiàn)):成績(jī)(平時(shí)成績(jī)): 指導(dǎo)教師簽名:年 月 日評(píng)閱教師評(píng)語(yǔ):成績(jī)(評(píng)閱成績(jī)): 指導(dǎo)教師簽名:年 月 日總評(píng)成績(jī):注:1.此表適用于不參加畢業(yè)答辯學(xué)生的畢業(yè)設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定;2.平時(shí)成績(jī)占40%、卷面評(píng)閱成績(jī)占60%,在上面

2、的評(píng)分表中,可分別按40分、60分來(lái)量化評(píng)分,二項(xiàng)相加所得總分即為總評(píng)成績(jī),總評(píng)成績(jī)請(qǐng)轉(zhuǎn)換為優(yōu)秀、良好、中等、及格、不及格五等級(jí)計(jì)分。教務(wù)處制畢業(yè)設(shè)計(jì)(報(bào)告)成績(jī)?cè)u(píng)定記錄表指導(dǎo)教師評(píng)語(yǔ)(包含學(xué)生在畢業(yè)實(shí)習(xí)期間的表現(xiàn)):成績(jī)(平時(shí)成績(jī)): 指導(dǎo)教師簽名:年 月 日評(píng)閱教師評(píng)語(yǔ):成績(jī)(評(píng)閱成績(jī)): 評(píng)閱教師簽名:年 月 日答辯情況記錄:答辯成績(jī):答辯委員會(huì)主任(或答辯教師小組組長(zhǎng))簽名:年 月 日總評(píng)成績(jī):注:1.此表適用于參加畢業(yè)答辯學(xué)生的畢業(yè)設(shè)計(jì)(報(bào)告)成績(jī)?cè)u(píng)定;2.平時(shí)成績(jī)占20%、卷面評(píng)閱成績(jī)占50%、答辯成績(jī)占30%,在上面的評(píng)分表中,可分別按20分、50分、30分來(lái)量化評(píng)分,三項(xiàng)相加所

3、得總分即為總評(píng)成績(jī),總評(píng)成績(jī)請(qǐng)轉(zhuǎn)換為優(yōu)秀、良好、中等、及格、不及格五等級(jí)計(jì)分。教務(wù)處制鄭重申明本人呈交的畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì)),是在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行實(shí)習(xí)和研究工作所取得的成果,所有數(shù)據(jù)、圖片資料真實(shí)可靠。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì))的成果不包含他人享有著作權(quán)的內(nèi)容。對(duì)本畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì))所涉及的實(shí)習(xí)和研究工作做出貢獻(xiàn)的其他個(gè)人和集體,均已在文中以明確的方式標(biāo)明。本畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì))的知識(shí)產(chǎn)權(quán)歸屬于作者與培養(yǎng)單位。學(xué)生簽名日期2012.04摘要隨著社會(huì)經(jīng)濟(jì)的發(fā)展,城市交通問(wèn)題越來(lái)越引起人們的關(guān)注。人、車(chē)、路三者關(guān)系的協(xié)調(diào),已成為交通管理部門(mén)需要解決的重要問(wèn)

4、題之一。十字路口車(chē)輛穿梭,行人熙攘,車(chē)行車(chē)道,人行人道,有條不紊。那么靠什么來(lái)實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式很多。本系統(tǒng)采用msc-51系列單片機(jī)atsc51和可編程并行i/o接口芯片8255a為中心器件來(lái)設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車(chē)流量通過(guò)8051芯片的p1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩5秒時(shí)黃燈閃爍警示(交通燈信號(hào)通過(guò)pa口輸出,顯示時(shí)間直接通過(guò)8255的pc口輸出至雙位數(shù)碼管);車(chē)輛闖紅燈報(bào)警;綠燈時(shí)間可檢測(cè)車(chē)流量并可通過(guò)雙位數(shù)碼管顯示。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展功能強(qiáng)。 關(guān)鍵詞:?jiǎn)纹瑱C(jī) ;交通燈 ; 闖紅燈 ;

5、檢測(cè)車(chē)流量目 錄1 引言 42 單片機(jī)概述 53 msc-51芯片簡(jiǎn)介 63.1 msc-51芯片簡(jiǎn)介63.2 8255芯片簡(jiǎn)介103.3 74ls373簡(jiǎn)介 114 系統(tǒng)硬件設(shè)計(jì)124.1交通管理的方案論證124.2系統(tǒng)硬件設(shè)計(jì)12421 系統(tǒng)總框圖 13422 交通燈硬件線(xiàn)路圖 13423 系統(tǒng)工作原理13控制器的軟件設(shè)計(jì)155.1每秒鐘的設(shè)定155.2計(jì)數(shù)器硬件延時(shí)155.2.1 計(jì)數(shù)器初值計(jì)算155.2.2 計(jì)算公式 155.2.3 秒的方法 165.2.4 相應(yīng)程序代碼165.3 軟件延時(shí) 165.4 時(shí)間及信號(hào)燈的顯 175.4.1 8051并行口的擴(kuò)展175.4.2 顯示原理18

6、5.4.3 8255pa口輸出信號(hào)接信號(hào)燈 185.4.4 8255輸出信號(hào)與數(shù)碼管的連接185.4.5 8255與8051的連接195.5 程序設(shè)計(jì)195.5.1流程圖如圖所示195.5.2 程序源代碼20結(jié)論25參考文獻(xiàn)26致謝 27 附錄 281 引言當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車(chē)輛最常見(jiàn)和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。1858年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車(chē)通行。這是世界上最早的交通信號(hào)燈。1868年,英國(guó)機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場(chǎng)上,安裝了世界上最早的煤氣紅綠燈。它由紅綠

7、兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó),這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國(guó)道路交通和道路標(biāo)志信號(hào)協(xié)定對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車(chē)輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車(chē)輛都必須讓合法地正在路口內(nèi)行駛的車(chē)輛和過(guò)人行橫道的行人優(yōu)先通行。紅

8、燈是禁行信號(hào),面對(duì)紅燈的車(chē)輛必須在交叉路口的停車(chē)線(xiàn)后停車(chē)。黃燈是警告信號(hào),面對(duì)黃燈的車(chē)輛不能越過(guò)停車(chē)線(xiàn),但車(chē)輛已十分接近停車(chē)線(xiàn)而不能安全停車(chē)時(shí)可以進(jìn)入交叉路口。2 單片機(jī)概述 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),特別適用于控制領(lǐng)域,故又稱(chēng)為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和i/o接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過(guò)1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的cpu功能在增強(qiáng),內(nèi)部資源

9、在增多,引角的多功能化,以及低電壓底功耗。3芯片簡(jiǎn)介3.1 msc-51芯片簡(jiǎn)介mcs-51單片機(jī)內(nèi)部結(jié)構(gòu):8051是mcs-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。 8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(rom)、數(shù)據(jù)存儲(chǔ)器(ram)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線(xiàn)、地址總線(xiàn)和控制總線(xiàn)等三大總線(xiàn),現(xiàn)在我們分別加以說(shuō)明:中央處理器:中央處理器(cpu)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,cpu負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。數(shù)據(jù)存儲(chǔ)器(ram):80

10、51內(nèi)部有128個(gè)8位用戶(hù)數(shù)據(jù)存儲(chǔ)單元和128個(gè)專(zhuān)用寄存器單元,它們是統(tǒng)一編址的,專(zhuān)用寄存器只能用于存放控制指令數(shù)據(jù),用戶(hù)只能訪(fǎng)問(wèn),而不能用于存放用戶(hù)數(shù)據(jù),所以,用戶(hù)能使用的ram只有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶(hù)定義的字型表。圖1程序存儲(chǔ)器(rom):8051共有4096個(gè)8位掩膜rom,用于存放用戶(hù)程序,原始數(shù)據(jù)或表格。定時(shí)/計(jì)數(shù)器(rom):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(i/o)口:8051共有4組8位i/o口(p0、 p1、p2或p3),用于對(duì)外部數(shù)據(jù)的傳輸。全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通

11、信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿(mǎn)足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)12mhz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類(lèi)型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(princeton)結(jié)構(gòu)。intel的mcs-51系列單片機(jī)采用的是哈

12、佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的mcs-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。下圖是mcs-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖2。 圖2圖2mcs-51的引腳說(shuō)明:mcs-51系列單片機(jī)中的8031、8051及8751均采用40pin封裝的雙列直接dip結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線(xiàn)兩根,外置石英振蕩器的時(shí)鐘線(xiàn)兩根,4組8位共32個(gè)i/o口,中斷口線(xiàn)與p3口線(xiàn)復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:如圖3 圖3pin9:reset/vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開(kāi)始工作,在reset引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器pc指

13、向0000h,p0-p3輸出口全部為高電平,堆棧指針寫(xiě)入07h,其它專(zhuān)用寄存器被清“0”。reset由高電平下降為低電平后,系統(tǒng)即從0000h地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變r(jià)am(包括工作寄存器r0-r7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見(jiàn)下圖4。此外,reset/vpd還是一復(fù)用腳,vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部ram的數(shù)據(jù)不丟失。圖4pin30:ale/當(dāng)訪(fǎng)問(wèn)外部程序器時(shí),ale(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪(fǎng)問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ale端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是

14、否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器,ale會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是eprom,在編程其間,將用于輸入編程脈沖。pin29:當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),pc的16位地址數(shù)據(jù)將出現(xiàn)在p0和p2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到p0口上,由cpu讀入并執(zhí)行。pin31:ea/vpp程序存儲(chǔ)器的內(nèi)外部選通線(xiàn),8051和8751單片機(jī),內(nèi)置有4kb的程序存儲(chǔ)器,當(dāng)ea為高電平并且程序地址小于4kb時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò)4kb地址則讀取外部指令數(shù)據(jù)。如ea為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存

15、儲(chǔ)器的8031,ea端必須接地。在編程時(shí),ea/vpp腳還需加上21v的編程電壓。3.2 8255芯片簡(jiǎn)介8255可編程并行接口芯片簡(jiǎn)介:8255可編程并行接口芯片有三個(gè)輸入輸出端口,即a口、b口和c口,對(duì)應(yīng)于引腳pa7pa0、pb7pb0和pc7pc0。其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常a口、b口作為輸入輸出的數(shù)據(jù)端口。c口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個(gè)端口包含一個(gè)4位鎖存器。它們分別與端口a配合使用,可以用作控制信號(hào)輸出或作為狀態(tài)信號(hào)輸入。8255可編程并行接口芯片方式控制字格式說(shuō)明:8255有兩種控制命令字;一個(gè)是方式選擇控制字;另一個(gè)是c口

16、按位置位復(fù)位控制字。其中c口按位置位復(fù)位控制字方式使用較為繁難,說(shuō)明也較冗長(zhǎng),故在此不作敘述,需要時(shí)用戶(hù)可自行查找有關(guān)資料。方式控制字格式說(shuō)明如表1:表1d7d6d5d4d3d2d1d0 d7:設(shè)定工作方式標(biāo)志,1有效。 d6、d5:a口方式選擇 0 0 方式0 0 1 方式1 1 方式2 d4:a口功能 (1=輸入,0=輸出) d3:c口高4位功能 (1=輸入,0=輸出) d2:b口方式選擇 (0=方式0,1=方式1) d1:b口功能 (1=輸入,0=輸出)d0:c口低4位功能 (1=輸入,0=輸出) 8255可編程并行接口芯片工作方式說(shuō)明: 方式0:基本輸入輸出方式。適用于三個(gè)端口中的任何

17、一個(gè)。每一個(gè)端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。 方式1:選通輸入輸出方式。這時(shí)a口或b口的8位外設(shè)線(xiàn)用作輸入或輸出,c口的4條線(xiàn)中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。 方式2 :雙向總線(xiàn)方式。只有a口具備雙向總線(xiàn)方式,8位外設(shè)線(xiàn)用作輸入或輸出,此時(shí)c口的5條線(xiàn)用作通訊聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。3.3 74ls373簡(jiǎn)介74ls373 是一種帶三態(tài)門(mén)的8d鎖存器,其管腳示意圖如下示: 其中:1d-8d為8個(gè)輸入端。 1q-8q為8個(gè)輸出端。 le為數(shù)據(jù)打入端:當(dāng)le為“1”時(shí),鎖存器輸出 狀態(tài)同輸入狀態(tài);當(dāng)le由“1”變“0”時(shí),數(shù)據(jù) 打入鎖存器 oe為輸出允許端:當(dāng)oe

18、=0時(shí),三態(tài)門(mén)打開(kāi); 當(dāng)oe=1時(shí),三態(tài)門(mén)關(guān)閉,輸出高阻。4 系統(tǒng)硬件設(shè)計(jì)4.1交通管理的方案論證東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車(chē)輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車(chē)時(shí)間。設(shè)東西道比南北道的車(chē)流量大,指示燈燃亮的方案如表2。60s5s80s5s東西道紅燈亮黃燈亮綠燈亮黃燈亮南北道綠燈亮黃燈亮紅燈亮黃燈亮 表2表2說(shuō)明: (1)當(dāng)東西方向?yàn)榧t燈,此道車(chē)輛禁止通行,東西道行人可通過(guò);南北道為綠燈,此道車(chē)輛通過(guò),行人禁止通行。時(shí)間為60秒。(2)黃燈閃爍5秒,

19、警示車(chē)輛和行人紅、綠燈的狀態(tài)即將切換。 (3)當(dāng)東西方向?yàn)榫G燈,此道車(chē)輛通行;南北方向?yàn)榧t燈,南北道車(chē)輛禁止通過(guò),行人通行。時(shí)間為80秒。 東西方向車(chē)流大 通行時(shí)間長(zhǎng)。(4)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車(chē)輛就能安全暢通的通行。(5)此表可根據(jù)車(chē)流量動(dòng)態(tài)設(shè)定紅綠燈初始值。4.2系統(tǒng)硬件設(shè)計(jì)選用設(shè)備8031單片機(jī)一片選用設(shè)備:8031彈片機(jī)一片,8255并行通用接口芯片一片,74ls07兩片,max692看門(mén)狗一片,共陰極的七段數(shù)碼管兩個(gè)雙向晶閘管若干,7805三端穩(wěn)壓電源一個(gè),紅、黃、綠交通燈各兩個(gè),開(kāi)關(guān)鍵盤(pán)、連線(xiàn)若干。421 系統(tǒng)總框圖如下:圖6422 交通燈硬件線(xiàn)

20、路圖 (見(jiàn)附錄) 423 系統(tǒng)工作原理(1)開(kāi)關(guān)鍵盤(pán)輸入交通燈初始時(shí)間,通過(guò)8051單片機(jī)p1輸入到系統(tǒng) (2) 由8051單片機(jī)的定時(shí)器每秒鐘通過(guò)p0口向8255的數(shù)據(jù)口送信息,由8255的pa 口顯示紅、綠、黃燈的燃亮情況;由8255的pc口顯示每個(gè)燈的燃亮?xí)r間。 (3)8051通過(guò) 設(shè)置 各個(gè)信號(hào)等的燃亮?xí)r間、通過(guò)8031設(shè)置,綠、紅時(shí)間分別為60秒、80秒循環(huán)由8051的 p0口向8255的數(shù)據(jù)口輸出。(4) 通過(guò)8051單片機(jī)的p3.0位來(lái)控制系統(tǒng)是工作或設(shè)置初值,當(dāng).牌位0就對(duì)系統(tǒng)進(jìn)行初始化,為1系統(tǒng)就開(kāi)始工作。(5)紅燈倒計(jì)時(shí)時(shí)間,當(dāng)有車(chē)輛闖紅燈時(shí),啟動(dòng)蜂鳴器進(jìn)行報(bào)警,3s后然后

21、恢復(fù)正常。(6)增加每次綠燈時(shí)間車(chē)流量檢測(cè)的功能,并且通過(guò)查詢(xún)p2.0端口的電平是否為低,開(kāi)關(guān)按下為低電平,雙位數(shù)碼管顯示車(chē)流量,直到下一次綠燈時(shí)間重新記入。(7)綠燈時(shí)間倒計(jì)時(shí)完畢,重新循環(huán)??刂破鞯能浖O(shè)計(jì)5.1每秒鐘的設(shè)定 延時(shí)方法可以有兩種一中是利用mcs-51內(nèi)部定時(shí)器才生溢出中斷來(lái)確定1秒的時(shí)間,另一種是采用軟延時(shí)的方法。5.2計(jì)數(shù)器硬件延時(shí)5.2.1 計(jì)數(shù)器初值計(jì)算 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到th和tl中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿(mǎn)為零所需的計(jì)數(shù)值設(shè)定為c和計(jì)數(shù)初值設(shè)定為tc 可得到如下計(jì)算通式:

22、 tc=m-c式中,m為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)m為213 ;在方式1時(shí)m的值為216;在方式2和3為285.2.2 計(jì)算公式t=(mtc)t計(jì)數(shù)或t計(jì)數(shù)t計(jì)數(shù)是單片機(jī)時(shí)鐘周期的倍;為定時(shí)初值如單片機(jī)的主脈沖頻率為,經(jīng)過(guò)分頻方式213微秒毫秒方式216微秒毫秒顯然秒鐘已經(jīng)超過(guò)了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問(wèn)題5.2.3 秒的方法我們采用在主程序中設(shè)定一個(gè)初值為的軟件計(jì)數(shù)器和使定時(shí)毫秒這樣每當(dāng)?shù)胶撩霑r(shí)就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,先使軟件計(jì)數(shù)器減,然后判斷它是否為零。為零表示秒已到可以返回到

23、輸出時(shí)間顯示程序。5.2.4相應(yīng)程序代碼()主程序定時(shí)器需定時(shí)毫秒,故工作于方式。初值: t計(jì)數(shù)ms/1us=15536=3cboh org 1000h start: mov tmod, #01h ; 令為定時(shí)器方式 mov th0, #3ch ;裝入定時(shí)器初值 mov tl0, #boh; mov ie,#82h ;開(kāi)中斷 sebt to;啟動(dòng)計(jì)數(shù)器 mov ro,#14h;軟件計(jì)數(shù)器賦初值loop:sjmp $;等待中斷)中斷服務(wù)子程序 :djnz ,ajmp time ; 跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序 djnz:,;恢復(fù)值 mov th0, #3ch ;重裝入定時(shí)器初值 mov tl0,

24、 #boh; mov ie,#82h 5.3 軟件延時(shí)mcs-51的工作頻率為2-12mhz,我們選用的8031單片機(jī)的工作頻率為6mhz。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/6m)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過(guò)指令的執(zhí)行條數(shù)來(lái)確定1秒的時(shí)間。 具體的延時(shí)程序分析: delay:mov r4,#08h 延時(shí)1秒子程序 de2:lcall delay1 djnz r4,de2 retdelay1:mov r6,#0 延時(shí)125ms 子程序 mov r5,#0de1: djnz r5,$ djnz r6,de1 ret m

25、ov rn,#data 字節(jié)數(shù)數(shù)為2 機(jī)器周期數(shù)為1所以此指令的執(zhí)行時(shí)間為2ms delay1 為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2=131072us 約為125us delay r4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。5.4 時(shí)間及信號(hào)燈的顯示5.4.1 8051并行口的擴(kuò)展 8051雖然有4個(gè)8位i/o端口,但真正能提供借用的只有p1口,因?yàn)閜2和p0口通常用于傳送外部傳送地址和數(shù)據(jù),p3口也有它的第二功能。因此,8031通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠

26、燈倒計(jì)時(shí)初值、數(shù)碼管的輸出顯示、紅綠黃信號(hào)燈的顯示都要用到一個(gè)i/o端口,顯然8031的端口是不夠,需要擴(kuò)展。 擴(kuò)展的方法有兩種:(1)借用外部ram地址來(lái)擴(kuò)展i/o端口;(2)采用i/o接口新片來(lái)擴(kuò)充。我們用8255并行接口信片來(lái)擴(kuò)展i/o端口。5.4.2顯示原理:當(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ù)器賦初值 ,重新進(jìn)入循環(huán)。 5.4.3 8255pa口輸出信號(hào)接信號(hào)燈: 由于發(fā)光二極管為共陽(yáng)極接法,輸出端口為低電

27、平,對(duì)應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃發(fā)光二極管。5.4.4 8255輸出信號(hào)與數(shù)碼管的連接:led 燈的顯示原理:通過(guò)同名管腳上所加電平的高低來(lái)控制發(fā)光二極管是否點(diǎn)量而顯示不同的字形如 sp,g,f,e,d,c,b,a 管角上加上所以上為伏,不亮其余為高電平,全亮則顯示為采用共陰級(jí)連接:其中 pc0pb0-a,pc1pb1-b, pc2pb2-c,pc3pb3-d,pc4pb4-e, pc5pb5-f,pc6pb6-gpc7pb7 -sp接地顯示數(shù)值dop g f e d c b a驅(qū)動(dòng)代碼(16進(jìn)制)00 0 1 1 1 1 1 13fh10 0 0 0 0 1 1 006

28、h20 1 0 1 1 0 1 15bh30 1 0 0 1 1 1 14fh40 1 1 0 0 1 1 066h50 1 1 0 1 1 0 06dh60 1 1 1 1 1 0 07dh70 0 0 0 0 1 1 107h80 1 1 1 1 1 1 17fh表 3 驅(qū)動(dòng)代碼表5.4.5 8255與8051的連接:用8051的p0 口的 p0.7 連接8255的片選信號(hào)cs 我們用8031的地址采用全譯碼方式,當(dāng)p0.7 =0 時(shí)片選有效, 其他無(wú)效, p0.1 p0.1 用于選擇8255端口 p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0a7 a6 a

29、5 a4 a3 a2 a1 a01 x x x x x 0 0 00h為8255 的pa口1 x x x x x 0 1 01h 為8255的pb口1 x x x x x 1 0 02h 為8255的pc口1 x x x x x 1 1 03h 為8255的控制口由于8051是分時(shí)對(duì)8255和儲(chǔ)存器進(jìn)行訪(fǎng)問(wèn)所以8051的p0口不會(huì)發(fā)生沖突5.5 程序設(shè)計(jì)5.5.1流程圖如圖所示開(kāi)始初始化等待鍵盤(pán)事件 顯示程序處理鍵盤(pán)事件處理 圖8圖9 程序流程圖5.5.2 程序源代碼 org 0000h ;主程序的入口地址 ljmp main ;跳轉(zhuǎn)到主程序的開(kāi)始處 org 0003h ;外部中斷0的中斷程序

30、入口地址 org 000bh ;定時(shí)器0的中斷程序入口地址 ljmp t0_int ;跳轉(zhuǎn)到中斷服務(wù)程序處 org 0013h ;外部中斷1的中斷程序入口地址 main : mov sp,#50h mov ie,#8eh ;cpu開(kāi)中斷,允許t0中斷,t1中斷和外部中斷1中斷 mov tmod,#51h ;設(shè)置t1為計(jì)數(shù)方式,t0為定時(shí)方式,且都工作于模式1 mov th1,#00h ;t1計(jì)數(shù)器清零 mov tl1,#00h setb tr1 ;啟動(dòng)t1計(jì)時(shí)器 setb ex1 ;允許int1中斷 setb it1 ;選擇邊沿觸發(fā)方式 mov dptr ,#0003h mov a, #80h

31、 ;給8255賦初值,8255工作于方式0 movx dptr, aagain: jb p3.1,n0 ;判斷是否要設(shè)定東西方向紅綠燈時(shí)間的初值,若p3.1為1 則跳轉(zhuǎn) mov a,p1 jb p1.7,red ;判斷p1.7是否為1,若為1則設(shè)定紅燈時(shí)間,否則設(shè)定綠燈時(shí)間 mov r0,#00h ;r0清零 mov r0,a ;存入東西方向綠燈初始時(shí)間 mov r3,a lcall disp1 lcall delay ajmp againred: mov a,p1 anl a,#7fh ;p1.7置0 mov r7,#00h ;r7清零 mov r7,a ;存入東西方向紅燈初始時(shí)間 mov

32、r3,a lcall disp1 lcall delay ajmp again;-n0: setb tr0 ;啟動(dòng)t0計(jì)時(shí)器 mov 76h,r7 ;紅燈時(shí)間存入76hn00: mov a,76h ;東西方向禁止,南北方向通行 mov r3,a mov dptr,#0000h ;置8255a口,東西方向紅燈亮,南北方向綠燈亮 mov a,#0ddh movx dptr, an01: jb p2.0,b0n02: setb p3.0 cjne r3,#00h,n01 ;比較r3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行;-黃燈閃爍5秒程序-n1: setb p3.0 mov r3,#05h mov

33、 dptr,#0000h ;置8255a口,東西,南北方向黃燈亮 mov a,#0d4h movx dptr,an11: mov r4,#00hn12: cjne r4,#7dh,$ ;黃燈持續(xù)亮0.5秒n13: mov dptr,#0000h ; 置8255a口,南北方向黃燈滅 mov a,#0ddh movx dptr,an14: mov r4,#00h cjne r4,#7dh,$ ;黃燈持續(xù)滅0.5秒 cjne r3,#00h,n1 ;閃爍時(shí)間達(dá)5秒則退出;-n2: mov r7,#00h mov a,r0 ;東西通行,南北禁止 mov r3,a mov dptr,#0000h ; 置

34、8255a口,東西方向綠燈亮,南北方向紅燈亮 mov a,#0ebh movx dptr,an21: jb p2.0,t03 n22: cjne r3,#00h,n21;-黃燈閃爍5秒程序-n3: mov r3,#05h mov dptr,#0000h ;置8255a口,東西,南北方向黃燈亮 mov a,#0e2h movx dptr,an31: mov r4,#00h cjne r4,#7dh,$ ;黃燈持續(xù)亮0.5秒n32: mov dptr,#0000h ; 置8255a口,南北方向黃燈滅 mov a,#0ebh movx dptr,an33: mov r4,#00h cjne r4,#

35、7dh,$ ;黃燈持續(xù)滅0.5秒 cjne r3,#00h,n3 ;閃爍時(shí)間達(dá)5秒則退出 sjmp n00;-闖紅燈報(bào)警程序-b0: mov r2,#03h ;報(bào)警持續(xù)時(shí)間3秒b01: mov a,r3 jz n1 ;若倒計(jì)時(shí)完畢,不再報(bào)警 clr p3.0 ;報(bào)警 cjne r2,#00h,b01 ;判斷3秒是否結(jié)束 sjmp n02;-1秒延時(shí)子程序-n7: retit0_int:mov tl0,#9ah ;給定時(shí)器t0送定時(shí)10ms的初值 mov th0,#0f1h inc r4 inc r5 cjne r5,#0fah,t01 ;判斷延時(shí)是否夠一秒,不夠則調(diào)用顯示子程序 mov r5,

36、#00h ;r5清零 dec r3 ;倒計(jì)時(shí)初值減一 dec r2 ;報(bào)警初值減一t01: acall disp ;調(diào)用顯示子程序 reti ;中斷返回;-顯示子程序-disp: jnb p2.4,t02disp1: mov b,#0ah mov a,r3 ;r3中值二轉(zhuǎn)十顯示轉(zhuǎn)換 div ab mov 79h,a mov 7ah,bdis: mov a,79h ;顯示十位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0f7h movx dptr,a lcall delayds2:

37、 mov a,7ah ;顯示個(gè)位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0fbh movx dptr,a ret;-東西方向車(chē)流量檢測(cè)程序-t03: mov a,r3 subb a,#00h ;若綠燈倒計(jì)時(shí)完畢,不再檢測(cè)車(chē)流量 jz n3 jb p2.0,t03 inc r7 cjne r7,#64h,e1 mov r7,#00h ;中斷到100次則清零e1: sjmp n22;-東西方向車(chē)流量顯示程序-t02: mov b,#0ahmov a,r7 ;r7中值二轉(zhuǎn)十顯示轉(zhuǎn)換 div ab mov 79h,a mov 7ah,bdis3: mov a,79h ;顯示十位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0f7h movx dptr,a lcall delayds

溫馨提示

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

評(píng)論

0/150

提交評(píng)論