Vous êtes sur la page 1sur 11

Benemrita Universidad Autnoma de Puebla

Facultad de Cs. De la Computacin

Microcontroladores e Interfaces

Practica:

Tacmetro

Alumnos: Gonzlez Chantes Miguel ngel 200732455 Hernndez Andrade Lidia 200702984 Hernndez Gutirrez Edgar Jurez Jurez Vctor 200712830 Profesor: Nicols Quiroz Hernndez

Primavera 2010

Objetivos: Anlisis y manejo de puertos de entrada y salida del microcontrolador PIC16F877A Conocer el funcionamiento de un Optointerruptor Manejo del conjunto de instrucciones de lenguaje ensamblador. Programacin de un microcontrolador mediante el software MPLAB para el funcionamiento de un motor que simulara el conteo de giros mdiate un optointerruptor. Realizar el programa en ensamblador para el conteo de los giros de un motor, la simulacin en el MPLAB y programacin del PIC. Realizar la simulacin en Proteus.

Conocimiento previo: Manejo de la arquitectura del PIC16F877A y de su conjunto de instrucciones. Conocimientos de circuitos electrnicos. Funcionamiento de un motor a pasos unipolar. Conocimientos de un Optointerruptor.

Material y Equipo requerido: 1 PIC16F877A 1 Motor DC 1 Optointeruptor 1 Cristal 8MHz 2 Capacitores 22pF 1 Diodo L293D 1 Pulsadores 1 Dipswitch 1 Resistencias de 4.7 K 10 K 1 Fuente de 5 V 1 Multmetro 1 Programador

MARCO TEORICO Este es uno de tantos tipos de optointerruptores para uso especial. Existen varios tipos pero los ms importantes son los switches de ranura pticos y los sensores reflejantes pticos. Los de ranura tienen el emisor y el sensor insertados en el paquete, este paquete sirve para mantener el alineamiento ptico. El espacio ente ellos forma el rea sensible, estos dispositivos tienen la misma funcin que los optos pero tienen un mecanismo de interrupcin mecnico. Este dispositivo puede detectar la presencia de un objeto o su velocidad. Se fabrica en diferentes tipos de empaque para poderlo acomodar en un rango de tamaos y restricciones de montaje. El sensor reflejante ptico consiste en un emisor y un sensor pticos en el mismo empaque, y esta diseado para que la emisin del LED sea cortada por un objeto y reflejada al sensor. Las siguientes tabas de caractersticas muestran un ejemplo de opto interruptores.

Fig. Imagen de un Optointerruptor

MOTOR DC

Fig. Imagen de un motor DC Accionar un motor DC es muy simple y solo es necesario aplicar la tensin de alimentacin entre sus bornes. Para invertir el sentido de giro basta con invertir la alimentacin y el motor comenzar a girar en sentido opuesto.

A diferencia de los motores paso a paso y los servomecanismos, los motores DC no pueden ser posicionados y/o enclavados en una posicin especfica. Estos simplemente giran a la mxima velocidad y en el sentido que la alimentacin aplicada se los permite. El motor de corriente continua est compuesto de 2 piezas fundamentales : Rotor Estator

Fig. Rotor y estator. Dentro de stas se ubican los dems componentes como: Escobillas y portaescobillas Colector Eje Ncleo y devanado del rotor Imn Permanente Armazn Tapas o campanas Caractersticas del PIC16F877A Cuenta con slo un conjunto de 35 instrucciones de una sola palabra para aprender Todas las instrucciones de un solo ciclo, excepto para el programa ramas, que son de dos tiempos que se especifica en la tabla 15-2 de la hoja de especificaciones o datasheet. Velocidad de funcionamiento: DC - 20 MHz de reloj de entrada DC - 200 ns ciclo de instruccin Hasta 8K x 14 palabras de memoria Flash de programa, Hasta 368 x 8 bytes de datos de la memoria (RAM), Hasta 256 x 8 bytes de memoria EEPROM de datos.

Compatible con otros 28 pines o 40/44-pin Pin out. PIC16CXXX y microcontroladores PIC16FXXX. Necesita de un Cristal de 8 MHrz que van conectadas en los pines 13y 14 unidos a un capacitor para servirle como oscilador. Se necesita alimentar al microcontrolador desde los pines 11 y 12 de igual forma a los pines 31 y 32. En la hoja de especificaciones del fabricante podemos encontrar como conectar el cristal y ver los puertos o bancos que el PIC tiene.

IMPLEMENTACIN: CODIGO: A continuacin se muestra el cdigo en ensamblador utilizado para realizar el tacmetro y visualizar en LCD
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON &_HS_OSC & _LVP_OFF LIST P=16F877A INCLUDE<P16F877A.INC> #DEFINE MOTOR PORTB,0 CBLOCK 0X20 CONTADOR BCD_Centenas BCD_Decenas BCD_Unidades TEMP ENDC ORG 0 GOTO INICIO ORG 4 GOTO SERVICIO_INTERRUPCION INICIO BSF STATUS,RP0 BSF MOTOR BCF OPTION_REG,NOT_RBPU BCF OPTION_REG,INTEDG CLRF TRISD BCF TRISC,7 BCF TRISC,6 ;Puerto C como salida c7,c6,c5 BCF TRISC,5 MOVLW 0X87 ;configuramos tiMer 0 MOVWF OPTION_REG ;configuramos tiMer 0 BCF STATUS,RP0 CALL INICIA_LCD CLRF CONTADOR CALL VISUALIZA_CONTADOR MOVLW B'10010000' MOVWF INTCON clrf PORTD clrf CONTADOR clrf TEMP CICLO CALL RETARDO

RS, RW, E

CALL RETARDO BTFSS MOTOR CALL LIMPIA SLEEP GOTO CICLO LIMPIA CLRF CONTADOR CALL VISUALIZA_CONTADOR RETURN SERVICIO_INTERRUPCION BTFSC MOTOR GOTO FIN_INTERRUPCION INCF CONTADOR,F VISUALIZA_CONTADOR MOVLW b'00000010' ;USO DE 4 BITS, 2 RENGLONES, 5X7 MOVWF PORTD ;ENVIAMOS AL PUERTO D CALL ENABLE MOVF CONTADOR,W CALL BIN_BCD movfw BCD_Centenas call tabla call escribir movfw BCD_Decenas call tabla call escribir movfw BCD_Unidades call tabla call escribir movlw a'0' call escribir movlw a' ' call escribir movlw a'R' call escribir movlw a'P' call escribir movlw a'M' call escribir call RETARDO ; CLRF CONTADOR ;CALL LCD_BYTE FIN_INTERRUPCION BCF INTCON,INTF ;1SEG

RETFIE INICIA_LCD CALL FUNCTION_SET CALL RETARDO CALL DISPLAY_ON CALL RETARDO CALL DISPLAY_CLEAR CALL RETARDO CALL ENTRY_MODE_SET RETURN

;RUTINA PARA INCICIALIZAR LCD

FUNCTION_SET MOVLW b'00111000' ;USO DE 4 BITS, 2 RENGLONES, 5X7 MOVWF PORTD ;ENVIAMOS AL PUERTO B CALL ENABLE RETURN DISPLAY_ON MOVLW b'00001100' ;ENCENDEMOS LCD CON DESPLEGADOR ENCENDIDO, CURSOR MOSTRADO Y PARPADEA MOVWF PORTD ;ENVIAMOS AL PUERTO B CALL ENABLE RETURN DISPLAY_CLEAR MOVLW b'00000001' ;LIMPIAMOS LCD MOVWF PORTD ;ENVIAMOS EL COMANDO POR EL PUERTO B CALL ENABLE RETURN ENTRY_MODE_SET MOVLW b'00000110' ;CURSOR SE DEZPLAZA A LA DERECHA MOVWF PORTD ;ENVIAMOS EL COMANDO POR EL PUERTO B CALL ENABLE RETURN ENABLE BSF PORTC,5 CALL RETARDO BCF PORTC,5 CALL RETARDO RETURN ;ENABLE A ALTO ;ENABLE A BAJO

escribir BSF PORTC,7 ;RS A ALTO MOVWF PORTD ;MANDA W A PORTB CALL ENABLE CALL RETARDO BCF PORTC,7 ;RS A BAJO

CALL RETARDO RETURN BIN_BCD clrf BCD_Centenas clrf BCD_Decenas movwf BCD_Unidades BCD_Resta10 movlw d'10' subwf BCD_Unidades,W btfss STATUS,C goto BIN_BCD_Fin BCD_IncrementaDecenas movwf BCD_Unidades incf BCD_Decenas,F movlw d'10' subwf BCD_Decenas,W btfss STATUS,C goto BCD_Resta10 BCD_IncrementaCentenas clrf BCD_Decenas incf BCD_Centenas,F goto BCD_Resta10 BIN_BCD_Fin swapf BCD_Decenas,W addwf BCD_Unidades,W return tabla addwf PCL,F retlw 0x30 ;NUMERO 0 retlw 0x31 ;NUMERO 1 6 retlw 0x32 ;NUMERO 2 12 retlw 0x33 ;NUMERO 3 18 retlw 0x34 ;NUMERO 4 24 retlw 0x35 ;NUMERO 5 30 retlw 0x36 ;NUMERO 6 36 retlw 0x37 ;NUMERO 7 42 retlw 0x38 ;NUMERO 8 48 retlw 0x39 ;NUMERO 9 54 RETARDO MOVLW .250 ; ms MOVWF TMR0 CICLO2 BTFSS INTCON,TMR0IF GOTO CICLO2 BCF INTCON,TMR0IF RETURN END

SIMULACION

Implementacion:

Se arm el circuito en forma fsica, mediante un motor a pasos se llev a cabo la prctica que consista en hacer girar el motor y mediante el optointerruptor mandar la seal a un conversor LCD la cual nos mostraba la cantidad de vueltas que daba el motor, para implementarlo utilizamos un material redondo de plstico el cual fue insertado en la ranura del motor para que este girara y el permetro de este fue colocada en el optointerruptor, se comprobaron los resultados.

CONCLUSIONES El funcionamiento de un tacmetro es til en el manejo de mquinas en las que requieren de precisin en la cantidad de oscilaciones de un motor, puede notarse que no es difcil de construir mientras se tengan los conocimientos bsicos acerca de los motores y el funcionamiento del diodo 293D que son los principales componentes del circuito adems del Optointerruptor.

Bibliografa http://www.todorobot.com.ar/documentos/dc-motor.pdf http://www.itlalaguna.edu.mx/academico/carreras/electronica/opteca/OPTOPDF3_archiv os/UNIDAD3TEMA11.PDF

Vous aimerez peut-être aussi