;--------------------------------------------------------
LIST P=16F690
INCLUDE "P16F690.INC"
;--------------------------------------------------------
ORG 0000H
GOTO MAIN
;--------------------------------------------------------
MAIN
;初始化端口设置
CLRWDT ;开机初始化处理
BANKSEL PIE1 ;BANK 1
MOVLW B'10001111' ;禁止AB口弱上拉;WDT(1:128)
MOVWF OPTION_REG
;IO端口方向设置
MOVLW B'00000000'
MOVWF TRISA
MOVWF TRISB
MOVWF TRISC
;IO端口初值
BANKSEL PIR1 ;BANK 0
MOVLW B'00000000'
MOVWF PORTA
MOVWF PORTB
MOVWF PORTC
AA
BSF PORTC,4 ;ON RED 1
CALL DELAY3
BCF PORTC,4 ;OFF RED 1
CALL DELAY3
BSF PORTC,4 ;ON RED 1
CALL DELAY3
BCF PORTC,4 ;OFF RED 1
CALL DELAY3
BANKSEL INTCON
MOVLW B'01001000' ;允许AB唤醒
MOVWF INTCON
BANKSEL IOCA ;BANK 1
MOVLW B'00110100' ;变化中断控制位
MOVWF IOCA
BANKSEL IOCB ;BANK 2
CLRF IOCB
BANKSEL PIR1 ;BANK 0
BB
CLRWDT
BSF PORTC,6 ;ON GREEN 1
SLEEP ;2S
NOP
BTFSS STATUS,4 ;判断是WDT或PB唤醒?(0WDT)
GOTO CC ;WDT
BCF INTCON,0 ;清除A口中断溢出位
BCF PORTC,6 ;OFF GREEN 1
BSF PORTC,5 ;ON RED 1
CALL DELAY3
BCF PORTC,5 ;OFF RED 1
CALL DELAY3
GOTO BB
CC
BCF PORTC,6 ;OFF GREEN 1
CALL DELAY3
GOTO BB
END
;*************************************************
;功能介绍
;开机后闪红灯,然后由SLEEP控制闪红灯
;有按键,红灯灭,闪绿灯后返回SLEEP
;*************************************************
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。