LIST P=16F616
#INCLUDE<P16F616.INC>
__CONFIG _BOD_ON&_IOSCFS_4MHZ&_CP_OFF&_MCLRE_ON&_PWRTE_ON&_INTOSCIO&_WDT_OFF
CBLOCK 20H
COUNT4
COUNT3
COUNT2
COUNT1
COUNT0
ENDC
ORG 00H
NOP
NOP
NOP
GOTO MAIN
MAIN CLRF COUNT4
CLRF COUNT3
CLRF COUNT2
CLRF COUNT1
CLRF COUNT0
BSF STATUS,RP0
MOVLW 000H
MOVWF INTCON
MOVLW 00H
MOVWF PIE1
BCF STATUS,RP0 ;A口初始化
CLRF PORTA
BSF STATUS,RP0
CLRF PR2
MOVLW 04H
MOVWF ANSEL ;A口<2>为模拟输入 <5:3,1:0>为数字I/O
MOVLW 2CH
MOVWF TRISA ;A口<5,3,2>为输入 <4,1:0>为输出
BSF OPTION_REG,7
BCF STATUS,RP0
BCF CM1CON0,7
BCF CM2CON0,7
CLRF PORTC ;C口初始化
BSF STATUS,RP0
MOVLW 0FH ;C口<3:0>为模拟输入端口 <5:4>为数字I/O
MOVWF ANSEL
MOVLW 0FH ;C口<3:0>为输入 <5:4>为输出
MOVWF TRISC
BCF STATUS,RP0
LOOP CALL DELAY100MS
BTFSC PORTA,2 ;判断电源电压
GOTO WDJC ;电压正常,去判断温度保护
BSF PORTA,0 ;电压低
CALL DELAY0.4S
BCF PORTA,0 ;ALARM灯闪
CALL DELAY0.4S
BTFSC COUNT3,0 ;判断马达是停止还是运转
GOTO STOPMOTOR ;马达运转,去停止运转
GOTO LOOP ;马达停止,返回循环
|