Como hacer reloj en mikrobasic

#1
Un saludo a todos quienes conforman esta página, no se si alguien tiene el programa para hacer un reloj en mikrobasic ocurre que soy nuevo en el tema. Estaría muy agradecido por la ayuda gracias...
 
#2
Debes ser mas Especifico en la parte de los componentes que PIC utilizas y como deseas mostrar tu Reloj
 
#3
hola a todos bueno no se si algen tiene un programa para controlar un timer con tiempos de variables con el pic 16f877a o 16f88a

m podej pasar tu programa pa controlar el timer
 
Última edición:
#4
Claro el pic con el que quiero trabajar es el 16f877a y quiero hacerlo en un lcd de 16x2 y como lo había mencionado antes no tengo claro las sentencias para hacer el reloj y gracias por la ayuda.
 
#5
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
 
#7
Holger espero que te sea de ayuda, es algo que hace un tiempo, tambien soy nuevo en el mundo de los microcontroladores... cualquier cosa comenta del caso.
 
#8
Huao esta rebueno tu programa nano24 pero en mikrobasic es diferente.. pero sirve de ayuda. bueno si algen quiere programas para el pic 16f877a 16f84a tengo algunos programitas sencillos para compartir e iniciarse en el mundo delos pics: como control de motores PAP unipolar y bipolar juego de luces semaforo inteligente, pero lo que no puedo hacer es el timer m resulta dificil controlar los tiempos en las variables. bueno tengo mas dominio en el control del puerto db25 y tambien serial cualquiera cosa tengo programas en Visual basic y net. y porfa si algen tiene el timer en MIkrobasic m lopasa....intentare hacerlo de todos modos gracias nano24.
 
#9
Bueno de nada a los que han agradecido :) me da gusto saber que les sea de ayuda lo publicado, ahi dejo unas fotos de como quedo mi reloj me esforce por hacerlo bien, un saludo y si alguno sabe como compilar el PIC18F2550 con PicBasic se los agradeceria tambien que me da errores el programa.

No entiendo por que no subio las dos a la vez pero ahi esta la otra!
 

Adjuntos

Última edición:
#11
Huao esta rebueno tu programa nano24 pero en mikrobasic es diferente.. pero sirve de ayuda. bueno si algen quiere programas para el pic 16f877a 16f84a tengo algunos programitas sencillos para compartir e iniciarse en el mundo delos pics: como control de motores PAP unipolar y bipolar juego de luces semaforo inteligente, pero lo que no puedo hacer es el timer m resulta dificil controlar los tiempos en las variables. bueno tengo mas dominio en el control del puerto db25 y tambien serial cualquiera cosa tengo programas en Visual basic y net. y porfa si algen tiene el timer en MIkrobasic m lopasa....intentare hacerlo de todos modos gracias nano24.
me interesa controlar motores pap bipolares con el pic 16f877a. me puedes ayudar?.
 
#12
para que el reloj tenga cierta precision, sino se desfasa varios segundos al dia ya que contar interrupciones no es muy preciso hay que emplear un reloj de tiepo real como el DS1307 o el PFC, si miras la ayuda de mikroe, en los proyectos de usuarios hay sendos ejemplos, estan en mikropascal pero es facil entenderlos para adaptarlos al mikrobasic.
 
#13
UNICOR:
bueno te mandare los programas para controlar el motor paso unipolar y bipolar en proteus y el codigo fuente en mikro basic para el pic 16f877a. pero con que lo quieres controlar con pic o en visual basic desde el puerto paralelo etc. cuantos motores quieres controlar?
 

Temas similares

Arriba