單片機課程設(shè)計--單片機io口的應(yīng)用_第1頁
已閱讀1頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機課程設(shè)計 </b></p><p>  專 業(yè): 測控技術(shù)與儀器 </p><p>  課程名稱:單片機微機原理及應(yīng)用</p><p>  課程老師: 周偉老師 </p><p>  單片機I/O口的應(yīng)用</p><p>

2、  摘要:本設(shè)計隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中流水燈的應(yīng)用就是一個典型的例子,特別在商業(yè)廣告領(lǐng)域有重要的應(yīng)用,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p>  關(guān)鍵詞:單片機,控制,蜂鳴器,紅外線檢測,流水燈,AT89S52,數(shù)碼

3、管顯示</p><p>  第1章 系統(tǒng)設(shè)計方案</p><p>  1.1 隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p>

4、;  本設(shè)計所介紹的是單片機的一些簡單的應(yīng)用,最小系統(tǒng)的復(fù)位,I/O口的一些應(yīng)用來控制輸出,達(dá)到控制彩燈(流水燈)。近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。本系統(tǒng)采用單片機AT89S52為中心器件,用3個I/O口控制彩

5、燈(流水燈),P0口控制一位數(shù)碼管,并帶紅外檢測報警功能,系統(tǒng)實用性強、操作簡單、擴展性強。也可以為我們更好地了解單片機的應(yīng)用加深我們對單片機的認(rèn)識,對我們以后的學(xué)習(xí)都帶來很大的幫助。</p><p>  1.2 設(shè)計內(nèi)容與設(shè)計思路及關(guān)鍵技術(shù)</p><p>  單片機采用用AT89S52芯片,控制彩燈(流水燈),數(shù)碼管顯示倒計時,按時間來控制彩燈的亮滅,然后循環(huán)顯示,并帶紅外線報警檢測。

6、 </p><p>  P1口涉及下載線,而P3.2作用于外部按鍵中斷P3.3作用于紅外線端,P2.7連接蜂鳴器,所以就用P0用來控制數(shù)碼管顯示。</p><p>  第2章 系統(tǒng)硬件設(shè)計</p><p><b>  2.1 設(shè)計方框圖</b></p><p>  流水燈設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機AT

7、89S52,用數(shù)碼管(共陽</p><p><b>  管)顯示時間。</b></p><p>  主控制器采用低功耗,高性能COMS 8位單片機AT89S52芯片;單片機復(fù)位則由最小系統(tǒng)決定,由電源復(fù)位產(chǎn)生;時鐘振蕩則由12MHz的晶振產(chǎn)生;LED顯示則由用3個彩燈組成,數(shù)碼管由一位共陽組成和蜂鳴器紅外檢測來設(shè)計。</p><p>  2.2

8、 總原理圖設(shè)計</p><p>  2.3.工作原理說明 </p><p>  單片機板子做好以后通過下載線下載自己原先寫好的程序,程序下載好后板子器件按程序工作,數(shù)碼管顯示一到十,每當(dāng)數(shù)碼管跳動五秒是lED燈變換一次從上往下,數(shù)碼管連接單片機的I/O口是P0口 三個LED燈連接的是P24 P25 P26口。按鍵接P32口當(dāng)按鍵按下時數(shù)碼管計時停止進(jìn)入按鍵選擇不同的LED燈亮,按一下全亮

9、按第二下第一個 按第三下第二個亮再按下全亮再按進(jìn)入正常的計時環(huán)節(jié)。蜂鳴器接單片機p27口當(dāng)紅外線端口被擋住時蜂鳴器報警。</p><p><b>  2.4成品圖</b></p><p><b>  系統(tǒng)軟件設(shè)計</b></p><p>  3.1 系統(tǒng)整體流程</p><p>  從原理圖中可以看

10、到單片機最小系統(tǒng),外圍電路由蜂鳴器,數(shù)碼管,紅外檢測組成 工作時通過按鍵key可控制數(shù)碼管繼續(xù)顯示或者停止和LED燈的規(guī)律變化,當(dāng)紅外接收裝置產(chǎn)生中斷時蜂鳴器報警。</p><p>  3.2單片機I/O口擴展的主程序</p><p>  #include<reg52.h></p><p>  #define ucharunsigned char&

11、lt;/p><p>  #define uintunsigned int</p><p>  sbit P24=P2^4;</p><p>  sbit P25=P2^5;</p><p>  sbit P26=P2^6;</p><p>  sbit P32=P3^2;</p><p>  sb

12、it P33=P3^3;</p><p>  sbit qi=P2^7;</p><p>  uchar gui[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,}; </p><p>  void delay()</p><p><b>  {</b><

13、/p><p>  uchar i=100;</p><p>  while(i--);</p><p><b>  } </b></p><p>  void main()</p><p><b>  {</b></p><p><b>

14、  uchar g;</b></p><p>  TMOD=0x01; </p><p>  TH0=0x3c; </p><p><b>  TL0=0xb0;</b></p><p><b>  ET0=1; </b></p><p><b>  

15、TR0=1;</b></p><p><b>  IT0=1; </b></p><p><b>  EA=1;</b></p><p><b>  P24=1;</b></p><p><b>  P25=1;</b></p>

16、<p><b>  P26=1 ;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(P33!=1)</p><p><b>  {</b></p>

17、<p><b>  qi=0;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  qi=1;</b><

18、;/p><p><b>  }</b></p><p>  if(P32==0)</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p><b>  delay(); </b>&

19、lt;/p><p>  if(P32==0)</p><p><b>  {</b></p><p><b>  g++; </b></p><p>  while(!P32);</p><p><b>  } </b></p><p&g

20、t;<b>  if(g==8)</b></p><p><b>  {</b></p><p><b>  TR0=1;</b></p><p><b>  g=0;</b></p><p><b>  } </b></

21、p><p><b>  if(g==1)</b></p><p><b>  {</b></p><p>  P24=0;P25=0;P26=0;</p><p><b>  }</b></p><p><b>  if(g==2)</b&g

22、t;</p><p><b>  {</b></p><p>  P24=1;P25=1;P26=0;</p><p><b>  }</b></p><p><b>  if(g==3)</b></p><p><b> 

23、 {</b></p><p>  P24=1;P25=0;P26=1;</p><p><b>  }</b></p><p><b>  if(g==4)</b></p><p><b>  {</b></p><p>

24、;  P24=0;P25=1;P26=1;</p><p><b>  }</b></p><p><b>  if(g==5)</b></p><p><b>  {</b></p><p>  P24=0;P25=0;P26=0;</p>

25、<p><b>  }</b></p><p><b>  if(g==6)</b></p><p><b>  {</b></p><p>  qi=0; </p><p><b>  }</b></p><p&g

26、t;<b>  if(g==7)</b></p><p><b>  {</b></p><p>  qi=1; </p><p><b>  }</b></p><p><b>  } </b></p><p&g

27、t;<b>  } </b></p><p><b>  }</b></p><p>  void InterruptTimer0() interrupt 1</p><p><b>  {</b></p><p>  static unsigned char sec = 0

28、,cnt = 0,i = 0; </p><p>  char g = 0; </p><p>  cnt++; </p><p>  if (cnt >= 20) </p><p><b>  {</b></p><p><b>  sec++;

29、</b></p><p>  cnt = 0; </p><p>  P0 = gui[i];</p><p><b>  i++;</b></p><p>  if(i == 10)</p><p><b>  {</b></p><

30、;p><b>  i = 0;</b></p><p>  } </p><p><b>  }</b></p><p>  switch (sec)</p><p><b>  {</b></p><p>  case 5 : P

31、24=0;P25=1;P26=1 ; break;</p><p>  case 10: P24=1;P25=0;P26=1 ; break;</p><p>  case 15: P24=1;P25=1;P26=0 ; break;</p><p>  case 20: P24=1;P25=1;P26=1 ;sec=0; break;</p><

32、;p>  default: break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  系統(tǒng)調(diào)試</b></p><p><b>  1 硬件的調(diào)試</b></p><

33、p>  1.1首先用萬用表測量電路板上電源與地,保證這兩端不短路; </p><p>  1.2其次先焊接電源電路,焊接完后立即上電測試電源輸出5V是否正常(電源指示燈是否正常點亮),注意上電前需要再次測試電源與地,保證這兩端不短路; </p><p>  1.3排除邏輯故障  </p><p>  這類故障往往由于設(shè)計

34、和加工制板過程中工藝性錯誤所造成的。</p><p>  主要包括錯線、開路、短路。排除的方法是首先將加工的印制板認(rèn)真對照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間短路或與其它信號線路短路。必要時利用數(shù)字萬用表的短路測試功能,可以縮短排錯時間。  </p><p>  1.

35、4排除元器件失效  </p><p>  造成這類錯誤的原因有兩個:一個是元器件買來時就已壞了;另一個是由于安裝錯誤,造成器件燒壞??梢圆扇z查元器件與設(shè)計要求的型號、規(guī)格和安裝是否一致。在保證安裝無誤后,用替換方法排除錯誤。  </p><p>  1.4排除電源故障    </p><p

36、>  在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5V~4.8V之間屬正常。若有高壓,聯(lián)機仿真器調(diào)試時,將會損壞仿真器等,有時會使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。</p><p>  1.6焊接結(jié)束:先用萬用表測量一下電路板上的電源與地,確定不短路后再上電,然后用萬用表測量電路板上5V電源是否正確(電源指示燈是否正常點亮

37、),最后才能把各個芯片插到座子上</p><p><b>  2 軟件的調(diào)試</b></p><p>  1.7在函數(shù)的定義上應(yīng)該注意的問題</p><p>  在程序剛剛開始寫時需要注意定義上面的錯誤,例如:uchar gui[]={0xf9;0xa4;0xb0;0x99;0x92;0x82;0xf8;0x80;0x90;0xc0;};這句

38、話錯了兩個地方,運行的時候指示了出來,原因是符號的錯誤和數(shù)量的錯誤正是: uchar gui[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0};</p><p>  在主程序中出現(xiàn)了一些問題,程序運行是沒有錯誤但是實現(xiàn)的功能不是很理想,主要是蜂鳴器工作原理理解錯誤,以前以為是給高電平再給低電平在加個while(1)循環(huán)即可</p>

39、<p>  if(P33!=1)</p><p><b>  {</b></p><p>  qi=~qi;</p><p><b>  }</b></p><p>  進(jìn)過改正后蜂鳴器報警正常,改正后為</p><p>  if(P33!=1)<

40、/p><p><b>  {</b></p><p><b>  qi=0;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b&

41、gt;</p><p><b>  qi=1;</b></p><p><b>  }</b></p><p>  在中斷程序中同樣的也出現(xiàn)了問題,定義的變量每次進(jìn)入中斷后又重新賦值了導(dǎo)致功能不能實現(xiàn),因為剛開始變量定義為</p><p>  unsigned char sec = 0,c nt =

42、 0,i = 0;</p><p><b>  改正后為</b></p><p>  static unsigned char sec = 0,cnt = 0,i = 0;</p><p>  這里改變的主要是一般變量變?yōu)殪o態(tài)變量所以變量只會使用一次 最終功能得以穩(wěn)定實現(xiàn)。</p><p><b>  結(jié)論與總

43、結(jié)</b></p><p><b>  5.1 設(shè)計總結(jié)</b></p><p>  設(shè)計思路:對于上述的測試結(jié)果和運行過程,達(dá)到了課程設(shè)計任務(wù)書中的要求,可以實現(xiàn)數(shù)碼管顯示時間并在規(guī)定額時間內(nèi)閃爍,通過按鍵控制LED燈有規(guī)律的閃爍,紅外線報警等功能,通過優(yōu)化后使得運行結(jié)果也更直觀易懂。</p><p>  設(shè)計過程:寫好程序后,通

44、過軟件仿真,用Altium designer軟件畫好原理圖,最后焊板子,燒寫程序,實現(xiàn)功能。</p><p>  測試結(jié)果及改進(jìn)方向:實驗板最終成功下載了程序并運行了,該實驗提高對單片機的認(rèn)識,提高焊接、布局、電路檢查及軟件調(diào)試能力,但是也有很多的不足,實現(xiàn)的功能很單一,沒什么創(chuàng)意,難度也不大,還有焊接的板子沒焊接的很好,都是日后需要改進(jìn)的地方。</p><p><b>  5.

45、2 心得體會</b></p><p>  這個學(xué)期的單片機課已經(jīng)早早的上完了,但是理論純屬理論,沒有與實踐的結(jié)合總讓感覺學(xué)的不踏實,感覺沒有達(dá)到學(xué)以致用的效果。所慶幸的是在課程介紹考試完之后,老師給安排了這次單片機課程設(shè)計,給了我們學(xué)以致用的做好的實踐。</p><p>  單片機是我所學(xué)專業(yè)的主要課程之一,因此我認(rèn)為單片機課程設(shè)計是十分必要而且十</p><

46、;p>  分重要的。盡管剛剛學(xué)習(xí)這門課程時有點迷惘,不知道如何著手,但通過上網(wǎng)和圖書館查閱相關(guān)資料,自己認(rèn)真鉆研,解決了一個又一個的困難和障礙,對于單片機有了更深的理解。 </p><p>  通過本次的單片機課程設(shè)計,不僅大大地豐富了我的理論知識,而且在實踐過程中更令我學(xué)會了堅持、耐心和努力。此次單片機課程設(shè)計需要運用到許多之前所學(xué)過的知識,令我認(rèn)識到自己以前學(xué)習(xí)的一些不足之處,例如對以前所學(xué)知

47、識的理解不夠深刻,掌握得不夠牢固,運用不夠靈活。這讓我懂得了認(rèn)真學(xué)習(xí)的重要性,以及要孜孜不倦地鉆研所學(xué)過的知識,做得融會貫通,不能一覽而過,不求甚解。在邊學(xué)習(xí)邊動手的過程中,我對單片機中斷原理有了進(jìn)一步的了解,同時也加深和鞏固了我對單片機的認(rèn)識。除此之外,由于是第一次焊板子,并且此次課程設(shè)計的過程中老師給的電阻電容都比以前自己見過得小的多、因此焊接的時候有較大困難,焊接順序也需要注意。在面對困難和障礙時,我慶幸自己沒有退縮和逃避,而是通

48、過各種方法,迎難而上,以堅持、耐心和努力勇敢無畏地面對困難,克服困難,解決困難。讓我發(fā)現(xiàn)問題、分析問題、解決問題以及動手實踐的能力都有了很大的提高,并了解到理論知識與實踐相結(jié)合的重要意義。 </p><p>  從這次的課程設(shè)計中,我真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,通過這次的課程設(shè)計我從中所獲

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論