Here is mine.
No PAUSE used !
Code:
@ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT, WDT_OFF, PWRT_OFF, MCLR_OFF,PROTECT_ON,CPD_ON ,BOD_OFF,LVP_OFF
TRISA=0
TRISB=0
CMCON=7 ' PortA=digital I/O
PAUSE 1
VRCON=0
PAUSE 1
PORTA=0
PORTB=0
T1CON=%00110001 ' 0.524ms
TMR1IF VAR PIR1.0 ' Overflow bit of Timer1.
Output1 VAR PORTA.1 ' Blink 6secs.
Output2 VAR PORTA.0 ' Blink 0.5secs.
PreLoad VAR WORD
TimeCount VAR BYTE
TimetoBlink VAR BYTE
PreLoad=3036 ' to get 500ms.
TMR1L=PreLoad.LowByte
TMR1H=PreLoad.HighByte
TimeCount=0
TimetoBlink=12 '12=6secs.
PAUSE 50 ' OSC to Settle.
Start:
IF TMR1IF THEN Blink
GOTO Start
Blink: 'Each int is 0.500 sec.
TMR1L=PreLoad.LowByte ' Load the timer with preload value.
TMR1H=PreLoad.HighByte
TimeCount=TimeCount + 1 ' Count interrupts.
Output2=Output2 ^ 1 ' Toggle fast blinking output.
IF TimeCount=TimetoBlink THEN '6Secs ON, 6secs OFF.
TimeCount=0
Output1=Output1 ^ 1
ENDIF
TMR1IF=0 ' Clear TMR1 int. flag.
GOTO Start
END
Bookmarks