keyled.asm

来自「学林电子实验箱源码 完整板」· 汇编 代码 · 共 91 行

ASM
91
字号
;键盘控制的花样彩灯。按p32,p33,p34,p35,p1口8个灯分别作左移动右移动,跑马,停止
;***************************************************************************
;*  sxj1974@163.com		     (51c51 test web)     www.8951.com     *
;*  Create by :石学军      www.51c51.com 更多例程请登陆网站        	   *
;***************************************************************************
;
;亮灯控制程序;
;************;
;
	ORG     0000H
	LJMP    START
	org	0030h
;************;
;  主 程 序  ;
;************;
START:
	MOV       P3,#0FFH
      	JNB       P3.4,FUN0	;检测按键
      	JNB       P3.5,FUN1
      	JNB       P3.2,FUN2
      	JNB       P3.3,FUN3   ;关闭按纽
      	AJMP	START
FUN0:	LCALL      DL10MS       ;消岸抖动
     	JB         P3.4,START
WAITL0:	JNB        P3.4,WAITL0   ;等待键释放
FUN01:	LCALL      FUN00
	AJMP	START
FUN1:	LCALL      DL10MS       ;消岸抖动
	JB         P3.5,START
WAITL1:	JNB        P3.5,WAITL1   ;等待键释放
FUN10:	LCALL      FUN11
	AJMP	START
FUN2:	LCALL      DL10MS       ;消岸抖动
     	JB         P3.2,START
WAITL2:	JNB        P3.2,WAITL2   ;等待键释放
FUN20:	LCALL      FUN22
	AJMP	START

FUN3:	LCALL      DL10MS       ;消岸抖动
     	JB         P3.3,START
WAITL3:	JNB        P3.3,WAITL3   ;等待键释放
     	MOV        P1,#0FFH     ;关显示
     	LJMP      START

FUN00:	MOV       A,#0FEH	;左移子程序
FUN000:	MOV       P1,A
      	LCALL     DL05S
      	JNB       ACC.7,OUT	;检测是否结束
      	RL        A
      	AJMP      FUN000
OUT:  	RET

FUN11:	MOV       A,#07FH	;右移子程序
FUN111:	MOV       P1,A
      	LCALL     DL05S
      	JNB       ACC.0,OUT	;检测是否结束
      	RR        A
      	AJMP      FUN111

FUN22:MOV       A,#0AAH		;间隔显示子程序
      MOV       P1,A
      LCALL     DL30S
      CPL       A
      MOV       P1,A
      LCALL     DL30S
      RET

;************;
;  延时程序  ;
;************;
DL512:MOV      R2,#0FFH		;延时500US
LOOP1: DJNZ     R2,LOOP1
       RET

DL10MS:MOV      R3,#14H		;延时10MS
LOOP2: LCALL    DL512
       DJNZ     R3,LOOP2
       RET

DL05S:MOV      R4,#0AH		;延时100MS
LOOP3: LCALL    DL10MS
       DJNZ     R4,LOOP3
       RET

DL30S:MOV       R5,#03H		;延时300MS.
LOOP4:LCALL     DL05S
      DJNZ      R5,LOOP4
      RET     

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?