网站大量收购闲置独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
硬件 PIC16F883 芯片, 10 个按键, 4 位数码管。 【芯片引脚】 1RE 31MCILPIV PP 1 R Ol AN Of ULP w u f C12INO- ... 寸 2  酝 R一日,6IICSPCLK `3 ` 陨 2l AN2N REF-I CV 平 HC2 l N + 4  ? RB5/AN13汀1:G R B4/AN111/ 户1D R 3,AN3N R 巳 +JC11N -+ 盲平4!TCJCK II C10 UT 玉 邸 5/ N4/.S,8 /C20 UT Vss 愁 了i OSC1/CLK IIN :!I 5 6 2 了 2 8 2 1 巨9 巨 鼠 RB3JAN9JPGM.rC 1!2 1M2- R8,.2JAN8JP1B RB1IA NH VP1CK只21N 3- RBDI AN 112, 1NT 酗 6fOS C 2/CLK.OIJTill RCO/T10 SO厅1JCK I RC1fT1 0 S “ CC 戌 亡 IO 工 1了 ARCC了6IfRTXXJ(COKT RC2i P1N CCP 1 RCJI SCK/SCL 16 RC5 尼DO 15 RC4fSD「I SD A 【数码管连接】 PORTC 连接数码管的 8 段 LED ,PORTA3:0 连接数码管的 4 个共阴极(控制选通位)。 【按键连接】 按键扫描程序在上一篇博文里面有说明,现在还是使用上面的扫面方式(代码都是一样的)。 用记录按键按下和弹起的时间判断是不是长按和双击。 TMR1 设置, 1:4 分频、 1:8 预分频, 计数周期为 8uS 。TMR1 溢出一次时间为 0.524288 S keypress 记录 TMR1 溢出的次数。keypress 大于等于 2 就跳出检测,认为他是长按(时间为 1.048576S ) 。keypress1 且keyrelease 1 ,再次按下的 keypress1 就认为是双击。如下图: KP 按键按下, KR 按键弹起。 【实现代码】 1#includep16f883.inc 2 3 4 5 CONFIG _CONFIG1, _LVP_OFF _FCMEN_ON _IESO_OFF _BOR_OFF 6_CPD_OFF _CP_OFF _MCLRE_ON 7_INTRC_OSC_NOCLKOUT _PWRTE_ON _WDT_OFF 8 9 CONFIG _CONFIG2, _WRT_OFF _BOR21V 10 11 12 13udata_shr 14 15counter res 1 ;计数个位 16 17counter0 res 1 ;计数十位18 19counter1 res 1 ;扫描按键变量20 21counter2 res 1 ;延时程序微调参数22 23key_state res 1 ;按键状态24 25keynum res 1 ;按键标号26 27swap res 1 ;确认按键转换值 28 29keypress res 1 30 31keypressbak res 1 32 33keyrelease res 1 34 35LED1 res 1 36 37LED2 res 1 38 39LED3 res 1 40 41LED4 res 1 42 43 UDATA 44 45counter3 res 1 46 47counter4 res 1 48 49sign res 1 50 51 52 53reset code 0x0000 54 55pagesel start 56 57goto start 58 59 60 61;int_vector code 0x0004 62 63code 64 65start 66 67banksel ANSEL ;设置 PORTA 为数字模式 68 69clrf ANSEL 70 71banksel ANSELH ;设置 PORTB 为数字模式 72 73clrf ANSELH 74 75banksel TRISB ;设置 PORTB 为输入模式 76 77movlw 78 79movwf TRISB 80 81banksel WPUB ;设置 PORTB 弱上拉 82 83movlw 84 85movwf WPUB 86 87banksel OPTION_REG 88 89movlw ;TMR0 64 分频 90 91movwf OPTION_REG 92 93banksel T1CON 94 95movlw ;打开 TMR1,设置 1:8 预分频,内

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档