




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 . . . 課 程 設(shè) 計課程名稱 微機原理與單片機技術(shù)實踐題目名稱 單片機制作與音樂播放 學(xué)生學(xué)院 自動化學(xué)院 專業(yè)班級 電子(2) 學(xué) 號學(xué)生指導(dǎo)教師 學(xué)習(xí) 2013 年 5 月 24 日單片機制作與音樂播放一、課程設(shè)計的容1.用面包板焊一塊PIC單片機最小系統(tǒng),包括晶振,復(fù)位電路,按鈕,LED燈。2.自主添加新模塊。3.寫程序驅(qū)動單片機工作。二、課程設(shè)計的要求與數(shù)據(jù)1.焊板所需原理圖:LED燈蜂鳴器復(fù)位晶振AD轉(zhuǎn)換按鈕2.音樂播放所需資料。摘要:16F877A單片機原理和控制理論來設(shè)計音樂盒的硬件電路,并利用16單片機語言進行程序設(shè)計。通過控制單片機部的定時器來產(chǎn)生不同頻率的方波,驅(qū)動
2、喇叭發(fā)出不同音調(diào)的音樂,再利用延遲來控制發(fā)音時間的長短。該程序通過把樂譜轉(zhuǎn)化成相應(yīng)的定時常數(shù)來驅(qū)動發(fā)音設(shè)備演奏出悅耳動聽的音樂。這種控制電路結(jié)構(gòu)簡單,可靠性高,應(yīng)用性強;軟件程序適應(yīng)圍廣,對于不同的音樂只需要改變相應(yīng)的定時常數(shù)即可。音樂產(chǎn)生的方法:一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可?,F(xiàn)在以單片機12MHZ晶振為例,例出高中低音符與單片機計數(shù)T0相關(guān)的計數(shù)值
3、如下表4.1所示:表4.1高中低音符與單片機計數(shù)T0相關(guān)的計數(shù)值音符對應(yīng)的PR2值音符對應(yīng)的PR2值M_1119M_2105M_394M_579M_670H_159L_5158L_6141如表4.2所示:音樂的音拍,一個節(jié)拍為單位(C調(diào))表4.2音樂的音拍曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms對于不同的曲調(diào)我們也可以用單片機的另外一個定時/計數(shù)器來完成。發(fā)音部分代碼在程序中實現(xiàn),靠單片機的一個管腳輸出,考慮到聲音可能不夠大所以我們加入了功放電路,利用LM386來對聲音信號進行放大。音頻輸出信號由A
4、DU OUT引出,信號可經(jīng)功放電路LM386輸出到揚聲器或耳機。三、課程設(shè)計應(yīng)完成的工作1.音樂播放源程序。#include p16f877a.inc #DEFINE youyi 0X2100;樂譜編號#define L_5.158#defineL_6.141#defineM_1.119#defineM_2.105#defineM_3.94#defineM_5.79#defineM_6.70#defineH_1.59#defineM_0.0 ; tone8=158,141,119,105,94,79,70,59;聲調(diào)的高低,實際上是PWM的周期值;計算方法是CCP的時鐘1MHz除以預(yù)分頻比16
5、,再除以要產(chǎn)生的頻率,最后再減去1。PORTD_D EQU 20H ;顯示緩沖器COUNTCOUNT1 EQU 21HCOUNT2 EQU 22HCOUNT3 EQU 23HCOUNT4 EQU 24HSAVEW EQU 25H ;W保護寄存器SAVES EQU 26H ;STATUS保護寄存器COUNT5 EQU 27H ;節(jié)拍數(shù)H EQU 28H ;地址寄存器HANG EQU 29H ;行寄存器LIE EQU 30H ;列寄存器TMP1 EQU 31H ;TMP1緩存寄存器Byte EQU 32H ;緩存Count6 EQU 33H ;節(jié)拍數(shù)Count7 EQU 34H ;節(jié)拍數(shù)DD_RA
6、M_ADDREQU 35H ; 第一行顯示地址寄存器DD_RAM_UL EQU 36H ; 第二行顯示地址寄存器COUNT EQU 37HCount EQU 38H ;計數(shù)寄存器Count2 EQU 39H;* 定義 LCD數(shù)據(jù)& 控制I/O口 #defineLCD_DB7 PORTB,3 ;占用的I/O口定義 #defineLCD_DB6 PORTB,2 ;LCD的DB6與RB2連接,其它類推#defineLCD_DB5 PORTB,1 ;#defineLCD_DB4 PORTB,0 ;#define LCD_EN PORTC,0#define LCD_RS PORTC,1#defi
7、neLCD_DB7_DIRTRISB,3 ;對應(yīng)的方向寄存器定義#defineLCD_DB6_DIRTRISB,2 ;#defineLCD_DB5_DIRTRISB,1 ;#defineLCD_DB4_DIRTRISB,0 ;#defineLCD_EN_DIRTRISC,0 ;#defineLCD_RS_DIRTRISC,1 ; ;* LCD 模塊命令#defineDISP_ON0x00C ; 開顯示#defineDISP_ON_C0x00E ; 開顯示, 開指針#defineDISP_ON_B0x00F ; 開顯示, 開指針,開閃爍#defineDISP_OFF0x008 ; 關(guān)顯示#def
8、ineCLR_DISP0x001 ; 清顯示的操作數(shù)#defineENTRY_INC0x006 ; 操作數(shù)#defineENTRY_INC_S0x007 ; 操作數(shù)#defineENTRY_DEC0x004 ; 操作數(shù)#defineENTRY_DEC_S0x005 ; 操作數(shù) ORG youyi ;友誼天長地久 DE L_5,L_5,M_1,M_1,M_1,M_1,M_1,M_1,M_1,M_3,M_3,M_2,M_2,M_2,M_2DE M_1,M_2,M_2,M_3,M_3,M_1,M_1,M_1,M_1,M_1,M_3,M_3,M_5,M_5,M_6DE M_6,M_6,M_6,M_6,
9、M_6,M_6,M_6,M_6,M_6,M_5,M_5,M_5,M_5,M_3,M_3DE M_3,M_1,M_1,M_2,M_2,M_2,M_2,M_1,M_2,M_2,M_3,M_3,M_1,M_1,M_1DE M_1,L_6,L_6,L_6,L_5,L_5,M_1,M_1,M_1,M_1,M_1,M_1,M_1,M_1,M_6DE M_6,M_5,M_5,M_5,M_5,M_3,M_3,M_3,M_1,M_1,M_2,M_2,M_2,M_2,M_1DE M_2,M_2,M_6,M_6,M_5,M_5,M_5,M_5,M_3,M_3,M_3,M_5,M_5,M_6,M_6DE M_6,M_
10、6,M_6,M_6,M_6,M_6,H_1,H_1,M_5,M_5,M_5,M_5,M_3,M_3,M_3DE M_1,M_1,M_2,M_2,M_2,M_2,M_1,M_2,M_2,M_3,M_3,M_1,M_1,M_1,M_1DE L_6,L_6,L_6,L_5,L_5,M_1,M_1,M_1,M_1,M_1,M_1,M_0,M_0,M_0,M_0 ORG 0x000 NOP ;空指令 GOTO MAIN ORG 0x004 ;中斷入口 BANKSEL SAVEW MOVWF SAVEW SWAPF STATUS,W CLRF STATUS MOVWF SAVES ;中斷保護 GOTO C
11、CPINT ;*TABLETABLE1 ;取第一行的顯示碼TMR2 COUNT ADDWF PCL,1 ;地址偏移量加當(dāng)前PC值 RETLW 'I' ;T RETLW 'n' ;M RETLW 'n' ;R RETLW 'o' ;2 RETLW 'v' ;空格 RETLW 'a' ;空格 RETLW 't' ;C RETLW 'o' ;O RETLW 'r' ;U RETLW ' ' ;N RETLW ' ' ;T RE
12、TLW 'V' ;N RETLW '1' ;T RETLW '.' ;N RETLW '5' ;T RETLW 00H;* TABLE1TABLE ;取第二行顯示TIME: ms ADDWF PCL,1 ;地址偏移量加當(dāng)前PC值 RETLW 'H' ;T RETLW 'e' ;I RETLW 'l' ;M RETLW 'l' ;E RETLW 'o' ;: RETLW ' ' ;空格 RETLW 'P' ;空格 RETL
13、W 'I' ;空格 RETLW 'C' ;空格 RETLW '!' ;空格 RETLW 00H;* TABLE2TABLE2 ADDWF PCL,1 RETLW 30H ;"0" RETLW 31H ;"1" RETLW 32H ;"2" RETLW 33H ;"3" RETLW 34H ;"4" RETLW 35H ;"5" RETLW 36H ;"6" RETLW 37H ;"7" R
14、ETLW 38H ;"8" RETLW 39H ;"9"*主程序開始MAIN CALL LCD_DISPAY BANKSEL TRISD ;選擇體1 CLRF TRISD ;PORTD為輸出端口 MOVLW 07H ; MOVWF OPTION_REG ;1:256 BANKSEL T1CON CLRF COUNT5 MOVLW 30H ;分頻器為1:8,關(guān)閉TMR1 MOVWF T1CON ; BCF PIR1,TMR1IF ;溢出標(biāo)志位清零 CLRF TMR1H CLRF TMR1L MOVLW 0xEE ;設(shè)定TMR1低位初值 ADDWF TMR1
15、L ; MOVLW 0x85 ;設(shè)定TMR1高位初值 ADDWF TMR1H ; BSF T1CON,0 ;啟動TMR1 BANKSEL TRISC ;跳到體1 BCF TRISC,2 ;CCP1為輸出狀態(tài) BANKSEL EEADR ;跳到體2 MOVLW youyi ;將地址存到W寄存器 MOVWF EEADR ;將地址送入EEPROM地址寄存器 BANKSEL EECON1 ;選定BANK3 BCF EECON1,EEPGD ;選擇EEPROM作為非易失性存儲器操作對象 BSF EECON1,RD ;啟動一次讀EEPROM的操作 BANKSEL EEDATA ;跳到體2 MOVF EED
16、ATA,W ;由于EEPROM的讀出操作花費的時間很短,此時EEPROM BANKSEL PR2 ;跳到體1 MOVWF PR2 ;將W的值存到PR2 BANKSEL T2CON ;跳到體0 MOVLW 0x07 ;預(yù)分頻1:16,后預(yù)分頻1:1 MOVWF T2CON ;開定時器2 MOVLW 0x0C ;將0x0C存到W寄存器 MOVWF CCP1CON ;使用8位PWM方式 BANKSEL PR2 ;跳到體1 MOVF PR2,0 ;將PR2值存到W寄存器 BANKSEL CCPR1L ;跳到體0 MOVWF CCPR1L ;將W存到CCPR1L MOVLW B'11111100
17、' ;屏蔽低兩位 ANDWF CCPR1L,1 RRF CCPR1L,1 ;CCPR1L右移一位 RRF CCPR1L,1 ;CCPR1L右移一位 RRF CCPR1L,1 ;CCPR1L右移一位 BANKSEL PIE1 ;跳到體1 BSF PIE1,TMR1IE ;啟動TMR1中斷 BSF INTCON,PEIE ;開啟外設(shè)中斷 BSF INTCON,GIE ;開啟全局中斷 BANKSEL PORTD ;選擇體0 CLRF PORTD MOVLW 01H ;顯示緩沖器賦初值 MOVWF PORTD_D LOOP ;CALL DELAY_500ms ;延時500ms ;RLF POR
18、TD_D ;顯示緩沖器循環(huán)左移 GOTO LOOP ;等待中斷;* CCPINT中斷子程序CCPINT BTFSS PIR1,TMR1IF ;判斷是否是TMR1中斷 GOTO JMP4 ;否,跳出中斷 BCF PIR1,TMR1IF ;是,清中斷標(biāo)志位 MOVLW 30H ;分頻器為1:8,關(guān)閉TMR1 MOVWF T1CON ; CLRF TMR1H ;清TMR1H CLRF TMR1L ;清TMR1L MOVLW 0xEE ;設(shè)定TMR1低位初值 ADDWF TMR1L ; MOVLW 0x85 ;設(shè)定TMR1高位初值 ADDWF TMR1H ; BSF T1CON,0 ;啟動TMR1 B
19、ANKSEL EEADR ;跳到體2 MOVLW youyi ;將地址存到W寄存器 MOVWF EEADR ;將地址送入EEPROM地址寄存器 BANKSEL COUNT5 ;跳到體0 MOVF COUNT5,0 ;將COUNT存到W寄存器 BANKSEL EEADR ;跳到體2 ADDWF EEADR,1 ;EEADR=EEADR+COUNT BANKSEL EECON1 ;選定BANK3 BCF EECON1,EEPGD ;選擇EEPROM作為非易失性存儲器操作對象 BSF EECON1,RD ;啟動一次讀EEPROM的操作 BANKSEL EEDATA ;跳到體2 MOVF EEDATA
20、,W ;由于EEPROM的讀出操作花費的時間很短,此時EEPROM BANKSEL PR2 ;跳到體1 MOVWF PR2 ;將W存到PR2 BANKSEL CCPR1L ;跳到體0 MOVWF CCPR1L ;將W存到CCPR1L MOVLW B'11111100' ;將11111100存到W寄存器 ANDWF CCPR1L,1 ;屏蔽低兩位 RRF CCPR1L,1 ;CCPR1L左移一位 RRF CCPR1L,1 ;CCPR1L左移一位 RRF CCPR1L,1 ;CCPR1L右移一位 MOVLW .149 ;將149存到W寄存器 SUBWF COUNT5,0 ;W=CO
21、UNT-149 BTFSS STATUS,C ;判斷是否有借位 GOTO JMP1 ;有,跳到JMP1 GOTO JMP2 ;無,跳到JMP2JMP1 INCF COUNT5,1 ;COUNT=COUINT+1 GOTO JMP ;跳到JMPJMP2 CLRF COUNT5 ;COUNT清零JMP MOVLW B'00000000' ;送.0到W寄存器 XORWF PORTD,0 ;判斷PORTD是否為0 BTFSS STATUS,Z GOTO JMP3 ;否,跳到JMP1 MOVF PORTD_D,0 ;是,將PORTD_D的值 MOVWF PORTD ;送到PORTD GO
22、TO JMP4JMP3 CLRF PORTD ;PORTD清零 BCF STATUS,C ;清楚其他操作對C的影響 RLF PORTD_D ;顯示緩沖器循環(huán)左移 BTFSC STATUS,C GOTO JMP5 GOTO JMP4 JMP5 MOVLW 01H ;顯示緩沖器賦初值 MOVWF PORTD_D JMP4 SWAPF SAVES,W MOVWF STATUS SWAPF SAVEW,F SWAPF SAVEW,W ;恢復(fù)中斷 RETFIE;* 700ms延時子程序DELAY_500ms MOVLW .5 MOVWF COUNT3LOOP1 MOVLW D'133' ;設(shè)置外部循環(huán)次數(shù) MOVWF COUNT1 ;LOOP2 MOVLW D'249' ;設(shè)置部循環(huán)次數(shù) MOVWF COUNT2 ;LOOP3 DECFSZ COUNT2 ,1 ;部循環(huán)變量自減1,為0則跳轉(zhuǎn) GOTO LOOP3 ; DECFSZ COUNT1,1 ;外部
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024成都醫(yī)學(xué)院輔導(dǎo)員招聘筆試真題
- 2025年溶劑型色漿項目合作計劃書
- 10的認(rèn)識和加、減法第3課時 練一練 教案 2025人教版數(shù)學(xué)一年級上冊
- 2024年南通市紫瑯第一小學(xué)選聘教師真題
- 2025年柳州市公安機關(guān)招聘警務(wù)輔助人員考試試題【答案】
- 2025年內(nèi)蒙古自治區(qū)司法廳下屬事業(yè)單位招聘考試筆試試題【答案】
- 2025年TFT-LCD用偏光片項目建議書
- 吉林科技發(fā)展計劃項目-吉林科技創(chuàng)新服務(wù)平臺
- 2025年智能變電站自動化系統(tǒng)項目建議書
- 2025年航空用玻璃系列項目建議書
- GB/T 45004-2024鋼鐵行業(yè)低碳企業(yè)評價指南
- 2024年鮮食玉米項目可行性研究報告
- 生理學(xué)課件全套課件
- 5.1延續(xù)文化血脈-(教學(xué)設(shè)計) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級上冊
- 《正弦、余弦函數(shù)的性質(zhì)-第一課時(周期性和奇偶性)》名師課件2
- 2024年部編版七年級語文上冊全程電子課本
- 2024-2025學(xué)年初中信息技術(shù)(信息科技)七年級上冊蘇科版(2023)教學(xué)設(shè)計合集
- 抖音店鋪入駐協(xié)議書范本
- 《成人有創(chuàng)機械通氣氣道內(nèi)吸引技術(shù)操作》標(biāo)準(zhǔn)解讀
- 醫(yī)療器械產(chǎn)品技術(shù)服務(wù)合同完整協(xié)議書范本模板
- 2021網(wǎng)絡(luò)布線省賽評分標(biāo)準(zhǔn)(公開稿)
評論
0/150
提交評論