2751

帖子

0

TA的资源

裸片初长成(初级)

21
 

;对P0.1脚的按键进行判断,按下为低,无键按下为高,含软件消抖、放键等待,超时5s跳至Timeout
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN:
 MOV R6,#00H;用于标识按键时长,清零
 MOV A,P0
 ANL A,#01H;假定按键按下时,引脚被拉低,松开时,引脚被拉高
 JNZ MAIN;P0.1为高,无键按下,返回
 CALL DELLY;延时消抖
 MOV A,P0
 ANL A,#01H
 JNZ MAIN;按键时间未符合要求,认为是抖动或误动作,返回
KeyDown:
 CALL DELLY
 INC R6
 MOV A,#200;用200作为按键时间参照
 CLR C;51没有不带借位减法,固先清借位位
 SUBB A,R6
 JC Timeout;有借位,R6大于200,认为按键时间超过5s,跳至超时
 MOV A,P0
 ANL A,#01H
 JZ KeyDown;按下后没有放键,返回,继续计时 
 
 ;按键有效,并且时间小于5s,添加需要执行的代码
 LJMP MAIN

Timeout:
 MOV A,P0
 ANL A,#01H
 JZ Timeout;时间到仍没有放键,循环检测,等待放键
 
 ;按键超时,添加需要执行的代码
 LJMP MAIN

DELLY:;延时函数
 PUSH ACC
 MOV ACC,#0F0H;根据需要,调整参数。
D1:
 MOV R7,#0FFH;根据需要,调整参数。
D2:
 DJNZ R7,D2
 DJNZ ACC,D1
 POP ACC
 RET

END

此帖出自单片机论坛
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

22
 
David_Lee朋友我这个程序是一个大程序里的小模块,,改的越简单越好,,,,如果用几条语句搞定就最好不过了

SUBB A, #254
JNC RG_LONG
JMP KEY_ID1

还要嵌到大程序中去的。。。有更简洁办法不???
此帖出自单片机论坛
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

23
 

原帖由 pyy1980 于 2010-7-4 12:12 发表 David_Lee朋友我这个程序是一个大程序里的小模块,,改的越简单越好,,,,如果用几条语句搞定就最好不过了 SUBB A, #254 JNC RG_LONG JMP KEY_ID1 还要嵌到大程序中去的。。。有更简洁办法不???

 

嵌个延时函数或许可以的

此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

24
 
只是时间要延长,那就在判断循环里加个短延时。
此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

25
 

朋友

朋友你看看我的整个程序吧,,就是修改其中的一小地方,,你搜索看下就知道了,,麻烦你嵌入进去修改好不。。。。。搜一下你就知道修什么地方了,,周一交差,,十万着急

测试的最后程序6[1].28.rar

27.29 KB, 下载次数: 2

此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

26
 
你搜下就知道修什么地方了,,我周一交差,,,麻烦了
此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

27
 

原帖由 pyy1980 于 2010-7-4 12:33 发表 朋友你看看我的整个程序吧,,就是修改其中的一小地方,,你搜索看下就知道了,,麻烦你嵌入进去修改好不。。。。。搜一下你就知道修什么地方了,,周一交差,,十万着急

 

那么大一个,怎么不用C语言来写呢

此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

28
 

原帖由 pyy1980 于 2010-7-4 12:35 发表 你搜下就知道修什么地方了,,我周一交差,,,麻烦了

 

哪一行啊?没找到。程序那么大,弄清楚结构都要一定的时间啊。

 

此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

29
 
你在写字板搜  RG_LONG   

        SUBB        A, #100
        JNC        PRG_LONG
        JMP        KEY_ID1

就是这个地方,,不过这里是100
此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

30
 
看到了不
此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

31
 
David_Lee  你QQ
此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

32
 
好多标号,好多跳转
此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

33
 
你在写字板搜 RG_LONG

SUBB A, #100
JNC PRG_LONG
JMP KEY_ID1

就是这个地方,,不过这里是100

就只要把这个地方搞定就可以了,,有把握和信心不???其他的标号和跳转不要管他
此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

34
 

原帖由 pyy1980 于 2010-7-4 13:06 发表 你在写字板搜 RG_LONG SUBB A, #100 JNC PRG_LONG JMP KEY_ID1 就是这个地方,,不过这里是100 就只要把这个地方搞定就可以了,,有把握和信心不???其他的标号和跳转不要管他

A怎么说都是单字节长度,减1000和减255对你来说,意义是一样的,问题不在那个立即数,而在于MOV A,PRG_TIM,PRG_TIM也是单字节的。

此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

35
 
SUBB A, #100
JNC PRG_LONG
JMP KEY_ID1

就是这个地方,,不过这里是100

就只要把这个地方搞定就可以了,,有把握和信心不???其他的标号和跳转不要管他


你就帮我修下落  100修到1000,,,,我在线等,,就这个地方,,不要看什么标号跳转
此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

36
 

原帖由 pyy1980 于 2010-7-4 13:20 发表 SUBB A, #100 JNC PRG_LONG JMP KEY_ID1 就是这个地方,,不过这里是100 就只要把这个地方搞定就可以了,,有把握和信心不???其他的标号和跳转不要管他 你就帮我修下落 100修到1000,,,,我在线 ...

 

PRG_TIM本来最大就255

SUBB A, #100
JNC PRG_LONG

SUBB A,#255和SUBB A,#1000,甚至SUBB A,#260效用都是一样的,都会有借位,都会有跳转。主要矛盾不是在立即数,是PRG_TIM决定的,要改你就得改前面的PRG_TIM,或者补充个按键时长判断,也可以修改PRG_TIM的度量参数来实现,你考虑一下你程序之间的结构联系,看看怎么改容易点,变动小一点。

此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

37
 
不应该这样吧,,我觉得把100改上去就可以了,,帮我改下吧
此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

38
 

原帖由 pyy1980 于 2010-7-4 14:01 发表 不应该这样吧,,我觉得把100改上去就可以了,,帮我改下吧

 

改上去,最大也只能到单字节的长度8位,即255。

此帖出自单片机论坛
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(初级)

39
 
那有好办法不吧
此帖出自单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

40
 

原帖由 pyy1980 于 2010-7-4 14:45 发表 那有好办法不吧

 

扩展PRG_TIM需要改动的应该会比较多,可以考虑加个循环判断按键电平,你的程序很长,要避开前面已经用到的寄存器,以免前后影响,造成程序跑非。

汇编都是MOV来MOV去,JMP来JMP去,写的程序,外人看来比较吃力的。

此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表