Trabajo colaborativo 3 fisica electronica con los aportes completosDescripción completa
trabajo colaborativo paso 2 grupo 3
Descripción: INFERENCIA ESTADISTICA
Telematico colaborativo 2Descripción completa
quimica organica
algebra lineal
Descripción completa
lenguajes automatasDescripción completa
Descripción: Trabajo colaborativo 3
LABVIEW
En este trabajo se presenta el desarrollo de diferentes ejercicios que permitieron la aplicación de los conceptos estudiados en la unidad 3 del curso de ecuaciones diferenciales, en donde se logr...Full description
psicología de los grupos como parte de la psicología socialDescripción completa
lenguajes automatasFull description
Descripción: Ecuaciones diferenciales
Descripción: calculo diferencial
ing softwareDescripción completa
Otra manera de describir el enlace covalente en términos de la Mecánica Cuántica consiste en la teoría de los orbitales moleculares (OM). Según esta teoría, cuando los átomos interaccionan s…Descripción completa
Descripción completa
trabajo colaborativo
Descripción: trabajo colaborativo 2 calculo diferencial
Ingenieria Economica Taller fase 2
FASE 2 ANALISIS DE CIRCUITOSDescripción completa
SISTEMAS EMBEBIDOS COLABORATIVO 2 1
TRABAJO COLABORATIVO 2 SISTEMAS EMBEBIDOS GRUPO: 208006_3
TUTOR: OSCAR IVAN VALDERRAMA
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA NOVIEMBRE 2013
SISTEMAS EMBEBIDOS COLABORATIVO 2 2
INTRODUCCIÓN
Este trabajo nos permitió implementar los conocimientos adquiridos en la unidad 2, tenien teniendo do en cuenta cuenta que que para la creac creación ión de program programa a en lenguaj lenguaje e de bajo bajo nivel se requiere seguir cinco pasos: Diseño Diseño del algoritmo, codificación del mismo, su traducción a lenguaje máquina, la prueba del programa y la depuración. En la etapa de diseño se plantea el problema a resolver y se propone la mejor solución, creando diagramas esquemáticos utiliados para el mejor planteamiento de la solución. !a codificación del programa consiste en escribir el programa en alg"n lenguaje de programación #en este caso en ensamblador $%$&', tomando como base la solución solución propuesta propuesta en el paso anterio anterior. r. !a traducción traducción al lenguaj lenguaje e máquina máquina es la creación creación del programa objeto, objeto, esto es, el programa programa escrito escrito como una secuencia secuencia de ceros y unos que pueda ser interp interpret retado ado por el procesad procesador. or. !a prueba prueba del programa consiste en verificar que el programa funcione sin errores, o sea, que (aga lo que tiene que (acer. !a "ltima etapa es la eliminación de las fallas detectadas detectadas en el programa programa durante durante la fase de prueba. !a corrección corrección de una falla falla normalmente requiere la repetición de los pasos comenando desde el primero o el segundo. El lenguaje ) es denominado como un lenguaje lenguaje de nivel medio, ya que combina elementos de lenguajes de alto nivel #*ortran, +ascal, asic...' los más conocidos con el funcionalismo del lenguaje ensamblador
SISTEMAS EMBEBIDOS COLABORATIVO 2 3
INDICE
FASE 1 ASEMBLER COMO PROGRAMAR MICROCONTROLADORES…… MICROCONTROLADORES………………………..3 …………………..3 LOS REGISTROS……………… REGISTROS…………………………………………… ………………………………………………..6 …………………..6
*-E 2. /*01-E )/DE1-3/
PLANTEAMIENTO DE PRÁCTICA………………… PRÁCTICA………………………………………. ……………………. 10 *-E 4. +/5-6-)378 E8 ) CÓMO PROGRAMAR MICROCONTROLADORES MICROPROCESADORES EN C……………………………………………………………………………………..12 CREACIÓN DE PROECTOS EN C……………………………….………2! C……………………………….………2!
COMO PROGRAMAR MICROCONTROLADORES 9saremos el microcontrolador pic &f$;
evisar los pines del &f$;
3dentificación de pines RA0 # RA$
- es un puerto bidireccional. Eso quiere decir que puede ser configurado como entrada o como salida. El n"mero que (ay despu>s de - indica el n"mero de bit #% a ;'. +or tanto, tenemos un puerto bidireccional de ? bits donde cada bit puede ser configurado como entrada o como salida.
RB0 # RB!
es un segundo puerto bidireccional. e comporta e@actamente de la misma manera que -, e@cepto que este tiene $ bits
SISTEMAS EMBEBIDOS COLABORATIVO 2 5
VSS % VDD
Estos son los pins de alimentación. ADD es la alimentación positiva, y A es el negativo de la alimentación, o % Aoltios. !a tensión má@ima de alimentación que puedes utiliar son & Aoltios, y el mBnimo son 2 Aoltios.
OSC1&CL' IN % OSC2&CL'OUT
Estos pines son donde conectaremos el reloj e@terno, para que el microcontrolador disponga de alg"n tipo de temporiación.
MCLR
Este pin se utilia para borrar las posiciones de memoria dentro del +3) #p.ej. cuando quiero reprogramarlo'. Durante el funcionamiento normal está conectado a la alimentación positiva.
INT
Este es un pin de entrada que puede ser monitoriado. i el pin se pone a nivel alto, podemos (acer que el programa se reinicie, se pare o cualquier otra función de deseemos. 8o lo utiliaremos muc(o.
TOC'1
Esta es otra entrada de reloj, que opera con un temporiador interno. /pera aisladamente del reloj principal. De nuevo, este tampoco lo utiliaremos muc(o.
2.
SISTEMAS EMBEBIDOS COLABORATIVO 2 6
Esquema de cone@ión de voltage
!a lBnea de alimentación está puesta a & Aoltios, que es el má@imo voltaje para el +3). +uedes utiliar cualquier voltaje inferior, (asta un mBnimo de 2 Aoltios. )4 es conocido conocido como un condensador de bypass. bypass. 0odo lo que se (ace )4 es reducir el
SISTEMAS EMBEBIDOS COLABORATIVO 2 7
ruido de la lBnea de alimentación. es un cristal de ; 6<. +uedes utiliar un circuito ) #resistencia y condensador' # Nota de edición: crear enlace aquí ', ', pero el precio del cristal es insignificante, y es más estable. ) y )2 ayudan a reducir cual cualqu quie ierr desv desvia iaci ción ón en la oscil oscilac ació ión n cris crista tal,l, y a elim elimin inar ar cual cualqu quie ierr ruido ruido no deseado antes de que la señal llegue al +3). 0>cnicas para programar bien. •
•
•
i escribes unF #punto y coma' en cualquier punto de tu programa, el compilador ignorará cualquier cosa que (aya detrás de >l, (asta llegar al retorno retorno de carro. Esto significa significa que podemos añadir añadir comentarios a nuestro programa que nos recuerden que estábamos (aciendo en ese punto. +uedes asignar nombres a las constantes vBa los registros ya que puedes ente entende nderr lo que que está estáss (aci (acien endo, do, util utili ia a nomb nombre ress como como )/ )/80 80-D -D/ / colocándolo en may"sculas que indica que es una constante -ñade alg"n tipo de cabecera en tus programas utiliando el punto y la coma. 9n ejemplo serBa algo asB:
9sa o bien diagramas de flujo o bien bien algoritmos, Esto ayuda a escribir tu programa paso a paso.
LOS REGISTROS
9n registro es un lugar dentro del +3) que puede ser escrito, leBdo o ambas cosas. !a figura de más abajo muestra el mapa de registros del interior interior del +3)&*$;. Este muestra donde están los diferentes bits y pieas dentro del +3), y nos ayudará a e@plicar unos cuantos comandos.
SISTEMAS EMBEBIDOS COLABORATIVO 2 8
6-+- DE E530/
SISTEMAS EMBEBIDOS COLABORATIVO 2 9
3magen bajada de: !!":##$%&%.$eb'ear'e.()m#%*'e+."", !%!le-Ar(%):/IC1FMa"a'eRe4%s!r)s.5"4
Este está dividido en dos = anco % y anco . El anco es utiliado para controlar las propias operaciones del +3), por ejemplo para decirle al +3) cuales bits del +uerto - son entradas y cuales son salidas. El anco % se utilia para
SISTEMAS EMBEBIDOS COLABORATIVO 2 10
manipular los datos. 9n ejemplo es el siguiente: Digamos que queremos poner un bit del puerto -, a nivel alto. !o primero que necesitamos (acer es ir al anco para poner ese bit o pin en particular en el puerto - como salida. Despu>s volvemos al anco % y enviamos un lógico a ese pin. !os registros que vamos a usar más comunes en el anco son 0-09, 03y 03. El primero permite volver al anco %, 03- nos permite establecer los pines que serán entradas y los que serán salidas del +uerto -, 03 nos permite establecer los pines que serán entradas y los que serán salidas del puerto .
STATUS +ara cambiar del anco % al anco utiliamos el registro 0-09.
TRISA y TRISB Están localiados en las direcciones $?( y $&( respectivamente. +ara programar que un pin sea una salida o una entrada, simplemente enviamos un % o un al bit en cuestión en el registro. -(ora, podemos (acer esto ya sea en binario o en (e@ad (e@adec ecim imal al.. +erso +ersona nalm lmen ente te uso uso ambo ambos, s, ya que que la binar binaria ia ayud ayuda a muc( muc(o o a visualiar el puerto. i no estás familiariado con el paso de binario a (e@adecimal y viceversa, utilia una calculadora cientBfica. Entonces en el puerto - tenemos ? pines, por tanto ? bits. i deseamos poner uno de los pines como entrada, enviamos un al bit en cuestión. i deseamos poner uno de los pines como salida, ponemos un % en ese bit. !os bits están definidos de manera correspondiente con los pines, en otras palabras el bit % es el -%, el bit es el -, el bit 2 es el -2, y asB sucesivamente. sucesivamente. Aamos a tomar un ejemplo. ejemplo. i queremos poner -%, -4 y -; como salidas, y - y -2 como entradas, enviamos esto: %%% #%&('. Date cuenta de que el bit cero está a la derec(a, como se muestra aquB:
+in del +uerto - -; -4 -2 - -% 8umero de bit
;
4
2
%
SISTEMAS EMBEBIDOS COLABORATIVO 2 11
Aalor inario
%
%
%
!o mismo se aplica para 03.
PORTA % PORTB +ara poner uno de nuestros pines de salida a nivel alto, simplemente ponemos un el bit correspondiente en nuestro registro +/0- o +/0. El formato es el mismo que para los registros 03- y 03. +ara leer si un pin está a nivel alto o nivel bajo en los pines de nuestro puerto, podemos ejecutar un c(equeo para ver si el bit en particular correspondiente esta puesto a nivel alto #' o está puesto a nivel bajo #%'. -ntes de dar un ejemplo de código, tenemos que e@plicar dos registros más = ( y ".
( El regist registro ro ( es un regis registr tro o de propó propósi sito to gene general ral al cual cual le pued puedes es asig asigna narr cualquier valor que desees. 9na ve que (as asignado un valor a ese registro, puedes sumarle cualquier otro valor, o moverlo. i le asignas otro valor a 1, su contenido es sobrescrito.
U) *+*,-/ * 4/ Aamos a darte un ejemplo de código sobre lo que acabamos de aprender. 8o intentes compilar esto todavBa, lo (aremos cuando (agamos nuestro primer programa. implemente estamos intentado mostrar como se (ace la programación de lo anterior y de paso presentando un par de instrucciones. Aamos a poner el +uerto - como en el ejemplo anterior. !o primero, necesitamos cambiar del banco % al banco . s de esta instrucción = %4(, el cual
SISTEMAS EMBEBIDOS COLABORATIVO 2 12
se refiere a la dirección del registro 0-09, y el n"mero ? que corresponde al n"mero de bit. +or tanto, lo que estamos diciendo es Gpon a el bit ? de la dirección de memoria %4(G. -(ora ya estamos en el banco . 6/A!1 b%%% b%%% Estamos poniendo el valor binario %%% #la letra b significa que el n"mero está en binario' en nuestro registro de propósito general 1. +odrBamos (aber (ec(o esto en (e@adecimal, en cuyo caso nuestra instrucción (ubiese sido: 6/A!1 %&( )ualquiera de las dos funcionará. !a instrucción 6/A!1 significa en ingles G6ove !iteral Aalue into 1G, en castellano, mover un valor literal directamente al registro 1. -(ora necesitamos poner este valor en el registro 03- para configurar el puerto: 6/A1* $?( Esta instrucción instrucción significa significa Gponer los contenidos contenidos de 1 en el registro registro cuya dirección dirección viene a continuaciónG, en este caso la dirección $?(, que apunta a 03-. 8uestro registro 03- a(ora tiene el valor %%% o mostrado gráficamente : +in del +uerto - -; -4 -2 - -% Aalor inario
%
%
%
EntradaHalida
E
E
-(ora tenemos que configurar los pines del +uerto -, y para ello necesitamos volver al banco % para manipular cualquier dato. )* %4( %4(,,? Esta instrucción (ace lo contrario a *. ignifica en ingles Git )lear *G #en castellano, poner a % un bit de la memoria'. !os dos n"meros que le siguen son la
SISTEMAS EMBEBIDOS COLABORATIVO 2 13
dirección del registro, en este caso del registro 0-09, y el n"mero de bit, es este caso el ?. -sB que lo que (emos (ec(o a(ora es poner a % el bit ? del registro 0-09. Ia estamos de vuelta en el anco %. -quB está el código en un solo bloque: BSF
03h, 03h ,5
; Ve al banco 1
MOVLW
06h
; Pon 00110 en W
MOVWF
85h
; Mueve 00110 a TRIS
B!F
03h, 03h ,5
; Vuelve al Banco 0
C/,/ *57 *) /5 -*9/5
B*5 * *9#/ El principio para retardo es el de contar (acia atrás desde un n"mero previamente establecido y cuando llegue a cero, paramos de contar. El valor cero indica el fin del retardo y continuamos nuestro camino a trav>s del programa. S79)#5
9na subrutina es una sección de código o programa, que puede ser llamada como y cuando la necesites. !as subrutinas se usan si vas a ejecutar la misma función función más de una ve, por ejemplo para crear un retardo. !as ventajas de utiliar una subrutina son que (ará más sencillo modificar el valor una ve dentro de la subrutina antes que, digamos, (acerlo die veces a trav>s de tu programa. I tambi>n te ayudará a reducir el total de memoria que ocupa tu programa dentro del +3).
C/,/ ** -*9/5 * *)9## % 5## E&S
Esto es para que podamos conectar un circuito e@terno y actuar sobre cualquier salida que este nos d>.
SISTEMAS EMBEBIDOS COLABORATIVO 2 14
para configurar los puertos de EH, tenemos que cambiarnos del anco % al anco .
F Dirección del registro 0-09 F Dirección del registro tri=estado para el +uerto -. F Dirección del +uerto -. F )ambia al anco .
-(ora, para configurar el pin de un puerto para que sea una salida, enviamos un % al registro 03-. +ara poner el pin como entrada, ponemos un en el registro 03-. movlC %( F +ara configurar el pin % del +uerto -... movCf 03F ... como entrada. bcf 0-09, 0-09,? F Auelve al anco %. -(ora (emos puesto el bit % del puerto - como entrada. !o que necesitamos necesitamos (acer a(ora es comprobar si el pin está a nivel alto o a nivel bajo. +ara ello, podemos usar una de estas dos instrucciones: 0*) y 0*. !a instrucción 0*) significa G
3nicio
6icroontroladores +ic #2%4' 6icrocontroladores. ecuperado de (ttp:HHCCC.miUroe.comHc(aptersHvieCH$2H )ursos 6icros. #2%4' !enguaje c. ecuperado de: (ttp:HHCCC.cursomicros.comHavrHlenguaje=cHvariables=locales=y=globales.(tml