歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

單片機實驗報告(基于51單片機)

  • 資源ID:60798572       資源大小:276.50KB        全文頁數(shù):19頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

單片機實驗報告(基于51單片機)

精選優(yōu)質文檔-傾情為你奉上 濱江學院 微機原理與接口技術綜合實驗報告 題 目 簡易電子琴設計 學 號 學生姓名 王興江 院 系 濱江學院專 業(yè)指導教師二一二 年 月 日 【摘要】由于音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用單片定時/計數(shù)器T產生不同的頻率的組合,從而構成音樂。本次設計實現(xiàn)的大體功能:當系統(tǒng)掃描到鍵盤上有鍵子被按下,則快速檢測出是那一個鍵子,然后單片機的定時就會發(fā)出相應的音調。定時器被啟動,發(fā)出一定頻率的脈沖,該頻率的脈沖通過P3串口并驅動喇叭發(fā)音。同時鍵值顯示在LED顯示器上?!娟P鍵詞】 單片機 電子琴 AT89C51一、引言1.1 電子琴設計的背景隨著電子科技的飛速發(fā)展,電子技術正在逐漸改善著人們的學習、生活、工作,因此開發(fā)本系統(tǒng)希望能夠給人們多帶來一點生活上的樂趣?;诋斍笆袌錾系耐婢呤袌鲂枨罅看?,其中電子琴就是一個很好的應用方面。單片機技術使我們可以利用軟硬件實現(xiàn)電子琴的功能,從而實現(xiàn)電子琴的微型化,可以用作玩具琴、音樂轉盤以及音樂童車等等。并且可以進行一定的功能擴展。鑒于傳統(tǒng)電子琴可以用鍵盤上的“k0”到“k16”鍵演奏從低So到高DO等16個音,從而可以用來彈奏喜歡的樂曲。1.2 電子琴設計的意義該設計具有以下優(yōu)點:(1)可以隨意彈奏想要表達的音樂;(2)制作簡單,成本低。 (3)比傳統(tǒng)電子琴功能更完善。1.3 電子琴設計的目標由于本設計主要用于人們娛樂方面,因此在設計上盡量使其安全以及簡單易操作。其次,在這次設計可行性上進行分析如下:1、經濟可行性:所謂經濟可行性,即在這次設計上需要投入資金的多少,由于課程設計是提高我們的動手能力以及資金有限。因此在經濟上必須能夠承受,比較理想化的對于我們課程設計來說是不可行的。通過分析后,無論是在器件價格或是常見度上均是可行的。2、技術可行性:技術可行性主要是分析技術條件上是否能夠順利開展并完成課程設計的主要問題,硬件、軟件能否滿足設計者的需要等。通過分析各種軟件環(huán)境,硬件仿真環(huán)境等均已經具備。綜上所述,本系統(tǒng)設計目標已經明確,在經濟與技術上均可行,因此本系統(tǒng)的開發(fā)是完全可行的。二系統(tǒng)整體設計1.設計任務基于MCS系列單片機AT89C51。設計一個簡易電子琴2.功能描述1)利用所給鍵盤的1,2,3,4,5,6,7,8八鍵,能夠發(fā)出8個不同的音符。2)并且要求按下按鍵發(fā)聲,松開延時一段時間停止,中間再按別的鍵則發(fā)出另一音符的聲音。3)使用LED數(shù)碼管顯示8個不同的音調。4)如果在一個按下的鍵發(fā)聲的同時有另一鍵被按下,前面鍵的發(fā)音停止,轉到后按的鍵的發(fā)音。5)增加變調鈕“UP1”,“UP2”,“DN1”,“DN2”,在按下“08”音符時,變調鍵,產生相應的變調,使用LED數(shù)碼管顯示變調情況。6)其它功能3.軟硬件描述該課題主要由軟件及其硬件兩個基本部分共同完成。硬件主要部分:4x4矩陣式鍵盤(主要用于音符的輸入以及變調的鍵值輸入,其與單片機的P0口連接). MCS51-AT89單片機芯片. 兩位LED數(shù)碼管顯示器.以及一些基本外圍電路。軟件主要部分:運用c語言進行相應的編程,其主要包括控制按鍵掃描程序,發(fā)聲主程序,以及顯示程序。4.模塊描述總體方案:本系統(tǒng)采用單片機AT89C51為電子琴的控制核心,系統(tǒng)主要包括播放模塊.按鍵控制模塊以及顯示模塊。電路設計總體框圖AT89C51矩陣式按鍵輸入電路LED數(shù)碼管揚聲器電源時鐘電路2步驟:A. 根據設計題目的具體要求及題目的設計提示,B. 利用Proteus軟件來畫原理圖(硬件)。C. 利用Keil軟件進行程序的編寫,執(zhí)行,及仿真。從而生成HEX文件調D. 將HEX文件導入原理圖的AT89C51中進行仿真E. 試并實現(xiàn)相應的功能三 . 硬件電路設計及描述總體原理圖:1 4x4矩陣鍵盤控制模塊其與單片機的具體連接方式如下:(1)矩陣式鍵盤的結構與工作原理在中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成形式,如圖所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口P1就可以構成4*4=16個按鍵。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及方法如下所述。 (2)矩陣式鍵盤的按鍵識別方法行掃描法 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。 a.判斷鍵盤中有無鍵按下 將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 b.判斷閉合鍵所在的位置 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 程序掃描法就是調用鍵盤掃描程序,查詢鍵盤并給予處理的方法。 1)查詢是否有鍵盤按下2)延時去除抖動3)確定下來按鍵所在的行. 列位置具體框圖如下開始判斷是否有鍵按下?確定按下哪個鍵否是確定鍵值調用顯示程序調用發(fā)聲程序2. 發(fā)聲模塊揚聲器與單片機的連接方式如圖揚聲器連接在P3.0口,當有鍵盤按下時候,單片機會通過程序調用相應鍵值,由P3.0輸出對應的頻率信號,從而驅動揚聲器發(fā)聲。具體框圖如下:P3.0檢測到頻率信號揚聲器發(fā)聲驅動3. 顯示模塊2位LED數(shù)碼管與單片機的連接圖圖中:1、2是公共端,控制位碼,控制那個數(shù)碼管亮(左右),如果是共陰的則接低電平,若為供陽的則相反。,a-g、dp是控制斷碼,控制9個二極管的亮暗,可以直接接51的輸出口(P0要加上拉電阻),如果是共陰的則接高電平來使數(shù)碼管亮,若為供陽的則相反。用8位碼控制,用16進制表示!二極管從最上面順時針分別為a,b,c,d,e,f中間橫線為g,點為dp。4 設計的核心部件及其外圍基本電路AT89C51簡介AT89C51是一種帶4K字節(jié)FLASH(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多提供了一種靈活性高且價廉的方案。外形及引腳排列VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為輸入。P0能夠用于外部程序數(shù)據存儲器,它可以被定義為數(shù)據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據存儲器寫選通) P3.7 /RD(外部數(shù)據存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。四. 軟件設計思想及流程在程序中根據相應的音符只做一個頻率表,當單片機檢測到鍵值的時候,主程序將自動調用表格中的程序,發(fā)出相應的信號驅動揚聲器發(fā)聲,同時LED數(shù)碼管顯示其鍵值(音調)。本設計的題目包括,按鍵程序,主程序等幾個部分組成。具體流程圖如下:執(zhí)行程序掃描P1外接的鍵盤程序調用主程序發(fā)聲顯示返回開始是否有按鍵按下?YN放開按鍵五硬件的調試過程及調試方法1)由于本次設計并沒有進行實際硬件的實做,所以我們本次對硬件的調試過程僅僅局限于電路圖的修改調試。一開始仿照題目進行畫圖仿真,我們并沒得到相應的結果。2)對于軟件我們便是不斷檢查并修改C程序,從而形成合格的HEX文件。驅動單片機實現(xiàn)相應的功能。六重要程序及源代碼/*程序功能 : 對4×4矩陣鍵盤進行掃描,顯示鍵值和輸出聲音*/ #include <reg51.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned charsbit SPK = P30; /P3.0外接揚聲器uint FreqTemp;unsigned int code Key= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned int code Freqtab = /定時半周期的初始值 64021,64103,64260,64400, /低音3 4 5 6 64524,64580,64684,64777, /低音7,中音1 2 3 64820,64898,64968,65030, /中音4 5 6 7 65058,65110,65157,65178; /高音1 2 3 4/* * 函數(shù)功能 : 用掃描法讀 P1 外接 4×4 鍵盤* 函數(shù)返回 : 按下鍵:返回015、如無鍵按下:返回0*/ uchar Keyscan(void) uchar i, j, temp, Buffer4 = 0xfe, 0xfd, 0xfb, 0xf7; for(j = 0; j <4 ; j+) /循環(huán)四次,掃描四行 P1 = Bufferj; /在低四位分別輸出一個低電平 temp = 0x80; /計劃先讀出P1.7位 for(i = 0; i < 4; i+) /循環(huán)四次,檢查四列 if(!(P1 & temp) /從高四位,截取1位 return (i + j *4 ); /返回取得的按鍵值 temp >>= 1; /換右邊一位 return 16; /沒有鍵按下就返回16作為誤判動作 /* * 名稱: Display(uchar k) * 功能:顯示鍵值(音調或者音符)* 輸入: k (鍵盤數(shù)值) * 輸出: P0口輸出七段碼,P2口輸出位選碼(根據要求這里只輸出一位)*/ void Display(uchar k) P0 = Keyk;/* * 主函數(shù) */ void Main(void) uchar Key_Value = 16, Key_Temp1, Key_Temp2;/讀出的鍵值 TMOD = 0x01; /T0定時方式1 ET0 = 1; /允許T0中斷 EX0 = 1; /允許X0中斷 EA = 1; while(1) TR0 = 0; /暫不發(fā)音 Key_Temp1 = Keyscan(); /讀入按鍵 if(Key_Temp1 != 16) /有鍵按下 Display(Key_Value); /顯示鍵值、延時消抖 Key_Temp2 = Keyscan(); /再讀一次 if (Key_Temp1 = Key_Temp2) /兩次相等 Key_Value = Key_Temp1; /就確認下來 FreqTemp = FreqtabKey_Value; /根據鍵值,取出定時半周期的初始值 Display(Key_Value); /顯示 TR0 = 1; /啟動定時器,發(fā)音 while (Keyscan() < 16); /等待釋放 SPK = 1; /停止發(fā)音 /= void T0_INT(void) interrupt 1 TL0 = FreqTemp; /載入定時半周期的初始值 TH0 = FreqTemp >> 8; SPK = SPK; /發(fā)音七. 課程設計體會兩個周的實訓時間很快就結束了,比起一個學期的單片機學習。真的很短很短!但這期間的學習及其收獲卻很多很多。說句實話,我們這組的兩個成員單片機基礎只是不是很好。因此選題時都不敢選太難的,但是通過這幾天的不斷學習不斷探索。雖然最后的結果部是太令我們滿意,但是我們通過這次,加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去查閱所需的資料。這個過程中,我們花費了大量的時間和精力,更重要的是,我們在學會創(chuàng)新的基礎上,同時還懂得合作精神的重要性,學會了與他人合作。另外很感謝學校和老師給我們安排了這次課程設計,通過這次實訓我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應用存在著不小的差距,書本上的知識很多都是理想化后的結論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應用時這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據書上的理論就輕易得到預想中的結果,有時結果甚至很差別很大。通過這次實踐使我更深刻的體會到了理論聯(lián)系實際的重要性,我們在今后的學習工作中會更加的注重實際,努力提高自己的動手能力。八.參考文獻1.周向紅. 51單片機課程設計。武漢:華中科技大學出版社,2011.2.吳亦鋒. 單片機原理與接口技術。北京:電子工業(yè)出版社,2010.3.杜洋. 愛上單片機。北京:人民郵電出版社,2010. 4.王守中. 51單片機開發(fā)入門與典型實例。北京:人民郵電出版社.5.唐浩強. C程序設計。 北京:清華大學出版社,2005.專心-專注-專業(yè)

注意事項

本文(單片機實驗報告(基于51單片機))為本站會員(494895****12427)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!