【正文】
沈陽理工大學學士學位論文 26 流程圖 主程序流程圖: 圖 主流程圖 開始 初始化 演奏與播放轉(zhuǎn)換 CHANGE=1? 獲取按鍵值 音樂彈奏 音樂自動演奏 設置 TO 和 T1啟動 否 是 沈陽理工大學學士學位論文 27 子流程圖 : 圖 子流程圖 揚聲器發(fā)聲原理 單片機產(chǎn)生不同 頻率脈沖信號的原理 要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖( 1/頻率),然后將此周期除以 2,即為半周期的時間,利用定時器計時這個半周期的時間,每當計時到后就將輸出脈沖的I/O 反相,然后重復計時此半周期的時間再對 I/O 反相,就可以在 I/O 腳上得到此頻率的脈沖。 KEILC51 標準 C 編譯器為 8051 微控制器的軟件開發(fā)提供了 C 語言環(huán)境 ,同時保留了匯編代碼高效 ,快速的特點。 透過分時輪流控制各個 LED 數(shù)碼管的 COM 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。 led 數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。如:顯示一個 “3”字,那么應當是 a 亮 b亮 g 亮 c 亮 d 亮 e 不亮 f 不亮 dp 不亮。 8 位串行輸入 /輸出或者并行輸出移位寄存器,具有高阻關斷狀態(tài)。線反轉(zhuǎn)法的基本思想是通過行列顛倒兩次掃描來識別閉合鍵,為此需要提供兩個可編程的雙向輸入 /輸出端口。 鍵盤實現(xiàn)的功能 鍵盤接口必須具有去抖動、按鍵識別和鍵碼產(chǎn)生 3 個基本功能。如果將第一行置 0,沒有檢測到有列被拉為 0,則將第二行置 0,其他三行被置 1,所有列置 1,按照上訴方式進行鍵盤檢測 。 圖 鍵盤電路 識別按鍵的方法 矩陣式方法 識別按鍵的方法很多,其中,最常見的方法 就是矩陣式方法 。 ( 1) 編碼鍵盤 :鍵盤本身帶有實現(xiàn)接口主要功能所需的硬件電路。輸出端(引腳 5)應外接輸出電容后再接負載。它是一個三級放大電路。輸入端以地位參考 ,同時輸出端被自動偏置到電源電壓的一半 ,在 6V電源電壓下 ,它的靜態(tài)功耗僅為 24mW,使得 LM386 特別適用于電池供電的 場合 [4]。上電后,由于電容充電,使 RST 持續(xù)一段高電平時間。 圖 單片機的時鐘電路 沈陽理工大學學士學位論文 15 復位電路 復位操作完成單片機片內(nèi)的初始化,是單片機從一種確定的狀態(tài)開始運行。獨石電容:濾除低頻及脈沖干擾 二極管 D1:起保護作用,防止電源接反,使反相電壓不通過。顯示電路主要是為了顯示歌曲序號和音調(diào)。 89SXX 可以像下兼容 89CXX 等 51 系列芯片。 4)在 17 引腳處接有一個 LED 串聯(lián)一個 10 千歐的電阻, LED 是工作指示燈,而電 阻起到保護 LED 的作用。 對于 89C52 芯片來說,它內(nèi)置了 ROM、 EPROM、 OTP ROM、 Flash ROM,當不使用外部存儲器 (包括程序存儲器和數(shù)據(jù)存儲器)時, P0 口可以作為通用的輸入 /輸出端口( I/O)使用。 /EA 為外部程序存儲器選擇信號,低電平有效。 X1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。另外,該引腳被略微拉高。當振蕩器復位器件時,要保持 RST 腳兩個機器周期的高電平時間 。 P2 口當用于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進行存取時, P2 口輸出地址的高八位。 P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù) /地址的第八位。兩個 16 位定時器 /計數(shù)器 由于將多功能 8 位 CPU和閃爍存儲器組合在單個芯片中,STC89C52 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案??傮w來說,單片機的發(fā)展可分為三個階 段: 第一階段( 1976—— 1978 年):以 Intel 公司的 MCS48 系列單片機為代表,該系列單片機在片內(nèi)集成了 8 位 CPU、并行 I/O 接口、 8 位定時 /計數(shù)器、 RAM 和 ROM 等,片內(nèi) RAM 和 ROM 容量較小,尋址范圍不大于 4KB。 不同的單片機有著不同的硬件特征和軟件特征,即它們的技術特征均不盡相同,硬件特征取決于單片機芯片的內(nèi)部結構,用戶要 使用某種單片機,必須了解該型產(chǎn)品是否滿足需要的功能和應用系統(tǒng)所要求的特性指標。為了程序調(diào)用方便,每個音符都對應一個編碼,占用一個字節(jié) 。當值為 00H 時表示空拍,與 節(jié)拍碼配合完成節(jié)拍發(fā)音。 ( 4) 電源。 功能說明 當實現(xiàn)樂曲演奏時, 端子的信號為高電平 ,采用 4x4 矩陣鍵盤作為發(fā)生器的輸入設備。這里所用的單片機是 STC89C52,選擇它,首先市場上大部分賣的都是 STC89C52 型號的。大致上包括 STC89C52 芯片的引腳功能介紹、圖表的說明、以及它的輸入 /輸出( I/O)口的說明。本文設計的一種基于 STC89C52 的簡單音樂演奏系統(tǒng),利用單片機技術、 LM386 音頻功放芯片、 4x4 鍵盤、 SPEARK 實現(xiàn)原理圖設計到電路板設計開發(fā),并用 C51 高級語言進行鍵盤識別程序設計和音頻脈沖輸出程序的設計。 由于本課題定為基于單片機的音樂演奏系統(tǒng),那么不僅要使單片機可以播放音樂關鍵在于還有能夠彈奏自己想彈奏的音樂。 關鍵詞: STC89C52; 音頻脈沖 ;鍵盤識別;播放音樂 沈陽理工大學學士學位論文 II Abstract At present, the examples of microcontroller control music playback is too numerous to enumerate, at the same time,the music performance system is also widely used, make the best use of microcontroller which can store music, control playback, playing advantage of the music performance system contains multiple functions,excellent price,simple peripheral features of the music performance system not only popular with music lovers and music chip manufacturers, but also accepted by general family for it keyboard operation is simple under the use of is easy for beginner to play. The design of music performance system based on microcontroller, it can not only play music but also play the music which we want to. This paper designs a simple music system which is based on STC89C52 which make full use of microcontroller technology, the LM386 audio amplifier chip, 4x4 keyboard, SPEAKER, 74HC595 and LED digital realizes from schematic design to circuit board design and development, and use C language acplish keyboard identify program design and audio pulse output program design. Finally the design realizes the music play and auto play music,it can display the high or low of notes and tone through the LED digital tube . Key words: STC89C52。沈陽理工大學學士學位論文 I 摘 要 如今,單片機控制音樂播放的例子不勝枚舉,音樂演奏系統(tǒng)也廣泛的應用,而利用單片機存儲音樂,控制播放,彈奏樂曲更為廣泛。 audio pulse。 隨著以法國、德國、意大利為代表的歐洲電子音樂和以美國為代表的電子音樂、計算機音樂早期得到 了充分發(fā)展,國際上許多國家紛紛開始引入電子音樂研究與創(chuàng)作。經(jīng)過硬件的調(diào)試,該音樂發(fā)生器能通過鍵盤彈奏出來的樂曲,音樂播放良好,音調(diào)和節(jié)拍都由單片機控制,使之產(chǎn)生精確的音樂。對于輸入 /輸出( I/O)口的說明會有詳細的說明,接下來是電路的硬件部分說明,最后是軟件設計。其次,STC89C52 是 STC89C51 的加強版,功能多穩(wěn)定性好,本次設計業(yè)非常適合這款單片機。為了放大單片機 STC89C52 產(chǎn)生的樂曲聲音,采用了功率放大器 LM386,通過沈陽理工大學學士學位論文 4 SPEAKER 進行發(fā)生。 DC 接口 ,接有二極管(保護作用), 100UF 的電解電容(濾低頻)和 1UF的獨石電容(濾高頻) ( 5)電平轉(zhuǎn)換,包括 DB9 和 MAX232. 本設計最初有兩種方案,一種是利用 STC89C5 74LS373 鎖存器和 27512 外部擴展組成的音樂 播放器 。節(jié)拍碼也占一個字節(jié),其總時間 長 度等于基本時間乘以節(jié)拍碼的值。 最終,考慮到方案二可以彈奏任意歌曲而采用了方案二,并加以改良使之能演奏存儲好的歌曲,并通過 LED 數(shù)碼管顯示聲調(diào)和曲號。這里的技術特征包括功能特性、控制特性和電氣特性等等,這些信息需要從生產(chǎn)廠商的技術手冊中得到。 第二階段( 1978—— 1983 年):以 Intel 公司的 MCS51 系列單片機為代表,該系列單片機均帶有串行 I/O 接口,具有多級中斷處理系統(tǒng),定時 /計數(shù)器位 16 位,片內(nèi) RAM和 ROM 容量相對增大,有的片內(nèi)還帶有 A/D 轉(zhuǎn)換接口。 主要特征 6 個中斷源 在 FIASH 編程時, P0 口作為原碼輸入口,當 FIASH 進行校驗時, P0 輸出原碼,此時 P0 外部必須被拉高。在給出地址 “1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時, P2 口輸出其特殊功能寄存器的內(nèi)容。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。如果微處理器在外部執(zhí)行狀態(tài) ALE禁止,置位無效。 X2:來自反向振蕩器的輸出。在復位期間 CPU 檢測并鎖存該引腳電平狀態(tài),當發(fā)現(xiàn)該引腳為高電平時,從片內(nèi)程序存儲器取指令,只有當程序計數(shù)器PC 超出片內(nèi)程序存儲器地址編碼范圍時,才轉(zhuǎn)到外部 ROM 中取指令;當該引腳為低電平時,一律從外部程序存儲器中取指令。 P0 口作為 I/O 端口使用時,多路開關“控制”信號為“ 0”(即低電平)。 5)引腳 接到音頻放大器,作為音頻的輸出。同時, Atmel不再接受 89CXX 的定單,大家在市場上見到的 89C51 實際都是 Atmel 前期生產(chǎn)的巨量庫存而以。 電路流程圖如圖 所示, 下面是對硬件電路的大環(huán)節(jié)的說明。 電阻 R1: 1K 限流作用。 當單片機的復位引腳 RST 出現(xiàn) 5ms 以上的高電平時,單片機就完成了復位操作。但單片機已經(jīng)運行之中時,按下復位鍵也能使 RST 持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關復位的操作。 LM386 特性: 靜態(tài)功耗低,約為 4mA,可用于電池供電; 工作電壓范圍寬, 4V12V 或 5V18V; 外圍元件少; 電壓增益可調(diào), 20200; 低失真度。 圖 LM386的內(nèi)部結構 第一級為差分放大電路, T1 和 T T2 和 T4 分別構成復合管,作為差分放大電路的放大管; T5 和 T6 組成鏡像電流源作為 T1 和 T2 的有源負載; T3 和 T4 信號從管的基極輸入,從 T2 管的集電極輸出,為雙端輸入單端輸出差分電路。 電阻 R7 從輸出端連接到 T2 的發(fā)射極,形成反饋通路,并與 R5 和 R6 構成反饋網(wǎng)絡,從而引入了深度電壓串聯(lián)負反饋,使整個電路具有穩(wěn)定的電壓增益 [5]。不僅能自動檢測被按下的鍵,并完成去抖動、防串鍵等功能,而且能提供與被按鍵功能 對應的鍵碼(如ASCII 碼)送往 CPU。下面以圖 中 8 號鍵的識別為例來說明掃描法識別按鍵的過程。按照此方法依次進行按鍵確定,最終得到被按下按鍵確定的行值和列值。 ( 1) 去抖動 :每個按鍵在按下或松開時,都會產(chǎn)生短時間的抖動。 ( 3) 鍵碼產(chǎn)生 :為了從鍵的行列坐標