TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
20 de Abril de 2014, 07:46:10

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
342538 Mensajes en 38347 Temas por 39699 Usuarios
Último usuario: wily78
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  Almacén del Assembler (Moderadores: maunix, MGLSOFT, PAOLA09, Suky)
| | |-+  cronometro y tacometro
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Marcar como favorito Imprimir
Autor Tema: cronometro y tacometro  (Leído 4848 veces)
polinigrc
PIC10
*
Desconectado Desconectado

Mensajes: 3


« : 23 de Enero de 2006, 03:46:00 »

hola a todos soy nuevo en el tema de los pic. Quisiera desarrolla un contador de rpm y contador de tiempo por vuelta. Soy corredor de motos y me lo quisiera personalizar.

En línea
Chaly29
Moderador Global
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2344



« Respuesta #1 : 23 de Enero de 2006, 16:49:00 »

Hola polinigrc, se nota que eres conocedor del tema POLINI Giño, yendo a lo nuestro.

Supongo que conocerás del tema electrónica?, y partiendo de este punto que tipo de interfaz deseas (display LCD, LED, aguja, etc) partiendo de este tema tendrás que disponer o diseñar un circuito.

Una pregunta: ¿Como harás para que el pic reconozca que la moto dio un a vuelta y pueda contar el tiempo? ¿le pondrás algún tipo de censor y lo activaras manualmente?.

Por otro lado creo que necesitaras 2 PIC uno que cuente el tiempo por vuelta y otro que te indique las RPM ya que este ultimo necesita mucho tiempo para el procesado de los datos y aparte para que te asegures una buena precisión ya que en el tema que lo usaras vos a veces unas décimas marcan la diferencia.

Bueno cuando tengas decidido el circuito que usaras postea el mismo así te podremos ayudar en el tema.

Suerte.

Atte. CARLOS

En línea
polinigrc
PIC10
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #2 : 24 de Enero de 2006, 10:46:00 »

Hola charli29, gracias por contestar.

Utilizare un display LCD, el pulso lo tomare directamente del cable de la bujia.

Ya tengo el diseño del circuito pero me falta el programa del  pic .

Como reconocere el pulso de las rpm, bueno pondre un 4093 y con esto ya tengo el pulso para el pic.


un saludo Jordi.
En línea
xootraoox
Colaborador
PIC16
*****
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 248



« Respuesta #3 : 24 de Enero de 2006, 16:27:00 »

MMMM.......  pulso de bujia????    esto me huele a humolocoloco si mas no me equivo, las bujias envian un voltaje minimo de 12.000v ?????   por que si es esa chispila la que quieres usar te aseguro que mas de un pic vas a quemar.....
En línea
BrunoF
Administrador
DsPIC30
*******
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 3692



« Respuesta #4 : 24 de Enero de 2006, 18:04:00 »

He visto que lo que hacen en algunos equipos de GNC es enrollar un cable(que sensa) alrededor de uno de los cables de bujia. En esos equipos asi detectan el arranque del vehiculo, pero no se si servira para tu proyecto...Exitos...
En línea

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.
Chaly29
Moderador Global
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2344



« Respuesta #5 : 24 de Enero de 2006, 20:03:00 »

Hola como bien dice BrunoF, los equipos de GNC detectan la descarga de una de las bujías del motor, pero no es para saber si el motor esta en marcha, es para saber exactamente el numero de RPM que tiene el motor, estos sistemas están en todos los autos con GNC que disponen a demás de inyección electrónica.

El auto en el momento del arranque funciona con nafta y del modo normal, por medio de este cable cuando pasa aproximadamente las 2000 RPM se desconecta el sistema de infección y entra en funcionamiento el de GNC.

Si xootraoox, el pulso de la bujía se censa por medio de un cable o un pequeño trafo que se encuentra alrededor del cable de una de las bujías, nunca se toma la señal directa que va a esta (es muy alta tensión), de todas formas al trafo o al cablecito hay que adaptarle muy bien las señales para que no se generen falsos pulsos por la corriente alterna que se encuentra en los cables de la bujía, y para que nunca le llegue ningún tipo de pulso al PIC porque en ese caso si estaríamos en problemas.

Suerte a todos.

Atte. CARLOS

En línea
xootraoox
Colaborador
PIC16
*****
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 248



« Respuesta #6 : 24 de Enero de 2006, 22:15:00 »

Bueno... hay si estoy deacuerdo... que por medio de induccion magnetica atravez de un cablecillo junto el de la bujia es mas seguro, ya veia un pobre pic Flash destellando asi en cada pulso de bujiaGiñoGiñoGiño

-==XooTRAooX==-
En línea
polinigrc
PIC10
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #7 : 25 de Enero de 2006, 02:31:00 »

Hola!, no me habeis entendido ya se que no se puede conectar el pic directamente a la bujia ya que no son 12.000 volt sino 30.000 volt en este caso, soy nuevo en el tema de la programacion del pic pero algo de electronica entiendo, lo del pulso en facil, es lo que menos me inporta, para mi lo mas complicado es hacer el programa.

Ha charly29 el sensor del contador de vueltas sera un infrarrojos.

Un saludo Jordi
En línea
BrunoF
Administrador
DsPIC30
*******
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 3692



« Respuesta #8 : 25 de Enero de 2006, 04:19:00 »

juju bueno!
Si hay ignorancia de mi parte que no se note Charli!Sonrisa GiganteRebotado
Ese error mio es por explayarme en temas que no conozco en profundidad.Mejor me limito a lo que he estudiado y lo que se.
El programa no creo que sea complicado.

Por ahi lo mas complicado es medir tiempos...pero con un poco de maña funciona.Sonrisa GiganteSonrisa Gigante

Exitos...
En línea

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.
Chaly29
Moderador Global
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2344



« Respuesta #9 : 25 de Enero de 2006, 07:03:00 »

Hola BrunoF, nunca mas alejado de la realidad, en ningún momento trate de decir que eres ignorante, incluso en la primera parte de lo que as dicho lo confirmé, y la segunda parte lo que hice fue ampliar el concepto, ya que como tu dices por medio del cable en cierto modo detecta el funcionamiento del motor, si no, no habría forma de que este llegara a las 2000 RPM.

polinigrc, con respecto al tema de la electrónica veo que lo manejas, entonces te comento lo siguiente, por medio del infrarrojo creo que deberás hacer que el transmisor module el infrarrojo a una determinada frecuencia, y por medio de un detector de tonos reconocer esta en el receptor, de otra forma te será muy difícil de filtrar la interferencia producida por la luz ambiente, de todas formas no creo que el infrarrojo sea lo mas adecuado, ya que si otra moto se interpone en el camino entre la tuya y el transmisor la señal será anulada sin poder contar le vuelta.

Yendo al Software, para realizar un tacómetro (medidor de RPM) tienes dos métodos principales:

1) Medir las RPM en un tiempo determinado (Ej: 1 seg) y en base a eso calcular las RPM que tendría el motor en el periodo de 1 minuto.
Ventajas:
*Sencillez del programa
Contras:
*Baja resolución, las indicaciones serán cada 100 RPM
*Baja tasa de refresco, en 2T=100 4T=50 lecturas por minutos.

2) Medir el tiempo que se tarda es realizar una vuelta del motor y hacer una división de 1 minuto sobre ese periodo medido.
Ventajas:
*Alta resolución, las indicaciones serán con una precisión de 10 RPM o mayores
*Alta tasa de refresco, se podrán hace 1000 o más refrescos por minuto
Contras:
*Mayor complicación a la hora del programa (no mucho más)

Con lo anterior podrás hacer la elección del tipo de programa a realizar, deberás tener en cuanta que si usas el segundo caso también puedes implementar un datalogger con lo cual podrás levantar la curva de las RPM en toda una vuelta del circuito para luego analizarla, con el primer programa también podrás hacer esto pero dada su baja tasa la curva no será muy fiel.

El circuito entre los 2 métodos podría llegar a tener leves variaciones para mejorar las lecturas en cada caso.

Bueno, espero esto te ayude. Estaré atento a tu respuestas.

Suerte.

Atte. CARLOS

Pda. yo ya tengo el programa para un tacómetro de la primera opción, el problema es que la indicación esta realizada sobre display de led de 7 segmentos.  

 
En línea
olotill
Colaborador
PIC16
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 249


TODOPIC TIME TO LIVE WITH FRIENDS


« Respuesta #10 : 29 de Enero de 2006, 21:36:00 »

Que tal compadre Chaly...

Pues me has caido desde el cielo, justamente estoy desarrollando un tacometro con displays de 7 segmentos pero este debe incluir un shift light... bueno ya tenia pensado como hacerlo y pues es de la primera opcion como tu lo describes... aca viene mi pedido... sera que me puedes facilitar tu diseño, no lo voy a copiar Sonrisa Gigante voy a basarme en el Sonrisa Gigante y pues antes de nada darte las gracias por la ayuda que nos das a todos los del foro... todos los dias leo mensajes tuyos en todos lados, que bueno que seas uno de los antiguos que ha regresado para ayudarnos a los nuevos adictos a los bichitos estos...Muchas risas

Bueno compadre, agradeciendo de antemano tu ayuda, te mando un abrazo desde mi tierra EL ECUADOR... RebotadoRebotado

En línea

"La imaginación es más importante que el conocimiento"  A. Einstein..
Chaly29
Moderador Global
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2344



« Respuesta #11 : 30 de Enero de 2006, 02:06:00 »

Hola olotill, te comento que el esquema no lo tengo, ya que lo e extraviado, lo único de lo cual dispongo es del programa. Pero de todas formas es bien sencillo.

Una preguntita, el shift light... al que tú te refieres ¿es la luz piloto que se enciende en el caso de pasar determinadas RPM?

Lo que te puedo proponer es que subas el esquema del cual dispones y lo estudiamos entre los dos, ya que si tengo que realizar el diseño me llevara unos días por falta de tiempo. Ahora si me quieres esperar, lo realizo.

Aparte de lo anterior seria interesante que comentes que tipo de motor será el destino de este tacómetro, ya que para los nafteros no es igual que para los gasoleros, y en caso de ser naftero si el motor es a platinos o encendido electrónico.

Espero tu respuesta, y gracias por las palabras de aliento.

Atte. CARLOS

En línea
KALLITOS
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 1180



WWW
« Respuesta #12 : 08 de Marzo de 2006, 08:45:00 »

HOLA MUCHACHOS LA FIRME ES QUE SOY NUEVO EN EL FORO PERO COMO TODOS NECESTIDO UN AYUDIN EN ESTO DE LOS PICS

LA CUESTIÓN ES QUE PROGRAMO PICS DESDE HACE UNA SEMANA Y LO HE HECHO EN PIC BASIC PERO EXISTEN FACILIDADES Y HASTA DONDE HE LLEGADO MUCHAS LIMITACIONES SOBRE TIEMPO DE EJECUCIÓN DE CADA LINEA O COMANDO POR LO QUE HE DECIDIDO APRENDER ASM Y EN ALGO ESTOY PERO NO LIGO CON ESTO DE LAS INTERRUPCIONES    LES COMENTO QUE ESTOY HACIENDO ALGO PARECIDO A LO QUE INICIO ESTA DISCUSIÓN

MI PROYECTO ES HACER UN EQUIPO QUE A LAS FINALES TIENE EL MISMO FUNCIONAMIENTO DEL CRONOMETRO Y TACOMETRO PERO OTRA APLICACION

EN MI TRABAJO EXISTEN EQUIPOS PARA MEDICIÓN DE CAUDALES DE AGUA EN CANALES ABIERTOS QUE DATAN DE LA EPOCA DE LA CARRETA Y QUIERO MEJORARLOS YA QUE UTILIZAN CONTADORES MECANICOS
ESTOS MIDEN LA CANTIDAD DE VUELTAS EN UN DETERMINADO TIEMPO QUE DA UNA HELICE SUMERGIDA EN EL AGUA Y LOS DATOS COMO SON REVOLUCIONES Y TIEMPO SON INGRESADOS A UNA FORMULA Y PROCESADO ESTO TE DA EL CAUDAL DE AGUA QUE PASA POR EL CANAL

PERO MI MEJORA ES OBTENER EL TIEMPO HASTA EN MILISEGUNDOS INCLUIDO SEGUNDOS Y MINUTOS EN UN DETERMINADO NUMERO DE REVOLUCIONES EN EL QUE SE HAN INGRESADO LA CANTIDAD DE REVOLUCIONES QUE SE TOMARAN Y ASI REDUCIR EL ERROR EXISTENTE YA QUE LAS MEDIDAS DE TIEMPO SE HACEN MANUALMENTE, ES DECIR INICIAN LA MEDICIÓN Y AL MISMO TIEMPO (SUPUESTAMENTE) INICIAN UN CRONOMETRO PERO LO QUE QUIERO ES: EL PIC LUEGO DEL PULSO DE INICIO DADO POR EL OPERADOR ENTRA EN UN BUCLE HASTA RECIBIR EL PRIMER PULSO Y EN ESE MOMENTO INICIA EL CRONÓMETRO PARALEAMENTE SE VA CONTANDO EL NUMERO DE REVOLUCIONES (ESTO CON UNA INTERRUPCION) Y LLEGADO EL NUMERO DE REVOLUCIONES PREDETERMINADA DETIENE EL CRONÓMETRO Y MUESTRA EL TIEMPO TRANSCURRIDO Y EL NUMERO DE REVOLUCIONES  
ESTO LO PRESENTARE EN 6DISPLAYS DE 7 SEG Y USANDO UN 16F84A
TENGO LA IDEA DE COMO HACERLO PERO NECESITO QUE ME DEN UN EMPUJON EN ESTO DE LAS INTERRUPCIONES

LOS PULSOS DEL EQUIPO SON DIGITALES Y EN ESO NO HAY PROBLEMA SON COMO SI FUERA UN PULSADOR

BUENO MUCHACHOS ESPERO QUE ME HAYAN ENTENDIDO TANTO MI EXPLICACION AvergonzadoCOMO MI NECESIDAD  

MUCHAS GRACIAS A QUIENES ME PUEDAN AYUDAR EN ESTO
En línea

A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!
Chaly29
Moderador Global
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 2344



« Respuesta #13 : 08 de Marzo de 2006, 20:01:00 »

Hola KALLITOS, seria interesante que nos dijeras cuantas son las vueltas máximas que se llegaran a contar, ya que no es lo mismo contar 255 que más.

¿Es necesario contar por ejemplo 100 vueltas, o seria lo mismo saber el tiempo que tarda una y multiplicar por 100?

Ten en cuenta que si los cálculos no son demasiado complejos asta podrías hacer que el pic te entregue el caudal.

Por otro lado es importante conocer el numero de RPM máximas que puede tener el sensor para saber tiempos de proceso de cálculos por parte del PIC.

Aparte de lo anterior te comento que un tacómetro no tiene ni similitud con lo que tu estas queriendo implementar, me refiero al tema del firmware, los cálculos son muy distintos ya que en el primero con un tiempo fijo solo tienes que contar los pulsos que entran por un pin y esto se hacer por hardware, y tu necesitas de acuerdo a los pulsos de entrada sumar los tiempos entre cada uno de ellos.  

Un saludo.

Atte. CARLOS

En línea
KALLITOS
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 1180



WWW
« Respuesta #14 : 09 de Marzo de 2006, 13:38:00 »

bueno en primer lugar disculpas por mi apuro en definicion de terminos....la emoción de los pics me esta volviendo loco.


El equipo tarda en realizar una vuelta mas o menos entre 0.5 hasta 1.6 segundos
no va a contar mas que un byte y no va a sumar tiempos parciales...lo que va a hacer es comparar si el numero de pulsos es igual al predeterminado por el usuario y detener el cronometro; ya que la velocidad del agua no es constante (existen las turbulencias y otras cosas que las manejan mejor los hidrólogos) por lo mismo es que tiene que realizar el conteo total obligatoriamente

me han sugerido que trabaje con un reloj externo ds1307 pero este solo tiene una resolusión hasta el segundo y lo necesito al milisegundo; y a raiz de esta sugerencia pense en hacer el equipo con dos pics que trabajen con I2C uno como esclavo que sera el cronómetro y recibirá el pulso de inicio y parada y luego envie el tiempo transcurrido y el master que llevará la cuenta de pulsos y realizará el barrido del display,,,parece que me acabaría el lio pero por estos rumbos los pics estan un poco sobrevaluados y me va a salir un poco carito.

pero de todas maneras lo voy a hacer quien sabe si talvez saque algun dinerillo de esto y me sirva para hacer otros proyectos.

voy a probar con lo que les dije haber como me sale luego les cuento

de todas maneras muchas SonrisagraciasSonrisa
En línea

A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!
unelectron
PIC10
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #15 : 02 de Junio de 2007, 12:22:57 »

Hola Polinigrc...
Estaria muy bueno que publiques tu proyecto!  está muy bueno!...  Saludos!!
En línea
Elheavytorrent
PIC10
*
Desconectado Desconectado

España España

Mensajes: 1


« Respuesta #16 : 21 de Enero de 2009, 18:16:56 »

Bueno, hola a todos, voy a intentar "revivir" este tema ya que hace mucho que no se publica nada XD, resulta que yo tambien estoy interesado en este tema, no tanto por el tacometro sino por el contador de vueltas al circuito, mi iea es aprovechar la banda magnetica que hay en muchos circuitos en linea de meta y en puntos de control.
El tema de la programacion pic lo tengo claro, mi idea es que por un lcd salga el tiempo por vuelta, y en caso de existir parciales mostrarlos tambien, velocidad media por vuelta, etc... cosas que ya tengo claras, en eso no tengo problemas, mi problema es la "captura" del pulso de paso por meta, o mejor dicho, el paso por la banda magnetica, en esto estoy perdido, no se que valor en gauss tiene esa banda magnetica ni que sensor utilizar, he estado mirando en rs SENSORES y no se cual utilizar ya que con este tipo de sensores no he trabajado nunca , alguna idea?
Gracias de antemano
En línea
epogor
PIC10
*
Desconectado Desconectado

Argentina Argentina

Mensajes: 6


« Respuesta #17 : 02 de Septiembre de 2011, 12:08:55 »

Hola a todos yo tambien quiero implementar un contador de rpm con los timer uno para contar los pulsos y otro para contar el tiempo de toma de pulsos, el tema es que no se como utilizar los timer , es decir como inicializarlos y usar la interrupcion; aporto lo que he echo y si pueden y quieren corrian los que les paresca; y si pueden ayudarme a terminar el codigo o oportar lo que puedan, desde ya gracias, si necesitan bibliografia por favor diganme y les aviso si tengo algo . Surprised Surprised
En línea
epogor
PIC10
*
Desconectado Desconectado

Argentina Argentina

Mensajes: 6


« Respuesta #18 : 02 de Septiembre de 2011, 12:11:46 »

Aqui les dejo lo que echo, ya se que es pobrisimo pero quiero aprender y asi empiezo:



Subrutina de contador de rpm
//*******************************

void Contador de RPM()

{int8 dif;
int8 rpm_nuevo;
int8 rpm_viejo;
int8 RPM;
int8 dif1;

setup_timer_1 ( T1_EXTERNAL );


setup_timer_0 (RTCC_EXT_L_TO_H);

rpmnuevo=get_timer0()          // cantidad de pulsos contados por timer0
dif=rpm_nuevo - rpm_viejo      // dif entre nuevo y viejo da las rpm actual
dif1=abs(dif)                  // valor absoluto de la diferencia
RPM= 60*dif1                   // valor a mostrar
rpm_viejo=rpm_nuevo            // actualizo valor de rpm viejo
}
En línea
Noelillo
PIC12
**
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 74

COSAS DE MAS MENOS


« Respuesta #19 : 30 de Septiembre de 2011, 15:34:49 »

Yo tengo esto, un contador de RPM.

Código:
;************************************ Revolucion.asm *************************************
;
; ===================================================================
;   Programa para visualizar las rpm de un motor
;  
; Miguel Noe Garcia Perez   29 de enero del 2009
; ===================================================================
;
;
;
; ZONA DE DATOS **********************************************************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C
NumeroFlancos
ENDC

ORG 0x2100

DE "Progra: Revoluciones para Neri  Vespa 22/04/2009 Miguel Noe... "
MULTIPLICADOR EQU .60

; ZONA DE CÓDIGOS ********************************************************************

ORG 0
Inicio
  call LCD_Inicializa
bsf STATUS,RP0 ; Acceso al Banco 1.
movlw b'00111000' ; TMR0 como contador por flanco descendente de
movwf OPTION_REG ; RA4/T0CKI. Prescaler asignado al Watchdog.
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
clrf TMR0 ; Inicializa contador.
call LCD_Borra ; Se pone al principio de la línea 1.
movlw 0x00
call LCD_PosicionLinea1
movlw MensajeInicio
call LCD_Mensaje
movlw 0x00
call LCD_PosicionLinea2

movlw   MensajeMiguelito
call LCD_Mensaje
call Retardo_2s

call LCD_Borra ; Se pone al principio de la línea 1.
movlw 0x00
call LCD_PosicionLinea1
movlw MensajePrograma
call LCD_Mensaje
movlw 0x00
call LCD_PosicionLinea2

movlw   MensajePrograma2
call LCD_Mensaje
call Retardo_2s
call LCD_Borra ; Se pone al principio de la línea 1.


movlw 0x00
call LCD_PosicionLinea1
movlw MensajeCuadro1
call LCD_Mensaje
movlw 0x00
call LCD_PosicionLinea2
movlw MensajeCuadro2
call LCD_Mensaje

Go_go
call Retardo_1s ; Tiempo durante el que contarán los flancos.
movf TMR0,W ; Lee el Timer 0 y lo guarda.
movwf NumeroFlancos

movf NumeroFlancos,W
call VisualizaNumero


;*************************************** calculo *******************************************

movlw 0x05
call LCD_PosicionLinea2
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter

clrf Arit_Binario_H

movf GuardaNumero,W
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit ; Pasa de binario natural en 16 bits a BCD de 5 digitos.

clrf Arit_Binario_H ; Visualiza el multiplicador en decimal.
movlw MULTIPLICADOR
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit ; Pasa de binario natural en 16 bits a BCD de 5 digitos.

movlw '=' ; Visualiza signo de igualdad.
call LCD_Caracter
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter

    movf GuardaNumero,W

movwf Arit_Multiplicando
movlw MULTIPLICADOR
movwf Arit_Multiplicador
call Arit_Multiplica_8Bit ; Realiza la multiplicación.
movf Arit_Producto_H,W ; Y ahora visualiza el resultado.
movwf Arit_Binario_H
movf Arit_Producto_L,W
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit ; Pasa de binario natural en 16 bits a BCD de 5 digitos.
call Arit_VisualizaBCD ; Visualiza el resultado.
   
clrf TMR0
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter

;********************************************************************************************
goto Go_go

; Subrutina "VisualizaNumero" -----------------------------------------------------------
;
; Cuando haya que visualizar un número mayor de 99 las decenas siempre se visualizan aunque
; sean cero. Cuando sea menor de 99 las decenas no se visualizan si son cero.
;
CBLOCK 0x0C
GuardaNumero
ENDC

VisualizaNumero
movwf GuardaNumero ; Reserva el número.
call BIN_a_BCD ; Pasa el número a BCD.
movf BCD_Centenas,W ; Primero las centenas.
btfss STATUS,Z ; Si son cero no visualiza las centenas.
goto VisualizaCentenas
movf GuardaNumero,W ; Vuelve a recuperar este valor.
call BIN_a_BCD ; Lo pasa a BCD.
;call LCD_Byte ; Visualiza las decenas y unidades.
goto FinVisualizaNumero
VisualizaCentenas
call LCD_Nibble ; Visualiza las centenas.
movf GuardaNumero,W ; Vuelve a recuperar este valor.
call BIN_a_BCD ; Lo pasa a BCD.
;call LCD_ByteCompleto ; Visualiza las decenas aunque sea cero.



FinVisualizaNumero
return

; Subrutina "Mensajes" ------------------------------------------------------------------

Mensajes
addwf PCL,F
MensajeInicio
;*******1234567890123456************
DT "IBERICA 2000/09",0x00
MensajeMiguelito
DT "Presenta:",0x00
MensajePrograma
DT "Revoluciones Por",0x00
MensajePrograma2
DT "Minuto.V 1.1    ",0x00
MensajeCuadro1
DT "Vueltas de Motor",0x00
MensajeCuadro2
DT "R.P.M:",0x00
MensajeBorra
DT "      ",0x00



INCLUDE <ARITMETICA.INC>
INCLUDE  <RETARDOS.INC>
INCLUDE  <BIN_BCD.INC>
INCLUDE  <LCD_4BIT.INC>
INCLUDE  <LCD_MENS.INC>
END

; ====================================================================
;   Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS".
;   E. Palacios, F. Remiro y L. López. www.pic16f84a.com
;   Editorial Ra-Ma.  www.ra-ma.es
; ====================================================================
« Última modificación: 30 de Septiembre de 2011, 15:44:19 por Noelillo » En línea
TODOPIC
   

 En línea
Páginas: [1] Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.115 segundos con 23 consultas.