久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6810|回復: 4
打印 上一主題 下一主題
收起左側

交通信號燈控制電路的設計 單片機課程設計報告 PPT文檔下載

[復制鏈接]
跳轉到指定樓層
樓主

全部資料下載(包含論文程序及單片機交通燈仿真文件,word ppt文檔)
交通燈.rar (818 KB, 下載次數: 75)


課程設計報告

報 告 題 目 : 交通信號燈控制電路的設計        

作者所在系部:物理與電子科學學院

作者所在專業:電子信息與科學技術專業

作者所在班級: 電子三班

作 者 姓 名 :宋偉         201840620325     

張淼201840620342

吳剛201840620334

徐美炯201840620336      

完 成 時 間 :2010 12 19



課程設計任務書
課題名稱
交通信號燈控制電路的設計
完成時間

指導教師

職稱

學生姓名
宋偉、張淼、吳剛、徐美炯
班 級
電子三班
總體設計要求和技術要點
設計一個交通信號燈控制電路。要求:
1.產生以1秒為單位的計時;
2.顯示通行時間和緩行時間;
3.控制顯示時間和緩行時間,使之能加減。
工作內容及時間進度安排
第15周:
1立題論證方案設計、熟悉軟件
2檢查設計結果,預答辯
第16周:
1 仿真實驗
2 驗收答辯
3完成設計報告ppt word文檔等
課程設計成果
1.與設計內容對應的軟件程序
2.課程設計報告書


內     容     摘      要

隨著社會經濟的發展,城市交通問題越來越引起人們的關注。人、車、路三者關系的協調,已成為交通管理部門需要解決的重要問題之一。城市交通控制系統是用于城市交通數據監測、交通信號燈控制與交通疏導的計算機綜合管理系統,它是現代城市交通監控指揮系統中最重要的組成部分。如何采用合適的控制方法,最大限度利用好耗費巨資修建的城市高速道路,緩解主干道與匝道、城區同周邊地區的交通擁堵狀況,越來越成為交通運輸管理和城市規劃部門亟待解決的主要問題。為此,通過我應用所學的知識設計了一套交通燈控制電路的方案。交通燈的控制系統主要由計時電路、主控電路、中斷電路、顯示電路組成。

目           錄

一、 概    述  ……… ……………………………………………………………3
二、方案設計
1、單片機AT89C52……………………………………………………………..3
2、數碼管顯示原理……………………………………………………………4~5
三、單元電路設計與源程序………………………………………………………5~11
四、總電路圖及元器件清單
1.總電路圖……………………………………………………………………12
2.元器件清單…………………………………………………………………12
五、使用說明參考…………………………………………………………………..12
六、結論……………………………………………………………………………..12
七、心得體會………………………………………………………………………..13
八、參考文獻………………………………………………………………………..13
  • 概述
單片機完成交通信號燈的控制,該交通信號燈控制器由兩條干道匯合成十字路口,在每個入口處設置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外。用紅、綠、黃發光二極管作信號燈。二、方案設計1.方案設計

根據設計的要求可知,系統的硬件原理框圖如下圖所示。


  系統硬件框圖

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數碼管的顯示驅動。

中斷子程序:


程序流程圖:


三、單元電路設計與源程序

1、主控電路

  控制電路由P3^3—P3^7控制,其中P3^3控制開/停按鈕,P3^4、P3^5控制通行時間的加和減,P3^6、P3^7控制緩行時間的加和減;開/停的控制由標志位flag控制,且flag的初始值置為0。通行時間和緩行時間的控制由jianpan函數控制(具體見源程序中的鍵盤函數)。

2、顯示電路

顯示電路由單片機AT89C52的P1和P2兩個并行I/O接口控制,其中P1口控制顯示控制臺的時間以及車輛的通行時間和緩行時間,P2口控制十字路交通燈;在控制顯示時,使用xianshi函數控制控制臺顯示的顯示時間,xianshi2函數控制顯示車輛的通行時間和緩行時間。

3源程序

  1. #include
  2. #define uint unsigned  int
  3. #define uchar unsigned char
  4. #define n  5 //
  5. uchar qian,bai, shi,ge,aa;
  6. uchar flag=0,n1,n2,b,c,d; //標志位及變量
  7. sbit k0=P0^0;//數碼管顯示位定義
  8. sbit k1=P0^1;
  9. sbit k2=P0^2;
  10. sbit k3=P0^3;
  11. sbit k4=P0^4;
  12. sbit k5=P0^5;
  13. sbit k6=P0^6;
  14. sbit k7=P0^7;
  15. sbit kai=P3^3; //鍵盤控制位定義
  16. sbit jia1=P3^4;
  17. sbit jian1=P3^5;
  18. sbit jia2=P3^6;
  19. sbit jian2=P3^7;
  20. uchar code table[]={
  21. 0x3f,0x06,0x5b,0x4f,
  22. 0x66,0x6d,0x7d,0x07,
  23. 0x7f,0x6f,0x77,0x7c,
  24. 0x39,0x5e,0x79,0x71};//數碼管顯示代碼
  25. void xianshi();        //十字路口數碼管顯示函數
  26. void xianshi2();//控制臺數碼管顯示函數
  27. void jianpan();        //鍵盤檢測函數
  28. void delay(uint z) //延時函數
  29. {        
  30.         uint i,j;
  31.         for(i=z;i>0;i--)
  32.         for(j=110;j>0;j--);
  33. }

  34. void init()        //定時器0初始化,變量初始化函數
  35. {        b=0;
  36.     c=0;
  37.         d=0;
  38.         n1=0;
  39.         n2=0;
  40.     P1=0;
  41.         P2=0;
  42.         TMOD=0x01;
  43.         TH0=(65536-50000)/256;         
  44.         TL0=(65536-50000)%256;
  45.         EA=1;
  46.         ET0=1;
  47. }
  48. void main()
  49. {
  50.         init();
  51.         while(1)
  52.                 {           
  53.                            jianpan();//檢測鍵盤
  54.                          if(flag==0)//交通燈處于設置狀態標志位flag=0
  55.                          P2=0x09;//四路紅燈全亮
  56.                          if(flag==1)//檢測交通燈處于運行狀態標志位flag=1進入交通顯示循環
  57.                          {
  58.                           if(n1<10)//檢查通行時間設置是否合理,不合理則自動設置
  59.                           {n1=30,n2=5;}
  60.                           if(b==0&&c==0)
  61.                           {b=n1;d=n1-n2;c=1;P2=0x21;}
  62.                       if(d==0&&c==1)
  63.                       {d=n2;c=2; P2=0x11;}
  64.                           if(d==0&&c==2)
  65.                           {b=n1-n2,d=n1;c=3;P2=0x0c;}
  66.                       if(b==0&&c==3)
  67.                       {b=n2;c=0; P2=0x0a;}                        
  68.                       xianshi();//十字路口顯示        
  69.                          }
  70.                          xianshi2();//控制臺顯示
  71.          }
  72. }                 
  73. void time0 () interrupt  1
  74. {        
  75.         TH0=(65536-50000)/256;
  76.         TL0=(65536-50000)%256;
  77.         aa++;
  78.          if(aa==20)//檢測1S鐘
  79.           {        aa=0;
  80.                 --d;//數碼管顯示減一
  81.                 --b;
  82.            }
  83. }
  84. void jianpan() //鍵盤檢查函數
  85. {  if(kai==0)//檢測開始鍵按下
  86.         {delay(5);                  
  87.          if(kai==0)
  88.          flag++;
  89.          if(flag>2)//設置開始鍵2種狀態
  90.          flag=0;         
  91.          while(!kai)//鍵盤松手檢測
  92.          xianshi();//顯示路口數碼管
  93.         }
  94.         if(flag==1)//檢測開始鍵按下flag=1,打開定時器                  
  95.          TR0=1;
  96.         if(flag==2)//檢測開始鍵按下flag=0,重新初始化系統
  97.         {TR0=0;n1=0;n2=0;flag=0;b=0;c=0;d=0;}
  98.   if(jia1==0&&flag==0)//檢測通行+鍵按下且flag=0(交通燈處于設置狀態)
  99.    {
  100.     delay(5);                  
  101.          if(jia1==0&&flag==0)
  102.          {n1++;}//通行時間+1s
  103.          if(n1>99)//檢測通信時間最大時長99s
  104.          n1=n2+1;//重置通行時間且大于緩行時間
  105.          while(!jia1)
  106.          xianshi2();
  107.    }
  108.   if(jian1==0&&n1>n2&&flag==0)//檢測通行-鍵按下且通行時間大于緩行時間且flag=0(交通燈處于設置狀態)
  109.    {
  110.     delay(5);                  
  111.          if(jian1==0&&n1>n2&&flag==0)
  112.          {n1--;}//通行時間減一
  113.          if(n1==n2)
  114.          n1=99;
  115.          while(!jian1)
  116.          xianshi2();
  117.    }
  118.   if(jia2==0&&n2<n1&&flag==0) 檢測緩行+鍵按下且緩行時間小于通行時間且flag="0(交通燈處于設置狀態)
  119.    {
  120.     delay(5);                  
  121.          if(jia2==0&&n2<n1&&flag==0)
  122.          {n2++;}//緩行時間+1s
  123.          if(n2==n1)
  124.          n2=1;
  125.          while(!jia2)
  126.          xianshi2();
  127.    }
  128.   if(jian2==0&&flag==0)//檢測緩行-鍵按下且flag=0(交通燈處于設置狀態)
  129.    {
  130.     delay(5);                  
  131.          if(jian2==0&&flag==0)
  132.          {n2--;}//緩行時間-1s
  133.          if(n2==0)
  134.          n2=n1-1;
  135.          while(!jian2)
  136.          xianshi2();
  137.    }
  138. }
  139. void xianshi()//路口數碼管顯示函數
  140. {                shi=b/10;
  141.         ge=b%10;
  142.                 qian=d/10;
  143.                 bai=d%10;
  144.             k0=0;
  145.                 P1=table[shi];
  146.                 delay(n);
  147.                 k0=1;
  148.                 k1=0;
  149.                 P1=table[ge];
  150.                 delay(n);
  151.                 k1=1;
  152.                 k2=0;
  153.                 P1=table[qian];
  154.                 delay(n);
  155.                 k2=1;
  156.                 k3=0;
  157.                 P1=table[bai];
  158.                 delay(n);
  159.                 k3=1;
  160.                 xianshi2();
  161. }
  162. void xianshi2()        //控制臺數碼管顯示函數
  163. {        
  164.             k4=0;
  165.                 P1=table[n1/10];
  166.                 delay(n);
  167.                 k4=1;
  168.                 k5=0;
  169.                 P1=table[n1%10];
  170.                 delay(n);
  171.                 k5=1;
  172.                 k6=0;
  173.                 P1=table[n2/10];
  174.                 delay(n);
  175.                 k6=1;
  176.                 k7=0;
  177.                 P1=table[n2%10];
  178.                 delay(n);
  179.                 k7=1;
  180. }
復制代碼




四、總電路圖及元器件清單

1.總電路圖

總電路圖

2.元器件清單

      元件名稱

          數量(個)

單片機AT89C52

1

交通燈

4

LED數碼顯示

6

按鈕

5

線阻

1

五、使用說明參考書

在使用此交通燈設計時,開/停按鈕控制交通燈的運行,在停的狀態下,十字路交通燈全部為禁止通行的狀態,此時控制臺可以設置通行時間和緩行時間,設置完成后,按下開/停按鈕,交通燈開始正常運行。

、結論

通過為期兩周的課程設計,我們應用所學數字電子技術順利得完成了交通燈控制器的設計。期間,我們查閱了相關書籍,學到了很多知識,并利用它們設計了符合設計要求的信號產生器、計數器、控制電路等。不僅鞏固了課堂知識,而且有效的和實際結合在了一起,擴展了所學知識和見識。
在設計過程中遇到不少問題,如相關元件運用條件不熟、接口不對應等問題,感覺到書本知識與實際問題及需要結合的難處,但也激發了我這方面的興趣,提高了理論結合實際的意識。

、心得體會

由于課本上的知識太多,平時課間的學習并不能很好的理解和運用各個元件的功能,所以在這次課程設計過程中,我了解了很多元件的功能,并且對于其在電路中的使用有了更多的認識。有一點是在設計過程中,經常會遇到這樣那樣的情況,就是心里想老著這樣的接法可以行得通,但實際接上電路,總是實現不了,而又一下找不出問題所在,只有在查了書上有關這方面的解釋后才有所進展,因此耗費在這上面的時間很多。總體感覺是:通過這次課程設計,加強了我們動手、思考和解決問題的能力。

、參考文獻

丁元杰  《單片微機原理及應用》 ;第三版;機械工業出版社出版社

譚浩強  《C程序設計》     ;第三版; 清華大學出版社


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:125378 發表于 2016-8-12 15:50 | 只看該作者
求分享
回復

使用道具 舉報

板凳
ID:306001 發表于 2018-4-11 17:11 | 只看該作者
,這是大學時候和同學一起做的課程設計,被誰上傳了
回復

使用道具 舉報

地板
ID:309914 發表于 2018-4-18 00:19 | 只看該作者
不錯,感謝分享
回復

使用道具 舉報

5#
ID:309914 發表于 2018-4-18 10:04 | 只看該作者
還不錯的說。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九热在线免费视频 | 国产午夜精品一区二区三区四区 | 精品欧美一区二区在线观看 | av在线免费网站 | 在线亚洲免费视频 | av片免费| 成人性生交大片免费看r链接 | 中文字幕在线观看一区二区 | 羞羞视频网站免费观看 | 欧美不卡一区二区三区 | 欧美一区二区三区在线观看 | 久国久产久精永久网页 | 一区二区视频 | 日本一区二区三区视频在线 | 一区二区三区高清 | 国产精品久久av | 亚洲一区久久久 | 国产精品一区三区 | 国产精品视频网站 | 欧美99久久精品乱码影视 | 五月免费视频 | 欧美日日 | 亚洲精品2区 | www.日本国产 | 日韩精品亚洲专区在线观看 | 日韩精品一区二区三区四区视频 | 亚洲一区毛片 | 亚洲精品黄 | 欧美日韩网站 | 久久久久久久久久久国产 | 中文字幕 国产 | 91在线资源| 日本欧美国产 | 欧美视频免费 | 精品99在线| 最新中文字幕在线 | 亚洲精品视 | 天堂在线1 | 亚洲黄色网址视频 | 国产精品久久久爽爽爽麻豆色哟哟 | 日韩国产一区二区三区 |