《交通信號燈課程設(shè)計報告.doc》由會員分享,可在線閱讀,更多相關(guān)《交通信號燈課程設(shè)計報告.doc(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、交通信號燈自動控制系統(tǒng)*目錄*一、設(shè)計內(nèi)容二、設(shè)計要求三、交通信號燈模擬控制系統(tǒng)設(shè)計程序流程圖四、交通信號燈模擬控制系統(tǒng)原理圖五、交通信號燈模擬控制系統(tǒng)主程序六、運行步驟七、檢測與調(diào)試八、課程設(shè)計體會九、參考文獻十、說明一、 設(shè)計內(nèi)容:設(shè)計并制作一個如上圖所示的十字路口交通信號自動控制模擬指示系統(tǒng)。設(shè)該路口由A、B兩條通行干道相交而成,四個路口各設(shè)一組紅、黃、綠三色信號燈,用兩位數(shù)碼管作倒計時顯示。二、 設(shè)計要求:1系統(tǒng)基本功能要求 (1)以秒為計時單位,兩位數(shù)碼管以十進制遞減計數(shù)形式作定時顯示,在遞減計數(shù)回零瞬間完成換燈操作。(2)通過鍵盤紅、黃、綠三色信號燈所亮?xí)r間在099秒內(nèi)任意設(shè)定。(
2、3)十字路口的通行起始狀態(tài)可人工設(shè)定,運行中可通過人工干預(yù)使十字路口通行狀況固定于任何一種工作模式。 2發(fā)揮部分(1)具有時間控制功能,交通信號燈工作時間:05:0023:00;其余時間兩個干道上的黃色信號燈閃爍顯示;(2)綠色信號燈倒計時最后3秒和黃色信號燈顯示時閃爍顯示。(閃爍頻率:1Hz);(3)其它功能。三、交通信號燈模擬控制系統(tǒng)設(shè)計程序流程圖1、主程序流程圖:開始程序初使化 調(diào)用顯示主程序 東西綠燈亮,南北紅燈亮,進入倒計時,打開數(shù)碼管顯示 東西和南北黃燈亮,進入倒計時,打開數(shù)碼管顯示 東西紅燈亮,南北綠燈亮,進入倒計時,打開數(shù)碼管顯示 圖52、中斷服務(wù)程序流程圖:外部中斷0: 外部
3、中斷1 :按鍵按下按鍵按下 轉(zhuǎn)去中斷服務(wù)子程序轉(zhuǎn)去中斷服務(wù)子程序設(shè)置個位計數(shù)值設(shè)置十位計數(shù)值 中斷返回中斷返回 圖6 圖7 計數(shù)器T0外部中斷:確定按鍵按下轉(zhuǎn)去中斷服務(wù)子程序分別進行三組燈的組合狀態(tài)的時間倒計數(shù)并進入此三種狀態(tài)的一下死循環(huán) 中斷返回 圖83、交通燈工作換燈流程:R0=#0FFH南北紅燈亮,東西綠燈亮 否 是 是東西和南北黃燈亮5sR0=#0FFH南北綠燈亮,東西紅燈亮 否 四、交通信號燈模擬控制系統(tǒng)原理圖1.直流電源圖:2.交通信號燈模擬控制系統(tǒng)原理圖: 五、交通信號燈模擬控制系統(tǒng)主程序#include #include#define uint unsigned int#def
4、ine ucher unsigned charucher code table=0 x40,0 x40,0 xf9,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78,0 x00,0 x10;sbit k0=P30;sbit k1=P31;sbit k2=P32;sbit k3=P33;sbit k4=P34;sbit k5=P35;sbit k6=P36;sbit k7=P37;ucher tt,tt1,tt2,sec,min,shi; /初始定義void time1();void delay(uint z);void main ()int i,j,num1,num2,l
5、,n,m,h1,h2,h3;ucher aa,bb,dd,ee;EA=1;TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256; /中斷定義ET0=1;EX0=1;EX1=1;num1=1;num2=1;P3=0 xef;aa=0 xb6;bb=0 x96;dd=0 x6b;ee=0 x69;shi=8;P0=0 xf2;if(k0=1)delay(5);if(k0=1)while(k0)if(k7=0)delay(5);if(k7=0)num1+;while(!k7);if(num1=11)/交通燈初值及工作狀態(tài)設(shè)置 num1=1;if
6、(k6=0)delay(5);if(k6=0)num2+;while(!k6);if(num2=11)num2=1;P1=tablenum1;P2=tablenum2;if(k1=0)delay(5);if(k1=0)aa=0 x6b;bb=0 x69;dd=0 xb6;ee=0 x96;elsenum1=4;num2=1;m=num1;n=num2;if(k0=0)/調(diào)節(jié)當前時間(即對時)delay(5);if(k0=0)while(!k0)if(k7=0)delay(5);if(k7=0)shi+;if(shi=24)shi=0; /調(diào)時h1=shi;h2=h1/10+1;h3=h1%10
7、+1;P2=tableh3;P1=tableh2;while(!k7);if(k6=0)delay(5);if(k6=0)min+;if(min=60)min=0;h1=min;h2=h1/10+1;h3=h1%10+1;/調(diào)分P2=tableh3;P1=tableh2;while(!k6);if(k1=0)delay(5);if(k1=0)sec+;if(sec=60)sec=0;h1=sec;h2=h1/10+1;h3=h1%10+1;/調(diào)秒P2=tableh3;P1=tableh2;while(!k1);TR0=1; /開啟定時器中斷if(num1=1)while(1)j=n;i=m;
8、/工作循環(huán)程序for(j=n;j0;j-)if(j22)|(shi0;j-)P1=tablei;P2=tablej;P0=bb;delay(500);P0=aa;delay(500);for(j=n;j0;j-)if(j22)|(shi0;j-)P1=tablei;P2=tablej;P0=ee;delay(500);P0=dd;delay(500);while(1)num2=n;num1=m;for(j=n;j0;j-)i=m;P0=aa;P1=tablei;P2=tablej;delay(1000);if(shi22)|(shi0;i-)for(j=10;j0;j-)if(shi22)|(
9、shi5)time1();if(i=1)if(j0;j-)P1=tablei;P2=tablej;P0=bb;delay(500);P0=aa;delay(500);num1=m;for(j=n;j0;j-)i=m;P0=dd;P1=tablei;P2=tablej;delay(1000);if(shi22)|(shi0;i-)for(j=10;j0;j-)if(shi22)|(shi5)time1();if(i=1)if(j0;j-)P1=tablei;P2=tablej;P0=ee;delay(500);P0=dd;delay(500);void delay(uint z)uint t1,
10、y;/延時函數(shù)for(t1=z;t10;t1-)for(y=125;y0;y-);void time1()for(;(shi22)|(shi5);)P0=0 xdd;delay(500);P0=0 xff;delay(500); /23點到5點的工作函數(shù)P1=table1;P2=table1;void enter0() interrupt 0delay(5);if(k2=0)/外部中斷0 函數(shù)P1=0 x00;P2=0 x00;P0=0 xb6;void enter1() interrupt 2delay(5);if(k3=0) /外部中斷1 函數(shù)P1=0 x40;P2=0 x40;P0=0
11、x6b;void enter2() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(tt=20)sec+;tt=0; /外部中斷0 函數(shù)if(sec=60)min+;sec=0;if(min=60)min=0;shi+;if(shi=24)shi=0;六、運行步驟給單片機(交通燈系統(tǒng))上電(或者已上電按復(fù)位鍵)。 以連續(xù)方式從0100H開始執(zhí)行程序,初始態(tài)0為南北路口的紅燈亮東西路口的綠燈亮,并設(shè)置了初始時間24秒,數(shù)碼管顯示24秒。 此時可以設(shè)置紅綠燈時間(ADD鍵加,DEC鍵減每次各一,注意本設(shè)置紅燈與綠燈為同一初
12、始時間)。 按下ok開始鍵系統(tǒng)關(guān)閉設(shè)置紅綠燈時間功能進入倒計時,系統(tǒng)進入運行,經(jīng)過一段時間,轉(zhuǎn)為狀態(tài)1東西和南北路口黃燈亮經(jīng)過5秒延時并關(guān)閉數(shù)碼管顯示,進入狀態(tài)2南北路口綠燈亮東西路口紅燈亮經(jīng)過倒計時之后返回初始0狀態(tài)實現(xiàn)循環(huán)。(注意此時不能設(shè)置紅綠燈時間)七、檢測與調(diào)試 : 1、硬件調(diào)試:硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器等),檢查用戶系統(tǒng)硬件中存在的故障。硬件調(diào)試可分為靜態(tài)調(diào)試與動態(tài)調(diào)試兩步進行。靜態(tài)調(diào)試 靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時的一種硬件檢測。 第一步:目測。檢查外部的各種元件或者是電路是否有斷點。 第二步:用萬用表測試。先用萬用表復(fù)核目測中有疑問的連接點,再檢測各
13、種電源線與地線之間是否有短路現(xiàn)象。 第三步:加電檢測。給板加電,檢測所有的插座或是器件的電源端是否符合要求的值 第四步:是聯(lián)機檢查。因為只有用單片機開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)的調(diào)試。 動態(tài)調(diào)試 動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯誤等的一種硬件檢查。動態(tài)調(diào)試的一般方法是由近及遠、由分到合。 由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當調(diào)試電路時,與該元件無關(guān)的 器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對各塊電路功能及各電路間可能存在的相互聯(lián)系進行調(diào)試。由
14、分到合的調(diào)試既告完成。 由近及遠是將信號流經(jīng)的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然后分層調(diào)試。調(diào)試時,仍采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會定位故障元件了。2、軟件調(diào)試: 軟件調(diào)試是通過對用戶程序(本次采用偉福仿真軟件)的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。程序后,編輯,查看程序是否有邏輯的錯誤。 八、課程設(shè)計體會通過這一階段的單片機課程設(shè)計,我對單片機有了更深的了解。學(xué)會如何用編程方法消除抖動,更牢固的掌握了各個中斷的用法,特別是定時計數(shù)器的兩種用法的混合使用,在編程時經(jīng)常因為考慮不周而出現(xiàn)了幾次修改,但可幸的是編程思路的正確,讓我不用很大篇幅的修改,使我在不動大框架中學(xué)到了很多知識,并且鞏固了以往的知識!從這之后我更加認識到最初構(gòu)想思路的重要性。九、參考資料1 童詩白,華成英主編.模擬電子技術(shù)基礎(chǔ)(第四版) 高等教育出版社 2 謝維成 楊加國主編 單片機原理與應(yīng)用及C51程序設(shè)計(第2版) 清華大學(xué)出版社十、說明本課程設(shè)計的先修課程是:模擬電子技術(shù)、數(shù)子電子技術(shù)、單片機原理與技術(shù)。一個完整的交通燈相當于一個簡單的單片機系統(tǒng),該系統(tǒng)有交通燈設(shè)置電路、單片機、顯示電路等構(gòu)成。單片機是集成的IC芯片,只需根據(jù)實際設(shè)計要求選型。其他部分都需要根據(jù)應(yīng)用要求和性能指標自行設(shè)計。