PIC单片机按键检测单双击、长短按识别

PIC单片机按键检测单双击、长短按识别

ID:38897210

大小:258.00 KB

页数:26页

时间:2019-06-21

PIC单片机按键检测单双击、长短按识别_第1页
PIC单片机按键检测单双击、长短按识别_第2页
PIC单片机按键检测单双击、长短按识别_第3页
PIC单片机按键检测单双击、长短按识别_第4页
PIC单片机按键检测单双击、长短按识别_第5页
资源描述:

《PIC单片机按键检测单双击、长短按识别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、硬件PIC16F883芯片,10个按键,4位数码管。【芯片引脚】 【数码管连接】PORTC连接数码管的8段LED,PORTA<3:0>连接数码管的4个共阴极(控制选通位)。【按键连接】 按键扫描程序在上一篇博文里面有说明,现在还是使用上面的扫面方式(代码都是一样的)。用记录按键按下和弹起的时间判断是不是长按和双击。TMR1设置,1:4分频、1:8预分频,计数周期为8uS。TMR1溢出一次时间为0.524288Skeypress记录TMR1溢出的次数。keypress大于等于2就跳出检测,认为他是长按(时间为1.048576S)。keypr

2、ess<1且keyrelease<1,再次按下的keypress<1就认为是双击。如下图:KP按键按下,KR按键弹起。【实现代码】?1234567891011121314151617181920212223242526272829#include    __CONFIG   _CONFIG1,_LVP_OFF&_FCMEN_ON&_IESO_OFF&_BOR_OFF&_CPD_OFF&_CP_OFF&_MCLRE_ON&_PWRTE_ON&_WDT_OFF&_INTRC_OSC_NOCLKOUT __CONFIG

3、   _CONFIG2,_WRT_OFF&_BOR21V    udata_shr counterres1;计数个位 counter0res1;计数十位 counter1res1;扫描按键变量 counter2res1;延时程序微调参数 key_stateres1;按键状态 keynumres1;按键标号 swapres1;确认按键转换值 keypressres13031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 

4、keypressbakres1 keyreleaseres1 LED1res1 LED2res1 LED3res1 LED4res1     UDATA counter3res1 counter4res1 signres1    resetcode0x0000 pageselstart gotostart    ;int_vectorcode0x0004 code start bankselANSEL;设置PORTA为数字模式 clrfANSEL bankselANSELH;设置PORTB为数字模式 clrfANSELH747576777

5、8798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 bankselTRISB;设置PORTB为输入模式 movlwb'11111111' movwfTRISB bankselWPUB;设置PORTB弱上拉 movlwb'11111111' movwfWPUB bankselOPTION_REG movlwb'01000101';TMR064分频 movwfOPTION_REG bankselT1C

6、ON movlwb'10010001';打开TMR1,设置1:8预分频,内部时钟源1:4分频 movwfT1CON bankselTRISA;设置PORTA<3:0>为输出,接数码管的共阴极 movlwb'11110000' movwfTRISA bankselPORTA clrfPORTA bankselTRISC movlwb'00000000';设置PORTC为输出,接8段数码管 movwfTRISC clrfcounter1   118119120121122123124125126127128129130131132133134

7、135136137138139140141142143144145146147148149150151152153154155156157158159160161 loop movlwHIGHTable1 movwfPCLATH movfcounter1,0 callTable1 bankselTRISB movwfTRISB movfcounter1,0 callTable1 bankselPORTB movwfPORTB movfPORTB,0 movwfkey_state movlwb'11001000' iorwfkey_stat

8、e,1 movfcounter1,0 callTable1    xorwfkey_state,0 movwfswap comfswap,1 incfszswap,11621631641651

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

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

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