交通燈課程設計報告_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  基于單片機原理的交通信號燈設計</p><p>  學 生 姓 名 </p><p>  學 號 </p><p>  指 導 教 師 </p><p>  專 業(yè)

2、 </p><p>  2013 年 06月</p><p><b>  目 錄</b></p><p>  課題名稱........................................................................3</p><p>  2.設計任務...........

3、..............................................................3</p><p>  2.1基本要求…………………................................</p><p>  系統(tǒng)設計.............................................................

4、.............3</p><p>  3.1工作原理……………………………………3</p><p>  3.2 電路原理圖…………………………………4</p><p>  4.芯片的選擇與簡介...........................................................4</p><p> 

5、 4.1 MCS-51單片機內部結構 …………………4</p><p>  4.2 MCS-51的引腳說明………………………..5</p><p>  5.硬件設計..........................................................................6</p><p>  5.1 顯示部分…………

6、……………………...........6</p><p>  5.2 信號燈部分……………………………...........7</p><p>  6.軟件設計………………………….................................7</p><p>  6.1流程圖…………………………………..........7</p><p&g

7、t;  6.2主程序…………………………………..........8</p><p>  7.個人總結……………………………………………14</p><p>  一.課題名稱:基于單片機原理的交通信號燈設計</p><p><b>  設計任務</b></p><p><b>  2.1基本要求: </b

8、></p><p>  1.運用所學的單片機知識設計一個交通燈控制系統(tǒng)。</p><p>  2.上電的時候南北方向的紅燈亮60秒;東西方向的綠燈亮60秒,接下來東南西北都亮黃燈,亮30秒。再接下來東西方向的紅燈亮20秒;南北方向的綠燈亮20秒。如此循環(huán)。</p><p><b>  2.2創(chuàng)新部分</b></p><

9、p>  1.各種信號燈所亮的時間由數(shù)碼管顯示出來。</p><p>  2.在出現(xiàn)問題的時候(紅燈全亮),按鍵中斷停止。</p><p><b>  系統(tǒng)設計</b></p><p><b>  3.1工作原理</b></p><p>  設置交通燈的初始時間,數(shù)碼管的段碼用P0口和74LS2

10、45來控制,位選用P3口來控制,用單片機P1口得高低電平來控制各個LED燈得亮滅。</p><p>  3.2 電路原理圖 </p><p><b>  芯片的選擇與簡介</b></p><p>  4.1 89TC51單片機內部結構</p><p>  MCS-51單片機是在一塊芯片中集成了CPU,RAM,ROM、定時

11、器/計數(shù)器和多種功能的I/O線等一臺計算機所需要的基本功能部件。MCS-51單片機內包含下列幾個部件:◆ 一個8位CPU;◆ 一個片內振蕩器及時鐘電路;◆ 4K字節(jié)ROM程序存儲器;◆ 128字節(jié)RAM數(shù)據(jù)存儲器;◆ 兩個16位定時器/計數(shù)器;◆ 可尋址64K外部數(shù)據(jù)存儲器和64K外部程序存儲器空間的控制電路;◆ 32條可編程的I/O線(四個8位并行I/O端口);◆ 一個可編程全雙工串行口;◆ 具有五個中斷源、兩個優(yōu)先

12、級嵌套中斷結構。</p><p>  4.2MCS-51的引腳說明:</p><p>  89TC51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:如下圖所示 。 </p>

13、<p><b>  五.硬件設計</b></p><p><b>  5.1 顯示部分</b></p><p>  系統(tǒng)要求南北和東西方向的信號燈時間不一樣,所以就利用單片機的p0和p3口來做數(shù)碼管的段碼驅動,東西方向和南北方向的位線可以公共來使用,可以節(jié)約單片機的口線。</p><p>  數(shù)碼管可以使用共陰數(shù)

14、碼管,電路圖如下圖所示:</p><p><b>  5.2 信號燈部分</b></p><p>  設計利用單片機的P1口來驅動和控制各種信號燈的燃亮利用定時器來控制亮滅的時間,在實際中,交通燈的信號燈需要用高電壓控制,在這里我們只是模擬一下它的控制信號,所以我們就只用單片機的信號引腳直接來控制發(fā)光二極管,電路圖見下圖。</p><p>&l

15、t;b>  主程序</b></p><p>  #include<reg51.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit P1_1=P1^1;</p><

16、p>  sbit P1_2=P1^2;</p><p>  sbit P1_3=P1^3;</p><p>  sbit P1_4=P1^4;</p><p>  sbit P1_5=P1^5;</p><p>  sbit P1_6=P1^6;</p><p>  uchar data dis_buf[4]

17、;</p><p>  int tempa=20,tempb=15; </p><p>  int tempaa,tempbb;</p><p>  uint i,a,b;</p><p>  uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

18、};</p><p>  void dl_ms()</p><p>  {unsigned int j;</p><p>  for(j=0;j<200;j--);</p><p><b>  }</b></p><p>  void display(void)</p><

19、;p>  {uchar segcode,bitcode,i;</p><p>  bitcode=0xfe;</p><p>  for(i=0;i<4;i++)</p><p>  {segcode=dis_buf[i];</p><p>  P0=table[segcode];</p><p>  P3

20、=bitcode;</p><p><b>  dl_ms();</b></p><p><b>  P3=0xff;</b></p><p>  bitcode=bitcode<<1;</p><p>  bitcode=bitcode|0x01;</p><p&g

21、t;<b>  } }</b></p><p>  void main()</p><p><b>  {</b></p><p>  P1_1=0;P1_6=0;P1_2=1;</p><p>  P1_3=1;P1_4=1;P1_5=1;</p><p>  TMOD=0

22、X01;</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b> 

23、 TR0=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  dis_buf[0]=tempa/10;</p><p>  dis_buf[1]=tempa%10;</p><p>  d

24、is_buf[2]=tempb/10;</p><p>  dis_buf[3]=tempb%10;</p><p>  display();}</p><p><b>  }</b></p><p>  void timer0() interrupt 1</p><p>  { TH0=(655

25、36-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  b++;a++;</b></p><p><b>  switch(b)</b></p><p>  {case 300:{P1_6=1;P1_5=0;tempbb=4;}br

26、eak;</p><p>  case 400:{P1_1=1;P1_5=1;P1_3=0;P1_4=0;tempaa=14,tempbb=19;}break;</p><p>  case 700:{P1_3=1;P1_2=0;tempaa=4;}break;</p><p>  case 800:{P1_2=1;P1_4=1; P1_1=0;P1_6=0;tem

27、paa=19;tempbb=14;b=0;}break;</p><p><b>  }</b></p><p><b>  if(a==20)</b></p><p><b>  {a=0;</b></p><p>  tempa--;tempb--;</p>

28、<p>  if(tempa<0)</p><p>  tempa=tempaa;</p><p>  if(tempb<0)</p><p>  tempb=tempbb;</p><p><b>  }</b></p><p><b>  }</b>

29、</p><p><b>  心得體會</b></p><p>  雖然這個設計比較簡單,但是是經(jīng)過自己多次失敗換來的,最開始調程序時遇到很多錯誤比如說一個分號不在英文狀態(tài)下打出來就是無效的,這個錯誤找了好一會才找出來,</p><p>  我還明白了子程序如果沒有聲明就必須放在主函數(shù)之前,顯示函數(shù)放在不同的地方結果也不會同,最開始寫程序時數(shù)碼

30、管用的是靜態(tài)顯示的方法,但是無論我怎么調數(shù)碼管的顯示部分都有問題,開始以為是和延時的長短有關,但是無論怎么改變延時的實間,結果都有問題,后來在李老師的指點下用了動態(tài)顯示的方法,后來數(shù)碼管終于可以正常顯示了,但是顯示的時間卻不按照程序設計的時間來,后來發(fā)現(xiàn)時間出錯是因為變量定義的類型出現(xiàn)了錯誤,因為不同類型的數(shù)據(jù)取值范圍是不同的,改了以后就成功了,雖然做的比較簡單,花了很長時間,但還是很高興,因為這畢竟是自己設計的程序。</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論