自己写的一段简单的流水灯程序,软件调试可以看到PORTC端口流动变化,但是下载到板子上8个灯都不亮,求解,谢谢
TITLE"FLOW LED" ; 流水灯
;****************************************************************
;左右流动流水灯控制,先左移,再右移,循环往复
;****************************************************************
; PIC16F690 Configuration Bit Settings
; ASM source line config statements
#include "p16F690.inc" ;头文件
; CONFIG
; __config 0xFFE1
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_SBODEN & _IESO_ON & _FCMEN_ON
;配置字
;********************片内RAM常用资源、变量定义及相应说明****************************
FLAG EQU 20H ;定义一个方向控制标志位
D1 EQU 21H
D2 EQU 22H ;定义延时程序内外循环数据存储区
ORG 0000H
GOTO START
START BCF STATUS,RP0 ; 主程序
BCF STATUS,RP1 ;RP0:RP1=00准备寻址Bank0
BCF STATUS,IRP ;准备间接寻址
MOVLW TRISC ;获取C端口地址
MOVWF FSR ;现在FSR指向TRISC
MOVLW 0x00
MOVWF INDF
NOP ;延时片刻,等待信号稳定建立
MOVLW 0x01
MOVWF PORTC
BCF STATUS,C ;清除进位标志位,准备移位
BCF FLAG,0 ;FLAG的零位为左右移位标志位
LOOP BTFSS STATUS,C ;测试标志位,为一则跳,为零则进行左移
GOTO LOOP1 ;左移
COMF FLAG,F ;取反标志位,右移
LOOP1 BTFSC FLAG,0
GOTO LOOP2
RLF PORTC,W
MOVWF PORTC
GOTO LOOP3
LOOP2 RRF PORTC,W
MOVWF PORTC
LOOP3 CALL DELAY
GOTO LOOP
DELAY MOVLW 0x8f
MOVWF D1
LP0 MOVLW 0xef
MOVWF D2
LP1 DECFSZ D2,F
GOTO LP1
LP2 DECFSZ D1,F
GOTO LP0
RETURN
END
|