基于12864液晶顯示單片機音樂播放器的設計_第1頁
基于12864液晶顯示單片機音樂播放器的設計_第2頁
基于12864液晶顯示單片機音樂播放器的設計_第3頁
基于12864液晶顯示單片機音樂播放器的設計_第4頁
基于12864液晶顯示單片機音樂播放器的設計_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 存檔編號 贛南師范學院學士學位論文基于12864液晶顯示的單片機音樂播放器教學學院 物理與電子信息學院 屆 別 2012屆 專 業 電子科學與技術 學 號 080803030 姓 名 周謨龍 指導教師 袁壽財 完成日期 2012年5月 目 錄摘要:1關鍵詞:1abstract:1keywords:21.緒論31.1 前言31.2 設計任務與要求32. 12864液晶概述42.1名稱含義42.2基本參數42.3電氣特性52.4液晶模組接口62.5基本用途:62.6應用舉例73. at89s51 單片機概述83.1 at89s51 單片機的結構83.1.1 管腳說明113.1.2 主要特性143

2、.1.3 振蕩器特性153.2 at89s51 單片機的工作周期163.3 at89s51 單片機的工作過程和工作方式173.4 stc12c5616ad224.方案設計224.1 系統概述224.2 總體設計244.3 系統硬件選擇244.4 硬件電路實現254.5 軟件的程序實現265.結論335.1 主要結論33參考文獻35致 謝36附錄a:主函數和部分函數程序清單37a.1 主函數代碼37a.2 播放音樂部分函數代碼39a.3 lcd顯示部分函數代碼42a.4 音樂播放部分指令代碼49a.5 部分頭文件中包含的代碼51a.5.1 延時函數頭文件51a.5.2 音樂指令頭文件代碼51a.

3、5.3 lcd12864液晶頭文件代碼52摘要: 本次課程設計是基于stc12c5616ad系列的51單片機lcd12864液晶顯示的音樂播放器。通過單片機音樂播放器系統設計和研究,對于切實掌握單片機相關知識具有重要的理論和實際意義。這次設計的音樂播放器是軟件和硬件的結合,樂曲中不同的音符,實質就是不同頻率的聲音。通過單片機產生不同的頻率的脈沖信號,經過放大電路,由功放放出,就產生了美妙和諧的樂曲。根據各音階頻率算出定時器定時常數,根據節拍給出該音階持續的時間,最終實現播放歌曲的功能。系統包括硬件和軟件兩個部分。硬件部分包括單片機控制電路,處理器采用stc51系列單片機stc12c5616ad

4、、lcd12864液晶顯示模塊、功放驅動放大電路、led控制電路等部分組成。軟件部分分為以下幾個模塊:12864驅動顯示、按鍵控制、播放模式和音樂播放等子程序。整個系統在軟件控制下工作的。關鍵詞:stc12c5616ad單片機;音樂播放器;lcd12864 液晶顯示器abstract:the design is liquid crystal display music player that based on the stc12c5616ad series 51 microcontroller lcd12864.the design and research of microcontrolle

5、r music player system has important theoretical and practical implications for effective control about microcontroller knowledge. the design of the music player is a combination of software and hardware.the inssence of different notes in music isdifferent frequencies of sound. through the microcontr

6、oller to generate the pulse signals of different frequencies,by the use of the amplifier circuit, released by the amplifier to produce a wonderful and harmony music. calculated the timer tinming constant by the scale frequency,then given the sustained time of the scale according to beat,and eventual

7、ly achieve the function of playing a song.the system includes both hardware and software.hardwork,including microcontroller control circuit、the processor of stc51 series microcontroller stc12c5616ad、lcd12864 lcd modules、power amplifier driver amplifier circuit and led control circuit,etc.software,in

8、cluding 12 864 drivers、key control, playback mode and music player,etc. the entire system operation is under software control. keywords: stc12c5616ad microcontroller; music player; lcd12864 liquid crystal displayer1.緒論 1.1 前言幾千年來,各種樂器的發生無一不是依靠琴弦、簧片、哨片引起管柱震動而作為聲源。隨著現代電子技術的飛速發展,一種用新的聲源來制造音響的新型樂器脫穎而出,這

9、就是目前人么熟知的電子音樂播放器。目前市場上的音樂器形形色色,例如,大家熟悉的mp3,隨著電子技術的不斷發展,音樂播放器的發展也會進一步發展。目前單片機的應用滲透到我們生活各個領域,幾乎很難找到哪個領域沒有單片機的痕跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的王若通訊與數據傳輸,工業自動化的實時控制和數據處理,廣泛使用的各種智能ic卡,民用豪華汽車的安全保障系統,錄影機、攝像機、全自動洗衣機的控制,以及程控玩具,電子寵物等等,這些都離不開嵌入式,離不開單片機。本課題即使在這種背景下,對基于12864液晶顯示的51系列單片機音樂播放器的設計與實現進行了軟硬件的設計,實現了單片機音樂播放器的

10、音樂演奏。1.2 設計任務與要求(1)該設計包括硬件和軟件設計兩個部分。模塊劃分為液晶顯示、按鍵控制控制、音樂播放和led顯示模塊子函數。(2)本系統設計由12864液晶模塊驅動、音樂播放、單片機控制電路、led控制電路及相關的控制管理軟件組成。(3)系統可實現功能:系統可存儲十幾首乃至幾十首自己喜歡的歌曲,由液晶顯示其歌名、播放模式和菜單。通過按鍵控制,播放歌曲。具有播放、暫停、停止、上一首、下一首的功能。播放模式可通過按鍵選擇常有的順序播放、循環播放、單曲循環和隨機播放。2. 12864液晶概述2.1名稱含義 12864是128*64點陣液晶模塊的點陣數簡稱,業界約定俗成的簡稱 2.2基本

11、參數 液晶屏類型: stn fstn 模塊顯示效果: 黃綠底黑字 藍底白字 白底黑字 視角: 6點鐘 12點鐘 驅動方式:1/64 duty 1/9 bias 背光: led白色 led黃綠色 控制器: ks0108或兼容 st7920 t6963c 數據總線 :8 位并口/6800 方式 串口 溫度特性 ;工作溫度:-20+70 儲藏溫度:-30+80 點陣格式 :128 x 64 2.3電氣特性 表2-1電氣特性項目符號最小典型最大單位電源電壓vdd-vss4.755.05.25v液晶驅動電壓vdd-vadjta=0-11.0-11.5-12.0ta=25-10.5-11.0-11.5ta

12、=50-10.0-10.5-11.0輸入信號電壓vih0.8 vdd-vdd+0.3vil0-0.2 vddlcm工作電流idd-38ma背光驅動電流iled-6080液晶驅動電流iee-1.0- 2.4液晶模組接口 表2-2液晶模組接口引腳序號名稱說 明1cs1#u1片選。2cs2#u2片選。3vss電源地。4vdd電源輸入(+5v)5v0液晶顯示對比度調節。6di數據輸入。7r/w讀寫選擇。r/w=1,讀狀態。r/w=0,寫狀態。8e讀寫使能。9-16d0-d7數據總線。17rst液晶模組復位。rst#=l,復位18vee液晶驅動電源 19vled+led電源正(5.0v)。20vled-

13、led電源地。2.5基本用途: 該點陣的屏顯成本相對較低,適用于各類儀器,小型設備的顯示領域。 2.6應用舉例1、使用前的準備先給模塊加上工作電壓,再按照下圖的連接方法調節lcd的對比度,使其顯示出黑色的底影。 此過程亦可以初步檢測lcd有無缺段現象。 2、字符顯示 帶中文字庫的128x64-0402b每屏可顯示4行8列共32個1616點陣的漢字,每個顯示ram可顯示1個中 文字符或2個168點陣全高ascii碼字符,即每屏最多可實現32個中文字符或64個ascii碼字符的顯示。帶中文字庫的128x64-0402b內部提供1282字節的字符顯示ram緩沖區(ddram)。字符顯示是通過將字符顯

14、示編碼寫入該字符顯示ram實現的。根據寫入內容的不同,可分別在液晶屏上顯示cgrom(中文字庫)、hcgrom(ascii碼字庫)及cgram(自定義字形)的內容。三種不同字符/字型的選擇編碼范圍為:00000006h(其代碼分別是0000、0002、0004、0006共4個)顯示自定義字型,02h7fh顯示半寬ascii碼字符,a1a0hf7ffh顯示8192種gb2312中文字庫字形。字符顯示ram在液晶模塊中的地址80h9fh。字符顯示的ram的地址與32個字符顯示區域有著一一對應的關系,其對應關系如下表所示。 表2-3液晶模組接口80h 81h 82h 83h 84h 85h 86h

15、87h90h 91h 92h 93h 94h 95h 96h 97h88h 89h 8ah 8bh 8ch 8dh 8eh 8fh98h 99h 9ah 9bh 9ch 9dh 9eh 9fh2、圖形顯示先設垂直地址再設水平地址(連續寫入兩個字節的資料來完成垂直與水平的坐標地址) 垂直地址范圍 ac5.ac0 ,水平地址范圍 ac3ac0 。繪圖ram 的地址計數器(ac)只會對水平地址(x 軸)自動加一,當水平地址=0fh 時會重新設為00h 但并不會對垂直地址做進位自動加一,故當連續寫入多筆資料時,程序需自行判斷垂直地址是否需重新設定。 3、應用說明 用帶中文字庫的128x64顯示模塊時應

16、注意以下幾點: 欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。 顯示ascii字符過程與顯示中文字符過程相同。不過在顯示連續字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ascii字符位置。 當字符編碼為2字節時,應先寫入高位字節,再寫入低位字節。 模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態,即讀取bf標志時bf需為“0”,方可接受新的指令。如果在送出一個指令前不檢查bf標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執行完成。指令執行的時間請參考指令表

17、中的指令執行時間說明。“re”為基本指令集與擴充指令集的選擇控制位。當變更“re”后,以后的指令集將維持在最后的狀態,除非再次變更“re”位,否則使用相同指令集時,無需每次均重設“re”位。3. at89s51 單片機概述3.1 at89s51 單片機的結構 at89s51單片機是美國atmel公司生產低電壓,高性能cmos 8位單片機,片內含4k bytes的可反復擦寫的只讀程序存儲器(eprom)和128 bytes的隨機存取數據存儲器(ram),器件采用atmel公司的高密度、非易失性存取技術生產,兼容標準mcs-51指令系統,片內置通用8位中央處理器(cpu)和flash 存儲單元,功

18、能強大。at89s51單片機可提供許多高性價比的應用場合,可靈活應用于各種控制領域。圖3-1為at89s51單片機的基本組成功能方塊圖。有圖可見,在這一塊芯片上,集成了一臺微型計算機的主要組成部分,其中包括cpu、存儲器、可編程i/o口、定時器/計數器、串行口等,各部分通過內部總線相連。下面介紹幾個主要部分。 圖3-1 at89s51 功能方塊圖1. 中央處理器(cpu)中央處理器是單片機最核心的部分,是單片機的大腦和心臟,主要完成運算和控制功能。at89s51的cpu是一個字長為8位的中央處理單元,即它對數據的處理是按字節為單位進行的。2. 內部數據存儲器(內部ram) at89s51 中共

19、有256個ram單元,但其中能作為寄存器供用戶使用的僅有前面128個,后128個被專用寄存器占用。3. 內部程序存儲器(內部rom)at89s51 共有4 kb掩膜rom,用于存放程序、原始數據等。4. 定時器/計數器at89s51 共有2 個16 位的定時器/計數器,可以實現定時和計數功能。5. 并行i/o 口at89s51 共有4 個8 位的i/o口(p0、p1、p2、p3口),可以實現數據的并行輸入、輸出。6. 串行口at89s51有1 個全雙工的可編程串行口,以實現單片機和其他設備之間的串行數據傳送。7. 時鐘電路at89s51 單片機內部有時鐘電路,但晶振和微調電容需要外接。時鐘電路

20、為單片機產生時鐘脈沖序列。8. 終端系統at89s51 的中斷系統功能較強,可以滿足一般控制應用的需要。它共有5 個中斷源:2 個外部中斷源/into和/int1 ;3 個內部中斷源,即2個定時/計數中斷,1個串行口中斷。由上所述,at89s51雖然是一塊芯片,但它包括了構成計算機的基本部件,因此可以說它是一臺簡單的計算機。at89s51 較詳細的內部結構如 圖 3-2 所示。圖 3-2 at89s51 內部結構框圖3.1.1 管腳說明atmel公司的at89s51是一種高效微控制器。采用40引腳雙列直插封裝(dip)形式,如圖3-3所示。at89s51單片機是高性能單片機,因為受引腳數目的限

21、制,所以有不少引腳具有第二功能。圖3-3 dip 封 裝 引 腳 圖 圖 3-4 smt 的 封 裝 圖 vcc:供電電壓。gnd:接地。p0口: p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口: p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時

22、,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口: p2口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口

23、管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89s51的一些特殊功能口,如下表所示:p3口管腳 備選功能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(外部數據存儲器寫選通)p3.7 /rd(外部數據存儲器讀選通)p3口同時為閃爍編程和編程校驗接收一些控制

24、信號。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許端的輸出電平用于鎖存地址的地址字節。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ale禁止,置位無效。/psen:外部

25、程序存儲器的選通信號端。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數據存儲器時,這兩次有效的/psen信號將不出現。/ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3.1.2 主要特性與mcs-51 兼容 4k字節可編程閃爍存儲器 壽命:1000寫/擦循

26、環數據保留時間:10年全靜態工作:0hz-24hz三級程序存儲器鎖定128*8位內部ram32可編程i/o線兩個16位定時器/計數器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路 3.1.3 振蕩器特性(1)xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器,如圖3-5所示。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,xtal2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。圖3-5 晶體振蕩器電路圖及出腿連接示意圖(2) 芯片擦除 整個eprom陣列

27、和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ale管腳處于低電平10ms 來完成。在芯片擦除操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。此外,at89c51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存ram的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。3.2 at89s51 單片機的工作周期單片機有了硬件和軟件就可以在控制器發出的控制信號作用下有條不紊地工作,控制信號必須定時發出,為了定時計算機內部

28、必須有一個準確的定時脈沖。這種定時脈沖是由晶體振蕩器產生的,并組成下面幾種工作周期,如圖3-6所示。圖 3-6 振蕩周期、狀態周期、機器周期和指令周期振蕩周期:是指為單片機提供時鐘脈沖信號的振蕩源的周期。 即由單片機的晶體振蕩器產生的時鐘脈沖的周期。狀態周期:每個狀態周期為振蕩周期的 2 倍, 是振蕩周期經二分頻后得到的。在一個狀態周期中有兩個時鐘脈沖,通常稱它為p1、p2。機器周期:一個機器周期包含 6 個狀態周期s1s6, 也就是 12 個振蕩周期。在一個機器周期內, cpu可以完成一個獨立的操作。 指令周期:它是指cpu完成一條操作所需的全部時間。控制部件是單片機的神經中樞,以主振頻率為

29、基準(主振周期即為振蕩周期),控制器控制cpu的時序,對指令進行譯碼,然后發出各種控制信號,它將各個硬件環節組織在一起。一般情況下,算術邏輯操作發生在時相p1期間,而內部寄存器之間的傳送發生在時相p2期間,這些內部時鐘信號無法從外部觀察,故用xtal2引腳振蕩信號作參考。3.3 at89s51 單片機的工作過程和工作方式單片機工作過程遵循現代計算機的工作原理(馮諾依曼原理),即程序存儲和程序控制。存儲程序是指人們必須事先把計算機的執行步驟序列(即程序)及運行中所需的數據, 通過一定的方式輸入并存儲在計算機的存儲器中。程序控制是指計算機能自動地逐一取出程序中的指令,加以分析并執行規定的操作。 單

30、片機的工作方式有:復位、程序執行、掉電保護和低功耗、編程、校驗與加密等方式。1復位方式通過某種方式, 使單片機內各寄存器的值變為初始狀態的操作稱為復位。復位方式是單片機的初始化操作。單片機除了正常的初始化外,當程序運行出錯或由于操作錯誤而使系統處于死循環時,也需要按復位鍵重啟機器。mcs51單片機復位后, 程序計數器pc和特殊功能寄存器復位的狀態如圖3-7所示。 復位不影響片內ram存放的內容, 而ale、在復位期間將輸出高電平。由圖3-7 可以看出,復位后:(1)(pc)=0000h 表示復位后程序的入口地址為0000h,即單片機復位后從0000h單元開始執行程序;(2)(psw)=00h,

31、 其中rs1(psw.4)=0,rs0(psw.3)=0,表示復位后單片機選擇工作寄存器0組;(3)(sp)=07h 表示復位后堆棧在片內ram的08h單元處建立;(4) p0口p3口鎖存器為全1狀態,說明復位后這些并行接口可以直接作輸入口,無須向端口寫1。定時器/計數器、串行口、中斷系統等特殊功能寄存器復位后的狀態對各功能部件工作狀態的影響。 能部件工作狀態的影響。 圖 3-7 pc與sfr復位狀態表單片機在時鐘電路工作以后, 在rst/vpd端持續給出2個機器周期的高電平時就可以完成復位操作。例如使用晶振頻率為12mhz時,則復位信號持續時間應不小于2us。復位方法一般有上電自動復位和外部

32、按鍵手動復位以及“看門狗”復位三種類型。前兩種見 圖3-8所示。 “看門狗”電路則是一種集成有單片機的電源監測、按鍵復位以及對程序運行進行監控,防止程序“跑飛”而出現死機而設計的電路。圖3-8 (a)上電復位電路; (b)上電/外部復位電路2程序執行方式程序執行方式是單片機的基本工作方式。由于復位后pc=0000h,因此程序執行總是從地址0000h開始,為此就得在0000h處開始的存儲單元安放一條無條件轉移指令,以便跳轉到實際程序的入口去執行。3待機方式待機方式也稱空閑方式,是一種節電工作方式。在待機工作方式中,振蕩器保持工作,時鐘脈沖繼續輸出到中斷、串行口、定時器等功能部件,使它們繼續工作,

33、但時鐘脈沖不再送到cpu,因而cpu停止工作。4掉電方式掉電方式,也被稱為停機方式。在掉電方式中,振蕩器工作停止,單片機內部所有功能部件停止工作。它同樣是一種為降低功耗而設計的節電工作方式。待機方式和掉電方式都是為了進一步降低功耗而設計的節電工作方式,它們特別適合于電源功耗要求很低的應用場合。這類系統往往是直流供電或停電時依靠備用電源供電,以維持系統的持續工作。chmos型單片機的節電方式是由特殊功能寄存器pcon控制,其具體使用可參考相關書籍和手冊。空閑和掉電模式外部引腳狀態 如下圖 3-9 所示:圖 3-9 空閑和掉電模式外部引腳狀態 5. 編程和校驗方式對于內部集成有eprom可以進入編

34、程或校驗方式。(1)內部eprom編程編程時,時鐘頻率應定在3-6mhz的范圍內,其余各有關引腳的接法和用法如下:p1口和p2口的p2.0p2.3為eprom的4k地址輸入,p1為8位地址;p2.4p2.6以及psen應為低電平;p0口為編程數據輸入;p2.7和rst應為高電平;rst的高電平可為2.5v,其余的都以ttl的高低電平為準;ea/vpp端加+21v的編程脈沖,此電壓要求穩定,不能大于21.5v,否則會損壞eprom在出現正脈沖期間,ale/prog端加上50ms的負脈,完成一次寫入。(2)eprom程序校驗在程序的保險位未設置前,無論在寫入的當時或寫入以后,均可將片上程序存貯器的

35、內容讀出進行檢驗,在讀出時,除p2.7腳保持為ttl低電平之外,其他引腳與寫入eprom的連接方式相同。要讀出的程序存貯器單元地址由p1口和p2口的p2.0p2.3送入,p2口的其他引腳及保持低電平,ale、ea和rst接高電平,檢驗的單元內容由p0口送出。在檢驗操作時,需在p0的各位外部加上電阻10k。(3)程序存貯器的保險位at89s51內部有一個保險位,亦稱保密位,一旦將該位寫入便建立了保險,就可禁止任何外部方法對片內程序存貯器進行讀寫。將保險位寫入以建立保險位的過程與正常寫入的過程相似,僅只p2.6腳要加ttl高電平而不是像正常寫入時加低電平,而p0、p1和p2的p2.0p2.3的狀態

36、隨意,加上編程脈沖后就可使保險位寫入。保險位一旦寫入,內部程序存貯器便不能再被寫入和讀出校驗,而且也不能執行外部存貯器的程序。只有將eprom全部擦除時,保險位才能被一起擦除,也才可以再次寫入。通過以上對單片機硬件系統的簡單介紹,應該已經掌握了單片機的內部結構及工作的原理和過程,但是單片機要實現它的強大控制功能特性,只有硬件是不能工作的,還必須依靠它的指令才能發揮單片機的強大作用。下面介紹單片機的指令系統。3.4 stc12c5616ad 此單片機不僅具有at89s51單片機的所有功能,而且還具有1個時鐘/機器周期,飛思卡爾芯片解密,增強型8051內核,速度比普通8051快812倍,本系統使用

37、其做設計,不僅因為它只有28腳所占空間較小,而且其內部flash為16k,非常適合設計所需。以下為stc12c5616ad 引腳圖。圖 3-10 stc12c5616ad 引腳圖。4.方案設計4.1 系統概述本系統采用功放作為發生裝置,其聲音效果是蜂鳴器無法相比的,而用12864是為了操作者更能直觀的對自己所喜歡的音樂進行播放。 該設計包括硬件和軟件設計兩個部分。模塊劃分為lcd顯示、按鍵控制、播放音樂和led顯示等模塊子函數。電路結構做成可劃分為:12864液晶控制電路、單片機控制電路、led控制電路,功放放大電路及相關的控制管理軟件組成。用戶終端完成按鍵處理、音樂播放、音樂存儲、本地顯示等

38、功能。就此設計的核心模塊來說,單片機就是設計的中心單元,所以此系統也是單片機應用系統的一種應用。單片機應用系統也是有硬件和軟件組成。硬件包括單片機、輸入/輸出設備、以及外圍應用電路等組成的系統,軟件是各種工作程序的總稱。單片機應用系統的研制過程包括總體設計、硬件設計、軟件設計、在線調試等幾個階段,就本設計來說也包括這些過程。它們的進程框圖如圖4-1 所示。圖 4-1 單片機應用系統研制過程框圖4.2 總體設計從設計的要求來分析該設計須包含如下結構:功放驅動電路、lcd顯示電路、單片機、晶振電路、復位電路、led顯示控制電路按鍵控制及相關的控制管理軟件組成;它們之間的構成框圖如圖4-2總體設計框

39、圖所示:圖4-2 總體設計框圖處理器采用51系列單片機stc12c5616ad。整個系統是在系統軟件控制下工作的。本系統硬件電路先對來說較簡單,這樣節約了設計成本,主要還是靠軟件來實現,通過模塊化編程,把每一個部分都通過模塊化來實現,這樣在調用時相對簡單,更方便音樂的修改。4.3 系統硬件選擇從以上的分析可知在本設計中要用到如下器件: stc12c5616ad、12864液晶驅動、led、按鍵、功放等一些單片機外圍應用電路,以及單片機的手工復位電路和晶振電路等等。系統所需元件如下頁所示。表4-1元器件清單見下表:編號名稱型號數量r5電阻3301r1、r2、r3、電阻10k3r4電位器10k1c

40、1、c2電容30pf2c3 (極性)電容10uf1d1發光二極管led1q1、q2三極管9015/80502u1 集成電路stc12c5616ad1 y1石英晶振12mhz1s1s5按鍵輕觸按鍵5ls1、ls2功放8r2jp120p12864插座1usb電源線電源線5.5*2.1128pic底座28p1lcd12864lcd12864模塊模塊14.4 硬件電路實現經分析本設計的電路原理圖如下圖4-3所示圖4-3 基于12864液晶顯示的單片機音樂播放器設計4.5 軟件的程序實現按上述工作原理和硬件結構分析可知系統主程序工作流程圖如下圖4-4所示;圖4-4 主程序工作流程圖本主程序實現的功能是:

41、先存入自己想要的歌曲以數組的方式存放到單片機中,同時以菜單的方式用126864液晶顯示出歌名,播放模式。通過按鍵選擇播放的曲目,播放模式(隨即,循環,單曲,順序)播放,暫停等方式。以下附上主函數程序清單#includereg52.h /調用頭文件#includemusiccode.h /調用音樂代碼頭文件#include lcd12864.h /調用液晶顯示頭文件#includestdlib.h /調用頭文件,產生隨機數用#include /調用頭文件,輸入輸出頭文件char oldcur=0,oldmode=0,oldsplay=0;void main() timerinit(); /定時器

42、初始化 init_12864(); /12864液晶初始化 cgram(); /寫入自定義字符 play(jintian,10); tr1 = tr0 = 0; curr = 0; /默認選中第一首 displayupdata(); /液晶顯示更新 while(1) key_select(); / 按鍵選擇函數 if(oldmode!=mode) /判斷播放模式是否改變 oldmode=mode; displayupdata(); /液晶顯示更新 if(oldcur != curr ) /判斷選中歌曲是否改變 oldcur=curr; displayupdata(); /液晶顯示更新 swit

43、ch(curr) /判斷選中歌曲 case 0: play(jintian,10); / 今天 break; case 1:play(bingyu,7); /冰雨 break; case 2:play(zhu,5); / 豬八戒背媳婦 break; case 3:play(xingyue,8); /星月神話 break; case 4:play(qingzang,8); /青藏高原 break; case 5:play(liang,5); /梁祝 break; case 6:play(qiannv,4); /倩女幽魂 break; case 7:play(huanghun,5); /黃昏 br

44、eak; case 8:play(red,8);/紅河谷 break; case 9:play(fause,8); /錯錯錯 break; case 10:play(ting,6); /聽聽我的心) break; case 11:play(bas,1); /簡譜 break; case 12:play(yinxing,6);/隱形的翅膀 break;default :tr1 = tr0 = 0;break; 注:各功能函數清單見附錄a。 所編寫的程序,通過keil 編譯軟件已經編譯通過,同時運行效果已經通過仿真軟件proteus仿真,可以達到預定設計的目的,仿真效果圖如下圖4-5所示 ;圖4-

45、5 結果仿真效果圖 通過仿真圖可以看出,該設計程序的結果達到了預期的目的,通過多次調試和修改,且在程序設計過程中應考慮到各方面的干擾以及輸入輸出信號在工作中的不穩定因素,都應該在程序設計或硬件外圍電路中對這些干擾和不穩定因素進行消除和穩定。本設計在設計過程中,應該考慮的問題和因素都已經進行了對應的處理,所以,一些隱患在設計過程中都已經消除了,根據仿真實現了設計功能,同時,根據原理圖作出相應的pcb圖,如圖4-6所示; 圖4-6 系統pcb效果圖根據pcb圖做出電路板,按照pcb圖的線路元器件的連接即可焊接出報警器成品,然后對焊接后的成品進行修正、測試,可以達到預期的目的。系統可根據用戶不同的選

46、擇來播放出不同的美妙的音樂。 5.結論5.1 主要結論本課題研究設計了一種基于單片機技術的液晶顯示單片機音樂播放器。該防播放器通過以stc12c5616ad單片機為工作處理器核心,外接lcd12864顯示模塊,它是一種新穎的顯示模塊。一般來說,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率。因此,單片機奏樂只需弄清楚兩個概念,就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長時間。知道了一個音符的頻率后,怎么讓單片機發錯相應頻率的聲音呢?一般來說,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應功放的i/o口來回取反,或者來回清零,置位,從而讓蜂

47、鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器置不同的定時值就可實現。在單片機上控制一個音符多長可采用循環延時的方法實現。首先,卻思確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,對于一個音符,如果它為十六分音符,只需調用一次延時程序,如果它為八分音符,只需調用兩次延時程序,一次類推 具體實現方法為:將樂譜中的每個音符的音調及節拍變換成對應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數,如此直到播放完畢最后一個音符,根據需要也可循環不停的播放整個樂曲。另外,對于

48、樂曲中餓休止符,一般將其音調參數設為ffh,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節節拍參數為00h來表示。經過幾天的努力,我的畢業設計終于完成了。這次的設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。通過這次畢業設計我明白了自己原來知識還比較欠缺。自己要學習的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。現在,我才明白學習是一個長期積累的過程,在以后的工作和學習中都應該不斷地學習,努力提高自己的知識和綜合素質。知識必須通過應用才能實現其價值。有些東西以為學會了,但真正到用的時候才發現時兩回事,所以我認為只有到真正會用的時候才是真正學會

49、了。在整個設計中我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己動作能力的信心,相信會對今后的學習有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創造過程中探索的艱難和成功時的喜悅。雖然這個設計做的不是太好,但是在設計過程中所學到的東西是這次畢業設計的最大收獲和財富,使我終身受益。參考文獻1王幸之等. at89系列單片機原理與接口技術.北京航空航天大學出版社,2004:278-2822me500單片機綜合開發系統用戶手冊全冊. 南京偉納電子有限責任公司,2006:1-432 3童詩白,華成英. 模擬電子技術基礎. 高等教育出版社,2001:1-6144閻石.數字電子技術基

50、礎.高等教育出版社,2005:308-3555王港元. 電工電子實踐指導.江西科學技術出版社,2006:1-3806鄔寬明. 單片機外圍器件實用手冊:數據傳輸接口器件分冊. 北京航空航天大學出版社,1998:1-5787張大明. 單片微機控制應用技術.機械工業出版社,2006:1-5188電子制作2005年合訂本. 北京電子制作雜志社. 2005:1-3699范風強,蘭嬋麗.單片機語言51應用實戰集棉.2006:1-46010贛南師院物電學院電子設計指導組,全國大學生電子設計賽訓練教程.2003:1-34611謝自美.電子線路設計 實驗 測試(第三版).華中科技大學出版社,2006:1-250

51、12薛均義、張彥斌. mcs-51 系列單片微型計算機及其應用.-西安:西安交通大學出版社 2005.113樓然苗.51系列單片機設計實例.北京:北京航空航天大學出版社2006.414黃智偉.傳感器應用設計實例制作.北京:電子工業出版社 2006.4致 謝本篇論文雖然凝聚著自己的汗水,但卻不是個人智慧的產品,沒有導師的指引和贈予,沒有父母和朋友的幫助和支持,沒有四年里物電學院各位老師對我的教導肯定會大打折扣,當我完成最后一個字符,涌上心頭的不是長途跋涉后抵達終點的欣喜,而是源自心底的誠摯謝意。首先我要感謝我的導師袁壽財老師,袁博士嚴謹的治學態度,淵博的專業知識,忘我的工作精神和對學生盡職盡責的教導都給我留下了十分深刻的印象。此外,袁博士對我的構思以及論文的內容不厭其煩的進行了多次知道和悉心指點,使我在完成論文的同時也深受啟發和教育,他將是我終生的榜樣。在此向袁壽財老師致以最誠摯的謝意和最衷心的祝福。其次要感謝贛南師院物電學院各位老師一直以來的教導,使我具備了扎實的專業基礎知識和較強的實踐動手能力!還要感謝一

溫馨提示

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

評論

0/150

提交評論