![單片機課程設計簡易電子琴_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/27/65557054-a9dd-47e4-ad2f-00df79f7d949/65557054-a9dd-47e4-ad2f-00df79f7d9491.gif)
![單片機課程設計簡易電子琴_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/27/65557054-a9dd-47e4-ad2f-00df79f7d949/65557054-a9dd-47e4-ad2f-00df79f7d9492.gif)
![單片機課程設計簡易電子琴_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/27/65557054-a9dd-47e4-ad2f-00df79f7d949/65557054-a9dd-47e4-ad2f-00df79f7d9493.gif)
![單片機課程設計簡易電子琴_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/27/65557054-a9dd-47e4-ad2f-00df79f7d949/65557054-a9dd-47e4-ad2f-00df79f7d9494.gif)
![單片機課程設計簡易電子琴_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/27/65557054-a9dd-47e4-ad2f-00df79f7d949/65557054-a9dd-47e4-ad2f-00df79f7d9495.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、簡易電子琴設計徐州師范大學物電學院本科生課程設計課 程 名 稱: 單片機課程設計 題 目: 簡易電子琴 專 業(yè) 班 級: 07物41 學 生 姓 名: 學 生 學 號: 日 期: 2010-6-27 指 導 教 師: 物電學院教務部印制目錄摘要.abstract.1 引言1.1 課程設計的目的.1.2 課程設計的內容.2 系統(tǒng)硬件設計2.1 原理圖.2.2 系統(tǒng)板硬件連線.2.3 主要芯片簡介.2.4 lcd顯示器2.5 三極管放大電路.2.6 時鐘電路.2.7 復位電路2.8 鍵盤方案3 系統(tǒng)軟件設計.3.1 理論基礎3.2 系統(tǒng)流程圖4 設計結果及分析.5 總結.參考文獻附錄 主要程序代碼
2、.摘要摘要:用電子琴可以演奏出各種美妙的音樂,而音樂是由音符組成,不同的音符又是由相應頻率的振動產生,而用單片機來產生不同的頻率非常方便,可以利用單片機的定時/計數(shù)器t0來產生這樣方波頻率信號。用at89s52單片機作為主控核心,設計了一個簡單電子琴,其特點是運行穩(wěn)定、硬件電路簡單、性價比高,具有一定的實用價值。 關鍵詞:單片機;電子琴;按鍵;揚聲器 abstract: the electronic organ can play a variety of wonderful music which are composed by the musical notes. and the diffe
3、rent notes are produced by the vibration of corresponding frequencies. its very convenient for the single-chip to generate different frequencies by the timer/counter t0. in this paper, we design an electronic organ with at89s52. stable circulation, simple hardware circuit and high performance-to-pri
4、ce ratio are characteristics of the design. key words: single-chip; electronic organ; button; speaker引言 電子琴是現(xiàn)代電子科技與音樂結合的產物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可代替的一部分。本文的主要內容是用at89s52單片機為核心控制元件,設計一個電子琴。以單片機作為核心,與按鍵,揚聲器等模塊組成核心主控制模塊。 本文主要對使用單片機設計簡單電子琴進行了分析,并介紹了基于單片機電子琴系統(tǒng)的
5、硬件組成。利用單片機產生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。本文分別從原理圖,主要芯片,各模塊原理及程序調試來詳細闡述。 一首音樂是許多不同的音階組成的,而每一個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器t0來產生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。1.1 課程設計的目的鞏固和運用所學課程,理論聯(lián)系實際,提高分析、解決計算機技術實際問題的獨立工作能力,通過對一個簡易的八音符電子琴的設計,進一步加深對單片機原理以及數(shù)字電路
6、應用技術方面的了解與認識,進一步熟悉數(shù)字電路系統(tǒng)設計、制作與調試的方法和步驟。鞏固所學課堂知識,理論聯(lián)系實際,提高分析、解決計算機技術實際問題的獨立工作能力。1.2 課程設計的內容1. 通過八個按鍵,分別控制發(fā)出do,re,mi,fa,sao,la,xi,do 八個音符。2. 顯示屏上顯示所按的鍵,如按下第一個鍵,屏幕上顯示do,當選擇播放歌曲時,顯示歌曲的名字。3. 另有兩個按鍵,可以選擇“彈奏模式”,或者“演奏模式”,選擇“演奏模式”時,自動播放事前輸入的歌曲神話。系統(tǒng)硬件設計2.1原理圖圖2-12.2系統(tǒng)板硬件連線 系統(tǒng)板硬件連線如圖2-1所示,發(fā)生模塊,及l(fā)cd顯示模塊連線如下1. “
7、單片機系統(tǒng)”的p3.0端口用導線連接到“音頻放大模塊”區(qū)域中的spk端口上;2. “單片機系統(tǒng)”的p2.0-p2.7端口用導線連接到“4x4行列式按鍵”區(qū)域;3. “單片機系統(tǒng)”的p0.0-p0.7端口用八芯的排阻連接到液晶顯示屏上。2.3 主要芯片簡介2.3.1 at89s52 簡介at89s52 是一種低功耗、高性能cmos 8位微控制器,具有 8k 在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非 易失性存儲器技術制造,與工業(yè)80c51 產品指令和引腳完 全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng) 可編程
8、flash,使得at89s52為眾多嵌入式控制應用系統(tǒng)提 供高靈活、超有效的解決方案。 at89s52具有以下標準功能: 8k字節(jié)flash,256字節(jié)ram, 32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口, 片內晶振及時鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,cpu 停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,ram內容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止。與mcs-51單片機產品兼容 、8k
9、字節(jié)在系統(tǒng)可編程flash存儲器、 1000次擦寫周期、 全靜態(tài)操作:0hz33mhz 、 三級加密程序存儲器 、 32個可編程i/o口線 、三個16位定時器/計數(shù)器 八個中斷源 、全雙工uart串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時器 、雙數(shù)據(jù)指針 、掉電標識符 。2.3.2 at89s52的引腳及功能圖2-3p0 口:p0口是一個8位漏極開路的雙向i/o口。作為輸出口,每位能驅動8個ttl邏 輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,p0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,p0不具有內部上拉電阻。在flash編程時
10、,p0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 p1 口:p1 口是一個具有內部上拉電阻的8 位雙向i/o 口,p1 輸出緩沖器能驅動4 個ttl 邏輯電平。對p1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(p1.0/t2)和時器/計數(shù)器2 的觸發(fā)輸入(p1.1/t2ex),具體如下表所示。在flash編程和校驗時,p1口接收低8位地址字節(jié)。 引腳號第二功能 p1.0 t2(定時器/計數(shù)器t2的外
11、部計數(shù)輸入),時鐘輸出 p1.1 t2ex(定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制) p1.5 mosi(在系統(tǒng)編程用) p1.6 miso(在系統(tǒng)編程用) p1.7 sck(在系統(tǒng)編程用) p2 口:p2 口是一個具有內部上拉電阻的8 位雙向i/o 口,p2 輸出緩沖器能驅動4 個ttl 邏輯電平。對p2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(iil)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行movx dptr)時,p2 口送出高八位地址。在這種應用中,p2 口使用很強的
12、內部上拉發(fā)送1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲器時,p2口輸出p2鎖存器的內容。在flash編程和校驗時,p2口也接收高8位地址字節(jié)和一些控制信號。 p3 口:p3 口是一個具有內部上拉電阻的8 位雙向i/o 口,p3 輸出緩沖器能驅動4 個ttl 邏輯電平。對p3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(iil)。p3口亦作為at89s52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,p3口也接收一些控制信號。 端口引腳 第二功能 p3.0 rxd(串行輸入口) p3
13、.1 txd(串行輸出口) p3.2 into(外中斷0) p3.3 int1(外中斷1) p3.4 to(定時/計數(shù)器0) p3.5 t1(定時/計數(shù)器1) p3.6 wr(外部數(shù)據(jù)存儲器寫選通) p3.7 rd(外部數(shù)據(jù)存儲器讀選通) 此外,p3口還接收一些用于flash閃存編程和程序校驗的控制信號。 rst復位輸入。當振蕩器工作時,rst引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。 ale/prog當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ale仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。
14、要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。 對flash存儲器編程期間,該引腳還用于輸入編程脈沖(prog)。 如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh單元的d0位置位,可禁止ale操作。該位置位后,只有一條movx和movc指令才能將ale激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ale禁止位無效。 psen程序儲存允許(psen)輸出是外部程序存儲器的讀選通信號,當at89c52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次psen有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次psen信號。 ea/vpp外部訪問允許,
15、欲使cpu僅訪問外部程序存儲器(地址為0000h-ffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復位時內部會鎖存ea端狀態(tài)。 如ea端為高電平(接vcc端),cpu則執(zhí)行內部程序存儲器的指令。 flash存儲器編程時,該引腳加上+12v的編程允許電源vpp,當然這必須是該器件是使用12v編程電壓vpp。2.4 lcd顯示器1602字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線 vcc(15腳)和地線gnd(16腳),其控制原理與14腳的lcd完全一樣,其中:引腳1:vss,一般接地;引腳2:vdd,接電源(+5v);引腳3:v
16、0,液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,使用時可以通過一個10k的電位器調整對比度)。引腳4:rs,rs為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。引腳5:r/w,r/w為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。引腳6:e,e(或en)端為使能(enable)端,下降沿使能。引腳7-10:底4位三態(tài),雙向數(shù)據(jù)總線0-3位;引腳1114:高4位三態(tài),雙向數(shù)據(jù)總線47位;引腳15:bla,背光電源正極;引腳16:blk,背光電源負極。寄存器選擇控制表:rsr/w操作說明00寫入指令寄存器(清除
17、屏等)01讀busy flag(db7),以及讀取位址計數(shù)器(db0db6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)2.5三極管放大電路圖2-5放大電路輸出原理圖此部分的放大電路簡單容易實現(xiàn)??梢圆捎靡粋€大功率pnp型硅管8550, 利用“分壓偏置式工作點穩(wěn)定直流通路”,達到了對靜態(tài)工作點的穩(wěn)定。分壓電阻分別選擇1k和5.5k。蜂鳴器一端接+5v電壓,一端接晶體管的發(fā)射極。由p1.0輸出預定的方波,加到晶體管進行放大,再輸出到嗡寧器,很好的實現(xiàn)了頻率、聲音的轉換。2.6時鐘電路此系統(tǒng)的時鐘電路設計是采用的內部方式,即利用芯片內部的振蕩電路。mcs-51內部有一個用于構成振蕩
18、器的高增益反相放大器。引腳xtal1和xtal2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構成一個自激振蕩器。外接晶體諧振器以及電容cx1和cx2構成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為11.0592 mhz,電容應盡可能的選擇陶瓷電容,電容值約為30f。在焊接刷電路板時,晶體振蕩器和電容應盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。圖2-6 msc-51片內振蕩電路2.7復位
19、電路ms-51的復位是由外部的復位電路來實現(xiàn)的。片內復位電路是復位引腳rst通過一個斯密特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機器周期的s5p2,由復位電路采樣一次。復位電路通常采用上電自動復位和按鈕復位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復位電路, 如圖7所示。當時鐘頻率選用11.0592mhz時,c取22f,rs約為200, rk約為1k。圖2-7為復位電路的原理圖。圖2-7 復位電路原理圖62.8鍵盤方案此系統(tǒng)琴鍵輸入是通過獨立式鍵盤來完成的。由于8052單片機的八位i/o口足以能實現(xiàn)控制c調各音階的輸出,并且獨立式鍵盤的編程容易易懂,結構簡單,實現(xiàn)起來方便,
20、而且每個按鍵單獨占有一根i/o接口線,每個i/o口的工作狀態(tài)互不影響,所以采用獨立式鍵盤。p2.0p2.7 口分別對應琴鍵17輸入,如下圖所示。2.8.1關于鍵盤的抖動問題的分析和解決當用手按下一個鍵時,如圖4所示,往往按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況;在釋放一個鍵時,也回會出現(xiàn)類似的情況。這就是抖動。抖動的持續(xù)時間隨鍵盤材料和操作員而異,不過通??偸遣淮笥?0ms。很容易想到,抖動問題不解決就會引起對閉合鍵的識別。用軟件方法可以很容易地解決抖動問題,這就是通過延遲10ms來等待抖動消失,這之后,在讀入鍵盤碼。鍵按下前沿抖動后沿抖動閉合穩(wěn)定圖2-8-1 鍵抖動信號波形系
21、統(tǒng)軟件設計3.1理論基礎單片機11.0592晶振,高中低音符與計數(shù)t0有關的計數(shù)值如下表所示3.2系統(tǒng)程序流程圖設計結果與分析單片機的頻率和聲音輸出的原理是,利用琴鍵控制定時器的開中斷和閉中斷,即實現(xiàn)發(fā)音和閉音。在此期間再通過對定時器的定時時間進行控制來產生不同頻率的方波,驅動功放發(fā)出不同音階的聲音。把c調中相應琴鍵對應的音符變換為定常數(shù),作為數(shù)據(jù)表格存放在存儲器中。由程序查表得到定時常數(shù),用以控制定時器產生方波的頻率。當下一個琴鍵按下時,再查下此琴鍵所對應音符的定時常數(shù)。依次進行下去,就可以演奏出自己所要的歌曲。 單片微型計算機室大規(guī)模集成電路技術發(fā)展的產物,屬第四代電子計算機,它具有高性能
22、,體積小,價格低廉,穩(wěn)定可靠,應用廣泛的特點。他的應用必定導致傳統(tǒng)的控制技術從根本上發(fā)生變革。因此,單片機的開發(fā)應用已成為高科技和工程領域的一項重大課題??偨Y經(jīng)過努力,簡易電子琴的設計基本上完成了。在整個設計過程中,包括前期中期和后期,我都有著許多不同的體會:1) 這個設計的基本是接觸一門新的語言并加以應用,對于我來說,沒有想到的是入手的速度比我的預料快,在以前編程的基礎上,從接觸到開始動手編程的時間得到了很大的縮短。知識的接收速度在很大的程度上決定了動手的時間。2)通過這個程序設計讓我學會一種新的語言,對數(shù)字系統(tǒng)結構也有了更進一步的了解和認識,對我以后的學習有很大的幫助。希望其他人在看再做類
23、似設計時有所借鑒。通過幾天的課程設計,我對單片機原理及應用,c語言等系列知識都有了一定的了解。使用單片機技術開發(fā)頁面的能力也有了很大提高。 在整個設計過程中,有很多人對任務的完成給予了重要的支持和幫助。感謝老師給了我本次設計的機會并提供指導;感謝許多同學在我此課程設計遇到問題時給我的幫助使我能夠順利地進行設計的工作;論壇中有很多認識不認識的朋友也都為我的設計提出了很寶貴的建議,同樣在這里感謝他們。參考文獻1陳明螢,8051單片機課程設計實訓教材m.北京:清華大學出版社2003年9月.2徐新艷,單片機原理、應用與實踐m.北京:高等教育出版社,2005年3月.3吳金戌,沈慶陽,郭庭吉,8051單片
24、機實踐與應用m.第一版,北京:清華大學出版社,2002年.4馮博琴,微型計算機原理與接口技術m.清華大學出版社,2004.5張毅剛,mcs-51單片機應用設計m.哈爾濱工業(yè)大學出版社,2004.6 張友德 單片微型機原理,應用與實驗(第五版),2006.7 謝自美. 電子線路設計-實驗-測試m .武漢:華中科技大學出版社, 2000.附錄:主要程序代碼#include #define uchar unsigned char #define uint unsigned int#define ulong unsigned longuchar timer0h, timer0l, time,f1,f2
25、,num,f3;sbit speaker=p31; /喇叭輸出腳sbit key1= p24;sbit key2= p25;sbit key3= p26;sbit key4= p27;sbit key5= p23;sbit key6= p22;sbit key7= p21;sbit key8= p20;sbit key9= p37;sbit key10=p36;sbit lcden=p12;sbit lcdrs=p10;sbit lcdrw=p11;uchar th0_f; /在中斷中裝載的t0的值高8位uchar tl0_f; /在中斷中裝載的t0的值低8位uchar code table1
26、=xznu okw;uchar code table2=electronic organ;uchar code table3=play mode;uchar code table4=listen mode;uchar code table5= ;uchar code table6=shen hua ;uchar code table7= ;/ 頻率-半周期數(shù)據(jù)表 高八位 本軟件共保存了四個八度的28個頻率數(shù)據(jù)code unsigned char freqh = 0xf2, 0xf3, 0xf5, 0xf5, 0xf6, 0xf7, 0xf8, /低音1234567 0xf9, 0xf9, 0x
27、fa, 0xfa, 0xfb, 0xfb, 0xfc, 0xfc,/1,2,3,4,5,6,7,i 0xfc, 0xfd, 0xfd, 0xfd, 0xfd, 0xfe, /高音 234567 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff; /超高音 1234567 / 頻率-半周期數(shù)據(jù)表 低八位code unsigned char freql = 0x42, 0xc1, 0x17, 0xb6, 0xd0, 0xd1, 0xb6, /低音1234567 0x21, 0xe1, 0x8c, 0xd8, 0x68, 0xe9, 0x5b, 0x8f, /1,2,
28、3,4,5,6,7,i 0xee, 0x44, 0x6b, 0xb4, 0xf4, 0x2d, /高音 234567 0x47, 0x77, 0xa2, 0xb6, 0xda, 0xfa, 0x16; /超高音 1234567 /世上只有媽媽好數(shù)據(jù)表 要想演奏不同的樂曲, 只需要修改這個數(shù)據(jù)表code unsigned char sszymmh = 6,0,2,3,1,2,7,0,2,7,0,1,6,0,1,7,0,1,1,1,1,2,1,2,3,1,4,6,0,1,6,0,2,6,1,2,5,1,1,6,1,1,5,1,1,2,1,1,3,1,8,6,0,1,6,0,2,6,1,2,5,1,
29、2,2,1,1,3,1,1,4,1,1,3,1,3,2,1,1,1,1,4,6,0,2,3,1,2,2,1,2,7,0,1,6,0,8,6,0,2,3,1,2,7,0,4,6,0,1,7,0,1,1,1,2,2,1,1,3,1,4,6,0,1,6,0,2,6,1,2,5,1,1,6,1,1,5,1,1,2,1,1,3,1,8,6,0,1,6,0,2,6,1,2,5,1,1,2,1,1,3,1,1,4,1,1,3,1,4,1,1,4,6,0,2,3,1,2,2,1,3,7,0,2,6,0,8,6,0,1,7,0,1,1,1,1,2,1,1,3,1,1,1,1,1,7,0,2,5,0,2,6,0,
30、1,1,1,1,2,1,1,3,1,1,3,1,2,6,0,1,7,0,1,1,1,1,2,1,1,3,1,1,1,1,1,7,0,2,5,0,2,6,0,1,1,1,1,2,1,1,1,1,1,1,1,2,6,0,1,7,0,1,1,1,1,2,1,1,3,1,1,1,1,1,7,0,2,5,0,2,6,0,1,1,1,1,2,1,1,3,1,1,3,1,2,6,0,1,7,0,1,1,1,1,2,1,1,3,1,1,1,1,1,7,0,2,5,0,2,6,0,1,1,1,1,2,1,1,1,1,1,1,1,4,6,0,1,1,1,1,2,1,1,1,1,1,1,1,2,0,0,0/一個音符
31、有三個數(shù)字。前為第幾個音、中為第幾個八度、后為時長(以半拍為單位)。/6, 1, 3代表:, 中音, 個半拍;/5, 1, 1代表:, 中音, 個半拍;/3, 1, 2代表:, 中音, 個半拍;/5, 1, 2代表:, 中音, 個半拍;/1, 2, 2代表:, 高音, 個半拍;/;/- void t0int() interrupt 1 /t0中斷程序,控制發(fā)音的音調tr0 = 0; /先關閉t0speaker = !speaker; /輸出方波, 發(fā)音th0 = timer0h; /下次的中斷時間, 這個時間, 控制音調高低tl0 = timer0l;tr0 = 1; /啟動t0/-void
32、delay1(unsigned char t) /延時程序,控制發(fā)音的時間長度unsigned char t1;unsigned long t2;for(t1 = 0; t1 t; t1+) /雙重循環(huán), 共延時t個半拍 for(t2 = 0; t2 0;x-)for(y=110;y0;y-); void write_com(uchar com)/1602寫命令lcdrs=0;p0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)/1602寫數(shù)據(jù)lcdrs=1;p0=date;delay(5);lcden=1;d
33、elay(5);lcden=0;/按鍵控制音階聲音輸出(電子琴)void main(void) / 主程序 uchar k, i;init();while(1) if(key9=0) delay(8); if(key9=0)f1+;if(f12)f1=f2=0;while(!key9); if(key10=0) delay(8); if(key10=0)f2+;if(f21)f1=f2=0;while(!key10);if(f1=0&f2=0)write_com(0x80);for(num=0;num3;num+)write_date(table5num);write_com(0x80+0x0
34、3);for(num=0;num9;num+)write_date(table1num);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table2num);if(f1=1&f2=0)write_com(0x80);write_date(0x7e);for(num=0;num11;num+)write_date(table4num); write_com(0x80+0x40);write_date(table51);write_com(0x80+0x41);for(num=0;num9;num+)write_date(table3nu
35、m);for(num=0;num6;num+)write_date(table5num);if(f1=1&f2=1)write_com(0x80);write_date(table51);write_com(0x81);for(num=0;num11;num+)write_date(table4num);write_com(0x80+0x40);write_date(0x7e);for(num=0;num9;num+)write_date(table3num);if(f1=2&f2=1)write_com(0x01);write_com(0x80);for(num=0;num3;num+)wr
36、ite_date(table5num);write_com(0x80+0x03);for(num=0;num9;num+)write_date(table3num);while(1)if(key1=0) delay(8); if(key1=0)timer0h = freqh7; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freql7;time=2; song();write_com(0x80+0x40+0x06);write_date(0x44);write_date(0x55);write_date(0x4f);while(!key1);if(key2=0) delay(8); if(k
37、ey2=0)timer0h = freqh8; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freql8;time=2; song();write_com(0x80+0x40+0x06);write_date(0x52);write_date(0x45);write_date(table51);while(!key2); if(key3=0) delay(8); if(key3=0)timer0h = freqh9; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freql9;time=2; song();write_com(0x80+0x40+0x06);write_date(0x4d);
38、write_date(0x49);write_date(table51);while(!key3); if(key4=0) delay(8); if(key4=0)timer0h = freqh10; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freql10;time=2; song();write_com(0x80+0x40+0x06);write_date(0x46);write_date(0x41);write_date(table51);while(!key4); if(key5=0) delay(8); if(key5=0)timer0h = freqh11; /從數(shù)據(jù)表中讀出頻率數(shù)值 timer0l = freql11;time=2; song();write_com(0x80+0x40+0x06);write_date(0x53);write_date(0x4f);write_date(0x55);while(!key5); if(key6=0) de
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年式臨時建筑施工分包合同書
- 2025年交通基礎設施改善協(xié)商協(xié)議
- 2025年住宅銷售合同附加協(xié)議書策劃樣本
- 2025年綠色建筑設計與施工一體化合同文本版
- 2025年企業(yè)資產出售合同范文
- 2025年信息安全培訓合作框架協(xié)議
- 2025年二手住房公積金住房買賣協(xié)議
- 2025年支付安全協(xié)議策劃創(chuàng)新發(fā)展報告
- 2025年制造合作合同范本
- 2025年勞動合同簽訂流程與實務指導
- 醫(yī)院信息系統(tǒng)HIS知識培訓教學課件-HIS的主要內容
- 硝苯地平控釋片
- 合成聚氨酯原料及助劑生產項目
- 四川省瀘州市2019年中考物理考試真題與答案解析
- 部編版語文六年級下冊全套單元基礎??紲y試卷含答案
- 2023年保險養(yǎng)老地產行業(yè)分析報告
- 保險公司防火應急預案
- 動物檢疫技術-動物檢疫的分類(動物防疫與檢疫技術)
- 2024醫(yī)師資格考試考生誠信考試承諾書
- 煤礦職業(yè)衛(wèi)生培訓課件2023
- 根據(jù)銅價計算各種電纜參考價格
評論
0/150
提交評論