Reporte de práctica de un control de motor a pasos con el PIC18F4550

INSTITUTO TECNOLOGICO DE TOLUCA INGENIERÍA ELECTRÓNICA “TECLADO MATRICIAL” REPORTE PPRÁCTICA PRESENTA: LUIS VIDAL AL

Views 119 Downloads 0 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO TECNOLOGICO DE TOLUCA

INGENIERÍA ELECTRÓNICA

“TECLADO MATRICIAL”

REPORTE PPRÁCTICA

PRESENTA: LUIS VIDAL ALVA DE LA CRUZ RACIEL ANGELES SALAZAR FRANCISCO RIVERA ALBA

METEPEC, ESTADO DE MÉXICO, 9 DE SEPTIEMBRE DEL 2016

INTRODUCCION Los microcontroladores son dispositivos electrónicos capaces de llevar a cabo procesos lógicos esto gracias a su estructura interna puesto que posee en su interior las tres unidades funcionales de una computadora: CPU, memoria y unidades de E/S. Programados en lenguajes de alto nivel como: programación en c, c++, ensamblador, etc. En un inicio los microcontroladores adoptaron una arquitectura Von Newmann en la cual la unidad central de procesamiento (CPU) está conectada a una memoria única donde se guardan las instrucciones del programa y de los datos. Actualmente muchos microcontroladores utilizan esta arquitectura, pero la arquitectura Harvard la cual tiene la unidad central de procesamiento (CPU) conectada a dos memorias por medio de dos buses diferentes. En todo proceso de programación se requiere realizar constantemente operaciones, asignación de valores a registros y extraer valores existentes en otros registros, para transferirlos y/o procesarlos con otros datos a este proceso se le conoce como direccionamiento. El microcontrolador sigue la lógica del programa almacenado en memoria por consiguiente requiere memoria de programa, memoria de datos y registros internos. La memoria del programa mantiene la secuencia de instrucciones a ejecutar, la memoria de datos conocida como RAM es la unidad de almacenamiento temporal. El dispositivo dispone de un cierto número de bits para configurarse, estos bits están disponibles en la memoria EEPROM cuando este se programa, pero no son accesibles durante el funcionamiento normal del microcontrolador. Las características que se programan en los bits de configuración son las siguientes:  El tipo de oscilador  On-off del perro guardián  Protección de la memoria de programa  Protección de la memoria EEPROM  Características del RESET y la alimentación del dispositivo

Los puertos de entrada/salida son los medios con los cuales el microcontrolador tiene la capacidad de realizar interfaces con el entorno estos se pueden conectar desde dispositivos simples como switches y teclados. Uno de los componentes fundamentales de la CPU es la unidad aritmética y lógica (ALU) y como su nombre lo indica realiza operaciones aritméticas y lógicas previstas en el repertorio de instrucciones.

Materiales -

Microcontrolador PIC 18F4550 Teclado matricial 4x4 Display de 7 segmentos (catodo común) Resistencias de 330 Ω Protoboard Fuente de alimentación Software Proteus

*Nota: Es recomendable trabajar con ese valor de resistencia debido a que un valor alto demandaría más corriente al circuito y el funcionamiento del PIC podría ser inestable.

Desarrollo Se plantea de manera general la estructura del programa a realizar mediante diagrama de flujo como se muestra a continuación: Inicio

Configuraciones µC Inicio

Imprime valor cargado

Configuración puertos

Envía 1

Pines de entrada

No

si Testeo de bit

Carga valor de teclado

Programa El programa consiste en desplegar un numero hexadecimal de 0 a F a través de un display de 7 segmentos conectado al puerto A del microcontrolador, el número se mostrará según el botón presionado de un teclado matricial el cual estará conectado al puerto D, para que esto sea posible es necesario trabajar con coordenadas, dividiendo así el puerto D en 2 partes. Puesto que el puerto D trabaja con 8 bits, podemos usar 4 bits para entrada y 4 para salida, de esta forma podemos trabajar las coordenadas por fila/columna, como se muestra en la siguiente tabla.

Entradas\Salidas BIT 4 BIT 5 BIT 6 BIT 3 NUMERO 1 NUMERO 2 NUMERO 3 BIT 2 NUMERO 4 NUMERO 5 NUMERO 6 BIT 1 NUMERO 7 NUMERO 8 NUMERO 9 BIT 0 LETRA E NUMERO 0 LETRA F TABLA 1. Representación de las coordenadas del teclado matricial

BIT 7 LETRA A LETRA B LETRA C LETRA D

Código

-

Se declara el microcontrolador que se va a utilizar y después se llaman sus librerías. list p=18f4550 #include

-

Se hacen las configuraciones de las instrucciones de propósito específico. CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG CONFIG

-

FOSC=INTOSCIO_EC PWRT=ON BOR=OFF WDT=OFF LVP=OFF PBADEN=OFF CP0=OFF CP1=OFF CP2=OFF CP3=OFF CPB=OFF CPD=OFF MCLRE=OFF

Inicio de programa, y configuraciones de puertos de salida y de entrada; como el microcontrolador contiene diferentes funciones en los puertos a utilizar se

realizaran las configuraciones necesarias como son deshabilitar los comparadores y tener solo entradas digitales como se describe a continuación: ORG MOVLW MOVWF MOVLW MOVWF CLRF MOVLW MOVWF CLRF

-

00H 0FH ADCON1 0FH CMCON TRISA 0F0H TRISD PORTA

; ORIGEN DEL PROGRAMA ;DESABILITA CANALES ANALÓGICOS ;DESHABILITA MODO DE COMPARADORES

;SE CONFIGURAN 4 BITS DE ENTRADA Y 4 DE SALIDA

Código de verificación de bit y manda una salida si se cumple la condición, manda un bit y lee los siguientes cuatro, si alguno de los bits recibe un estado alto del bit, el microcontrolador mandará una salida especificada.

LINEA4 CLRF BSF BTFSC GOTO BTFSC GOTO BTFSC GOTO BTFSC GOTO

PORTD PORTD,0 PORTD,7 LETRAA PORTD,6 NUM3 PORTD,5 NUM2 PORTD,4 NUM1

;ELIMINA POSIBLES ENTRADAS Y SALIDAS ACTIVOS ;PONE EN ESTADO ALTO EL BIT 0 DEL PUERTO D ;VERIFICA SI SE ESTA RECIBIENDO UN ESTADO ALTO EN EL BIT 7 ;SI ES ESTADO BAJO, SALTA LA LINEA, SI NO, LEÉ LA SIGUENTE LINEA ;VERIFICA SI SE ESTÁ RECIBIENDO UN ESTADO BAJO EN EL BIT 6 ;SI ES ESTADO BAJO, SALTA LA LINEA, SI NO, LEÉ LA SIGUIENTE LINEA ;SE REPITE EL MISMO PROCESO HASTA EL BIT 4 DEL PUERTO D

BCF BSF BTFSC GOTO BTFSC GOTO BTFSC GOTO BTFSC GOTO

PORTD,0 PORTD,1 PORTD,7 LETRAB PORTD,6 NUM6 PORTD,5 NUM5 PORTD,4 NUM4

;PONE EN ESTADO BAJO EL BIT 0 DEL PUERTO D ;Y PONE EN ESTADO ALTO EL BIT 1 DEL PUERTO D ;REPITE LAS VERIFICACIONES DEL LOS BIT 7 AL 4

BCF BSF BTFSC GOTO BTFSC GOTO BTFSC GOTO

PORTD,1 PORTD,2 PORTD,7 LETRAC PORTD,6 NUM9 PORTD,5 NUM8

;PONE EN ESTADO BAJO EL BIT 1 DEL PUERTO D ;Y PONE EN ESTADO ALTO EL BIT 2 DEL PUERTO D ;REPITE LAS VERIFICACIONES DE LOS BIT 7 AL 4

LINEA3

LINEA2

BTFSC GOTO

PORTD,4 NUM7

BCF BSF BTFSC GOTO BTFSC GOTO BTFSC GOTO BTFSC GOTO GOTO

PORTD,2 PORTD,3 PORTD,7 LETRAD PORTD,6 LETRAE PORTD,5 NUM0 PORTD,4 LETRAF LINEA4

LINEA1

-

;PONE EN ESTADO BAJO EL BIT 2 DEL PUERTO D ;Y PONE EN ESTADO ALTO EL BIT 3 DEL PUERTO D ;REPITE LAS VERIFICACIONES DE LOS BIT 7 AL 4

;REGRESA AL PRINCIPIO DE LAS VERIFICACIONES PARA REINICIAR ;LAS VERIFICACIONES

Salidas que se Mandan al Puerto A si es que se cumple la condición por cada bit de entrada y de salida.

NUM0 MOVLW B'0111111' MOVWF PORTA GOTO LINEA4

;MANDA LA COMBINACIÓN BINARIA QUE REPRESENTA AL CERO EN UN ;DISPLAY DE 7 SEGMENTOS POR EL PUERTO A ;REGRESA AL PRINCIPIO DE LA VERIFICACIÓN DE BITS

MOVLW B'0000110' MOVWF PORTA GOTO LINEA4

;MANDA LA COMBINACIÓN BINARIA QUE REPRESENTA AL 1

MOVLW B'1011011' MOVWF PORTA GOTO LINEA4

; DOS

MOVLW B'1001111' MOVWF PORTA GOTO LINEA4

;TRES

MOVLW B'1100110' MOVWF PORTA GOTO LINEA4

;CUATRO

MOVLW B'1101101' MOVWF PORTA GOTO LINEA4

;CINCO

MOVLW B'1111101' MOVWF PORTA GOTO LINEA4

;SEIS

MOVLW B'0000111' MOVWF PORTA

;SIETE

NUM1

NUM2

NUM3

NUM4

NUM5

NUM6

NUM7

GOTO

LINEA4

NUM8 MOVLW B'1111111' MOVWF PORTA GOTO LINEA4

;OCHO

MOVLW B'1101111' MOVWF PORTA GOTO LINEA4

;NUEVE

MOVLW B'1110111' MOVWF PORTA GOTO LINEA4

;DIEZ, EN HEXADECIMAL ES A

MOVLW B'1111100' MOVWF PORTA GOTO LINEA4

;ONCE EN HEXADECIMAL ES B

MOVLW B'0111001' MOVWF PORTA GOTO LINEA4

;DOCE EN HEXADECIMAL ES C

MOVLW B'1011110' MOVWF PORTA GOTO LINEA4

;TRECE EN HEXADECIMAL ES D

MOVLW B'1111001' MOVWF PORTA GOTO LINEA4

;CATORCE EN HEXADECIMAL ES E

MOVLW B'1110001' MOVWF PORTA GOTO LINEA4

;QUINCE EN HEXADECIMAL ES F

END

;FIN DEL PROGRAMA

NUM9

LETRAA

LETRAB

LETRAC

LETRAD

LETRAE

LETRAF

Resultados Dentro de los resultados previos se realizaron pruebas tales como la simulación de la practica a realizar esto para poder corroborar que el código realizado funcionaba de manera correcta

se simulo con el software proteus; realizando las conexiones necesarias en la interfaz y cargando el código realizado se corroboro que funcionaba correctamente. Las simulaciones en el software se muestran en la figura1 y 2.

Figura1. Conexión al µC de teclado matricial y display 7 seg.

Figura2. Simulación ejecutando el código programado.

Resultados obtenidos en el laboratorio una vez realizada la simulación se realizó el circuito físico utilizando una tablilla de pruebas como se muestra en la Figura 3.

Figura 3. Circuito ensamblado en protoboard

Al obtener el circuito ensamblado se realizaron las acciones correspondientes para obtener mostrar en el display el valor de la tecla que se oprimiera como se muestra en la Figura 4 y 5.

Figura 4. Muestra como al oprimir el valor del teclado se muestra en el display de 7 segmentos.

Figura 5. Muestra el un numero diferente seccionado mediante el teclado matricial.

Figura 7. Se presiona la tecla C, el programa lee el código de comparación a velocidad máquina por lo que es posible que solo en un instante pueda detectar el pulso, hace la comparación correspondiente y por consiguiente muestra el valor indicado a dicha comparación.

En esta imagen se muestra que no es necesario mantener presionado el botón para que la comparación se lleve a cabo, solo se presiona una vez y el programa lo detecta sin problemas en cuestión de ms.

Comentarios En el apartado de los materiales se anota que fue necesario usar valores de resistencias menores o iguales a 330 Ohms para el teclado matricial puesto que, en nuestro caso, el microcontrolador parecía tener rebotes en las salidas y no hacia los cambios de salida con precisión, esto se debió a que previamente habíamos utilizado resistencias de 10K Ohms lo que provocaba que el circuito demandara más corriente de la necesaria y que posiblemente el microcontrolador se saturara. Posteriormente del cambio al valor adecuado de las resistencias, el microcontrolador funcionaba de forma más estable y desplegaba las salidas que se programaron según el botón presionado en el teclado matricial sin problemas. El funcionamiento es simple pero sus aplicaciones podrían varíar puesto que se podría usar un teclado matricial de NxM, o manipular a otro dispositivo como motores o relevadores.

Referencias bibliográficas -

Microcontroladores Motorola-Freesclae: Programación, familias y sus distintas aplicaciones en la industria Juan Carlos Vesga Ferreira Primera Edición ©Alfaomega Grupo Editor, S.A. de C.V., México ©Freescale Semiconductor

-

-

Microcontroladores: Fundamentos y aplicaciones con PIC Fernando E. Valdés Pérez, Ramon Pallás Areny Primera Edición ©Alfaomega Grupo Editor, S.A. de C.V., México ©Freescale Semiconductor

-

Fundamentos de diseño lógico Charles H. Roth Jr. Quinta Edición ©International Thomson Editores, S.A. de C.V. ©Thomson Learning™