Parte 3 – Introducción a la programación en assembler con el PIC16F877A
Tiempo total: 8 días con 10:40:25 hrs
La instrucción que se utiliza para correr un bit en un registro es RLF, básicamente se utiliza para poder encender consecutivamente los leds conectados al puerto B. A continuación se presenta el código para realizar este ejemplo, al mismo tiempo se explican los componentes que Proteus ISIS necesita para correr el ejemplo en el simulador.
Código ejemplo
El ejemplo es similar a la publicación anterior, pero en este caso los leds se conectaron al puerto B. La instrucción RLF corre un bit de derecha a izquierda, en este caso el bit que se agrega en el lado derecho viene de la bandera C, que es el bit 0 del registro STATUS, ubicado en el banco 0.
La instrucción BCF STATUS,0 sirve para que el bit que se va agregar sea 0 y no interfiera con el encendido sucesivo de leds; caso contrario, se observaran dos leds que se encenderán consecutivamente.
Circuito en Proteus
El objetivo es cargar el código anterior en el PIC16F877A y correr el ejemplo; como se ha dado cuenta el lector, en el simulador no es necesario utilizar la fuente de energía, la tierra y el cristal con sus capacitores para este ejemplo.
Para agregar el PIC16F877A, selecciona el icono de Component mode, ahora presiona el icono de la P de Pick device, después debes de realizar la búsqueda con PIC16F877A y presionar Ok; para agregar el PIC al circuito, basta con seleccionarlo de la lista de dispositivos y dar un clic en el editor de dispositivos.
Para agregar los leds, en el cuadro de dialogo de Pick device es necesario buscarlo por su nombre RED-LED; estos leds utilizan una resistencia, para agregar una resistencia seleccionamos ahora la categoría Resistors en el cuadro de dialogo de Pick device, ahora en la parte inferior aparecerá una lista en la cual se debe de buscar la sub categoría Generic, los resultados listaran la resistencia con el nombre de RES.
Para agregar el terminal negativo, seleccionamos el icono de Terminal mode, ahora Ground.
Una vez armamos el circuito, al darle doble clic configuramos el PIC con la velocidad del cristal al mismo tiempo que cargamos el archivo HEX del programa compilado de ensamblador.
Las propiedades del led nos indicaran la resistencia a utilizar, en este caso la tensión del led es de 2.2V, la del PIC es de 5V y la corriente que pasa por el led es de 10mA; esto significa que debemos de utilizar una resistencia de 280ohms ((Vcc –Vd)/Id).
Por último, al correr el ejemplo observaremos el retardo de .19 segundos que se calculo en la parte 2 de la introducción.
Parte 4
En la siguiente parte se explicara cómo utilizar el Datasheet para entender las instrucciones y la asignación de valores a las variables del PIC16F877 antes de llamar alguna instrucción o asignar valores a otras variables; se utilizara el ejemplo del convertidor analógico digital CAD.
Para ver la parte 4, por favor sigue el siguiente enlace:
Parte 2
Para ver la parte 2, por favor sigue el siguiente enlace:
Referencias
[http://www.utp.edu.co/~eduque/arquitec/PIC16F877.pdf]
[http://perso.wanadoo.es/luis_ju/pic3/pic3_reg.html]
[http://www.circuitoselectronicos.org/2009/04/ejemplos-sencillos-para-el.html]
[http://micropic.galeon.com/instrucciones.htm#call]
[https://es.wikipedia.org/wiki/PIC16F87X]
[http://perso.wanadoo.es/luis_ju/pic/pic04.html]
[https://es.wikipedia.org/wiki/Se%C3%B1al_anal%C3%B3gica]
[https://www.youtube.com/watch?v=5xvxQvLghW0]
[https://www.youtube.com/watch?v=k3w2F857jq4]
[https://www.youtube.com/watch?v=iwGHgkpRUew]
[https://www.youtube.com/watch?v=O_6NIm6encw]
[https://www.youtube.com/watch?v=sEfSu9Szjv8]
[https://carlosalbertosainz.wordpress.com/2014/04/28/practica-4-manejo-del-convertidor-analogico-digital/]
[http://tutor.al-williams.com/pic-inst.html]
[http://www.circuitoselectronicos.org/2011/02/retardos-por-software-en-los.html]
[http://es.ncalculators.com/digital-computation/hex-decimal-converter.htm]
[http://es.ncalculators.com/digital-computation/binary-decimal-converter.htm]
[http://www.binaryhexconverter.com/hex-to-binary-converter]
[http://www.wolframalpha.com]
[http://www.todopic.com.ar/foros/index.php?topic=36505.0]
[http://www.solodrivers.com/manuales/programacion_ensamblador8]
[http://www.tutoelectro.com/tutoriales/electronica-basica/%C2%BFque-resistencia-utilizar-al-usar-un-led/]