



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
microsjsjjsjsjndiOABFIUPbefiuabsfiuabefyubashfbsaiuyfvuwaebfoyuawebfoaewbfoyeabwfuybweayfubeawyfbwyaebfyeawbfyeawbfyuawefuiyvewiyfuvawiuyfvaweyvfiuyawevfiuyeawvfiuyevwa
Tipo: Diapositivas
1 / 7
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Conocer la arquitectura de los microcontroladores PIC de 8bits, a través del uso de su conjunto de instrucciones en la implementación de sentencias de programación.
En esta practica desarrollaremos un programa sencillo para entender los conjuntos de instrucciones del PIC 16F84A y aprenderemos a usar las instrucciones aritméticas y lógicas junto con los operadores de relación, multiplicación y división, también implementaremos las estructuras para realizar ciclos.
Para entender mejor la practica necesitamos tener a la mano el Data Sheet del microcontrolador para saber que significa cada instrucción, por ejemplo: También demos saber que: Bit.- Es unidad mínima de información, que puede tener solo dos valores (cero o uno). Como funcionan las compuertas and, or y xor.
Aquí podemos ver como ya se realizó la suma (3+15=18). También podemos ver las etiquetas A(and) y OR, como ya están guardados los datos en las direcciones ope1 y ope2 entonces solo necesitamos mover dato2 a w y realizar las respectivas operaciones. Ya aquí se ve como ya se guardó el resultado de la suma en la dirección 0C (18), and que con su tabla de verdad dice que la salida es 1 si A y B son 1 (3) y or que dice que la salida será 0 si A y B son 0 (15) y los guardo en las direcciones de cada operación. En esta otra se ve los resultados de xor que su salida será 0 si A y B son iguales (12) y resta (15- 3=12). Utilizo la resta para poder saber los operadores de relación y lo guardo en resul para que este sea modificado. En esta imagen se ve como se realiza la operación para saber la
relación de los números. Cuando una operación se realiza STATUS cambia sus bits; en el caso de la resta STATUS puede variar el C(Bit 0), DC(Bit 1) y Z(Bit 2). Para cuando el resultado de la resta es 0 entonces Z=1 y C=1 (dato1=dato2). Cuando el resultado es positivo entonces Z=0 y C=1 (dato1>dato2). Y cuando el resultado es negativo entonces Z=0 y C=0 (dato1<dato2). btfss f,b. Salta si el bit “b” del “f” es 1. Sabemos que la resta 15-3= entonces STATUS Z=0 y C=1. Al llegar a la etiqueta igual como el Z=0 entonces no salta y se va a la etiqueta mayor, ahora lo hacemos con el bit 0 en este caso C=1 entonces salta y procede a colocar 1 o 0 en el resultado. En esta imagen se muestra la multiplicación y la división. Para la multiplicación se inicializa el contador con cualquiera de los dos datos que serán las repeticiones que se sumara el otro numero consigo mismo. El ciclo se para cuando el contador se hace 0 con ayuda del decfsz que disminuye contador de 1 en 1. Se puede ver que ya se sumo 1 vez por que el contador marca un 15 y el contador ya se le resto 1(3-1=2).
Cuando el resultado sea 0 entonces salta a la etiqueta decr y se ve el resultado de la división (15-3-3-3-3-3=0, 5) Por último, vemos los ciclos descendente y ascendente. Para el ciclo descendente se tiene que inicializar un contador en este caso con 10. Este se va disminuyendo y regresa a con goto a decre hasta llegar a 0 y pasa la etiqueta incr. Para el ciclo ascendente se le da el valor con el que va a iniciar en este caso 5. Entonces va a ir aumentando hasta llegar en este caso a 10. Con ayuda de la resta y btfss vamos a saber si los números son iguales con Z=1. Y al terminar vuelve al inicio.
Con los resultados obtenidos podemos tener ya una idea clara del funcionamiento de las instrucciones del microcontrolador y entendimos como influyen los cambios en STATUS. Lo que nosotros hicimos fue realizar todas las operaciones para los mismos datos, también se podría realizar solo una operación y mandarla a una misma salida, pero se tendría que implementar buses y conceptos que se verán más adelante.