可控流水燈單片機課程設計報告(c語言)-2_第1頁
可控流水燈單片機課程設計報告(c語言)-2_第2頁
可控流水燈單片機課程設計報告(c語言)-2_第3頁
可控流水燈單片機課程設計報告(c語言)-2_第4頁
可控流水燈單片機課程設計報告(c語言)-2_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE1中州大學單片機課程設計設計主題: MCS51流水燈院系:工程技術學院 專業(yè):電氣自動化一班學號:201125030104姓名:指導老師:孫建延目錄TOC\o"1-2"\h\z\u1引言 12課題綜述 12.1課題的來源 12.2課題的意義 12.3預期的目標 12.4面對的問題 12.5課題的技術 23系統(tǒng)分析 23.1涉及的基礎知識 23.289C51單片機引腳圖及引腳功能介紹 23.3解決問題的基本思路 33.4總體方案 34系統(tǒng)設計 34.1硬件設計 34.2軟件設計 44.3元件清單 44.4硬件原理圖 54.5設計主要功能 55代碼編寫 66程序調試 9結論 10致謝 11參考文獻 12 單片機及應用課程設計:可控流水燈設計-PAGE1-1引言單片機課程設計主要是為了讓我們增進對89C51單片機電路的感性認識,加深對理論方面的理解。了解軟硬件的有關知識,并掌握軟硬件設計過程、方法及實現,為以后設計和實現應用系統(tǒng)打下良好基礎。另外,通過簡單課題的設計練習,使我們了解必須提交的各項工程文件,達到鞏固、充實和綜合運用所學知識解決實際問題的目的。2課題綜述2.1課題的來源當今社會,這種由單片機芯片控制各種硬件工作的技術也日益成熟,并普及在交通、化工、機械等各個領域。而流水燈這項技術在生活中的應用更是廣泛,較為貼近生活。而流水燈控制的設計所需要的知識也正好吻合了我們本學期對于單片機這門課程的學習,所以設計流水燈控制的這個課題讓我們對知識的學習和鞏固都有了進一步的加深。2.2課題的意義這次單片機課程設計是為了通過對流水燈控制的設計加強學生團隊配合的能力和創(chuàng)造力;綜合運用專業(yè)及基礎知識,解決實際工程技術問題的能力。能夠讓學生深入真是的體會到所學的理論知識和實踐相結合的過程。找出自身的不足并加以改正。2.3預期的目標對8個LED燈設計5種流水燈顯示方式,用一個按鍵進行方式選擇,并用一個數碼管顯示方式編號;用兩個鍵來控制流水燈流動的速度。2.4面對的問題這次課程設計是通過8951位單片機實現。但面對的問題卻是兩方面的:一個是軟件的設計,也就是實現流水燈控制功能的程序編輯;另一個是硬件的設計,需要我們自己連接、焊接電路板。而更為嚴峻的就是設計的最后還要將軟硬件相結合。首先我們需要通過protel將設計的實物的電路圖畫出來,再根據電路圖連接實物電路。2.5課題的技術LED燈的顯示方式、模式切換按鈕的控制、亮燈速度的按鍵控制等技術。3系統(tǒng)分析3.1涉及的基礎知識電路焊接:制造電子產品的重要手段。89C51單片機指令系統(tǒng):規(guī)定89C51單片機內操作的語句或命令。LED數碼管的顯示:向數碼的顯示送數,控制系統(tǒng)的顯示部分。3.289dC51單片機引腳圖及引腳功能介紹本次實習的目的在于加深89C51單片機的理解,首先來簡單認識一下,它的引腳如圖3-1所示:圖3.180C單片機的39個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。1.電源:(1)VCC:芯片電源,接+5V;(2)VSS:接地端;2.時鐘:XTAL1、XTAL2:晶體振蕩電路反相輸入端和輸出端。3.控制線:控制線共有4根,(1)ALE/PROG:地址鎖存允許/片內EPROM編程脈沖ALE功能:用來鎖存P0口送出的低8位地址PROG功能:片內有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。(2)PSEN:外ROM讀選通信號。(3)RST/VPD:復位/備用電源。RST(Reset)功能:復位信號輸入端。VPD功能:在Vcc掉電情況下,接備用電源。(4)EA/Vpp:內外ROM選擇/片內EPROM編程電源。EA功能:內外ROM選擇端。Vpp功能:片內有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。4.I/O線89C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。3.3解決問題的基本思路因為選定用循環(huán)移位法來實現亮燈程序的,所以在一種設計好一種亮燈方式的前提下編程實現一個循環(huán)結構體,分別來實現五種不同的亮燈方式。另外再編一個實現延時控制的調用程序,來提供亮燈速度的控制。3.4總體方案在做本次課程設計之前將小組內人員分為兩小組:一組分負責硬件設計,另一組負責軟件編程。硬件小組負責實物的連接和焊接,并進行硬件測試;軟件小組負責實現流水燈的各部分程序設計,并進行軟件的仿真測試。最后將完成的軟硬件相結合,從而達到實現課程設計的效果。4系統(tǒng)設計4.1硬件設計按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。89C51單片機是本次課程設計運用的主要原件。流水燈控制設計是用一個帶有八個發(fā)光二極管的單片機最小應用系統(tǒng),即為由發(fā)光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。4.2軟件設計單片機的應用系統(tǒng)由硬件和軟件組成,在硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點亮的現象,我們還需要編寫程序控制單片機管腳電平的高低變化,來實現發(fā)光二極管的一亮一滅。軟件編程是單片機應用系統(tǒng)中的一個重要的組成部分,也是本次課程設計的重點和難點。我們編程實現流水燈的方法是循環(huán)移位法,下面我們就來簡述一下循環(huán)移位法的工作原理。循環(huán)移位法是采用循環(huán)程序結構進行編程。我們在程序一開始就給P1口送一個數,這個數本身就讓P1.0先低,其他位為高,然后延時一段時間,再讓這個數據向高位移動,然后再輸出至P1口,這樣就實現“流水”效果了。另外,由于89C51系列單片機的指令中只有對累加器ACC中數據左移或右移的指令,因此實際編程中我們應把需移動的數據先放到ACC中,讓其移動,然后將ACC移動后的數據再轉送到P1口,這樣也可以實現“流水”效果。4.3元件清單表4-1元件清單名稱型號數量電阻1k8電容1032開關1單片機89C511電容10uf1LED燈8電源指示燈1按鍵14.4硬件原理圖圖4-1硬件原理圖4.5硬件詳細設計(1)最小系統(tǒng)電路部分如圖所示,(2)晶振部分產生時鐘信號4.6設計主要功能打開電路開關,按下第一個模式控制鍵,8個LED數碼管會從右向左一個接著一個亮燈,LED顯示器會顯示數字“1”來表示當前的亮燈方式是模式1。在8個LED數碼管全部亮后再次按下第一個模式控制鍵,8個LED數碼管會從又向左2個一組的一次亮燈,同時LED顯示器會顯示數字“2”來表示當前的亮燈方式是模式2。以此類推,一共有5種顯示模式。而第2、3個按鍵分別控制亮燈速度的快慢。5代碼編寫#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e};voiddelay(uintz){uintx,y; for(x=110;x>0;x--) for(y=z;y>0;y--);}uinttemp,i,num;voidmain(){while(1){temp=0xfe; P2=temp; for(i=0;i<7;i++) { temp=_crol_(temp,1); P2=temp; delay(100); } temp=0x7f; P2=temp; for(i=0;i<7;i++) { temp=_cror_(temp,1); P2=temp; delay(100); } P2=0xff; P2=0x00; delay(500);P2=0xff; delay(500); P2=0xaa; delay(500);P2=0x55; delay(500);P2=0xff; delay(500);P2=0xff; for(num=0;num<7;num++) { P2=table[num]; delay(500); }}}

6程序調試本程序運行過程中沒有錯誤。但對于雙鍵控制流水燈亮燈速度的功能并沒有得到實現。將電路板用數據線連接,打開開關,按鈕用來切換模式,一共有五種流動方式,每按一次按鈕就會有一種方式,并在LED顯示器上面顯示出該模式的序號。(a)(b)5-1程序調試圖(a),(b)

結論由于本次課程設計含括了軟件和硬件知識,所以在完成課程設計的同時也讓我們了解到了我們在軟硬件設計和制作方面的不足。在這一周的設計過程中我所擔任的工作是對電路板各元器件的連接和焊接工作,雖然看似簡單,但做起來卻是一個細致的工作,尤其是對于三極管以及雙電阻并聯的焊接工作,更是要細中再細,因為這些元器件的引腳距離都是比較近的,一旦將不該連接的引腳焊接到了一起,該元器件就會失它原來的工作效果,還很有可能將整個電路短路。對于軟件方面,是由我們小組的其他成員編輯完成的,雖然最終并沒有實現所有要求的設計效果,但對于我們來說,設計實現的功能已經是一個不小的收獲了。負責硬件焊接的我在最初看到代碼的時候還是一頭霧水,經過組內成員的一起講解和討論,最后還是理解的如何運用左移法實現流水燈亮燈的工作原理。并對如何使用程序調用也有了一定的了解。當軟件和硬件都完成之后,接下來就是將軟件的控制程序寫入到硬件里面,從而實現軟硬結合的過程,來實現設計要求。在這個環(huán)節(jié)中我們還是遇到了或多或少的問題,例如蜂鳴器啞聲以及LED顯示器不工作等問題都讓我們困惑了很久,最后還是通過不斷的完善代碼來實現各個元器件的工作。通過這次課程設計,我知道了團隊的力量,只有互相團結,才能把事情做好,組員分工合作,每個人根據自己的能力范圍負責不同的工作,達到事半功倍的效果。而在這一周的設計過程中讓我深深的了解了我在軟件、硬件方面的許多不足之處,對于今后的學習和工作都有了一次很好的借鑒經驗。致謝首先我要感謝的是工程技術學院,工程技術學院能夠給我提供如此好的實踐機會。更要感謝指導老師,在我們的學習過程中他給了很大的幫助,幫助我們理解不懂的地方,使我們最終能夠完成這個課程設計。我還要感謝參考文獻的原作者。在此對給予我?guī)椭睦蠋煴硎旧钌畹馗兄x!同時對給予我?guī)椭耐瑢W表示深深地感謝。我想說的是,在指導老師和同學們的幫助下我學到了很多東西,也發(fā)現了自己的很多不足之處,促使我在以后的學習中更加努力的學習。我們回顧這過去時間,我們會發(fā)現自己收獲了很多,也成長了很多,懂得了如何去學習以前未曾學過的新思維新方法,懂得了如何去多方位地查找資料,完善和創(chuàng)新一些舊的思維方式,懂得了如何同老師和同學交流和協作,尤其要說的是,老師在此過程中對我們悉心的輔導,認真的講解,幫助我們解決問題,循循善誘,使我門受益匪淺。還有同學們的幫助,互相推薦好的資料。相信這次課程設計的體驗將成為今后我們更多更廣學習中的奠基石。課程設計的過程,是學習的過程,也是鍛煉的過程,更是教會我們同學之間相互幫

溫馨提示

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

評論

0/150

提交評論