版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)電子琴設(shè)計(jì)_畢業(yè)設(shè)計(jì)說(shuō)明書(shū)單片機(jī)電子琴設(shè)計(jì)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)摘 要 現(xiàn)在要求人才發(fā)展的全面性以及精神文化的需求,音樂(lè)學(xué)習(xí)已經(jīng)成為很多人生活中必不可少的一部分。 電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)融入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用at89c51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)鍵盤(pán)和揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡(jiǎn)單,軟件功能完善,控制系統(tǒng)可靠,性?xún)r(jià)比較高等,具有
2、一定的實(shí)用和參考價(jià)值。abstract in modern times,it demands the talent of comprehensive. electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments.it played an important role in morden music.scm has powerful control functions and flexible programming character
3、istics.it has converged with modern peoples lives,become an irreplaceable part.the main content is at89c51 control of the core components,design of a electronic organ.scm as a host to the core,with the keyboard,speaker. the system is steady,its simple hardware circuits,software functions,reliability
4、 of control system and high cost performance is its advantages.it also has certain practical and reference value.關(guān)鍵字 電子琴 單片機(jī) 性?xún)r(jià)比 揚(yáng)聲器 音樂(lè) electronic organ .scm high cost performance music第一章 緒 論單片機(jī)園地里,單片機(jī)品種異彩紛呈,爭(zhēng)奇斗艷。有8位、16位甚至32位機(jī),但8位單片機(jī)仍以它的價(jià)格低廉、品種齊全、應(yīng)用軟件豐富、支持環(huán)境充分、開(kāi)發(fā)方便等特點(diǎn)而占著主導(dǎo)地位。單片機(jī)是把微處理器、存儲(chǔ)器、輸入、輸出接口電路
5、以及定時(shí)器計(jì)數(shù)器等集成在一起的集成電路芯片,它具有體積小,價(jià)格低,可靠性高和易于嵌入式應(yīng)用等特點(diǎn),極實(shí)用于智能儀器儀表和工業(yè)測(cè)控系統(tǒng)的前端裝置。從生活和生產(chǎn)的各個(gè)領(lǐng)域中,凡是有自動(dòng)控制要求的地方都會(huì)有單片機(jī)的身影出現(xiàn)?,F(xiàn)在,盡管單片機(jī)的應(yīng)用已經(jīng)很普遍了,但仍有許多可以用單片機(jī)控制而尚未實(shí)現(xiàn)的項(xiàng)目。因此,單片機(jī)的應(yīng)用大有可以想象和拓展的空間。單片機(jī)的應(yīng)用有利于產(chǎn)品的小型化,多功能,和智能化,有利于提高勞動(dòng)效率,減輕勞動(dòng)強(qiáng)度,提高產(chǎn)品質(zhì)量,改善勞動(dòng)環(huán)境,減少能耗和材料消耗,保證安全等。但是,單片機(jī)應(yīng)用的意義絕不僅限于踏的廣闊范圍以及所帶來(lái)的經(jīng)濟(jì)效益上,更重要的意義還在于:?jiǎn)纹瑱C(jī)的應(yīng)用正從根本上改變
6、著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。隨單片機(jī)應(yīng)用的推廣普及,微控制技術(shù)必將不斷發(fā)展、日益完善和更加充實(shí)。一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。通過(guò)本設(shè)計(jì)能使我能夠?qū)﹄娮与娐?、電子元器件、印制電路板等方面的知識(shí)有進(jìn)一步的認(rèn)識(shí),可以獨(dú)立對(duì)其進(jìn)行測(cè)試與檢查。能使我更加熟悉at89c51單片機(jī)的內(nèi)部結(jié)構(gòu)和功能,合理使用其內(nèi)部寄存器,能夠完成相關(guān)軟件編程設(shè)計(jì)工作。能夠
7、實(shí)現(xiàn)預(yù)期功能,能夠?qū)ο到y(tǒng)進(jìn)行快速的調(diào)試,并能夠?qū)Τ霈F(xiàn)的功能故障進(jìn)行分析,及時(shí)修改相關(guān)軟硬件。對(duì)軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。第二章 設(shè)計(jì)內(nèi)容2.1電子琴發(fā)音原理 樂(lè)器的結(jié)構(gòu)較為復(fù)雜,音源是由晶體管產(chǎn)生的電振動(dòng),并通過(guò)音色回路而產(chǎn)生各種音色;同時(shí)由周波數(shù)調(diào)制產(chǎn)生顫音效果,由振幅調(diào)制產(chǎn)生各種樂(lè)器的音效。電子琴的外形很像普通鍵盤(pán)樂(lè)器,只是某些種類(lèi)多一排腳踏鍵盤(pán),而且手觸鍵盤(pán)也往往分為兩層。鍵盤(pán)式電子琴聲音豐富、優(yōu)美,有變音裝置,能發(fā)出多種不同的音色,可以作為獨(dú)特的樂(lè)器進(jìn)行演奏,還能代替?zhèn)鹘y(tǒng)的風(fēng)琴、鋼琴供音樂(lè)課教學(xué)。 傳統(tǒng)樂(lè)器的聲音是通過(guò)機(jī)械的方法產(chǎn)
8、生的,電子琴的聲音是用“電”產(chǎn)生的。附圖21是一般電子琴結(jié)構(gòu)原理的方框圖。 電子琴原理框圖振蕩器是根據(jù)需要產(chǎn)生一定頻率的振蕩信號(hào),振蕩信號(hào)通過(guò)分頻器分解成不同頻率的信號(hào)輸送到放大器,放大器將信號(hào)放大,推動(dòng)揚(yáng)聲器發(fā)出聲音。鍵盤(pán)實(shí)際是一些開(kāi)關(guān),如果沒(méi)有鍵盤(pán),許多種頻率的信號(hào)一齊進(jìn)到放大器里,通過(guò)揚(yáng)聲器發(fā)出的聲音就會(huì)亂七八糟,不成音樂(lè)。按下鍵盤(pán)的一支鍵,就等于接通一只開(kāi)關(guān),只允許某一種頻率的信號(hào)通過(guò)到放大器里去,揚(yáng)聲器就發(fā)出一個(gè)音來(lái)。這樣,按照一定的演奏規(guī)律來(lái)按鍵,就能奏出美妙的音樂(lè)來(lái)。電源的任務(wù)是給各部分供電。 下面進(jìn)一步介紹振蕩器和分頻器的工作原理。振蕩器一般用lc電感三點(diǎn)振蕩電路。如果忽略晶體
9、管、電阻等因素的影響,則它的振蕩頻率f可由下式?jīng)Q定: 振蕩頻率f公式只要適當(dāng)選擇電感l(wèi)和電容c的數(shù)值,就可以得到所需要的信號(hào)頻率。分頻器是一個(gè)雙穩(wěn)態(tài)電路,即晶體管bg1導(dǎo)通、bg2截止和bg1截止、bg2導(dǎo)通兩種穩(wěn)定狀態(tài)。如果在它的輸入端輸入一個(gè)信號(hào)脈沖,它就翻轉(zhuǎn)一次,即由一種穩(wěn)態(tài)迅速變成另一種穩(wěn)態(tài),再輸入一個(gè)信號(hào)脈沖,它又會(huì)翻轉(zhuǎn)一次,還原成起始的穩(wěn)態(tài)。這樣,在它的輸入端輸入兩個(gè)信號(hào)脈沖時(shí),在它的輸出端就得到一個(gè)信號(hào)脈沖。就是說(shuō),輸出信號(hào)頻率比輸入信號(hào)頻率低一半,好像用2除過(guò)一樣,所以叫二分頻。 電子琴使用二分頻電路是音階規(guī)律的需要。音樂(lè)中的基本音階的頻率是按照一定規(guī)律排列的,以c調(diào)為例,音階
10、中各音之間的頻率(單位為赫茲)關(guān)系是: 音階中各音之間的頻率關(guān)系說(shuō)明一個(gè)音的頻率剛好是比它低八度音的頻率的兩倍。所以,只要把一個(gè)音的頻率除以2就得到比它低八度的一個(gè)音的頻率。實(shí)現(xiàn)這一點(diǎn)就需要使用二分頻電路。這樣,只要振蕩器產(chǎn)生一個(gè)標(biāo)準(zhǔn)音的頻率信號(hào),如高音“1”的信號(hào),通過(guò)二分頻就產(chǎn)生中音“2”的頻率,再一次二分頻就產(chǎn)生低音“1”的頻率了。如果按照鍵盤(pán)上最高音組的頻率制作七個(gè)振蕩器,并將得到的七個(gè)音階信號(hào)分別二分頻,便可得到低八度的一組音階信號(hào);再次二分頻,就可得到再低八度的一組音階信號(hào)。依此類(lèi)推,最后,就能得到鍵盤(pán)上所有的音階信號(hào)了。 不過(guò),實(shí)際上需要制作12個(gè)振蕩器和更多的分頻器,因?yàn)橐唤M鍵
11、盤(pán)中還有五支黑鍵。2.2系統(tǒng)設(shè)計(jì)要求 本系統(tǒng)分為兩個(gè)人部分,一個(gè)是音樂(lè)播放,另一個(gè)就是電子琴演奏。 關(guān)于聲音的處理,實(shí)用單片機(jī)匯編語(yǔ)言,利用定時(shí)器來(lái)控制頻率,而每個(gè)音符的符號(hào)只是存在我自己的定義的表中。具體要求如下:1:要求達(dá)到電子琴的基本功能,可是彈奏出簡(jiǎn)單的樂(lè)曲。2:用鍵盤(pán)做出電子琴的按鍵,每鍵代表一個(gè)音符。3:各音符按一定順序排列,必須符合電子琴的按鍵排列順序。4:彈奏電子琴時(shí)能播放出準(zhǔn)確的聲音,不彈奏時(shí)可以播放內(nèi)置音樂(lè)。2.3電子琴系統(tǒng)的組成 本系統(tǒng)分為兩個(gè)人部分,一個(gè)是音樂(lè)播放,另一個(gè)就是電子琴。 音樂(lè)部分:音樂(lè)實(shí)際上是有固定周期的信號(hào),本文介紹用at89c51的定時(shí)器控制,在p3.
12、7腳上輸出方波周期信號(hào),產(chǎn)生音樂(lè)。當(dāng)dipsw2,3引腳都o(jì)ff時(shí)嵌入“不倒翁.hex”再按上方的7個(gè)人鍵盤(pán),自上而下就發(fā)出do、re、mi、fa、so、la、si 7個(gè)高音節(jié),當(dāng)dipsw2,3引腳都o(jì)n時(shí),按下上方第2個(gè)按鍵,就會(huì)播放音樂(lè),每按下第二個(gè)鍵,就會(huì)重復(fù)演唱。三只小貓歌曲的播放類(lèi)似于不倒翁歌曲的播放。當(dāng)dipsw2,3引腳再次off時(shí),再按上方的7個(gè)人鍵盤(pán),自上而下就會(huì)發(fā)出si 、la、 so、 fa、 mi 、re 、do 7個(gè)高音節(jié)。按下116鍵,分別產(chǎn)生mi,fa,so,la,si低音,數(shù)碼管顯示3,4,5,6,7;中音do,mi,fa,so,la,si,數(shù)碼管顯示1,2,
13、3,4,5,6,7:;高音do,re,mi,fa,數(shù)碼管顯示a,b,c,d。 由于一首音樂(lè)是由許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們想要的音樂(lè)了。當(dāng)然,對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器t0來(lái)產(chǎn)生這樣方波頻率信號(hào)。因此我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。 電子琴?gòu)椬嗖糠郑簩?shí)際上就是把每一個(gè)按鍵對(duì)應(yīng)的值經(jīng)過(guò)處理后發(fā)給單片機(jī),再在單片機(jī)內(nèi)把數(shù)字當(dāng)做指針指向所對(duì)應(yīng)的音符。第三章 硬件設(shè)計(jì)3.1 at89c51簡(jiǎn)介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomfalsh p
14、rogrammable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱(chēng)單片機(jī)。管腳說(shuō)明:vcc:供電電壓。gnd:接地。p0口:p0口為一個(gè)8位漏級(jí)開(kāi)路雙向i/o口,每腳可吸收8ttl門(mén)電流。當(dāng)p1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門(mén)電流。p1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用
15、作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門(mén)電流,當(dāng)p2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址
16、信號(hào)和控制信號(hào)。p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門(mén)電流。當(dāng)p3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:口管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時(shí)器0外部輸入)p3.5 t1(記時(shí)器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口同時(shí)為閃爍
17、編程和編程校驗(yàn)接收一些控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置
18、位無(wú)效。/psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來(lái)自反向振蕩器的輸出。3.2 led顯示器顯示原理發(fā)光二極管是一種將電能轉(zhuǎn)變成光能的半導(dǎo)體
19、器件,流過(guò)電流,發(fā)光二極就會(huì)發(fā)光。七段 led顯示器由七個(gè)發(fā)光段構(gòu)成,每段均是 一個(gè)led二極管。這7個(gè)發(fā)光段分別稱(chēng)為 a、b、c、d、e、f和g,通過(guò)控制不同段的點(diǎn)亮和熄滅,可顯示16進(jìn)制數(shù)字09和 a、b、c、d、e、f,也能顯示 h、e、l、p等字符。多數(shù)7段led顯示器中實(shí)際有8個(gè)發(fā)光二極管,除7個(gè)構(gòu)成7筆字形外,另外還有一個(gè)小數(shù)點(diǎn)dp位段,用來(lái)顯示小數(shù)。有人也把這種顯示器叫做8段led顯示器。外形 共陽(yáng)極 共陰極33 proteus的基本介紹系統(tǒng)特性: 設(shè)計(jì)以及自動(dòng)布線(xiàn)來(lái)實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。 isis 原理布圖個(gè)易用而又功能強(qiáng)大的工具; prospice 混合模型spice
20、仿真-可以升級(jí)到我們的獨(dú)特的虛擬系統(tǒng)模型技術(shù)的工業(yè)標(biāo)準(zhǔn)spice3f5f 仿真器; ares pcb 設(shè)計(jì)具有32 位數(shù)據(jù)庫(kù)、元件自動(dòng)布置、撤消和重試的自動(dòng)布線(xiàn)功能的超強(qiáng)性能的pcb 設(shè)計(jì)系統(tǒng); 標(biāo)準(zhǔn)的時(shí)尚的圖形用戶(hù)界面; 保證所有的主要模塊的操作性能和兼容性; 支持windows 98/me/2k/xp; 產(chǎn)品完全可以信賴(lài):超過(guò)15 年的連續(xù)不斷的開(kāi)發(fā); 數(shù)千個(gè)拷貝安裝分布全世界35個(gè)國(guó)家; 直接來(lái)自開(kāi)發(fā)者的技術(shù)支持; 被eww cad reviewroundup 評(píng)為最好的全線(xiàn)產(chǎn)品。此系統(tǒng)受益于15 年來(lái)的持續(xù)開(kāi)發(fā),被電子世界在其對(duì)pcb 設(shè)計(jì)系統(tǒng)的比較文章中評(píng)為最好產(chǎn)品“the rout
21、eto pcb cad”。proteus 產(chǎn)品系列也包含了我們革命性的vsm 技術(shù),用戶(hù)可以對(duì)基于微控制器的設(shè)計(jì)連同所有的周?chē)娮悠骷黄鸱抡?。用?hù)甚至可以實(shí)時(shí)采用諸如led/lcd、鍵盤(pán)、rs232 終端等動(dòng)態(tài)外設(shè)模型來(lái)對(duì)設(shè)計(jì)進(jìn)行交互仿真。3.4 wave6000簡(jiǎn)介wave6000軟件在以前的版本基礎(chǔ)上做了增加了許多功能,特別是在窗口管理、項(xiàng)目管理和源文件編輯工具上做了較大改進(jìn),在wave6000環(huán)境下的所有窗口均可以放在窗口的同一塊區(qū)域,各窗口可以直接切換,節(jié)省了窗口的面積,使窗口管理更有效。wave6000還增強(qiáng)了項(xiàng)目管理和源文件編輯方面的功能,使得項(xiàng)目、文件切換更方便,有效地后退、前
22、進(jìn)功能使得修改程序更方便。新增加的書(shū)簽窗口和斷點(diǎn)窗口可以有效地管理斷點(diǎn)和書(shū)簽,使得程序員無(wú)需在眾多的代碼和斷點(diǎn)中逐行查詢(xún),斷點(diǎn)信息和書(shū)簽信息在各自的窗口中顯示一目了然。信息串口顯示項(xiàng)目操作和文件操作后的詳細(xì)信息,例如打開(kāi)項(xiàng)目、保存項(xiàng)目、項(xiàng)目編譯過(guò)程以及出錯(cuò)信息等等。在一個(gè)項(xiàng)目調(diào)試之前,必須經(jīng)過(guò)新建項(xiàng)目、設(shè)置項(xiàng)目、添加模塊和包含文件、保存項(xiàng)目、編譯項(xiàng)目,最后進(jìn)入調(diào)試項(xiàng)目,其中的所有成功和錯(cuò)誤信息都會(huì)在該窗口中顯示,因此用戶(hù)在調(diào)試項(xiàng)目前,需要觀(guān)察此窗口是否有錯(cuò)誤信息,待排除錯(cuò)誤后方可正確調(diào)試項(xiàng)目。概述:記錄、顯示用戶(hù)在上次退出環(huán)境時(shí)設(shè)置的所有斷點(diǎn)的信息(包括無(wú)效斷點(diǎn)),例如所在的文件、所在行的行號(hào)
23、、pc值、是否有效等信息。在該窗口用戶(hù)可以刪除任意一個(gè)斷點(diǎn),或者迅速查找到該斷點(diǎn)所在程序的位置。在使用偉福匯編器預(yù)定義符的時(shí)候,有一項(xiàng)“是否使用偉福預(yù)定義符”的選項(xiàng),如果選中該選項(xiàng),那么由軟件(或者用戶(hù)可以自定義)自定義的預(yù)定義符號(hào)便會(huì)在編譯的時(shí)候起作用。用于也可以自己添加自定義包括字型變量、字節(jié)變量、位變量、sfr位變量等。另外,該窗口還可以設(shè)置sfr窗口中顯示寄存器的內(nèi)容,用戶(hù)的自定義變量可以在編譯的時(shí)候起作用,也可以在sfr窗口中顯示。第四章 軟件設(shè)計(jì)4.1 流程圖4.2音樂(lè)播放設(shè)計(jì) 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期,再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,
24、每當(dāng)計(jì)時(shí)終止后就將p3.7反相,然后重復(fù)計(jì)時(shí)再反相。就可以再p3.7引腳上得到此頻率的脈沖。 利用at89c51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式下,改變計(jì)數(shù)值th0及tl0以產(chǎn)生不同音階。 計(jì)數(shù)脈沖與頻率的關(guān)系式是:n=fi/2/fr式中,n是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12mhz,其頻率為1mhz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值t的求法如下:t=65536-n= 65536- fi/2/fr音符頻率簡(jiǎn)譜碼音符頻率簡(jiǎn)譜碼低do26263628高do104665058低re29463835高re117565110低m33064021高m131865157低fa34964103高fa1
25、39765178低so39264260高so156865217低la44064400高la176065252低si49464524高si1967652834.3 音樂(lè)播放程序4.3.1播放“不倒翁”歌曲的程序buzz equ p1buzz1 equ p2.7org 0000hljmp mainorg 000bhljmp int_t0org 001bhljmp time1org 8000hmain:mov sp,#90h mov buzz,#0ffh mov tmod,#11h setb et0 setb et1 setb ea clr tr0start: mov r0, buzz cjne r
26、0,#0ffh,key1 clr tr0 sjmp startkey1: cjne r0,#0feh,key2 mov 30h,#0fbh mov 31h,#0e9h ljmp set_timerkey2: cjne r0,#0fdh,key3 mov 30h,#0fch mov 31h,#5ch ljmp set_timerkey3: cjne r0,#0fbh,key4 mov 30h,#0fch mov 31h,#0c1h ljmp set_timerkey4: cjne r0,#0f7h,key5 mov 30h,#0fch mov 31h,#0efh ljmp set_timerke
27、y5: cjne r0,#0efh,key6 mov 30h,#0fdh mov 31h,#045h ljmp set_timerkey6: cjne r0,#0dfh,key7 mov 30h,#0fdh mov 31h,#92h ljmp set_timerkey7: cjne r0,#0bfh,key8 mov 30h,#0fdh mov 31h,#0d6h ljmp set_timerkey8: cjne r0,#7fh,nokeyloop1: mov r0, buzz cjne r0,#7dh,loop ljmp main1loop: cjne r0,#0ffh,loop1 ljmp
28、 ostartset_timer: setb tr0 sjmp startnokey: clr tr0 sjmp startint_t0: mov th0,30h mov tl0,31h cpl buzz1 reti;ostart: mov r0, buzz cjne r0,#0ffh,okey1 clr tr0 sjmp ostartokey1: cjne r0,#0bfh,okey2 mov 30h,#0fbh mov 31h,#0e9h ljmp oset_timerokey2: cjne r0,#0dfh,okey3 mov 30h,#0fch mov 31h,#5ch ljmp os
29、et_timerokey3: cjne r0,#0efh,okey4 mov 30h,#0fch mov 31h,#0c1h ljmp oset_timerokey4: cjne r0,#0f7h,okey5 mov 30h,#0fch mov 31h,#0efh ljmp oset_timerokey5: cjne r0,#0fbh,okey6 mov 30h,#0fdh mov 31h,#045h ljmp oset_timerokey6: cjne r0,#0fdh,okey7 mov 30h,#0fdh mov 31h,#92h ljmp oset_timerokey7: cjne r
30、0,#0feh,okey8 mov 30h,#0fdh mov 31h,#0d6h ljmp oset_timerokey8: cjne r0,#07fh,onokey loop2:mov r0, buzz cjne r0,#7dh,loop3 ljmp main1 loop3: cjne r0,#0ffh,loop2ljmp startoset_timer: setb tr0 sjmp ostartonokey: clr tr0 ljmp ostart ; ;main1: mov 40h,#00hnext: mov r0, buzz mov 41h,r0 orl 41h ,#0feh mov
31、 r0,41h cjne r0,#0ffh,stop mov a,40h mov dptr,#song movc a,a+dptr cjne a,#00h,play ljmp stopplay: mov r1,a anl a,#0fh mov r2,a mov a,r1 anl a,#0f0h cjne a,#00h,music clr tr1 ljmp delmusic:swap a dec a mov 22h,a add a,22h mov r3,a mov dptr,#song1 movc a,a+dptr mov th1,a mov 21h,a mov a,r3 inc a movc
32、a,a+dptr mov tl1,a mov 20h,a setb tr1del: lcall delay inc 40h ljmp nextstop: clr tr1 ljmp starttime1:push acc push psw cpl buzz1 mov tl1,20h mov th1,21h pop psw pop acc retidelay:mov r7,#02hdela1:mov r6,#125dela2:mov r5,#248 djnz r5,$djnz r6,dela2 djnz r7,dela1 djnz r2,delay retsong1: dw 64580,64684
33、,64777,64820dw 64898,64968,65030,64260dw 64400,64524,65058,63835,64021 song: db 84h,94h,88hdb 64h,54h,68hdb 84h,64h,54h,44hdb 62h,82h,42h,62h,58hdb 84h,94h,88hdb 64h,54h,68hdb 84h,64h,54h,44hdb 52h,42h,52h,62h,48hdb 00hmov p1,#0ffhtest: jnb p1.0,do ;p1.0是音1 jnb p1.1,re ;p1.1是音2 jnb p1.2,mi ;p1.2是音3
34、jnb p1.3,fa ;p1.3是音4 jnb p1.4,so ;p1.4是音5 jnb p1.5,la ;p1.5是音6 jnb p1.6,si ;p1.6是音7 jnb p1.7,doh ;p1.7是高音1 ajmp testdo: mov r6,#126 ajmp outputre: mov r6,#113 ajmp outputmi: mov r6,#100 ajmp outputfa: mov r6,#95 ajmp outputso: mov r6,#85 ajmp outputla: mov r6,#75 ajmp outputsi: mov r6,#67 ajmp outpu
35、tdoh: mov r6,#63output: clr p2.7 ;p2.7接蜂鳴器一類(lèi)的,發(fā)出音調(diào) acall delay1 setb p2.7 acall delay1 ajmp testdelay1: mov b,r6dl: mov r7,#6 djnz r7,$ djnz r6,dl mov r6,b ret end4.3.2播放“三只小貓”歌曲的程序buzz equ p1buzz1 equ p2.7org 0000hljmp mainorg 000bhljmp int_t0org 001bhljmp time1org 8000hmain: mov sp,#90h mov buzz,#
36、0ffh mov tmod,#11h setb et0 setb et1 setb ea clr tr0start: mov r0, buzz cjne r0,#0ffh,key1 clr tr0 sjmp startkey1: cjne r0,#0feh,key2 mov 30h,#0fbh mov 31h,#0e9h ljmp set_timerkey2: cjne r0,#0fdh,key3 mov 30h,#0fch mov 31h,#5ch ljmp set_timerkey3: cjne r0,#0fbh,key4 mov 30h,#0fch mov 31h,#0c1h ljmp
37、set_timerkey4: cjne r0,#0f7h,key5 mov 30h,#0fch mov 31h,#0efh ljmp set_timerkey5: cjne r0,#0efh,key6 mov 30h,#0fdh mov 31h,#045h ljmp set_timerkey6: cjne r0,#0dfh,key7 mov 30h,#0fdh mov 31h,#92h ljmp set_timerkey7: cjne r0,#0bfh,key8 mov 30h,#0fdh mov 31h,#0d6h ljmp set_timerkey8: cjne r0,#7fh,nokey
38、loop1: mov r0, buzz cjne r0,#7dh,loop ljmp main1loop: cjne r0,#0ffh,loop1 ljmp ostartset_timer: setb tr0 sjmp startnokey: clr tr0 sjmp startint_t0: mov th0,30h mov tl0,31h cpl buzz1 reti;ostart: mov r0, buzz cjne r0,#0ffh,okey1 clr tr0 sjmp ostartokey1: cjne r0,#0bfh,okey2 mov 30h,#0fbh mov 31h,#0e9
39、h ljmp oset_timerokey2: cjne r0,#0dfh,okey3 mov 30h,#0fch mov 31h,#5ch ljmp oset_timerokey3: cjne r0,#0efh,okey4 mov 30h,#0fch mov 31h,#0c1h ljmp oset_timerokey4: cjne r0,#0f7h,okey5 mov 30h,#0fch mov 31h,#0efh ljmp oset_timerokey5: cjne r0,#0fbh,okey6 mov 30h,#0fdh mov 31h,#045h ljmp oset_timerokey
40、6: cjne r0,#0fdh,okey7 mov 30h,#0fdh mov 31h,#92h ljmp oset_timerokey7: cjne r0,#0feh,okey8 mov 30h,#0fdh mov 31h,#0d6h ljmp oset_timerokey8: cjne r0,#07fh,onokey loop2:mov r0, buzz cjne r0,#7dh,loop3 ljmp main1 loop3: cjne r0,#0ffh,loop2 ljmp startoset_timer: setb tr0 sjmp ostartonokey: clr tr0 ljm
41、p ostart ; ;main1: mov 40h,#00hnext: mov r0, buzz mov 41h,r0 orl 41h ,#0feh mov r0,41h cjne r0,#0ffh,stop mov a,40h mov dptr,#song movc a,a+dptr cjne a,#00h,play ljmp stopplay: mov r1,a anl a,#0fh mov r2,a mov a,r1 anl a,#0f0h cjne a,#00h,music clr tr1 ljmp delmusic:swap a dec a mov 22h,a add a,22h
42、mov r3,a mov dptr,#song1 movc a,a+dptr mov th1,a mov 21h,a mov a,r3 inc a movc a,a+dptr mov tl1,a mov 20h,a setb tr1del: lcall delay inc 40h ljmp nextstop: clr tr1 ljmp starttime1:push acc push psw cpl buzz1 mov tl1,20h mov th1,21h pop psw pop acc retidelay:mov r7,#02hdela1:mov r6,#125dela2:mov r5,#
43、248 djnz r5,$ djnz r6,dela2 djnz r7,dela1 djnz r2,delay retsong1: dw 64580,64684,64777,64820dw 64898,64968,65030,64260dw 64400,64524,65058,63835,64021song: db 62h,82h,82h,62h,98hdb 92h,0b2h,0b2h,82h,98hdb 62h,82h,82h,52h,68hdb 92h,0b2h,0b2h,82h,98hdb 62h,82h,82h,62h,92h,92h,94hdb 92h,0b2h,0b2h,92h,8
44、4h,94hdb 0b8h,0b4h,04hdb 00hend4.3.3播放“4*4矩陣按鍵”的程序org 0000hjmp staretorg ooobhjmp time0staret:mov tmod,#000001bmov ie,#10000010bsetb tr0l1: call keyclr eajb f0,l1mov a,22hmov a,dptr,#table1movc a,a+dptrmov p0,amov a,22hrl amov dptr,#tablemovc a,a+dptrmov th0,amov a,22hrl ainc amovc a,a+dptrmov tl0,a
45、mov 20h,al2: call keysetb eajb f0,l1jmp l2key: setb f0mov r3,#0f7hmov r1,#00hl3: mov a,r3mov p3,amov a,p3setb cmov r5,#04hl4: rlc ajnc keyininc r1djnz r5,l4mov a,r3setb crrc amov r3,ajc l3retkeyin: mov 22h,r1clr f0rettime0: push accpush pswmov tl0,20hmov th0,21hcpl p2.7pop pswpop accretitable: dw 64
46、021,64103,64260,64400dw 64524,64580,64684,64777dw 64820,64898,64968,65030dw 65058,65110,65157,65178table1: db 0ch,98h,48h,40h,1ehdb 9fh,25h,0dh,99h,49h,41h,1fhdb 11h,01h,63h,03hend第五章 調(diào)試5.1 wave軟件的使用 打開(kāi)wave,新建文件,輸入程序,生成.hex文件,如圖所示5.2 proteus打開(kāi)軟件的使用proteus設(shè)計(jì)硬件電路圖5.3 導(dǎo)入hex文件第六章 總 結(jié)隨著畢業(yè)日子的到來(lái),畢業(yè)設(shè)計(jì)也接近了尾聲
47、。經(jīng)過(guò)奮戰(zhàn)我的畢業(yè)設(shè)計(jì)終于完成了。在沒(méi)有做畢業(yè)設(shè)計(jì)以前覺(jué)得畢業(yè)設(shè)計(jì)只是對(duì)這幾年來(lái)所學(xué)知識(shí)的單純總結(jié),但是通過(guò)這次做畢業(yè)設(shè)計(jì)發(fā)現(xiàn)自己的看法有點(diǎn)太片面。畢業(yè)設(shè)計(jì)不僅是對(duì)前面所學(xué)知識(shí)的一種檢驗(yàn),而且也是對(duì)自己能力的一種提高。通過(guò)這次畢業(yè)設(shè)計(jì)使我明白了自己原來(lái)知識(shí)還比較欠缺。自己要學(xué)習(xí)的東西還太多,以前老是覺(jué)得自己什么東西都會(huì),什么東西都懂,有點(diǎn)眼高手低。通過(guò)這次畢業(yè)設(shè)計(jì),我才明白學(xué)習(xí)是一個(gè)長(zhǎng)期積累的過(guò)程,在以后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識(shí)和綜合素質(zhì)。通過(guò)本次實(shí)習(xí),將書(shū)本上學(xué)到的知識(shí)應(yīng)用于實(shí)踐,學(xué)會(huì)了一些電子電路仿真設(shè)計(jì)能力,雖然過(guò)程中遇到了一些困難,但是在解決這些問(wèn)題的過(guò)程無(wú)疑也是對(duì)自己自身專(zhuān)業(yè)素質(zhì)的一種提高與肯定。此次設(shè)計(jì)不僅增
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- D打印技術(shù)在智能無(wú)人機(jī)設(shè)計(jì)的應(yīng)用考核試卷
- D打印設(shè)備故障診斷與維修技能考核試卷
- 《CT能譜成像在1-4cm甲狀腺結(jié)節(jié)良惡性鑒別診斷中的應(yīng)用價(jià)值》
- 表內(nèi)乘除法口算練習(xí)題
- 2024年度大學(xué)生活動(dòng)中心文創(chuàng)產(chǎn)品設(shè)計(jì)與制作合同3篇
- 2024年度房產(chǎn)抵押擔(dān)保債權(quán)轉(zhuǎn)讓合同3篇
- 2024年版建筑企業(yè)臨時(shí)工勞動(dòng)協(xié)議版B版
- 新型催化劑開(kāi)發(fā)與優(yōu)化-洞察分析
- 2024年度終止勞務(wù)派遣環(huán)保行業(yè)綠色用工合作協(xié)議3篇
- 2024年桃樹(shù)果苗種植基地生態(tài)農(nóng)業(yè)發(fā)展合同3篇
- 漢字的起源與發(fā)展
- 廈門(mén)大學(xué)招生宣傳
- 第三單元復(fù)習(xí) 課件 語(yǔ)文小學(xué)四年級(jí)上冊(cè)統(tǒng)編版(部編版)18張PPT
- 中藥材的性狀及真?zhèn)舞b別培訓(xùn)-課件
- Go語(yǔ)言Hyperledger區(qū)塊鏈開(kāi)發(fā)實(shí)戰(zhàn)PPT完整全套教學(xué)課件
- 高速公路綠色品質(zhì)工程建設(shè)
- 小學(xué)語(yǔ)文《黃山奇松》第1課時(shí)教學(xué)設(shè)計(jì)
- qingming scroll《清明上河圖新解》英文PPT
- 09《馬克思主義政治經(jīng)濟(jì)學(xué)概論(第二版)》第九章
- DG-TJ 08-2367-2021 既有建筑外立面整治設(shè)計(jì)標(biāo)準(zhǔn)
- 關(guān)于反恐防暴的應(yīng)急預(yù)案范文(精選10篇)
評(píng)論
0/150
提交評(píng)論