2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  姓 名 王 坤 杰 </p><p>  專 業(yè) 班 級 11電子4 </p><p>  論 文 名 稱 簡易電子琴 </p><

2、;p>  指 導(dǎo) 教 師 孫德剛 </p><p><b>  附件1:</b></p><p>  畢業(yè)設(shè)計(論文)任務(wù)書</p><p>  屆: 11 專業(yè)(班): 電子4 班 姓名: 王坤杰 </p>

3、<p><b>  進度安排</b></p><p><b>  指導(dǎo)教師評語</b></p><p>  指導(dǎo)教師簽名: </p><p><b>  評閱教師評語</b></p><p>  評閱教師簽名: </p&g

4、t;<p>  答辯小組組長簽名: </p><p>  年 月 日</p><p><b>  摘 要:</b></p><p>  本文介紹了一種由AT89S51單片機、鍵盤、蜂鳴器、數(shù)碼管等模塊組成的簡易電子琴的實施方案。</p><p>  用AT89C51單片機為核心

5、控制元件,設(shè)計一個簡單的電子琴。以單片機作為主控核心,與鍵盤、蜂鳴器、數(shù)碼管等模塊組成核心主控制模塊,在主控模塊上設(shè)有8個按鍵和蜂鳴器。定時器按設(shè)置的定時參數(shù)產(chǎn)生中斷,由于定時參數(shù)不同,就會發(fā)出不同頻率的脈沖,不同頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出不同音調(diào)。</p><p>  關(guān)鍵詞:89c51單片機、鍵盤控制、數(shù)碼管、蜂鳴器</p><p><b>  Abstra

6、ct</b></p><p>  This paper introduces a kind of AT89S51, keyboard, buzzer,</p><p>  digital tube composed of modules such as implementing scheme of </p><p>  electronic organ

7、. </p><p>  Use AT89C51 as the core control components, design a simple electronic organ. With single chip microcomputer as control core, and keyboard, buzzer, digital tube core modules suc

8、h as main control module, on the main control module has eight buttons and a buzzer. Timer interrupt according to set timing parameters, because of the different timing parameters will make different pulse frequency, dif

9、ferent frequency pulse after speaker driver circuit amplifier </p><p>  filtering, would be a different tone.</p><p>  Keywords: 89 c51, the keyboard control, digital tube, the buzzer</p>

10、<p><b>  .</b></p><p><b>  目錄</b></p><p><b>  畢業(yè)設(shè)計任務(wù)書1</b></p><p><b>  摘要3</b></p><p><b>  目 錄4</b>

11、;</p><p><b>  前 言5</b></p><p>  一、 系統(tǒng)基本設(shè)計思路6</p><p>  二、 單元電路方案論證6</p><p>  2.1 控制器模塊6</p><p>  2.2 發(fā)聲模塊7</p><p>  2.3 編程軟件模

12、塊8</p><p>  2.4 最終方案8</p><p>  三、硬件電路的設(shè)計8</p><p>  3.1單片機的簡介9</p><p>  3.2 時鐘電路11</p><p>  3.3音頻放大電路12</p><p>  四、系統(tǒng)軟件的調(diào)試仿真13</p>

13、<p><b>  五、結(jié) 論14</b></p><p><b>  致謝15</b></p><p><b>  參考文獻16</b></p><p>  附錄 1 主要源程序17</p><p><b>  前 言</b>&

14、lt;/p><p>  單片機因其體積小,功能強,價格低廉而得到廣泛應(yīng)用,同時隨著我國經(jīng)濟的飛速發(fā)展,單片機在越來越多的領(lǐng)域得到了廣泛的應(yīng)用,現(xiàn)在國內(nèi)的單片機多用于電話,玩具和LCD等產(chǎn)品,預(yù)計在未來,利用單片機發(fā)明的產(chǎn)品會越來越多,作為一名應(yīng)用電子的應(yīng)屆畢業(yè)生來說,理解和掌握單片機的工作原理和使用技巧是必備的技能,基于這種考慮,我這次畢業(yè)設(shè)計的題目為簡易電子琴。</p><p>  鋼琴,自

15、從它發(fā)明的那天起,就成為人類的朋友,有的人們不能負擔(dān)起鋼琴的高額價錢,但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展,電子琴的發(fā)明讓人們找到了能與鋼琴媲美的聲音。怎樣讓我們的電子琴隨身攜帶呢?這就要求人們不斷設(shè)計出新型電子琴。</p><p>  我所設(shè)計的該產(chǎn)品時根據(jù)自身的興趣和愛好所設(shè)計的,通過對傳統(tǒng)電子琴的認識和了解,知道了傳統(tǒng)的電子琴是利用單片機的匯編語言的編程來實現(xiàn)的,而且功能單一,只能彈奏而不能隨意的播放音樂,

16、我所設(shè)計的產(chǎn)品是基于對89c51單片機的深入理解對傳統(tǒng)電子琴的小小的改革和創(chuàng)新,并且以簡單的C語言程序替代了復(fù)雜的匯編語言程序,聲和光是新電子琴的主題,我相信在聲光電子琴的不斷革新達到人們所需娛樂設(shè)備的標準的時候,電子琴會被投入到批量生產(chǎn)之中。</p><p>  下面就是制作電子琴的具體過程。</p><p>  一、 系統(tǒng)基本設(shè)計思路</p><p>  此設(shè)計

17、是在LED小燈上顯示燈光的變換,蜂鳴器播放彈奏的曲子。電路包括:鍵盤、單片機及LED顯示電路,聲音電路。</p><p><b>  各部分說明:</b></p><p>  鍵盤用于彈奏音樂,八個按鍵8種音符。</p><p>  單片機通過輸出各種電脈沖信號驅(qū)動控制各部分正常工作。</p><p>  單片機發(fā)送的信

18、號分別經(jīng)過LED顯示電路通過譯碼最終在LED小燈和聲音電路通過蜂鳴器顯示出來。</p><p>  系統(tǒng)工作過程:單片機要產(chǎn)生音頻脈沖,主要處理過程是在CPU中完成的,CPU會隨時對音符輸入信號進行讀取數(shù)據(jù)的操作。在讀取了相應(yīng)的寄存器的值后,CPU將讀取的值進行處理,再通過I/O口把音樂通過揚聲器播放出來。</p><p>  二、單元電路方案論證</p><p>

19、  根據(jù)設(shè)計要求,本系統(tǒng)主要由控制器模塊、顯示模塊和輸入模塊構(gòu)成。為較好的實現(xiàn)各模塊的功能,我們分別設(shè)計了以下幾種方案并分別進行了論證。</p><p><b>  2.1 控制器模塊</b></p><p>  方案1:采用凌陽系列單片機為系統(tǒng)的控制器</p><p>  凌陽系列單片機可以實現(xiàn)各種復(fù)雜的邏輯功能,模塊大,密度高,它將所有器件

20、集成在一塊芯片上,減少了體積,提高了穩(wěn)定性。凌陽系列單片機提高了系統(tǒng)的處理速度,適合作為大規(guī)模實時系統(tǒng)的控制核心。</p><p>  方案2:采用51系列作為系統(tǒng)控制器</p><p>  單片機算術(shù)運算功能強,軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制。由于其功耗低、體積較小、技術(shù)成熟和成本低等優(yōu)點,在各個領(lǐng)域應(yīng)用廣泛。而且抗干擾性能好。</p><

21、p>  因51單片機價格比凌陽系列低得多,且本設(shè)計不需要很高的處理速度,從經(jīng)濟和方便使用角度考慮,本設(shè)計選擇了方案2。</p><p><b>  2.2 發(fā)聲模塊</b></p><p>  發(fā)聲模塊是本設(shè)計的最主要的部分。</p><p>  基本方案:發(fā)生電路是這次設(shè)計電路中最重要的組成部分,他承載著把單片機所產(chǎn)生的聲音信號放大并輸

22、出的重要作用,而我的設(shè)計中的發(fā)聲電路主要是由兩個CS9013組成。CS9013是一種小功率的放大管,屬于NPN型號三極管,而對三極管引腳的判斷有以下方法。</p><p>  (1)判斷三極管的基極。對于NPN型號的三極管,用黑表筆接某一個電極,紅表筆分別接另外兩個電極,若測量電阻值兩個都小,調(diào)換表筆后被測電阻值都較大,則可判斷第一次測量中黑表筆所接的是基極;如果測量值一大一小,相差很大,則第一次測量中黑表筆接的

23、不是基極,應(yīng)該更換其他電極重測。</p><p>  (2)測量三極管發(fā)射極e和集電極c。三極管基極確定后,通過交換表筆,兩次測量e,c極間的電阻,如果兩次測量結(jié)果不相等,其中測得電阻值較小的一次為紅表筆的是e極黑表筆接的是c極。對于PNP型號的三極管,方法與NPN的相似,只是紅黑表筆的作用相反,在測量e,c極間電阻時要注意,由于三極管的V(BR)CEO很小,很容易將發(fā)射結(jié)擊穿。</p><p

24、>  當(dāng)我們?nèi)龢O管的管腳判斷結(jié)束以后,我們就可以用兩個三極管構(gòu)成一個達林頓結(jié)構(gòu)。首先當(dāng)單片機P1.0口輸出一個高電平,由兩個三極管構(gòu)成的達林頓成能導(dǎo)通,導(dǎo)通后又能對電流又一定的放大作用,這樣傳到揚聲器時信號能讓我們聽的更清楚。</p><p><b>  圖1</b></p><p>  2.3 編程軟件模塊</p><p>  方案1:

25、采用匯編語言編程</p><p>  匯編語言指令是用一些具有相應(yīng)含義的助憶符來表達的,所以,它要比機器語言容易掌握和運用,但另一方面,它要直接使用CPU的資源,相對高級程序設(shè)計語言來說,它又顯得難掌握。</p><p>  方案2:采用C語言編程</p><p>  C語言與其他高級語言相比,具有運算符的豐富性、語法表述的靈活性、對軟硬件操作的兼容性、輸入輸出方式

26、的新穎性等主要特征.深入分析研究這些特征,可以加深對C語言的認識;正確應(yīng)用這些特征,可以靈活高效地解決各種實際問題.</p><p>  因為我在大學(xué)期間對匯編語言沒有深入的了解,而且在編程時一直用C語言,所以我選擇了方案2。</p><p><b>  2.4 最終方案</b></p><p>  經(jīng)過反復(fù)論證,最終確定了如下方案:</

27、p><p> ?。?)采用STC89C51單片機作為主控制器。</p><p> ?。?)采用達林頓效應(yīng)使音樂信號放大</p><p> ?。?)采用C語言編程</p><p><b>  三、硬件電路的設(shè)計</b></p><p>  一個完整的控制系統(tǒng),單純依靠一塊單片機是遠遠不夠的。它必須與外圍

28、電路元件相互搭配,共同完成任務(wù)。硬件電路的設(shè)計主要包括芯片89C51,、LED顯示電路、振蕩電路、音頻電路等組成。</p><p>  簡易電子琴硬件電路圖如圖2所示:</p><p><b>  圖2</b></p><p>  3.1 單片機的簡介</p><p>  單片微型計算機(Single Chip Micr

29、ocomputer)簡稱單片機,是指集成在一塊芯片上的計算機,它具有結(jié)構(gòu)簡單、控制功能強、可靠性高、體積小、價格低、等優(yōu)點。單片機技術(shù)作為計算機技術(shù)的一個重要分支,廣泛地應(yīng)用于工業(yè)控制、智能化儀器儀表、家用電器、電子玩具等各領(lǐng)域。盡管單片機種類很多,但無論是從世界范圍還是從全國范圍來看,使用最為廣泛的應(yīng)屬MCS-51系列單片機。其生產(chǎn)廠家有:Intel公司、Atmel公司、Philips公司等。本設(shè)計采用Atmel公司的AT89S51,

30、其它廠家單片機這里不再多說,以下是對AT89S51的介紹。</p><p>  Atmel公司生產(chǎn)的AT89S51單片機是一種低功耗/低電壓、高性能的8位單片機,內(nèi)部除CPU外,還包括128B的內(nèi)部用戶數(shù)據(jù)存儲器RAM,4KB的內(nèi)部用戶程序存儲器,4個8位并行可編程I/0口,2個16位計數(shù)/定時器,5個中斷源,2個優(yōu)先級別,1個可編程的串行通信口。</p><p>  STC89C51是一

31、種帶8K字節(jié)可編程可檫除只讀存儲器的低電壓、高性能COMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。</p><p>  單片機引腳圖如圖3所示。</p><p>  圖3 STC89C51單片機引腳圖</p><p>  從外部結(jié)構(gòu)圖我們可以看到,S51單片機有40個管腳。正電源

32、和地線兩根,外置石英振蕩器的時鐘線兩根,一個復(fù)位端RESET,/EA,ALE,/PSEN三根線,P0-P3共32個I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對這些引腳的功能加以說明:</p><p>  (1)主電源引腳Vcc和Vss </p><p>  Vcc(40腳):主電源接+5V </p><p>  Vss(20腳):接地 </p><

33、;p>  (2)時鐘電路引腳XTAL1和XTAL2:接外部晶體振蕩器的引線端。當(dāng)使用芯片內(nèi)部時鐘時,兩引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。這兩個引腳連接的電路成為時鐘電路,用來產(chǎn)生單片機正常工作時所需要的時鐘脈沖信號。</p><p>  (3)控制信號RST/Vpd、ALE/(/PROG) 、/ PSEN和 (/EA)/Vpp </p><p>

34、;  RST/Vpd(9腳):復(fù)位端。高電平有效,保持在2個機器周期寬度以上,使單片機復(fù)位,用于完成單片機的復(fù)位初始化操作。在進行單片機應(yīng)用系統(tǒng)設(shè)計時,這個引腳一定要連接相應(yīng)的電路,即復(fù)位電路。該引腳有復(fù)用功能,Vpd為備用電源輸入端,防止主電源掉電。</p><p>  (4)輸入/輸出引腳P0、P1、P2和P3口 </p><p>  P0.0~P0.7(39~32腳):訪問片外存貯器

35、時作為低八位地址線和八位數(shù)據(jù)線(復(fù)用)。負載能力為8個LSTTL門。</p><p>  P1.0~P1.7(1~8腳): 8位準雙向I/O口。負載能力為3個LSTTL門。 </p><p>  P2.0~P2.7(21~28腳):訪問片外存貯器時作為高八位地址線。</p><p>  P3.0~P3.7(10~17腳):8位準雙向I/O口。負載能力為3個LSTTL

36、門。另外還有專門的第二功能。 </p><p><b>  P3口的第二功能是</b></p><p>  P3.0(10腳): RXD(串行口輸入端)</p><p>  P3.1(11腳): TXD(串行口輸出端) </p><p>  P3.2(12腳): /INT0(外部中斷0輸入端) </p>&

37、lt;p>  P3.3(13腳): /INT1(外部中斷1輸入端) </p><p>  P3.4(14腳): T0(定時器/計數(shù)器0外部輸入端) </p><p>  P3.5(15腳): T1(定時器/計數(shù)器1外部輸入端) </p><p>  P3.6(16腳): /WR(片外數(shù)據(jù)存貯器寫選通信號輸出端) </p><p>  P

38、3.7(17腳): /RD(片外數(shù)據(jù)存貯器讀選通信號輸出端)</p><p><b>  3.2 時鐘電路</b></p><p>  STC89C51內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。用于產(chǎn)生整個單片機運行的脈沖時序,系統(tǒng)允許的晶振頻率一般位6MHz和12MHz,在應(yīng)用精度要求較高的場合一般選用11.0592MHz,可以使定時器/計數(shù)器更精確。</p

39、><p>  STC89C51內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部時鐘在此不做詳細介紹。外部方式的時鐘電路如圖4所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率在12MHz左右的方波信號。</p><p>  圖4 89c51內(nèi)部時鐘電路</

40、p><p><b>  3.3音頻放大電路</b></p><p>  使用PNP管來放大,其中發(fā)射極接5V電源,集電極接喇叭,電路中的電容是用來隔離直流電用的。</p><p>  PNP管放大原理:當(dāng)PNP管的VC<VB<VE時,使得集電結(jié)反偏,發(fā)射結(jié)正偏時,管子的發(fā)射極電流流入管子,基極電流和集電極電流流出管子,且集電極電流跟基極

41、電流之間成β關(guān)系,三極電流滿足IE=IB+IC=IB(1+β·IB)。即,基極電流可以控制集電極電流,這種控制作用就稱為管子的放大作用。本課程設(shè)計的音頻放大電路圖如圖5下所示</p><p><b>  圖5</b></p><p>  四、系統(tǒng)軟件的調(diào)試仿真</p><p>  硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片

42、機試運行。</p><p>  這里我們使用Proteus軟件進行仿真,加載編譯好的.HEX即文件到單片機后,</p><p>  點擊運行按鈕即可,仿真電路圖如圖6所示:(當(dāng)我們按鍵時如果成功就會聽到我們想要的音樂)</p><p><b>  圖6</b></p><p><b>  五、結(jié) 論</

43、b></p><p>  通過對自己在大學(xué)三年時間里所學(xué)的知識的回顧,并充分發(fā)揮對所學(xué)知識的理解和對畢業(yè)設(shè)計的思考及書面表達能力,最終完成了本設(shè)計。這為自己今后進一步深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗。設(shè)計的過程不是一帆風(fēng)順,遇到過各種各樣的問題。特別是設(shè)計軟件時,一些很細小的問題都可能導(dǎo)致功能性的錯誤,修改了多次才通過仿真。在設(shè)計過程中我發(fā)現(xiàn)自己對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,所以也利用圖書

44、館、網(wǎng)絡(luò)資源查閱了大量文獻資料,也請教了老師和同學(xué)。同時在具體的制作過程中我們發(fā)現(xiàn)一些書本上的知識與實際的應(yīng)用存在著一定的差距,書本上的知識很多都是理想化后的結(jié)論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應(yīng)用時這些是不能被忽略的,我們不得不考慮這方面的問題,這也讓我更深刻地體會到在今后的學(xué)習(xí)工作中也要注重理論聯(lián)系實際。</p><p>  撰寫論文的過程也是專業(yè)知識的學(xué)習(xí)過程,它使我運用已有的專業(yè)基礎(chǔ)知

45、識,對其進行設(shè)計,分析和解決一個理論問題或?qū)嶋H問題,把知識轉(zhuǎn)化為能力的實際訓(xùn)練,培養(yǎng)了我運用所學(xué)知識解決實際問題的能力</p><p><b>  致謝</b></p><p>  經(jīng)過了幾個月查資料、制作畢業(yè)設(shè)計、寫作論文,今天終于可以順利的完成了自己的畢業(yè)設(shè)計和論文。在大學(xué)中幫助我的同學(xué)和老師有很多,四年的時光匆匆飛逝,在4年的大學(xué)生活里學(xué)習(xí)到了許多專業(yè)知識,同時

46、也學(xué)習(xí)到了許多的做人道理,為我以后的闖入社會奠定了基礎(chǔ)。 </p><p>  論文和畢業(yè)設(shè)計得以完成,首先要感謝我的指導(dǎo)老師宋榮老師,制作這個畢業(yè)設(shè)計是宋老師為我選的題,并指引我的論文的寫作的方向和架構(gòu)。在此,謹向宋老師表示崇高的敬意和衷心的感謝! </p><p>  另外,要感謝在大學(xué)期間所有傳授我知識的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識,通過此次的論文,我學(xué)到了很多知識

47、,跨越了傳統(tǒng)方式下的教與學(xué)的體制束縛,在論文的寫作過程中,通過查資料和搜集有關(guān)的文獻,培養(yǎng)了自學(xué)能力和動手能力。并且由原先的被動的接受知識轉(zhuǎn)換為主動的尋求知識,這可以說是學(xué)習(xí)方法上的一個很大的突破。在以往的傳統(tǒng)的學(xué)習(xí)模式下,我們可能會記住很多的書本知識,但是通過畢業(yè)論文,我們學(xué)會了如何將學(xué)到的知識轉(zhuǎn)化為自己的東西,學(xué)會了怎么更好的處理知識和實踐相結(jié)合的問題。 </p><p>  總之,此次論文的寫作過程,我收獲

48、了很多,即為大學(xué)三年劃上了一個句號,也為將來的人生之路做好了一個很好的鋪墊。再次感謝我在大學(xué)傳授給我知識以及給我?guī)椭凸膭畹睦蠋煟瑢W(xué)和朋友,謝謝你們!</p><p><b>  參考文獻</b></p><p>  [1] 白熾貴編著,單片機C語言案例教程,北京:電子工業(yè)出版社,2011.1</p><p>  [2] 周良權(quán)主編.模擬電子

49、技術(shù)基礎(chǔ) 北京:高等教育出版社,2005.6 </p><p>  [3] 卜錫濱主編.數(shù)字電子技術(shù) 北京:中國水利水電出版社,2011.1 </p><p>  [4] 李華.單片機C語言編程[M].北京:北京航空航天大學(xué)出版社,聯(lián)單2005.8.1</p><p>  [5] 徐愛鈞.單片機原理實用教程--基于Protrues虛擬仿真[M].北京:電子工業(yè)出版社

50、.2009.1 </p><p>  [6] 李萍.AT89S51單片機、原理、開發(fā)與應(yīng)用實例[M].北京:中國電力出版社.2008.7</p><p>  [7] 張曄、王玉民等.單片機應(yīng)用技術(shù)[M] .北京:高等教育出版社.2006.3</p><p>  [8] 付家才等.單片機控制工程實踐技術(shù)[M] .北京:化學(xué)工業(yè)出版社.2004.

51、5</p><p>  [9] 及力主編.電子CAD基于protel 99 SE 北京: 北京郵電大學(xué)出版社,2008</p><p>  [10]徐紅升主編.電工基礎(chǔ)及實訓(xùn) 北京:清華大學(xué)出版社,2009.5</p><p><b>  附錄 主要源程序</b></p><p>  sfr P4=0xe8;//定義P

52、4組I0口</p><p>  #include<reg51.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  sbit speaker=P1^4;//喇叭接30腳</p><p> 

53、 sbit key1=P1^0;//流水燈按鍵(暫時)</p><p>  sbit key2=P1^1;//播放音樂按鍵(暫定)</p><p>  uchar a,b,num1,s1num,n1,n2;</p><p>  char num;//定義num為可以負數(shù)</p><p>  uchar code yinfu[]={0xfb,0

54、xe9, //Do</p><p>  0xfc,0x5c, //Re</p><p>  0xfc,0xc1, //Mi</p><p>  0xfc,0xef, //Fa</p><p>  0xfd,0x45, //So</p><p>  0xfd,0x92,

55、 //La</p><p>  0xfd,0xd0, //Si</p><p>  0xfd,0xee, //Do#</p><p>  0x00,0x00, //間隔</p><p><b>  };</b></p><p>  uchar code sheng

56、ri_tone[]={ 1,0,1,2,1,4,3,0, //生日快樂音調(diào)</p><p>  1,0,1,2,1,5,4,0,</p><p>  1,0,1,8,6,4,3,2,0,</p><p>  7,0,7,6,4,5,4,0 //0代表不發(fā)聲,即停頓;數(shù)字即為音調(diào)</p><p><b>  

57、};</b></p><p>  uchar code shengri_beat[]={ 24,1,24,48,48,48,72,5,//節(jié)拍</p><p>  24,1,24,48,48,48,72,5,</p><p>  24,1,24,48,48,48,48,72,5,</p><p>  24,1,24,48,48

58、,48,72,5 //節(jié)拍,即tone表各音調(diào)的延時</p><p><b>  };</b></p><p>  uchar code ledtable[]={0x7f,0xbf,0xdf,0xef, //取反</p><p>  0xf7,0xfb,0xfd,0xfe};//P0組口的發(fā)光二極管代碼(焊接過程可能會相反,具體更改)&l

59、t;/p><p>  uchar code ledtable2[]={0x7f,0xbf,0xdf,0xef, //取反</p><p>  0xf7,0xfb,0xfd,0xfe};//P2組口發(fā)光二極管代碼,相反!</p><p>  void check_key();//改為P3組為按鍵</p><p>  void keyscan();&

60、lt;/p><p>  void turn();//順時針流動</p><p>  void back();</p><p>  void qianhou();</p><p>  void dangshuang();</p><p>  void delay(uint z);//延時函數(shù)聲明</p><

61、;p>  void delay1(void);//聲明第二個延時函數(shù)</p><p>  void play1(void);//播放生日快樂</p><p>  void main()</p><p><b>  {</b></p><p>  s1num=0;//流水燈種類標志</p><p&

62、gt;<b>  key1=1;</b></p><p><b>  key2=1;</b></p><p>  TMOD=0x01;</p><p><b>  TH0=a;</b></p><p><b>  TL0=b;</b></p>

63、<p>  ET0=1;//打開定時器,但是未允許中斷</p><p><b>  TR0=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  check_key();</p>

64、<p>  keyscan();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void time0() interrupt 1</p><p><b>  {</b></p><p>&

65、lt;b>  TH0=a;</b></p><p><b>  TL0=b;</b></p><p>  speaker=~speaker;</p><p><b>  }</b></p><p>  void check_key()</p><p><

66、;b>  {</b></p><p>  P3=0xff;//先賦給P2組口高電平</p><p>  switch(P3)//按下一個鍵相應(yīng)4個燈亮</p><p><b>  {</b></p><p>  case 0xfe:P0=0xee;P2=0x77;a=0xfb;b=0xe9;EA=1;b

67、reak;//P0,P2組為發(fā)光二極管組</p><p>  case 0xfd:P0=0xdd;P2=0xbb;a=0xfc;b=0x5c;EA=1;break;//注意:EA不能改為TR0</p><p>  case 0xfb:P0=0xbb;P2=0xdd;a=0xfc;b=0xc1;EA=1;break;</p><p>  case 0xf7:P0=0x

68、77;P2=0xee;a=0xfc;b=0xef;EA=1;break;</p><p>  case 0xef:P0=0xee;P2=0x77;a=0xfd;b=0x45;EA=1;break;</p><p>  case 0xdf:P0=0xdd;P2=0xbb;a=0xfd;b=0x92;EA=1;break;</p><p>  case 0xbf:P0=

69、0xbb;P2=0xdd;a=0xfd;b=0xd0;EA=1;break;</p><p>  case 0x7f:P0=0x77;P2=0xee;a=0xfd;b=0xee;EA=1;break;</p><p>  default:EA=0;speaker=0;//P0=0xff;P2=0xff ; </p><p><b>  }</b>

70、;</p><p><b>  }</b></p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--

71、)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void keyscan()</p><p><b>  {</b></p><p>  if(key1==0)</p><p

72、><b>  {</b></p><p><b>  delay(5);</b></p><p>  if(key1==0)</p><p><b>  {</b></p><p><b>  s1num++;</b></p><

73、p>  while(!key1);</p><p>  if(s1num==1)</p><p><b>  {</b></p><p><b>  turn();</b></p><p><b>  }</b></p><p><b>

74、  }</b></p><p>  if(s1num==2)</p><p><b>  {</b></p><p><b>  back();</b></p><p><b>  }</b></p><p>  if(s1num==3)&l

75、t;/p><p><b>  {</b></p><p>  qianhou();</p><p><b>  }</b></p><p>  if(s1num==4)</p><p><b>  {</b></p><p>  da

76、ngshuang();</p><p><b>  }</b></p><p>  if(s1num==5)</p><p><b>  s1num=1;</b></p><p><b>  }</b></p><p>  if(key2==0)<

77、/p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  while(~key2);</p><p><b>  play1();</b></p><p><b>  }</b>&

78、lt;/p><p><b>  }</b></p><p>  void delay1(void)//第二個延時函數(shù)</p><p><b>  {</b></p><p>  uchar n=15;</p><p>  while(n--)</p><p&g

79、t;<b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=0;i<125;i++);</p><p><b>  }</b></p><p><b>  }</b></p><

80、;p>  void play1(void)//播放生日快樂</p><p><b>  {</b></p><p>  uchar m=0;</p><p>  uchar s; </p><p>  uchar c=1;</p><p><b>  P0=0xaa;<

81、;/b></p><p><b>  P2=0x55;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  EA=0;</b></p><p>  

82、c=shengri_tone[m]; //取音符</p><p>  s=shengri_beat[m]; //取節(jié)拍</p><p>  a=yinfu[2*c-2]; </p><p>  b=yinfu[2*c-

83、1]; </p><p><b>  EA=1;</b></p><p>  while(s--)</p><p><b>  {</b></p><p><b>  delay1();</b></p><

84、;p><b>  P0=~P0;</b></p><p><b>  P2=~P2;</b></p><p><b>  }</b></p><p><b>  m++;</b></p><p>  if(m>=33) return;

85、 //數(shù)值是shengri相關(guān)表中的元素數(shù)量 </p><p><b>  } </b></p><p><b>  }</b></p><p>  /*以下為N種流水燈流動花式*/</p><p>  void turn()//流水燈順時針走動(5次)&l

86、t;/p><p><b>  {</b></p><p>  for(num1=0;num1<8;num1++)</p><p><b>  {</b></p><p>  for(num=0;num<8;num++)</p><p><b>  {<

87、/b></p><p>  P0=ledtable[num];</p><p>  delay(30);//時間暫定</p><p><b>  }</b></p><p>  P0=0xff;//之后關(guān)閉P1組</p><p>  for(num=7;num>-1;num--)<

88、;/p><p><b>  {</b></p><p>  P2=ledtable2[num];</p><p>  delay(30);</p><p><b>  }</b></p><p>  P2=0xff;//之后關(guān)閉P2組</p><p>&l

89、t;b>  }</b></p><p><b>  }</b></p><p>  void back()//逆時針流動</p><p><b>  {</b></p><p>  for(num1=0;num1<8;num1++)</p><p>&

90、lt;b>  {</b></p><p>  for(num=0;num<8;num++)</p><p><b>  {</b></p><p>  P2=ledtable[num];</p><p>  delay(30);</p><p><b>  }&l

91、t;/b></p><p><b>  P2=0xff;</b></p><p>  for(num=7;num>-1;num--)</p><p><b>  {</b></p><p>  P0=ledtable2[num];</p><p>  delay(

92、30);</p><p><b>  }</b></p><p><b>  P0=0xff;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void qianhou()

93、//前后來回</p><p><b>  {</b></p><p>  for(num1=0;num1<10;num1++)</p><p><b>  {</b></p><p>  for(num=0;num<8;num++)</p><p><b&g

94、t;  {</b></p><p>  P0=ledtable[num];</p><p>  P2=ledtable2[num];</p><p>  delay(30);</p><p><b>  }</b></p><p><b>  P0=0xff;</b&g

95、t;</p><p><b>  P2=0xff;</b></p><p>  for(num=7;num>-1;num--)</p><p><b>  {</b></p><p>  P0=ledtable[num];</p><p>  P2=ledtable2[

96、num];</p><p>  delay(30);</p><p><b>  }</b></p><p><b>  P0=0xff;</b></p><p><b>  P2=0xff;</b></p><p><b>  }</b

97、></p><p><b>  }</b></p><p>  void dangshuang()//單數(shù)雙數(shù)</p><p><b>  {</b></p><p>  for(num1=0;num1<15;num1++)</p><p><b>  

98、{</b></p><p><b>  P0=0x55;</b></p><p><b>  P2=0xaa;</b></p><p>  delay(150);</p><p><b>  P0=0xaa;</b></p><p><

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論