PROGRAMA TACÓMETRO MOTOBOMBAS

8
JOHN FREDY MARTINEZ CARDONA MANTENIMIENTO ELECTRONICO E INSTRUMENTAL INDUSTRIAL 600171 EN EL SIGUIENTE MATERIAL SE QUIERE MOSTRAR EL PROGRAMA REALIZADO PARA MEDIR LA VELOCIDAD DE LAS MOTOBOMBAS QUE SE UTILIZARAN EN EL PROYECTO. PARA DISEÑAR ESTE TACOMETRO NECESITAMOS REALIZAR UN PROGRAMA PARA EL PIC 16F877A Y SE UTLIZARÁ UN LCD PARA MOSTRAR EL RESULTADO EN PANTALLA. EL PROGRAMA SE REALIZO EN ASSEMBLER PORQUE ESTE LENGUAJE MANEJA UNA MAYOR PRECISION Y HACE PARTE DEL PROGRAMA DE APRENDIZAJE EN EL PROGRAMA DE ELECTRONICA (MICROCONTROLADORES). SE REALIZO LA SIMULACION RESPECTIVA MEDIANTE PROTEUS PARA PROBAR SU FUNCIONAMIENTO; EN EL MONTAJE FISICOS SE UTILIZO UN GENERADOR DE SEÑALES PARA MANDAR PULSOS DE ONDA CUADRADA AL PIC16F877A; ASI COMO TAMBIÉN SE UTILIZO UN CIRCUITO CON LED TRANSMISOR Y RECEPTOR PARA MANDAR LOS PULSOS A LA ENTRADA DEL MICRO, Y ASI REALIZAR LA PRUEBA REAL, OBTENIENDO RESULTADOS SATISFACTORIOS. A CONTINUACION SE MUESTRA EL PROGRAMA DEL PIC16F877A Y POSTERIORMENTE LOS PANTALLAZOS DE LA SIMULACIÓN. POSTERIORMENTE SE MOSTRARA EL MONTAJE REAL EN LAS MOTOBOMBAS CUANDO EL PROYECTO ESTE IMPLEMENTADO.

description

PROGRAMA EN ASSEMBLER PARA IMPLEMENTAR UN TACÓMETRO.

Transcript of PROGRAMA TACÓMETRO MOTOBOMBAS

Page 1: PROGRAMA TACÓMETRO MOTOBOMBAS

JOHN FREDY MARTINEZ CARDONA MANTENIMIENTO ELECTRONICO E INSTRUMENTAL INDUSTRIAL 600171 EN EL SIGUIENTE MATERIAL SE QUIERE MOSTRAR EL PROGRAMA REALIZADO PARA MEDIR LA VELOCIDAD DE LAS MOTOBOMBAS QUE SE UTILIZARAN EN EL PROYECTO. PARA DISEÑAR ESTE TACOMETRO NECESITAMOS REALIZAR UN PROGRAMA PARA EL PIC 16F877A Y SE UTLIZARÁ UN LCD PARA MOSTRAR EL RESULTADO EN PANTALLA. EL PROGRAMA SE REALIZO EN ASSEMBLER PORQUE ESTE LENGUAJE MANEJA UNA MAYOR PRECISION Y HACE PARTE DEL PROGRAMA DE APRENDIZAJE EN EL PROGRAMA DE ELECTRONICA (MICROCONTROLADORES). SE REALIZO LA SIMULACION RESPECTIVA MEDIANTE PROTEUS PARA PROBAR SU FUNCIONAMIENTO; EN EL MONTAJE FISICOS SE UTILIZO UN GENERADOR DE SEÑALES PARA MANDAR PULSOS DE ONDA CUADRADA AL PIC16F877A; ASI COMO TAMBIÉN SE UTILIZO UN CIRCUITO CON LED TRANSMISOR Y RECEPTOR PARA MANDAR LOS PULSOS A LA ENTRADA DEL MICRO, Y ASI REALIZAR LA PRUEBA REAL, OBTENIENDO RESULTADOS SATISFACTORIOS. A CONTINUACION SE MUESTRA EL PROGRAMA DEL PIC16F877A Y POSTERIORMENTE LOS PANTALLAZOS DE LA SIMULACIÓN. POSTERIORMENTE SE MOSTRARA EL MONTAJE REAL EN LAS MOTOBOMBAS CUANDO EL PROYECTO ESTE IMPLEMENTADO.

Page 2: PROGRAMA TACÓMETRO MOTOBOMBAS

C__Documents and Settings_Administrador_Mis documentos_My eBooks_TRABAJOS TECNOLOGIA MANTENIMIENTO ELECTRÓNICO_PROYECTO MÓDULO CAUDAL_PROGRAMA TACÓMETRO_TACOMETLCD2B

LIST P=16F877AINCLUDE <P16F877A.INC>

;ESTE PROGRAMA ES PARA REALIZAR UN TACOMETRO CON EL MICROCONTROLADOR PIC 16F877;UTILIZANDO UN RELOG XT OSC A 4MHZ ; TMR1; LCD; NOMBRE DEL PROGRAMA TACOMETROLCD.ASM

RTCCL EQU 0X020RTCCH EQU 0X021UNI EQU 0X022DEC EQU 0X023CEN EQU 0X024UNIM EQU 0X025DECM EQU 0X026LETRAS EQU 0x27PDel0 EQU 0x30PDel1 EQU 0x31PDel2 EQU 0x32PDel3 EQU 0x33PDel4 EQU 0x34LETRAS2 EQU 0x35PDel20 EQU 0x36PDel21 EQU 0x37PDel22 EQU 0x38

;PARA LA GRABACION, CODE PROTECT OFF, RESET DE ENCENDIDO ,ETC;***********************CODIGO EN RESET****************************************

ORG 00RESET GOTO INICIO ;RESET VECTOR DE LOCATION

ORG 05 ;INTERRUPT VECTOR DE LOCATION

INICIOCLRF RTCCLCLRF RTCCHCLRF TMR1LCLRF TMR1H

CALL LCD_PORTBCF STATUS,RP0 ;BANK 0MOVLW 0x0EMOVWF T1CONMOVLW '0'MOVWF UNI MOVWF DECMOVWF CENMOVWF UNIM

GOTO CONFLCD ;BRINCA A CONFIG RUTINA DE INICIALIZACION DE LCD

;******************************************************************************;RUTINA PARA LA INICIALIZACION DEL LCD ;******************************************************************************

CONFLCD CALL DEMORACALL LCD_INICALL MENSAJES

CONTADOR CLRF TMR1L; CONTADOR DEL TMR1CLRF TMR1HBSF T1CON,TMR1ONCALL DEMORA2 ; EN ESTA INSTRUCCION PROGRAMAMOS EL LAPSO DE TIEMPO EN EL

CUAL ESTA TOMANDO LA MEDIDA.BCF T1CON,TMR1ONMOVF TMR1L,WMOVWF RTCCLMOVF TMR1H,WMOVWF RTCCHCALL BIN_ASKCALL MENSAJES

1

Page 3: PROGRAMA TACÓMETRO MOTOBOMBAS

C__Documents and Settings_Administrador_Mis documentos_My eBooks_TRABAJOS TECNOLOGIA MANTENIMIENTO ELECTRÓNICO_PROYECTO MÓDULO CAUDAL_PROGRAMA TACÓMETRO_TACOMETLCD2B

GOTO CONTADOR

;******************************************************************************; MENSAJE A MOSTRAR EN EL LCD;******************************************************************************

MENSAJES CLRF LETRASREPETIR MOVF LETRAS,W

CALL TABLA1 IORLW 0 BTFSC STATUS,2 GOTO SIGA CALL LCD_DATOS

INCF LETRAS,F GOTO REPETIR

;SIGA MOVLW 0x8B

CALL LCD_REGMOVLW " "CALL LCD_DATOSMOVLW "J"CALL LCD_DATOSMOVLW "F"CALL LCD_DATOSMOVLW "M"CALL LCD_DATOSMOVLW "C"CALL LCD_DATOSMOVLW " "CALL LCD_DATOSMOVLW 0XC0CALL LCD_REG ;COMANDO PARA ESCRIBIR EN LA SEGUNDA LINEACALL DEMORAGOTO ENLACE

;

ENLACE CLRF LETRAS2REPETIR2 MOVF LETRAS2,W

CALL TABLA2 IORLW 0 BTFSC STATUS,2 GOTO SIGA2 CALL LCD_DATOS

INCF LETRAS2,F GOTO REPETIR2

SIGA2 MOVLW 0xC9CALL LCD_REGMOVF UNIM,W ;14CALL LCD_DATOSMOVF CEN,W ;15CALL LCD_DATOSMOVF DEC,W ;16CALL LCD_DATOSMOVF UNI,W ;17CALL LCD_DATOSMOVLW " " ;18CALL LCD_DATOSMOVLW "*" ;19CALL LCD_DATOSMOVLW " " ;20CALL LCD_DATOSRETURN

;******************************************************************************;CONVERCION DE BINARIO A ASCII;******************************************************************************BIN_ASK movlw '0'

movwf UNImovwf DECmovwf CEN

2

Page 4: PROGRAMA TACÓMETRO MOTOBOMBAS

C__Documents and Settings_Administrador_Mis documentos_My eBooks_TRABAJOS TECNOLOGIA MANTENIMIENTO ELECTRÓNICO_PROYECTO MÓDULO CAUDAL_PROGRAMA TACÓMETRO_TACOMETLCD2B

movwf UNIMmovwf DECM

loopa clrwsubwf RTCCL,Wbtfsc STATUS,Zgoto loopbdecf RTCCL,Fgoto UNIDAD

loopb clrwsubwf RTCCH,Wbtfsc STATUS,Zreturnmovlw 0xffmovwf RTCCLdecf RTCCH,Fgoto UNIDAD

UNIDAD movlw '9'subwf UNI,Wbtfsc STATUS,Zgoto DECENAincf UNI,Fgoto loopa

DECENA movlw '0'movwf UNImovlw '9'subwf DEC,Wbtfsc STATUS,Zgoto CENTENAincf DEC,Fgoto loopa

CENTENA movlw '0'movwf DECmovlw '9'subwf CEN,Wbtfsc STATUS,Zgoto UNIMILincf CEN,Fgoto loopa

UNIMIL movlw '0'movwf CENmovlw '9'subwf UNIM,Wbtfsc STATUS,Zgoto DECMILincf UNIM,Fgoto loopa

DECMIL movlw '0'movwf UNIMincf DECM,Fgoto loopa

;******************************************************************************

TABLA1 ADDWF PCL,1

RETLW "*" RETLW "T" RETLW "A" RETLW "C" RETLW "O"

RETLW "M"RETLW "E"RETLW "T"RETLW "R"RETLW "O"RETLW "*"RETLW 0x00

TABLA2ADDWF PCL,1

3

Page 5: PROGRAMA TACÓMETRO MOTOBOMBAS

C__Documents and Settings_Administrador_Mis documentos_My eBooks_TRABAJOS TECNOLOGIA MANTENIMIENTO ELECTRÓNICO_PROYECTO MÓDULO CAUDAL_PROGRAMA TACÓMETRO_TACOMETLCD2B

RETLW " " RETLW "*"

RETLW " " RETLW "R" RETLW "P" RETLW "M" RETLW "=" RETLW " " RETLW 0x00

;;******************************************************************************; SUBRRUTINAS PARA LCD;******************************************************************************LCD_REG BCF PORTA,0

BSF PORTA,2 ;Desactiva RS (Modo instruccion) MOVWF PORTB ;Saca el codigo de instruccion

CALL DEMORA ;Espera a que se libere el LCD BCF PORTA,2 ;Genera pulso en señal E

RETURN;LCD_DATOS BSF PORTA,0 ;

BSF PORTA,2 MOVWF PORTB ;Valor ASCII a sacar por RB CALL DEMORA ;Espera a que se libere el LCD

BCF PORTA,2 ;DESActiva RS (Modo dato) RETURN ;Genera pulso en señal E LCD_INI MOVLW b'00111000' CALL LCD_REG ;Codigo de instruccion

MOVLW b'00111000' CALL LCD_REG ;Codigo de instruccion

MOVLW b'00111000' CALL LCD_REG ;Codigo de instruccion CALL DEMORA

CALL DEMORA ;Temporiza 5 mS. MOVLW 0x08 CALL LCD_REG MOVLW B'00001100' CALL LCD_REG

MOVLW B'00000001' CALL LCD_REG MOVLW B'00000110' CALL LCD_REG MOVLW 0x80 CALL LCD_REG

RETURN

LCD_PORT BSF STATUS,5BCF STATUS,6MOVLW B'00000110' MOVWF ADCON1MOVLW B'00000000'MOVWF OPTION_REGCLRF TRISBMOVLW 0x00MOVWF TRISABCF STATUS,5BCF STATUS,6RETURN

;--------------------------------------------------------------------------------

;RETARDO DE 10mS;--------------------------------------------------------------------------------

DEMORA movlw .8 ; 1 set numero de repeticion (B) movwf PDel3 ; 1 |PLoop3 movlw .249 ; 1 set numero de repeticion (A) movwf PDel4 ; 1 |PLoop4 NOP ; 1 clear watchdog NOP ; 1 ciclo delay

4

Page 6: PROGRAMA TACÓMETRO MOTOBOMBAS

C__Documents and Settings_Administrador_Mis documentos_My eBooks_TRABAJOS TECNOLOGIA MANTENIMIENTO ELECTRÓNICO_PROYECTO MÓDULO CAUDAL_PROGRAMA TACÓMETRO_TACOMETLCD2B

decfsz PDel4, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop4 ; 2 no, loop decfsz PDel3, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop3 ; 2 no, loopPDelL3 goto PDelL4 ; 2 ciclos delayPDelL4 NOP ; 1 ciclo delay return ; 2+2 Fin.

;--------------------------------------------------------------------- ; RETARDO DE 1S ;----------------------------------------------------------------------

DEMORA2 movlw .14 ; 1 set numero de repeticion (C) movwf PDel0 ; 1 |PLoop0 movlw .72 ; 1 set numero de repeticion (B) movwf PDel1 ; 1 |PLoop1 movlw .247 ; 1 set numero de repeticion (A) movwf PDel2 ; 1 |PLoop2 NOP ; 1 clear watchdog decfsz PDel2, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop2 ; 2 no, loop decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loop decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (C) goto PLoop0 ; 2 no, loopPDelL1 goto PDelL2 ; 2 ciclos delayPDelL2 NOP ; 1 ciclo delay return ; 2+2 Fin.

;-------------------------------------------------------------;RETARDO DE 10S;-------------------------------------------------------------

DEMORA3 movlw .43 ; 1 set numero de repeticion (C) movwf PDel20 ; 1 |PLoop20 movlw .226 ; 1 set numero de repeticion (B) movwf PDel21 ; 1 |PLoop21 movlw .205 ; 1 set numero de repeticion (A) movwf PDel22 ; 1 |PLoop22 NOP ; 1 clear watchdog NOP ; 1 ciclo delay decfsz PDel22, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop22 ; 2 no, loop decfsz PDel21, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop21 ; 2 no, loop decfsz PDel20, 1 ; 1 + (1) es el tiempo 0 ? (C) goto PLoop20 ; 2 no, loop NOP ; 1 ciclo delay return ; 2+2 Fin.;-------------------------------------------------------------

END

5

Page 7: PROGRAMA TACÓMETRO MOTOBOMBAS
Page 8: PROGRAMA TACÓMETRO MOTOBOMBAS