⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8guang.asm

📁 PIC16C54的移位LED 实现及按键检测
💻 ASM
字号:
NUM  EQU 10
NUM1 EQU 11
YW   EQU 8
;----------------------------------------
	ORG 1FFH
	ORG 00H
	GOTO MAIN
;----------初始化------------------------
INIT
	CLRF 1
	MOVLW 07H
	OPTION
	MOVLW 01H
	TRIS 5  
	MOVLW 00H
	TRIS 6
	MOVLW 0FFH
	MOVWF 6
    CALL DELAY	
	NOP
	CALL DELAY
	MOVWF 6
	RETLW 0
;-----------延时1-----------------------
DELAY
	CLRF 1
	MOVLW 07H
	OPTION 
    CLRW 9
	CLRW 10 
	CLRW
	MOVLW 0FFH
	MOVWF NUM
 LOOP10
	MOVLW 0FFH
	MOVWF NUM1
  LOOP11
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ NUM1
	GOTO LOOP11
	MOVLW 00H
	SUBWF 1,0
	SKPC
	NOP
	CLRC
	MOVFW 5
	NOP
    ANDLW 01H
	MOVWF 14
    DECFSZ NUM
	GOTO LOOP10
RETLW 0
;-----------延时2--------------------
DELAYSS
	CLRF 1
	MOVLW 07H
	OPTION
    CLRW 10
	CLRW 9 
	CLRW
	MOVLW 0FFH
	MOVWF NUM
 LOOP8
	MOVLW 0A0H
	MOVWF NUM1
  LOOP9
	DECFSZ NUM1
	GOTO LOOP9
	MOVLW 00H
	SUBWF 1,0
	SKPC
	NOP
	CLRC
	MOVFW 5
	NOP
    ANDLW 01H
	MOVWF 14
    DECFSZ NUM
	GOTO LOOP8
RETLW 0
;-------------顺序依次点亮-----------
LED1
	CLRW
	MOVWF 6
	CALL DELAY
	CLRF YW
	CLRF 7
	CLRW
	MOVLW 01H
	MOVWF YW
	CLRC
	CLRW
	MOVLW 8
	MOVWF 7
  LOOP1
	CALL DELAYSS
	MOVFW YW
	MOVWF 6
	CALL DELAYSS
	RLF 8,1
	NOP
	NOP
	INCF 8
	NOP 
	NOP 
    NOP                  ;左移一位加1
	DECFSZ 7
	GOTO LOOP1
	RETLW 0 
;---------------顺序依次熄灭----------
LED2
	CLRW
	MOVLW 0FFH
	MOVWF 6
	CALL DELAY
	CLRF YW
	CLRW
	CLRF 7
	MOVLW 0FFH
	MOVWF YW
	MOVLW 08H
	MOVWF 7
  LOOP2
	DECF YW
	NOP
	NOP
	MOVFW YW
	MOVWF 6
	RLF YW ,1
	NOP
    CLRW                ;-1左移,顺序熄灭   
	CALL DELAYSS
	DECFSZ 7
	GOTO LOOP2
	RETLW 0
;---------------反序点亮--------------
LED3
	CLRW
	MOVWF 6
	CALL DELAYSS
	CLRF YW
	CLRF 7
	CLRW
	MOVLW 08H	
	MOVWF 7
 LOOP16
	CLRW
    INCF YW
	NOP
	NOP
	RRF YW,1
	NOP
	NOP
	MOVFW YW
	MOVWF 6
	NOP
    CALL DELAYSS           ;加1再YOU移一位
	DECFSZ 7,1
	GOTO LOOP16
	RETLW 0 
;------------顺序一次点亮2个---------
LED4
	CLRW
	MOVWF 6
	CALL DELAY
	CLRF YW
	CLRF 7
	CLRW
	MOVLW 03H
	MOVWF YW
	CLRC
	CLRW
    MOVLW 04H
	MOVWF 7
  LOOP31
	MOVFW YW
	MOVWF 6
	CALL DELAY
	RLF YW,1
	NOP
	RLF YW,1
	NOP
    INCF YW
	NOP
	INCF YW
	NOP
	INCF YW 
	NOP      ;左移2位+3
	DECFSZ 7
	GOTO LOOP31
	RETLW 0 
;---------顺序一次熄灭2个-----------
LED5
	CLRW
	MOVLW 0FFH
	MOVWF 6
	CLRF YW
	CLRW
	CLRF 7
	MOVLW 0FFH
	MOVWF YW
	MOVLW 04H
	MOVWF 7
	CLRC
  LOOP41
	CLRW
	MOVLW 0C0H
	BCF YW,6
	NOP
	BCF YW,7         ;-’0CH‘再左移2位
	RLF YW,1
	NOP
	RLF YW,1
	NOP
	MOVFW YW
	MOVWF 6
	CALL DELAY
	DECFSZ 7,1
	GOTO LOOP41
	RETLW 0
;--------------闪烁2次-----------------
SS
	CLRW
	CLRF 7
	MOVLW 2
	MOVWF 7
  LOOP7
	MOVLW 0FFH
	MOVWF 6
	CALL DELAYSS
	CLRW
	MOVWF 6
	DECFSZ 7
	GOTO LOOP7
	RETLW 0
;-------------差1闪烁 ---------------
SS1		
	MOVLW 01H
	MOVWF 9
	MOVLW 08H
	MOVWF 12
	CLRC
  LOOPSS1
	MOVFW 9
	MOVWF 6
	RLF 9,1
	NOP
	CALL DELAYSS
	DECFSZ 12
	GOTO LOOPSS1
	MOVLW 0FFH
	MOVWF 6
	CALL DELAYSS
	RETLW 0
;-------------4闪烁 -----------------
SS4
	MOVLW 0FH
	MOVWF 6
	CALL DELAYSS
	MOVLW 0F0H
	MOVWF 6
	CALL DELAYSS
	MOVLW 0FFH
	MOVWF 6
	CALL DELAYSS
	MOVLW 0FH
	MOVWF 6
	CALL DELAYSS
	MOVLW 0F0H
	MOVWF 6
	CALL DELAYSS
	MOVLW 0FFH
	MOVWF 6
	CALL DELAYSS
RETLW 0
;-------------2闪烁 -------------------------
SS2 	
MOVLW 0FFH
MOVWF 6
CALL DELAYSS
MOVLW 0FCH
MOVWF 6
CALL DELAYSS
MOVLW 0F3H
MOVWF 6
CALL DELAYSS
MOVLW 0DFH
MOVWF 6
CALL DELAYSS
MOVLW 3FH
MOVWF 6
CALL DELAYSS
MOVLW 0FFH
MOVWF 6
CALL DELAYSS
RETLW 0
;-------------全亮 -------------------------
QL
	MOVLW 0FFH
	MOVWF 6
	CALL DELAY
	RETLW 0
;-------------全灭 -------------------------
QM
	MOVLW 00H
	MOVWF 6
	CALL DELAYSS
	RETLW 0
;-------------主程序 --------------------------    
MAIN 
	CALL INIT
LOOPMIN2
	MOVLW 00H
	MOVWF 6
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN
	GOTO LOOP
LOOPMINN	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN1
	GOTO LOOP
	
LOOPMINN1	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN2
	GOTO LOOP
	
LOOPMINN2	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN3
	GOTO LOOP
	
LOOPMINN3	CALL DELAY
			MOVF 14
	SKPZ
	GOTO LOOPMINN4
	GOTO LOOP
	
LOOPMINN4	CALL DELAY
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN5
	GOTO LOOP
LOOPMINN5
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN6
	GOTO LOOP
LOOPMINN6
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN7
	GOTO LOOP
LOOPMINN7
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN8
	GOTO LOOP
LOOPMINN8
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN9
	GOTO LOOP
LOOPMINN9
	CALL DELAY
	MOVF 14
	SKPZ
	GOTO LOOPMINN10
	GOTO LOOP
LOOPMINN10	MOVLW 0FFH	
	MOVWF 6
	CALL SS2
	MOVF 14
	SKPZ
	GOTO LOOPMINN11
	GOTO LOOP
LOOPMINN11	GOTO LOOPMIN2

LOOP
	CALL LED1
	MOVF 14
	SKPZ
	GOTO LOOPSS
	GOTO LOOPD
	
LOOPSS	CALL SS
		MOVF 14
	SKPZ
	GOTO LOOPS1
	GOTO LOOPD
LOOPS1	CALL SS1
	MOVF 14
	SKPZ
	GOTO LOOPSS2
	GOTO LOOPD
LOOPSS2	CALL SS2
	MOVF 14
	SKPZ
	GOTO LOOPSS4
	GOTO LOOPD
LOOPSS4	CALL SS4
	MOVF 14
	SKPZ
	GOTO LOOPS
	GOTO LOOPD
LOOPS	CALL SS
   GOTO LOOP

LOOPD
	MOVLW 0FFH
	MOVWF 6
	CALL DELAY
	MOVF 14,1
	SKPZ
	GOTO LOOPD
	GOTO LOOPF

LOOPF
	CALL LED3
	MOVF 14
	SKPZ
	GOTO LOOPSS0
	GOTO LOOPMIN2
	
LOOPSS0	CALL SS4
		MOVF 14
	SKPZ
	GOTO LOOPS2
	GOTO LOOPMIN2
LOOPS2	CALL SS1
	MOVF 14
	SKPZ
	GOTO LOOPSS22
	GOTO LOOPMIN2
LOOPSS22	CALL SS2
	MOVF 14
	SKPZ
	GOTO LOOPSS44
	GOTO LOOPMIN2
LOOPSS44	CALL LED4
	MOVF 14
	SKPZ
	GOTO LOOPSR
	GOTO LOOPMIN2
LOOPSR	CALL SS
		MOVF 14
	SKPZ
	GOTO LOOPSR1
	GOTO LOOPMIN2
 LOOPSR1  GOTO LOOPF



END

⌨️ 快捷键说明

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