基于單片機的電子琴及音樂播放器設計_第1頁
基于單片機的電子琴及音樂播放器設計_第2頁
基于單片機的電子琴及音樂播放器設計_第3頁
基于單片機的電子琴及音樂播放器設計_第4頁
基于單片機的電子琴及音樂播放器設計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的電子琴及音樂播放器設計摘 要隨著電子技術的發(fā)展和計算機越來越普遍的使用,單片機作為這兩項技術的有機結合也得到了廣泛的應用。電子琴是現(xiàn)代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經溶入現(xiàn)代人們的生活中,成為不可替代的一部分。此次設計依據(jù)單片機技術原理,通過硬件電路制作以及軟件編譯,設計制作出一個基于AT89C52系列單片機的電子琴及音樂播放器,以單片機作為主控核心,主要由按鍵電路、復位電路、模式轉換電路等組成。利用單片機及KeilC51編程軟件編程和PROTEUS單片機仿真軟件和電子電工等方面知識,用

2、KeilC51編程軟件編程,用PROTEUS單片機仿真軟件仿真。最后制作實物,將程序下載到單片機中,利用I/O口產生一定頻率的方波,驅動喇叭,發(fā)出不同的音調,從而演奏樂曲。本論文給出了系統(tǒng)方案的建立、硬件電路的詳細設計及軟件的程序實現(xiàn)。并通過軟硬件的聯(lián)立調試,驗證了設計方案的可行性。通過基于單片機的音樂播放器的設計課題熟悉和理解單片機應用和開發(fā)過程,培養(yǎng)我們理論聯(lián)系實際,實踐出真知的科學嚴謹求學的態(tài)度,提高實踐動手操作技能。關鍵詞:AT89C52單片機、電子琴、音樂播放器、仿真軟件 目錄摘 要11 引 言32 單片機基礎知識簡介42.1 單片機介紹42.1.1單片機概念42.1.2 單片機的應

3、用42.1.3 單片機的發(fā)展趨勢53 課程設計介紹63.1 課程設計的目的63.2 課程設計的要求63.3 系統(tǒng)方案的擬定與選擇73.3.1 初步方案的確定73.3.2方案的簡單說明73.4課程設計的總體結構框圖73.5課程設計的意義84 硬件設計84.1 硬件電路的設計框圖84.2 硬件電路設計模塊的選定84.2.1 中心模塊84.2.2 播放模塊9 4.2.3按鍵模塊105 軟件設計125.1軟件系統(tǒng)介紹125.2編程軟件KeilC51125.2.1 Keil C51概述125.2.2 Keil C51 的整體結構135.2.3 采用Keil C51 開發(fā)的 AT89C51 單片機應用程序

4、步驟135.3 繪圖軟件 Proteus135.3.1 Proteus 概述135.3.2 proteus 的操作步驟145.4 單片機的發(fā)聲原理145.5 系統(tǒng)程序設計155.5.1 主程序流程圖設計155.5.2 1ms延時程序設計175.5.3函數(shù)初始化子程序設計186 設計心得體會188 附錄208.1 附錄一 硬件原理圖208.2 附錄二 實物圖208.3 附錄三 元器件清單218.4 附錄四 軟件主程序211 引 言二十一世紀,電子技術獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產品性能進一

5、步提高,產品更新?lián)Q代的節(jié)奏也越來越快。在信息家電和行業(yè)應用手持信息設備等信息終端類產品中,具備音樂播放功能已成為此類產品的發(fā)展趨勢之一。基于電子琴的諸多優(yōu)點和廣泛使用,是我們大家日常生活中較為熟悉的一種電子產品。為培養(yǎng)我們大學生的思考、理解身邊電子產品的習慣和提高自己的實際動手能力,我選擇了設計一款以AT89C52單片機為核心的音樂播放器作為自己的單片機課程設計。本次設計由硬件電路設計和軟件程序設計兩大部分組成,是應用MCS-51單片機原理和控制理論設計音樂演奏控制器的硬件電路,并利用匯編語言進行程序設計。整個硬件電路是由中心控制、播放和按鍵等模塊組成,中心控制模塊采用AT89C52單片機,播

6、放模塊是由8050 NPN三極管和喇叭組成,電子琴設有8個按鍵,實現(xiàn)用戶自彈作曲。一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,構成我們想演奏的那首曲目。當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產生這樣的方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系編寫正確就可以達到我們想要的曲目。本文主要對使用單片機設計簡易電子琴進行了分析,并介紹了基于單片機電子琴硬件的組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏要表達的音符。并且分別從原理圖,主要芯片,個模塊原理及各模塊的程序的調試來詳細

7、闡述。2 單片機基礎知識簡介2.1 單片機介紹2.1.1單片機概念 單片機(SCM)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是將中央處理單元(CPU)、存儲器(RAM,ROM)、輸入/輸出接口電路等微型計算機的基本功能部件集成在一塊集成電路芯片上,構成一個具有存儲、運算、輸入輸出功能的微型計算機。 MCS-51單片機是美國INTEL公司于1980年推出的產品,與MCS- 48單片機相比,它的結構更先進,功能更強,在原來的基礎上增加了更多的電路單元和指令,指令數(shù)達111條,MCS-51單片機可以算是相當成功的產品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機仍是應用的主流產品,各高校

8、及專業(yè)學校的培訓教材仍與MSC-51單片機作為代表進行理論基礎學習。 MCS-51系列單片機主要包括8031、8051和8751等通用產品。DP-51S單片機仿真實驗儀是由廣州致遠電子有限公司設計的DP系列單片機仿真實驗儀之一,是一種功能強大的單片機應用技術學習、調試。2.1.2 單片機的應用單片機的應用提高了機電產品的技術水平和自動化程度,對各行各業(yè)的技術改造和產品更新起到了重要的推動作用。其應用領域已從工業(yè)控制、儀器儀表、機電一體化設備等迅速發(fā)展到家用電器、辦公自動化、汽車電子等廣大領域。一、在智能儀器儀表的應用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛

9、應用于儀器儀表中,結合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。二、在家用電器中的應用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯煲、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。三、在工業(yè)控制中的應用 用單片機可以構成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網構成二

10、級控制系統(tǒng)等。四、在計算機網絡和通信領域中的應用 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網絡和通信設備間的應用提供了極好的物質條件,現(xiàn)在的通信設備基本上都實現(xiàn)了單片機智能控制,從手機、電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。五、單片機在醫(yī)用設備領域中的應用 單片機在醫(yī)用設備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設備及病床呼叫系統(tǒng)等等。 此外,單片機在工商、金融、科研、教育、國防航空等領域都有著十分廣泛的用途。2.1.3 單片機的發(fā)展趨勢 單片機現(xiàn)在可

11、以說是百花齊放,百家爭鳴的時期,世界上各大芯片制造公司都推出了自己的單片機,從8位、16位到32位,數(shù)不勝數(shù),應有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片機的應用提供了廣闊的天地??v觀單片機的發(fā)展過程,可以預示單片機的發(fā)展趨勢,大致有: (1)微型單片化 現(xiàn)在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉換器、PMW(脈寬調制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅動電路都集成在單一的芯片上

12、,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機芯片。 此外,現(xiàn)在的產品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構成的系統(tǒng)正朝微型化方向發(fā)展。(2)低功耗CMOS化MCS-51系列的8031推出時的功耗達630mW,而現(xiàn)在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各 個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半

13、導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于要求低功耗像電池供電的應用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。 (3)主流與多品種共存 現(xiàn)在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結構和指令系統(tǒng)的有PHILIPS公司的產品,ATMEL公司的產品和中國臺灣的Winbond系列單片機。所以80C51占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集合(RISC)也有著強勁的發(fā)展勢頭,中國臺灣的HOLTEX公司近

14、年的單片機產量與日俱增,與其底價質優(yōu)的優(yōu)勢,占據(jù)一定的市場份額。此外還有MOTOROLA公司的產品,日本幾大公司的專用單片機。在一定的時期內,這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走的是依存互補、相輔相成、共同發(fā)展的道路。 九十年代以后,單片機在結構上采用雙CPU或內部流水線,CPU位數(shù)有8位、16位、32位,時鐘頻率高達20MHZ,片內帶有PWM輸出、監(jiān)視定時器WDT、可編程計數(shù)器陣列PCA、DMA傳輸、調制解調器等。芯片向高度集成化、低功耗方向的發(fā)展,使得單片機在大量數(shù)據(jù)的實時處理、高級通信系統(tǒng)、數(shù)字信號處理、復雜工業(yè)過程控制、高級機器人以及局域網等方面得到大量應用。這

15、類單片機有NEC公司的MPD7800,MITSUBISHI公司的M,REVKWELL公司的R6500。3 課程設計介紹3.1 課程設計的目的 以AT89C52單片機、喇叭、按鈕等元器件,并利用單片機的原理組成一個電子琴音樂播放器。3.2 課程設計的要求(1)用Proteus畫圖軟件畫出音樂播放器的硬件原理圖。(2)畫出軟件流程圖,采用單片機C語言根據(jù)音樂播放器要實現(xiàn)的功能進行編程。(3)用Keil編程軟件調試所編的C程序,并將其生成*.hex文件,首先將其載入硬件原理圖的單片機中,完成硬件與軟件調試綜合調試,實現(xiàn)預定功能。(4)根據(jù)所設計的硬件原理圖進行實物焊接,將生成的*.hex文件燒入芯片

16、中,實現(xiàn)設計要求。(5)寫出課程實習報告3.3 系統(tǒng)方案的擬定與選擇3.3.1 初步方案的確定在課程設計實習開始之前,我們在圖書館及電子閱覽室進行了大量資料的收集,通過我們組成員的探討,初步確定了設計方案,基于單片機的電子琴及音樂播放器設計。3.3.2方案的簡單說明主要實現(xiàn)的是7個按鍵實現(xiàn)彈奏功能,1個按鍵能夠實現(xiàn)音樂播放??刂奇I盤,將8個按鍵依次接在P2口上,使其一旦有按鍵按下就會對應播放一個對應的音符。停止按鍵可以使用復位電路來實現(xiàn)。各音調對應的定時器初始裝載表也以數(shù)組的形式按升調順序存儲,并按前面所述將各歌曲的對應音調和節(jié)拍存儲在數(shù)組中,有按鍵按下時,將歌曲的數(shù)組首地址傳給全局指針,利用

17、相應的處理函數(shù)調出音調對應的定時器裝載值表,給定時器裝載初值并啟動,產生控制揚聲器的方波,根據(jù)低半字節(jié)控制延時時間,即音調的發(fā)音長短。3.4課程設計的總體結構框圖單片機接+5V電源供電,晶振電路產生單片機所需時鐘信號,通過功能鍵產生外部中斷,再由I/O接口輸出控制揚聲器發(fā)聲。另外,復位電路在于營造一個程序運行的初始狀態(tài),在程序運行過程中或有出錯時,重新啟動單片機工作。課程設計總體框圖如下圖所示:電源電路 復位電路 放大電路 晶振電路 按鍵電路揚聲器 AT89C52 單片機圖3.4 課程設計總體框圖3.5課程設計的意義從最開始的選擇課題、設計方案,到軟件及硬件的設計,自己動手畫硬件電路圖,進行排

18、版焊接,軟件調試,使得我們更好地熟悉和掌握單片機的原理、基本功能和編程,深入了解51單片機的實際應用,更深的理解、吸收課堂上所學知識,將理論及實際聯(lián)系在一起,更好地提高動手能力,及發(fā)現(xiàn)問題、分析問題、解決問題的能力。此外,還加強了組員間的合作意識。4 硬件設計4.1 硬件電路的設計框圖硬件電路由控制模塊、按鍵模塊、揚聲器播放模塊、放大模塊組成。硬件總體框圖如下圖所示:圖4.1 硬件總體框圖按鍵模塊共由8個按鍵組成,實現(xiàn)音樂的自行彈奏和播放已存入的歌曲。揚聲器塊由三極管及喇叭組成,通過控制模塊的控制對當前音樂進行播放。8個鍵作為音符的輸入或音樂的播放選擇。4.2 硬件電路設計模塊的選定4.2.1

19、 中心模塊AT89C52是51系列單片機的一個型號,它是ATMEL公司生產的。AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統(tǒng)控制應用場合。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,A

20、T89C52可以按照常規(guī)方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應不同產品的需求。 主要功能特性:(1)兼容MCS51指令系統(tǒng):8k可反復擦寫(1000次)Flash ROM。(2)32個雙向I/O口: 256x8bit內部RAM。(3)3個16位可編程定時/計數(shù)器中斷:時鐘頻率0-24MHz。(4)2個串行中斷:可編程UART串行通道。(5)2個外部中斷源: 共6個中斷源。(6)2個讀寫中斷口線:

21、3級加密位。(7)低功耗空閑和掉電模式 :軟件設置睡眠和喚醒功能。從本系統(tǒng)設計的功能需求及成本考慮,51單片機性價比更高,AT89C52是擁有2個外部中斷,2個16位定時器,2個可編程串行UART的單片機。中心控制模塊采用AT89C52單片機已完全滿足設計需要,實現(xiàn)整個系統(tǒng)控制。AT89C52的引腳圖如下:圖4.1 AT89C52引腳圖4.2.2 播放模塊播放模塊是由8050 NPN三極管和喇叭組成。AT89S52輸出高電平控制信號,啟動8050 NPN三極管使信號放大,從而啟動喇叭。但由于所需驅動功率較小,驅動器件要求不高,并能降低設計成本。因此,必須選用8050 NPN三極管和喇叭則能滿足

22、系統(tǒng)要求。播放模塊如下圖所示:圖4.2 播放模塊4.2.3按鍵模塊按鍵模塊有9個按鍵,其中7個按鍵,即為電子琴模塊,7個按鍵分別代表7個音符,作為音符輸入,實現(xiàn)用戶自彈作曲。另外1個按鍵可以進行播放模式與自行彈奏模式的轉換。還有一個按鍵,為復位按鍵,復位電路在于營造一個程序運行的初始狀態(tài),在程序運行過程中或有出錯時,重新啟動單片機工作。通過軟硬件設計,在電子琴模式時,通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉到對應的程序人口,實現(xiàn)自編歌曲。模式轉換按鍵觸發(fā)外部中斷1,中斷使程序跳轉,實現(xiàn)模式轉換,啟動音樂播放功能。當需要取消音樂播放功能時,按下復位按鍵即可退出音樂播放功能而返回到原來

23、電子琴功能處。各模塊如下圖所示:圖4.3 電子琴按鍵模塊圖4.4 復位按鍵模塊5 軟件設計5.1軟件系統(tǒng)介紹 一個系統(tǒng)的正常運行不僅需要硬件系統(tǒng)的支持,而且需要軟件系統(tǒng)的支持。如果把硬件比作軀體,那軟件就是靈魂,硬件系統(tǒng)和軟件系統(tǒng)相互間密切的配合才構建了能夠“思考”和“判斷”的整體系統(tǒng)。借助軟件的可編程性,可以精簡硬件系統(tǒng)的組成;憑借軟件的靈活性,可以不用對硬件系統(tǒng)進行修改而實現(xiàn)系統(tǒng)功能的修改。軟件系統(tǒng)與硬件系統(tǒng)是密切相聯(lián)的,軟件系統(tǒng)建立在硬件系統(tǒng)之上,離開了硬件系統(tǒng),軟件將無法實現(xiàn)任何功能。軟件的設計有一定的針對性,對于不同的硬件系統(tǒng),需要編寫不同的軟件。與硬件系統(tǒng)一樣,軟件系統(tǒng)的好壞,直接

24、影響到系統(tǒng)的工作效率和可靠性。5.2編程軟件KeilC515.2.1 Keil C51概述單片機的開發(fā)軟件在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件。 Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的。本次課程設計正是使用Keil C51編程軟件

25、Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面。C51工具包的整體結構,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.

26、OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。5.2.2 Keil C51 的整體結構C51工具包的整體結構中,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及

27、A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。5.2.3 采用Keil C51 開發(fā)的 AT89C51 單片機應用程序步驟(1)在uVision 集成開發(fā)環(huán)境中創(chuàng)建新項目(Project),擴展文件名為.UV2,并為該項目選定合適的單片機CPU器件。(2)用uVision 的文本編輯器編寫源文件,可以是匯編文件(

28、.ASM),也可以使C語言文件(擴展名.C)本設計是 *.C 文件,并將該文件添加到項目中去。一個項目文件可以包含多個文件,除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。(3)通過uVision 4 的相關選擇項,配置編譯環(huán)境、連接定位器以及Debug調試器的功能。(4)對項目中的源文件進行編譯連接,生成絕對目標代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯誤則返回到(2),修改源文件中的錯誤后重構整個項目。(5)對沒有語法錯誤的程序進行仿真調試,調試成功后將 *.hex文件寫入到單片機應用系統(tǒng)的ROM中。5.3 繪圖軟件 Proteus 5.3.1 Proteus 概述 Proteus

29、軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件,是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/2

30、4/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 Proteus軟件具有如下功能:(1)原理布圖。(2)PCB自動或人工布線。 (3)SPICE電路仿真。5.3.2 proteus 的操作步驟(1) 硬件電路圖的接法操作 放置選擇(刪除)元器件 移動元器件 縮放視圖 連接導線 仿真,調試(2)單片機系統(tǒng)PROTEUS設計與仿真過程Proteus強大的單片機系統(tǒng)設計與仿真功能,使它可成為單片機系統(tǒng)應用開發(fā)和改進手段之一。全部過程都是在計

31、算機上通過Proteus來完成的。其過程一般也可分為三步: 在ISIS平臺上進行單片機系統(tǒng)電路設計、選擇元器件、接插件、連接電路和電氣檢測等。簡稱Proteus電路設計。 Keil平臺上進行單片機系統(tǒng)程序設計、編輯、匯編編譯、代碼級調試,最后生成目標代碼文件(*.hex)。簡稱Proteus源程序設計和生成目標代碼文件。 在ISIS平臺上將目標代碼文件加載到單片機系統(tǒng)中,并實現(xiàn)單片機系統(tǒng)的實時交互、協(xié)同仿真。它在相當程度上反映了實際單片機系統(tǒng)的運行情況。在 Proteus 繪制好原理圖后,調入已編譯好的目標代碼文件:*.hex,可以在 Proteus 的原理圖中看到模擬的實物運行狀態(tài)和過程。5

32、.4 單片機的發(fā)聲原理聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處片機某個口線的“高”電平或“低電平”,則在該口上就能產生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調。播放一段音樂需要的是兩個元素,一個是音調,另一個是音符。首先要了解對應的音調,音調主要由聲音的頻率決定,同時也與聲音強度有關。對一定強度的純音,音調隨頻率的升降而升降;對一定頻率的純音、低頻純音的音調隨聲強增加而下降,高頻純音的音調卻隨強度增加而上升。另外,音符的頻率有所不同。音符的節(jié)拍我們可以用定時器T0來控制,送入不同的初值,就可

33、以產生不同的定時時間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。但是,由于T0的最大定時時間只能為131毫秒,因此不可能直接用改變T0的時間初值來實現(xiàn)不同節(jié)拍。我們可以用T0來產生10毫秒的時間基準,然后設置一個中斷計數(shù)器,通過判別中斷計數(shù)器的值來控制節(jié)拍時間的長短。例如對1/4拍音符,定時時間為0.16秒,相應的時間常數(shù)為16(即10H);對3拍音符,定時時間為1.92秒,相應時間長數(shù)為192(即C0H)。我們將每一音符的時間常數(shù)和其相應的節(jié)拍常數(shù)作為一組,按順序將樂曲中的所有常數(shù)排列成一個表,然后由查表程序依次取出,產生音符并控制節(jié)奏,就可以實現(xiàn)演奏效果。此外,結束符和休止符可以

34、分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產生相應的停頓效果。為了產生手彈的節(jié)奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不同的音符。5.5 系統(tǒng)程序設計5.5.1 主程序流程圖設計本設計中采用的獨立式鍵盤,按鍵的閉合與否直接反應在口線的電平上,即口線的電平是呈現(xiàn)的高電平還是低電平。因此可以通過口線的電平高、低狀態(tài)檢測,來確認按鍵是否按下。但如果在觸點抖動期間檢測按鍵的通與斷狀態(tài),可能導致判斷出錯,即按鍵一次按下或釋放被錯誤的認為是多次操作,為克服按鍵點機械抖動所致的檢測錯誤,確保CPU對一次按鍵動作只確認一次按鍵,必須采取去

35、抖動的措施。系統(tǒng)流程圖如下所示:圖5.1 系統(tǒng)總流程圖圖5.2 放歌流程圖一般把按鍵掃描程序設計成子程序,以便其他程序調用。按鍵掃描子程序流程圖如下: 開 始是否有鍵按下有否鍵按下延時去抖返回計算并保存鍵值按鍵是否釋放恢復鍵值Y NNYYN圖5.3 按鍵掃描流程圖5.5.2 1ms延時程序設計延時程序一般是通過一層或多層循環(huán)實現(xiàn),整個過程延時的時間是程序執(zhí)行的指令總條數(shù)乘以執(zhí)行每條指令所用的時間。由于該系統(tǒng)的晶振選用的是12M,所以執(zhí)行每條指令所所用時間為2us。程序執(zhí)行流程如下圖所示: 圖5.4 延時子程序流程圖5.5.3函數(shù)初始化子程序設計函數(shù)初始化程序即把在主函數(shù)內對某些參數(shù)和標記位賦初

36、值編寫成一個函數(shù),這樣使程序更具有條理化,清晰易懂。由于整個程序要用到定時器0和定時器1,所以初始化程序主要是對定時器相關內容作說明。參考文獻:1 杜洋.愛上單片機北京,人民郵電出版社. 2011.11. 2 范風強,蘭嬸麗.單片機語言C51應用實戰(zhàn)集錦M北京,電子工業(yè)出版社.2005.5. 3 柴鈺.單片機原理及應用M西安,西安電子科技大學出版社.2009.6 設計心得體會趙月姣:這次單片機實習,總體來說還算順利。我們小組的單片機課程設計題目是:電子琴及音樂播放器的設計。在這次課程設計中,我學到很多很多的東西,不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識,可以進行一些

37、簡單的編程,還能夠熟練的焊接電路,并學會如何找到電路中問題,如何利用KEIL編程軟件對源程序進行編程并調試。首先,在我們小組討論后確定了電路圖后,準備開始用PROTEUS仿真軟件仿真,但是由于仿真軟件之前沒有用過不太熟練,在畫完電路圖之后仿真看不出來效果,所以就直接開始了焊接工作,在硬件焊接時,因為之前大二的實習有過經驗,所以焊接時還是很容易上手的,幾個小時就焊接完成。下來就是最頭疼的調程序。由于是在網上下載的程序錯誤特別多,我們就一點一點的按照所要達到的要求修改程序。搜集到的程序有C語言的有匯編語言的。因為我們之前沒有接觸過51C語言的編程,所以我搜集了各種教程資料,學習了C語言的基本編程,

38、想先做到能把資料上的程序看懂,進一步修改調試。但是在經過了周二一下午到晚上還是沒有成功調試出程序,于是換了方向改用匯編語言進行編程,畢竟在學習單片機課程時一直在學習匯編。經過研究利用單片機發(fā)音的原理以及放歌時歌曲的音調及音色的表,我弄清楚了程序的主思路。第一次燒進去程序后,喇叭只有很小的雜音,放在耳朵邊才能聽見。這讓我們很懊惱,不知道是硬件的問題還是軟件的問題,在經過了多次調試之后,又用萬用表反復測試電路各處電壓之后,發(fā)現(xiàn)是將三極管燒壞了。軟件也有問題,在咨詢了老師之后,我們才恍然大悟,原來是程序中給點時間太短,輸出的方波的高電平還沒有來得及將喇叭點響就變成了低電平,所以才會有很小的雜音。之后

39、又將放歌程序嵌入到主程序中,成功實現(xiàn)了之前預期的功能。在聽到按按鍵之后發(fā)出的清脆的歌聲時,我們都很興奮。在星期四早上我們又給自動放歌中加了一首歌,并且嘗試用一個4*4鍵盤來代替之前的八個按鍵,因為按鍵多了可以發(fā)高低調的音。但是因為程序又要有很大的變動,在調試程序后一直沒有出來。在實習過程中,我感覺每一次問題的發(fā)現(xiàn)和解決都讓我學到了很多東西。雖然最后還是沒有達到理想中的效果。但是我堅信 “失敗是成功之母“。我一定會成功。如果我的時間再長一點,我們一定會成交上一個更完美的作品。最后真的很感謝王老師,耐心的幫助我們解決問題,在我們很迷茫的時候點播思路。這次實習是一個起點,它對我以后的學習和未來的工作

40、將會有很大的幫助。 呂元杰: 個人覺得本次的單片機還是非常有意義的,第一能讓我們把實際的與理論的知識做一個結合,第二,讓我們對單片機這一個應用學科,學習的更“生動”,具體的感覺,了解操作,而不是在書本上念文字。 這次的課程設計,我們做的是一個電子琴音樂播放器,原本的心中理想作品是帶有彈琴,放歌(多首),顯示,多音節(jié)的電子琴音樂播放器。但由于時間不是很充足,而且碰到的問題略多,進度緩慢,最終作品的要求改為,帶按鍵彈琴,帶音樂播放(2首)。前期準備的時候搜集了很多東西,并對可以借鑒的文檔進行了分析,然后綜合了多個文檔確定了我們這次的方案。然后根據(jù)這些資料利用proteus軟件進行了繪制,并進行前期

41、的仿真。開始硬件的焊裝時,我們對按鍵模塊進行了選擇。原先的方案是4*4矩陣按鍵,最后發(fā)現(xiàn)按鍵過多,只做一個音階的話可以只用一排8個鍵就夠,而且4*4矩陣鍵盤掃描程序麻煩的很,最終就放棄了4*4矩陣鍵盤。在做放大電路時我們選用的是NPN三極管,因為覺得三極管的能力就已經能達到要求,不需要放大器。做揚聲器的時候我們本來選用了蜂鳴器和喇叭,最后蜂鳴器對音調的區(qū)分不明顯達不到效果,所以放棄,改用功率略大的喇叭。做好硬件,開始調試,首先編輯一個簡單的方波信號來檢測揚聲器的好壞,經過多次調試和改件最終能工作,然后利用匯編語言編寫了一個按鍵的發(fā)音,經過調試成功后,開始加寫多個按鍵的發(fā)音。同時我的搭檔編寫自動

42、放音程序,然后調試。最后我們都把自己的子程序寫好,調試成功,然后組合成一個總程序,達到作品要求。在組合的時候也出現(xiàn)過程序問題,因為我們有的部分使用了同一個工作寄存器,還有定時器。在碰到問題的時候有時候一天都調不出來,有時候團隊之間有很多的分歧,但是最后在老師的幫助分析錯誤原因,最后都解決了。所以要謝謝老師和搭檔的幫助。 這次的課程設計對自己真的有所提高,以后會多多做些練手的東西,從實際中學到書本上學不到的知識。實踐出真知。8 附錄8.1 附錄一 硬件原理圖8.2 附錄二 實物圖8.3 附錄三 元器件清單表一 元器件清單AT89C52芯片1個按鈕8個瓷片電容3個晶振12MHZ1個電阻10K8個電

43、阻2001個NPN 80501個喇叭1個8.4 附錄四 軟件主程序 ORG 0000H LJMP START ORG 000BH LJMP INT_T0 ORG 001BH LJMP T1_SEVSTART: MOV P1,#0FFH MOV TMOD,#01H SETB ET0 SETB EA ST:MOV R3,P1CJNE R3,#0FFH,KEY1 CLR TR0 SJMP ST KEY1: CJNE R3,#0FEH,KEY2 MOV 30H,#0FBHMOV 31H,#0E9HLJMP SET_TIMERKEY2: CJNE R3,#0FDH,KEY3MOV 30H,#0FCHMOV 31H,#5CHLJMP SET_TIMERKEY3: CJNE R3,#0FBH,KEY4MOV 30H,#0FCHMOV 31H,#0C1HLJMP SET_TIMERKEY4: CJNE R3,#0F7H,KEY5MOV 30H,#0FCHMOV 31H,#0EFHLJMP SET_TIMERKEY5: CJNE R3,#0EFH,KEY6MOV 30H,#0FDHMOV 31H,#045HLJMP SET_TIMERKEY6: CJNE R3,#0DFH,KEY7MOV 30H,#0FDHMOV 31H,#92HLJMP SET_TIMERKEY

溫馨提示

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

評論

0/150

提交評論