基于DSP的鍵控流水燈_第1頁
基于DSP的鍵控流水燈_第2頁
基于DSP的鍵控流水燈_第3頁
基于DSP的鍵控流水燈_第4頁
基于DSP的鍵控流水燈_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子電氣工程學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)預(yù)習(xí)實(shí)驗(yàn)序號5實(shí)驗(yàn)題目按鍵控制led燈預(yù)習(xí)日期要求:1.實(shí)驗(yàn)?zāi)康?2.實(shí)驗(yàn)原理:3.畫出實(shí)驗(yàn)原理圖;4.實(shí)驗(yàn)設(shè)備;5.預(yù)習(xí)內(nèi)容(該實(shí)驗(yàn)項(xiàng)目應(yīng)完成內(nèi)容);6.記錄表格設(shè)計(jì)。一、 實(shí)驗(yàn)?zāi)康?、 了解dsp開發(fā)系統(tǒng)里關(guān)于按鍵控制led燈的原理。2、 學(xué)會運(yùn)用軟件驅(qū)動按鍵控制led。3、 熟悉ccs3.1studio的使用。二、實(shí)驗(yàn)原理實(shí)驗(yàn)電路如下:通過按鍵3來控制四個(gè)led。三、 實(shí)驗(yàn)內(nèi)容將key文件copy到ccs開發(fā)環(huán)境中myproject目錄下,ccs中用project命令加載key目錄下的key。pjt;在ccs中用file program 命令,加載ke

2、y目錄中debug目錄下;在ccs中用debug go main 執(zhí)行程序到main()函數(shù)處;當(dāng)程序全速運(yùn)行時(shí),按下key鍵盤,則led1不斷閃爍,按第二下時(shí),led2不斷閃爍,按第三下時(shí),led4不斷閃爍,按第五下時(shí),led1led4循環(huán)依次閃爍,若再按按鍵,則如此反復(fù)循環(huán)。二、實(shí)驗(yàn)報(bào)告要求:1.實(shí)驗(yàn)步驟;2.實(shí)驗(yàn)數(shù)據(jù)、波形、現(xiàn)象的記錄;3.數(shù)據(jù)分析、處理(分析、討論實(shí)驗(yàn)結(jié)果,說明實(shí)驗(yàn)結(jié)果與理論值的比較誤差;討論實(shí)驗(yàn)中存在的問題與解決方法。);4.實(shí)驗(yàn)操作注意事項(xiàng);5.實(shí)驗(yàn)習(xí)題;6.心得體會。一、 實(shí)驗(yàn)步驟1、 打開ccs3.1軟件將程序key加載到project目錄下。2、 打開main

3、()函數(shù),進(jìn)行保存和編譯。3、 點(diǎn)擊debug下的connect連接dsp開發(fā)系統(tǒng).4、 點(diǎn)擊file下的load program選擇key.out文件并運(yùn)行.5、 按下按鍵key,觀察按下按鍵的次數(shù)與led的亮滅規(guī)律.6、 修改程序得到不一樣的結(jié)果.二實(shí)驗(yàn)程序/*main.c*/ /*按鍵與走馬燈程序*/#include global.c void systeminit();void timer1init(); void kickdog(); void keyled();void scankey(void);void delay(unsigned int num);unsigned int

4、numled=0,numkey=0;main() systeminit(); /系統(tǒng)初始化 mcrc=mcrc & 0xff00; /iope0-7設(shè)為io口模式 pedatdir=0xff00; /所有l(wèi)ed=0, (1代表輸出,0代表輸入) mcra=mcra & 0x00ff; /iopb0-7設(shè)為io口模式 pbdatdir = pbdatdir & 0x00ff; asm( clrc intm ); timer1init(); /定時(shí)器初始化 while(1) scankey();numkey+;if (numkey 5)numkey = 1; void systeminit() a

5、sm( setcintm );/* 關(guān)閉總中斷 */asm( clrc sxm );/* 禁止符號位擴(kuò)展 */ asm( clrc cnf ); /* b0塊映射為 on-chip daram*/asm( clrc ovm ); /* 累加器結(jié)果正常溢出*/scsr1=0x02fc; /* 系統(tǒng)時(shí)鐘clkout=20*2=40m */wdcr=0x006f;/* 禁止看門狗,看門狗時(shí)鐘64分頻 */ kickdog(); /* 初始化看門狗 */ ifr=0xffff;/* 清除中斷標(biāo)志 */ imr=0x0002;/* 打開中斷2*/ void timer1init() evaimra=0x

6、0080;/ 定時(shí)器1周期中斷使能通用定時(shí)器功能: 具有計(jì)數(shù)定時(shí)功能,可以為各種應(yīng)用提供時(shí)基,并可以產(chǎn)生比較輸出/pwm信號。742chevaimraeva的中斷屏蔽寄存器a742fhevaifraeva的中斷標(biāo)志寄存器aevaifra=0xffff;11111 111 1111 1111/ 清除中斷標(biāo)志 742fh,各位描述如下:位15-11 保留位。讀返回0,寫無效。位10 t1ofint flag。通用定時(shí)器1的上溢中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位標(biāo)志位位9 t1ufint flag。通用定時(shí)器1的下溢中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫

7、0:無效 1:復(fù)位標(biāo)志位位8 t1cint flag。通用定時(shí)器1的比較中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位標(biāo)志位位7 t1pint flag。通用定時(shí)器1的周期中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位標(biāo)志位位6-4 保留位。讀返回0,寫無效。位3 cmp3int flag。比較單元3中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位位2 cmp2int flag。比較單元2中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位標(biāo)志位位1 cmp1int flag。比較單元1中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位

8、;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位標(biāo)志位位0 pdpinta flag。功率驅(qū)動保護(hù)中斷標(biāo)志 讀 0:標(biāo)志被復(fù)位;1:標(biāo)志被置位 寫 0:無效 1:復(fù)位標(biāo)志位 gptcona=0x0000;0 0 0 00 00 00 0 00 00 00 7400hgptcona定時(shí)器控制寄存器aeva位15 保留位位14 通用定時(shí)器2的狀態(tài),只讀。 0 遞減計(jì)數(shù)位13 通用定時(shí)器1的狀態(tài),只讀。 1 遞增計(jì)數(shù)位12-11 保留位。位10-9 使用通用定時(shí)器2啟動adc事件。 00 無事件啟動adc(模數(shù)轉(zhuǎn)換)位8-7 使用通用定時(shí)器1啟動adc事件。 00 無事件啟動adc(模數(shù)轉(zhuǎn)換)位6 比較輸出

9、使能,如果pdpintx*有效則該 位設(shè)置為0。 0 禁止所有通用定時(shí)器比較輸出(所有比較輸出 都置于高阻態(tài))位5-4 保留位。位3-2 通用定時(shí)器2比較輸出極性 00 強(qiáng)制低位1-0 通用定時(shí)器1比較輸出極性 00 強(qiáng)制低t1pr=2500;/ 定時(shí)器1初值,定時(shí)0.4us*2500=1ms 7403ht1pr定時(shí)器1的周期寄存器t1cnt=0;7401ht1cnt定時(shí)器1的計(jì)數(shù)寄存器t1con=0x144e; 00 0 10 100 0 1 00 01 00 /增模式, tps系數(shù)40m/16=2.5m,t1使能 位15-14 仿真控制位 00 仿真掛起時(shí)立即停止 位12-11 4種計(jì)數(shù)模

10、式選擇 10 連續(xù)增計(jì)數(shù)模式 位10-8 輸入時(shí)鐘定標(biāo)器 100 x16 位7 使能位的來源 0:使用自身的使能位(tenable)位6 定時(shí)器使能與禁止 1 允許定時(shí)器操作位5-4 時(shí)鐘源選擇 00 內(nèi)部時(shí)鐘位3-2 定時(shí)器比較寄存器重載條件。 01 計(jì)數(shù)器的值為0或等于周期寄存器的值 時(shí)重載 位1 定時(shí)器比較使能與禁止。0 禁止定時(shí)器比較操作位0 周期寄存器選擇 0 使用自己的周期寄存器void scankey(void)unsigned inttemp,temp1;unsigned int flag = 0;while(flag=0)temp = pbdatdir ; 按鍵消抖程序,檢測

11、按鍵是否按下,只有當(dāng)按按下又拿起時(shí)才視為按鍵完成了一次按鍵.temp = temp & 0x0080;(取高位)while(temp =0x0080) temp = pbdatdir ;temp = temp & 0x0080; delay(5000);temp = pbdatdir ; temp = temp & 0x0080;(按鍵位按下為0,不按為1,且第七位為按鍵位) temp1 = temp;if (temp = 0x0080) flag = 0;else flag = 1; temp = pbdatdir ; temp = temp & 0x0080; while( temp !=

12、 0x0080)temp = pbdatdir ;temp = temp & 0x0080;voiddelay(unsigned int num)volatile unsigned int i;for (i=0;i=1200) numled=1;void interruptc_int2() /*定時(shí)器1中斷服務(wù)程序*/ if(pivr!=0x27) asm( clrc intm );return; t1cnt=0; (重新賦值) numled+;if ( numled % 200 =0) keyled(); evaifra=0x80; asm( clrcintm ); void kickdog()/*踢除看門狗 */wdkey=0x5555;wdkey=0xaaaa;3、 實(shí)驗(yàn)現(xiàn)象當(dāng)?shù)谝淮伟聪掳存I時(shí)四個(gè)led中第一個(gè)led閃爍

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論