0.png (61.87 KB, 下載次數: 172)
下載附件
2016-4-7 02:38 上傳
全部資料下載(包含論文程序及單片機交通燈仿真文件,word ppt文檔):
交通燈.rar
(818 KB, 下載次數: 75)
2016-4-7 02:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
課程設計報告
報 告 題 目 : 交通信號燈控制電路的設計 作者所在系部:物理與電子科學學院 作者所在專業:電子信息與科學技術專業 作者所在班級: 電子三班 作 者 姓 名 :宋偉 201840620325 張淼201840620342 吳剛201840620334 徐美炯201840620336 完 成 時 間 :2010 年 12 月 19 日
課程設計任務書 | | |
| |
| |
| | | | | | 設計一個交通信號燈控制電路。要求: 1.產生以1秒為單位的計時; 2.顯示通行時間和緩行時間; 3.控制顯示時間和緩行時間,使之能加減。 | | 第15周: 1立題論證方案設計、熟悉軟件 2檢查設計結果,預答辯 第16周: 1 仿真實驗 2 驗收答辯 3完成設計報告ppt word文檔等 | | |
內 容 摘 要 隨著社會經濟的發展,城市交通問題越來越引起人們的關注。人、車、路三者關系的協調,已成為交通管理部門需要解決的重要問題之一。城市交通控制系統是用于城市交通數據監測、交通信號燈控制與交通疏導的計算機綜合管理系統,它是現代城市交通監控指揮系統中最重要的組成部分。如何采用合適的控制方法,最大限度利用好耗費巨資修建的城市高速道路,緩解主干道與匝道、城區同周邊地區的交通擁堵狀況,越來越成為交通運輸管理和城市規劃部門亟待解決的主要問題。為此,通過我應用所學的知識設計了一套交通燈控制電路的方案。交通燈的控制系統主要由計時電路、主控電路、中斷電路、顯示電路組成。 目 錄 一、 概 述 ……… ……………………………………………………………3 二、方案設計 1、單片機AT89C52……………………………………………………………..3 2、數碼管顯示原理……………………………………………………………4~5 三、單元電路設計與源程序………………………………………………………5~11 四、總電路圖及元器件清單 1.總電路圖……………………………………………………………………12 2.元器件清單…………………………………………………………………12 五、使用說明參考…………………………………………………………………..12 六、結論……………………………………………………………………………..12 七、心得體會………………………………………………………………………..13 八、參考文獻………………………………………………………………………..13 單片機完成交通信號燈的控制,該交通信號燈控制器由兩條干道匯合成十字路口,在每個入口處設置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外。用紅、綠、黃發光二極管作信號燈。二、方案設計1.方案設計根據設計的要求可知,系統的硬件原理框圖如下圖所示。
1.001.jpg (12 KB, 下載次數: 295)
下載附件
2016-4-7 02:40 上傳
系統硬件框圖 1、單片機可選用AT89C52,它與8052系列單片機全兼容,但其內部帶有8KB的FLASH ROM,設計時無需外接程序存儲器,為設計和調試帶來極大的方便。南北向和東西向各采用2個數碼管計時,同時需要對該方向的指示燈的點亮時間進行倒計時。鍵盤系統可以根據系統的需要設置不同的鍵的個數,可以選擇線式鍵盤,若單片機的IO口不夠用時,可以考慮擴展8255或8155滿足系統的要求。 2、數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管;按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管。共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM)的數碼管。共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。 2. 軟件方案 根據設計要求,軟件由C語言完成。軟件設計可以分為以下幾個功能模塊: 主程序:初始化及鍵盤監控。 計時程序模塊:為定時器的中斷服務子程序,完成50毫秒的定時中斷和1秒的定時時間。 顯示程序模塊:完成4個交通燈和6個LED數碼管的顯示驅動。 中斷子程序:
0.png (6.92 KB, 下載次數: 175)
下載附件
2016-4-7 02:45 上傳
程序流程圖:
1.png (11.87 KB, 下載次數: 185)
下載附件
2016-4-7 02:45 上傳
2.png (5.95 KB, 下載次數: 197)
下載附件
2016-4-7 02:45 上傳
三、單元電路設計與源程序 1、主控電路
1.020.jpg (73.16 KB, 下載次數: 183)
下載附件
2016-4-7 02:40 上傳
控制電路由P3^3—P3^7控制,其中P3^3控制開/停按鈕,P3^4、P3^5控制通行時間的加和減,P3^6、P3^7控制緩行時間的加和減;開/停的控制由標志位flag控制,且flag的初始值置為0。通行時間和緩行時間的控制由jianpan函數控制(具體見源程序中的鍵盤函數)。 2、顯示電路
1.021.jpg (59.48 KB, 下載次數: 191)
下載附件
2016-4-7 02:40 上傳
顯示電路由單片機AT89C52的P1和P2兩個并行I/O接口控制,其中P1口控制顯示控制臺的時間以及車輛的通行時間和緩行時間,P2口控制十字路交通燈;在控制顯示時,使用xianshi函數控制控制臺顯示的顯示時間,xianshi2函數控制顯示車輛的通行時間和緩行時間。 3、源程序 - #include
- #define uint unsigned int
- #define uchar unsigned char
- #define n 5 //
- uchar qian,bai, shi,ge,aa;
- uchar flag=0,n1,n2,b,c,d; //標志位及變量
- sbit k0=P0^0;//數碼管顯示位定義
- sbit k1=P0^1;
- sbit k2=P0^2;
- sbit k3=P0^3;
- sbit k4=P0^4;
- sbit k5=P0^5;
- sbit k6=P0^6;
- sbit k7=P0^7;
- sbit kai=P3^3; //鍵盤控制位定義
- sbit jia1=P3^4;
- sbit jian1=P3^5;
- sbit jia2=P3^6;
- sbit jian2=P3^7;
- uchar code table[]={
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};//數碼管顯示代碼
- void xianshi(); //十字路口數碼管顯示函數
- void xianshi2();//控制臺數碼管顯示函數
- void jianpan(); //鍵盤檢測函數
- void delay(uint z) //延時函數
- {
- uint i,j;
- for(i=z;i>0;i--)
- for(j=110;j>0;j--);
- }
- void init() //定時器0初始化,變量初始化函數
- { b=0;
- c=0;
- d=0;
- n1=0;
- n2=0;
- P1=0;
- P2=0;
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- }
- void main()
- {
- init();
- while(1)
- {
- jianpan();//檢測鍵盤
- if(flag==0)//交通燈處于設置狀態標志位flag=0
- P2=0x09;//四路紅燈全亮
- if(flag==1)//檢測交通燈處于運行狀態標志位flag=1進入交通顯示循環
- {
- if(n1<10)//檢查通行時間設置是否合理,不合理則自動設置
- {n1=30,n2=5;}
- if(b==0&&c==0)
- {b=n1;d=n1-n2;c=1;P2=0x21;}
- if(d==0&&c==1)
- {d=n2;c=2; P2=0x11;}
- if(d==0&&c==2)
- {b=n1-n2,d=n1;c=3;P2=0x0c;}
- if(b==0&&c==3)
- {b=n2;c=0; P2=0x0a;}
- xianshi();//十字路口顯示
- }
- xianshi2();//控制臺顯示
- }
- }
- void time0 () interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- aa++;
- if(aa==20)//檢測1S鐘
- { aa=0;
- --d;//數碼管顯示減一
- --b;
- }
- }
- void jianpan() //鍵盤檢查函數
- { if(kai==0)//檢測開始鍵按下
- {delay(5);
- if(kai==0)
- flag++;
- if(flag>2)//設置開始鍵2種狀態
- flag=0;
- while(!kai)//鍵盤松手檢測
- xianshi();//顯示路口數碼管
- }
- if(flag==1)//檢測開始鍵按下flag=1,打開定時器
- TR0=1;
- if(flag==2)//檢測開始鍵按下flag=0,重新初始化系統
- {TR0=0;n1=0;n2=0;flag=0;b=0;c=0;d=0;}
- if(jia1==0&&flag==0)//檢測通行+鍵按下且flag=0(交通燈處于設置狀態)
- {
- delay(5);
- if(jia1==0&&flag==0)
- {n1++;}//通行時間+1s
- if(n1>99)//檢測通信時間最大時長99s
- n1=n2+1;//重置通行時間且大于緩行時間
- while(!jia1)
- xianshi2();
- }
- if(jian1==0&&n1>n2&&flag==0)//檢測通行-鍵按下且通行時間大于緩行時間且flag=0(交通燈處于設置狀態)
- {
- delay(5);
- if(jian1==0&&n1>n2&&flag==0)
- {n1--;}//通行時間減一
- if(n1==n2)
- n1=99;
- while(!jian1)
- xianshi2();
- }
- if(jia2==0&&n2<n1&&flag==0) 檢測緩行+鍵按下且緩行時間小于通行時間且flag="0(交通燈處于設置狀態)
- {
- delay(5);
- if(jia2==0&&n2<n1&&flag==0)
- {n2++;}//緩行時間+1s
- if(n2==n1)
- n2=1;
- while(!jia2)
- xianshi2();
- }
- if(jian2==0&&flag==0)//檢測緩行-鍵按下且flag=0(交通燈處于設置狀態)
- {
- delay(5);
- if(jian2==0&&flag==0)
- {n2--;}//緩行時間-1s
- if(n2==0)
- n2=n1-1;
- while(!jian2)
- xianshi2();
- }
- }
- void xianshi()//路口數碼管顯示函數
- { shi=b/10;
- ge=b%10;
- qian=d/10;
- bai=d%10;
- k0=0;
- P1=table[shi];
- delay(n);
- k0=1;
- k1=0;
- P1=table[ge];
- delay(n);
- k1=1;
- k2=0;
- P1=table[qian];
- delay(n);
- k2=1;
- k3=0;
- P1=table[bai];
- delay(n);
- k3=1;
- xianshi2();
- }
- void xianshi2() //控制臺數碼管顯示函數
- {
- k4=0;
- P1=table[n1/10];
- delay(n);
- k4=1;
- k5=0;
- P1=table[n1%10];
- delay(n);
- k5=1;
- k6=0;
- P1=table[n2/10];
- delay(n);
- k6=1;
- k7=0;
- P1=table[n2%10];
- delay(n);
- k7=1;
- }
復制代碼
四、總電路圖及元器件清單 1.總電路圖
1.022.jpg (58.52 KB, 下載次數: 190)
下載附件
2016-4-7 02:40 上傳
總電路圖 2.元器件清單五、使用說明參考書 在使用此交通燈設計時,開/停按鈕控制交通燈的運行,在停的狀態下,十字路交通燈全部為禁止通行的狀態,此時控制臺可以設置通行時間和緩行時間,設置完成后,按下開/停按鈕,交通燈開始正常運行。 六、結論 通過為期兩周的課程設計,我們應用所學數字電子技術順利得完成了交通燈控制器的設計。期間,我們查閱了相關書籍,學到了很多知識,并利用它們設計了符合設計要求的信號產生器、計數器、控制電路等。不僅鞏固了課堂知識,而且有效的和實際結合在了一起,擴展了所學知識和見識。 在設計過程中遇到不少問題,如相關元件運用條件不熟、接口不對應等問題,感覺到書本知識與實際問題及需要結合的難處,但也激發了我這方面的興趣,提高了理論結合實際的意識。 七、心得體會 由于課本上的知識太多,平時課間的學習并不能很好的理解和運用各個元件的功能,所以在這次課程設計過程中,我了解了很多元件的功能,并且對于其在電路中的使用有了更多的認識。有一點是在設計過程中,經常會遇到這樣那樣的情況,就是心里想老著這樣的接法可以行得通,但實際接上電路,總是實現不了,而又一下找不出問題所在,只有在查了書上有關這方面的解釋后才有所進展,因此耗費在這上面的時間很多。總體感覺是:通過這次課程設計,加強了我們動手、思考和解決問題的能力。 八、參考文獻 丁元杰 《單片微機原理及應用》 ;第三版;機械工業出版社出版社 譚浩強 《C程序設計》 ;第三版; 清華大學出版社
|