急求:使用四个独立按键控制四个LED灯亮灭的单片机汇编程序

急求:使用四个独立按键控制四个LED灯亮灭的单片机汇编程序,第1张

单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4

程序:

ORG 00H

START: MOV A,P1

ANL A,#0F0H

RR A

RR A

RR A

RR A

ORl A,#0F0H

MOV P1,A

SJMP START

可以检测单个按键,也可以同时检测多个按键

过程:开始——读P1口数据到A——A中的数据右移4次——A中的内容和F0H相或——A中的数据送到P1口——回到开始

定义4个按键,

sbit k1=P1^0

sbit k2=P1^1

sbit k3=P1^2

sbit k4=P1^3

再定义一个变量计数,分别计1,2,3,4,对应4个按键。

在主循环程序中判断4个按键是否按下,每一个开关按下,变量赋值对应的数。

再根据变量值,执行对应的第1,2,3,4种花样就行了。

四个按键,定义如下:

KEY1 BIT P3.0

KEY2 BIT P3.1

KEY3 BIT P3.2

KEY4 BIT P3.3

按键处理程序:

-----------------------------------

READ_KEY:

JBKEY1, K2

CALL DELAY

JBKEY1, K2

JNB KEY1, $

PUSH ACC

INC 75H

MOV A, 75H

CJNE A, #10, ZINT01

MOV 75H, #0

ZINT01:

POP ACC

JMP K_EXIT

---------------

K2: JBKEY2, K3

CALL DELAY

JBKEY2, K3

JNB KEY2, $

PUSH ACC

INC 76H

MOV A, 76H

CJNE A, #10, ZINT01

MOV 76H, #0

ZINT01:

POP ACC

JMP K_EXIT

---------------

K3: JBKEY3, K4

CALL DELAY

JBKEY3, K4

JNB KEY3, $

PUSH ACC

DEC 75H

MOV A, 75H

CJNE A, #255, ZINT03

MOV 75H, #9

ZINT03:

POP ACC

JMP K_EXIT

---------------

K4: JBKEY4, K_EXIT

CALL DELAY

JBKEY4, K_EXIT

JNB KEY4, $

PUSH ACC

DEC 76H

MOV A, 76H

CJNE A, #255, ZINT04

MOV 76H, #9

ZINT04:

POP ACC

K_EXIT:

RET

---------------

DELAY:

DJNZ R7, $

DJNZ R7, $

RET

-----------------------------------


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11944538.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存