單片機(jī)交通燈控制 課程設(shè)計(jì)報(bào)告_第1頁
單片機(jī)交通燈控制 課程設(shè)計(jì)報(bào)告_第2頁
單片機(jī)交通燈控制 課程設(shè)計(jì)報(bào)告_第3頁
單片機(jī)交通燈控制 課程設(shè)計(jì)報(bào)告_第4頁
單片機(jī)交通燈控制 課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

新能源與動(dòng)力工程學(xué)院電子元器件調(diào)研與系統(tǒng)設(shè)計(jì)報(bào)告交通信號燈的制作專業(yè)電力工程與管理班姓級名電力1201 班學(xué)號師陸興旺2015 年12 月指導(dǎo)教師評語及成績評定表指指導(dǎo)教師評語(40)(50)(10)總成績(100)成績指導(dǎo)教師簽字:年 月 蘭州交通大學(xué)新能源與動(dòng)力工程學(xué)院課程設(shè)計(jì)任務(wù)書課程名稱電子元器件調(diào)研與系統(tǒng)設(shè)計(jì)報(bào)告 指導(dǎo)教師(簽名班級姓名學(xué)號201211352 一、課程設(shè)計(jì)題目交通信號燈的制作二、課程設(shè)計(jì)設(shè)計(jì)技術(shù)要求:stc89C51protel99se,pcb三、課程設(shè)計(jì)的目的通過課程設(shè)計(jì),主要達(dá)到以下目的:使學(xué)生增進(jìn)對單片機(jī)的感性認(rèn)識,加深對單片機(jī)理論方面的理解;/I/O計(jì)和實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)打下良好基礎(chǔ)。四、課程設(shè)計(jì)的主要內(nèi)容和要求(等)本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號發(fā)生,還能進(jìn)行倒計(jì)時(shí)顯示。按鍵可以控制禁行、復(fù)位、東西通行、南北通行、時(shí)間加、時(shí)間減、切換等功能。五、工作進(jìn)度安排熟悉題目、查閱資料,擬定設(shè)計(jì)方案按要求制定出切實(shí)可行的方案設(shè)計(jì)硬件電路及軟件程序完成硬件設(shè)計(jì)及程序設(shè)計(jì)仿真調(diào)試及產(chǎn)品焊接先進(jìn)行計(jì)算機(jī)仿真再完成實(shí)際焊接產(chǎn)品整理調(diào)試并完成設(shè)計(jì)報(bào)告實(shí)現(xiàn)設(shè)計(jì)要求,報(bào)告按要求裝訂成冊六、主要參考文獻(xiàn)[l]邊海龍,孫永奎.單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解[J].電子工業(yè)出版社,2008(10).王為青,邱文勛.51[J][3[J].電子工業(yè)出版社,2008審核批準(zhǔn)意見系主任(簽字) 年 月 日目錄一、系統(tǒng)方案設(shè)計(jì)與要求 1單片機(jī)交通燈控制系統(tǒng)通行方案設(shè)計(jì) 1單片機(jī)交通控制系統(tǒng)的功能要求 2顯示模塊功能 2按鍵模塊功能 2單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理 2二、系統(tǒng)硬件電路的設(shè)計(jì) 3系統(tǒng)硬件總電路構(gòu)成 3單片機(jī)最小系統(tǒng) 3顯示系統(tǒng) 4LED顯示 4數(shù)碼管顯示 4鍵盤輸入電路 5三、系統(tǒng)軟件程序的設(shè)計(jì) 5程序主體設(shè)計(jì)流程 5子程序模塊設(shè)計(jì) 6四、小結(jié) 8五、參考文獻(xiàn) 9附錄A 10附錄B 11附錄C 12PAGEPAGE10一、系統(tǒng)方案設(shè)計(jì)與要求單片機(jī)交通燈控制系統(tǒng)通行方案設(shè)計(jì)設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其1-1所示。說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)61,周而復(fù)始,即如圖(2-1)6這四個(gè)狀態(tài)歸納如下:圖1-1交通狀態(tài)20秒。此狀態(tài)下,東西向禁止通行,南北向允許通行;東西方向綠燈滅,同時(shí)黃2秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他20秒。此狀態(tài)下,東西向允許通行,南北向禁止通行;南2秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。下面我們可以用圖表表示燈狀態(tài)和行止?fàn)顟B(tài)的關(guān)系如下:表1-1交通狀態(tài)及紅綠燈狀態(tài)東西向南北向狀態(tài)1禁行通行狀態(tài)3等待變換等待變換狀態(tài)4通行禁行狀態(tài)6等待變換等待變換東西紅燈1100東西黃燈0001東西綠燈0010南北紅燈0011南北綠燈1000南北黃燈0100東西南北四個(gè)路口均有紅綠黃3燈和數(shù)碼顯示管4個(gè),在任一個(gè)路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止?fàn)顟B(tài)將變換。狀態(tài)及紅綠燈狀態(tài)如表2-1所示。說明:0表示滅,1表示亮。單片機(jī)交通控制系統(tǒng)的功能要求本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號發(fā)生,還能進(jìn)行倒計(jì)時(shí)顯示。按鍵可以控制禁行、復(fù)位、東西通行、南北通行、時(shí)間加、時(shí)間減、切換等功能。顯示模塊功能顯示模塊分?jǐn)?shù)碼管顯示和LED顯示,數(shù)碼管倒計(jì)時(shí)顯示可以提醒駕駛員在信號燈顏色發(fā)生改變的時(shí)間、在“停止”和“通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒計(jì)時(shí)顯示是用來減少駕駛員在信號燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的一種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇。通過兩種顯示結(jié)合,是本設(shè)計(jì)更合理可靠。按鍵模塊功能口足夠,可直接采用獨(dú)立式。按鍵可00可以將整個(gè)系統(tǒng)復(fù)位;東西通行是東西方向的綠燈亮,南北方向上的紅燈亮;南北通行為南北方向上的綠燈亮,東西方向上的紅燈亮;時(shí)間加減可以設(shè)置通行和等待通行的時(shí)間;切換按鍵可以切換加減的方向時(shí)間。通過安檢模塊的控制,使得整個(gè)系統(tǒng)具有靈活性,實(shí)用性。單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號燈的自動(dòng)指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用STC89C52單片機(jī)以及單片機(jī)最小系統(tǒng)和三極管驅(qū)動(dòng)電路以及外圍的按鍵和數(shù)碼管顯示等部件,設(shè)計(jì)一個(gè)基于單片機(jī)的交通燈設(shè)計(jì)。設(shè)計(jì)通過兩位一體共陰極數(shù)碼管顯示,并能通過按鍵對定時(shí)進(jìn)行設(shè)置。本系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。在相同的時(shí)間里提高通車的質(zhì)量、效率。并能在高峰期根據(jù)實(shí)際狀況結(jié)合方程式控制按鈕來調(diào)整主次干道的通車時(shí)間,降低交通擁擠堵塞現(xiàn)象。并使交通控制系統(tǒng)具有緊急控制,使救護(hù)車、救護(hù)車通過時(shí),使兩個(gè)方向均亮紅燈,救護(hù)車和消防車通過后,恢復(fù)原來狀態(tài),增加對出現(xiàn)特殊情況的處理能力。本單片機(jī)控制交通燈系統(tǒng),可用單片機(jī)直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當(dāng)然,接入LED行使者,更具人性化。本系統(tǒng)在此基礎(chǔ)上,單片機(jī)對此進(jìn)行具體處理,及時(shí)調(diào)整控制指揮。如圖(2-2)所示:鍵盤設(shè)置模塊對系統(tǒng)輸入模式選擇及具體通行時(shí)間設(shè)置的信號,系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到LED數(shù)碼管上實(shí)時(shí)顯示。在此過程中還要實(shí)時(shí)捕捉違規(guī)檢測和緊急按鍵信號,以達(dá)到對異常狀態(tài)進(jìn)行實(shí)時(shí)控制的目的。急停按鍵和違規(guī)檢測隨時(shí)調(diào)用中斷。最小系統(tǒng)最小系統(tǒng)復(fù)位電路 驅(qū)動(dòng)顯示復(fù)位電路驅(qū)動(dòng)顯示按鍵控制按鍵控制外圍接口紅黃綠信號燈紅黃綠信號燈8LED數(shù)碼管8LED數(shù)碼管單片機(jī)據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)為控制核心,連接成最小系統(tǒng),和按鍵設(shè)置模塊等產(chǎn)生輸入,信號燈狀態(tài)模塊,LED圖如上所示。二、系統(tǒng)硬件電路的設(shè)計(jì)系統(tǒng)硬件總電路構(gòu)成stc89C51單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),124組紅綠黃三色燈構(gòu)成信號燈指示模塊,8LED擇按鈕和緊急按鈕等。系統(tǒng)硬件電路由單片機(jī)、狀態(tài)燈、LED顯示、按鍵等組成。其具體的硬件電路3-1所示。P0,P1LED數(shù)碼管的型和位,P2極管,XTAL1XTAL2接入晶振時(shí)鐘電路,REST引腳接上復(fù)位電路,P3于口按鍵控制。單片機(jī)最小系統(tǒng)STC89C51XTAL1XTAL2(簡稱晶振C1C230pFCYS1.2-12MHz12MHz11.0592MHz。STC89C51RST2片機(jī)內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。最小系統(tǒng)圖如圖2-1所示VCCVCCVCCK01324RESET+C110uFC2R710KHM3090 Y1C33012345678911111111112P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0(RXD)P3.1(TXD)P3.2(INT0P3.3(INT1P3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1GND89C52VCC(AD0)P0.0(AD1)P0.1(AD2)P0.2(AD3)P0.3(AD4)P0.4(AD5)P0.5(AD6)P0.6(AD7)P0.7EA/VPPALE/PROGPSEN(A15)P2.7(A14)P2.6(A13)P2.5(A12)P2.4(A11)P2.3(A10)P2.2(A9)P2.1(A8)P2.04039383736353433323130292827262524232221圖2-1單片機(jī)最小系統(tǒng)原理圖顯示系統(tǒng)LED顯示LED交通燈利用發(fā)光二極管來顯示不同顏色的信號指示燈。D1D1YD2GD3R數(shù)碼管顯示

圖2-2LED燈數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示8124位等等數(shù)碼管:按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼(COM)的數(shù)碼管,共陽COM接到(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COMGND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。由于它的價(jià)格便宜使用簡單在電器特別是家電領(lǐng)域應(yīng)用極為廣泛。

3 BCE D1 9

8 7 6BCE Dd AS1 2 3 S5鍵盤輸入電路

圖2-3數(shù)碼管顯示單片機(jī)鍵盤有獨(dú)立鍵盤和矩陣式鍵盤兩種:獨(dú)立鍵盤每一個(gè)I/O口上只接一個(gè)按鍵,按鍵的另一端接電源或接地(一般接地I/O在用單片機(jī)對鍵盤處理的時(shí)候涉及到了一個(gè)重要的過程,那就是鍵盤的去抖動(dòng)。這里說的抖動(dòng)是機(jī)械的抖動(dòng),是當(dāng)鍵盤在未按到按下的臨界區(qū)產(chǎn)生的電平不穩(wěn)定正?,F(xiàn)象,并不是我們在按鍵時(shí)通過注意可以避免的。這種抖動(dòng)一般10~200毫秒之間,這種不穩(wěn)定電平的抖動(dòng)時(shí)間對于人來說太快了,而對于時(shí)鐘是微秒的單片機(jī)而言則是慢長的。硬件去抖動(dòng)就是用部分電路對抖動(dòng)部分加之處理,軟件去抖動(dòng)不是去掉抖動(dòng),而是避抖動(dòng)部分的時(shí)間,等鍵盤穩(wěn)定了再對其處理。所以這里選擇了軟件去抖動(dòng),實(shí)現(xiàn)法是先查尋按鍵當(dāng)有低電平出現(xiàn)時(shí)10~200(20毫秒110~2000時(shí)則表示有按鍵按下,調(diào)用相應(yīng)的處理程序。硬件電路2-4示:

K2 K3 K7 K4121212121212123stop43dx43nb43ok4343434qiehuan三、系統(tǒng)軟件程序的設(shè)計(jì)程序主體設(shè)計(jì)流程

圖2-4鍵盤控制電路圖LED顯示程序,消抖動(dòng)延時(shí)程序,次狀態(tài)判斷及處理程序,緊?;蜻`規(guī)判斷程序,中斷服務(wù)子程序,車流量計(jì)數(shù)程序,紅綠燈時(shí)間調(diào)整程序等。50ms圖如圖(3-1)所示。子程序模塊設(shè)計(jì)

圖3-1系統(tǒng)總的流程圖按鍵模塊的控制是調(diào)用中斷來實(shí)現(xiàn)控制的,獨(dú)立式鍵盤的實(shí)現(xiàn)方法是利用I/OI/O口,程序開始時(shí)將此I/O口置于高電平,平時(shí)無鍵按下時(shí)I/OI/OI/O口為低電平。按鍵I/OI/O口的電平狀態(tài)就可以了解我們是否有按鍵動(dòng)作了。圖3-2中斷子程序定時(shí)中斷子程序是本設(shè)計(jì)的重點(diǎn),負(fù)責(zé)完成數(shù)碼管輸出數(shù)據(jù)刷新和各個(gè)狀態(tài)的處理切換。中斷子程序包括數(shù)碼管輸出數(shù)據(jù)刷新程序和各狀態(tài)處理程序。中斷程序的流程圖如圖3-2所示。圖3-3 定時(shí)中斷流程圖定時(shí)中斷服務(wù)程序在系統(tǒng)中的函數(shù)如下:void int_t0() interrupt 1 using 1{TR0= 0;time++;tc++;if(tc>=3){tc=0;}if(time==100){waittime--;}elseif(time==200){waittime--;sec--;time=0;shu0=sec%10;shu1=sec/10;}TH0= TL0= if(tc==0) {smdis=md[shu0];weishuang0 = 0;weishuang1 = weishuang2 = 1;}else if(tc==1) { smdis=md[shu1]; weishuang0 = 1; weishuang1 = weishuang2 = 1;}elseif(tc==2){smdis=md[shu2];weishuang0 = 1;weishuang1 = weishuang2 = 0;}//if(tc>=3){tc=0;}TR0= 1;}我們由在主程序中設(shè)定的初值可知T05毫秒CPU序中,CPU200。為零表示1秒已到0.四、小結(jié)經(jīng)過這次課程設(shè)計(jì),我覺得自己學(xué)到了不少東西。歸納起來,主要有以下幾點(diǎn):將所學(xué)到的知識充分運(yùn)用到本次設(shè)計(jì)中。同時(shí),我也認(rèn)識到自己知識上不足的地方,體會到了所學(xué)理論知識的重要性,知識掌握得越多,設(shè)計(jì)得就更全面、更順利、更好。理論研究到硬件原理圖設(shè)計(jì),從元器件的選擇到板的制作,從軟件編程到最后的調(diào)試過程都由小組獨(dú)立完成。這不僅鍛煉了我們獨(dú)立完成設(shè)計(jì)工作的能力,更重要的是了解了一個(gè)電子產(chǎn)品的設(shè)計(jì)流程,為將來投入工作增加了寶貴的經(jīng)驗(yàn),奠定了堅(jiān)實(shí)的基礎(chǔ)。解決的問題,于是我通過上網(wǎng)查閱和圖書館借閱資料,或是通過與老師同學(xué)交流一步步地解決了。從中我懂得了我們這個(gè)專業(yè)的知識面相當(dāng)廣泛,我們需要不斷通過各種途徑更新自己的知識,不斷充實(shí)自己,同時(shí)要懂得與他人交流意見,積極聽取別人的建議,懂得不斷學(xué)習(xí)的重要性。五、參考文獻(xiàn)[l]邊海龍,孫永奎.單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解[J].電子工業(yè)出版社,2008.[2]王為青,邱文勛.51單片機(jī)開發(fā)案例精選[J].人民郵電出版社,2001...[J].[4].[J].清華大學(xué)出版社,2005,(4).[5]黃智偉.[J].[6]蔣輝平,周國雄.基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例[M].機(jī)械工業(yè)出版社.2009.附錄A元件名稱數(shù)量(個(gè))元件名稱數(shù)量9*15萬用板1個(gè)0.36寸兩位一體共陰4個(gè)STC89C511個(gè)數(shù)碼管發(fā)光二極管紅綠4個(gè)黃40PIC座1個(gè)DC座1個(gè)12M晶振1個(gè)按鍵5個(gè)30P瓷片電容2個(gè)自鎖開關(guān)1個(gè)10k電阻1個(gè)導(dǎo)線若干102排阻2個(gè)USB電源線1根10uF電容1焊錫若干附錄 B實(shí)物顯示圖附錄 C#include<reg51.h> //#defineucharunsignedchar#defineuintunsignedint //宏定義uchardatabuf[4]; //秒顯示的變uchardatasec_dx=20; //東西數(shù)默認(rèn)uchardatasec_nb=30; uchardataset_timedx=20; //設(shè)置東西方向的時(shí)uchardataset_timenb=30; //設(shè)置南北方向的時(shí)intn;uchardatacountt0,countt1;//定時(shí)器0中斷次數(shù)//定義6組開關(guān)sbitk4=P3^7;//設(shè)置時(shí)間sbitk3=P3^6;//時(shí)間減sbitk2=P3^5;//時(shí)間加sbitk1=P3^4;//切換緊急和夜間sbitRed_nb=P2^6; //南北紅燈標(biāo)志sbitYellow_nb=P2^5; //南北黃燈標(biāo)志sbitGreen_nb=P2^4; //南北綠燈標(biāo)sbitRed_dx=P2^3; //東西紅燈標(biāo)sbitYellow_dx=P2^2; //東西黃燈標(biāo)sbitGreen_dx=P2^1; //東西綠燈標(biāo)志ucharset=0; //調(diào)時(shí)方向切換鍵標(biāo)志=1ucharmode=0;bitdx_nb=0; //東西南北控制位bitshanruo=0; //閃爍標(biāo)志位bityejian=0; //夜間黃燈閃爍標(biāo)志位ucharcodetable[11]={ //共陰極字型碼0x3f,//--00x06,//--10x5b,//--20x4f,//--30x66,//--40x6d,//--50x7d,//--60x07,//--70x7f,//--80x6f, //--90x00 //--NULL};//函數(shù)的聲明部分voiddelay(intms); //延時(shí)子程序voidkey(); //按鍵掃描子程序voidkey_to1(); //voidkey_to2();voidkey_to3();voiddisplay(); //顯示子程序voidlogo(); //開機(jī)voidBuzzer();//主程序voidmain(){TMOD=0X11; //TH1=0X3C;TL1=0XB0;TH0=0X3C; //0置初值TL0=0XB0;EA=1; //開總中斷ET0=1; //0中斷開啟ET1=1; //1中斷開啟TR0=1; //0TR1=0; //1EX0=1; //0EX1=1; //1logo(); //開機(jī)初始化P2=0Xc3; //開始默認(rèn)狀態(tài),東西綠燈,南北黃燈sec_nb=sec_dx+5; //5秒while(1) //主循環(huán){key(); //調(diào)用按鍵掃描程序display(); //調(diào)用顯示程序}}//函數(shù)的定義部分voidkey(void)//按鍵掃描子程序{/* if(k1!=1) //K1(時(shí)間加)按下時(shí){display(); //調(diào)用顯示,用于延時(shí)消if(k1!=1) //如果確定按下{TR0=0; //關(guān)定時(shí)器shanruo=0; //閃爍標(biāo)志位P2=0x00; //滅顯示TR1=0; //1if(set==0) //設(shè)置鍵按set_timedx++; //南北加1Selseset_timenb++; //1Sif(set_timenb==100)set_timenb=1;if( set_timedx==100)set_timedx=1;sec_nb=set_timenb;sec_dx=set_timedx;do{display();}while(k1!=1);}}if(k2!=1){

//加到100置1//設(shè)置的數(shù)值賦給東西南北//調(diào)用顯示,用于延時(shí)//等待按鍵釋放//當(dāng)K2(時(shí)間減)按鍵按下時(shí)display();if(k2!=1){

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下TR0=0;shanruo=0;P2=0x00;TR1=0;if(set==0)set_timedx--;

//關(guān)定時(shí)器0//閃爍標(biāo)志位關(guān)//滅顯示//關(guān)定時(shí)器1//南北減1Selse

set_timenb--;

//東西減1Sif(set_timenb==0)set_timenb=99;if( set_timedx==0set_timedx=99;sec_nb=set_timenb;sec_dx=set_timedx;do{

//減到1重置99//設(shè)置的數(shù)值賦給東西南北display(); //調(diào)用顯示,用于延時(shí)}while(k2!=1); //等待按鍵釋放}}if(k3!=1){

//當(dāng)K3(確認(rèn))鍵按下時(shí)display();if(k3!=1){

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下TR0=1;sec_nb=set_timenb;sec_dx=set_timedx;TR1=0;if(set==0){

//啟動(dòng)定時(shí)器0//從中斷回復(fù),仍顯示設(shè)置過的數(shù)值//顯示設(shè)置過的時(shí)間//關(guān)定時(shí)器1//時(shí)間倒時(shí)到0時(shí)}else{}}}

P2=0X00;Green_dx=1;Red_nb=1;sec_nb=sec_dx+5;P2=0x00;Green_nb=1;Red_dx=1;sec_dx=sec_nb+5;

//滅顯示//東西綠燈亮//南北紅燈亮//回到初值//南北綠燈,東西紅燈if(k4!=1){

//當(dāng)K4(切換)鍵按下display();if(k4!=1){

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下TR0=0;set=!set;TR1=0;dx_nb=set;do{

//關(guān)定時(shí)器0//取反set標(biāo)志位,以切換調(diào)節(jié)方向//關(guān)定時(shí)器1display(); //調(diào)用顯示,用于延時(shí)}while(k4!=1);}}if(k5!=1){

//等待按鍵釋放//當(dāng)K5(禁止)鍵按下時(shí)display();if(k5!=1){TR0=0;P2=0x00;Red_dx=1;Red_nb=1;TR1=0;sec_dx=00;sec_nb=00;do{display();}while(k5!=1);}}if(k6!=1){

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下//關(guān)定時(shí)器//滅顯示//全部置紅燈//四個(gè)方向的時(shí)間都為00//調(diào)用顯示,用于延時(shí)//等待按鍵釋放//當(dāng)K6(夜間模式)按下display();if(k6!=1){TR0=0;P2=0x00;TR1=1;sec_dx=00;sec_nb=00;do{display();}while(k6!=1);}}*/

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下//關(guān)定時(shí)器//四個(gè)方向的時(shí)間都為00//調(diào)用顯示,用于延時(shí)//等待按鍵釋放if(k2!=1&&set!=0) //時(shí)間加)按下時(shí){display(); //調(diào)用顯示,用于延時(shí)消抖if(k2!=1&&set!=0) //如果確定按{TR0=0; //關(guān)定時(shí)器shanruo=0; //閃爍標(biāo)志位關(guān)P2=0x00;TR1=0;

//滅顯示

//啟動(dòng)定時(shí)1if(set==1)set_timedx++;elseif(set==2)set_timenb++;if(set_timenb==100)set_timenb=1;if( set_timedx==100)set_timedx=1;sec_nb=set_timenb;sec_dx=set_timedx;do{display();}while(k2!=1);}}if(k3!=1&&set!=0){

//設(shè)置鍵按下//1S//1S//加到100置1//設(shè)置的數(shù)值賦給東西南北//調(diào)用顯示,用于延時(shí)//等待按鍵釋放//當(dāng)K2(時(shí)間減)按鍵按下時(shí)display();if(k3!=1&&set!=0){

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下TR0=0;shanruo=0;P2=0x00;TR1=0;if(set==1)set_timedx--;elseif(set==2)set_timenb--;if(set_timenb==0)set_timenb=99;

//關(guān)定時(shí)器0//閃爍標(biāo)志位關(guān)//滅顯示//關(guān)定時(shí)器1//1S//1Sif( set_timedx==0)set_timedx=99; //減到1重置99sec_nb=set_timenb; //設(shè)置的數(shù)值賦給東西南sec_dx=set_timedx;do{display(); //調(diào)用顯示,用于延時(shí)}while(k3!=1); //等待按鍵釋放}}if(k4!=1&&mode==0){

//當(dāng)K3(確認(rèn))鍵按下時(shí)display();if(k4!=1){

//調(diào)用顯示,用于延時(shí)消抖//如果確定按下TR0=0;P2=0x00;

//滅顯示

//啟動(dòng)定時(shí)器0sec_nb=set_timenb;sec_dx=set_timedx;TR1=0;set++;if(set>2){set=0;TR0=1;sec_nb=set_timenb;sec_dx=set_timedx;TR1=0;P2=0Xc3;sec_nb=sec_dx+5;}do{display();}

//從中斷回復(fù),仍顯示設(shè)置過的數(shù)值//顯示設(shè)置過的時(shí)間//關(guān)定時(shí)器1//啟動(dòng)定時(shí)器0//從中斷回復(fù),仍顯示設(shè)置過的數(shù)值//顯示設(shè)置過的時(shí)間//關(guān)定時(shí)器1//調(diào)用顯示,用于延時(shí)while(k4!=1);}}if(k1!=1&&set==0){

//當(dāng)K5(禁止)鍵按下時(shí)display(); //調(diào)用顯示,用于延時(shí)消抖if(k1!=1) //如果確定按下{mode++;if(mode==1){TR0=0; //關(guān)定時(shí)器P2=0x00; //滅顯示Red_dx=1;Red_nb=1; //TR1=0;sec_dx=00; //sec_nb=00;}elseif(mode==2){TR0=0; //關(guān)定時(shí)器P2=0x00;TR1=1;sec_dx=00; //00sec_nb=00;}if(mode>2){mode=0;TR0=1; //0sec_nb=set_timenb; //從中斷回復(fù),仍顯示設(shè)置過的數(shù)值sec_dx=set_timedx; //TR1=0;P2=0Xc3;sec_nb=sec_dx+5; //1}do{display(); //調(diào)用顯示,用于延時(shí)}while(k1!=1); //等待按鍵釋放}}}voiddisplay(void)//顯示子程序{buf[1]=sec_nb/10; //第1位東西秒十位buf[2]=sec_nb%10; //第2位東西秒個(gè)buf[3]=sec_dx/10; //第3位南北秒十位buf[0]=sec_dx%10; //第4位南北秒個(gè)P1=0xff; //初始燈為滅的P0=0x00; ////滅顯示P1=0xfe; //片選LED1P0=table[buf[1]]; //送東西時(shí)間十位的數(shù)碼管編delay(1); //延時(shí)P1=0xff; P0=0x00; P1=0xfd;P0=table[buf[2]];//片選LED2//送東西時(shí)間個(gè)位的數(shù)碼管編碼delay(1);//延時(shí)P1=0xff;//關(guān)顯示P0=0x00;//關(guān)顯示P1=0Xfb;//片選LED3P0=table[buf[3]];//送南北時(shí)間十位的數(shù)碼管編碼delay(1);//延時(shí)P1=0xff;//關(guān)顯示P0=0x00;//關(guān)顯示P1=0Xf7;//片選LED4P0=table[buf[0]];//送南北時(shí)間個(gè)位的數(shù)碼管編碼}delay(1);//延時(shí)voidtime0(void)interrupt1using1 //定時(shí)中斷子程序{TH0=0X3C; //重賦初值TL0=0XB0; //12m50ms//重賦初值TR0=1; //重新啟動(dòng)定時(shí)器countt0++; //1if(countt0==10) //10也就是半秒{if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //東西黃燈閃{Green_dx=0;Yellow_dx=0;}if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黃燈閃{Green_nb=0;Yellow_nb=0;}}if(countt0==20) //=20時(shí)(1秒時(shí)){ countt0=0; //清零計(jì)數(shù)sec_dx--; //東西時(shí)間減1sec_nb--; //1if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //東西黃燈閃{Green_dx=0;Yellow_dx=1;}if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黃燈閃{G

溫馨提示

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

評論

0/150

提交評論