




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
..目錄TOC\o"1-3"\h\u1819摘要1155011系統(tǒng)硬件設(shè)計(jì) 2281651.180C51單片機(jī)引腳圖及引腳功能介紹 2259531.274LS245引腳圖及功能462561.3八段LED數(shù)碼管 5160121.4硬件系統(tǒng)總控制電路 6118571.5各模塊控制電路 863701.5.1交通燈控制電路 8191961.5.2倒計(jì)時(shí)顯示電路 9166321.5.3緊急通行電路 12217841.5.4聲音警示裝置 1396502系統(tǒng)程序設(shè)計(jì) 14326142.1主程序流程圖 14308362.2顯示子程序流程圖 15176473心得體會(huì)166852參考文獻(xiàn) 179546附錄源程序 18..摘要近年來隨著科技的飛速開展,一個(gè)以微電子技術(shù)、計(jì)算機(jī)技術(shù)和通信技術(shù)為先導(dǎo)的信息革命正在蓬勃開展。計(jì)算機(jī)技術(shù)作為三者之一,怎樣與實(shí)際應(yīng)用更有效的結(jié)合并發(fā)揮其作用。單片機(jī)作為計(jì)算機(jī)技術(shù)的一個(gè)分支,正在不斷的應(yīng)用到實(shí)際生活中,同時(shí)帶動(dòng)傳統(tǒng)控制檢測的更新。在實(shí)時(shí)檢測和自動(dòng)控制的應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件使用,針對(duì)具體應(yīng)用對(duì)象的特點(diǎn),配以其它器件來加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)交通的井然秩序呢?靠的是交通信號(hào)燈的自動(dòng)指揮系統(tǒng),來實(shí)現(xiàn)交通的井然有序。交通信號(hào)燈控制方式很多。本系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)AT80S51,以及其它芯片來設(shè)計(jì)交通燈控制。實(shí)現(xiàn)了通過AT89S51芯片的P1口設(shè)置紅、綠燈點(diǎn)亮的功能,輸出設(shè)置顯示時(shí)間。交通燈的點(diǎn)亮采用發(fā)光二極管實(shí)現(xiàn),時(shí)間的顯示采用七段數(shù)碼管實(shí)現(xiàn)。單片機(jī)系統(tǒng)采用的直流供電。關(guān)鍵詞:AT89S51單片機(jī);智能交通燈控制系統(tǒng);基于51單片機(jī)智能交通燈設(shè)計(jì)1系統(tǒng)硬件設(shè)計(jì)1.180C51單片機(jī)引腳圖及引腳功能介紹80C51系列中,用CHMOS工藝制造的單片機(jī)都采用雙列直插式〔DIP〕40腳封裝,引腳信號(hào)完全一樣。圖1-1為引腳圖圖1-180C51引腳圖這40根引腳大致可分為:電源〔VCC、VSS、VPP、VPD〕、時(shí)鐘〔XTAL1、XTAL2〕、I/O口〔P0~P3〕、地址總線〔P0口、P2口〕和控制總線〔ALE、RST、、、〕等幾局部。它們的功能簡述如下:1.電源Vcc〔引腳號(hào)40〕,芯片電源,接+5V;Vss〔引腳號(hào)20〕,電源接地端。2.時(shí)鐘XTAL1〔引腳號(hào)18〕部振蕩電路反相放大器的輸入端,是外接晶振的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此引腳接地。XTAL2〔引腳號(hào)19〕部振蕩器的反相放大器輸出端,是外接晶振的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接外部振蕩源。3.控制總線〔1〕ALE/〔引腳號(hào)30〕:正常操作時(shí)為ALE功能〔允許地址鎖存〕,用來把地址的低字節(jié)鎖存到外部鎖存器。ALE引腳以不變的頻率〔振蕩器頻率的1/6〕周期性地發(fā)出正脈沖信號(hào)。因此,它可用作對(duì)外輸出的時(shí)鐘信號(hào)或用于定時(shí)。但要注意,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。ALE端可以驅(qū)動(dòng)〔吸收或輸出電流〕8個(gè)LSTTL電路。在8751單片機(jī)EPROM編程期間,此引腳接編程脈沖〔功能〕。〔2〕〔引腳號(hào)29〕:外部程序存儲(chǔ)器讀選通信號(hào)。在從外部程序存儲(chǔ)器取指令〔或數(shù)據(jù)〕期間,在每個(gè)機(jī)器周期兩次有效??梢则?qū)動(dòng)8個(gè)LSTTL電路。〔3〕RST/VPD〔引腳號(hào)9〕:復(fù)位信號(hào)輸入端。振蕩器工作時(shí),該引腳上持續(xù)2個(gè)機(jī)器周期的高電平可實(shí)現(xiàn)復(fù)位操作。此引腳還可接上備用電源。在Vcc掉電期間,由向部RAM提供電源,以保持部RAM中的數(shù)據(jù)。〔4〕/Vpp〔引腳號(hào)31〕:為部程序存儲(chǔ)器和外部程序存儲(chǔ)器的選擇端。當(dāng)為高電平時(shí),訪問部程序存儲(chǔ)器〔PC值小于4K〕;當(dāng)為低電平時(shí),訪問外部程序存儲(chǔ)器。對(duì)于87C51單片機(jī),在EPROM編程期間,此端為21V編程電源輸入端。4.I/O線〔1〕P0口〔引腳號(hào)32~39〕:單片機(jī)的雙向數(shù)據(jù)總線和低8位地址總線。在訪問外部存儲(chǔ)器時(shí)實(shí)現(xiàn)分時(shí)操作,先用作地址總線,在ALE信號(hào)的下降沿,地址被鎖存;然后用作為數(shù)據(jù)總線。它也可以用作雙向輸入/輸出口。P0口能驅(qū)動(dòng)8個(gè)LSTTL負(fù)載?!?〕P1口〔引腳號(hào)1~8〕:準(zhǔn)雙向輸入/輸出口,它能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載?!?〕P2口〔引腳號(hào)21~28〕:準(zhǔn)雙向輸入/輸出口。在訪問外部存儲(chǔ)器時(shí),用作高8位地址總線。P2口能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。〔4〕P3口〔引腳號(hào)10~17〕:準(zhǔn)雙向輸入/輸出口,它能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。P3口的每一引腳還有另外一種功能:P3.0——RXD:串行口輸入端P3.1——TXD:串行口輸出端P3.2——:外部中斷0中斷請(qǐng)求輸入端P3.3——:外部中斷1中斷請(qǐng)求輸入端P3.4——T0:定時(shí)器/計(jì)數(shù)器0外部輸入端P3.5——T1:定時(shí)器/計(jì)數(shù)器1外部輸入端P3.6——:外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)P3.7——:外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)1.274LS245引腳圖及功能74LS245是我們常用的芯片,用來驅(qū)動(dòng)led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。它的功能引腳圖如圖1-2所示。圖1-274LS245引腳圖74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當(dāng)8051單片機(jī)的P0口總線負(fù)載到達(dá)或超過P0最大負(fù)載能力時(shí),必須接入74LS245等總線驅(qū)動(dòng)器。當(dāng)片選端/CE低電平有效時(shí),DIR="0〞,信號(hào)由B向A傳輸;〔接收〕DIR="1〞,信號(hào)由A向B傳輸;〔發(fā)送〕當(dāng)CE為高電平時(shí),A、B均為高阻態(tài)。由于P2口始終輸出地址的高8位,接口時(shí)74LS245的三態(tài)控制端1G和2G接地,P2口與驅(qū)動(dòng)器輸入線對(duì)應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時(shí),74LS245輸入〔P0.1←D1〕,其它時(shí)間處于輸出〔P0.1→D1〕。1.3八段LED數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長、維護(hù)簡便等優(yōu)點(diǎn)。LED數(shù)碼管的構(gòu)造簡單,分為七段和八段兩種形式,也有共陽和共陰之分。以八段共陽管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來顯示dP,即點(diǎn)),每個(gè)發(fā)光二極管的陽極連在一起,如圖1-3所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的上下電平來加以控制。為方便起見,本文主要討論共陽八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。圖1-3八段共陽管示意圖LED燈的顯示原理:通過同名管腳上所加電平的上下來控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如dp,g,f,e,d,c,b,a全亮顯示為8,采用共陽極連接驅(qū)動(dòng)代碼,代碼表如表1所示。表1驅(qū)動(dòng)代碼表顯示數(shù)值dp,g,f,e,d,c,b,a驅(qū)動(dòng)代碼011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H相應(yīng)在程序軟件上,可以通過調(diào)用程序給定的秒值經(jīng)過特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取LEDMAP的代碼。LED8段數(shù)碼管的設(shè)置為每個(gè)方位上的一對(duì)2為顯示器。四個(gè)方位上總共用4個(gè)LED接在單片機(jī)的IO口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的IO口是對(duì)稱的。1.4硬件系統(tǒng)總控制電路本系統(tǒng)以單片機(jī)為核心,系統(tǒng)硬件電路由狀態(tài)燈,LED顯示,按鍵,組成。其具體的硬件電路總原理圖如圖1-4所示。其中P0用于送顯四片LED數(shù)碼管,P2用于控制紅綠黃發(fā)光二極管,P1.0,P1.1,與P1.1和P1.2對(duì)數(shù)碼管進(jìn)展片選,P3口為緊急情況處理按鍵,既根據(jù)車流量控制紅綠黃發(fā)光二極管通斷時(shí)間。系統(tǒng)上電或手動(dòng)復(fù)位之后,系統(tǒng)先顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值送顯P2口,將要顯示的時(shí)間值的個(gè)位和十位分別送顯P0口,在此同時(shí)用軟件方法計(jì)時(shí)1秒,到達(dá)1s就要將時(shí)間值減1,刷新LED數(shù)碼管。時(shí)間到達(dá)一個(gè)狀態(tài)所要全部時(shí)間,那么要進(jìn)展下一狀態(tài)判斷及銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時(shí)間值,當(dāng)然,還要開啟三個(gè)外部中斷,其一為全部路口緊急情況處理中斷,一旦信號(hào)有效,即按鍵為低電平時(shí)進(jìn)入中斷效勞子程序,東西南北路口的狀態(tài)制止通行。其二為東西方向或南北方向制止通行,一旦信號(hào)有效將進(jìn)入相應(yīng)中斷效勞子程序,某一方向狀態(tài)制止通行。其三為通行時(shí)間調(diào)整中斷,假設(shè)按鍵有效,進(jìn)入相應(yīng)的中斷子程序,對(duì)時(shí)間進(jìn)展調(diào)整,可延長或減少某一路段的通行時(shí)間,此后再按確定鍵那么中斷完畢返回。圖1-4控制系統(tǒng)總原理圖1.5各模塊控制電路1.5.1交通燈控制電路這里我們采用發(fā)光二極管作為交通燈來使用,單片機(jī)的I/O接口直接和交通燈〔發(fā)光二極管〕連接。在十字路口的四組紅、黃、綠三色交通燈中,東西方向道路上的兩組同色燈連接在一起,南北方向道路上的兩組同色的燈也彼此連接在,控制受單片機(jī)P2.1~P2.6控制。單片機(jī)的I/O接口與交通燈電路的具體連接方式為:P2.1~P2.3分別接?xùn)|西方向的紅、黃、綠共6個(gè)放光二極管,P2.4~P2.6分別接南北方向的紅、黃、綠共6個(gè)發(fā)光二極管。12個(gè)發(fā)光二極管采用了共陰極的連接方式,因此I/O口輸出高電平時(shí),與之相連的發(fā)光二極管會(huì)亮,I/O口輸出低電平是,相應(yīng)的發(fā)光二極管會(huì)滅。初始東西綠燈亮,南北紅燈亮,東西路口車通行,時(shí)隔20s,黃燈閃爍5次。之后,南北綠燈亮,東西紅燈亮,方向開場通車,時(shí)隔20s,南北黃燈閃爍5次,然后又切換成東西方向通車,如此重復(fù)。當(dāng)某一方向發(fā)生交通意外或者需要停頓方向通行是,這一方向亮紅燈。處理完之后,按下確定鍵,重新按上述方式工作。當(dāng)發(fā)生交通意外(中斷產(chǎn)生)時(shí),全部亮紅燈,進(jìn)展交通事故的處理。當(dāng)事故處理完畢,按下確定鍵,重新按上述方式工作。當(dāng)南北路口的流量大時(shí),可以增加南北路口亮綠燈的時(shí)間,當(dāng)東西路口的流量大時(shí),可以增加?xùn)|西路口亮綠燈的時(shí)間,完畢后調(diào)回正常狀態(tài)。交通燈電路如圖1-5所示。圖1-5交通燈電路1.5.2倒計(jì)時(shí)顯示電路倒計(jì)時(shí)顯示可以提醒駕駛員在信號(hào)燈燈色發(fā)生改變的時(shí)間、在"停頓〞和"通過〞兩者間作出適宜的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號(hào)控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更平安。倒計(jì)時(shí)顯示是用來減少駕駛員在信號(hào)燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的1種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在"停頓〞和"通過〞兩者間作出適宜的選擇。四個(gè)路口的計(jì)時(shí)顯示都是由P0口控制,又P1口的P1.0~P1.2片選這些顯示管,而東西兩個(gè)方向的顯示時(shí)間一樣,南北方向時(shí)間也一樣,片選信號(hào)能控制東西也南北顯示不同的時(shí)間。當(dāng)某一方向?yàn)榫G燈時(shí),在綠燈倒計(jì)時(shí)完畢后會(huì)再顯示一個(gè)5S的倒計(jì)時(shí),以供黃燈顯示使用。顯示管連接圖如圖1-5所示。在單片機(jī)與顯示器之間加了一個(gè)8*4.7k的排阻與一個(gè)74LS245芯片,排阻的作用是上拉電阻,防止電流過高燒掉顯示管,起到保護(hù)顯示管的作用,其連接圖如圖1-6所示。74LS245的作用是驅(qū)動(dòng)顯示管點(diǎn)亮。其連接圖如圖1-7所示。圖1-5顯示管連接圖圖1-6排阻連接圖圖1-774LS245驅(qū)動(dòng)芯片連接圖1.5.3緊急通行電路該電路為緊急情況和根據(jù)車流量調(diào)節(jié)紅綠燈時(shí)間長度控制電路。通過單片機(jī)的P3.1~P3.7口的七個(gè)接口來控制。在緊急情況下,需要停頓所有方向上的車的行駛,按下P3.1接口上的開關(guān),接低電平,使其發(fā)生作用,發(fā)出令所有路口的紅燈點(diǎn)亮的脈沖,制止所有車輛通行。當(dāng)需要制止東西方向或者南北方向通行時(shí),按下P3.2或者P3.3可以使其方向上的紅燈亮起,制止該方向車輛通行,而另一方向上那么綠燈常量,車輛通行。例如,按下P3.2上的開關(guān),此時(shí)南北方向上的紅燈常亮,而東西方向上綠燈常亮,這就起到了南北制止東西通行的效果,按下P3.3上的開關(guān)那么與之相反。有時(shí)候某個(gè)方向上的車流量比擬大,另一個(gè)方向上的車流量比擬少,這就需要調(diào)整通行時(shí)間,P3.5是加時(shí)間端口,P3.6為減時(shí)間端口,按下一次開關(guān)那么會(huì)增加或者減少1S,P3.7接的是切換方向開關(guān),按下開關(guān)可以切換方向時(shí)間的調(diào)整,例如現(xiàn)在切換開關(guān)是東西方向,而東西方向車流量比擬少,南北方向車流量比擬大,這就需要增加南北方向通行時(shí)間,減少東西方向通行時(shí)間。首先通過P3.6口減少東西方向通行時(shí)間,然后按下切換方向鍵,這就切換到了南北方向時(shí)間調(diào)整狀態(tài),這是按下P3.5,可以增加通行時(shí)間。P3.4為確定鍵,也可以稱之為復(fù)位鍵,要解除制止時(shí),按下確認(rèn)鍵就可回到正常工作狀態(tài),當(dāng)時(shí)間調(diào)整完畢后,也可以通過確認(rèn)鍵回到工作狀態(tài)。控制電路圖如圖1-8所示。圖1-6按鍵電路控制電路圖1.5.4聲音警示裝置當(dāng)發(fā)生緊急情況需要全面停頓通行時(shí),需要聲音警示裝置來提醒車輛,這個(gè)警示裝置由P3.0口控制,其電路圖如圖1-7所示。圖1-7聲音警示控制電路2系統(tǒng)程序設(shè)計(jì)2.1主程序流程圖開場開場東西亮綠燈,南北亮紅燈東西準(zhǔn)行,南北禁行顯示子程序系統(tǒng)初始化掃描鍵盤鍵按下有調(diào)用鍵盤子程序東西亮綠燈,南北亮紅燈同時(shí)黃燈進(jìn)展閃爍調(diào)用鍵盤子程序掃描鍵盤顯示子程序東西準(zhǔn)行,南北禁行東西,南北方向換向有鍵按下YNY圖2-1主程序路程圖2.2顯示子程序流程圖開場開場取倒計(jì)時(shí)數(shù)值取倒計(jì)時(shí)數(shù)值從P1.0到P1.3取各個(gè)方向控制十位個(gè)位從P1.0到P1.3取各個(gè)方向控制十位個(gè)位從P0口獲取數(shù)碼顯示值從P0口獲取數(shù)碼顯示值返回返回圖2-2顯示子程序流程圖3心得體會(huì)這次課程設(shè)計(jì),我們小組做的智能交通等控制系統(tǒng)。如往常每一次實(shí)訓(xùn),我獲得了很大的收獲。首先,我要說說我學(xué)到的團(tuán)隊(duì)精神,這次課設(shè)需要多人協(xié)作完成,我有幸找到三位認(rèn)真負(fù)責(zé)且樂于交流討論的隊(duì)友。這次選交通燈為題目來做課設(shè)一是經(jīng)歷缺乏,二是信心缺乏。通過這次課設(shè),我既積累了經(jīng)歷,也獲取了信心,今后會(huì)找尋時(shí)機(jī)再做一些與拖動(dòng)相關(guān)的電子設(shè)計(jì),因?yàn)槲覀冏詣?dòng)化專業(yè)和電機(jī)是息息相關(guān)的,很大程度研究的是電機(jī)的拖動(dòng)問題。通過這兩周的單片機(jī)課程設(shè)計(jì),我們運(yùn)用所學(xué)的知識(shí),利用單片機(jī)控制原理設(shè)計(jì)了一個(gè)交通燈控制系統(tǒng),我們對(duì)單片機(jī)有了更深的體會(huì)。我們了解和掌握了一些簡單的編程思想和對(duì)I/O口的使用。這次課設(shè)通過單片機(jī)的I/O口來控制交通燈。實(shí)現(xiàn)一些具體的功能和對(duì)特殊情況的處理。通過這次的實(shí)踐,我們對(duì)單片機(jī)的I/O口的使用的條件有更深的理解,對(duì)單片機(jī)的各個(gè)管腳功能的理解也加深了,以及在常用編程設(shè)計(jì)思路技巧,特別是匯編語言的掌握方面都能向前邁了一大步。這次的課程設(shè)計(jì)讓我們把單片機(jī)的理論知識(shí)用在實(shí)踐中,實(shí)現(xiàn)了理論和實(shí)踐相結(jié)合,從中更懂得理論是實(shí)踐的根底,實(shí)踐有著能檢驗(yàn)理論的正確性,讓我們受益非淺,對(duì)我們以后參加工作或者繼續(xù)學(xué)習(xí)將會(huì)產(chǎn)生巨大的幫助和影響。在課設(shè)過程中遇到的硬件和軟件問題都通過詢問教師、同學(xué)和去圖書館、上網(wǎng)得到了解決。參考文獻(xiàn)[1]大欽電子技術(shù)根底實(shí)驗(yàn)[M].:高等教育2004[2]梓城電子技術(shù)實(shí)訓(xùn)[M].:機(jī)械工業(yè)2003[3]吳黎明單片機(jī)原理及應(yīng)用技術(shù)[M].:科學(xué)2003[4]學(xué)海標(biāo)準(zhǔn)80C51單片機(jī)根底教程[M].:航空航天大學(xué)2006[5]樂善微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].:華中科技大學(xué)2004[6]炳權(quán)曾慶六EDA技術(shù)實(shí)用教程[M].:大學(xué)2010[7]先鋒工作室.單片機(jī)程序?qū)嵗齕M].:清華大學(xué),2002.[8]伯成.基于MCS-51單片機(jī)的嵌入式系統(tǒng)的設(shè)計(jì)[M].:電子工業(yè),2004.[9]吳洪潭,肖艷萍,偉國.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)[M].:國防工業(yè),2005.[10]吳黎明,王桂棠,洪添勝,等.單片機(jī)原理及應(yīng)用技術(shù)[M].:科學(xué),2005.附錄源程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintuchardatabuf[4];uchardatasec_dx=20;//東西數(shù)默認(rèn)uchardatasec_nb=30;//南北默認(rèn)值uchardataset_timedx=20;uchardataset_timenb=30;intn;uchardatacountt0;//定時(shí)器0中斷次數(shù)//定義5組開關(guān)sbitk4=P3^7;//切換方向sbitk1=P3^5; //時(shí)間加sbitk2=P3^6; //時(shí)間減sbitk3=P3^4; //確認(rèn)sbitk5=P3^1; //制止//P3^2 //只允許東西方向通行,中斷0//P3^3 //只允許南北方向通行,中斷1sbitYellow_nb=P2^5; //南北黃燈標(biāo)志sbitYellow_dx=P2^2; //東西黃燈標(biāo)志sbitGreen_nb=P2^4;sbitGreen_dx=P2^1;sbitBuzz=P3^0; bitBuzzer_Indicate;bittime=0; //燈狀態(tài)循環(huán)標(biāo)志bitset=1; //調(diào)時(shí)方向切換鍵標(biāo)志ucharcodetable[11]={ //共陰極字型碼 0x3f,//--0 0x06,//--1 0x5b,//--2 0x4f,//--3 0x66,//--4 0x6d,//--5 0x7d,//--6 0x07,//--7 0x7f,//--8 0x6f,//--9 0x00//--NULL};//函數(shù)的聲明局部voiddelay(intms); //延時(shí)子程序voidkey(); //按鍵掃描子程序voidkey_to1(); //鍵處理子程序voidkey_to2();voidkey_to3();voiddisplay(); //顯示子程序voidlogo(); //開機(jī)LOGOvoidBuzzer();//主程序voidmain(){ TMOD=0X11; //定時(shí)器設(shè)置 TH0=0X3C; //定時(shí)器0置初值0.05S TL0=0XB0; EA=1; //開總中斷 ET0=1; //定時(shí)器0中斷開啟 TR0=1; //啟動(dòng)定時(shí)0 EX0=1; //開外部中斷0 EX1=1; //開外部中斷1logo(); P2=0Xc3; //開場默認(rèn)狀態(tài),東西綠燈,南北黃燈sec_nb=sec_dx+5; //默認(rèn)南北通行時(shí)間比東西多5秒 while(1) { key(); //調(diào)用按鍵掃描程序 display(); //調(diào)用顯示程序 Buzzer(); } }//函數(shù)的定義局部voidkey() //按鍵掃描子程序{ if(k1!=1) //時(shí)間加按下時(shí) { delay(10); //延時(shí)消抖 if(k1!=1) { while(k1!=1) //當(dāng)按鍵未彈起時(shí),一直執(zhí)行 { key_to1(); //調(diào)用按鍵1功能 for(n=0;n<40;n++) //調(diào)用40次顯示,用于延時(shí) {display();} } } } if(k2!=1) //當(dāng)K2按鍵按下時(shí) { delay(10); //延時(shí)消抖 if(k2!=1) { while(k2!=1) //按鍵按下未彈起時(shí)一直執(zhí)行 { key_to2(); //調(diào)用key2功能 for(n=0;n<40;n++) //調(diào)用40次顯示,用于延時(shí) {display();} } } } if(k3!=1) //當(dāng)K3〔確認(rèn)〕鍵按下時(shí) { TR0=1; //啟動(dòng)定時(shí)器 Buzzer_Indicate=0; sec_nb=set_timenb; //從中斷回復(fù),仍顯示設(shè)置過的數(shù)值 sec_dx=set_timedx; //顯示設(shè)置過的時(shí)間 if(set==1) //時(shí)間倒時(shí)到0時(shí) { // P2=0X99; //東西紅燈,南北綠燈 sec_nb=sec_dx+5; //回到初值 } else { // P2=0xC3; //東西綠燈,南北紅燈 sec_dx=sec_nb+5; } } if(k4!=1) //當(dāng)K4〔切換〕鍵按下{ delay(5); //延時(shí)消抖 if(k4!=1) { while(k4!=1); set=!set; //取反set標(biāo)志位,以切換調(diào)節(jié)方向 } } if(k5!=1) //當(dāng)K5〔制止〕鍵按下時(shí) { delay(5); //延時(shí)消抖 if(k5!=1) { while(k5!=1) key_to3(); } }}voiddisplay()//顯示子程序{ buf[1]=sec_dx/10; //第1位東西秒十位 buf[2]=sec_dx%10; //第2位東西秒個(gè)位 buf[3]=sec_nb/10; //第3位南北秒十位 buf[0]=sec_nb%10; //第4位南北秒個(gè)位 P1=0xff; //初始燈為滅的P0=0x00;P1=0xfe; //片選LED1P0=table[buf[1]]; //送東西時(shí)間十位的數(shù)碼管編碼 delay(1); //延時(shí) P1=0xff; //關(guān)顯示P0=0x00; P1=0xfd; //片選LED2P0=table[buf[2]];delay(1); P1=0xff;P0=0x00; P1=0Xfb; //片選LED3 P0=table[buf[3]]; delay(1); P1=0xff;P0=0x00; P1=0Xf7; P0=table[buf[0]]; //片選LED4 delay(1);}voidtime0(void)interrupt1using1 //定時(shí)中斷子程序{ TH0=0X3C; //重賦初值 TL0=0XB0; TR0=1; //重新啟動(dòng)定時(shí)器 countt0++; //軟件計(jì)數(shù)加1 if(countt0==20) //定時(shí)器中斷次數(shù)=20時(shí)〔即1秒時(shí)〕 { countt0=0; //清零計(jì)數(shù)器 sec_dx--; //東西時(shí)間減1 sec_nb--; //南北時(shí)間減1 if(sec_nb<=5&&time==0) //東西黃燈閃 { Green_dx=0; Yellow_dx=!Yellow_dx; } if(sec_dx<=5&&time==1) //南北黃燈閃 { Green_nb=0; Yellow_nb=!Yellow_nb; } if(sec_dx==0&&sec_nb==5) //當(dāng)東西倒計(jì)時(shí)到0時(shí),重置5秒,用于黃燈閃爍時(shí)間 sec_dx=5; if(sec_nb==0&&sec_dx==5) //當(dāng)南北倒計(jì)時(shí)到0時(shí),重置5秒,用于黃燈閃爍時(shí)間 sec_nb=5; if(time==0&&sec_nb==0) //當(dāng)黃燈閃爍時(shí)間倒計(jì)時(shí)到0時(shí), { P2=0x99; //重置東西南背方向的紅綠燈 time=!time; sec_nb=set_timenb; //重賦南北方向的起始值 sec_dx=set_timenb+5; //重賦東西方向的起始值 } if(time==1&&sec_dx==0) //當(dāng)黃燈閃爍時(shí)間到 { P2=0Xc3; //重置東西南北的紅綠燈狀態(tài) time=!time; sec_dx=set_timedx; //重賦東西方向的起始值 sec_nb=set_timedx+5;} //重賦南北方向的起始值 } }voidkey_to1() //鍵盤處理子程序之+{ TR0=0; //關(guān)定時(shí)器 if(set==0) set_timenb++; //南北加1S else set_timedx++; //東西加1S if(set_timenb==100) set_timenb=1; if
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程公司財(cái)務(wù)制度
- 咸寧彩色混凝土施工方案
- 磚砌污水井施工方案
- 砼護(hù)欄施工方案
- 南山車庫防水施工方案
- 廣西噴泉維修施工方案
- 6mm 650nm 5mw 紅光點(diǎn)狀激光 pd腳作用
- 5年級(jí)下冊人教版英語詞語表
- 5年級(jí)白鷺第二自然段改寫成一段說明文
- 橋梁端頭封堵施工方案
- 少兒美術(shù)繪本教案課件-3-6歲 《100層巴士》
- 鋼筋原材質(zhì)量證明書
- WH/T 42-2011演出場所安全技術(shù)要求第2部分:臨時(shí)搭建演出場所舞臺(tái)、看臺(tái)安全技術(shù)要求
- GB/T 5023.5-2008額定電壓450/750 V及以下聚氯乙烯絕緣電纜第5部分:軟電纜(軟線)
- GB/T 23445-2009聚合物水泥防水涂料
- 瓷貼面教學(xué)課件
- 尺骨冠突骨折課件
- 北師大版七年級(jí)下冊第一章整式的乘除計(jì)算題專項(xiàng)訓(xùn)練
- 2022年蘇州健雄職業(yè)技術(shù)學(xué)院單招考試面試試題及答案解析
- 乳腺癌改良根治術(shù)
- 新版(七步法案例)PFMEA
評(píng)論
0/150
提交評(píng)論