Espero que te pueda servir de base esto, es una programacion que hice para un reloj usando un PIC16F84A me resulto mas facil con ese microcontralador y disponia de pulsadores para ajustar el tiempo, otra cosa es en lenguaje PicBasic pero creo yo que tiene algunas similitudes con Mikrobasic verdad, utiliza un LCD 16X2 el programa que hice, aqui te lo paso, ahh ten en cuenta la pausa en la subrutina de tiempo que la coloque a 1360 ms pero fue porque yo use un oscilador de 6 Mhz en esa parte pues te tocaria a ti ajustar bien los segundos haciendo prueba.
;*****************************************************************************
; Reloj con el PIC16F84A ;
; y LCD 16X2 ;
;*****************************************************************************
;********************** Definiendo Oscilador y Bits del LCD *******************;
DEFINE OSC 4 ;Usar oscilador a 4Mhz
DEFINE LCD_DREG PORTB ;Usar el puerto B del Pic como envio de bits
DEFINE LCD_DBIT 4 ;Bits desde el puerto B4 hasta B7
DEFINE LCD_RSREG PORTB ;Pata RS del LCD
DEFINE LCD_RSBIT 3 ;RS conectado al Pin B3 del Pic
DEFINE LCD_EREG PORTB ;Pata E del LCD
DEFINE LCD_EBIT 2 ;E conectado al Pin B2 del Pic
;********************* Dar valores a las variables a utilizar *****************;
HORAS VAR BYTE ;HORAS con peso de byte 255
HORAS=0 ;HORAS la igualamos a 0 para su inicio
MINUTOS VAR BYTE ;MINUTOS con peso de byte 255
MINUTOS=0 ;MINUTOS la igualamos a 0 para su inicio
SEGUNDOS VAR BYTE ;SEGUNDOS con peso de byte 255
SEGUNDOS=0 ;SEGUNDOS la igualamos a 0 para su inicio
;*****************************************************************************
;****************************** Botones de Control ****************************;
SubirHoras var PORTA.1 ;Puerto A1 para incrementar horas
BajarHoras var PORTA.2 ;Puerto A2 para disminuir
SubirMinutos var PORTA.3 ;Puerto A3 para incrementar minutos
BajarMinutos VAR PORTA.4 ;Puerto A4 para disminuir
;*****************************************************************************
PAUSE 2000 ;Pausar a 2 segundos para iniciar el programa
LCDOUT $FE,1 ;Limpiar el LCD antes de empezar
INICIO:
LCDOUT $FE,1,"-- Reloj PIC16F84 --" ;Mostrar texto en la primera line del LCD
LCDOUT $FE,$C0,DEC2 HORAS,":",DEC2 MINUTOS,":",DEC2 SEGUNDOS ;Situar lugar para horas,minutos,segundos en el LCD
IF SubirHoras=1 then ;Condicional IF si se cumple la funcion entonces
HORAS=HORAS+1 ;Sumar un 1 a HORAS
IF HORAS>23 THEN HORAS=0 ;Si es mayor a 23 pasa a 0
ELSE ;ELSE sino se cumple la funcion
GOSUB TIEMPO ;Ir a Subrutina TIEMPO
ENDIF ;Finalizar si "un condicional"
IF BajarHoras=1 then ;Condicional IF si se cumple la funcion entonces
HORAS=HORAS-1 ;Restarle un 1 a HORAS
IF HORAS<0 THEN HORAS=23 ;Si es menor a 0 pasa a 23
ELSE ;ELSE sino se cumple la funcion
GOSUB TIEMPO ;Ir a Subrutina TIEMPO
ENDIF ;Finalizar si "un condicional"
IF SubirMinutos=1 then ;Condicional IF si se cumple la funcion entonces
minutos=MINUTOS+1 ;Sumar un 1 a MINUTOS
IF MINUTOS>59 THEN MINUTOS=0 ;Si es mayor a 59 pasa a 0
ELSE ;ELSE sino se cumple la funcion
GOSUB TIEMPO ;Ir a Subrutina TIEMPO
ENDIF ;Finalizar si "un condicional"
IF bAJARmINUTOS=1 THEN ;Condicional IF si se cumple la funcion entonces
MINUTOS=MINUTOS-1 ;Restarle un 1 a MINUTOS
IF MINUTOS<0 THEN MINUTOS=59 ;Si es menor a 0 pasa a 59
ELSE ;ELSE sino se cumple la funcion
GOSUB TIEMPO ;Ir a Subrutina TIEMPO
ENDIF ;Finalizar si "un condicional"
goto inicio ;Volver al INICIO
TIEMPO: ;Subrutina TIEMPO
LCDOUT $FE,1,"-- Reloj PIC16F84 --" ;Mostrar texto en la primera line del LCD
LCDOUT $FE,$C0,DEC2 HORAS,":",DEC2 MINUTOS,":",DEC2 SEGUNDOS ;Situar lugar para horas,minutos,segundos en el LCD
SEGUNDOS=SEGUNDOS+1
IF SEGUNDOS>59 THEN SEGUNDOS=0:MINUTOS=MINUTOS+1
IF MINUTOS>59 THEN MINUTOS=0:HORAS=HORAS+1
IF HORAS>23 THEN HORAS=0
PAUSE 1360
RETURN
END