




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ARM實驗報告一,程序功能。music該程序可以實現(xiàn)簡單的音樂播放,通過蜂鳴器發(fā)出不同的音樂,播放的音樂為 數(shù)組中的樂譜。每秒播放一個頻率的音樂。播放完畢后重頭開始播放。二,播放的原理在音樂中每個樂譜的頻率值不一樣,因此,我們可以改變驅動給蜂鳴器的頻率值來使 蜂鳴器發(fā)出不同的聲音,下面是頻率對應表:音樂1234567高1高2高3高4高5高6頻率52357865969878488098810461175131813971568176010 口產生高低電平就可以了,對于不同 只是驅動蜂鳴器的波形不一樣,這里由于是簡單的音樂播放程50%的方波作為蜂鳴器的驅動波形,改變占空比可以模擬不同的在本程序中,
2、我們采用的是方波驅動,故只需要在 的樂器,其頻率值都是一樣的, 序,故我們直接使用占空比為 樂器發(fā)音。三,程序流程圖"''T定時器中斷 服務函數(shù))VICVectCntl0 = 0x24;/定時器 0 中斷通道分配最高優(yōu)先級 (向量控制器四:主函數(shù)代碼和相關注釋I* 文 件 名: main.c* 功能:使用定時器 0 實現(xiàn) 1 秒定時 ,控制蜂鳴器蜂鳴。 (中斷方式 )*說明:短接蜂鳴器跳線 JP7。斷開CF卡跳線JP13 GPIO接口 J17。*I#include"config.h" BEEPCON 1<<7全局變量見后面的詳細解釋。#
3、defineint n,j;int freq=0,523,578,659,698,784,880,988,1046,1174,1318,1397,1568,1760,1976;II1234567 頻率值int music=5,5,6,5,1,7,5,5,6,5,2,1,5,5,3,2,1,7,6,4,4,3,1,2,1;II 播放的音樂數(shù)組 void frequecy_time(int f) T0MR0 =(int)(110592If) ;II P0.7引腳控制B1,低電平蜂鳴/產生特定頻率時給 T0MR0 的初值I* 名* 功稱: IRQ_Time0() 能:定時器 0 中斷服務程序,取反
4、BEEPCON 控制口。產生 50%的占空比 * 入口參數(shù):無* 出口參數(shù):無 *Ivoid _irq IRQ_Time0(void)if( (IO0SET&BEEPCON) = 0 )IO0SET = BEEPCON;elseIO0CLR = BEEPCON;if(n=freqmusicj)T0PR = 99;T0MCR = 0x03;frequecy_time(freqmusicj*2);T0TCR = 0x03;T0TCR = 0x01;n=0;j+;if(j=25) j=0;I* 設置定時器 0 中斷 IRQ *IVICIntSelect = 0x00;II輸出咼電平輸出低電平
5、II到達1秒后II 設置定時器 0 分頻為 100 分頻,得 110592HzII 匹配通道 0 匹配中斷并復位 T0TC播放下一個頻率值II 啟動并復位 T0TC/播放完畢后從新播放II 所有中斷通道設置為 IRQ 中斷0)VICVectAddr0 = (uint32)IRQ_Time0;VICIntEnable = 0x00000010;/設置中斷服務程序地址向量使能定時器 0 中斷;n+; if(n>1976) n=0;T0IR = 0x01;VICVectAddr = 0x00; / 頻率值大于高音 7 時重新播放/ 清除中斷標志/ 通知 VIC 中斷處理結束/* 名* 功稱:
6、Time0Init()能:初始化定時器 0,定時時間為1S,并使能中斷。* 入口參數(shù):無* 出口參數(shù):無*/void Time0Init(void)/* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz */T0PR = 99;T0MCR = 0x03;T0MR0 = 110592;T0TCR = 0x03;T0TCR = 0x01;/設置定時器 0 分頻為 100 分頻,得 110592Hz 匹配通道 0 匹配中斷并復位 T0TC/ 比較值 (1S 定時值 )啟動并復位
7、 T0TC0)/* 設置定時器 0 中斷 IRQ */ VICIntSelect = 0x00; VICVectCntl0 = 0x24;VICVectAddr0 = (uint32)IRQ_Time0;VICIntEnable = 0x00000010;/所有中斷通道設置為 IRQ 中斷定時器 0 中斷通道分配最高優(yōu)先級 (向量控制器設置中斷服務程序地址向量使能定時器 0 中斷/* 名* 功*/稱: main()能:初始化 I/O 及定時器,然后等待中斷。int main(void)IRQEnable();/ 使能 IRQ 中斷PINSEL0 = 0x00000000;IO0DIR = BE
8、EPCON;Time0Init();while(1);/ 設置管腳連接 GPIO/ 設置 I/O 為輸出/ 初始化定時器 0 及使能中斷/ 等待定時器 0 中斷或定時器 1 匹配輸出return(0);詳細解釋:n 為單個頻率值需要播放的次數(shù)。0 不等于 freq5 =785 so 的頻率J 為順序播放的音樂樂譜,播放一個后自動加一。 下面我們舉個例子詳細說明一下, 我們播放的音樂是祝你生日快樂 他的樂譜是 music=5,5,6,5,1,7,5,5,6,5,2,1,5,5,3,2,1,7,6,4,4,3,1,2,1; 。當系統(tǒng)初始化后的全局變量 都為 0,即 n=j=0; 進入中斷服務函數(shù)后
9、 if(n=freqmusicj);n+; if(n>1976) n=0;T0IR = 0x01;VICVectAddr = 0x00;當 n=785 時就執(zhí)行 if() 里面的語句:T0PR = 99;T0MCR = 0x03; frequecy_time(freqmusicj*2);T0TCR = 0x03;T0TCR = 0x01; n=0; j+;if(j=25) j=0;要讓5 (so)的音持續(xù)1秒鐘那么就要在這個頻率段執(zhí)行785次高低電平/清除中斷標志通知 VIC 中斷處理結束重新給定時器分頻匹配通道 0 匹配中斷并復位 T0TC/播放下一個頻率值/ 啟動并復位 T0TC/ 播放次數(shù)清零 一邊持續(xù) 1 秒 /下一位音樂值 /如果播放完畢后從新播放其中有個比較關鍵的 frequecy_time
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療行業(yè)中的倫理決策支持系統(tǒng)建設
- 醫(yī)療人工智能技術在辦公健康管理中的應用
- 全球化視角下跨國公司對智能醫(yī)療服務責任的考量
- 潁上縣交通運輸局年春運工作總結模版
- 以客戶為中心企業(yè)如何利用區(qū)塊鏈優(yōu)化客戶服務體驗
- 兄弟分房合同范例
- 醫(yī)療大數(shù)據(jù)庫建設與健康管理的未來趨勢
- 語文《愛蓮說》課件
- 化學燒傷的臨床護理
- 溫州市普通高中2025屆高三第三次適應性考試數(shù)學試題及答案
- 華為結構面試題及答案
- 杭州銘赫科技有限公司新增年產1260萬件精密粉末冶金零部件技術改造項目環(huán)評報告
- 2025年初級會計職稱考試試卷及答案
- 福建武夷旅游集團限公司下屬子企業(yè)2025年上半年社會公開招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 【MOOC期末】《大學體育射箭》(東南大學)中國大學慕課答案
- 中醫(yī)適宜技術-中藥熱奄包
- 2023年全國職業(yè)院校技能大賽-老年護理與保健賽項規(guī)程
- MOOC 財政學-浙江財經(jīng)大學 中國大學慕課答案
- 《現(xiàn)代漢語修辭》PPT課件(完整版)
- CRH380B動車組電氣系統(tǒng)綜述綜述
- 作業(yè)準備驗證及停工后驗證規(guī)定
評論
0/150
提交評論