太陽能紅綠燈課程設(shè)計_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  一、任務(wù)</b></p><p>  設(shè)計一個使用太陽能供電的紅綠交通燈。</p><p><b>  二、要求</b></p><p><b>  1. 基本要求</b></p><p>  點亮交通燈。使用太陽能電板供電驅(qū)動紅綠交通燈(led)

2、,點亮即可;</p><p>  手動運行。使用按鍵控制模擬,符合實際交通燈閃爍變化,即四個方向的交通燈的紅綠燈變換;</p><p>  自動運行。使用MCU等嵌入式控制芯片自動控制led模擬交通燈的閃爍,允許此芯片使用外部供電; </p><p>  顯示倒計時。使用MCU等嵌入式控制芯片顯示紅燈倒計時,黃燈倒計時,綠燈倒計時(四個方向其中一個方向即可)。<

3、;/p><p><b>  2. 發(fā)揮部分</b></p><p>  當基本要求2實現(xiàn)的情況下,手動運行,實現(xiàn)基本要求4的顯示倒計時。</p><p>  在不使用MCU等嵌入式控制芯片的情況下,實現(xiàn)基本要求3(交通燈閃爍)的自動運行。</p><p>  在不使用MCU等嵌入式控制芯片的情況下,實現(xiàn)基本要求4的顯示倒計時

4、。</p><p>  設(shè)計使用太陽能供電的紅綠交通燈,即不能使用任何外部供電。僅需實現(xiàn)基本要求3(交通燈閃爍)的自動運行。</p><p>  設(shè)計使用太陽能供電的紅綠交通燈,即不能使用任何外部供電,僅需實現(xiàn)基本要求4的顯示倒計時。</p><p><b>  其它功能。</b></p><p><b>  

5、目錄</b></p><p>  1 設(shè)計目的………………………………………………………</p><p>  2 設(shè)計思路………………………………………………………</p><p>  3 設(shè)計過程………………………………………………………</p><p>  3.1方案比較與論證…………………………………………… </p&

6、gt;<p>  3.2電路設(shè)計和設(shè)計說明………………………………………</p><p>  3.2.1 89C52單片機……………………………………………………</p><p>  3.2.2 紅綠燈………………………………………………</p><p>  3.2.3(顯示部分)數(shù)碼管與按鍵…………………………</p><p>

7、;  3.2.4 太陽能電池板供電電路………………………………</p><p>  3.2.4 原理圖……………………………………………</p><p>  4測試數(shù)據(jù)與分析………………………………………………</p><p>  5結(jié)論與體會……………………………………………</p><p>  6附件…………………………………………………

8、</p><p>  6.1實物電路圖……………………………………………………</p><p>  6.2源程序………………………………………………</p><p><b>  交通燈控制電路</b></p><p>  摘要:交通信號燈常用于城市、街道主、支路口,用來控制車輛的流量,提高交叉路口車輛的通行能力,緩沖交通

9、壓力。本交通燈設(shè)計主要由51單片機,太陽能電池板供電電路和模擬交通燈,數(shù)碼管和鍵盤等組成。51單片機由ATC89c52芯片控制模擬交通燈電路、數(shù)碼管電路實現(xiàn),供電主要采用采用太陽能電池板電路和儲能電路,從而顯示紅黃綠燈的轉(zhuǎn)換。</p><p>  關(guān)鍵字:交通燈 數(shù)碼管倒計時 太陽能電池板供電 </p><p><b>  1 、設(shè)計目的</b></p>

10、;<p>  (1)熟悉MCU等集成電路的引腳安排。</p><p>  (2)了解太陽能電池板結(jié)構(gòu)及其使用。</p><p> ?。?)了解交通燈控制電路的組成及工作原理。</p><p> ?。?)學會用仿真軟件對設(shè)計的原理圖進行仿真。</p><p> ?。?)熟悉數(shù)字交通燈控制電路的設(shè)計與制作。</p>&

11、lt;p><b>  2、設(shè)計思路</b></p><p> ?。?)利用MCU芯片控制模擬交通燈的轉(zhuǎn)換</p><p> ?。?)利用數(shù)碼管電路充當交通燈定時電路(顯示倒計時)</p><p> ?。?)設(shè)計交通燈控制電路</p><p> ?。?)利用太陽能電池板為MCU電路供電</p><

12、p>  (5)其他功能的實現(xiàn)</p><p><b>  3 設(shè)計過程 </b></p><p>  3.1方案論證與比較</p><p>  方案一 用單片機技術(shù)來實現(xiàn)交通燈控制</p><p>  用單片機技術(shù)來來實現(xiàn)交通燈控制,容易實現(xiàn),而且該電路可靠性也很高。由于本組隊員單片機剛剛進入學習,一方面更快地學

13、習單片機,另一方面也更快地進入設(shè)計,所以選用了MCU來實現(xiàn)交通燈控制。交通燈控制系統(tǒng)的原理框圖如下圖所示。</p><p>  交通燈控制狀態(tài)分析: Stste1 東西亮紅燈,南北亮綠燈;</p><p>  Stste2 東西亮紅燈,南北亮黃燈;</p><p>  Stste3 東西亮綠燈,南北亮紅燈;</p><p>  Stste1

14、東西亮黃燈,南北亮紅燈;</p><p>  在緊急狀況下,實現(xiàn)四個方向的亮紅燈;</p><p>  方案二 用數(shù)電電子技術(shù)來實現(xiàn)交通燈控制</p><p>  它主要由控制器、定時器、譯碼器和秒脈沖信號發(fā)生器等部分組成。秒脈沖發(fā)生器是該系統(tǒng)中定時器和控制器的標準時鐘信號源,譯碼器輸出兩組信號燈的控制信號,經(jīng)驅(qū)動電路后驅(qū)動信號燈工作,控制器是系統(tǒng)的主要部分,

15、由它控制定時器和譯碼器的工作。電路設(shè)計相對復(fù)雜,所以我們并沒有采取這個方案。</p><p>  3.2.單元電路的設(shè)計 </p><p> ?。?)太陽能供電電路</p><p> ?。?)紅綠燈電路設(shè)計</p><p><b>  4系統(tǒng)調(diào)試與結(jié)果</b></p><p> ?。?)程序的編寫

16、及調(diào)試,均有結(jié)果和現(xiàn)象。</p><p> ?。?)交通燈、太陽能電池板電路設(shè)計部分等</p><p> ?。?)調(diào)試交通燈按鍵控制以及數(shù)碼管倒計時顯示部分。 </p><p><b>  5結(jié)論</b></p><p><b>  1、能實現(xiàn)的功能</b></p><p>

17、  交通燈的狀態(tài)轉(zhuǎn)換和計時時間的顯示,基本能實現(xiàn)甲、乙道路直行和轉(zhuǎn)彎燈的顯示功能,太陽能可以為交通模擬燈充分供電。并且在緊急狀況下實現(xiàn)四個方向全亮紅燈,數(shù)碼管倒計時停止。</p><p><b>  2、不足之處</b></p><p>  交通燈設(shè)計中沒有形成模塊化。</p><p><b>  6、設(shè)計心得體會</b>

18、</p><p>  通過這次的參與,發(fā)現(xiàn)了許多欠缺的知識,在答辯時,也認識到了差距。不過在不斷的學習和設(shè)計中,還是有些意外的收獲的,團隊的合作,也讓我們充分體會到了過程的艱辛和愉快的。希望通過不斷地學習,不斷地努力,做到更好!</p><p><b>  附件</b></p><p><b>  總電路圖</b><

19、/p><p>  1.太陽能電板或蓄電池</p><p><b>  2.電腦pc供電</b></p><p><b>  源代碼</b></p><p>  //自動控制交通燈的閃爍</p><p>  #include<reg52.h></p>&l

20、t;p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  uchar t0,s1,g1,temp,state=1;int t=-1;</p><p>  uchar code table[]=</p><p>  {0x3f,0x06

21、,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c,</p><p>  0x39,0x5e,0x79,0x71};</p><p>  //----依次為南北 紅 黃 綠 燈亮</p><p>  sbit d1=P1^0;

22、</p><p>  sbit d2=P1^1;</p><p>  sbit d3=P1^2;</p><p>  //----依次為東西 黃 綠 紅 燈亮</p><p>  sbit d6=P1^5;</p><p>  sbit d7=P1^6;</p><p>  sbit d8=P1

23、^7;</p><p>  void display(uchar s1,uchar g1);</p><p>  void init();</p><p>  void judg();</p><p>  void state_led();</p><p>  void keyscan();</p>&l

24、t;p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=115;y>0;y--);</p>

25、<p><b>  }</b></p><p>  //------------主函數(shù)------</p><p>  void main()</p><p><b>  {</b></p><p><b>  init();</b></p><

26、p>  keyscan();</p><p><b>  }</b></p><p>  void timer() interrupt 1 //一個定時器中斷</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;</p>&l

27、t;p>  TL0=(65536-50000)%256;</p><p><b>  t0++; </b></p><p><b>  }</b></p><p>  void judg() //計時函數(shù)</p><p><b>  { </b></p>

28、<p><b>  if(t!=-1)</b></p><p><b>  { </b></p><p><b>  s1=t/10;</b></p><p>  g1=t%10; </p><p><b>  }</b></p&

29、gt;<p>  display(s1,g1); // 數(shù)碼管上顯示倒計時</p><p>  if(t0 == 20) // 1s 20*50000=1s</p><p><b>  { </b></p><p>  t0=0; //清零 </p><p><b>  if(t

30、==-1)</b></p><p><b>  { </b></p><p>  state_led();//進入狀態(tài)選擇</p><p>  if(state==4)//狀態(tài)循環(huán)</p><p><b>  {</b></p><p><b> 

31、 state=0;</b></p><p><b>  }</b></p><p>  state++; //狀態(tài)切換 </p><p><b>  } </b></p><p>  t--;//一秒減一次,倒計時實現(xiàn)</p><p><b>  }

32、 </b></p><p><b>  }</b></p><p>  //-----------狀態(tài)函數(shù)--------</p><p>  void state_led()</p><p><b>  {</b></p><p>  if(state=

33、=1)</p><p>  { d3=1; d8=1; </p><p>  d1=0; d7=0; //----南北紅燈亮 東西綠燈亮</p><p><b>  t=15; </b></p><p><b>  }</b></p><p>  else i

34、f(state==2)</p><p>  {d1=1; d7=1; </p><p>  d1=0; d6=0; //----南北紅燈亮 東西黃燈亮</p><p><b>  t=3;</b></p><p><b>  }</b></p><p>  els

35、e if(state==3)</p><p><b>  {</b></p><p>  d1=1; d6=1;</p><p>  d2=0; d8=0; //----南北綠燈亮 東西紅燈亮</p><p><b>  t=15;</b></p><p>&

36、lt;b>  }</b></p><p>  else if(state==4)</p><p><b>  {</b></p><p>  d2=1; d8=1;</p><p>  d3=0; d8=0; //----南北黃燈亮 東西紅燈亮</p><p>&

37、lt;b>  t=3; </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void init()//初始化子程序</p><p><b>  {</b></p><p>  

38、//*******定時器******</p><p>  TMOD=0x01;</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  EA=1;</b></p><p><b> 

39、 ET0=1;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  void display(uchar s1,uchar g1) //顯示子函數(shù)</p><p><b>  { </b>&

40、lt;/p><p>  P0=table[s1];//倒計時的顯示位</p><p>  P2=0xfb;</p><p><b>  delay(1);</b></p><p>  P0=table[g1];</p><p><b>  P2=0xf7;</b>&l

41、t;/p><p>  delay(1); </p><p><b>  }</b></p><p>  void keyscan()</p><p><b>  {</b></p><p><b>  while(1)</b></p>&l

42、t;p>  { judg();</p><p>  P3=0xfe;//*************賦初值***************</p><p><b>  temp=P3;</b></p><p>  temp=temp&0xf0;//**************檢測***************</p>

43、<p>  if(temp!=0xf0)//*********用while語句要小心,產(chǎn)生死鎖************</p><p><b>  {</b></p><p>  delay(100);//********延遲一會*********</p><p><b>  temp=P3;</b></p

44、><p>  temp=temp&0xf0;//**************再檢測,鍵盤是否真的按下**************</p><p>  if(temp!=0xf0)</p><p><b>  {</b></p><p><b>  temp=P3;</b></p>

45、<p>  if(temp==0xde)</p><p><b>  {</b></p><p>  d1=0; d8=0;d2=1;d3=1;d6=1;d7=1;</p><p><b>  }</b></p><p>  if(temp!=0xf0)//**************松手

46、檢測**************</p><p><b>  {</b></p><p>  delay(100);</p><p><b>  temp=P3;</b></p><p>  temp=temp&0xf0; </p><

47、;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

48、;  //程序功能:用按鍵模擬控制交通燈的閃爍</p><p>  /*#include<reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  uchar t,s1,g1,k1,state; u

49、int k;</p><p>  uchar code table[]={</p><p>  0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c,</p><p>  0x39,0x5e,0x79,0x71

50、};</p><p>  //----依次為南北 紅 黃 綠 燈亮</p><p>  sbit d1=P1^0;</p><p>  sbit d2=P1^1;</p><p>  sbit d3=P1^2;</p><p>  //----依次為東西 黃 綠 紅 燈亮</p><p>  s

51、bit d6=P1^5;</p><p>  sbit d7=P1^6;</p><p>  sbit d8=P1^7;</p><p>  void display(uchar s1,uchar g1);</p><p>  void judg();</p><p>  void state_led();</p

52、><p>  void keyscan();</p><p>  void delay(uint z)// 延時函數(shù)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)<

53、/p><p>  for(y=115;y>0;y--);</p><p><b>  }</b></p><p><b>  //主函數(shù)</b></p><p>  void main()</p><p>  { state=1;</p><p>

54、;<b>  t=-1;</b></p><p><b>  while(1)</b></p><p><b>  { </b></p><p><b>  judg();</b></p><p>  keyscan();</p>

55、<p><b>  if(t==-1)</b></p><p><b>  { </b></p><p>  state_led();</p><p>  if(state==4)//狀態(tài)循環(huán)</p><p><b>  {</b></p><

56、p><b>  state=0;</b></p><p><b>  }</b></p><p>  state++; </p><p><b>  } </b></p><p><b>  } </b></p>&l

57、t;p><b>  }</b></p><p>  void judg() //狀態(tài)循環(huán)</p><p><b>  { </b></p><p>  if(t!=-1) //實現(xiàn)倒計時時燈的即時變化</p><p><b>  { </b></

58、p><p><b>  s1=t/10;</b></p><p>  g1=t%10; </p><p><b>  }</b></p><p>  display(s1,g1); //顯示倒計時</p><p><b>  }</b></p>

59、<p>  //-------------狀態(tài)子函數(shù)</p><p>  void state_led() </p><p><b>  {</b></p><p>  if(state==1)</p><p><b>  { </b></p><p>  

60、d3=1; d8=1; </p><p>  d1=0; d7=0; //----南北紅燈亮 東西綠燈亮</p><p><b>  t=15; </b></p><p><b>  }</b></p><p>  else if(state==2)</p><p

61、><b>  {</b></p><p>  d1=1; d7=1; </p><p>  d1=0; d6=0; //----南北紅燈亮 東西黃燈亮</p><p><b>  t=3;</b></p><p><b>  }</b></p>

62、<p>  else if(state==3)</p><p><b>  {</b></p><p>  d1=1; d6=1;</p><p>  d2=0; d8=0; //----南北綠燈亮 東西紅燈亮</p><p><b>  t=15;</b></p&g

63、t;<p><b>  }</b></p><p>  else if(state==4)</p><p><b>  {</b></p><p>  d2=1; d6=1;</p><p>  d3=0; d8=0; //----南北黃燈亮 東西紅燈亮</p>

64、;<p><b>  t=3; </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void display(uchar s1,uchar g1)</p><p><b>  { </b

65、></p><p>  P0=table[s1];//倒計時(十位)的顯示位</p><p>  P2=0xfe;</p><p><b>  delay(1);</b></p><p>  P0=table[g1];//倒計時(個位)的顯示位</p><p><b>  

66、P2=0xfd;</b></p><p>  delay(1); </p><p><b>  }</b></p><p>  // ----------鍵盤掃描</p><p>  void keyscan()</p><p><b>  { </b>&

67、lt;/p><p><b>  k1=0xfe;</b></p><p><b>  P3=k1;</b></p><p><b>  k=P3; </b></p><p><b>  if(k!=k1)</b></p><p><

68、;b>  {</b></p><p><b>  {</b></p><p>  delay(100);</p><p>  t--; //一秒減一次</p><p><b>  }</b></p><p>  delay(100);</

溫馨提示

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

評論

0/150

提交評論