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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、gt;<p>  3.2電路設(shè)計(jì)和設(shè)計(jì)說明………………………………………</p><p>  3.2.1 89C52單片機(jī)……………………………………………………</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é)論與體會(huì)……………………………………………</p><p>  6附件…………………………………………………

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

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

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

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

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

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

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

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

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

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

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

19、/p><p>  1.太陽能電板或蓄電池</p><p><b>  2.電腦pc供電</b></p><p><b>  源代碼</b></p><p>  //自動(dòng)控制交通燈的閃爍</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 //一個(gè)定時(shí)器中斷</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() //計(jì)時(shí)函數(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ù)碼管上顯示倒計(jì)時(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();//進(jìn)入狀態(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--;//一秒減一次,倒計(jì)時(shí)實(shí)現(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、//*******定時(shí)器******</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];//倒計(jì)時(shí)的顯示位</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);//********延遲一會(huì)*********</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í)函數(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) //實(shí)現(xiàn)倒計(jì)時(shí)時(shí)燈的即時(shí)變化</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); //顯示倒計(jì)時(shí)</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];//倒計(jì)時(shí)(十位)的顯示位</p><p>  P2=0xfe;</p><p><b>  delay(1);</b></p><p>  P0=table[g1];//倒計(jì)時(shí)(個(gè)位)的顯示位</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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論