;;; ==========================
;;; K1~K4按钮控制LED灯移动 ;;;;
;;; ==========================
ORG 00H
START:
MOV R1,#0FEH
MOV R2,#0FEH
CALL FRESH_LED
;;; ===========================
;;; 主循环
;;; ===========================
MAIN_LOOP:
CALL CHK_K1
CALL CHK_K2
CALL CHK_K3
CALL CHK_K4
JMP MAIN_LOOP
;;; ===========================
;;; 刷新LED灯状态
;;; ===========================
FRESH_LED:
MOV P0,R1
MOV P2,R2
RET
;;; ===========================
;;; 检测K1
;;; ===========================
CHK_K1:
JB P1.4,RETURN
CALL DELAY
JNB P1.4,$
CALL LEFT_UP
CALL FRESH_LED
RET
;;; ===========================
;;; 检测K2
;;; ===========================
CHK_K2:
JB P1.5,RETURN
CALL DELAY
JNB P1.5,$
CALL LEFT_DOWN
CALL FRESH_LED
RET
;;; ===========================
;;; 检测K3
;;; ===========================
CHK_K3:
JB P1.6,RETURN
CALL DELAY
JNB P1.6,$
CALL RIGHT_UP
CALL FRESH_LED
RET
;;; ===========================
基于Proteus+8051汇编应用实例系列之二--通过按钮来控制LED流水灯移动
最新推荐文章于 2025-08-27 10:27:22 发布
本文介绍如何利用Proteus和8051汇编语言,通过四个按钮控制两排LED灯的上移和下移。代码中采用模块化编程思想,运用RRC和RLC指令实现LED灯的移动效果,并详细解释了程序结构和技术要点,包括按钮检测、灯状态刷新和逻辑选择。附带源代码供下载参考。

最低0.47元/天 解锁文章
3772

被折叠的 条评论
为什么被折叠?



