可存儲式電子琴_第1頁
可存儲式電子琴_第2頁
可存儲式電子琴_第3頁
可存儲式電子琴_第4頁
可存儲式電子琴_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、課程設(shè)計課程設(shè)計 可存儲式電子琴系統(tǒng)設(shè)計可存儲式電子琴系統(tǒng)設(shè)計學(xué)生姓名學(xué)生姓名李真,謝偉志,武光霞,李真,謝偉志,武光霞,孫宏杰,孫宏杰,鄭悅,鄭悅,周錦波,周錦波,學(xué)號學(xué)號200723502147所在專業(yè)所在專業(yè)機械設(shè)計制造及其自動化所在班級所在班級機 071-6指導(dǎo)教師指導(dǎo)教師劉鵬 負(fù)責(zé)內(nèi)容負(fù)責(zé)內(nèi)容同組人員同組人員可存儲式電子琴可存儲式電子琴一、任務(wù)書一、任務(wù)書 本設(shè)計利用 8051 單片機的控制程序結(jié)合 lcd 設(shè)計一臺數(shù)字式可存儲是電子琴?;竟δ転椋?、使用 lcd 顯示器來顯示音節(jié)輸入的相關(guān)信息;2、當(dāng)按下鍵盤組相對按鍵,壓電喇叭會發(fā)出相對音節(jié)單音,共有兩個八度音階;3、所有單音會

2、存入 8051 內(nèi)而保存起來;4、至多可以輸入 64 個單音,可以一起演奏出來;演奏時可以按鍵中斷;可以實時顯示目前正演奏的單音碼.二、原理說明二、原理說明a 8051 單片機介紹單片機介紹2.12.1 基本特性基本特性8051 單片機主要功能特點如下:(1)8 位 cpu;片內(nèi) 128b ram (2)片內(nèi) 4kbrom/eprom; 特殊功能寄存器區(qū)(3)2 個優(yōu)先級的 5 個中斷源結(jié)構(gòu);4 個 8 位并行 i/o 口(p0、p1、p2、 p3)(4)2 個 16 位定時/計數(shù)器(mcs-52 子系列為 3 個);全雙工串行口(5)布爾處理器;64kb 外部數(shù)據(jù)存儲器地址空間(6)64kb

3、 外部程序存儲器地址空間;片內(nèi)振蕩器及時鐘電路8051 片內(nèi)程序存儲器為掩膜 rom,可根據(jù)特殊要求和用途在制造芯片是將專用程序固化進去,成為專用單片機。引腳功能 mcs-51 系列單片機大多都采用 40 條引腳雙列直插式器件,引腳除5v(vcc40 腳)和電源地(vss20 引腳)外,按其功能主要由以下三大部分組成。右圖為為 8051 的引腳圖。復(fù)位后內(nèi)部寄存器狀態(tài)復(fù)位后內(nèi)部寄存器狀態(tài)2.22.2 時鐘電路時鐘電路xtal1(19 腳)芯片內(nèi)部振蕩電路(單極反相放大器)輸入端。tal2(18 腳)芯片內(nèi)部振蕩電路(單極反相放大器)輸出端。mcs-51 的時鐘可由內(nèi)部方式或外部方式產(chǎn)生。2.3

4、2.3 控制信號控制信號2.3.1 rst/vpd (9 腳腳)復(fù)位信號復(fù)位信號時鐘電路工作后,在此引腳上出現(xiàn)兩個機器周期的高電平,芯片內(nèi)部進行初始復(fù)位,復(fù)位后片內(nèi)寄存器狀態(tài)如下表所示。寄存器內(nèi)容寄存器內(nèi)容pc0000htmod 00hacc00htcon00hb00hth000hpsw00htl000hsp07hth100hdptr0000htl100hp0p30ffhscon00hip00000sbuf不定ie000000pcon00000p0p3 口輸出高電平,初值 07h 寫入堆棧指針 sp、清 0 程序計數(shù)器pc 和其余特殊功能寄存器。但初始復(fù)位不影響片內(nèi) ram 狀態(tài),只要該引腳保

5、持高電平,mcs-51 將循環(huán)復(fù)位。rst/vpd從高電平變成低電平時,單片機將從 0 號單元開始執(zhí)行程序。另外該引腳還具有復(fù)用功能。只要將vpd接+5v 電源,一旦 vcc電位突然或斷電,能保護片內(nèi) ram 中的信息不會丟失,復(fù)電后能正常工作。2.3.2 ale/(30 引腳引腳)地址鎖存信號地址鎖存信號_prog當(dāng)訪問外部存儲器時,p0 口輸出的低八位地址由 ale 輸出的控制信號鎖存到片外地址鎖存器,p0 口輸出地址低八位后,又能與片外地址/數(shù)據(jù)復(fù)用口,那么 p0 口上的信息究竟時地址還是數(shù)據(jù)完全又 ale 來定義,ale 高電平期間,p0 口上一般出現(xiàn)地址信息,在 ale 下降沿是,將

6、 p0 口上地址信息鎖存到片外地址鎖存器,在 ale 低電平期間 p0 口上一般出現(xiàn)指令和數(shù)據(jù)信息。平時不訪問片外存儲器時,該端也以六分之一的時鐘頻率固定輸出正脈沖。 因而亦可作系統(tǒng)其它芯片的時鐘源。ale 可驅(qū)動 8 個 ttl 門。2.3.3(29 腳腳)片外程序存儲器讀選通片外程序存儲器讀選通_psen低電平有效,8051 訪問片外程序存儲器時,程序計數(shù)器 pc 通過_psenp2 口和 p0 口輸出十六位指令地址,作為程序存儲器讀信號,輸出負(fù)脈_psen沖將相應(yīng)存儲單元的指令讀出并送到 p0 口上,供 8051 執(zhí)行。同樣可_psen驅(qū)動 8 個 ttl 門輸入。2.3.4/vpp(3

7、1 腳)內(nèi)部和外部程序存儲器選擇信號腳)內(nèi)部和外部程序存儲器選擇信號_ea對于 8051 來說,內(nèi)部有 4k 字節(jié)的程序存儲器,當(dāng)為高時,cpu 訪_ea問程序存儲器有兩種情況:a、地址小于 4k 時訪問內(nèi)部程序存儲器。b、地址大于 4k 時訪問外部程序存儲器。若接地,則不使用內(nèi)部程序存儲器,不管地址大小,取指時總是訪問_ea外部程序存儲器。對于 eprom 型的單片機,在 eprom 編程時,此引腳用于施加 21 伏編程電壓 vpp。2.42.4 i/o 口口8051 單片機有 4 個雙向 8 位 i/o 口 p0p3,p0 口為三態(tài)雙向口,負(fù)載能力為 8 個 lsttl 門電路,p1p3

8、為準(zhǔn)雙向口(用作輸入時,口鎖存器必須先寫“1”),負(fù)載能力為 4 個 lsttl 門電路。2.5 8051 定時定時/計數(shù)器計數(shù)器一般單片機內(nèi)部都設(shè)有定時/計數(shù)器,因為有的測控系統(tǒng)是按時間間隔定時控制的,如定時對物理過程(如溫度)的采樣測量等,雖然可以通過延時程序?qū)崿F(xiàn)定時,但這會降低 cpu 的工作效率。如果能利用一個可編程的實時時鐘獲得延時定時,就可以提高 cpu 的工作效率。另外,也有一些測控系統(tǒng)時根據(jù)外部信號的計數(shù)結(jié)果來實現(xiàn)控制的,必須對外部隨機時間(往往為脈沖信號)進行計數(shù)。因此,單片機內(nèi)部一般都設(shè)置可變成的定時/計數(shù)器,以簡化系統(tǒng)設(shè)計,提高系統(tǒng)功能。所謂可編程就是指可通過指令來確定或

9、改變其工作方式,應(yīng)包括以下幾個方面5:(1) 確定其工作方式是定時還是計數(shù);(2) 預(yù)置定時或計數(shù)初值;(3) 當(dāng)定時時間到或家戶終止時,要不要發(fā)中斷請求;(4) 如何啟動定時或計數(shù)器工作。2.5.12.5.1 定時定時/ /計數(shù)器結(jié)構(gòu)與工作原理計數(shù)器結(jié)構(gòu)與工作原理從圖 1-2(定時/計數(shù)器邏輯結(jié)構(gòu)圖)可以看出,2 個 16 位定時/計數(shù)器 t0和 t1,分別由 8 位計數(shù)器 th0、tl0 和 th1、tl1 構(gòu)成,他們都是以加“1”的方式完成計數(shù)。特殊功能寄存器 tmod 控制定時/計數(shù)器的工作方式,tcon 控制定時/計數(shù)器的啟動運行并記錄 t0、t1 的溢出標(biāo)志。通過對th0、tl0

10、和 th1、tl1 的初始化編程可以預(yù)置 t0、t1 的計數(shù)初值。通過對 tmod 和 tcon 的初始化編程可以分別置入方式字和控制字,以指定其工作方式并控制 t0、t1 按規(guī)定的工作方式計數(shù)。 t1 t0a)工作原理a、定時器當(dāng)設(shè)置為定時器工作方式時,計數(shù)輸入信號來自內(nèi)部振蕩信號,在每個機器周期內(nèi)定時器的計數(shù)器做一次“1”運算。因此定時器亦可視為計算機機器周期的計數(shù)器。而每個機器周期又等于 12 個振蕩脈沖,故定時器的工作 方式工作方式啟動溢出啟動溢出內(nèi)總線(8ah)h(8ch)h(8bh)cputl1(8 位)th0(8 位)tl0(8 位)tcon (88h)tmod(89h)(8dh

11、)hth1(8 位)t0 (p3.4)t1 (p3.5)定時/計數(shù)器邏輯結(jié)構(gòu)計數(shù)速率為振蕩頻率的(即 12 分頻)。若單片機的晶振主頻為 12mhz,121則計數(shù)周期為。如果定時器的計數(shù)器“1”產(chǎn)生溢出,則標(biāo)志著定時時s1間到。b、計數(shù)器當(dāng)設(shè)置為計數(shù)器工作方式時,計數(shù)輸入信號來自外部引腳 t0(p3.4)、t1(p3.5)上的計數(shù)脈沖,外部每輸入一個脈沖,計數(shù)器 th0、tl0(或 th1、tl1)做一次“1”運算。而在實際工作中,計數(shù)器由計數(shù)脈沖的下降沿觸發(fā),及 cpu 在每個機器周期的 s5p2 期間對外部輸入引腳 t0(t1)采樣,芮在 一個機器周期中采樣值位高電平,而在下一個機器周期中

12、采樣值為低電平,則緊跟著的再下一個機器周期的 s3p1 期間計數(shù)值就“+1”,完成一次計數(shù)操作。因此確認(rèn)一次外部輸入脈沖的有效跳變至少要花費 2 個機器周期,即 24 個振蕩周期,所以最高計數(shù)頻率為振蕩頻率的。為了確保計數(shù)脈沖不被丟失,則脈沖241的高電平及低電平均應(yīng)保持一個機器周期以上。對外部計數(shù)脈沖的基本要求如上圖所示,t為機器周期。cy不管時定時還是計數(shù)工作方式,定時器 t0 或 t1 再對內(nèi)部時鐘或外部脈沖計數(shù)時,不占用 cpu 的時間,除非產(chǎn)生溢出才可能中斷 cpu 的當(dāng)前操作。由此可見,定時/計數(shù)器是單片機內(nèi)部效率高且工作靈活的部件。計數(shù)器計數(shù)脈沖的基本要求 tcy tcyt1另外

13、,每個定時/計數(shù)器還有四種工作方式,即有四種邏輯結(jié)構(gòu)模式。其中工作方式 02 對 t0 和 t1 都是一樣的,而方式 3 對兩者是不同的。2.5.22.5.2 8051 定時器模式的工作定時器模式的工作8051 內(nèi)含有 2 個 16 位的定時計數(shù)器,稱為定時器 0 及定時器 1,如同一般定時計數(shù)器的功能,其主要有兩種作用:第一、執(zhí)行一段特定時間長短的計時。第二、可以計算由 t0 或 t1 引腳輸入的脈沖數(shù)。前者在應(yīng)用上可以產(chǎn)生正確的時間延遲及定時去執(zhí)行中斷服務(wù)例程,這是單片機在軟件控制程序上常用到的技巧,而后者的應(yīng)用則是計數(shù)器或是計數(shù)器的設(shè)計。 這兩個定時器本身都有 4 種工作模式可供使用:(

14、1)模式 0:13 位計時工作模式。(2)模式 1: 16 位計時工作模式。(3)模式 2: 具有自動重新加載計數(shù)值的 8 位計時工作模式。(4)模式 3: 在此模式工作時,定時器 1 本身停止計時的工作。而定時器 0 分為兩個獨立的 8 位定時器由 tl0 及 th0 來負(fù)責(zé)計時的任務(wù)。模式 0 到模式 2 中,定時器 0 和定時器 1 的使用方法都一樣,只有在模式3 時才不同。2.5.32.5.3 定時計數(shù)器相關(guān)控制寄存器定時計數(shù)器相關(guān)控制寄存器設(shè)計定時器相關(guān)控制寄存器說明如下表所示.(1)tcon 寄存器每個位都可按位尋址,可分別設(shè)置或清除,適當(dāng)?shù)乜刂七@些位便可控制定時器地動作。b7 b

15、6 b5 b4 b3 b2 b1 b0 tf1 tr1 tf0 tr0 ie1 it1 ie0 ie0 其中有關(guān)符號說明如下:a. tf1: tcon.7,定時器 1 溢位標(biāo)志,當(dāng)定時器計時終止產(chǎn)生溢位時,硬件會自動設(shè)為 1,而在執(zhí)行過中斷服務(wù)程序后,硬件會自動清除該位。b. tr1: tcon.6, 定時器 1 計時啟動位,通過軟件來設(shè)置或清除做啟動或停止計數(shù)的功能。c. tf0: tcon.5, 定時器 0 溢位標(biāo)志,其功能同 tf1。d. tr0: tcon.4, 定時器 0 定時啟動位,其功能同 tr1。e. ie1: tcon.3, 外部中斷 1(引腳 int1)的中斷設(shè)置標(biāo)志。當(dāng)

16、int1引腳由外部送入中斷信號,而硬件檢測到此信號時,會將此位設(shè)置。在執(zhí)行過中斷服務(wù)例程后,硬件會自動清除此位。f. it1: tcon.2, 外部中斷 1 的中斷信號類型設(shè)置,當(dāng) it1=1 時,中斷信號位負(fù)緣觸發(fā)。若 it1=0 時則為低電平觸發(fā)。g. ie0: tcon.1, 外部中斷 0(引腳 int0)的中斷設(shè)置,當(dāng) int0 引腳由外部送入中斷信號,而硬件檢測到此信號時將此位設(shè)置,在執(zhí)行過中斷服務(wù)程序后,硬件自動清除此位。h. it0: tcon.0, 外部中斷 0 的中斷信號類型設(shè)置,當(dāng) it0=1 時,中斷信號為負(fù)緣觸發(fā)。若 it0=0 時,則為低電平觸發(fā)。定時器 1定時器 0

17、定時計數(shù)器相關(guān)控制寄存器及其說明(2)tmod 計時模式選擇寄存器 此寄存器不可按位尋址,其結(jié)構(gòu)如下:b7 b6 b5 b4 b3 b2 b1 b0gate c/t m1 m0 gate c/t m1 m0其中的有關(guān)符號說明如下:a. gate: 定時器動作的開關(guān)控制位,當(dāng) gate=0 時,定時器在tr0=1 或 tr1=1 時會工作。而當(dāng) gate=1 時,且 tr0=1 或 tr1=1,定時器要在 int0 或 int1 引腳成為高電平時才會執(zhí)行計時的工作。b. c/t: 計時功能或計數(shù)功能的選擇位,c/t=0 執(zhí)行計時工作,而c/t=1 時才執(zhí)行計數(shù)的功能。c. m0、m1: 工作模式

18、選擇,其設(shè)置情況說明如表 1-4 所示。名 稱地址功能tcon88h定時器控制寄存器tmod89h定時器工作模式選擇寄存器th08ch定時器 0 高 8 位計時寄存器tl08ah定時器 0 低 8 位計時寄存器th18dh定時器 1 高 8 位計時寄存器tl18bh 定時器 1 低 8 位計時寄存器(3)ie: 中斷啟用寄存器 可按位尋址,地址a8h,用來啟用各種中斷信號的產(chǎn)生,各個位說明如下:b7 b6 b5 b4 b3 b2 b1 b0 ea et2 es et1 ex1 et0 ex0其中的有關(guān)符號說明如下:a. ea(ie.7): ea=0 時,所有中斷禁用(中斷不產(chǎn)生);ea=1 時

19、,各中斷的產(chǎn)生由個別的啟用位決定。b. (ie.6): 保留。c.et2(ie.5): 啟用定時器 2 溢位的中斷(8052 用)。m1 m0 工作模式0 0 模式 00 1 模式 1 1 0 模式 21 1 模式 3tmod 寄存器的 b1、b0 位的設(shè)置及其說明d. es (ie.4) : 啟用串行端口的中斷(es1 啟用,es=0 禁用)。e.et1(ie.3): 啟用定時器 1 中斷。f.ex1(ie.2): 啟用外部中斷 int1 的中斷。g. et0(ie.1): 啟用定時器 0 中斷。h. ex0(ie.0): 啟用外部中斷 int0 的中斷。bled 原理原理選用的是共陰極的

20、led發(fā)光二極管的陰極連在一起的稱為共陰極顯示器。通常的七段 led 顯示塊中有八個發(fā)光二極管,故也稱為八段顯示器。其中七個發(fā)光二極管構(gòu)成七筆字型“8”一個發(fā)光二極管構(gòu)成小數(shù)點。七段顯示塊與單片機接口非常容易。只要將一個八位并行輸出口與顯示塊的發(fā)光二極管相連即可。八位并行輸出口輸出不同的字節(jié)數(shù)據(jù)即可獲得不同的數(shù)字或字符。c蜂鳴器蜂鳴器1、蜂鳴器模擬輸出do,re,mi.的音階聲音。蜂鳴器發(fā)聲過程仍由按鍵啟動,定時器控制鳴叫頻率。2、據(jù)不同音階的頻率,計算出定時器的定時初值和定時周期。d、鍵盤掃描、鍵盤掃描1. 鍵盤輸入信息的主要過程鍵盤輸入信息的主要過程a、cpu 判斷是否有鍵按下;b、確定按

21、下的是哪一個鍵;c、把此鍵代表的信息翻譯成計算機所能識別的代碼,如 ascii 或其他特征碼。以上 1.2 和 1.3 是由軟件來完成的,所以用非編碼鍵盤。2掃描程序查詢的內(nèi)容為:掃描程序查詢的內(nèi)容為:a、查詢是否有鍵按下 首先對 p0 口進行初始化 p0=0 xf0,利用 if 語句進行判斷,判斷表達式是p1!=0 xf0,如果為真則執(zhí)行 key scan()子程序,如果為假則執(zhí)行 else.b、查詢按下鍵的行列位置。利用 key_scan()來進行鍵盤查詢檢測,先判斷列,在判斷行,具體見程序。c、對得到的行號和列號進行譯碼,得到鍵值。d、鍵盤的判斷是均進行延時,以防止鍵盤抖動的干擾。利用

22、key_scan()來進行鍵盤查詢檢測。e e、以定時器產(chǎn)生各種頻率的聲音、以定時器產(chǎn)生各種頻率的聲音原理及說明原理及說明由于定時器可以產(chǎn)生各種頻率的聲音,所以由喇叭發(fā)出“do”、“re”、“me”.的音階。定時器 0 工作于模式 0,計時時間長短所發(fā)音的頻率而 定,下表列出各個音符對應(yīng)的頻率值: 簡譜12345671234567音符c5d5e5f5g5a5b5c6d6e6f6g6a6b6頻率523 5876596987848809871046117413181396156717601975由頻率值推得定時器計數(shù)初值,可由以下關(guān)系式求得: )(/1sft2/(int)tco 32)8192(0

23、0colo32/ )8192(cohi其中符號的含義說明如下:頻率值f :方波寬度,以表示ts:定時器所計數(shù)的次數(shù)co:計數(shù)初值低字節(jié)lo:計數(shù)初值高字節(jié)hi經(jīng)計算得到以下一些數(shù)據(jù):xtal12 mhzf523 co=956 th0 value=226 tl0 value=4f587 co=851 th0 value=229 tl0 value=13f659 co=758 th0 value=232 tl0 value=10f698 co=716 th0 value=233 tl0 value=20f784 co=637 th0 value=236 tl0 value=3f880 co=568

24、 th0 value=238 tl0 value=8f987 co=506 th0 value=240 tl0 value=6f1046 co=478 th0 value=241 tl0 value=2f1174 co=425 th0 value=242 tl0 value=23f1318 co=379 th0 value=244 tl0 value=5f1396 co=358 th0 value=244 tl0 value=26f1567 co=319 th0 value=246 tl0 value=1f1760 co=284 th0 value=247 tl0 value=4f1975 co=253 th0 value=248 tl0 value=3附錄附錄 1:流程圖:流程圖確定鍵盤位置執(zhí)行 else判斷式為真判斷式為假將鍵值 k 賦予 led 子程序,使 led 顯示相應(yīng)數(shù)值,并激活計數(shù)器,延時1ms,當(dāng)計數(shù)器計數(shù)完畢后,產(chǎn)生溢出中斷,觸發(fā)發(fā)聲程序,發(fā)聲程序調(diào)用相應(yīng)數(shù)組中的相應(yīng)發(fā)聲頻率,發(fā)聲,并進行延時 1ms.主程序p0 初始化,計數(shù)器選擇方式 1 下工作,開中斷 t0,計數(shù)器初始化。執(zhí)行 while 條件語句p0 初始化,判斷鍵盤是否被按下附錄附錄 2:原理圖:原理圖附錄附錄 3:程序清單:程序清單#include #include #def

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論