智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1756|回复: 0
打印 上一主题 下一主题

一个按键的汇编源程序,51

[复制链接]

2

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
威望
250
贡献
50
兑换币
16
注册时间
2010-4-6
在线时间
4 小时
跳转到指定楼层
1#
发表于 2010-4-6 13:32:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
呵呵,自己以前编的主要是注意要有防抖动的延迟,以及自循环等待按键的弹起

         ID EQU 30H
  
K1 BIT P1.4
K2  BIT P1.5
K3 BIT P1.6
K4 BIT P1.7
L1 BIT P1.0
L2 BIT P1.1
ORG 0000H
CLR P1.0           
MOV ID,#01H
LJMP START
ORG 0100H

START:   
CPL L1            
LCALL DELAY  
CPL L1
LCALL DELAY
SJMP START

KK:   JB K1,REL     ;K1没闭合转
LCALL DELAY10MS      ;K1闭合,延时消抖动
JB K1,REL   ;           :再判断
MOV ID,#01H           ;k1闭合了执行的程序
REL: JNB K1,$  ;      ;等待开关弹起
  JB K2,REL2
  LCALL DELAY10MS
  JB K2,REL2
  MOV ID,#02H
REL2:JNB K2,$
  JB K3,REL3
  LCALL DELAY10MS
  JB K3,REL3
  MOV ID,#03H
  REL3:JNB K3,$
RET

DELAY10MS:
MOV R6,ID ;延时10MS子程序
LOOP1: MOV R7,#248
DJNZ R7,$
DJNZ R6,LOOP1
RET
DELAY:
MOV R5,#250      ;延时20MS子程序
LOOP2: LCALL DELAY10MS
LCALL KK
DJNZ R5,LOOP2
RET
END
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-7 11:59 , Processed in 0.058906 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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