找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9175|回复: 8
打印 上一主题 下一主题
收起左侧

求助:单个按键长按,短按的问题

[复制链接]
跳转到指定楼层
楼主
ID:4297 发表于 2009-4-4 09:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想实现一个按键key短按时(就是正常按,判断去抖后),led1闪烁两下,当key长按时(一直按住到1秒后),led2闪烁两下
看那位大虾给解决以下,不胜感谢阿!
还有就是怎么区分出是在松后后执行,还是松手前执行!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:8179 发表于 2009-4-4 17:56 | 只看该作者

                            KEY BIT P1.0     ;按键低电平有效
                            LED BIT P2.0     ;LED高电平亮
                            MOV P1,#0FFH ;置P1为输入方式
CHECK_KEY:         JB P1.0,$     ;等待按键
                            LCALL DELAY10MS   ;去抖动10ms
                           JB P1.0,CHECK_KEY  ;确定有按键
                           LCALL DELAY1S       ;延时1S后检测按键
                          JB P1.0,short       ;若已为高电平为短按
                         LCALL LED_FLASH    ;若仍然为低电平为长按
                          LCALL LED_FLASH
                    JNB P1.0,$        ;等键松开
                     LCALL DELAY10MS   ;去抖动
                     SJMP CHECK_KEY     ;返回循环                     

short:           LCALL LED_FLASH    ;闪烁1次
                    SJMP CHECK_KEY     ;循环

LED_FLASH:    SETB LED           ;闪烁程序
                       LCALL DELAY500MS    ;延时500ms
                       CLR  LED
                       LCALL DELAY500MS
                        RET
DELAY10MS:    MOV R2,#100
L1:            MOV R3,#50
                DJNZ R3,$
                DJNZ R2,L1
                RET
DELAY500MS:   MOV R2,#100
L2:           MOV R3,#250
                DJNZ R3,$
                DJNZ R2,L1
                RET
DELAY1S:      MOV R2,#200
                MOV R3,#250
                DJNZ R3,$
                DJNZ R2,L1
                RET
END

回复

使用道具 举报

板凳
ID:4297 发表于 2009-4-6 19:40 | 只看该作者

能写个C语言版的吗? 谢谢!

回复

使用道具 举报

地板
ID:10980 发表于 2009-4-10 16:57 | 只看该作者
很感谢,我也为这问题头痛着
回复

使用道具 举报

5#
ID:4297 发表于 2009-4-10 20:29 | 只看该作者
应用中断怎么解决??
回复

使用道具 举报

6#
ID:10636 发表于 2009-4-12 22:57 | 只看该作者
汇编好难懂。
回复

使用道具 举报

7#
ID:11501 发表于 2009-4-19 20:22 | 只看该作者
汇编虽然难懂,但是很实用,遇着不懂得就查字典了,有专门的汇编字典,或者上网搜索,多看就会明白的
回复

使用道具 举报

8#
ID:9960 发表于 2009-4-20 20:06 | 只看该作者
以下是引用xiaochen在2009-4-12 22:57:30的发言:
汇编好难懂。

我感觉C语言的难懂哦~

回复

使用道具 举报

9#
ID:66142 发表于 2014-9-14 20:12 | 只看该作者
汇编不会呀.可怜怎么没有C语言
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表