The interrupts will not wait for PBP statements to finish.
Ok fine, ... for many years I've resisted making a count down elapsed timer for humanitarian reasons.
But if you guys are going to do it anyhow, I might as well make a new version of the Elapsed Timer.
I can only hope that if somebody uses it for nefarious purposes, they end up blowing themselves up.
Here's the test circuit.

Here's the test program ...
Code:
' Define LCD connections
DEFINE LCD_DREG PORTC ' Set LCD Data port
DEFINE LCD_DBIT 4 ' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_RSREG PORTC ' Set LCD Register Select port
DEFINE LCD_RSBIT 2 ' Set LCD Register Select bit
DEFINE LCD_EREG PORTC ' Set LCD Enable port
DEFINE LCD_EBIT 3 ' Set LCD Enable bit
DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 2 ' Set number of lines on LCD
DEFINE LCD_COMMANDUS 2000 'Command delay time in us
DEFINE LCD_DATAUS 50 'Data delay time in us
DEFINE OSC 4
INCLUDE "Elapsed_DN.bas" ; Elapsed Timer Routines
ZERO_LED VAR PORTB.3
ANSEL = 0 ' All Digital
ANSELH = 0
LOW ZERO_LED ' start with LED OFF
OPTION_REG.7 = 0 ' enable PORTB pull-ups
PAUSE 250
LCDOUT $FE,1 ' Initialize LCD
PAUSE 250
Days = 1 ' set initial time
Hours = 1
Minutes = 3
Seconds = 10
GOSUB StartTimer ' Start the Elapsed Timer
Main:
CountDown = !PORTB.0
IF SecondsChanged = 1 THEN
SecondsChanged = 0
LCDOUT $FE,2, DEC Days,"d-",DEC2 Hours,":",DEC2 Minutes,":",DEC2 Seconds
ENDIF
IF ZERO_LED != ZERO THEN ZERO_LED = ZERO
GOTO Main
If it is not pressed, it counts up.
The LED comes on when it reaches 0.
If you are using the countdown for a movie set, it has to stop at 1 second.

Put this in the main loop.
Code:
IF (CountDown=1) AND (Days=0) AND (Hours=0) AND (Minutes=0) and (Seconds=1) _
THEN GOSUB StopTimer


Menu

Re: serial LCD 1602 Backpack using PIC16F690 for Hitach HD44780
one last update:
jackberg1 Yesterday, 17:11added an PGM Sw on RA3
to edit the baud rate:
turn off the LCD display, press & hold the PGM sw, turn on the LCD
line 1 will show "Press to Select" , line 2 : "Baud Rate:"...