单片机按键控制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后熄灭.
展开
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
请采纳答案,支持我一下。
请采纳答案,支持我一下。
展开全部
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
追问
你好.非常感谢你两次的回复.我想了解一下.如果你的这个程序.我想K1按键控制LED1亮10S并且亮的过程按下K1LED1熄灭.K2按键控制LED2亮10S并且亮的过程按下K2LED2熄灭.程序我应该怎么写呢.谢谢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询