DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc

上传人:灯火****19 文档编号:136880921 上传时间:2020-07-03 格式:DOC 页数:4 大小:137KB
返回 下载 相关 举报
DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc_第1页
第1页 / 共4页
DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc_第2页
第2页 / 共4页
DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc_第3页
第3页 / 共4页
DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc》由会员分享,可在线阅读,更多相关《DSP实验二、TMS320F28335 按键输入 控制LED亮灭.doc(4页珍藏版)》请在金锄头文库上搜索。

1、继续我的第二个实验;实现按键控制LED亮灭:功能描述:上电默认LD3亮;触动一次按键SW12,LD3灭再按一次按键SW12, LD3亮再触动一次按键SW12,LD3灭再按一次按键SW12, LD3亮。实现每触动一次按键,LED执行一次由亮到灭,或者由灭到亮,也就是实现一次状态反转。电路连接说明:LD3 设置为通用GPIO 上拉输出 初始化后默认为输出LD3亮状态;LD3控制LED灯的负极,如下图;SW12 设置为通用GPIO 上拉输入 该引脚应用滤波功能,且仅在按键抬起时控制LD3状态发生变化。按键电路如上图,GPIO53须输出0,当按键按下时,读取GPIO50端口值,为0,当按键未按下时,G

2、PIO50因为上上拉作用,其端口值为1。程序设计说明:按键的读取采用实时扫描的方式(非中断方式),功能要求在按键抬起后发生LED状态翻转;所以要记录上一次按键值,并且将当前值=0&上一次值=1时,做为按键抬起有效,控制LED发生状态翻转。主要程序如下: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;经实际测试,上述程序可以实现LD3的翻转,基本达到设计要求。但是在测试过程中

3、,时好时坏,有时能够看见LED快速翻转,说明按键有抖动的情况,这里可以考虑IO口滤波,即在初始化时,设置IO采样周期以及量化串口,设置如下:采样周期设置为200时,不再出现抖动现象,按键稳定操作。源程序如下:#include DSP2833x_Device.h / DSP2833x Headerfile Include File#include DSP2833x_Examples.h / DSP2833x Examples Include File#define LD3_ON() GpioDataRegs.GPACLEAR.bit.GPIO0 = 1#define LD3_OFF() Gpio

4、DataRegs.GPASET.bit.GPIO0 = 1#define LD3_TOGGLE() GpioDataRegs.GPATOGGLE.bit.GPIO0= 1#define LD4_ON() GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1#define LD4_OFF() GpioDataRegs.GPBSET.bit.GPIO34 = 1#define Key_SW12()GpioDataRegs.GPBDAT.bit.GPIO50/* * main.c */int main(void) unsigned char last_Key_SW12=1;/保留

5、上一次扫描结果,上电默认为未按下状态unsigned char new_Key_SW12=1;/保留当前扫描结果,上电默认为未按下状态InitSysCtrl();DINT;IER = 0x0000;IFR = 0x0000;InitPieCtrl();InitPieVectTable();InitGpio();EALLOW;/GPIO0 LD3 控制LED负极GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;/0 gpio modeGpioCtrlRegs.GPADIR.bit.GPIO0 = 1;/1 output 0 inputGpioCtrlRegs.GPAPUD.b

6、it.GPIO0 = 0;/1 enable pullup 0 disable pullup/GPIO34 LD4 控制LED负极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 mode

7、GpioCtrlRegs.GPBDIR.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;/采样窗内3次采样结构相同/GPIO53 按键矩阵负极输出0GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 0;/0 gpio modeGp

8、ioCtrlRegs.GPBDIR.bit. GPIO53 = 1;/1 output 0 inputGpioCtrlRegs.GPBPUD.bit. GPIO53 = 0;/1 enable pullup 0 disable pullupGpioDataRegs.GPBCLEAR.bit.GPIO53 = 1;LD3_ON();/默认输出亮状态LD4_OFF();EDIS;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;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号