Medidor RPM Digital
description
Transcript of Medidor RPM Digital
Universidad Nacional de la Patagonia San Juan Bosco
SISTEMAS DIGITALES II
“MEDIDOR DE RPM DIGITAL”
Integrantes:
Legato Daniel. Martínez Cesar. Vega Verónica.
2011
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.
ContenidoIntroducción.........................................................................................................................................1
Desarrollo:...........................................................................................................................................1
Subrutina Conversión BCD.............................................................................................................2
Subrrutina BCD...............................................................................................................................5
Conclusión:.........................................................................................................................................8
IntroducciónEl laboratorio consiste en la implementación de un contador de revoluciones (RPM) realizado con un micro controlador Motorola HC908JK1 mostrando los valores medidos en tres display de 7 segmentos hasta el número 999 rpm.
El sistema deberá presentar la siguiente funcionalidad:
Los pulsos digitales que ingresan por la entrada (Ent. Pulsos) provienen de un sensor que genera un ciclo por cada revolución de eje de la máquina respectiva (se simula el sensor empleando un generador de pulsos de frecuencia variable).
La llave SW1 deberá cambiar la escala de medición:
En la posición (x1) la lectura de los display será directamente la RPM medidas (hasta 999 rpm)
En la posición (X10) la lectura presentada será equivalente a un décimo de las RPM medidas (hasta 9999).
El diodo LED DL1 deberá destellar cuando la llave selectora este en la posición X10.
Para poder realizar este trabajo debemos utilizar un temporizar en el modo de interrupción periódica cada fracción de segundo como base de tiempo para iniciar el conteo de pulsos y aprovechar la misma para realizar el encendido secuencial de los display (técnica de multiplexado para display de 7 segmentos).
Desarrollo:El desarrollo del programa fue pensado para realizar conteos de pulsos ascendente utilizando una ventana (muestreo) de 1 segundo, los pulsos son ingresados por el pin 4 del puerto D (canal 0) contando la cantidad de flancos ascendentes, para lo cual configuramos el canal 0 para utilizarlo como una función de captura de interrupciones en lugar de usar el pin IRQ.
1Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.Para mostrar los pulsos transformados en RPM los datos son transformados a código BCD y se visualiza a través de tres display de 7 segmentos
Subrutina Conversión BCDEn esta subrutina se convierte un número binario a BCD:
El número binario a convertir a BCD viene con el valor en RPM, luego de haber pasado por la subrutina swich que transforma el valor de la variable “pulsos” y la almacena en los registros “NUMBINBAJO” y “NUMBINALTO” por ser los valores de 16 bit (dos registros de 8 boits).
Luego de la conversión a BCD los valores son guardados en los nibles de CONTBAJO Y CONTALTO, para ser tratados luego por la “subrutina BCD”.
2Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.
CONVBCD PSHH
LDA NUMBINBAJO ;(NUMBINBAJO)--->(A)
STA BINARIOBAJO ;(A)--->(BINARIOBAJO)
LDA NUMBINALTO ;(NUMBINALT)--->(A)
STA BINARIOALTO ;(A)--->(BINARIOALT)
CLR CONTBAJO ;(0)--->(CONTADOR MENOS SIGNIFACATIVO)
CLR CONTALTO ;(0)--->(CONTADOR MAS SIGNIFICATIVO)
MOV #$10,CONTEO ;(16)--->(CONTEO)
3Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.
;INICIO EL AJUSTE PARA CONVERTIR EL NUMERO BINARIO QUE ESTA DIVIDIDO EN NUMBINALTO Y NUMBINBAJO POR SER DE 16 BIT
SIGO LDA CONTBAJO ;(CONT)--->(A)
TAX ; (A)--->(X)
AND #$0F ; multiplicar (A) bit a bit por $0F
SUB #$05 ; restar $05 a (A)
BMI SALTO1 ; saltar si el resultado es negativo a la etiqueta SALTO1 QUIERE DECIR QUE ES MENOR QUE 5
AIX #$03 ;(X)+$03
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SALTO1 TXA ; (X)--->(A)
AND #$F0 ; multiplicar (A) bit a bit por $F0
SUB #$50 ; restar $50 a (A)
BMI SALTO2 ; saltar si el resultado es negativo a la etiqueta SALTO2
AIX #$30 ;(X)+$30
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SALTO2 STX CONTBAJO ; GUARDO LA PARTE BAJA DEL BCD unidad y decena
LDA CONTALTO ; (A)--->(CONT)
TAX ; (A)--->(X)
AND #$0F ; multiplicar(A) bit a bit por $0F
SUB #$05 ; restar $05 a (A)
BMI SALTO3 ; saltar si el resultado es negativo a la etiqueta SALTO3 QUIERE DECIR QUE ES MENOR QUE 5
AIX #$03 ;(X)+$03
4Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SALTO3 STX CONTALTO ;(X)--->(CONT) el numero bcdatlo esta en CONTALTO
ASL BINARIOBAJO ;desplazamiento aritmético de (BINARIOBAJO)
ROL BINARIOALTO ;rotar a la izquierda a través del carry (BINARIOALTO)
ROL CONTBAJO ;rotar a la izquierda a través del carry
ROL CONTALTO ;rotar a la izquierda a través del carry
DBNZ CONTEO,SIGO ;(CONTEO)-1 Y saltar a etiqueta SIGO si no es 0
PULH
RTS ;fin subrutina
Subrrutina BCDEsta subrutina se encarga de almacenar los valores de los nibles de CONTALTO Y CONTBAJO en las variables UNIDAD, DECENA y CENTENA. Y además de verificar si excede la medición que esta almacenada en PULSOS el valor de 999 en SWx1 o 9999en SWx10, en tal caso carga el valor de $0F en las variables UNIDAD, DECENA y CENTENA mostrando el cartel “Err” en los displays.
5Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.
BCD PSHH
BRSET 3,PORTD,POR10
POR1 LDA PULSOS
SUB #!17 ;A=A-OPERNADO
BPL ERRORR
BRA SALIR
POR10 CLC ;BORRA BIT CARRY
6Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”. LDA PULSOS ;CARGO EN A <=PULSOS
ADC #!89 ;A=A+89+CARRY PULSOS+89+CARRY
BCS ERRORR ;SALTAR A ETIQUETA ERRORR CUANDO EL CARRY ESTE EN 1
BRA SALIR ;SALTAR A ETIQUETA SALIR
ERRORR LDA $0F ;(CONT)--->(A)
STA UNIDAD ;(A)--->(CONTL)
LDA $0F ;(CONTBAJO)--->(A)
STA DECENA ;(A)--->(CONTH)
LDA $0E ;(CONTALTO)--->(A)
STA CENTENA ;(A)--->(CONTH)
BRA FINBCD
SALIR LDA CONTBAJO ;(CONT)--->(A)
AND #%00001111 ;(A)*%00001111, elimina los 4bits MSB
STA UNIDAD ;(A)--->(CONTL)
LDA CONTBAJO ;(CONTBAJO)--->(A)
NSA ;intercambiar nibles de A
AND #%00001111 ;(A)*%00001111, elimina los 4bits MSB
STA DECENA ;(A)--->(CONTH)
LDA CONTALTO ;(CONTALTO)--->(A)
AND #%00001111 ;(A)*%00001111, elimina los 4bits MSB
STA CENTENA ;(A)--->(CONTH)
FINBCD PULH
RTS ;fin subrutina
7Legato Daniel – Martínez Cesar – Vega Verónica.
SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería
Laboratorio: “Medidor de RPM digital”.
Conclusión:
8Legato Daniel – Martínez Cesar – Vega Verónica.