Está en la página 1de 6

1

Universidad Pedagógica y Tecnológica de Colombia. Acevedo, Benítez. manejo básico de set de instrucciones

MANEJO BÁSICO DE SET DE INSTRUCCIONES


Yurley Acevedo Perez 201411382
Eddy Sebastián Benítez Zabala 201322120
Universidad Pedagógica y Tecnológica de Colombia.

Resumen — El presente trabajo tiene como fin el manejo del set de


instrucciones, el cual define las operaciones que puede realizar el
microcontrolador, en este caso será el PIC16F877A, también se
llevará a cabo la implementación de diversos problemas,
relacionados con diferentes variables como el sonido, problemas
mecánicos y ópticos, con la ayuda del editor MPLAB, esto con el
fin de familiarizarnos con el microcontrolador, con la ayuda del
software PROTEUS, se visualizó en simulación el montaje
requerido para cada problema corroborando funcionamiento.
Palabras clave: Microcontrolador, Set de instrucciones.

I. INTRODUCCION

Los microcontroladores están presentes en la mayoría de las


cosas de la vida diaria. Se pueden encontrar controlando el
funcionamiento de los computadores, en los teléfonos y en los
diferentes dispositivos electrónico. El número de productos
que funcionan en base a uno o varios microcontroladores El pickt 3 detecta automáticamente el microcontrolador pic
aumenta de forma exponencial. No es aventurado pronosticar que se esté usando, para cargar el programa hay que ir a FILE
que en el siglo xxi habrá pocos elementos que carezcan de luego a IMPORT HEX y en la ventana que se abre buscar la
microcontrolador. Un microcontrolador es un circuito carpeta donde se ha guardado el programa que se quiere cargar
integrado programable que contiene todos los componentes de al PIC que será el programa.hex al cual se le dará doble click
un computador. Se emplea para controlar el funcionamiento de luego la dirección de la carpeta aparecerá dentro de SOURCE,
una tarea determinada y, debido a su reducido tamaño, suele ir se entiende que al preparar el programa se lo hizo para el pic
incorporado en el propio dispositivo al que gobierna. que esté conectado al pickit 3.
Para agragar un programa será necesario un programador de Una vez que ya se ubicó el programa se presiona sobre
microcontroladores PIC, en este caso se usará es WRITE, en ese momento el pickit 3 procederá a programar el
programador PICKit 3, que  es fabricado por MICROCHIP, microcontrolador PIC, si todo es correcto en el rectángulo
este programador se puede conectar directamente al ordenador verde se observará que aparece Programming Successful en
mediante un cable USB, el software necesario para el ese momento el PIC ya estará programado.
programador PICKit  3.

El programador PICKit 3 trae un conector de 6 pines de los II. MARCO TEORICO
cuales se utilizan solo los 5 primeros pines cuya enumeración Se denomina microcontrolador a un dispositivo programable
van de derecha a izquierda, estos tienen nombres especiales capaz de realizar diferentes actividades que requieran del
y deben conectarse a los pines de los procesamiento de datos digitales y
microcontroladores PIC de tal forma que los nombres de los del control y comunicación digital de diferentes dispositivos.
pines del microcontrolador coincidan con los nombres de los Los microcontroladores poseen una memoria interna que
pines del Pickit 3, el nombre de los pines de conexión se almacena dos tipos de datos; las instrucciones, que
puede ver en la siguiente imagen: corresponden al programa que se ejecuta, y los registros, es
decir, los datos que el usuario maneja, así como registros
especiales para el control de las diferentes funciones del
microcontrolador.
2
Universidad Pedagógica y Tecnológica de Colombia. Acevedo, Benítez. manejo básico de set de instrucciones

Los microcontroladores se programan en Assembler y cada


microcontrolador varía su conjunto de instrucciones de
acuerdo a su fabricante y modelo. De acuerdo al número de
instrucciones que el microcontrolador maneja se le denomina
de arquitectura RISC (reducido) o CISC (complejo).
Los microcontroladores poseen principalmente una ALU
(Unidad Lógico Aritmética), memoria del programa, memoria
de registros, y pines I/O (entrada y/0 salida). La ALU es la
encargada de procesar los datos dependiendo de las
instrucciones que se ejecuten (ADD, OR, AND), mientras que
los pines son los que se encargan de comunicar al
microcontrolador con el medio externo; la función de los pines
puede ser de transmisión de datos, alimentación de corriente
para l funcionamiento de este o pines de control especifico.
En este proyecto se utilizó el PIC 16F877. Este
microcontrolador es fabricado por MicroChip familia a la cual
se le denomina PIC. El modelo 16F877 posee varias
características que hacen a este microcontrolador un
Figura 1. Hardware necesario para la práctica.
dispositivo muy versátil, eficiente y práctico para ser
empleado en la aplicación que posteorimente será detallada.
En la figura 1, las salidas Mot1, Mot2, Mot3 y Mot4
Algunas de estas características se muestran a continuación:
comandan un puente H o a un grupo de transistores que dan
Soporta modo de comunicación serial, posee dos pines para
energía a las bobinas de un motor paso a paso unipolar (se
ello.
recomienda usar un motor unipolar, pero también puede ser
Amplia memoria para datos y programa.
bipolar, con lo que la configuración de transistores cambia); el
Memoria reprogramable: La memoria en este PIC es la que se
esquema para un motor unipolar aparece en la figura 2.
denomina FLASH; este tipo de memoria se puede borrar
electrónicamente (esto corresponde a la "F" en el modelo).
Set de instrucciones reducido (tipo RISC), pero con las
instrucciones necesarias para facilitar su manejo.
III. PROCEDIMIENTO
Labor 1: Montaje del hardware necesario para la
actividad de laboratorio.

Para el desarrollo de la práctica se debe construir el circuito


que aparece en la figura 1, a partir de este sistema, se deben
elaborar diferentes códigos fuente que permitan cargar al Figura 2. Etapa de potencia sugerida para motor paso a paso.
microcontrolador el firmware adecuado para instrumentalizar
las labores propuestas. El número de pasos por vuelta y el voltaje de alimentación de
las bobinas del motor paso a paso es libre, en dependencia de
la disponibilidad de elementos con que cuente cada grupo.
Asimismo, en la figura 3, aparece el esquema de un sistema de
audio, que permite al microcontrolador generar indicaciones
acústicas para el usuario del sistema.
3
Universidad Pedagógica y Tecnológica de Colombia. Acevedo, Benítez. manejo básico de set de instrucciones

Se tiene la rutina de girar a la derecha, cada dos o tres


instrucciones se resetea el watch dog timer
Hasta completar 50 ciclos del programa, ya que el motor paso
a paso implementado es de 1.8 grados por paso
360
=200 pasos
1.8
Los 200 pasos se dividen en 4 que son los pasos que se dan
por cada vez que se ejecuta el programa y multiplicado por los
50 ciclos dan los 200 pasos del motor para completar una
vuelta
Para eso está el contador este va decrementando cada vez que
hace un ciclo de programa.
Una vez hace los 50 ciclos entonces pasa a un bucle donde no
Figura 3. Etapa de potencia sugerida para señalización acústica. se hace reset del watch dog timer esperando a que este se
active 2.3 segundos después de entrar a ese bucle y cuando se
Implementación física resetea empieza de nuevo el programa, el watch dog viene por
defecto con el máximo valor del preescaler.

Labor 3: Secuencia programada para motor paso a paso.

Un motor paso a paso debe, de forma indefinida, dar dos


vueltas en sentido horario y una vuelta en sentido anti horario
(secuencia 1); en el momento en que se oprima cualquier
pulsador, la secuencia debe cambiar a tres vueltas en sentido
anti horario y media vuelta en sentido horario (secuencia 2).
En el display, debe aparecer en base hexadecimal, el número
de ciclos que ha completado el motor para el caso de la
secuencia 1 y en los LED debe indicarse en número total de
ciclos que ha
completado el motor (la suma de las veces que se ha
completado la secuencia 1 y la secuencia 2); en el momento en
que se complete cualquiera de las dos secuencias, el parlante
Figura 4. Hardware implementado en la práctica. debe emitir una indicación acústica.

A partir de este hardware, se debe construir código fuente que Implementación


permita generar firmware para las siguientes labores. Se parte de las rutinas de giro horario y giro anti horario,
entonces como se tiene 50 ciclos, para cualquiera es una
Labor 2: Motor paso a paso y sistema watchdog timer vuelta, se hace una rutina para cada lado a escoger para el lado
(WDT). que escoja entonces se realizan otras dos rutinas.
Se requiere construir un sistema que en el momento en que se Para la secuencia 1, que debe dar dos vueltas en sentido
active, haga que el motor paso a paso de una vuelta en sentido horario y una en sentido antihorario.
horario, posterior a este evento, el microcontrolador debe Y para la secuencia 2 para 3 vueltas en sentido anti horario y
ingresar en un bucle infinito; acto seguido, debe ocurrir un media vuelta en sentido horario
reset debido al WDT, de este modo, el motor debe completar Para la secuencia 1 se realiza un contador que dice 100 que
una nueva vuelta y reingresar nuevamente al mencionado son los ciclos de la rutina horario para dos vueltas y el otro 50
bucle, el ciclo se repetirá indefinidamente. para la vuelta en sentido anti horario
Para la secuencia 2 se realiza un contador con 150 y el otro
Implementación con 25
Como se requiere saber cuándo fue pulsado el botón para
Se realizó una rutina que permite organizar los bits para que el cambio de secuencia se utiliza la rutina de retardo, Si por el
motor gire a la derecha y otra para que gire a la izquierda puerto h si hay una tecla pulsada se activa un registro que se
llama flag.
4
Universidad Pedagógica y Tecnológica de Colombia. Acevedo, Benítez. manejo básico de set de instrucciones

Con la etiqueta para cada secuencia en el caso de la secuencia


sec_a pregunta por la bandera y si esa se ha activado pasa a la Se requiere que en el display aparezcan las letras
sec_b de lo contrario se queda en la a correspondientes al primer nombre de los integrantes del
En la sec_a lleva un contador así como la b para ir mostrando equipo de trabajo, de este modo, se deben diseñar las letras
los datos en el led y en el display correspondientes para que puedan ser visualizadas en siete
segmentos; la secuencia se debe repetir de forma indefinida.

Labor 4: Control de velocidad y de sentido de giro de Implementación


motor paso a paso.
Se requiere construir un sistema que haga girar un motor paso Se tiene una rutina para cada nombre la cual lleva los bits
a paso en sentido horario y en sentido anti horario, también se necesarios para lograr encender los segmentos en el display
requiere controlar la velocidad de este, en sentido horario y con la letra correspondiente para cada integrante, se va
anti horario; de esta forma, se usaran tres pulsadores, el A, el moviendo al puerto mediante el llamado de la etiqueta
B y el C; cada vez que se oprima el pulsador A, debe cambiar correspondiente para cada nombre en este caso (YURLEY,
el sentido del giro, cada vez que se oprima el pulsador B, la EDDY) separado de un símbolo raya al piso, cada vez que
velocidad debe bajar un poco y cada vez que se oprima el pasa un ciclo del programa se activa una rutina para el sonido.
pulsador C, la velocidad debe aumentar un poco; en el display
se debe indicar un número relativo a la velocidad a la que gira El display siete segmentos implementado es de tipo de cátodo
el motor; finalmente, mediante dos led se debe indicar el común, todos los cátodos de los leds o segmentos están unidos
sentido del giro (horario o anti horario); adicionalmente, cada internamente a una patilla común que debe ser conectada a
vez que se pulse una tecla de comando, se debe dar una potencial negativo (nivel “0”).
indicación acústica.

Implementación

El programa ejecuta moviendo el motor en sentido horario,


luego revisa el estado lógico del pin 0 del puerto b para saber
si tiene que saltar a otra rutina del código para cambiar el
sentido, se llama una rutina de retardo para no hacer el giro
demasiado rápido.
También revisa los estados lógicos de los pines 1 y 2 del Figura 5.Display 7 segmentos cátodo común.
mismo puerto para cambiar el tiempo de retardo entre paso y PRIMER ESTUDIANTE
paso y así controlar la velocidad del motor. YURLEY
B'01101110' ;Y
Labor 5: Cuenta en diferentes bases de numeración. B'00111110' ;U
B'00110001' ;R
Se debe llevar un conteo de un solo digito en diferentes bases, B'00111000' ;L
desde base binaria hasta base 16, este conteo será configurado B'01111001' ;E
con dos pulsadores, el A y el B; de este modo, cuando se B'01101110' ;Y
oprima el A, se aumentará la base del conteo y cuando se
oprima el B, disminuirá la base en que se está contando; como SEGUNDO ESTUDIANTE
es obvio, el valor de la cuenta debe aparecer en el display. EDDY
Finalmente, cada vez que se oprima una tecla, se debe generar B'01111001' ;E
una indicación acústica. B'01011110' ;D
B'00000000' ; ESPACIO ENTRE D
Implementación B'01011110' ;D
B'01101110' ;Y
Se implementó un contador este se pone en un bucle infinito,
y por medio de 2 teclas se entra a disparar una interrupción Labor 7. Secuenciador de luces.
que puede modificar el tope o el máximo de la cuenta, se para
el mayor o para el menor, para la realización del conteo se lee Se requiere un secuenciador de luces de mínimo 8 secuencias
una tabla con los bits para mostrarlos en un display 7seg. luminosas, estas serán mostradas en los LED y serán
Labor 6. Caracteres alfanuméricos en display. intercambiadas mediante los pulsadores, de la forma que se
5
Universidad Pedagógica y Tecnológica de Colombia. Acevedo, Benítez. manejo básico de set de instrucciones

considere más conveniente; adicionalmente, en el display debe


aparecer el número de la secuencia que se está ejecutando, una
de las ocho secuencias debe ser un contador Johnson. Se
espera que sean creativos en el diseño de estas secuencias
(tomar como referencia las luces navideñas).
Implementación

En el código se establecieron un total de 8 rutinas que ejecutan


cada una, alguna secuencia de luces específica, con la
instrucción BTFSC se pregunta cuál de los pulsadores del
puerto B está siendo presionado, dependiendo de eso, se llama Figura 6 . Distribución de tonos para cada pulsador.
a alguna de las rutinas para ejecutar la secuencia indicada, al Implementación
terminarse la secuencia se regresa a la parte superior del Todo el programa funciona dentro de una interrupción, lo que
código para volver a preguntar cuál de los pulsadores está se hace es generar una señal cuadrada con la ayuda del TMR0,
siendo presionado el TMR0 es un contador que va a contar de 0 hasta 255; luego
se desborda y reinicia el conteo, cuando se pulsa una tecla lo
Labor 8. Generador de melodías. que se hace es variar el valor inicial del contador para que no
Se requiere un sistema que genere los tonos necesarios para inicie en 0 sino en otro valor; esto provoca un cambio en el
construir dos melodías, de esta forma, el microcontrolador ancho de los pulsos y por consiguiente un variación en la
debe generar una secuencia de tonos que den por resultado dos frecuencia de la señal, esas frecuencias son las que se
melodías fácilmente identificables; al oprimir un pulsador, se escuchan a través del buzzer.
debe reproducir la melodía A y al pulsar otro, se debe Labor 10. Reloj mecánico-digital.
reproducir la melodía B; asimismo, en el display debe aparecer
un símbolo que de la apariencia de un disco que gira cada vez Considere que desea construir un reloj que posea una
que hay una reproducción en curso, y que esté detenido indicación de segundos mediante el giro del motor paso a
cuando la reproducción del sonido termine. paso, de esta forma, cada vez que pase un minuto, el motor
paso a paso debe
Implementación completar una vuelta en sentido horario (debe adherirle una
aguja que haga las veces de segundero).
Se lee una tabla para la cual se asigna a cada nota un byte Adicionalmente, los minutos transcurridos deben aparecer en
diferente, el código lee dato por dato de la tabla y dependiendo formato BCD en los LED con que cuenta el sistema;
del byte salta hacia una rutina que está diseñada para generar finalmente, debe ser posible adelantar o atrasar la hora
una frecuencia que corresponde a la señal sonora de esa misma indicada, mediante los pulsadores de los que se dispone
nota. Para este caso las melodías implementadas son:
Para la melodía 1 Implementación
Para la melodía 2
IV. CONCLUSIONES
Labor 9. Piano electrónico.
En base a la información anterior, el análisis de los datos, y los
Considere que cada pulsador del sistema se emplea para resultados obtenidos en la realización de esta guía de
generar una nota musical que es reproducida por el parlante, la laboratorio, se puede concluir que:
distribución de tonos sugerida aparece en la figura 4; de este
modo, cada vez que se pulsa una tecla, aparece una respuesta  El microcontrolador PIC16F877A es un dispositivo
acústica correspondiente al tono asignado a cada pulsador. electrónico que permite controlar, programar y
sincronizar diferentes aplicaciones electrónicas, en un
tiempo corto, facilitando su implementación, para
este y otras familias están disponibles diferentes
softwares de ayuda en la programación del
microcontrolador como en este caso el MPLAB ya
que este software tiene una interfaz, cómoda y fácil
de utilizar.
 Todo microcontrolador requiere de un circuito que le
indique a qué velocidad debe trabajar, la elección del
6
Universidad Pedagógica y Tecnológica de Colombia. Acevedo, Benítez. manejo básico de set de instrucciones

oscilador es fundamental para el buen [1]M. dannyherrera_s, "Descripción del PIC 16F877 -
funcionamiento del programa, tanto en físico como Monografias.com", Monografias.com, 2019. [Online].
en la configuración al momento de realizar el Available:
proyecto en MPLAB. https://www.monografias.com/trabajos18/descripcion-
pic/descripcion-pic.shtml. [Accessed: 31- May- 2019].
REFERENCIA

También podría gustarte