10
Universidad Nacional de la Patagonia San Juan Bosco SISTEMAS DIGITALES II “MEDIDOR DE RPM DIGITAL” Integrantes: Legato Daniel. Martínez Cesar. Vega Verónica.

Medidor RPM Digital

Embed Size (px)

DESCRIPTION

Contador de RPM con Micro Motorola

Citation preview

Page 1: 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

Page 2: Medidor RPM Digital

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.

Page 3: Medidor RPM Digital

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.

Page 4: Medidor RPM Digital

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.

Page 5: Medidor RPM Digital

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.

Page 6: Medidor RPM Digital

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.

Page 7: Medidor RPM Digital

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.

Page 8: Medidor RPM Digital

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.

Page 9: Medidor RPM Digital

SISTEMAS DIGITALES II 2011UNPSJB – Facultad de Ingeniería

Laboratorio: “Medidor de RPM digital”.

Conclusión:

8Legato Daniel – Martínez Cesar – Vega Verónica.