智能交通燈課程設(shè)計報告_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計報告</b></p><p>  班 級: 電氣1101 </p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  指導(dǎo)教師:

2、 </p><p>  撰寫日期: 2012.12.13 </p><p><b>  目錄</b></p><p>  第一章 交通燈課程設(shè)計功能描述2</p><p>  第二章 課程設(shè)計分析設(shè)計2</p><p><b>  2.1技術(shù)指標(biāo)2</b&g

3、t;</p><p><b>  2.2設(shè)計分析3</b></p><p>  第三章 繪制硬件圖并對硬件電路進(jìn)行說明3</p><p>  3.1 MCS-51單片機(jī)芯片引腳位置及功能符號3</p><p>  3.2 51系列單片機(jī)運(yùn)行的硬件條件4</p><p>  3.3 單片機(jī)

4、的特點與應(yīng)用4</p><p>  第四章 控制系統(tǒng)程序設(shè)計5</p><p><b>  4.1軟件設(shè)計5</b></p><p>  4.2電路連接分配6</p><p>  4.3主程序流程圖7</p><p>  第五章 程序的源代碼清單7</p><p&

5、gt;  第六章 上機(jī)調(diào)試運(yùn)行結(jié)果及分析17</p><p>  6.1交通燈接線圖17</p><p>  第七章 課程設(shè)計的經(jīng)驗教訓(xùn)總結(jié)18</p><p><b>  參考文獻(xiàn):19</b></p><p><b>  附錄19</b></p><p>  第

6、一章 交通燈課程設(shè)計功能描述</p><p>  紅黃綠交通燈控制器采用單片機(jī)及程序存儲器的擴(kuò)展控制,實現(xiàn)控制器的功能要求,例如紅黃綠燈的交替閃爍,定時等等。單片機(jī)將CPU,存儲器,定時器/計數(shù)器及各接口電路組成,具有良好的性價比。本控制器可對紅綠燈通過時間進(jìn)行加減,還可在緊急時刻進(jìn)行手動控制,緊急情況下可開放南北或東西道路,,實施道路路況的控制。 交通信號燈控制方式很多。本系統(tǒng)采用單片機(jī)AT98S52來設(shè)計交通

7、燈控制器,實現(xiàn)了通過51芯片的P1口設(shè)置紅、綠燈亮?xí)r間的功能;紅綠燈循環(huán)點亮,倒計時剩3秒時黃燈閃爍警示;紅綠燈時間通過51單片機(jī)的P0口輸出到雙位數(shù)碼管顯示。本系統(tǒng)實用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。</p><p>  第二章 課程設(shè)計分析設(shè)計</p><p><b>  2.1技術(shù)指標(biāo)</b></p><p>  設(shè)計一個十字路口的交通燈控制

8、電路,每條道路上各配有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該道路禁止通行;黃燈亮表示該道路上未過停車線的車輛禁止通行,已過停車線的車輛繼續(xù)通行;綠燈表示該道路允許通行。該電路自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,實現(xiàn)十字路口自動化。</p><p><b>  2.2設(shè)計分析</b></p><p>  實現(xiàn)紅、綠、黃燈的循環(huán)控制。要實現(xiàn)此功能需要表示

9、三種不同顏色的LED燈分別接在P0個管腳,用軟件實現(xiàn)。 要求東西車道和南北車道上的車輛交替運(yùn)行,每次通行時間為20s;根據(jù)設(shè)計要求和技術(shù)指標(biāo)設(shè)計好電路;繪制硬件圖并對硬件電路進(jìn)行說明。</p><p>  第三章 繪制硬件圖并對硬件電路進(jìn)行說明</p><p>  3.1 MCS-51單片機(jī)芯片引腳位置及功能符號</p><p><b>  如下圖所示。&

10、lt;/b></p><p>  51單片機(jī)系統(tǒng)的引腳說明: 51單片機(jī)89c51采用40Pin封裝的列直接DIP結(jié)構(gòu), 40個引腳中,正電源和底線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。</p><p>  3.2 51系列單片機(jī)運(yùn)行的硬件條件</p><p>  3.3 單片機(jī)的特點與應(yīng)用</p>

11、<p><b>  單片機(jī)的特點: </b></p><p> ?。?)控制功能強(qiáng); </p><p> ?。?)抗干擾性強(qiáng),可靠性高,工作溫度范圍寬; </p><p>  (3)開發(fā)周期短,性價比高,易于產(chǎn)品化;</p><p>  單片機(jī)的應(yīng)用領(lǐng)域: </p><p> ?。?)

12、智能化儀表 ;</p><p> ?。?)實時工業(yè)控制 ;</p><p>  (3)機(jī)電一體化產(chǎn)品;</p><p><b> ?。?)智能接口; </b></p><p> ?。?)辦公自動化; </p><p><b> ?。?)商業(yè)營銷 ;</b></p>

13、<p><b>  (7)家用電器;</b></p><p>  第四章 控制系統(tǒng)程序設(shè)計</p><p><b>  4.1軟件設(shè)計</b></p><p>  先了解實際交通燈的變化規(guī)律,假設(shè)一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈;然后轉(zhuǎn)狀態(tài)1南北綠燈通車,東西紅燈。過一段時間轉(zhuǎn)狀態(tài)

14、2,南北綠燈閃幾次轉(zhuǎn)黃燈,延時幾秒,東西仍然紅燈。再轉(zhuǎn)狀態(tài)3,東西綠燈通車,南北紅燈。過一段時間轉(zhuǎn)狀態(tài)4,東西綠燈閃幾次轉(zhuǎn)亮黃燈,延時幾秒,南北仍然紅燈,最后回到狀態(tài)1,不斷循環(huán)。</p><p> ?。?)當(dāng)東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北</p><p>  道為綠燈,此道車輛通過,行人禁止通行。時間為20秒。</p><p> ?。?)

15、黃燈閃爍3秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。</p><p> ?。?)當(dāng)東西方向為綠燈,此道車輛通行;南北方向為紅燈,南北道車輛</p><p>  禁止通過,行人通行。時間為20秒。 東西方向車流大 通行時間長。 (4)這樣如上表的時間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車 </p><p>  輛就能安全暢通的通行。</p>&

16、lt;p><b>  4.2電路連接分配</b></p><p><b>  4.3主程序流程圖</b></p><p>  第五章 程序的源代碼清單</p><p>  #include <reg51.h></p><p>  #include <intrins.h>

17、</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit k1=P1^6;</p><p>  sbit k2=P1^7;</p><p>  sbit k3=P2^7;</p>

18、<p>  sbit k4=P3^0;</p><p>  sbit yellowled_nb=P1^4;//南北黃燈</p><p>  sbit yellowled_dx=P1^1;//東西黃燈</p><p>  uchar code table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x

19、7f,0x6f,0x00};</p><p>  uchar data dig;//位選</p><p>  uchar data led;//偏移量</p><p>  uchar data buf[4];</p><p>  uchar data sec_dx=20;//東西數(shù)碼指示值</p><p>  uc

20、har data sec_nb=20;//南北數(shù)碼指示值</p><p>  uchar data set_timedx=20;</p><p>  uchar data set_timenb=20;//倒計時設(shè)置的鍵值保存</p><p>  uchar data b;//定時器中斷次數(shù)</p><p>  bit time;//燈狀態(tài)循環(huán)

21、標(biāo)志</p><p>  bit int0_time;//中斷強(qiáng)行標(biāo)志</p><p>  bit set;//調(diào)時方向切換鍵標(biāo)志</p><p>  void delay(int ms);//延時子程序</p><p>  void key();//按鍵掃描子程序</p><p>  void key_to1()

22、;//鍵處理子程序</p><p>  void key_to2();</p><p>  void display();//顯示子程序</p><p>  void main()</p><p><b>  {</b></p><p>  TMOD=0X01; </p><

23、p><b>  TH0=0X3C;</b></p><p><b>  TL0=0XB0;</b></p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b>  TR0=1;&

24、lt;/b></p><p><b>  EX0=1;</b></p><p><b>  EX1=1;</b></p><p>  P1=0Xf3;// 東西通行</p><p><b>  while(1)</b></p><p><b&

25、gt;  {</b></p><p>  key(); //調(diào)用按鍵掃描程序</p><p>  display(); //調(diào)用顯示程序</p><p><b>  }</b></p><p><b>  }</b></p><p>  void key()/

26、/按鍵掃描子程序</p><p><b>  {</b></p><p><b>  if(k1!=1)</b></p><p><b>  {</b></p><p>  delay(10);</p><p><b>  if(k1!=1)&

27、lt;/b></p><p><b>  {</b></p><p>  while(k1!=1);</p><p>  key_to1();</p><p><b>  }</b></p><p><b>  }</b></p>&

28、lt;p><b>  if(k2!=1)</b></p><p><b>  {</b></p><p>  delay(10);</p><p><b>  if(k2!=1)</b></p><p><b>  {</b></p>

29、<p>  while(k2!=1); </p><p>  key_to2();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(k4!=1)</b></p><p><

30、b>  {</b></p><p>  delay(10);</p><p><b>  if(k4!=1)</b></p><p><b>  {</b></p><p>  while(k4!=1);</p><p><b>  set=!se

31、t;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(k3!=1&&int0_time==1)</p><p><b>  {</b></p><p>  T

32、R0=1; //啟動定時器</p><p>  sec_nb=59;</p><p>  sec_dx=59;</p><p>  int0_time=0;//清標(biāo)志</p><p>  } else if(k3!=1&&int0_time==0)</p><p><b>  {<

33、/b></p><p><b>  TR0=1;</b></p><p>  set_timenb=sec_nb;</p><p>  set_timedx=sec_dx; //設(shè)置的鍵值返回保存</p><p><b>  }</b></p><p>  void d

34、isplay()</p><p><b>  {</b></p><p>  buf[1]=sec_dx/10; //第1位 東西秒十位</p><p>  buf[2]=sec_dx%10; //第2位 東西秒個位</p><p>  buf[3]=sec_nb/10; //第3位 南北秒十位</p>&

35、lt;p>  buf[0]=sec_nb%10; //第4位 南北秒個</p><p>  P0=table[buf[led]];</p><p>  delay(2);//先延時,提前顯示一位了</p><p><b>  P2=dig;</b></p><p>  dig=_crol_(dig,1);<

36、/p><p><b>  led++;</b></p><p>  if (led==4)</p><p><b>  {led=0;</b></p><p><b>  dig=0xfe;</b></p><p><b>  }</b>

37、;</p><p><b>  }</b></p><p>  void time0(void) interrupt 1 using 1 //定時中斷子程序</p><p><b>  {</b></p><p><b>  b++;</b></p><p

38、>  if(b==10) // 定時器中斷次數(shù)。</p><p><b>  {</b></p><p><b>  b=0;</b></p><p><b>  sec_dx--;</b></p><p><b>  sec_nb--;</b>

39、</p><p>  /******************南北黃燈閃爍判斷*************************/</p><p>  if(sec_nb==3&&time==0)</p><p><b>  {</b></p><p>  yellowled_dx=1;//南北黃燈亮&

40、lt;/p><p>  delay(300);</p><p>  yellowled_dx=0</p><p><b>  ;</b></p><p><b>  }</b></p><p>  if(sec_nb==2&&time==0)</p>

41、<p><b>  {</b></p><p>  yellowled_dx=1;//南北黃燈亮</p><p>  delay(300);</p><p>  yellowled_dx=0;</p><p><b>  } </b></p><p>  if(s

42、ec_nb==1&&time==0)</p><p><b>  {</b></p><p>  yellowled_dx=1;</p><p>  delay(300);</p><p>  yellowled_dx=0;</p><p><b>  }</b&g

43、t;</p><p>  /*******************東西黃燈閃判斷************************/ </p><p>  if(sec_dx==3&&time==1)</p><p><b>  {</b></p><p>  yellowled_nb=1;//南

44、北黃燈亮</p><p>  delay(300);</p><p>  yellowled_nb=0;</p><p><b>  }</b></p><p>  if(sec_dx==2&&time==1)</p><p><b>  {</b></

45、p><p>  yellowled_nb=1;//南北黃燈亮</p><p>  delay(300);</p><p>  yellowled_nb=0;</p><p><b>  }</b></p><p>  if(sec_dx==1&&time==1)</p>

46、<p><b>  {</b></p><p>  yellowled_nb=1;</p><p>  delay(300);</p><p>  yellowled_nb=0;</p><p><b>  }</b></p><p>  /***********

47、********************************/</p><p>  if(sec_dx==0||sec_nb==0) //東西或南北先到達(dá)1S時即開始重新計時</p><p><b>  { </b></p><p>  sec_dx=set_timedx; </p><p>  sec_nb=set

48、_timenb; //第一次循環(huán)結(jié)束重置</p><p>  if(time==1)</p><p><b>  {</b></p><p>  P1=0XF3; //東西通行</p><p><b>  }</b></p><p><b>  else</

49、b></p><p><b>  {</b></p><p>  P1=0xde; //南北通行</p><p><b>  }</b></p><p>  time=!time; //取反</p><p><b>  }</b></p&

50、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  void key_to1()</p><p><b>  {</b></p><p>  TR0=0; //關(guān)定時器</p><p>  i

51、f(set==0)</p><p>  sec_nb++; //南北加1S</p><p><b>  else</b></p><p>  sec_dx++;//東西加1S</p><p>  if(sec_nb==100)</p><p><b>  sec_nb=1;</b&

52、gt;</p><p>  if(sec_dx==100)</p><p>  sec_dx=1;//加到100置1</p><p>  void key_to2()</p><p><b>  {</b></p><p>  TR0=0;//關(guān)定時器</p><p>&

53、lt;b>  if(set==0</b></p><p>  sec_nb--; //南北減1S </p><p><b>  else</b></p><p>  sec_dx--; //東西減1S</p><p>  if(sec_nb==0)</p><p>  sec

54、_nb=99;</p><p>  if(sec_dx==0 )</p><p>  sec_dx=99;//減到1重置99</p><p><b>  }</b></p><p>  void int0(void) interrupt 0 using 1 //東西強(qiáng)行</p><p>&l

55、t;b>  {</b></p><p><b>  TR0=0;</b></p><p><b>  P1=0XF3;</b></p><p>  sec_dx=88;</p><p>  sec_nb=88;</p><p>  int0_time=1;&

56、lt;/p><p><b>  }</b></p><p>  void int1(void) interrupt 2 using 1 //南北強(qiáng)行</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>

57、;<b>  P1=0XDE;</b></p><p>  sec_nb=88;</p><p>  sec_dx=88;</p><p>  int0_time=1;</p><p><b>  }</b></p><p>  void delay(int ms)</

58、p><p><b>  {</b></p><p><b>  uint j,k;</b></p><p>  for(j=0;j<ms;j++)</p><p>  for(k=0;k<124;k++);}</p><p>  第六章 上機(jī)調(diào)試運(yùn)行結(jié)果及分析<

59、/p><p><b>  6.1交通燈接線圖</b></p><p><b> ?。?)硬件連接圖</b></p><p><b>  (2)仿真效果圖 </b></p><p>  經(jīng)過在仿真軟件上的仿真,已經(jīng)按實驗要求得到了預(yù)期的結(jié)果,可以成功的控制十字交通路口的交通秩序。&l

60、t;/p><p>  第七章 課程設(shè)計的經(jīng)驗教訓(xùn)總結(jié)</p><p>  通過這次課程設(shè)計,加強(qiáng)了我動手、思考和解決問題的能力。電路原理和連接,和芯片上的選擇,也略懂。鞏固數(shù)字邏輯電路的理論知識,并對芯片有了新的認(rèn)識,懂得它的功能,更重要的是如何將電路靈活運(yùn)用于實際生活。協(xié)作的重要性。我在做課程設(shè)計同時也是對課本知識的鞏固和加強(qiáng),平時看課本時,有時問題老是弄不懂,做完課程設(shè)計,那些問題就迎刃而

61、解了。而且還可以記住很多東西。比如一些芯片的功能,平時看課本,這次看了,下次就忘了,主要是因為沒有動手實踐過吧!認(rèn)識來源于實踐,實踐是認(rèn)識的動力和最終目的,實踐是檢驗真理的唯一標(biāo)準(zhǔn)。故一個小小的課程設(shè)計,對我們的作用如此之大。 本次關(guān)于簡易交通燈的設(shè)計與制作是在 指導(dǎo)老師的精心指導(dǎo)下,和同組內(nèi)其他成員的共同交流下才得以利完成。經(jīng)過本次設(shè)計把我在大學(xué)所學(xué)的理論知識轉(zhuǎn)化為實際應(yīng)用,既鍛煉了我們的實際操作能力,又使理論知識得以加強(qiáng)和升華,激發(fā)

62、了創(chuàng)新意識。 特別感謝與我同組的其他組員,在工作中我們積極配合、勇于創(chuàng)新。通過本次設(shè)計使我們自身的動手能力得到了很大的提高,使我們走出了實踐的盲區(qū),為以后的畢業(yè)工作后的動手打下了堅實的基礎(chǔ)。最后感謝學(xué)院為我們提供了難得的機(jī)會。再次感謝各位</p><p><b>  參考文獻(xiàn):</b></p><p>  [1] AT89C51引腳定義</p><

63、p>  [2]百度文庫數(shù)碼管引腳定義</p><p>  [3]百度空間 基于51單智能交通燈設(shè)計 </p><p>  [4]百度知道 51單片機(jī)定時器的使用</p><p>  [5] MSC51單片機(jī)交通燈程序-單片機(jī)-電子工程世界網(wǎng)</p><p>  [7] 倪志蓮.單片機(jī)系統(tǒng)設(shè)計與制作.機(jī)械工業(yè)出版社,2012</p&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論