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!!
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!!