单片机按键控制LED汇编程序

P1.0-1.7接8个按键,P2.0-2.5接6个LED。其中P1.0-1.5按键分别控制P2.0-2.5LED亮30S,P1.6控制P2.0,2.1两个LED同时亮30... P1.0-1.7接8个按键,P2.0-2.5接6个LED。其中P1.0-1.5按键分别控制P2.0-2.5LED亮30S,P1.6控制P2.0,2.1两个LED同时亮30S,P1.7控制P2.2,2.3同时亮30S.当按下按键时P2.0-P2.5电平由低变高。按键按下后对应的LED亮30S后熄灭. 展开
 我来答
as73329断誓
2014-09-20 · 超过55用户采纳过TA的回答
知道答主
回答量:120
采纳率:60%
帮助的人:51.3万
展开全部
一键多功能按键识别技术 1.实验任务 开关K1接在P3.2管脚上,在AT89S51单片机的P0.0端口接有1个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在亮,当一次按下开关K1的时候,灯灭,再按一次,灯亮,如此轮流下去。 2.系统板上硬件连线 把“单片机系统”区域中的P3.2端口连接到“独立式键盘”区域中的K1端口上;把P0.0连到L1上 3.程序设计方法 (1. 设计思想由来 在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID的值是不相同的,所以单片机就很容易识别不同功能的身份了。 (2. 设计方法 从上面的要求我们可以看出,L1到亮灭受开关K1来控制,我们给L1亮灭定义出不同的ID号,当L1在亮时,ID=0;当L1在灭时,ID=1;分别给出不同的ID号我们就能够完成上面的任务了 4.汇编程序: ID EQU 30H K1 BIT P3.2 L1 BIT P0.0 ORG 0000H CLR P1.7 MOV ID,#00H START: JB K1,REL ;K1没闭合转 LCALL DELAY10MS ;K1闭合,延时消抖动 JB K1,REL :再判断 INC ID MOV A,ID CJNE A,#02,REL MOV ID,#00H REL: JNB K1,$ ;等待开关弹起 MOV A,ID CJNE A,#00H,IS0 ;判断相应ID CLR L1 :ID=0,灯亮 LCALL DELAY光 ;延时 SJMP START IS0: CJNE A,#01H,START; SETB L1 LCALL DELAY SJMP START DELAY10MS: MOV R6,#20 ;延时10MS子程序 LOOP1: MOV R7,#248 DJNZ R7,$ DJNZ R6,LOOP1 RET DELAY: MOV R5,#20 ;延时20MS子程序 LOOP2: LCALL DELAY10MS DJNZ R5,LOOP2 RET END
请采纳答案,支持我一下。
zhxiufan
推荐于2018-04-05 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38384
国家科技进步奖

向TA提问 私信TA
展开全部
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
    MOV P2,#00H
LOOP:
    JNB P1.0,LOOP1
    SETB P2.0
    LCALL DELAY
    CLR P2.0
    SJMP LOOP
LOOP1:
    JNB P1.1,LOOP2
    SETB P2.1
    LCALL DELAY
    CLR P2.1
    SJMP LOOP
LOOP2:
    JNB P1.2,LOOP3
    SETB P2.2
    LCALL DELAY
    CLR P2.2
    SJMP LOOP
LOOP3:
    JNB P1.3,LOOP4
    SETB P2.3
    LCALL DELAY
    CLR P2.3
    SJMP LOOP
LOOP4:
    JNB P1.4,LOOP5
    SETB P2.4
    LCALL DELAY
    CLR P2.4
    SJMP LOOP
LOOP5:
    JNB P1.5,LOOP6
    SETB P2.5
    LCALL DELAY
    CLR P2.5
    SJMP LOOP
LOOP6:
    JNB P1.6,LOOP7
    SETB P2.0
    SETB P2.1
    LCALL DELAY
    CLR P2.0
    CLR P2.1
    SJMP LOOP
LOOP7:
    JNB P1.7,LOOP
    SETB P2.2
    SETB P2.3
    LCALL DELAY
    CLR P2.2
    CLR P2.3
    LJMP LOOP
DELAY:
    MOV R2,#240
DLY1:
    MOV R3,#250
DLY2:
    MOV R4,$248
    DJNZ R4,$
    DJNZ R3,DLY2
    DJNZ R2,DLY1
    RET
    END
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2014-09-20 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
30s 之内,又有按键按下,LED 应该怎么变化?

参考一下:

http://hi.baidu.com/do_sermon/item/21321b80887395d25e0ec1f8
追问
你好.非常感谢你两次的回复.我想了解一下.如果你的这个程序.我想K1按键控制LED1亮10S并且亮的过程按下K1LED1熄灭.K2按键控制LED2亮10S并且亮的过程按下K2LED2熄灭.程序我应该怎么写呢.谢谢
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式