基于單片機(jī)的電子琴的制作_第1頁
基于單片機(jī)的電子琴的制作_第2頁
基于單片機(jī)的電子琴的制作_第3頁
基于單片機(jī)的電子琴的制作_第4頁
基于單片機(jī)的電子琴的制作_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、河南理工大學(xué) 1 概述1.1 設(shè)計(jì)目的通過對(duì)簡易電子琴的課程設(shè)計(jì),進(jìn)一步加深對(duì)微機(jī)原理與單片機(jī)接口技術(shù)、模擬電子技術(shù)、數(shù)字電子技術(shù)等所學(xué)課程的了解和認(rèn)識(shí)。學(xué)習(xí)把理論知識(shí)運(yùn)用于實(shí)踐制作實(shí)物,鍛煉自己獨(dú)立動(dòng)手能力,同時(shí)也要學(xué)會(huì)運(yùn)用軟件仿真,學(xué)習(xí)分析問題,解決問題的方法和途徑。了解電子琴發(fā)音原理,提升程序編寫和運(yùn)用的能力,充分利用自己專業(yè)知識(shí),提高對(duì)本專業(yè)的學(xué)習(xí)興趣。1.2設(shè)計(jì)要求結(jié)合單片機(jī)AT89C52和所提供元件,設(shè)計(jì)一個(gè)簡易電子琴通過按鍵可以實(shí)現(xiàn)哆來咪發(fā)嗦啦嘻7種音階高低音調(diào)的發(fā)音,音階數(shù)字的顯示,以及歌曲的自動(dòng)播放功能。1.3 單片機(jī)發(fā)聲原理 聲音的產(chǎn)生是一種音頻振動(dòng)的效果,振動(dòng)的頻率高則為

2、高音,頻率低則為低音,音頻的范圍為20Hz200kHz之間,人類耳朵比較容易辨別的聲音大概是200Hz20kHz。一般的音響電路是以正弦波信號(hào)驅(qū)動(dòng)揚(yáng)聲器,產(chǎn)生悅耳的音樂,在數(shù)字電路里,則是以脈沖信號(hào)驅(qū)動(dòng)揚(yáng)聲器以產(chǎn)生聲音,同樣的頻率,脈沖信號(hào)或正弦波信號(hào)產(chǎn)生的音效,單片機(jī)發(fā)聲是使用定時(shí)器產(chǎn)生聲音所需頻率的方波(脈沖信號(hào)),經(jīng)放大整形后送楊聲器發(fā)出一個(gè)音,再按節(jié)拍送下一頻率的聲音,聲音的節(jié)拍由延時(shí)程序給定,也就是說其發(fā)聲的原理是:音調(diào)由不同的頻率產(chǎn)生,由延時(shí)程序產(chǎn)生節(jié)拍,由定時(shí)器定時(shí)產(chǎn)生方波頻率,如1KHZ頻率的聲音,周期是1mS,正負(fù)半周各500s,當(dāng)用6MHZ晶體,定時(shí)方式1時(shí),可計(jì)算定時(shí)器初

3、值如下:(216-X)*12/6=500S, X=65535-250=65285=FF05H。2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1 總體方案本設(shè)計(jì)是為了實(shí)現(xiàn)電子琴發(fā)聲控制系統(tǒng),結(jié)合單片機(jī)AT89C52,通過控制單片機(jī)定時(shí)器的定時(shí)時(shí)間可以產(chǎn)生不同的頻率脈沖,再用按鍵通過高低電平來控制7個(gè)音階的高低兩種音調(diào),并用軟件延時(shí)程序的調(diào)用來控制發(fā)音時(shí)間的長短。把音樂的音符和相應(yīng)的節(jié)拍變換為定時(shí)常數(shù)和延時(shí)常數(shù),分別來控制定時(shí)器產(chǎn)生的脈沖頻率和發(fā)出該脈沖的持續(xù)時(shí)間,再運(yùn)用三極管及電阻組成的放大電路來實(shí)現(xiàn)低音平功率的放大,利用蜂鳴器作為發(fā)聲部件,數(shù)碼管作為顯示部件。因此,可以先用單片機(jī)仿真軟件Proteus連接設(shè)計(jì)

4、好電路原理圖,再從硬件與軟件兩部分進(jìn)行分析與設(shè)計(jì)。2.2 單片機(jī)AT89S52介紹 AT89S52管腳主要功能特性: 兼容MCS51指令系統(tǒng) 8k可反復(fù)擦寫(1000次)Flash ROM 32個(gè)雙向I/O口 256x8bit內(nèi)部RAM 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 時(shí)鐘頻率0-24MHz 2個(gè)串行中斷 可編程UART串行通道 2個(gè)外部中斷源 共6個(gè)中斷源 2個(gè)讀寫中斷口線 3級(jí)加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能單片機(jī)AT89S52主要管腳的介紹:VCC:AT89S52電源正端輸入,接+5V。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門

5、電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。在本設(shè)計(jì)中,P0 端口前四位連接數(shù)碼管,用于數(shù)碼管的位尋址。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。在本設(shè)計(jì)中端口連接數(shù)碼管用于發(fā)音音符的顯示。P2口:P2

6、口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“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)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。在本設(shè)計(jì)中連接按鍵通過高低電平控制7個(gè)音階。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門

7、電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。在本設(shè)計(jì)中連接控制按鍵。控制高低兩個(gè)音調(diào)以及自動(dòng)播放樂曲。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.3 硬件設(shè)計(jì) 電子琴實(shí)物圖單片機(jī)主程序?qū)?shù)碼管編碼是直接賦值的,而對(duì)聲音信號(hào)則是通過中斷程序進(jìn)行控制的。先讀取鍵盤掃描程序信號(hào),當(dāng)系統(tǒng)掃描到鍵盤上有鍵被按下,通過數(shù)碼管顯示編碼在數(shù)碼管上顯示音階數(shù)字,此時(shí)高電平有效,單片機(jī)的定

8、時(shí)器被啟動(dòng),發(fā)出一定頻率的脈沖,該頻率的脈沖通過三極管放大電路輸入到蜂鳴器后,就會(huì)發(fā)出相應(yīng)的音階聲音。如果在前一個(gè)按下的鍵發(fā)聲的同時(shí)有另一個(gè)鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音程序,發(fā)出后按的鍵的音階聲音。當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出樂曲。2.3.1 按鍵接口電路 按鍵接口電路 按鍵接口電路采用獨(dú)立式鍵盤,獨(dú)立式鍵盤一般是指直接用I/O口線外接按鈕構(gòu)成,每個(gè)鍵單獨(dú)占用一根I/O口線,I/O口線間的工作狀態(tài)互不影響。獨(dú)立式鍵盤接口電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須占用一更i/o口線,因此,在按鍵數(shù)較多時(shí),I/O

9、口浪費(fèi)較大,故只有在按鍵數(shù)量不多時(shí)才采用這種鍵盤電路。2.3.2 顯示電路 顯示電路LED顯示器的顯示方式采用了動(dòng)態(tài)顯示方式,它是把所有顯示器的同名字段互相連接在一起,并把它們連到字形口上,為了防止各個(gè)顯示器同時(shí)顯示出相同的字符,每個(gè)顯示器的公共端還要受另一組信號(hào)控制。2.3.3 發(fā)音電路 發(fā)音電路 發(fā)音電路是由蜂鳴器、三極管、上拉電阻構(gòu)成,由于蜂鳴器工作電流一般比較大,以至于I/O口無法直接驅(qū)動(dòng),因此要用放大電路增強(qiáng)驅(qū)動(dòng)電流來驅(qū)動(dòng)蜂鳴器。因?yàn)槿龢O管為PNP型,所以當(dāng)基極接入低電平時(shí)。蜂鳴器發(fā)聲。2.4 硬件調(diào)試 硬件調(diào)試主要是針對(duì)單片機(jī)部分進(jìn)行的調(diào)試。 在上電之前,先確保電路中不存在斷路或短

10、路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測(cè)電路中是否存在斷路或者短路情況的任務(wù)。注意焊點(diǎn)之間,確保焊點(diǎn)沒有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。 在確保硬件電路正常且無異常情況(斷路或短路)的情況下方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次設(shè)計(jì)中,上電調(diào)試主要是檢測(cè)單片機(jī)控制部分、數(shù)碼管點(diǎn)亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試。 1、數(shù)碼管LED電路調(diào)試:接通電源,隨機(jī)按下按鈕可以看到數(shù)碼管顯示數(shù)字。 2、鍵盤單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對(duì)

11、應(yīng)的音正確。 3 軟件設(shè)計(jì)3.1 定時(shí)/計(jì)數(shù)器的計(jì)數(shù)初值計(jì)算(1) 要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/音頻),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O口反相,就可在I/O腳上得到此頻率的脈沖。利用8051的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變記數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。(2)計(jì)數(shù)初值T與頻率的關(guān)系公式如下: N=Fi/2/Fr N:記數(shù)初值Fi:Fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz)Fr;要產(chǎn)生的頻率計(jì)數(shù)初值T的求法如下:T65536N6

12、5536Fi2Fr例如:設(shè)K65536,F(xiàn)1000000Fi1MHZ,求中音D0(523HZ),高音的D0(1046HZ)的記數(shù)值。T65536N65536Fi2Fr65536500000Fr中音D0的T6553650000052364580高音D0的T65536500000104665059單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表所示:音符頻率(HZ)計(jì)數(shù)值(T值)TH TL音符頻率(HZ)計(jì)數(shù)值(T值)TH TL低1DO26263777F921#4FA#74064913FD91#1DO#27763872F980中5SO78464948FDB4低2RE29463969F9E

13、1#5SO#83164981FDD5#2RE#31164054FA36中6LA88065012FDF4低3MI33064140FA8C#6LA#93265042FE12低4FA34964216FAD8中7SI96865060FE24#4FA#37064291FB23低1DO104665095FE47低SO39264360FB68#1DO#110965120FE60#5SO#41564426FBAA高2RE117565144FE78低6LA44064489FBE9#2RE#124565166FE8E#6LA#46664547FC23高3MI131865186FEA2低7SI49464603FC5

14、B高4FA139765206FEB6中1DO52364655FC8F#4FA#149065227FECB#1DO#55464704FCC0高5SO156865242FFDA中2RE58764751FCEF#5SO#166165259FEEB#2RE#62264795FD1B高6LA176065274FEFA中3MI65964837FD45#6LA#186565289FF09中4FA69864876FD6C高7SI196765302FF16 音符頻率表3.2音符的節(jié)拍在一張樂譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C 、1=G 等等,這里1=C,1=G表示樂譜的曲調(diào),和我們前面所談的音調(diào)有很大的

15、關(guān)聯(lián),4/4、3/4就是用來表示節(jié)拍的。以3/4為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長為四分音符的一半,即為八分音符長,3、4的時(shí)長為八分音符的一半,即為十六分音符長,5的時(shí)長為四分音符的一半,即為八分音符長,6的時(shí)長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時(shí)長大約為400500ms 。我們以一拍的時(shí)長為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長就為400ms,八分音符的時(shí)長就為200ms,十六分音符的時(shí)長就為100ms。 可見,在單片機(jī)上控制一個(gè)音

16、符唱多長可采用循環(huán)延時(shí)的方法來實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長的延時(shí)程序,比如說以十六分音符的時(shí)長為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類推。3.3 軟件設(shè)計(jì)3.3.1 判斷音階(高中低音)子程序 在軟件設(shè)計(jì)中采用yinjie代表音階,如下圖所示音階Yinjie值高2中1低0 初始化狀態(tài)為中音(yinjie=1),電路中設(shè)計(jì)高、低兩個(gè)音階鍵。上電后,若無按鍵按下,則為中音模式。若音階鍵被按下,則如下流程圖所示,初始化后進(jìn)行按鍵掃描,在高音鍵按下,若初始yinjie不

17、為2,則另yinjie=2,進(jìn)入高音工作模式,若初始yinjie為2,則對(duì)yinjie進(jìn)行初始化,即另yinjie=1,重新進(jìn)入進(jìn)入中音工作模式,這樣即實(shí)現(xiàn)了高音鍵切換高、中音方式的轉(zhuǎn)換。同理,用低音鍵實(shí)現(xiàn)中、低音的切換。3.3.2 播放子程序 本設(shè)計(jì)共兩種播放模式,包括自動(dòng)播放存儲(chǔ)音樂和按鍵發(fā)音。上電后,首先開中斷并設(shè)定定時(shí)器0為工作方式1,當(dāng)自動(dòng)播放鍵按下時(shí),進(jìn)入中斷,根據(jù)樂譜在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初值,即開始播放音樂。當(dāng)DO、RE、MI、FA、SO、LA、SI七種音符鍵按下時(shí),根據(jù)音階值(如上表中高中低對(duì)應(yīng))和音符值在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初

18、值,即按鍵發(fā)音。本次課程設(shè)計(jì)我們準(zhǔn)備了三首歌曲。結(jié)合DO、RE、MI三個(gè)音符鍵,通過鍵盤掃描確定BEEP鍵按下,此時(shí)再用if語句判斷,當(dāng)按下第一個(gè)鍵時(shí),按照相應(yīng)程序樂譜依次讀入音節(jié),開始播放第一首歌,此時(shí)再通過if語句判斷若再按BEEP鍵則跳出播放音樂,揚(yáng)聲器停止播放。第二、三首歌曲同理進(jìn)行播放。通過重復(fù)使用按鍵不僅節(jié)省了原材料,還使得電路結(jié)構(gòu)簡單明了。 3.3.3 程序流程圖 開始 賦初值yinjie=1 (默認(rèn)為中音) n=0 鍵盤掃描低或高音鍵按下數(shù)碼管顯示相應(yīng)字母再按下相應(yīng)音節(jié)鍵數(shù)碼管顯示相應(yīng)數(shù)字揚(yáng)聲器同時(shí)發(fā)聲BEEP鍵按下再按下相應(yīng)歌曲按鍵根據(jù)樂譜查找相應(yīng)音律給定時(shí)器賦值播放音樂 4

19、 Proteus軟件仿真4.1仿真軟件Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。Proteus是單片機(jī)課堂教學(xué)的先進(jìn)助手。使

20、用Proteus 軟件進(jìn)行單片機(jī)仿真設(shè)計(jì),是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真的操作能力 。Proteus不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。4.2 軟件調(diào)試 調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程

21、序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試。4.3 仿真結(jié)果 電路仿真圖4.4 結(jié)果分析根據(jù)仿真結(jié)果可知,本次課程設(shè)計(jì)能夠準(zhǔn)確并徹底的完成設(shè)計(jì)要求。左側(cè)數(shù)碼管可以顯示a、b、c三種結(jié)果,分別代表低音、中音和高音。右側(cè)數(shù)碼管可以顯示1、2、3、4、5、6、7七個(gè)數(shù)字,分別代表DO、RE、MI、FA、SO、LA、SI七種音符。下面以4.3為例具體進(jìn)行分析:當(dāng)系統(tǒng)上電后,若按下高音鍵,則選定工作方式為高音模式,圖中c即代表高音。P1口連接數(shù)碼管段選端,左側(cè)數(shù)碼管顯示音符對(duì)應(yīng)的數(shù)字

22、。 5 課程設(shè)計(jì)體會(huì) 通過本次設(shè)計(jì),我們懂得了如何解決課程設(shè)計(jì)中出現(xiàn)的問題,從而能夠使自己更好的學(xué)習(xí)并掌握一些軟件,例如Keil,Proteus。在本次設(shè)計(jì)中,我們又相當(dāng)于把以前學(xué)過的知識(shí)再復(fù)習(xí)一遍,對(duì)以前學(xué)過的知識(shí)又加以鞏固,它不僅僅讓我們把學(xué)過的東西用于實(shí)踐,更是一種提高能力的最好方法。首先,我們先要焊接電路,在焊接過程中,要設(shè)計(jì)排版怎樣才更加合理工整,焊接時(shí),要注意焊點(diǎn)和熔錫等等一些焊接技術(shù),而且我們并沒有一次性焊接成功,所以還要學(xué)會(huì)檢測(cè)再修整。其次,使用C語言來編譯程序。系統(tǒng)的學(xué)習(xí)函數(shù)使用和單片機(jī)的聯(lián)系,有時(shí)還要對(duì)一些電子元件有進(jìn)一步的了解,例如電阻、電容、二極管和三極管等元件,才好對(duì)

23、一些模塊的功能進(jìn)行更具體的認(rèn)識(shí)。最難的就是將音樂同單片機(jī)銜接起來,單片機(jī)的發(fā)聲原理,音樂的音階與節(jié)拍的具體計(jì)算和使用,還有鍵盤,發(fā)音等一些模塊的設(shè)計(jì),剛開始很不了解,之后通過上網(wǎng)學(xué)習(xí),問問同學(xué),才有了初步的設(shè)計(jì)思想,這些都是以前從未學(xué)過的新知識(shí),新內(nèi)容,能夠接觸到這些,無疑又是一種提高。然后,軟件仿真。學(xué)習(xí)Proteus軟件,以前沒有接觸過這個(gè)軟件,所以不會(huì)使用,通過課本學(xué)習(xí),網(wǎng)上學(xué)習(xí)以及和同學(xué)交流,才初步掌握該軟件的使用方法,尤其是查找元器件不太容易,最后才知道有個(gè)元器件對(duì)照表,才解決了這個(gè)問題。所以只有通過一次又一次實(shí)踐,才能更好地掌握新知識(shí)??傊?,每次課程設(shè)計(jì)都有不同的提高。我們目前已經(jīng)

24、是大三,還有一年就要畢業(yè),能夠在此之前知道自己的不足之處并提高自己的各方面能力,這都是一種提高。還有就是課程設(shè)計(jì)是分組合作,我們同學(xué)之間互相幫助,增強(qiáng)團(tuán)隊(duì)合作意識(shí),也是以后適應(yīng)社會(huì)的需要。在本次設(shè)計(jì)中,我們感受到電子信息工程這個(gè)專業(yè)以后所要學(xué)習(xí)的知識(shí)還有很多很多,社會(huì)發(fā)展和科技創(chuàng)新發(fā)展很快,只有通過自己的不斷學(xué)習(xí)和提高,才能立足社會(huì)之上。因此,課程設(shè)計(jì)使我們?cè)诮窈蟾犹?shí)學(xué)習(xí),努力提高自己!參考文獻(xiàn)1 沈慶陽,郭庭吉編著, 8051單片機(jī)實(shí)踐與應(yīng)用清華大學(xué)出版社,20012 趙建領(lǐng)編著, 51系列單片機(jī)開發(fā)寶典電子工業(yè)出版社,20073 微機(jī)原理與單片機(jī)接口技術(shù)河南理工大學(xué),20124 胡漢才

25、編著,單片機(jī)原理及其接口技術(shù)清華大學(xué)出版社,20045 汪道輝編著,單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)踐 電子工業(yè)出版社 2005附1 源程序代碼 #include #define uchar unsigned char #define uint unsigned int #define k P2/P20-P26用來存放1-7七個(gè)音節(jié) sbit gao=P36; sbit di=P35; sbit BEEP=P37; /P37端口連接按鍵用來控制揚(yáng)聲器工作與否 uchar n=0;/n是播放歌曲時(shí)用到 uchar high,low;/定時(shí)器預(yù)裝值的高8位和低8位 uchar time,s1,L; uchar

26、yinjie=1; /yinjie=1,2,3表示低音,中音,高音 sbit speak=P32; /P32端口接揚(yáng)聲器 code uchar Table=0x40,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x40; /數(shù)碼管 code uchar fayin2= 0xf9,0x21, 0xf9,0xe1, 0xfa,0x8c, 0xfa,0xd8, 0xfb,0x68, 0xfb,0xe9, 0xfc,0x5b, /低音:高八 低八 0xfc,0x8f, 0xfc,0xef, 0xfd,0x45, 0xfd,0

27、x6c, 0xfd,0xb4, 0xfd,0xf4, 0xfe,0x24, / 中音:高八 低八 0xfe,0x47, 0xfe,0x78, 0xfe,0xa2, 0xfe,0xb6, 0xfe,0xda, 0xfe,0xfa, 0xff,0x16 / 高音:高八 低八 ;uchar code Music1= /粉刷匠144 5,2,1, 3,2,1, 5,2,1, 3,2,1, 5,2,1, 3,2,1, 1,2,2, 2,2,1, 4,2,1, 3,2,1, 2,2,1, 5,2,4, 5,2,1, 3,2,1, 5,2,1, 3,2,1, 5,2,1, 3,2,1, 1,2,2, 2,2

28、,1, 4,2,1, 3,2,1, 2,2,1, 1,2,4, 2,2,1, 2,2,1, 4,2,1, 4,2,1, 3,2,1, 1,2,1, 5,2,2, 2,2,1, 4,2,1, 3,2,1, 2,2,1, 5,2,4, 5,2,1, 3,2,1, 5,2,1, 3,2,1, 5,2,1, 3,2,1,1,2,2, 2,2,1, 4,2,1, 3,2,1, 2,2,1, 1,2,4; uchar code Music2=/ 小星星126 1,2,1, 1,2,1, 5,2,1, 5,2,1, 6,2,1, 6,2,1, 5,2,2,4,2,1, 4,2,1, 3,2,1, 3,2,1

29、, 2,2,1, 2,2,1, 1,2,2,5,2,1, 5,2,1, 4,2,1, 4,2,1, 3,2,1, 3,2,1, 2,2,2,5,2,1, 5,2,1, 4,2,1, 4,2,1, 3,2,1, 3,2,1, 2,2,2,1,2,1, 1,2,1, 5,2,1, 5,2,1, 6,2,1, 6,2,1, 5,2,2,4,2,1, 4,2,1, 3,2,1, 3,2,1, 2,2,1, 2,2,1, 1,2,2,;uchar code Music3= / 荷塘月色369 1,2,1, 1,2,2, 6,1,1, 5,1,2, 6,1,2, 1,2,2, 1,2,1, 2,2,1,

30、3,2,4, 2,2,1, 2,2,2, 1,2,1, 2,2,2, 2,2,1, 5,2,1, 5,2,1, 3,2,1, 3,2,1, 2,2,1, 3,2,4, 1,2,1, 1,2,2, 6,1,1, 5,1,2, 5,2,2, 3,2,1, 2,2,1, 3,2,1, 2,2,1, 1,2,4, 2,2,1, 2,2,2, 1,2,1, 2,2,1, 2,2,2, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 2,2,1, 1,2,4, 1,2,1, 1,2,2, 6,1,1, 5,1,2, 6,1,2, 1,2,1, 1,2,2, 2,2,1, 3,2,4, 2,2,1,

31、 2,2,2, 1,2,1, 2,2,2, 2,2,1, 5,2,1, 5,2,1, 3,2,1, 3,2,1, 2,2,1, 3,2,4, 1,2,1, 1,2,1, 1,2,1, 6,1,1, 5,1,2, 5,2,2, 3,2,1, 2,2,1, 3,2,1, 2,2,1, 1,2,4, 2,2,1, 2,2,2, 1,2,1, 2,2,1, 2,2,2, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 2,2,1, 1,2,4, 3,2,1, 5,2,2, 5,2,1, 5,2,2, 5,2,2, 6,2,1, 5,2,1, 3,2,1, 2,2,1, 1,2,4, 6,2,1

32、, 1,3,1, 6,2,1, 5,2,1, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 2,2,2, 2,2,1, 3,2,1, 3,2,1, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 5,2,2, 5,2,2, 6,2,1, 5,2,1, 3,2,1, 2,2,1, 1,2,4, 6,1,1, 1,2,1, 6,1,1, 5,1,1, 2,2,2, 3,2,2, 1,2,6; /延時(shí)函數(shù) void delay(unsigned int x) int a,b; for(a=x;a0;a-) for(b=1000;b0;b-); void song()TH0=high

33、;TL0=low;TR0=1;delay(time*250); void ITimer0(void) TMOD = 0x01; /使用模式1,16位定時(shí)器 EA=1; /總中斷打開 ET0=1; /定時(shí)器中斷打開 TR0=1; /定時(shí)器開關(guān)打開 void Play() uchar m,n;n=0;delay(500);if(k=0xfe) /播放粉刷匠 while(n144) m=Music1n+7*(Music1n+1-1)-1;high=fayinm0;low=fayinm1;time=Music1n+2;n=n+3;song();if(BEEP=0)break; if(k=0xfd) /播放小星星 while(n1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論