版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《單片機應(yīng)用與仿真訓(xùn)練》設(shè)計報告</p><p> 基于單片機的電子琴設(shè)計</p><p><b> 摘要</b></p><p> 單片微型計算機是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此
2、,單片機的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。 電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89S51單片機為核心控制元件,設(shè)計一個電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個按鍵和揚聲器。 本文主要對
3、使用單片機設(shè)計簡易電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細闡述。 一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當然對于單片機來產(chǎn)生不</p><p><b>
4、目錄</b></p><p> 1 概述………………………………………………………………………………</p><p> 1.1……………………</p><p><b> 1.2</b></p><p><b> 1.3</b></p><p> 2 系統(tǒng)
5、總體方案及硬件設(shè)計(宋體、小四,加粗,固定值18磅。以下相同要求)</p><p><b> 2.1 </b></p><p><b> 2.2</b></p><p><b> 2.3</b></p><p><b> 3 軟件設(shè)計</b><
6、;/p><p><b> 3.1</b></p><p><b> 3.2</b></p><p><b> 3.3</b></p><p> 4 Proteus軟件仿真</p><p><b> 5課程設(shè)計體會</b><
7、;/p><p><b> 參考文獻</b></p><p><b> 附1:源程序代碼</b></p><p><b> 附2:系統(tǒng)原理圖</b></p><p><b> 1概述</b></p><p> 1. 1 電子琴技
8、術(shù)狀況</p><p> 本次設(shè)計提出了用AT89S52單片機為核心控制元件,設(shè)計一個簡易的電子琴. 本方案以AT89S52單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊在主控模塊上設(shè)有7個按鍵和揚聲器。根據(jù)使用者的操作隨意彈奏想要表達的音樂。一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當然對于單片機來產(chǎn)生不同的頻率非常
9、方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號。</p><p> 1. 2 任務(wù)與要求</p><p> 實現(xiàn)電子琴發(fā)聲控制系統(tǒng);要求電路實現(xiàn)如下功能:</p><p> 利用蜂鳴器作為發(fā)聲部件,兩個數(shù)碼管作為顯示部件,設(shè)置10個按鍵,實現(xiàn)高音、中音、低音的1、2、3、4、5、6、7的發(fā)音。并在存儲一首歌曲的內(nèi)容,可以實現(xiàn)自動播放。<
10、/p><p> 用PROTEUS實現(xiàn)的電子琴仿真設(shè)計</p><p> 說明:單片機的工作時鐘頻率為11.0592MHz。</p><p> 1. 3 主要芯片簡介</p><p> AT89C52是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次
11、的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及80C52引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。 AT89C52具有如下特點:40個引腳(引腳圖如圖1-1所示),4k Bytes Flash片內(nèi)程序存儲器,128 byt
12、es的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDTC)電路,片內(nèi)時鐘振蕩器。 </p><p> 此外,AT89C52設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而
13、保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p> 圖1-1 AT89C522 系統(tǒng)總體方案及硬件設(shè)計</p><p> 本系統(tǒng)采用單片機AT89C52為電子琴的控制核心,系統(tǒng)主要包括播放模塊、安鍵控制模塊。下面對各模塊的設(shè)計逐一進行論證比較??傠娐穲D見附頁二。</p&
14、gt;<p> 2. 1系統(tǒng)總體方案</p><p> 2.1.1定時/計數(shù)器的設(shè)計和狀態(tài)字定義:</p><p> 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P1.0反相,然后重復(fù)計時再反相。就可在P1.0引腳上得到此頻率的脈沖。利用AT89C51的內(nèi)部定時器使其工作計數(shù)器模式
15、(MODE1)下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數(shù)器計時956μs/1μs=956,每計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。計數(shù)脈沖值與頻率的關(guān)系式是:N=fi÷2÷fr,式中,N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計數(shù)初值T的求法如下:
16、T=65536-N=65536-fi÷2÷fr</p><p> 例如:設(shè)K=65536,fi=1MHz,求中音DO(261Hz)。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。</p><p>
17、 單片機12MHZ晶振,中音符與計數(shù)T0相關(guān)的計數(shù)值如表所示:</p><p> 采用查表程序進行查表時,可以為這個音符建立一個表格,有助于單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù):低音0-19之間,中音在20-39之間,高音在40-59之間</p><p> 用單片機播放音樂,或者彈奏電子琴,實際上是按照特定的頻率,輸出一連串的方波。為了輸出合適的方波,首先應(yīng)該知道音符與頻率的關(guān)系。&l
18、t;/p><p> 2. 1. 2音調(diào)數(shù)據(jù)表單片機發(fā)出不同頻率的方波,人聽起來,就是不同的音調(diào)。上表中的頻率數(shù)值,有些過多,去掉不常用的黑鍵頻率,只是把白鍵對應(yīng)的數(shù)據(jù)存放在單片機中,即可滿足絕大部分的應(yīng)用需求。定義音調(diào)數(shù)據(jù)表的程序如下: DW 63628,63835,64021,64103,64260,64400,64524 ;64580,低音區(qū):1 2 3 4 5 6 7 DW 64580,64671,
19、64777,64820,64898,64968,65030 65058中音區(qū):1 2 3 4 5 6 7 DW 65058,65110,65157,65178,65217,65252,65283 65312高音區(qū):1 2 3 4 5 6 7</p><p> 把這個數(shù)據(jù)表,放在程序中,需要播音的時候,就從表中取出一個數(shù)據(jù)送到定時器,當定時器溢出中斷的時候,再對輸出引腳取反,那么,在揚聲器中,即可聽到上表中頻
20、率的聲音。</p><p> 音樂的音拍,一個節(jié)拍為單位(C調(diào))</p><p> 2. 2總體硬件組成框圖</p><p> 圖2-1 總體硬件組成框圖</p><p> 實驗中每按下一個琴鍵,單片機能夠檢測到鍵盤的按鍵,并根據(jù)按鍵的位置,通過程序來控制,使喇叭發(fā)出不同頻率(音調(diào))的聲音,聲音延遲一段時間,等到按鍵放開之后,聲音停
21、止。然后再繼續(xù)掃描,看是否有鍵按下。如此循環(huán),即可實現(xiàn)基本的琴鍵功能。</p><p> 2. 2. 1 子系統(tǒng)模塊一</p><p> LED顯示模塊如圖2-2所示,利用AT89S51單片機的P0端口的P0.0-P0.7連接到一個七段數(shù)碼管的a-h(huán)的筆段上,數(shù)碼管的公共端接電源。</p><p> 矩陣掃描顯示當前按鍵模塊如下:</p><
22、;p> 2. 2. 2 子系統(tǒng)模塊二</p><p> 播放模塊是喇叭構(gòu)成。它幾乎不存在噪聲,音響效果較好,而且由于所需驅(qū)動功率較小,且價格低廉,所以,被廣泛應(yīng)用。</p><p> 2. 2. 3 子系統(tǒng)模塊三</p><p> 電子琴設(shè)有7個按鍵,分別代表7個音符,包括中音段的全部音符。通過軟硬件設(shè)計,按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實現(xiàn)模式轉(zhuǎn)換
23、,啟動電子琴。然后通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對應(yīng)的程序人口,實現(xiàn)各種琴鍵的聲音。</p><p> 矩陣鍵盤模塊圖如下:</p><p> 2. 2 .4 AT89C52復(fù)位模塊</p><p> 2. 2. 5 AT89C52晶振模塊</p><p><b> 3 軟件設(shè)計</b>&
24、lt;/p><p> 軟件是該電子琴控制系統(tǒng)的重要組成部分,在系統(tǒng)的軟件設(shè)計中我們也才用了模塊化設(shè)計,將系統(tǒng)的各部分功能編寫成子模塊的形式,這樣增強了系統(tǒng)軟件的可讀性和可移植性。</p><p><b> 3. 1軟件流程</b></p><p> 3. 1. 1 音階鍵識別</p><p> 3. 1. 2 內(nèi)置歌
25、曲輸出</p><p> 3. 1. 3 總流程圖</p><p><b> 3. 2 軟件程序</b></p><p> 本系統(tǒng)的上位機軟件主要是編輯電子琴播放狀態(tài)的內(nèi)容,在設(shè)計中采用匯編語言編寫了電子琴控制系統(tǒng)控制和播放內(nèi)容的程序。見附錄一。</p><p> 4 Proteus軟件仿真</p>
26、<p> 圖4-1 低音顯示</p><p> 圖4-2 中音顯示</p><p> 圖4-3 高音顯示</p><p> 圖4-4 歌曲播放</p><p> 圖4-5 音階5</p><p><b> 圖4-6 音階7</b></p>&l
27、t;p><b> 5課程設(shè)計體會</b></p><p> 通過這次單片機課程設(shè)計,我收獲很多。在這次設(shè)計過程中,第一次接觸實物,硬件的設(shè)計跟焊接都要我們自己動手,軟件的編程也要我們不斷的調(diào)試,最終一個能完成課程設(shè)計的勞動成果出來了,很高興它能按著設(shè)計的思想和要求運行起來。</p><p> 當然,這其中也有很多的問題。第一,不夠細心比如由于粗心大意焊錯了
28、線,由于對課本理論的不熟悉導(dǎo)致編程出現(xiàn)錯誤。第二,是在學(xué)習(xí)態(tài)度上,這次課程設(shè)計是對我們的學(xué)習(xí)態(tài)度的一次檢驗。對于這次單片機綜合課程設(shè)計,我的第一大心得體會就是作為一名工程技術(shù)人員,要求具備的首要素質(zhì)絕對應(yīng)該是嚴謹。我們這次設(shè)計所遇到的多半問題多數(shù)都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。</p><p> 通過
29、這次單片機課程設(shè)計,我們加深了對單片機理論的理解,將理論很好的應(yīng)用到實際當中去。</p><p> 在實習(xí)之前,我們要對所用單片機的內(nèi)部結(jié)構(gòu)有一個比較系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設(shè)計程序時,不能妄想一次性就將整個程序設(shè)計好,反復(fù)修改,不斷改進是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就明白你的思路,這樣也
30、為資料的保存與交流提供了方便;在實習(xí)過程中遇到問題是很正常的,但我們應(yīng)該講每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。但是從中學(xué)到的知識會讓我們受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力提高都會受益于我在今后的學(xué)習(xí)、工作和生活中。</p><p> 在設(shè)計過程中和完成后,我認真總結(jié),有以下體會:</p><p> 此次課程設(shè)計是在上學(xué)期《單片機原理與技術(shù)》的基礎(chǔ)上
31、進行的,整個實驗設(shè)計過程相對比較熟悉,是把以前學(xué)習(xí)的零碎的內(nèi)容系統(tǒng)的整合學(xué)習(xí)。</p><p> 程序調(diào)試時,應(yīng)該講各模塊單獨調(diào)試,提高調(diào)試的速度。</p><p> 本實驗要充分了解電子琴的程序,按照要求編譯。</p><p> 在經(jīng)過兩周的設(shè)計過程中,通過大量的查閱資料,認真的研究教材,并向指導(dǎo)老師請教很多問題,自己對單片機有了更為深刻的理解。我們認真演技
32、原理,畫出程序流程圖,通過源程序,做出電路圖,在仿真中發(fā)現(xiàn)很多問題,通過仔細研究,不但解決了問題,還學(xué)到了在平時的學(xué)習(xí)中學(xué)不到的東西。</p><p> 在設(shè)計過程中,進一步的掌握Proteus、Word、Wave、Keil等軟件的應(yīng)用,也了解了單片機開發(fā)的基本環(huán)節(jié)。</p><p><b> 參考文獻</b></p><p> [1]
33、余發(fā)山、王福忠. 單片機原理及應(yīng)用技術(shù). 中國礦業(yè)大學(xué)出版社.2008年6月第1 版</p><p> [2] 楊凌霄. 微型計算機原理與應(yīng)用,中國礦業(yè)大學(xué)出版社.2008年8月第一版</p><p> [3] 康華光. 電子技術(shù)基礎(chǔ)(數(shù)字部分),高等教育出版社.第五版</p><p> [4] 鄧紅. 單片機實驗與應(yīng)用設(shè)計教程 出版日期:2004年05月第
34、1版</p><p> [5] 以及其他的網(wǎng)上資源</p><p><b> 附1 源程序代碼</b></p><p> #include<reg52.h></p><p> #defineucharunsigned char</p><p> void Run(voi
35、d);</p><p> void KeyScan(void);</p><p> void PlayKey(void);</p><p> void delay_1ms(uchar i);</p><p> void PlayMusic(void);</p><p> void DisPlay(void);
36、</p><p> sbitBeep=P3^7;</p><p> ucharTh0,Tl0;</p><p> ucharflag=0;//模式,0表示音樂,1表示按鍵</p><p> ucharkey=0;//按鍵代號</p><p><b> uchara;</b>&l
37、t;/p><p> uchargaodi=0;</p><p> ucharcodeMusicCode[]={0XFc,0X44,0XFc,0Xac,0XFd,0X09,0XFd,0X34,</p><p> 0XFD,0X82,0XFD,0Xc8,0XFD,0X06,0XFb,0X04,</p><p> 0Xfb,0X90,0X
38、fc,0X0c,0Xfe,0X22,0Xf9,0X5b,0Xfa,0x15};</p><p> ucharcodeMusic[]={0X88,0X14,0X24,0X36,0X42,0X34,0X14,0X28,0X14,0X94,</p><p> 0X1f,0X88,0X14,0X24,0X34,0X32,0X42,0X54,0X14,</p><p>
39、; 0X46,0X32,0X54,0X22,0X32,0X32,0X22,0X2C,0X38,0X54,0X74,</p><p> 0X76,0X62,0X68,0X54,0X52,0X62,0X74,0X62,0X52,0X3f,</p><p> 0X46,0X42,0X54,0X64,0X54,0X42,0X32,0X28,0X0a4,0Xa2,</p><
40、;p> 0X92,0X84,0X94,0X1f,0Xb8,0X68,0X46,0X52,0X68,</p><p> 0X74,0X72,0X72,0X74,0X62,0X52,0X3f,0Xb8,0X68,</p><p> 0X46,0X52,0X68,0X64,0X62,0X62,0X64,0X42,0X32,0X2f,</p><p> 0X5
41、8,0X14,0X24,0X36,0X42,0X34,0X12,0X12,0X26,0X22,0X24,0X22,0X12,</p><p> 0X94,0X9c,0Xa8,0Xa6,0X92,0X84,0X64,0X54,0X22,0X22,0X46,0X42,0X44,0X32,0X22,0X5f,</p><p><b> 0XFF};</b></p&
42、gt;<p> ucharcodeKeyCode[]={0XFF,0XFF,</p><p> 0xF8,0x8B,0xF9,0x5B,0xFA,0x14,0xFA,0x66,0xFB,0x03,0xFB,0x8F,0xFC,0x0B,</p><p> 0xFC,0x43,0xFC,0xAB,0xFD,0x08,0xFD,0x33,0xFD,0x81,0xFD,0
43、xC7,0xFE,0x05,</p><p> 0xFE,0x21,0xFE,0x55,0xFE,0x84,0xFE,0X99,0XFE,0xC0,0xFE,0xE3,0xFF,0x02,</p><p><b> };</b></p><p> void main(void)</p><p><
44、b> {</b></p><p><b> P1=0XFF;</b></p><p><b> P2=0;</b></p><p> TMOD=0X01;</p><p><b> IT0=1;</b></p><p><
45、;b> TR0=0;</b></p><p><b> EX0=1;</b></p><p><b> ET0=1;</b></p><p><b> EA=1;</b></p><p><b> while(1)</b><
46、;/p><p><b> {</b></p><p> KeyScan();</p><p><b> Run();</b></p><p> DisPlay();</p><p><b> }</b></p><p>&l
47、t;b> }</b></p><p> void Run(void)</p><p><b> {</b></p><p> if(flag==0)</p><p> PlayMusic();</p><p><b> else</b></
48、p><p> PlayKey();</p><p><b> }</b></p><p> void KeyScan(void)</p><p><b> {</b></p><p> if(P1==0X7f)</p><p><b>
49、 {</b></p><p> delay_1ms(12);</p><p> if(P1==0X7f)</p><p><b> gaodi++;</b></p><p> if(gaodi>2)</p><p><b> gaodi=0;</b&g
50、t;</p><p><b> a=gaodi;</b></p><p><b> }</b></p><p> else if(P1==0XFE)</p><p><b> {</b></p><p> delay_1ms(12);</
51、p><p> if(P1==0XFE)</p><p><b> key=1;</b></p><p><b> a=key;</b></p><p><b> }</b></p><p> else if(P1==0XFD)</p>
52、<p><b> {</b></p><p> delay_1ms(12);</p><p> if(P1==0XFD)</p><p><b> key=2;</b></p><p><b> a=key;</b></p><p>
53、;<b> }</b></p><p> else if(P1==0XFB)</p><p><b> {</b></p><p> delay_1ms(12);</p><p> if(P1==0XFB)</p><p><b> key=3;<
54、/b></p><p><b> a=key;</b></p><p><b> }</b></p><p> else if(P1==0XF7)</p><p><b> {</b></p><p> delay_1ms(12);<
55、;/p><p> if(P1==0XF7)</p><p><b> key=4;</b></p><p><b> a=key;</b></p><p><b> }</b></p><p> else if(P1==0XEF)</p>
56、;<p><b> {</b></p><p> delay_1ms(12);</p><p> if(P1==0XEF)</p><p><b> key=5;</b></p><p><b> a=key;</b></p><p&
57、gt;<b> }</b></p><p> else if(P1==0XDF)</p><p><b> {</b></p><p> delay_1ms(12);</p><p> if(P1==0XDF)</p><p><b> key=6;&l
58、t;/b></p><p><b> a=key;</b></p><p><b> }</b></p><p> else if(P1==0XBF)</p><p><b> {</b></p><p> delay_1ms(12);&
59、lt;/p><p> if(P1==0XBF)</p><p><b> key=7;</b></p><p><b> a=key;</b></p><p><b> }</b></p><p><b> else</b>&
60、lt;/p><p><b> return;</b></p><p><b> }</b></p><p> void PlayKey(void)</p><p><b> {</b></p><p> if(key==0)</p>
61、<p><b> return;</b></p><p><b> else</b></p><p><b> {</b></p><p> Th0=KeyCode[gaodi*14+key*2];</p><p> Tl0=KeyCode[gaodi*14
62、+key*2+1];</p><p><b> TR0=1;</b></p><p> delay_1ms(187);</p><p><b> TR0=0;</b></p><p><b> key=0;</b></p><p><b&g
63、t; }</b></p><p><b> }</b></p><p> time0() interrupt 1 </p><p><b> {</b></p><p><b> TH0=Th0;</b></p><p><b
64、> TL0=Tl0;</b></p><p> Beep=~Beep;</p><p><b> }</b></p><p> void interrupt0() interrupt 0</p><p><b> {</b></p><p> f
65、lag=~flag;</p><p> if(flag==0)</p><p><b> {</b></p><p><b> a=8;</b></p><p><b> P2=0;</b></p><p><b> }</b&
66、gt;</p><p><b> }</b></p><p> void delay_1ms(uchar i)</p><p><b> {</b></p><p> uchar j,k;</p><p> for(j=0;j<i;j++)</p>
67、<p> for(k=0;k<148;k++)</p><p><b> ;</b></p><p><b> } </b></p><p> void PlayMusic(void)</p><p><b> {</b></p>&
68、lt;p> uchar yinfu,jiepai;</p><p> uchar i,j;</p><p> for(i=0;Music[i]!=0XFF;i++)</p><p><b> {</b></p><p> yinfu=(Music[i]>>4);</p><
69、p> jiepai=(Music[i]&0X0F);</p><p> if(yinfu==0)</p><p><b> continue;</b></p><p> Th0=MusicCode[(yinfu-1)*2];</p><p> Tl0=MusicCode[(yinfu-1)*2+1
70、];</p><p><b> TR0=1;</b></p><p> for(j=jiepai;j>0;--j)</p><p><b> {</b></p><p> delay_1ms(187);</p><p><b> } </b&g
71、t;</p><p><b> TR0=0;</b></p><p> if(flag!=0)</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b>&l
72、t;/p><p> void Display(void)</p><p><b> {</b></p><p><b> switch(a)</b></p><p><b> {</b></p><p> case 0: P2=0X3F;brea
73、k;</p><p> case 1:P2=0X06;break;</p><p> case 2:P2=0X5B;break;</p><p> case 3:P2=0X4F;break;</p><p> case 4:P2=0X66;break;</p><p> case 5:P2=
74、0X6D;break;</p><p> case 6:P2=0X7D;break;</p><p> case 7:P2=0X07;break;</p><p> default: P2=0X00;break;</p><p><b> }</b></p><p><b&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計---基于單片機的電子琴設(shè)計
- 單片機簡易電子琴單片機課程設(shè)計
- 單片機課程設(shè)計--基于51單片機的簡易電子琴
- 單片機課程設(shè)計---電子琴
- 單片機課程設(shè)計(電子琴)
- 單片機課程設(shè)計-電子琴
- 單片機課程設(shè)計——電子琴
- 電子琴課程設(shè)計--基于單片機的電子琴設(shè)計
- 電子琴課程設(shè)計--基于單片機的電子琴設(shè)計
- 基于單片機的電子琴課程設(shè)計
- 基于單片機的電子琴課程設(shè)計
- 電子琴課程設(shè)計-- 基于單片機的電子琴設(shè)計
- 單片機課程設(shè)計---電子琴設(shè)計
- 單片機課程設(shè)計---電子琴設(shè)計
- 單片機電子琴課程設(shè)計--基于單片機的可存儲式電子琴設(shè)計
- 單片機課程設(shè)計簡易電子琴
- 簡易電子琴單片機課程設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 簡易電子琴單片機課程設(shè)計
- 單片機課程設(shè)計報告--電子琴
評論
0/150
提交評論