




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄1 引言21.1 目的和意義21.2 本系統(tǒng)主要研究內(nèi)容22. 總體方案論證與設(shè)計32.1主控模塊32.1.3 STC89C52單片機(jī)的中斷系統(tǒng)62.1.4 STC89C52單片機(jī)的定時/計數(shù)器62.2數(shù)碼管模塊設(shè)計62.2.1 數(shù)碼管原理介紹62.2.1 數(shù)碼管電路設(shè)計72.3鍵盤模塊設(shè)計8矩陣鍵盤原理介紹8矩陣鍵盤電路設(shè)計82.4功率放大模塊設(shè)計9內(nèi)部原理92.4.2 LM386使用注意事項103.系統(tǒng)軟件設(shè)計113.1系統(tǒng)軟件總體設(shè)計113.2定時器產(chǎn)生音樂信號原理114.系統(tǒng)調(diào)試134.1硬件調(diào)試134.2軟件調(diào)試134.3調(diào)試結(jié)果135.結(jié)論15附錄17系統(tǒng)整體原理圖17系統(tǒng)P
2、CB設(shè)計圖17系統(tǒng)源程序18基于單片機(jī)的電子琴摘要:隨著社會的發(fā)展進(jìn)步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會向惡。我們都會抽空欣賞世界名曲,作為對精神的洗禮。本論文設(shè)計一個基于單片機(jī)的簡易電子琴。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本系統(tǒng)是以51系列單片機(jī)STC89C52為主控制器,附有矩陣鍵盤、LED顯示管、揚聲器組成。系統(tǒng)完成顯示輸入信息、播放相應(yīng)音符等基本功能。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控
3、制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。關(guān)鍵詞:STC89C52,矩陣鍵盤,LED顯示管,揚聲器。1 引言1.1 目的和意義單片微型計算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計算機(jī),它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。 電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用STC89C52單
4、片機(jī)為核心控制元件,設(shè)計一個電子琴。以單片機(jī)作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個按鍵和揚聲器。 本文主要對使用單片機(jī)設(shè)計簡易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細(xì)闡述。本系統(tǒng)是簡易電子琴的設(shè)計,按下鍵盤矩陣中的按鍵會使數(shù)碼管顯示當(dāng)前按鍵,揚聲器播放器對應(yīng)的音符。通過設(shè)計本系統(tǒng)可了解單片機(jī)的基本功能。對單片機(jī)的了解有一個小的飛躍。1.2 本系統(tǒng)主要研究內(nèi)容本系統(tǒng)設(shè)計制作一個可演奏的電子琴。綜合應(yīng)用了兩
5、項設(shè)計。(1)鍵盤矩陣識別。即矩陣掃描,顯示當(dāng)前按鍵。(2)不同頻率音符播放??梢酝ㄟ^按鍵控制15種發(fā)音。(3)設(shè)有一個按鍵,按下后可以播放預(yù)設(shè)的歌曲。2. 總體方案論證與設(shè)計本系統(tǒng)以STC89C52單片機(jī)為控制核心,對系統(tǒng)進(jìn)行初始化,主要完成對鍵盤的響應(yīng)、數(shù)碼管顯示等功能的控制,起到總控和協(xié)調(diào)各模塊之間工作的作用。單片機(jī)通過檢測鍵盤輸出對應(yīng)頻率的方波,后級通過LM386對功率進(jìn)行擴(kuò)大從而驅(qū)動揚聲器發(fā)響。圖2-1系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)結(jié)構(gòu)如圖2-1所示,本設(shè)計可分為以下模塊:單片機(jī)主控模塊、鍵盤模塊、功率放大模塊、鬧鈴模塊、按鍵設(shè)置模塊。下面對各個模塊的設(shè)計方案逐一進(jìn)行論證分析。2.1主控模塊ST
6、C89C52單片機(jī)最初是由Intel 公司開發(fā)設(shè)計的,但后來Intel 公司把51 核的設(shè)計方案賣給了幾家大的電子設(shè)計生產(chǎn)商,譬如 SST、Philip、Atmel 等大公司。如是市面上出現(xiàn)了各式各樣的但均以51 為內(nèi)核的單片機(jī),倒是Intel 公司自己的單片機(jī)卻顯得遜色了。這些各大電子生產(chǎn)商推出的單片機(jī)都兼容51 指令、并在51 的基礎(chǔ)上擴(kuò)展一些功能而內(nèi)部結(jié)構(gòu)是與51 一致的。STC89C52有40個引腳,4個8位并行I/O口,1個全雙工異步串行口,同時內(nèi)含5個中斷源,2個優(yōu)先級,2個16位定時/計數(shù)器。STC89C52的存儲器系統(tǒng)由4K的程序存儲器(掩膜ROM),和128B的數(shù)據(jù)存儲器(R
7、AM)組成。STC89C52單片機(jī)的基本組成框圖見圖2-2。圖2-2 STC89C52單片機(jī)結(jié) STC89C52單片機(jī)主要特性1. 一個8 位的微處理器(CPU)。2. 片內(nèi)數(shù)據(jù)存儲器RAM(128B),用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等,SST89 系列單片機(jī)最多提供1K 的RAM。3. 片內(nèi)程序存儲器ROM(4KB),用以存放程序、一些原始數(shù)據(jù)和表格。但也有一些單片機(jī)內(nèi)部不帶ROM/EPROM,如8031,8032,80C31 等。目前單片機(jī)的發(fā)展趨勢是將RAM 和ROM 都集成在單片機(jī)里面,這樣既方便了用戶進(jìn)行設(shè)計又提高了系統(tǒng)的抗干擾性。SST 公司推出
8、的89 系列單片機(jī)分別集成了16K、32K、64K Flash 存儲器,可供用戶根據(jù)需要選用。4. 四個8 位并行IO 接口P0P3,每個口既可以用作輸入,也可以用作輸出。5. 兩個定時器計數(shù)器,每個定時器計數(shù)器都可以設(shè)置成計數(shù)方式,用以對外部事件進(jìn)行計數(shù),也可以設(shè)置成定時方式,并可以根據(jù)計數(shù)或定時的結(jié)果實現(xiàn)計算機(jī)控制。為方便設(shè)計串行通信,目前的52 系列單片機(jī)都會提供3 個16 位定時器/計數(shù)器。6. 五個中斷源的中斷控制系統(tǒng)?,F(xiàn)在新推出的單片機(jī)都不只5 個中斷源,例如SST89E58RD 就有9 個中斷源。7. 一個全雙工UART(通用異步接收發(fā)送器)的串行IO 口,用于實現(xiàn)單片機(jī)之間或單
9、機(jī)與微機(jī)之間的串行通信。8. 片內(nèi)振蕩器和時鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為12MHz。SST89V58RD 最高允許振蕩頻率達(dá)40MHz,因而大大的提高了指令的執(zhí)行速度。2.1.2 STC89C52單片機(jī)管腳圖圖2-3 89S52單片機(jī)管腳圖部分引腳說明:1. 時鐘電路引腳XTAL1 和XTAL2:XTAL2(18 腳):接外部晶體和微調(diào)電容的一端;在8051 片內(nèi)它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時鐘電路時,該引腳輸入外部時鐘脈沖。要檢查8051/8031 的振蕩電路是否正常工作,可用示波器查看XTAL2 端是否有脈沖信
10、號輸出。XTAL1(19 腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,該引腳必須接地。2. 控制信號引腳RST,ALE,PSEN 和EA:RST/VPD(9 腳):RST 是復(fù)位信號輸入端,高電平有效。當(dāng)此輸入端保持備用電源的輸入端。當(dāng)主電源Vcc 發(fā)生故障,降低到低電平規(guī)定值時,將5V 電源自動兩個機(jī)器周期(24個時鐘振蕩周期)的高電平時,就可以完成復(fù)位操作。RST 引腳的第二功能是VPD,即接入RST 端,為RAM 提供備用電源,以保證存儲在RAM 中的信息不丟失,從而合復(fù)位后能繼續(xù)正常運行。ALE/PROG(30 腳):地址鎖存允許信號端。
11、當(dāng)8051 上電正常工作后,ALE 引腳不斷向外輸出正脈沖信號,此頻率為振蕩器頻率fOSC 的1/6。CPU 訪問片外存儲器時,ALE 輸出信號作為鎖存低8 位地址的控制信號。平時不訪問片外存儲器時,ALE 端也以振蕩頻率的1/6 固定輸出正脈沖,因而ALE 信號可以用作對外輸出時鐘或定時信號。如果想確定8051/8031 芯片的好壞,可用示波器查看ALE端是否有脈沖信號輸出。如有脈沖信號輸出,則8051/8031 基本上是好的。ALE 端的負(fù)載驅(qū)動能力為8 個LS 型TTL(低功耗甚高速TTL)負(fù)載。此引腳的第二功能PROG 在對片內(nèi)帶有4KB EPROM 的8751 編程寫入(固化程序)時
12、,作為編程脈沖輸入端。PSEN(29 腳):程序存儲允許輸出信號端。在訪問片外程序存儲器時,此端定時輸出負(fù)脈沖作為讀片外存儲器的選通信號。此引肢接EPROM 的OE 端(見后面幾章任何一個小系統(tǒng)硬件圖)。PSEN 端有效,即允許讀出EPROMROM 中的指令碼。PSEN 端同樣可驅(qū)動8 個LS 型TTL 負(fù)載。要檢查一個8051/8031 小系統(tǒng)上電后CPU 能否正常到EPROMROM 中讀取指令碼,也可用示波器看PSEN 端有無脈沖輸出。如有則說明基本上工作正常。EA/Vpp(31 腳):外部程序存儲器地址允許輸入端/固化編程電壓輸入端。當(dāng)EA 引腳接高電平時,CPU只訪問片內(nèi)EPROM/R
13、OM并執(zhí)行內(nèi)部程序存儲器中的指令,但當(dāng)PC(程序計數(shù)器)的值超過0FFFH(對8751/8051 為4K)時,將自動轉(zhuǎn)去執(zhí)行片外程序存儲器內(nèi)的程序。當(dāng)輸入信號EA 引腳接低電平(接地)時,CPU 只訪問外部EPROM/ROM 并執(zhí)行外部程序存儲器中的指令,而不管是否有片內(nèi)程序存儲器。對于無片內(nèi)ROM 的8031 或8032,需外擴(kuò)EPROM,此時必須將EA 引腳接地。此引腳的第二功能是Vpp 是對8751 片內(nèi)EPROM固化編程時,作為施加較高編程電壓(一般12V21V)的輸入端。3. 輸入/輸出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 腳):P0口是一個漏極開路的8 位
14、準(zhǔn)雙向I/O口。作為漏極開路的輸出端口,每位能驅(qū)動8 個LS 型TTL 負(fù)載。當(dāng)P0 口作為輸入口使用時,應(yīng)先向口鎖存器(地址80H)寫入全1,此時P0 口的全部引腳浮空,可作為高阻抗輸入。作輸入口使用時要先寫1,這就是準(zhǔn)雙向口的含義。在CPU 訪問片外存儲器時,P0口分時提供低8 位地址和8 位數(shù)據(jù)的復(fù)用總線。在此期間,P0口內(nèi)部上拉電阻有效。P1口(P1.0P1.7,18 腳):P1口是一個帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P1口每位能驅(qū)動4 個LS 型TTL 負(fù)載。在P1口作為輸入口使用時,應(yīng)先向P1口鎖存地址(90H)寫入全1,此時P1口引腳由內(nèi)部上拉電阻拉成高電平。P2口(P2.
15、0P2.7,2128 腳):P2口是一個帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P口每位能驅(qū)動4個LS 型TTL 負(fù)載。在訪問片外EPROM/RAM 時,它輸出高8 位地址。P3口(P3.0P3.7,1017 腳):P3口是一個帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P3口每位能驅(qū)動4個LS型TTL負(fù)載。P3口與其它I/O 端口有很大的區(qū)別,它的每個引腳都有第二功能,如下:P3.0:(RXD)串行數(shù)據(jù)接收。P3.1:(RXD)串行數(shù)據(jù)發(fā)送。P3.2:(INT0#)外部中斷0輸入。P3.3:(INT1#)外部中斷1輸入。P3.4:(T0)定時/計數(shù)器0的外部計數(shù)輸入。P3.5:(T1)定時/計數(shù)器1
16、的外部計數(shù)輸入。P3.6:(WR#)外部數(shù)據(jù)存儲器寫選通。P3.7:(RD#)外部數(shù)據(jù)存儲器讀選通。2.1.3 STC89C52單片機(jī)的中斷系統(tǒng)STC89C52系列單片機(jī)的中斷系統(tǒng)有5個中斷源,2個優(yōu)先級,可以實現(xiàn)二級中斷服務(wù)嵌套。由片內(nèi)特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應(yīng)中斷請求;由中斷優(yōu)先級寄存器IP安排各中斷源的優(yōu)先級;同一優(yōu)先級內(nèi)各中斷同時提出中斷請求時,由內(nèi)部的查詢邏輯確定其響應(yīng)次序。2.1.4 STC89C52單片機(jī)的定時/計數(shù)器在單片機(jī)應(yīng)用系統(tǒng)中,常常會有定時控制需求,如定時輸出、定時檢測、定時掃描等;也經(jīng)常要對外部事件進(jìn)行計數(shù)。89C52單片機(jī)內(nèi)集成有兩個可編
17、程的定時/計數(shù)器:T0和T1,它們既可以工作于定時模式,也可以工作于外部事件計數(shù)模式,此外,T1還可以作為串行口的波特率發(fā)生器。2.2數(shù)碼管模塊設(shè)計2.2.1 數(shù)碼管原理介紹數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮,當(dāng)某一字段的陰極為高電平時,相應(yīng)字段
18、就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮,當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示
19、則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機(jī)可用的I/O端口才32個呢:),實際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯
20、示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。圖2-4 數(shù)碼管內(nèi)部結(jié)構(gòu)圖2.2.1 數(shù)碼管電路設(shè)計如下圖所示為一位共陽數(shù)碼管的硬件電路連接圖,由于數(shù)碼管內(nèi)部實際為8個LED燈,如果把LED的陰級直接單片機(jī)的IO的口,會使LED通過的電流過大從而把數(shù)碼管
21、燒毀,因此在設(shè)計的時候在LED的陰級和單片機(jī)的IO之間加上了限流電阻從而起到限流作用。根據(jù)經(jīng)驗,這里選取了1K電阻。程序編寫的時候我們預(yù)先根據(jù)要顯示的字符,編寫了個對應(yīng)要顯示的數(shù)組,這樣可以使程序更加簡化。圖2-5共陽數(shù)碼管硬件電路連接圖 2.3鍵盤模塊設(shè)計2.3.1矩陣鍵盤原理介紹矩陣式鍵盤模式以N個端口連接控制N*N個按鍵,實時在LED數(shù)碼管上顯示按鍵信息。顯示按鍵信息,省下了很多的I/O端口為他用,相反,獨立式按鍵雖編程簡單,但占用I/O口資源較多,不適合在按鍵較多的場合應(yīng)用。并且在實際應(yīng)用中經(jīng)常要用到輸入數(shù)字、字母、符號等操作功能,如電子密碼鎖、電話機(jī)鍵盤、計算器按鍵等,至少都需要12
22、到16個按鍵。矩陣式鍵盤簡介:矩陣式鍵盤又稱行列鍵盤,它是用N條I/O線作為行線,N條I/O線作為列線組成的鍵盤。在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為N*N個。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。最常見的鍵盤布局如圖1所示。一般由16個按鍵組成,在單片機(jī)中正好可以用一個P口實現(xiàn)16個按鍵功能,這也是在單片機(jī)系統(tǒng)中最常用的形式,本設(shè)計就采用這個鍵盤模式。圖2-6鍵盤布局 矩陣式鍵盤提高效率進(jìn)行按鍵操作管理有效方法,它可以提高系統(tǒng)準(zhǔn)確性,有利于資源的節(jié)約,降低對操作者本身素質(zhì)的要求。2.3.2矩陣鍵盤電路設(shè)計圖2-7矩陣鍵盤電路圖硬件電路設(shè)計圖如
23、上圖所示。把單片機(jī)的P2.0P2.7端口通過8聯(lián)撥動撥碼開關(guān)連接到“4*4行列式鍵盤”,其中P2.0-P2.3作為列線,P2.4-P2.7作為行線,系統(tǒng)首先通過CPU對全部鍵盤進(jìn)行掃描,即把第一根行線置為“0”狀態(tài),其余行線置于“1”狀態(tài),讀入輸入緩沖器的狀態(tài),若其狀態(tài)全為“1”表明該行無鍵按下,再將第二根行線置為“0”狀態(tài),同樣讀入輸入緩沖器的狀態(tài),如其狀態(tài)也全為“1”,則置第一根行線置為“0”狀態(tài),以此類推5。如讀入輸入緩沖器的狀態(tài)不全為“1”,確定哪一根列線為“0”狀態(tài),當(dāng)某個鍵的行線和列線都為“0”狀態(tài)時,表明該鍵按下。2.4功率放大模塊設(shè)計功率放大模塊我們選用了LM386作為功率放大
24、模塊的主要芯片,LM386是美國國家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至 200。輸入端以地位參考,同時輸出端被自動偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場合。2.4.1LM386內(nèi)部原理圖2-8 LM386內(nèi)部結(jié)構(gòu)圖LM386內(nèi)部電路原理圖如圖所示。與通用型集成運放相類似,它是一個三級放大電路。第一級為差分放大電路,T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電路的放大管;T5和T6組成鏡像電
25、流源作為T1和T2的有源負(fù)載;T3和T4信號從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負(fù)載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。第二級為共射放大電路,T7為放大管,恒流源作有源負(fù)載,以增大放大倍數(shù)。第三級中的T8和T9管復(fù)合成PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補(bǔ)輸出級。二極管D1和D2為輸出級提供合適的偏置電壓,可以消除交越失真。引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL電路。輸出端(引腳5)應(yīng)外接輸出電容后再接負(fù)載。電阻R7從輸出端連接到T2的發(fā)射極,形成反饋通路,并與R5和R6構(gòu)成反饋網(wǎng)絡(luò)
26、,從而引入了深度電壓串聯(lián)負(fù)反饋,使整個電路具有穩(wěn)定的電壓增益。圖2-9 LM386管腳圖LM386的外形和引腳的排列如上圖所示。引腳2為反相輸入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時在引腳7和地之間接旁路電容,通常取10F。查LM386的datasheet,電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200;在1、8腳開路時,帶寬為300KHz;輸入阻抗為50K;音頻功率0.5W。2.4.2 LM386使用注意事項盡管LM386的應(yīng)用非常簡單,但稍不注意,特別是器件上電、斷電瞬間,甚至工作穩(wěn)
27、定后,一些操作(如插拔音頻插頭、旋音量調(diào)節(jié)鈕)都會帶來的瞬態(tài)沖擊,在輸出喇叭上會產(chǎn)生非常討厭的噪聲。(1)通過接在1腳、8腳間的電容(1腳接電容+極)來改變增益,斷開時增益為20。因此用不到大的增益,電容就不要接了,不光省了成本,還會帶來好處-噪音減少,何樂而不為?(2)PCB設(shè)計時,所有外圍元件盡可能靠近LM386;地線盡可能粗一些;輸入音頻信號通路盡可能平行走線,輸出亦如此。這是死理,不用多說了吧。(3)好調(diào)節(jié)音量的電位器。質(zhì)量太差的不要,否則受害的是耳朵;阻值不要太大,10K最合適,太大也會影響音質(zhì),轉(zhuǎn)那么多圈圈,不煩那!(4)可能采用雙音頻輸入/輸出。好處是:“+”、“”輸出端可以很好
28、地抵消共模信號,故能有效抑制共模噪聲。(5)7腳(BYPASS)的旁路電容不可少!實際應(yīng)用時,BYPASS端必須外接一個電解電容到地,起濾除噪聲的作用。工作穩(wěn)定后,該管腳電壓值約等于電源電壓的一半。增大這個電容的容值,減緩直流基準(zhǔn)電壓的上升、下降速度,有效抑制噪聲。在器件上電、掉電時的噪聲就是由該偏置電壓的瞬間跳變所致,這個電容可千萬別省啊!(6)少輸出耦合電容。此電容的作用有二:隔直+耦合。隔斷直流電壓,直流電壓過大有可能會損壞喇叭線圈;耦合音頻的交流信號。它與揚聲器負(fù)載構(gòu)成了一階高通濾波器。減小該電容值,可使噪聲能量沖擊的幅度變小、寬度變窄;太低還會使截止頻率(fc=1/(2*RL*Cou
29、t))提高。分別測試,發(fā)現(xiàn)10uF/4.7uF最為合適,這是我的經(jīng)驗值。(7)源的處理,也很關(guān)鍵。如果系統(tǒng)中有多組電源,太好了!由于電壓不同、負(fù)載不同以及并聯(lián)的去耦電容不同,每組電源的上升、下降時間必有差異。非常可行的方法:將上電、掉電時間短的電源放到+12V處,選擇上升相對較慢的電源作為LM386的Vs,但不要低于4V,效果確實非常不錯!3.系統(tǒng)軟件設(shè)計3.1系統(tǒng)軟件總體設(shè)計圖3-1系統(tǒng)流程圖3.2定時器產(chǎn)生音樂信號原理一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利
30、用單片機(jī)的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系正確即可。利用AT89C51的內(nèi)部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計數(shù)器計時956s/1s956,每計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。 計數(shù)脈沖值與頻率的關(guān)系式(如式2-1所示)是:
31、 Nfi÷2÷fr 2-1式中,N是計數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計數(shù)初
32、值T的求法如下: T65536N65536fi÷2÷fr 例如:設(shè)K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數(shù)值。 T65536N65536fi÷2÷
33、;fr655361000000÷2÷fr65536500000/fr 低音DO的T65536500000/26263627 中音DO的T65536500000/52364580 高音DO的T65536500000/1046650594.系統(tǒng)調(diào)試4.1硬件調(diào)試電子琴的電路系統(tǒng)較大,對于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯誤,則會對檢測造成很大的不便,而且電路的交線較多,對于各種鋒利的引腳要注意處理,否則會刺破帶有包皮的導(dǎo)線,則會對電路造成短路現(xiàn)象。在本
34、電子琴的設(shè)計調(diào)試中遇到了很多的問題?;叵脒@些問題只要認(rèn)真多思考都是可以避免的,以下為主要的問題:(1)數(shù)碼管選用的時候沒有注意采用的是共陰還是共陽,導(dǎo)致調(diào)試的時候數(shù)碼管一直不能顯示。解決:把共陰數(shù)碼管換成數(shù)碼管。(2)最開始的時候以為單片機(jī)IO口直接可以驅(qū)動喇叭發(fā)聲,后來調(diào)試的時候久久不能出聲音。解決:經(jīng)過查找相關(guān)資料,知道揚聲器需要功率放大器來驅(qū)動,后來把功率放大器加上系統(tǒng)便可以正常工作。4.2軟件調(diào)試電子琴是多功能的數(shù)字型,可以根據(jù)用戶按下的按鍵發(fā)出對應(yīng)頻率的聲音。電子琴功能很多,所以對于它的程序也較為復(fù)雜,所以在編寫程序和調(diào)試時出現(xiàn)了相對較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一
35、步的完成,最終解決了軟件。在軟件的調(diào)試過程中主要遇到的問題如下:1燒入程序后,LED數(shù)碼管顯示閃動,而且亮度不均勻。解決:首先對調(diào)用的延時進(jìn)行逐漸修改,可以解決顯示閃動問題。其次,由于本作品使作動態(tài)掃描方式顯示的數(shù)字,動態(tài)掃描很快,人的肉眼是無法看出,但是調(diào)用的顯示程序時,如果不在反回時屏蔽掉最后的附值,則會出現(xiàn)很亮的現(xiàn)象,所以在顯示的后面加了屏蔽子令,最后解決了此問題。2當(dāng)用戶按下按鍵的時候,定時器設(shè)置的頻率跟設(shè)計的不對應(yīng)。解決:由于定時器中,有大量需要處理的語句使設(shè)置定時器的頻率不準(zhǔn),為了解決這個問題,我把不太相關(guān)的語句放大定時器外部使用。4.3調(diào)試結(jié)果(1)在測試中遇到LED數(shù)碼管為不顯
36、示時,首先使用試測儀對電路進(jìn)行測試,觀察是否存在漏焊,虛焊,或者元件損壞.(2)LED 數(shù)碼管顯示不正常,還有亮度不夠,首先使用試測儀對電路進(jìn)行測試,觀察電路是否存在短路現(xiàn)象。查看燒寫的程序是否正確無誤,對程序進(jìn)行認(rèn)真修改。經(jīng)過一系列的問題查找后系統(tǒng)最終能正常工作,并完成所有的功能。以下為系統(tǒng)仿真圖: 圖4-1系統(tǒng)仿真圖5.結(jié)論通過這次畢業(yè)設(shè)計,我學(xué)到了不少課本上沒有的知識,也鍛煉了自己的動手能力,將以前學(xué)過的零散的知識串到一起。經(jīng)過我長時間的設(shè)計及調(diào)試,本系統(tǒng)基本能實現(xiàn)按下鍵盤矩陣中的按鍵會使數(shù)碼管顯示當(dāng)前按鍵,揚聲器播放對應(yīng)的音符。但由于仿真系統(tǒng)原因,本設(shè)計音頻效果不是很好。不足之處有:1
37、.可彈奏的音符數(shù)較少,只能在一定范圍內(nèi)滿足用戶需要??赏ㄟ^改進(jìn)鍵盤識別模塊和發(fā)生模塊來增加其復(fù)雜度2.音量不可調(diào)。我的綜合設(shè)計主要涉及硬件和軟件兩方面的內(nèi)容,通過這些我的硬件和軟件開發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開發(fā)流程和所要做的工作?;菊莆樟薖rotel99SE原理圖的方法,并設(shè)計了一個單片機(jī)最小系統(tǒng)。通過開發(fā)板的設(shè)計和硬件搭建的過程,使我對51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LED數(shù)碼管,鍵盤等。并且我學(xué)會了分析問題解決問題的能力,加深了對所學(xué)理論知識的理解和運用。我的動手能力得到了很大的提高,創(chuàng)新意識得到了鍛煉。
38、參考文獻(xiàn)1 彭偉.單片機(jī)C語言程序設(shè)計實訓(xùn)100例.電子工業(yè)出版社.2009年2 吳運昌模擬電子線路基礎(chǔ)廣州:華南理工大學(xué)出版社,2004年3 閻石數(shù)字電子技術(shù)基礎(chǔ)北京:高等教育出版社,1997年4 張曉麗等數(shù)據(jù)結(jié)構(gòu)與算法北京:機(jī)械工業(yè)出版社,2002年5 馬忠梅等 ARM&Linux嵌入式系統(tǒng)教程北京:北京航空航天大學(xué)出版社,2004年6 李建忠單片機(jī)原理及應(yīng)用西安:西安電子科技大學(xué),2002年7 韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計M.機(jī)械工業(yè)出版社,20048 周潤景等. Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例M.電子工業(yè)出版社,20069 馬忠梅等.單片機(jī)的C語
39、言應(yīng)用程序設(shè)計M.北京航空航天大學(xué)出版社,200610 劉樹中,孫書膺,王春平.單片機(jī)和液晶顯示驅(qū)動器串行接口的實現(xiàn)J.微計算機(jī)信息,2007附錄系統(tǒng)整體原理圖系統(tǒng)PCB設(shè)計圖系統(tǒng)源程序#include <reg52.h>#include <intrins.h>/本程序是電子琴的程序,能夠?qū)崿F(xiàn)單獨演奏和放一首歌曲的功能。其中,按鍵115是用于單獨演奏的,按鍵16是用于播放歌曲的/播放歌曲的時候需要按復(fù)位鍵才能夠停止。/共陰極數(shù)碼管段碼表,最后一字節(jié)為黑屏unsigned char code DSY_CODE=0x28,0xee,0x34,0xa4,0xe2,0xa1,0
40、x21,0xec,0x20,0xa0,0x60,0x23,0x39,0x26,0x31,0x71,0xbf;/各音符對應(yīng)的延時表unsigned int code tone_delay_table=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178;/蜂鳴器的位定義sbit beep=P30;#define SOUND_SPACE 4/5 /定義普通音符演奏的長度分率,/每4分音符間隔/同一首歌 的譜子unsigned char code Music= 0
41、x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B
42、,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x
43、66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02,
44、 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C, 0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 ;unsigned int code FreTab12 = 262,27
45、7,294,311,330,349,369,392,415,440,466,494 ; /原始頻率表unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17在頻率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;unsigned char Sound_Temp_TH0,Sound_Temp_TL0;/音符定時器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音長定時器初值暫存void delay_1ms(unsigned int ms) un
46、signed char i; while(ms-) for(i=0;i<120;i+); /延時1ms/播放音樂的子函數(shù)void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)unsigned int NewFreTab12;/新的頻率表unsigned char i,j; /定義一些中間變量unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigne
47、d char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i<12;i+) / 根據(jù)調(diào)號及升降八度來生成新的頻率表 j = i + Signature;if(j > 11)j = j-12;NewFreTabi = FreTabj*2;/計算新的頻率elseNewFreTabi = FreTabj;if(Octachord = 1)NewFreTabi>>=2;else if(Octachord = 3)NewFreTabi<<=2;SoundLength = 0;while(SoundSoundLength != 0x0
48、0)/計算歌曲長度SoundLength+=2;Point = 0;Tone = SoundPoint;Length = SoundPoint+1; / 讀出第一個音符和它時時值LDiv0 = 12000/Speed;/ 算出1分音符的長度(幾個10ms) LDiv4 = LDiv0/4; / 算出4分音符的長度 LDiv4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最長間隔標(biāo)準(zhǔn) TR0 = 0;TR1 = 1;while(Point < SoundLength)SL=Tone%10; /計算出音符 SM=Tone/10%10; /計算出高低音 SH=Tone/10
49、0; /計算出是否升半 CurrentFre = NewFreTabSignTabSL-1+SH; /查出對應(yīng)音符的頻率 if(SL!=0)if (SM=1) CurrentFre >>= 2; /低音 if (SM=3) CurrentFre <<= 2; /高音Temp_T = 65536-(50000/CurrentFre)*10;/計算計數(shù)器初值Sound_Temp_TH0 = Temp_T/256; Sound_Temp_TL0 = Temp_T%256; TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0 + 12; /加12是對中斷延時的補(bǔ)償 SLen=LengthTabLength%10; /算出是幾分音符XG=Length/10%10; /算出音符類型(0普通1連音2頓音) FD=Length/100;LDiv=LDiv0/SLen; /算出連音音符演奏的長度(多少個10ms)if (FD=1) LDiv=LDi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國高速膠板市場分析及競爭策略研究報告
- 2025至2030年中國防裂劑市場分析及競爭策略研究報告
- 2025至2030年中國鋼襯四氟反應(yīng)塔市場分析及競爭策略研究報告
- 2025至2030年中國超高速單線機(jī)市場分析及競爭策略研究報告
- 2025至2030年中國現(xiàn)場總線連接器市場分析及競爭策略研究報告
- 2025至2030年中國液壓搬運車市場分析及競爭策略研究報告
- 2025至2030年中國氨基模塑料市場分析及競爭策略研究報告
- 2025至2030年中國抗菌接頭市場分析及競爭策略研究報告
- 2025至2030年中國平底試劑槽市場分析及競爭策略研究報告
- 2025至2030年中國獎狀市場分析及競爭策略研究報告
- 2025至2030石墨電極行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 江蘇省高郵市2025屆八下英語期末調(diào)研模擬試題含答案
- 垃圾爐渣廠管理制度
- 2025安全生產(chǎn)月一把手講安全公開課主題宣講三十三(60P)
- 2025至2030中國二甲醚汽車行業(yè)市場分析及競爭形勢與發(fā)展前景預(yù)測報告
- 統(tǒng)編版七年級歷史上冊期末復(fù)習(xí)課件
- 2025春季學(xué)期國開電大本科《人文英語4》一平臺機(jī)考真題及答案(第五套)
- 2025三明市三元區(qū)輔警考試試卷真題
- 新生兒高膽紅素血癥護(hù)理措施
- 2025春季學(xué)期國開電大??啤吨屑壺攧?wù)會計(二)》一平臺在線形考(第二次形考任務(wù))試題及答案
- 污水處理工程設(shè)計投標(biāo)文件技術(shù)方案
評論
0/150
提交評論