PDA

Ver la versión completa : Leccion III




ktgoth
05-12-2009, 11:59 AM
Hellooooooo....
jejejejeje despues de otras cuantas semanas sin mover este subforo de pics regreso para darles la tercer leccion en donde como dijimos en la segunda, se van a ver mas a fondo los bancos de memoria de nuestro pic 16F84.
Como mostrabamos en la segunda lección, los microcontroladores tienen sus registros almacenados en diversas formas y en este caso, nuestro micro va a manejar sus registros de configuracion en 2 bancos de memoria.
http://img145.imageshack.us/img145/2185/bancos.th.jpg (http://img145.imageshack.us/my.php?image=bancos.jpg)
Vamos entonces a hablar de nuestro primer banco de memoria:

BANCO 0:

Dentro de nuestro banco 0, vamos a encontrar los siguientes registros de configuracion. OJO, hay que tenerlos muy en cuenta para cuando empecemos pues a programar como tal vale?
- TMR0: el timer0 es un reguistro temporizador/contador de 8 bits y puede operar de 2 formas:
Temporizador: el registro incrementa su valor en cada ciclo de instrucción (Fosc/4).
Contador: el registro incrementa su valor con cada impulso introducido en el pin de interrupciones RA4/TOSKI.

En ambos casos, cuando el registro llega a su valor máximo o se desborda (en este caso 2^8 = 256 y como el 0 también se cuenta, el máximo valor sería 255), empieza de nuevo a contar a partir del 0, pero él informa que volvió a empezar el conteo poniendo en activacion un registro especial que mas adelante lo vamos a ver.

- PCL: Es el contador del programa. El nos va a indicar la dirección de memoria que se leerá a continuación. En algunas ocasiones, como el empleo de las tablas, el uso de este registro es imprescindible.

- STATUS: Es un registro de 8 bits que sirve para configurar ciertos aspectos del PIC. Contiene el estado aritmético de la ALU, el estado del Reset y los bits para selección de banco.

REGISTRO STATUS
IRP RP1 RP0 TO PD Z DC C

Ahora vamos a ver el estado de estos bits:

Bit 7-6:
IRP-RP1 L/E 0 No implementado: Se pone en ‘0’
Bit 5: RP0
Bit para la seleccion de banco L/E 0 1 = Banco 1 y 0 = Banco 0
Bit 4: TO
Time-Out L 1 1 = Recién encendido, tras CLRWDT, o SLEEP y 0 = Ocurrió un time-out en el WDT
Bit 3: PD
Power Down L 1 1 = Luego de un Reset, de una instrucción CLRWDT(clear watchdog) y 0 = Tras ejecutar una instrucción SLEEP
Bit 2: Z
Zero L/E . Si es 1 = El resultado de una operación lógica o aritmética es 0. y si es 0 = El resultado es distinto de 0
Bit 1: DC
Digit Carry (digito de acarreo) L/E . Si es 1 = Acarreo en la suma y no en la resta (4º bit) y si es 0 = Acarreo en la resta y no en la suma (4º bit)
Bit 0: C
Carry L/E. Si es 1 = Acarreo en la suma y no en la resta (8º bit) y si es 0 = Acarreo en la resta y no en la suma (8º bit).

Luego les doy la definición de lo que es acarreo.

- PUERTO A: Es la representación del puerto A. Cada bit representa una línea de E/S y tiene 5 pines.
- PUERTO B: Es la representación del puerto B. Cada bit representa una línea de E/S y tiene 8 pines.

BANCO 1:

Dentro de nuestro banco 1, vamos a encontrar los siguientes registros de configuracion:
-TRISA: Es un registro de 8 bits de configuración del puerto A. Si un bit se encuentra en 1, esa línea de E/S se configura como entrada; si, en cambio, se encuentra a 0, se configura como salida.

TRISB: lo mismo que TRISA, pero haciendo referencia al puerto B que es un registro de 8 bits.

Por ahora solo vamos a ver estos registros, y mas adelante vamos a ver los demás los cuales se encargan de otras funciones especificas.
Recuerde, tengan muy en cuenta en dónde se encuentran los registros( ya sea en el banco 0 o 1) porque cuando empecemos a ver instrucciones, es indispensable para configurar, saber ´los bancos.
Espero le echen una buena repasada a esto y lo mas pronto que se pueda, vamos a empezar con las instrucciones en lenguaje assembler.
Aqui les dejo una pagina web bastate buena en donde pueden conseguir mucha mas info del micro 16f84, espero la lean y cualquier inquietud me la hacen saber: http://www.educa.madrid.org/web/ies.machado.alcala/web%20insti/depart/electr/apuntes/files/dpe/curso2/proyectos/pic%20f_84/TEMA_03.pdf

SALUDOS!!

morpheusoliver
07-19-2009, 04:36 PM
Ahhh Cielos, Electronica combinada con programacion, naci para esto XD...

agraedsco mucho tus lecciones, a pesar de que llevo unos 6 meses trabajando con pics, siempre que veo algo de informacion bien formada en español se me alegra la mirada... se inglés y la mayoria de lo que aprendí ha sido en datasheets y guias en ingles, por la falta de informacion que existe en español, por eso cuando me sdoy cuenta de que cada vez hay mas informacion que vale la pena en español es que me hace sentir bien xD...

y como sugerencia, he leido que tuvieron una preferencia hacia el 16f84, y queria dar mi opinion, mas un detalle... tengo entendido ke el 16F84 puede llegar hasta los 20mhz, cuandomenos así lo anuncian en la AG Electronica, y san wikipedia...

por otro lado, a pesar de que el 16F84 es facil de aprender y de conseguir, yo optaria mas por que las lecciones comenzaran con un 16F628, que tengo entendido es el pic que viene a sustituir al 16F84, se programan practicamente igual, no he tenido problemas con el ya que su estructura es casi identica al 84, pero con mas funciones, como son oscilador interno, y (creo ke la mitad de los que quieran seguir estas lecciones van a querer usar) trae soporte de puerto serial, además de tener un precio un poco menor, yo el 16F84 lo compro en un promedio de $90MXN, y el 628 lo he visto en $60...

que lenguaje vas a usar en las lecciones..?

me despido poniendome a tus ordenes y si necesitas cualquier cosa estoy para servirte...

ktgoth
07-24-2009, 07:18 PM
ola amor!!!
disculpa la demora de veras pero es que habia estado bastante desconectada del foro pero ahora tengo el tiempo y las ganas para seguir con esto.
Bueno, en primer lugar muchisimas gracias por tu participacion aqui en este foro, de veras que es grato saber que hay personas interesadas en este cuento, que quieren participar y aprender.
Ahora si al grano xDDD....
bueno, respecto a lo que tu dices esta muy bien, incluso pensaba reemplazar de una vez el 16f84 por el 628.
Pero cual es la vaina? resulta que pues bueno, como tu mismo lo has dicho, el F84 es el antecesor del 628 y creo que si aprendemos muy bien las funciones de éste, podemos trabajar con cualquier otro pic, asi que por eso sugiero seguir con el F84...
aunque claro, variarian los costos pero igual, creo qyue es un muy buen pic para comenzar.
Pronto seguire con las lecciones y espero tu colaboracion por aqui bueno?
Un abrazo.