单片机-电容触摸按键-报告

单片机-电容触摸按键-报告

ID:41607639

大小:78.85 KB

页数:4页

时间:2019-08-28

单片机-电容触摸按键-报告_第1页
单片机-电容触摸按键-报告_第2页
单片机-电容触摸按键-报告_第3页
单片机-电容触摸按键-报告_第4页
资源描述:

《单片机-电容触摸按键-报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、任务:MSP-EXP430G2板上P1.0上接了一个LED,而在配套的LaunchPad扩展板上,将MSP430G2553的P2.0和P2.5引出作为电容触摸按键。要求按下P2.0后LED亮,按下P2.5后LED灭,程序运行过程中不阻塞CPU,并且实现低功耗运行。硬件连接:如图所示程序代码:TouchIN.c:include”MSP430G2553.h“#defineKEY_NUM2/*触摸按键数目,根据需要修改7//=============具体触摸按键10宏定义,根据需要添加代码===============#defineKEY

2、OJNITP2DIR&二~BITO;P2SEL&二~BITO;P2SEL2

3、=BITO/*按键1开启振荡*/#defineKEY1JNITP2DIR&二~BIT5;P2SEL&=~BIT5;P2SEL2

4、=BIT5/*按键2开启振荡*///defineALL_OSC_OFFP2SEL2&=~(BITO+BIT5)/*关闭全部触摸振荡*//*门限频率的取值取决于定时扫描的时长,3300对应的是1.9ms定时情况,实际定时可取lms^20ms*/constunsignedintFREQ_THRESHOLD[KEY_NUM]={3300,

5、3300};/*参考值,需用仿真器查看后调整*///-…静态局部变量--staticunsignedintFreq[KEY_NUM]={0};〃当前测频值staticunsignedcharKey_Buff[KEY_NUM][4]={0};//软件FIFOstaticunsignedcharKey_Num=0;〃按键编号//全局变量,复杂程序中可以移植到Global.h统一管理unsignedcharTouchlN=0;〃相当于PxIN寄存器作用,支持8个触摸按键voidKey_Measure_Freq(){Freq[Key_Num

6、]=TAR;〃当前编号按键的频率被测得ALL_OSC_OFF;〃关闭所有振荡10Key_Num++;〃切换下一振荡10讦(Key_Num>二KEY_NUM)Key_Num=0;〃各触摸按键循环交替switch(Key_Num){case0:KEYOJNIT;break;〃振荡10初始化case1:KEY1JNIT;break;default:break;}TAOCTL=TASSEL_3+MC_2+TACLR;〃增计数清0,并开始计数}voidKey_FIFO()〃存储连续4次测量数据{Key_Buff[Key_Num][O]=Key

7、_Buff[Key_Num][l];Key_Buff[Key_Num][l]=Key_Buff[Key_Num][2];Key_Buff[Key_Num][2]=Key_Buff[Key_Num][3];if(Freq[Key_Num]

8、&&(Key_Buff[Key_Num][l]==O)&&(Key_Buff[Key_Num][2]==0)&&(Key_Buff[Key_Num][3]==0))//TouchlN=0«Key_Num;〃按键松开(错误代码)TouchlN&=~(l«Key_Num);〃按键松开(正确代码)if((Key_Buff[Key_Num][O]==l)&&(Key_Buff[Key_Num][l]==l)&&(Key_Buff[Key_Num][2]==l)&&(Key_Buff[Key_Num][3]==1))//TouchIN=l«K

9、ey_Num;〃按键按下(错误代码)TouchIN

10、=l«Key_Num;〃按键按下Key_Measure_Freq();〃测频Key_FIFO();〃软件FIFO缓存最近4次测量数据Key_Judge();〃仲裁按键是否按下或松开TouchIN.h:*****TouchIN.h******/#ifndefTOUCHIN_H_#defineTOUCHIN_HexternvoidTouchlN_Dect();//WDT中断事件externunsignedcharTouchIN;//相当于PxIN寄存器作用,支持8个触摸按键#enchf

11、/*TOUCHIN_H_*/main.c:#includeuMSP430G2553.h"厂触摸按键检测库函数*/#include“TouchIN.h”voidWDT_Ontime(void);〃…-对硬件相关代码进行宏定义处理…-#d

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。