欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

[計算機硬件及網(wǎng)絡]電子琴設(shè)計基于STC89C51單片機.doc

上傳人:good****022 文檔編號:116411331 上傳時間:2022-07-05 格式:DOC 頁數(shù):33 大?。?47.50KB
收藏 版權(quán)申訴 舉報 下載
[計算機硬件及網(wǎng)絡]電子琴設(shè)計基于STC89C51單片機.doc_第1頁
第1頁 / 共33頁
[計算機硬件及網(wǎng)絡]電子琴設(shè)計基于STC89C51單片機.doc_第2頁
第2頁 / 共33頁
[計算機硬件及網(wǎng)絡]電子琴設(shè)計基于STC89C51單片機.doc_第3頁
第3頁 / 共33頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《[計算機硬件及網(wǎng)絡]電子琴設(shè)計基于STC89C51單片機.doc》由會員分享,可在線閱讀,更多相關(guān)《[計算機硬件及網(wǎng)絡]電子琴設(shè)計基于STC89C51單片機.doc(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 摘要 隨著科學技術(shù)的不斷發(fā)展,單片機的應用日益成熟。單片機集成度高、處理功能 強大、價格低廉使其在各個領(lǐng)域得到廣泛應用。同時電子琴作科學技術(shù)與音樂共同 發(fā)展的產(chǎn)物,在這個電子信息化的時代,為音樂的大眾化做出了不可代替的貢獻。 本文主要介紹一種基于 51 單片機的簡易電子琴設(shè)計方案。它采用了STC 公 司出品的一款低功耗、高性能單片機STC89C52 芯片作為主控單元, 與 4*4 矩陣 鍵盤、復位電路、LED 雙位數(shù)碼顯示器、揚聲器等組成主控核心模塊。文章詳細論 述了電子琴硬件設(shè)計和軟件結(jié)構(gòu)設(shè)計流程,采用了Altium Designer 09 畫出原理圖、 PCB 圖,通過 Keil 編程軟

2、件對電子琴進行軟件編程,然后進行軟硬件的調(diào)試運行并 將程序燒錄到 STC89C52 芯片中。此系統(tǒng)運行比較穩(wěn)定,具有硬件設(shè)計電路簡單、清 晰,成本低,軟件功能完善,控制系統(tǒng)牢靠,性價比高等優(yōu)點,具有一定的實用和參 考價值。 關(guān)鍵詞:STC89C52;電子琴;矩陣鍵盤 基于單片機的簡易電子琴設(shè)計 II Abstract Along with the development of science and technology, the application of SCM increasingly mature. Single chip microcomputer high level of in

3、tegration, processing powerful, low prices make it is widely used in various fields. At the same time the keyboards for science and technology and music common development of the product, in the electronic information era, for musics popular do cant replace contribution. This paper mainly introduces

4、 a kind of simple keyboard based on 51 SCM design scheme. It uses the STC product of our company a low power consumption, high performance microprocessor STC89C52 chips as the master unit, and 4 * 4 matrix keyboard and reset circuit, LED digital display, a double master core module and other compone

5、nts of the speaker. This paper discusses the design of hardware and software structure keyboard design process, the use of a Altium Designer 09 draw a diagram, PCB figure, through the Keil software keyboard to software programming, then the software and hardware debugging run and will burn to STC89C

6、52 chip program. Operation of the system is stable and has the hardware circuit design simple, clear, and the cost is low, the software perfect function, control system firm, price higher advantages, has certain practical and reference value. Key words : stc89c52; keyboard; matrix keyboard 基于單片機的簡易電

7、子琴設(shè)計 III 基于單片機的簡易電子琴設(shè)計 目錄 摘要 I Abstract .II 1 緒論1 1.1 設(shè)計的目的和意義.1 1.2 設(shè)計的主要內(nèi)容.1 2 系統(tǒng)概述1 2.1 系統(tǒng)工作原理.1 2.2 系統(tǒng)結(jié)構(gòu)組成.1 2.2.1 電源電路2 2.2.2 控制部分2 2.2.3 顯示部分2 2.2.4 發(fā)聲部分2 2.3 主要芯片及元件的介紹.2 2.3.1 STC89C52 單片機簡介2 2.3.2 芯片引腳介紹4 2.3.3 STC89C52 時鐘介紹7 2.3.4 雙位 LED 數(shù)碼顯示器簡介7 3 硬件電路的設(shè)計9 3.1 電源電路的設(shè)計.9 3.2 復位電路的設(shè)計.10 3.2

8、.1 復位操作10 3.2.2 復位信號及其產(chǎn)生11 3.3 鍵盤控制電路.12 3.3.1 矩陣式鍵盤的概述12 3.3.2 矩陣式鍵盤按鍵識別原理及方法12 3.4 顯示電路.13 4 系統(tǒng)軟件設(shè)計14 4.1 如何利用單片機實現(xiàn)音樂節(jié)拍.14 4.2 如何用單片機產(chǎn)生音頻脈沖.15 4.2.1 音符和頻率的關(guān)系15 4.2.2 定義初值16 4.3 音樂發(fā)生程序流程圖.18 結(jié) 論19 參考文獻20 附錄一 電子琴源程序21 附錄二 原理圖25 附錄三 PCB 圖.26 附錄四 實物圖27 致 謝28 基于單片機的簡易電子琴設(shè)計 1 1 緒論 1.1 設(shè)計的目的和意義 單片機又稱單片微型

9、計算機, 英文字母的縮寫 MCU。自上世紀 70 年代問 世以來,因其較高的性價比備受人們的親睞,單片機廣泛應用于工業(yè)自動化,自動檢 測系統(tǒng)、汽車電子設(shè)備、家用電器和各種終端及計算機外部設(shè)備等等。單片機芯片具 有體積小、攜帶方便、低功耗、速度快、可靠性能高、抗干擾能力強和價格低廉等等 等優(yōu)點,通常在其外部配置一些外圍電路就可構(gòu)成一整套完整的控制系統(tǒng)。 單片機(Microcontroller,又嵌入式微控制器) ,就是在一塊硅片上集成了各種部件 的微型計算機。這些部件包括中央處理單元 (CPU),數(shù)據(jù)存儲器(RAM),程序存儲器 (ROM), 定時器/計數(shù)器,多種 I/O 接口電路和中斷系統(tǒng)等等

10、。 本文設(shè)計是以 STC89C52 單片機為核心的簡易電子琴,重點用到了單片機定時器 可以產(chǎn)生不同的脈沖,不同的脈沖經(jīng)驅(qū)動電路放大后可以產(chǎn)生不同頻率音階,從而可 以彈出美妙的音樂。本系統(tǒng)是簡易的電子琴,運用 4*4 矩陣鍵盤充當電子琴的按鍵, 一個按鍵代表一個音階,并采用矩陣鍵盤行掃描法,通過程序來控制音階的發(fā)生。 1.2 設(shè)計的主要內(nèi)容 本文介紹了簡易電子琴的設(shè)計和制作方案的確定以及設(shè)計流程,詳細闡述了簡 易電子琴的硬件設(shè)計和軟件設(shè)計。本設(shè)計主要包括:電源電路、復位電路、顯示單元 和 4*4 矩陣鍵盤。該系統(tǒng)具有運行穩(wěn)定性好、可靠度高等優(yōu)點,具有一定的參考價值。 2 系統(tǒng)概述 2.1 系統(tǒng)工

11、作原理 根據(jù)方案的要求,將程序?qū)懭?STC89C52 單片機芯片。利用不同的音階的頻率不 一樣,用單片機來模擬電子琴,可以使單片機的定時器工作在計數(shù)器模式下,工作方 式設(shè)為方式 1,改變 TH0 和 TH1 來產(chǎn)生不同的頻率,從而產(chǎn)生不同的音階。 P1 口 接 4*4 矩陣鍵盤行和列,用行掃描法讀取 P1 口外接的鍵盤,若有鍵按下:雙位數(shù)碼 顯示管顯示 0116;若沒有鍵按下則顯示 00,當按下復位鍵的開關(guān)后,雙位數(shù)碼顯 示管顯示 00。單片機 P3.7 作為音頻放大電路的輸入。 基于單片機的簡易電子琴設(shè)計 2 2.2 系統(tǒng)結(jié)構(gòu)組成 如圖 1 所示該系統(tǒng)主要包括電源電路、控制部分、顯示部分和發(fā)

12、聲部分 圖 1 系統(tǒng)結(jié)構(gòu)組成 2.2.1 電源電路 由于電子制作一般都是用直流電源,故做此電源將 220V 的市交流電轉(zhuǎn)為所需 要的直流電壓。220V 市電先經(jīng)變壓器降壓,然后經(jīng)過二極管橋式整流,電容濾波后 送入 LM317 的輸入端,在 LM317 的輸出端直流電壓,當調(diào)節(jié)滑動變阻器的時候可 以調(diào)節(jié)輸出的直流電壓的大小。 2.2.2 控制部分 控制部分主要由 4*4 矩陣鍵盤組成。電子琴需要 16 個鍵,為了減少占用 I/O 端 口,通常采用矩陣型鍵盤。將按鍵排成行和列,按鍵位于行和列的交叉點上。這樣一 個端口就可以連接 4*4 的矩陣鍵盤了。 2.2.3 顯示部分 顯示部分是一個雙位數(shù)碼顯

13、示管,可以顯示 0016。當有按鍵按下的時候,數(shù) 碼顯示管就會顯示相應的數(shù)字。復位時為 00。 2.2.4 發(fā)聲部分 用喇叭來作為發(fā)聲元件,用 8550 三極管來驅(qū)動喇叭發(fā)聲。 2.3 主要芯片及元件的介紹 2.3.1 STC89C52 單片機簡介 STC89C52 單片機 復位電路 4*4 矩陣鍵盤 時鐘電路 發(fā)聲模塊 顯示模塊 電源電路 基于單片機的簡易電子琴設(shè)計 3 STC89C52 是由 STC 公司生產(chǎn)一款功耗低、性能高的 8 位微控制器,兼容 MSC51 指令系統(tǒng),8K 可反復擦寫 Flash ROM。在單塊芯片上,具有 8 位 CPU 和可編程的 Flash,使得 STC89C5

14、2 能為大多數(shù)嵌入式控制體統(tǒng)提供靈活度且有效的解決方案。 STC89C52 具有以下功能部件和特征: (1)8 位微處理器(CPU) 。 (2)數(shù)據(jù)存儲器(512B RAM) 。 (3)程序存儲器(4K EEPROM) 。 (4)4 個可編程并行 I/O 口,256*8bit 內(nèi)部 RAM。 (5)一個全雙工串行口。 (6)三個 16 位定時器/計數(shù)器,時鐘頻率為 024MHZ。 (7)MAX810 復位電路。 (8)兩個串行中斷,可編程 UART 串行通道。 (9)兩個外部中斷,共有 6 個中斷源。 (10)兩個讀寫中斷串口,3 級加密位。 (11)一個看門狗定時器。 (12)低功耗空閑和掉

15、電模式,可以軟件設(shè)置睡眠和喚醒功能。 (13)工作電壓為 5.5V3.3V(5V 單片機) 。 (14)工作頻率 040MHz,相當于普通 8051 的 080MHZ,實際的頻率可以達到 48MHZ。 (15)工作溫度為:-4085(工業(yè)級) ,075(商業(yè)級) 。 (16)封裝:LQFP-44,PDIP-40,PQFP-44。 基于單片機的簡易電子琴設(shè)計 4 圖 2 SCT89C52 雙列直插式引腳圖 2.3.2 芯片引腳介紹 (1)電源引腳 電源引腳用于是接入單片機的工作電源。 Vcc(pin 40):電源接入,接+5V 電源。 Vss(pin 20):接數(shù)字地。 (2)時鐘引腳 XTAL

16、1(pin 19):片內(nèi)振蕩電路的輸入端。當使用片內(nèi)振蕩器時,此引腳接微 調(diào)電容和石英晶體;當采用外接時鐘源時,引腳接振蕩器信號。 XTAL2(pin 20):片內(nèi)振蕩電路的輸出端。當使用片內(nèi)振蕩器時,和 pin 19 的接 法一樣;當采用外部時鐘源時,此引腳懸空。 (3)控制引腳 RST (pin 9):復位信號輸入端,引腳上出現(xiàn) 2 個機器周期的高電平時單片機復位。 Vpp 具有第二引腳功能,當對片內(nèi) Flash 進行編程時,此引腳接入編程電壓。 ALE/PROG(pin 30):用于地址鎖存。若訪問外部程序存儲器(ROM)和數(shù)據(jù)存 儲器(RAM) ,ALE 將用于鎖存低 8 位的地址。此

17、時,ALE 仍會以時鐘振蕩頻率的 1/6 輸出一個固定的脈沖信號,因此它可用于對外輸出時鐘或定時。但是要注意:每 次訪問外部數(shù)據(jù)存儲器(RAM)時需要跳過一個 ALE 脈沖。 進行 Flash 存儲器編程 時,此引腳還可用于輸入編程脈沖(PROG) 。此外,還可通過對特殊功能寄存器 基于單片機的簡易電子琴設(shè)計 5 (SFR)中的 8EH 單元的 D0 位置位,可以禁止 ALE 操作。該位置位后,只有 MOVX 和 MOVC 指令才能把 ALE 激活。此外,該引腳將會被拉高,單片機執(zhí)行外 部程序時,應設(shè)置 ALE 禁止位無效。 PSEN(pin 29):片外存儲器讀選通信號,低電平有效。 EA/

18、Vpp(pin 31):程序存儲器的內(nèi)部讀選通。接低電平從外部存儲器讀取指令, 若接高電平從內(nèi)部程序存儲器讀取指令。 (4)并行 I/O 口引腳(32 根) STC89C52 有 4 組 8 位可編程的 I/O 口,分別為 P0、P1、P2、P3 口,共 32 根。 P0 口(pin 39pin 32):8 位雙向 I/O 口線,分別為 P0.0P0.7。P0 口是一個漏 極開路的 I/O 口。作為輸出口,每一位均可以驅(qū)動 8 個 TTL 負載。當對 P0 端口寫入 “1”的時侯,該引腳可以用作高阻抗輸入。當訪問外部程序存儲器或者數(shù)據(jù)存儲器時, P0 口也被作為地址總線(低 8 位)和數(shù)據(jù)分時

19、復用。在這種模式下,P0 不需要外加 上拉電阻。P0 口也可以作為 I/O 口使用,也可以用來接收指令字節(jié);在程序校驗時, 輸出指令字節(jié),此時需要加 10K4.7K 的外部上拉電阻。 P1 口(pin 1pin 8):8 位準雙向 I/O 口線,分別為 P1.0-P1.7。 P1 口內(nèi)部具 有上拉電阻,P1 口輸出緩沖器能夠驅(qū)動 4 個 TTL 邏輯電平。若對 P1 口寫入“1”的時 候,內(nèi)部上拉電阻就會把端口拉高,此時可以用作輸入口。當作為輸入口使用時,被 外部拉低的引腳因為其內(nèi)部電阻,將輸出電流。 此外,P1.0 和 P1.2 分別可以作定時器/計數(shù)器 2 的外部計數(shù)輸入和定時器/計數(shù)器

20、2 的觸發(fā)輸入。具體如下表 1 所示。 在 Flash 編程和校驗時,P1 口用于接收低 8 位 地址。 基于單片機的簡易電子琴設(shè)計 6 表 1 P1 口引腳第二功能 引腳 第二功能 說明 P1.0 T2 定時器/計數(shù)器 t2 的 計數(shù)輸入,時鐘輸出 P1.1 T2EX 定時器/計數(shù)器 t2 的捕 捉/重載觸發(fā)信號 P1.5 MOSI 在線系統(tǒng)編程用 P1.6 MISO 在線系統(tǒng)編程用 P1.7 SCK 在線系統(tǒng)編程用 P2 口(pin 21pin 28):8 位雙向 I/O 口線,分別為 P2.0P2.7。P2 輸出緩沖器能 夠驅(qū)動 4 個 TTL 邏輯電平。當對 P2 端口寫入“1”的時候

21、,內(nèi)部上拉電阻就會把端口 拉高,此時就可以作為輸入口使用。當作為輸入使用時,被外部拉低的引腳因為其內(nèi) 部電阻, 就會輸出電流。 在訪問其外部 ROM 或用 16 位地址讀取外部 RAM 時,P2 口就會送出高八位 地址。此時,P2 口利用內(nèi)部上拉發(fā)送“1”。當使用 8 位地址,訪問其外部數(shù)據(jù)存儲 器(RAM)時,P2 口將會輸出 P2 鎖存器的內(nèi)容。在 Flash 編程或者校驗時,P2 口 也用于接收高 8 位地址和某些控制信號。 P3 口(pin 10pin 17): 8 位雙向 I/O 口線,分別為 P3.0P3.7。P3 口其內(nèi)部具 有上拉電阻,P2 口輸出緩沖器能夠驅(qū)動 4 個 TTL

22、 邏輯電平。當對 P3 口寫入“1”的 時候,內(nèi)部上拉電阻就會把端口拉高,此時就可以作為輸入口使用。當作為輸入使用 時,被外部拉低的引腳因為其內(nèi)部電阻,將會輸出電流。P3 口也作為 STC8C52 具有 第二功能的引腳使用,如下表 2 所示。當然,在 Flash 編程和校驗時,P3 口也接收某 些控制信號。 基于單片機的簡易電子琴設(shè)計 7 表 2 P3 口引腳第二功能 P3.0RXD 串行輸入口 P3.1TXD 串行輸出口 P3.2INT0 外中斷 0 P3.3INT1 外中斷 1 P3.4T0 定時/計數(shù)器 0 P3.5T1 定時/計數(shù)器 1 P3.6WR 外部數(shù)據(jù)存儲器寫選通 P3.7RD

23、 外部數(shù)據(jù)存儲器讀選通 2.3.3 STC89C52 時鐘介紹 STC89C52 內(nèi)部有一個高增益的反相放大器,此放大器用于構(gòu)成振蕩器,其引腳 TXD 和 RXD 分別是這個放大器的輸出端和輸入端。STC89C52 的時鐘可以由內(nèi)部方 式產(chǎn)生,也可以由外部方式產(chǎn)生。其內(nèi)部方式的時鐘電路如圖 3(a)所示,在 TXD 和 RXD 引腳上接定時元件,其內(nèi)部振蕩器就會產(chǎn)生自激振蕩。定時元器件一般采用 石英晶體和電容組成并聯(lián)諧振回路。晶體振蕩頻率選擇范圍為:1.212MHz,電容 值范圍為:530pF,電容頻率起到微調(diào)的作用。 時鐘采用外部方式連接的電路如圖 3(b)所示,TXD 接外部振蕩器,RXD

24、 接地。 對外部振蕩信號沒有特殊要求,只需要保證脈沖的寬度,所以一般采用頻率低于 12MHz 的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘 P1 和 P2,供 STC89C52 單片機使用。 (a)內(nèi)部方式時鐘電路 (b)外部方式時鐘電路 圖 3 時鐘電路 2.3.4 雙位 LED 數(shù)碼顯示器簡介 數(shù)碼管能在低電壓、小電流驅(qū)動下發(fā)光,能夠與 CMOS、TTL 電路兼容。它的發(fā)光 響應時間非常短,通常小于 0.1s,其高頻特性好,單色性好,亮度比較高。LED 使用 壽命很長,通常在 10 萬小時以上,甚至可以達到 100 萬小時以上,且其成本很低。 基于單片機的簡易電子琴設(shè)計 8

25、 LED 數(shù)碼管已被廣泛運用于計算機的數(shù)顯器件、數(shù)控裝置等等。 根據(jù) LED 數(shù)碼管顯示位數(shù)的多少,可以把數(shù)碼管劃分為一位、雙位、多位 LED 數(shù) 碼管顯示器。一位的 LED 我們通常稱為 LED 數(shù)碼管,兩位以上(包括兩位)我們一般 稱為顯示器。雙位 LED 顯示器是把兩只數(shù)碼管封裝成一體,它亮度均勻,一致性好, 光衰低,可靠性高而且結(jié)構(gòu)緊湊、成本比較低(與兩只一位的數(shù)碼管相比較)。本系 統(tǒng)采用的是七段雙位的數(shù)碼顯示器,7 段數(shù)碼顯示器由 7 段發(fā)光二極管的線段組成, 并且按照“日”字形排列。管腳排列如圖 4 所示。若將 7 個 LED 的陽極連在一起,稱 之為共陽極接法,反之為共陰極接法。

26、雙位數(shù)碼顯示器將共陽極用作片選,而在 ag 各段上加上不同的電壓,各段的發(fā)光情況將會不同,從而會形成不同的發(fā)光字 符。加在引腳上的電壓可以用數(shù)字量來表示,若某一段的陽極為數(shù)字量為“1” ,則這 個段就會發(fā)光;若為 0,就不會發(fā)光。數(shù)字量與段的對應關(guān)系如表 3 所示。 表 3 七段共陽 LED 字形碼 顯示字符共陽極 字符碼 03FH 106H 25BH 34FH 466H 56DH 67DH 707H 87FH 96FH 圖 4 七段結(jié)構(gòu)及外形圖 a 1 b 2 K1 3 K2 4 f 5 c 6 DP 7 e 8 d 9 g 10 基于單片機的簡易電子琴設(shè)計 9 3 硬件電路的設(shè)計 3.1

27、電源電路的設(shè)計 本系統(tǒng)采用的是小功率可調(diào)直流穩(wěn)壓電源。這種電源是用穩(wěn)壓器件 LM317 制作 成的直流穩(wěn)壓電源,它的效果很好,而且輸出的是可調(diào)的電壓,故它的適應范圍也很 廣。如圖 5 所示,它是由電源變壓器 T1,二極管橋式整流電路,濾波電容和一個 LM317 組成的。220V 交流市電經(jīng)過電源變壓器 T1 降壓,變成電壓較低的交流電, 再經(jīng)過二極管橋式整流電路,電容濾波后送入 LM317 的輸入端,則 LM317 的輸出端 將輸出穩(wěn)定的直流電壓。LM317 還有一個腳是調(diào)整端,通常情況下,為了保證穩(wěn)壓 器的輸出性能,的阻值一般應小于 240。此電源為可調(diào)電源,故我們在調(diào)整端和地 之間接一個可

28、調(diào)電阻,當我們改變的電阻阻值時就可以改變輸出電壓的值了。輸出電 壓的計算公式如下: U0=1.25(1+R3/R2) C1是用于濾除由市交流電引入的高頻干擾,通常選用的是瓷片電容。C2是一個電 容濾波電路,C3則用于旁路基準電壓的紋波電壓,它主要用于提高穩(wěn)壓電源的紋波抑 制性能。在使用的過程當中,如果負載是 500500pF 的容性負載,穩(wěn)壓器的輸出端 就會發(fā)生自激現(xiàn)象,電解電容 C4就是用來進一步改善輸出電壓的波紋而設(shè)置的。D3D4 都是保護二極管,當輸入電路發(fā)生短路的時候,C4會放電電流反向流經(jīng) LM317,有可 能會被沖擊損壞,D3可以旁路反向電流,從而保護了 LM317。同樣的道理,如

29、果輸出 端短路的話,C3上的放電電流就會被 D4短路,從而起到保護的作用。圖 5 中的 R2與 D2是用來指示工作的,當插上 220V 的交流電時,經(jīng)過變壓 、整流、濾波、穩(wěn)壓等正 常工作時,發(fā)光二級管 D2就會發(fā)光,而 R1用來為 D2限流。 基于單片機的簡易電子琴設(shè)計 10 圖5 電源電路圖 3.2 復位電路的設(shè)計 3.2.1 復位操作 復位是單片機初始化的操作。它的主要功能就是把 PC 初始為 0000H,從而使單 片機從 0000H 單元開始執(zhí)行程序。除此之外,當由于程序運行出現(xiàn)出錯或操作錯誤 致使系統(tǒng)處于死鎖狀態(tài)時,為了擺脫困境,可以按復位鍵重新啟動。 復位操作除 PC 有影響外,還

30、對其他一些寄存器存在影響,它們的復位狀態(tài)如表 4 所示。 表 4 些寄存器的復位狀態(tài) 寄存器復位狀態(tài)寄存器復位狀態(tài) PC0000HTCON00H ACC00HTL000H PSW00HTH000H SP07HTL100H DPTR0000HTH100H P0-P3FFHSCON00H IPXX000000BSBUF不定 基于單片機的簡易電子琴設(shè)計 11 IE0X000000BPCON0XXX0000B TMOD00H 3.2.2 復位信號及其產(chǎn)生 RST(pin 9)引腳是復位信號的輸入端。此引腳高電平有效,其有效時間應為二 個機器周期(即 24 個振蕩周期)以上。如果使用頗率為 6MHz 的

31、晶振,那么復位信號 需要持續(xù)時間超過 4us 才能完成復位操作。產(chǎn)生復位信號的電路邏輯圖如圖 6 所示: 圖 6 復位信號的電路邏輯圖 單片機的整個復位電路包括芯片內(nèi)、外兩個部分。RST 通過一個施密特觸發(fā)器 與復位電路連接在一起,而片內(nèi)復位電路則在每個機器周期的 S5P2 時對施密特觸發(fā) 器的輸出進行采樣,這樣才能得到內(nèi)部復位操作所需要的信號。 復位操作一般有上電自動復位和按鍵手動復位兩種。將外部復位電路的電容充電 就可以實現(xiàn)上電自動復位了,如圖 7(a)所示。因此,接通電源就可以實現(xiàn)系統(tǒng)的 復位初始化了。 按鍵手動復位有電平方式和脈沖兩種方式。其中,按鍵電平復位是通過 RST 端 經(jīng)電阻與

32、電源 Vcc 接通而實現(xiàn)的,其電路如圖 7(b)所示;利用 RC 微分電路產(chǎn)生 的正脈沖來實現(xiàn)按鍵脈沖復位,如圖 7(c)所示: (a)上電復位 (b)按鍵電平復位 (c)按鍵脈沖復位 基于單片機的簡易電子琴設(shè)計 12 圖 7 復位電路 上述電路圖中的電阻、電容參數(shù)適用于 6MHz 的晶振,能夠保證復位信號的高電 平持續(xù)時間在 2 個機器周期以上。 本系統(tǒng)的復位電路采用的是圖 7(b)上電復位方式。電阻為 2.2K,電容為 10uF、晶振為 12MHz。 3.3 鍵盤控制電路 3.3.1 矩陣式鍵盤的概述 本系統(tǒng)采用的是非編碼鍵盤中的矩陣鍵盤。矩陣鍵盤也稱為行列式鍵盤,一般用 于按鍵數(shù)目較多的

33、場合。它是由行和列組合而成,一組是行線,另一組是列線,按鍵 就位于行和列的交叉點。如圖 8 所示,一個 4*4 的矩陣鍵盤,有 16 個按鍵,我們分 別用著 16 個鍵來模擬電子琴的按鍵:低音 3、 4、 5、 6、 7;中音 1、 2、 3、 4、 5、 6、 7 ;高音 1、 2、 3、 4 ??梢院苊黠@地看出,較獨立鍵盤而言,矩 陣式鍵盤節(jié)省了 I/O 口線。 圖 8 4*4 矩陣式鍵盤接口 3.3.2 矩陣式鍵盤按鍵識別原理及方法 若矩陣鍵盤中沒有按鍵按下,那么鍵盤的行線就會處于高電平;若有鍵按下時, 行線電平的狀態(tài)由和它相連的列線的電平?jīng)Q定。假設(shè)列線電平為低電平那么行線電平 則為低電

34、平;反之,同理。這一點就是識別矩陣式鍵盤哪個按鍵按下的關(guān)鍵所在。由 于矩陣式鍵盤的行線和列線被多鍵共用,所以各按鍵會相互影響,因此必須將行線和 列線的信號配合,才能確定閉合鍵的位置所在。矩陣式鍵盤一般有兩種識別方法,它 們分別是掃描法和線反轉(zhuǎn)法。 基于單片機的簡易電子琴設(shè)計 13 首先,我們來介紹一下掃描法。它識別按鍵可以分為兩步:第一步,識別有沒有 按鍵按下;第二步,若有鍵按下,確定按下鍵的具體位置。舉個簡單的例子來說明這 個過程。 第一步,識別有沒有按鍵按下。先將所有的列線都置為 0 電平,接著檢查各行線 是不是都是高電平,若不全是高電平,說明有按鍵按下,否則就沒有。例如,當按鍵 2 被按

35、下,第一行的行線為低電平,但是我們不能確定是哪個鍵被按下了,若是同一 行的 1、3、4 鍵被按下,第一行也會呈現(xiàn)低電平,因此我們只能得出第一行有鍵被按 下。 第二步,確定哪個鍵被按下。采用掃描法,在某個時刻只讓一條列線處于低電平, 其他所有列線都處于高電平。當?shù)?1 列為低電平的時候,其他各列均處于高電平時, 因為是 2 鍵被按下,所以第 1 行仍高電平。而當?shù)诙袨榈碗娖降臅r候,其他各列均 為高電平,第 1 行的行處于低電平,故可以判斷第 1 行第二列的交叉處有鍵被按下, 即 2 號鍵被按下。 綜上所述,掃描法的思想就是,先把某一列置為低電平,其他的各列均為高電平, 然后檢查各行線的變化,若

36、某行線為低電平,則可以確定被按下的鍵處于此行此列的 交叉點上。本系統(tǒng)采用的就是掃描法。 其次,我們再簡單的介紹一下線反轉(zhuǎn)法。掃描法要一列一列的去掃描查詢,若被 按下的鍵處于最后一列時,需要經(jīng)過多次才能獲得正確的行列值。而線反轉(zhuǎn)法則很簡 練,不論是哪個鍵被按下,均只需要兩步就可以知道是哪個鍵被按下了。具體操作步 驟如下: 第一步,讓行線編程為輸入線,列線均為輸出線,并使輸出線全部為低電平,那 么行線中電平由高變?yōu)榈偷男?,就是按鍵所在的行。 第二部,把行線全部變成為輸出線,列線編程為輸入線,并使輸出線全部為低電 平,則列線中由高電平變?yōu)榈碗娖降牧?,就是按鍵所在的列。 綜上所述,可以確定按鍵所在的行

37、和列,從而得出按鍵所在位置。因此,線反轉(zhuǎn) 法非常的簡單適用,但是在實際的編程中不要忘記還要進行按鍵去抖動處理。 3.4 顯示電路 本系統(tǒng)采用的顯示電路是 LED 數(shù)碼顯示器,由于 LED 屬于電流控制器件,使用時 需要加限流電阻,本次設(shè)計中只用了一個雙位數(shù)碼顯示器,外加兩個 9012 三極管驅(qū) 動數(shù)碼管,此電路比較簡單不于詳細闡,具體電路圖如圖 9。 基于單片機的簡易電子琴設(shè)計 14 圖 9 顯示電路 4 系統(tǒng)軟件設(shè)計 本系統(tǒng)主要是要實現(xiàn)由單片機控制的簡單的音樂發(fā)生器,矩陣鍵盤代表 16 個不 同的音階,用戶可以根據(jù)樂譜在鍵盤上彈奏出音樂,通過喇叭將音樂播放出來。 4.1 如何利用單片機實現(xiàn)音

38、樂節(jié)拍 物體規(guī)則震動發(fā)出的聲音稱為樂音,音樂聽起來有高、有低,這就是音高,發(fā)聲 物體的振動頻率決定著音高。頻率低聲音就會低,頻率高聲音就會高。不同的音高的 樂音分別用 1、2、3、4、5、6、7 來表示,這七個樂音名分別念成: DO、RE、ME、FA、SO、LA、SI,這就是唱曲時樂音的發(fā)音,我們把它稱作唱名。 音持續(xù)的時間長短,通常用節(jié)拍來表示。一首歌通常有不同的音符表示,不同的音符 對應著不同的頻率,不同頻率的組合加上節(jié)拍就構(gòu)成了音樂。 除了音符以外,節(jié)拍也是音樂中非常重要的一部分。 節(jié)拍實際上就是音持續(xù)時間的長短,在單片機中我們可以利用延時來實現(xiàn)。如果 是四分之一節(jié)拍就延時 0.4s,那

39、么一拍就延時 1.6s。只需要知道四分之一節(jié)拍需要延 時多久,其他的節(jié)拍就是它延時的倍數(shù)了。如果要單片機自己放音樂就要在程序中設(shè) 置節(jié)拍的延時時間,但是此系統(tǒng)是簡易的電子琴,只需要用戶自己彈奏時把握節(jié)拍就 基于單片機的簡易電子琴設(shè)計 15 可以了,不需要程序設(shè)置。對于不同的曲調(diào)我們可以由單片機的定時器/計數(shù)器來實 現(xiàn)音樂,一個節(jié)拍為單位(C 調(diào)),如表 5 所示: 表 5 音樂節(jié)拍表 曲調(diào)值DELAY曲調(diào)值DELAY 調(diào) 4/4125ms調(diào) 4/462ms 調(diào) 3/4187ms調(diào) 3/494ms 調(diào) 2/4250ms調(diào) 2/4125ms 4.2 如何用單片機產(chǎn)生音頻脈沖 4.2.1 音符和頻率

40、的關(guān)系 用單片機播放音樂亦或是彈奏電子琴,實際上就是按照一定的頻率,輸出一連串 的方波。為了輸出適合的方波,首先我們應該知道音符與頻率之間的關(guān)系。注意觀察 一下幾個 6(LA)的頻率,它們都是整數(shù),很容易看出成 2 倍的關(guān)系。其它的音符也 是一樣的。如 220、440 等這些頻率,它們在琴鍵上的位置是統(tǒng)一的,不論是電子琴、 鋼琴還是手風琴,都是一樣的。包含黑鍵和白鍵在內(nèi)的所有音符的頻率數(shù)值都是成 “等比數(shù)列”的關(guān)系,因此它們之間有一個公比 q,可以按照“2 倍”的規(guī)律推算出來。 例如:已知最低音的 6(LA)的頻率是 220Hz,我們設(shè)它的公比為 q,則可以推出 7(SI)的頻率為 220*q

41、*q 。因為 6(LA)、7(SI)之間隔了一個黑鍵,所以要乘 以兩個 q。以此類推,兩個 6 之間,一共有 12 個琴鍵,可以得出: 220*q*q*q*q*q*q*q*q*q*q*q*q = 440。 馬上就可以得出,12 個 q 相乘,等于: 440 220 = 2。 可以求出 q = 2,q 的 12 次方根 為:1.059463094。 用這個公比 q,和已知的 220 進行計算,我們就可以得出全部琴鍵所對應的頻率,如 表 6 所示 基于單片機的簡易電子琴設(shè)計 16 表 6 音符和頻率的關(guān)系 音符 頻率 (HZ) 簡譜碼(T 值) 音符 頻率 (HZ) 簡譜碼(T 值) 低 1 DO

42、 262 63628 # 4 FA# 740 64860 #1 DO# 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 # 5 SO# 831 64934 #2 RE# 311 63928 中 6 LA 880 64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65

43、110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 # 4 FA# 1480 65198 # 1 DO# 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 # 5 SO# 1661 65235 # 2 RE# 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 # 6 1865 65268 中 4 FA 698 64820 高

44、7 SI 1967 65283 4.2.2 定義初值 用單片機來模擬產(chǎn)生音符,只需要計算出音頻的周期 T=1/f,利用音頻的變化來 產(chǎn)生不同的電平,從而驅(qū)動喇叭發(fā)聲。 利用 STC89C52 的內(nèi)部定時器使它工作在計數(shù)器的模式下,工作方式設(shè)為“1”, 改變 TH0 和 TH1 來產(chǎn)生不同的頻率,從而產(chǎn)生不同的音階。比如:頻率為中音 DO(532Hz),它的周期為:T=1/532=1912us,所以計數(shù)器只需要計數(shù): 956us/1us=956 次,每一次計數(shù) 956 次時將 I/O 口反向,我們就可以得到我們所需要 的音階中音(DO)了。計數(shù)脈沖和頻率的關(guān)系式: N=fi2fr 基于單片機的簡

45、易電子琴設(shè)計 17 上式中的 N 為計數(shù)值,fi為機器頻率,fr為想要產(chǎn)生的頻率。 計數(shù)的初值 T 求法如下: T=65536-N=65536-fi2fr 例如:K=65536,fi=1MHz,求低音 DO(261Hz),中音 DO(523Hz),高音 DO(1046Hz)的計數(shù)值。 T=65536-N=65536-fi2fr=65536-10000002fr=65536-50000/fr 低音 DO(261Hz)的 T=65536-50000/261=63627 中音 DO(523Hz)的 T=65536-50000/523=64580 高音 DO(1046Hz)的 T=65536-5000

46、0/1046=65059 采用 12MHz 的晶振,音符與計數(shù)值 T0 的關(guān)系如表 6 所示。本系統(tǒng)主要用到的音 符為低音:3、4、5、6、7,中音:1、2、3、4、5、6、7,高音 1、2、3、4;用到頻 率分別為:64021,64103,64260,64400, 64524, 64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178。 基于單片機的簡易電子琴設(shè)計 18 4.3 音樂發(fā)聲程序流程圖 主程序流程圖和 T0 中斷服務程序流程圖如圖 10 所示 按鍵按下成功否? 識別按鍵功能 開始 根據(jù)按鍵功能裝入音符

47、T 值到 T0 中 啟動 T0 工作 按鍵釋放成功否? 停止 T0 工作 N Y N Y 顯示按鍵 T0 中斷入口 P1.0 取反 重裝 T0 初值 中斷返回 (a)主程序流程圖 (b)T0 中斷服務程序流程圖 圖 10 主程序和 T0 中斷服務程序流程圖 T0 初始化并開 T0 中 斷 基于單片機的簡易電子琴設(shè)計 19 結(jié) 論 經(jīng)過這幾個月的努力,終于按照畢業(yè)設(shè)計進度要求如期完成了基于單片機的簡易 電子琴制作的硬件設(shè)計和軟件編寫任務。在整個畢業(yè)設(shè)計完成的過程當中,碰到了不 少的困難,但在老師的細心指導以及自己的不懈努力下,最終還是取得了一定的成果。 這段時間制作這個畢業(yè)設(shè)計,首先使我對 ST

48、C89C52 單片機有更深入的了解, , 一開始設(shè)計整個系統(tǒng)的時候沒有具體的思路,就上網(wǎng)找了好多關(guān)于電子琴設(shè)計的資料, 查閱后開始自己設(shè)計。電路圖設(shè)計完成后,就是焊電路板了,在焊接的時候遇到了好 多的困難,總是把有些線搞混,錯綜復雜的導線使我暈頭轉(zhuǎn)向,從而增加我焊接的難 度。 焊完之后發(fā)現(xiàn)自己元器件的排布的不是很合適,使電路板上有許多的飛線。最 后就是編寫程序調(diào)試了,本來還以為編程會很簡單的,等到實際操作起來才知道很復 雜,沒有想像中的那么得心應手,理解流程是有思維的前提.不過經(jīng)過自己的不懈努力, 老師的精心指導下和同學的悉心幫助,花費的時間與精力終于沒有白費,效果漸漸地出 現(xiàn)了。程序編完之后

49、并不意味著可以實現(xiàn)系統(tǒng)的功能,還要繼續(xù)調(diào)試。在這個過程中 遇到了一個非常棘手的問題,一開始數(shù)碼顯示管的驅(qū)動三極管用的是 8550,怎么都 不能使數(shù)碼顯示管顯示數(shù)值,測試它的引腳全部正常。最后沒辦法了就一個一個元件 測試,都沒問題,就一個一個元件替換,最終發(fā)現(xiàn)是三極管的問題,最后把 8550 換 成了 9012。 經(jīng)過這次的畢業(yè)設(shè)計,我在理論的基礎(chǔ)上更深刻的掌握了單片機的深層內(nèi)容和 單片機在實際生活中的應用,加強了自己的動手能力和思維能力,還有在軟件方面的 編程能力,也讓我受益匪淺。這些問題的發(fā)現(xiàn)將為我以后的工作找明道路,經(jīng)過這次 的畢業(yè)設(shè)計,使我對本專業(yè)的學習更加充滿了信心。 基于單片機的簡易

50、電子琴設(shè)計 20 參考文獻 1 張毅剛.單片機原理及應用M.北京:高等教育出版社,2009. 2 王港元.電子電工實踐指導M.江西:科學技術(shù)出版社,2005. 3 何立民.MCS-51單片機應用系統(tǒng)設(shè)計M.北京:航空航天大學出版社,1998. 4 曹玲芝.電子信息工程專業(yè)英語M.武漢:華中科技大學出版社,2007. 5 王俊峰.理工科學生怎樣搞畢業(yè)設(shè)計M.北京:電子工業(yè)出版社,2004. 6 史久規(guī).基于Altium Designer 的原理圖與PCB設(shè)計M.北京:機械工業(yè)出版社,2011. 7 高鋒編.單片微機應用系統(tǒng)設(shè)計及使用技術(shù)M.北京:機械工業(yè)出版社,2004. 8 胡漢才單片機原理及

51、系統(tǒng)設(shè)計M 北京:清華大學出版社,2002. 9 胡漢才.單片機原理及其接口技術(shù)M.北京:清華大學出版社, 2004. 10 馬忠梅.單片機 C 語言應用程序設(shè)計M. 北京:航空航天大學出版社 ,2007. 11 徐愛軍.單片機高級語言 C51 應用程序設(shè)計M.北京:電子工業(yè)出版社,1997. 基于單片機的簡易電子琴設(shè)計 21 附錄一 電子琴源程序 #include #include #define uint unsigned int #define uchar unsigned char sbit SPK = P37; /*P3.7 外接揚聲器*/ sbit shiwei = P27; sb

52、it gewei = P26; uint FreqTemp; char Key_Value=-1; uchar code tabledu= 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71; unsigned int code Freqtab = /*定時半周期的初始值*/ 64021,64103,64260,64400, /*低音 3 4 5 6*/ 64524,64580,64684,64777, /*低音 7,中音 1 2 3*/ 64820

53、,64898,64968,65030, /*中音 4 5 6 7*/ 65058,65110,65157,65178; /*高音 1 2 3 4*/ 基于單片機的簡易電子琴設(shè)計 22 void delay_ms(uint z) uint x,y; for(x=z;x0;x-) for(y=123;y0;y-); /*函數(shù)功能 : 用掃描法讀 P1 外接 44 鍵盤*/ /*函數(shù)返回 : 有按下鍵:返回 115、如無鍵按下:返回 00*/ uchar Keyscan(void) uchar i, j, temp, Buffer4 = 0 xfe, 0 xfd, 0 xfb, 0 xf7; for

54、(j = 0; j = 1; 基于單片機的簡易電子琴設(shè)計 23 return 16; /*沒有鍵按下就返回 00*/ /*函數(shù)功能 : 將參數(shù)分成十位、個位,分別顯示到 P2 */ void Display() shiwei=0;P0=tabledu(Key_Value+1)/10;delay_ms(5);shiwei=1;P0=0 x00; gewei=0;P0=tabledu(Key_Value+1)%10;delay_ms(5);gewei=1;P0=0 x00; void shaomiao() uchar Key_Temp1, Key_Temp2; /*讀出的鍵值*/ Key_Temp

55、1 = Keyscan(); /*讀入按鍵*/ if(Key_Temp1 != 16) /*有鍵按下*/ delay_ms(5); /*延時消抖*/ Key_Temp2 = Keyscan(); /*再讀一次*/ if (Key_Temp1 = Key_Temp2) /*兩次相等*/ Key_Value = Key_Temp1; /*就確認下來*/ FreqTemp = FreqtabKey_Value; /*根據(jù)鍵值,取出定時半周期的初始值*/ TR0 = 1; /*啟動定時器,發(fā)音*/ 基于單片機的簡易電子琴設(shè)計 24 while (Keyscan() 8; SPK = SPK; /*發(fā)音*/ 附錄二 原理圖 基于單片機的簡易電子琴設(shè)計 26 附錄三 PCB 圖 基于單片機的簡易電子琴設(shè)計 27 附錄四 實物圖 基于單片機的簡易電子琴設(shè)計 28 致 謝 基于單片機的簡易電子琴設(shè)計 29

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

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


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