




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目 錄誠信聲明(1)基于51單片機(jī)電子琴八音盒設(shè)計(jì)(2)中文摘要(2)英文摘要(2) 1 引言(2)2 方案總體設(shè)計(jì)(2)2.1 方案對比(3)2.2系統(tǒng)工作原理(4)3 硬件設(shè)計(jì)(4)3.1 STC89C52芯片(4)3.2單片機(jī)復(fù)位部分(5)3.3單片機(jī)晶振部分(6)3.4數(shù)碼管顯示部分(6)3.5蜂鳴器部分(8)3.6按鍵部分(8)4 軟件設(shè)計(jì)(10)4.1 系統(tǒng)流程(10)4.2延時(shí)源代碼 (11)4.3 發(fā)音源代碼(11)4.4 單個(gè)按鍵源代碼(11)5 系統(tǒng)仿真與調(diào)試(12)5.1 仿真軟件簡介(12)5.2 硬件調(diào)試(12)5.3 軟件調(diào)試(12)5.4 使用說明(15)6 設(shè)計(jì)
2、總結(jié)(15)參考文獻(xiàn)(16)致謝(17)附錄 原理圖(18)附錄 實(shí)物圖(19)附錄 軟件設(shè)計(jì)(20)xxx學(xué)院本科生畢業(yè)設(shè)計(jì)誠信聲明基于51單片機(jī)電子琴八音盒設(shè)計(jì)xxx,xxx(xxx學(xué)院 電氣工程學(xué)院,xxx xxxx xxxx)摘 要:本文的主要內(nèi)容是用AT89C52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)八音盒。利用單片機(jī)產(chǎn)生不同的頻率來獲得我要求的音階,最終可隨意彈奏出要表達(dá)的音符。只要把一首歌曲的音階對應(yīng)頻率關(guān)系,編寫程序就可以達(dá)到我想要的曲目。經(jīng)此調(diào)試,所做的八音盒得到了應(yīng)有的按鍵發(fā)音效果。 關(guān)鍵詞: AT89C52;八音盒;音階Keyboard music box design base
3、d on 51 single chip microcomputerYIN Fu gui,WU Zhi Rong(Electrical Engineering College,Longdong University,Qingyang 745000,Gansu,) Abstract: The main content of this paper is to use AT89C52microcontroller as the core control element, the design of a music box. Produce different
4、160;frequencies obtain the scale we require the use of single-chip, finally free to play want to express. the correctcorresponding frequency can achieve what we want music. On this basis, the electronic organbe pronunciation key
5、160;effect. Keywords: AT89C52; music box scale1 引言單片機(jī)因其體積小,功能強(qiáng),價(jià)格低廉而得到廣泛應(yīng)用,同時(shí)隨著我國經(jīng)濟(jì)的飛速發(fā)展,單片機(jī)在越來越多的領(lǐng)域得到了廣泛的應(yīng)用,現(xiàn)在國內(nèi)的單片機(jī)多用于電話,玩具和LCD等產(chǎn)品,預(yù)計(jì)在未來,利用單片機(jī)發(fā)明的產(chǎn)品會(huì)越來越多,理解和掌握單片機(jī)的工作原理和使用技巧是必備的技能。我所設(shè)計(jì)該產(chǎn)品時(shí)根據(jù)自身的興趣和愛好設(shè)計(jì)的,通過對傳統(tǒng)電子琴的認(rèn)識和了解,知道了傳統(tǒng)的電子琴是利用單片機(jī)匯編語言的編程來實(shí)現(xiàn)的,而且功能單一,只能彈奏而不能隨意的播放音樂,我所設(shè)計(jì)的產(chǎn)品是基于對89C52單片機(jī)的深入理解,然后對
6、傳統(tǒng)電子琴小小的改革和創(chuàng)新,并且以簡單的C語言程序替代了復(fù)雜的匯編語言程序。我相信在電子琴的不斷革新達(dá)到人們娛樂設(shè)備標(biāo)準(zhǔn)的時(shí)候,電子琴會(huì)被投入到批量生產(chǎn)之中。2 方案總體設(shè)計(jì)STC89C52按鍵模塊復(fù)位電路時(shí)鐘電路顯示模塊發(fā)音單元圖2-1總體框架圖2.1 方案對比1采用89C52單片機(jī)作為主控芯片,設(shè)置鍵盤、蜂鳴器等外圍器件,另外還用到一些簡單器件如:一位數(shù)碼管,和PNP型三極管等。利用按鍵實(shí)現(xiàn)音符和音調(diào)的輸入;一位的數(shù)碼管進(jìn)行被操作的按鍵顯示:用PNP型三極管實(shí)現(xiàn)低音頻功率放大;最后用蜂鳴器發(fā)音。方案比較:方案一采用單個(gè)的邏輯器件組合實(shí)現(xiàn)。這樣雖然比較直觀,邏輯器件分工鮮明,思路也比清晰,一
7、目了然,但是由于元器件種類、個(gè)數(shù)繁多,而過于復(fù)雜的硬件電路也容易引起系統(tǒng)的精度不高、體積過大等不利因素。方案二采用VHDL語言編程來實(shí)現(xiàn)電子琴的各項(xiàng)功能。系統(tǒng)主要由電子琴發(fā)聲模塊、選擇控制模塊和儲(chǔ)存器模塊組成。和方案一相比較,方案二就顯得比較籠統(tǒng),雖然我們可以看到用超高速硬件描述語言VHDL的優(yōu)勢,但本質(zhì)上它只是把整個(gè)系統(tǒng)分為了若干個(gè)模塊,而不牽涉到具體的硬件電路。方案三與前兩種方案相比,主控芯片采用89C52單片機(jī),它是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。同時(shí)具有強(qiáng)大控制功能和靈活的編程實(shí)現(xiàn)特性,由于本設(shè)計(jì)主要用于人們娛樂方面,因此在
8、設(shè)計(jì)上盡量使其安全以及簡單易操作。而第三種方案具有經(jīng)濟(jì)可行性、技術(shù)可行性、實(shí)物應(yīng)用性。所以我們選擇第三種方案2。2.2 系統(tǒng)工作原理由89C52的P1口8個(gè)按鍵控制DO,RE,MI,F(xiàn)A,SO,LA,XI,DO的各個(gè)音符,在由位于P0口的一位數(shù)碼管顯示出來,同時(shí)位于P37口的蜂鳴器發(fā)出聲音。發(fā)音原理:其動(dòng)力和時(shí)鐘相同。發(fā)條輪上帶個(gè)較大的圓柱輪。這柱面上按需要做了些凸點(diǎn),對應(yīng)的地方有一組發(fā)音的簧片,圓柱輪轉(zhuǎn)動(dòng)時(shí)就會(huì)刮上這些簧片。每點(diǎn)一個(gè)音。圓柱輪轉(zhuǎn)動(dòng)基本是恒速的,節(jié)拍就靠點(diǎn)的距離。八音盒主要部分由滾筒和簧片兩部分組成。若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期,再將周期除以2,即為半周期的時(shí)間。利
9、用定時(shí)器記時(shí)半周期時(shí)間,每當(dāng)記時(shí)終止后就將P37反相,然后記時(shí)再反相。就可在P37上得到此頻率的脈沖。利用STC89C52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。3 硬件設(shè)計(jì)3.1 STC89C52芯片89C52是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含具有如下特點(diǎn):40個(gè)引腳(引腳圖如圖3-1所示),4kBytesFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDTC)電路,片內(nèi)時(shí)鐘
10、振蕩器3。此外,89C52設(shè)計(jì)和配置了振蕩頻率可為0HZ并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。單片機(jī)引腳圖如圖3-1所示:圖3-1單片機(jī)引腳圖本系統(tǒng)采用單片機(jī)89C52為電子琴的控制核心,系統(tǒng)主要包括播放模塊、安鍵控制模塊。下面對各模塊的設(shè)計(jì)逐一進(jìn)行論證比較。3.2 單片機(jī)復(fù)位部分1)復(fù)位功能:單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦
11、內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開始4。2)復(fù)位原理:單片機(jī)復(fù)位時(shí)只要保持RST引腳接2us的高電平即可。在單片機(jī)啟動(dòng)0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過程中,電容開始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚
12、至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動(dòng)復(fù)位5。 3.3 單片機(jī)晶振部分外接晶振引腳XTAL1和TXAL2接外部晶振和微調(diào)電容的一端。振蕩電路的頻率就是晶體的固有頻率。晶振電路結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率。晶振提高頻率越高,單片機(jī)運(yùn)行速度越快。單片機(jī)一切指令的執(zhí)行都是建立在晶振提供的時(shí)鐘頻率上。晶振電路原理圖如圖3-2所示:圖3-2 晶振電路原理圖3.4 數(shù)碼管部分1)數(shù)碼管的分類 :數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(即多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分
13、為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。數(shù)碼管LED對應(yīng)字母圖如圖3-3所示:圖3-3數(shù)碼管LED燈對應(yīng)字母圖2) 共陰極數(shù)碼管:陰極數(shù)碼管是把所有LED的陰極連接到共同接點(diǎn)COM,而每個(gè)LED的陽極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),如下圖所示。圖中的8個(gè)LED分別和上面那個(gè)圖中的ADP各段相對應(yīng),
14、通過控制各個(gè)LED的亮滅來顯示數(shù)字。當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。數(shù)碼管引腳圖如圖3-4所示:圖3-4數(shù)碼管所接引腳圖3)數(shù)碼管顯示部分的實(shí)現(xiàn):數(shù)碼管通過PO口輸入高低電平控制每個(gè)LED燈的亮滅,公共端接地線P0口接1K的上拉電阻。數(shù)碼管電路如圖3-5所示:圖3-5數(shù)碼管電路以下為數(shù)碼管顯示字型對應(yīng)的字符碼表:表3-1 數(shù)碼管顯示數(shù)字的實(shí)現(xiàn)顯示字型Dp,g,f,e,d,c,b,a字符碼01 0 1 1 1 1 1 10xbf11 0 0 0 0 1 1 00x8621 1 0 1 1 0 1 10xdb31 1 0 0 1 1
15、 1 10xcf41 1 1 0 0 1 1 00xe651 1 1 0 1 1 0 10xed61 1 1 1 1 1 0 10xfd71 0 0 0 0 1 1 10x8781 1 1 1 1 1 1 10xff3.5 蜂鳴器部分有源蜂鳴器與無源蜂鳴器的區(qū)別:1)內(nèi)部區(qū)別:需要注意的是這里的“源”不是指電源,而是指震蕩源。也就是說,有源蜂鳴器內(nèi)部帶震蕩源,所以只要一通電就會(huì)發(fā)聲。而無源內(nèi)部不帶震蕩源,所以如果用直流信號無法令其發(fā)聲。有源蜂鳴器往往比無源的貴,就是因?yàn)槔锩娑鄠€(gè)震蕩電路6。1) 2)外觀區(qū)別:78在一些特例中,可以和LED復(fù)用一個(gè)控制口有源蜂鳴器的優(yōu)點(diǎn)是程序控制方便。 3.6
16、按鍵部分1)操作鍵設(shè)計(jì):常用的按鍵有三種:機(jī)械觸點(diǎn)式按鍵、導(dǎo)電橡膠式和柔性按鍵(又稱觸摸式鍵盤)。機(jī)械觸點(diǎn)式按鍵是利用機(jī)械彈性使鍵復(fù)位,手感明顯,連線清晰,工藝簡單,適合單件制造。但是觸點(diǎn)處易侵入灰塵而導(dǎo)致接觸不良,體積相對較大。導(dǎo)電橡膠按鍵是利用橡膠的彈性來復(fù)位,通過壓制的方法把面板上所有的按鍵制成一塊,體積小,裝配方便,適合批量生產(chǎn)。但是時(shí)間長了,橡膠老化而使彈力下降,同時(shí)易侵入灰塵9。 柔性按鍵是近年來迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩種。柔性按鍵最大特點(diǎn)是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且外形和面板的布局、色彩、鍵距可按照整機(jī)的要求來設(shè)計(jì)10。但是由于客觀條件與經(jīng)
17、濟(jì)能力有限,本系統(tǒng)采用機(jī)械觸點(diǎn)式按鍵。2)鍵盤設(shè)計(jì):鍵盤在單片機(jī)應(yīng)用系統(tǒng)中是一個(gè)關(guān)鍵的部件,它能實(shí)現(xiàn)向計(jì)算機(jī)輸入數(shù)據(jù),傳送命令等功能,是人工干預(yù)計(jì)算機(jī)的主要手段。鍵盤可以分為2類:獨(dú)立連接式鍵盤和矩陣式鍵盤。l 矩陣式鍵盤單片機(jī)系統(tǒng)中,若按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上。顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省很多I/O口。矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+5V上當(dāng)無鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這
18、是識別按鍵是否按下的關(guān)鍵。l 獨(dú)立連接式鍵盤獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其它I/O口線的狀態(tài)。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一根I/O口線,然而,在按鍵較多時(shí),I/O口線浪費(fèi)較大,不宜采用。按鍵電路圖如圖3-6所示:圖3-6按鍵電路圖3)去抖動(dòng)鍵盤編程中主要考慮去抖動(dòng)的問題。當(dāng)測試表明有鍵被按下之后,緊接著就進(jìn)行去抖動(dòng)處理。因?yàn)殒I是機(jī)械開關(guān)結(jié)構(gòu),由于機(jī)械觸點(diǎn)的彈性及電壓突跳等原因,在觸點(diǎn)閉合或斷開的瞬間會(huì)出現(xiàn)電壓抖動(dòng)。為保證鍵識別的準(zhǔn)確,在電壓信號抖動(dòng)的情況下不能進(jìn)行行狀態(tài)輸入。硬件方法
19、就是加去抖動(dòng)電路,從根本上避免抖動(dòng)的產(chǎn)生。軟件消抖,在第一次檢測到有鍵按下時(shí),執(zhí)行一段延時(shí)程序之后,再檢測此按鍵,如果第二次檢測結(jié)果仍為按下狀態(tài),CPU便確認(rèn)此按鍵己按下,消除了抖動(dòng)。4 軟件設(shè)計(jì)4.1 系統(tǒng)流程在繪制傳統(tǒng)流程圖時(shí)注意幾點(diǎn):1) 熟練繪制傳統(tǒng)流程圖的基本元素,三種基本結(jié)構(gòu)的流程圖標(biāo)準(zhǔn)畫法。2) 將復(fù)合條件轉(zhuǎn)為多個(gè)單一條件。3) 循環(huán)注意初值、變化和終止。4) 算法的重點(diǎn)實(shí)現(xiàn)一定體現(xiàn)出來。 開始定義P0口Num1N=0Num<9KN=1num+N+P0=tablenum蜂鳴器發(fā)音結(jié)束程序流程如圖4-1所示:圖4-1流程圖 4.2 延時(shí)源代碼void DelayMS(uint
20、 x)uchar t;while(x-) for(t=0;t<120;t+);4.3 發(fā)音源代碼void Play(uchar y)uchar i;for(i=0;i<100;i+)BEEP=BEEP;/對蜂鳴器電平求反DelayMS(y);BEEP=1;/給蜂鳴器一個(gè)高電平4.4 單個(gè)按鍵源代碼:if(K1=0)DelayMS(10);/按鍵去抖動(dòng)if(K1=0)num=1;P0=tablenum;Play(1);while(!K1);5 系統(tǒng)仿真與調(diào)試5.1 仿真軟件簡介Proteus是由Labcenter Electronics開發(fā)的功能強(qiáng)大的單片機(jī)仿真軟件,現(xiàn)在最
21、新版本6.9 SP5。Proteus與其他的仿真軟件相比較,在下面的優(yōu)點(diǎn):1)能仿真模擬電路、數(shù)字電路、數(shù)?;旌想娐?;2)能繪制原理圖、PCB圖;3)幾乎包括實(shí)際中所有使用的儀器;4)其最大的亮點(diǎn)在于能夠?qū)纹瑱C(jī)進(jìn)行實(shí)物級的仿真。從程序的編寫,編譯到調(diào)試,目標(biāo)版的仿真一應(yīng)俱全。支持匯編語言和C語言的編程。還可配合Keil C實(shí)現(xiàn)程序的聯(lián)合調(diào)試,將Proteus中繪制的原理圖作為實(shí)際中的目標(biāo)板,而用Keil C集成環(huán)境實(shí)現(xiàn)對目標(biāo)板的控制,與實(shí)際中通過硬件仿真器對目標(biāo)板的調(diào)試幾乎完全相同,并且支持多顯示器的調(diào)試,即Proteus運(yùn)行在一臺計(jì)算機(jī)上,而KeilC運(yùn)行在另一臺計(jì)算機(jī)上,通過網(wǎng)絡(luò)連接實(shí)現(xiàn)
22、遠(yuǎn)程的調(diào)試。5.2 硬件調(diào)試硬件調(diào)試是針對單片機(jī)部分進(jìn)行的調(diào)試。在上電之前,先確保電路中不存在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況的任務(wù)。注意焊點(diǎn)之間,確保焊點(diǎn)沒有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常且無異常情況(短路或斷路)的情況下方可上電調(diào)試,上電調(diào)試的口的是檢測單片機(jī)控制部分、數(shù)碼管點(diǎn)亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試。1) 數(shù)碼管LED電路調(diào)試:接通電源,隨機(jī)按下按鈕可以看到數(shù)碼福安顯示數(shù)字。2) 鍵盤單片機(jī)控制部分調(diào)試:上電后,
23、隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對應(yīng)的音正確。5.3 軟件調(diào)試調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具有至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序進(jìn)行分別調(diào)試。 Keil軟件中生成程序的HEX軟件圖如圖5-1所示:圖5-1生成相應(yīng)程序的HEX軟件keil程序下載到仿真圖如圖5-2所示:圖5-2將keil程序下到仿真中仿真電路圖圖5-3所示:圖5-3 仿真圖另附實(shí)物圖如圖5-4所示:圖5-4實(shí)物5.4 使用說明1) 單片機(jī)分別接V
24、CC和GND使單片機(jī)處于供電狀態(tài)。2) 接上TXD和RXD將程序?qū)雴纹瑱C(jī)中。3) 按下六角開關(guān),可到指示燈亮后,即可通過按鍵控制發(fā)音了,數(shù)碼管會(huì)隨按鍵變化顯 示出相應(yīng)的數(shù)字。6 設(shè)計(jì)總結(jié)參考文獻(xiàn)1 彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例:基于8051+Proteus仿真M,出版時(shí)間:2009(6):28-30.2 康華光.電子技術(shù)基礎(chǔ)(模擬部分)M,高等教育出版社,2006(1): 60-80.3 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航M.人民郵電出版社,2004(5): 102-122.4 Adel S Sedra,kenneth C Smith.Microelectronic Circui
25、ts(6th ed) M.2010(3): 96-101.5 U Tietze,Chschenk.Electronic Circuits-Design and Application M.2004(8): 89102.6 Intel. Mcs-51 Family of single Chip Microcomputers Users Manual M.1990(4): 58162.7 張齊,顯示技術(shù)及單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:電子工業(yè)出版社,2004(2):284-285.8 郭振民,丁紅.電子設(shè)計(jì)自動(dòng)化EDA M .上海:中國水利水電出版社,2009(6):58-62.9 閻煥忠,王長濤,
26、馬斌.單片機(jī)控制里程轉(zhuǎn)速表的設(shè)計(jì) J .2002(3):145-148.10 肖金球,單片機(jī)原理與接口技術(shù) M .北京:清華大學(xué)出版社,2004(6):1-323.附錄附錄#include <reg52.h> /調(diào)用單片機(jī)頭文件#define uchar unsigned char /無符號字符型 宏定義變量范圍0255#define uint unsigned int /無符號整型 宏定義變量范圍065535sbit beep = P25; /蜂鳴器定義sbit K1=P10;/給P10定義,控制DO的發(fā)音sbit K2=P11;/給P11定義,控制XI的發(fā)音sbit K3=P1
27、2;/給P12定義,控制LA的發(fā)音sbit K4=P13;/給P13定義,控制SO的發(fā)音sbit K5=P34;/給P34定義,控制FA的發(fā)音sbit K6=P35;/給P35定義,控制MI的發(fā)音sbit K7=P36;/給P36定義,控制RE的發(fā)音sbit K8=P37;/給P37定義,控制DO的發(fā)音sbit K9=P20;/音樂播放按鍵uchar flag_en = 0; /開始放歌uchar flag_i = 0;/數(shù)碼管段選定義 0 1 2 3 4 56 7 8 9uchar code smg_du=0xde,0x90,0xcd,0xd9,0x93,0x5b,0x5f,0xd0,0xd
28、f,0xdb/ AB C D E F不顯示 ; /斷碼uchar m,n; uchar code T492=0,0,0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0xB9,0xFB,0x03,0xFB,0x4A,0xFB,0x8F,0xFB,0xCF,0xFC,0x0B,0xFC,0x43,0xFC,0x78,0xFC,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,0x
29、FE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0x02,0xFE,0xE3,0xFE,0xF3,0xFF,0x02,0xFF,0x10,0xFF,0x1D,0xFF,0x2A,0xFF,0x36,0xFF,0x42,0xFF,0x4C,0xFF,0x56,0xFF,0x60,0xFF,0x69,0xFF,0x71,0xFF,0x79,0xFF,0x81;uchar code music12=0,4, /青花瓷0,4,24,4,24,4,21,4,19,4,21,4,14,8,
30、19,4,21,4,24,4,21,4,19,16,0,4,24,4,24,4,21,4,19,4,21,4,12,8,19,4,21,4,24,4,19,4,17,16,0,4,17,4,19,4,21,4,24,4,26,4,24,4,22,4,24,4,21,4,21,4,19,4,19,16,0,4,17,4,19,4,17,4,17,4,19,4,17,4,19,4,19,4,21,8,24,4,21,4,21,12,0,4,24,4,24,4,21,4,19,4,21,4,14,8,19,4,21,4,24,4,21,4,19,16,0,4,24,4,24,4,21,4,19,4,
31、21,4,12,8,19,4,21,4,24,4,19,4,17,16,0,4,17,4,19,4,21,4,24,4,26,4,24,4,22,4,24,4,21,4,21,4,19,4,19,12,12,4,21,8,19,4,19,8,17,16,0xFF,0xFF;uchar code music22=0,4, /生日快樂17,6,17,2,19,8,17,8,22,8,21,16,17,6,17,2,19,8,17,8,24,8,22,16,17,6,17,2,29,8,26,8,22,8,21,8,19,8,27,6,27,2,26,8,22,8,24,8,22,16,0xFF,0
32、xFF;uchar code music32=0,4, /愛情買賣22,4,22,4,17,4,15,4,15,4,17,12,15,4,15,2,17,2,15,4,13,4,13,4,15,12,0,4,20,4,20,4,20,4,17,4,20,4,20,4,20,4,17,4,22,4,17,4,17,4,15,4,15,4,17,12,22,4,22,4,17,4,15,4,15,4,17,12,15,4,15,2,17,2,15,4,13,4,13,4,15,12,20,4,20,4,20,2,17,2,17,4,20,4,20,4,20,2,17,2,17,2,17,2,24,
33、4,20,4,20,2,17,2,17,4,20,4,22,12,17,4,22,4,25,4,25,4,17,4,22,4,25,8,24,4,22,2,24,2,22,4,20,4,15,4,17,12,15,4,15,4,15,4,10,4,15,4,17,4,20,8,17,4,24,4,24,4,20,4,15,4,17,12,17,4,22,4,25,4,25,4,17,4,22,4,25,8,29,4,27,2,29,2,27,4,25,4,25,4,27,12,29,4,29,2,27,4,25,4,27,6,27,2,25,4,24,4,20,4,20,2,17,2,20,4
34、,20,2,22,2,22,16,0xFF,0xFF;void delay(uchar p) uchar i,j; for(;p>0;p-) for(i=181;i>0;i-) for(j=181;j>0;j-);void pause() uchar i,j; for(i=150;i>0;i-) for(j=150;j>0;j-);/*1ms延時(shí)函數(shù)*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=0;j<120;j+);/*按鍵程序*/void key() /按鍵程序if(K1=0)delay
35、_1ms(10); /按鍵去抖動(dòng)if(K1=0)P0=smg_du0;/使數(shù)碼管顯示該音調(diào)的字符while(!K1)m = 8;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器if(K2=0)delay_1ms(10); /按鍵去抖動(dòng)if(K2=0)P0=smg_du1;/使數(shù)碼管顯示該音調(diào)的字符while(!K2)m = 9;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器if(K3=0)delay_1ms(10); /按鍵去抖動(dòng)if(K3=0)P0=smg_du2;/使數(shù)碼管顯示該音調(diào)的字符while(!K
36、3)m = 10;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器if(K4=0)delay_1ms(10); /按鍵去抖動(dòng)if(K4=0)P0=smg_du3;/使數(shù)碼管顯示該音調(diào)的字符while(!K4)m = 11;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器if(K5=0)delay_1ms(10); /按鍵去抖動(dòng)if(K5=0)P0=smg_du4;/使數(shù)碼管顯示該音調(diào)的字符while(!K5)m = 12;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器
37、if(K6=0)delay_1ms(10); /按鍵去抖動(dòng)if(K6=0)P0=smg_du5;/使數(shù)碼管顯示該音調(diào)的字符while(!K6) m = 13;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器if(K7=0)delay_1ms(10); /按鍵去抖動(dòng)if(K7=0)P0=smg_du6;/使數(shù)碼管顯示該音調(diào)的字符while(!K7)m = 14;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)出相應(yīng)頻率的聲音;TR0 = 0; /關(guān)閉定時(shí)器if(K8=0)delay_1ms(10); /按鍵去抖動(dòng)if(K8=0)P0=smg_du7;/使數(shù)碼管顯示該音調(diào)的字符while(!K8)m = 15;TR0 = 1; /打開定時(shí)器/使蜂鳴器發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能能源數(shù)據(jù)分析服務(wù)協(xié)議
- 專利實(shí)施許可備案合同樣本
- 書店招標(biāo)合同樣本
- 減水劑原料銷售合同標(biāo)準(zhǔn)文本
- 中介門店裝修升級合同樣本
- 農(nóng)村房產(chǎn)合同標(biāo)準(zhǔn)文本
- 農(nóng)耕田出租合同樣本
- 買房簽意向合同樣本
- 公司聘請勞務(wù)合同樣本
- 農(nóng)機(jī)運(yùn)輸合同樣本
- 地下水封儲(chǔ)油洞施工方案
- 山東省煙臺龍口市(五四制)2023-2024學(xué)年六年級下學(xué)期期中語文試題(解析版)
- 2025年新部編統(tǒng)編版中學(xué)七年級下冊歷史全冊分課知識點(diǎn)總結(jié)課件105張
- 中央2025年中國日報(bào)社及所屬事業(yè)單位招聘5人筆試歷年參考題庫附帶答案詳解-1
- 2025年中能建投(六盤水)電力限公司社會(huì)招聘14人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 【八下英語外研版】專題08 完形填空(15空)20篇
- 計(jì)算機(jī)一級選擇題真題(含答案)
- 土地用途管制政策考核試卷
- (DB45T 2228.1-2020)《公路養(yǎng)護(hù)預(yù)算編制辦法及定額 第1部分:公路養(yǎng)護(hù)工程預(yù)算編制辦法及定額》
- 材料的性能與規(guī)劃 課件-2024-2025學(xué)年高中技術(shù)蘇教版(2019)必修《技術(shù)與設(shè)計(jì)1》
- 國家安全教育高教-第六章堅(jiān)持以經(jīng)濟(jì)安全為基礎(chǔ)
評論
0/150
提交評論