DSP實(shí)驗(yàn)二TMSF 按鍵輸入 控制LED亮滅_第1頁
DSP實(shí)驗(yàn)二TMSF 按鍵輸入 控制LED亮滅_第2頁
DSP實(shí)驗(yàn)二TMSF 按鍵輸入 控制LED亮滅_第3頁
DSP實(shí)驗(yàn)二TMSF 按鍵輸入 控制LED亮滅_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、繼續(xù)我的第二個(gè)實(shí)驗(yàn);實(shí)現(xiàn)按鍵控制LED亮滅:功能描述:上電默認(rèn)LD3亮;觸動(dòng)一次按鍵SW12,LD3滅再按一次按鍵SW12, LD3亮再觸動(dòng)一次按鍵SW12,LD3滅再按一次按鍵SW12, LD3亮。實(shí)現(xiàn)每觸動(dòng)一次按鍵,LED執(zhí)行一次由亮到滅,或者由滅到亮,也就是實(shí)現(xiàn)一次狀態(tài)反轉(zhuǎn)。電路連接說明:LD3 設(shè)置為通用GPIO 上拉輸出 初始化后默認(rèn)為輸出LD3亮狀態(tài);LD3控制LED燈的負(fù)極,如下圖;SW12 設(shè)置為通用GPIO 上拉輸入 該引腳應(yīng)用濾波功能,且僅在按鍵抬起時(shí)控制LD3狀態(tài)發(fā)生變化。按鍵電路如上圖,GPIO53須輸出0,當(dāng)按鍵按下時(shí),讀取GPIO50端口值,為0,當(dāng)按鍵未按下時(shí),G

2、PIO50因?yàn)樯仙侠饔茫涠丝谥禐?。程序設(shè)計(jì)說明:按鍵的讀取采用實(shí)時(shí)掃描的方式(非中斷方式),功能要求在按鍵抬起后發(fā)生LED狀態(tài)翻轉(zhuǎn);所以要記錄上一次按鍵值,并且將當(dāng)前值=0&&上一次值=1時(shí),做為按鍵抬起有效,控制LED發(fā)生狀態(tài)翻轉(zhuǎn)。主要程序如下:while(1)EALLOW;last_Key_SW12 = new_Key_SW12; /保存舊值new_Key_SW12 = Key_SW12();/讀取新值if( last_Key_SW12=0 && new_Key_SW12=1)LD3_TOGGLE();EDIS;經(jīng)實(shí)際測試,上述程序可以實(shí)現(xiàn)LD3的翻轉(zhuǎn)

3、,基本達(dá)到設(shè)計(jì)要求。但是在測試過程中,時(shí)好時(shí)壞,有時(shí)能夠看見LED快速翻轉(zhuǎn),說明按鍵有抖動(dòng)的情況,這里可以考慮IO口濾波,即在初始化時(shí),設(shè)置IO采樣周期以及量化串口,設(shè)置如下:采樣周期設(shè)置為200時(shí),不再出現(xiàn)抖動(dòng)現(xiàn)象,按鍵穩(wěn)定操作。源程序如下:#include "DSP2833x_Device.h" / DSP2833x Headerfile Include File#include "DSP2833x_Examples.h" / DSP2833x Examples Include File#define LD3_ON() GpioDataRegs.GP

4、ACLEAR.bit.GPIO0 = 1#define LD3_OFF() GpioDataRegs.GPASET.bit.GPIO0 = 1#define LD3_TOGGLE() = 1#define LD4_ON() GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1#define LD4_OFF() GpioDataRegs.GPBSET.bit.GPIO34 = 1#define Key_SW12()50/* * main.c */int main(void) unsigned char last_Key_SW12=1;/保留上一次掃描結(jié)果,上電默認(rèn)為未按下狀態(tài)

5、unsigned char new_Key_SW12=1;/保留當(dāng)前掃描結(jié)果,上電默認(rèn)為未按下狀態(tài)InitSysCtrl();DINT;IER = 0x0000;IFR = 0x0000;InitPieCtrl();InitPieVectTable();InitGpio();EALLOW;/GPIO0 LD3 控制LED負(fù)極GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;/0 gpio modeGpioCtrlRegs.GPADIR.bit.GPIO0 = 1;/1 output 0 inputGpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;/1 en

6、able pullup 0 disable pullup/GPIO34 LD4 控制LED負(fù)極GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;/0 gpio modeGpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;/1 output 0 inputGpioCtrlRegs.GPBPUD.bit.GPIO34 = 0;/1 enable pullup 0 disable pullup/GPIO50 按鍵矩陣SW12輸入端GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 0;/0 gpio modeGpioCtrlRegs.GPBDI

7、R.bit. GPIO50 = 0;/1 output 0 inputGpioCtrlRegs.GPBPUD.bit. GPIO50 = 0;/1 enable pullup 0 disable pullupGpioCtrlRegs.GPBCTRL.bit.QUALPRD2= 200;/采樣周期=2*Tsysclkout*200GpioCtrlRegs.GPBQSEL2.bit.GPIO50 = 2;/采樣窗內(nèi)3次采樣結(jié)構(gòu)相同/GPIO53 按鍵矩陣負(fù)極輸出0GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 0;/0 gpio modeGpioCtrlRegs.GPBDIR.bit. GPIO53 = 1;/1 output 0 inputGpioCtrlRegs.GPBPUD.bit. GPIO53 = 0;/1 enable pullup 0 disable pullupGpioDataRegs.GPBCLEAR.bit.GPIO53 = 1;LD3_ON();/默認(rèn)輸出亮狀態(tài)LD4_OFF();EDIS;while(1)EALLOW;last_Key_S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論