Sie sind auf Seite 1von 137

Adnde nos lleva el siglo XXI?

El siglo XXI Ser testigo de la invasin de stas diminutas microcomputadoras. Gobernarn la mayor parte de los aparatos que usaremos los humanos.
3

Diferencia entre microprocesador y microcontrolador.


El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), tambin llamada procesador, de un computador. La UCP est formada por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.

DISPOSITIVO DE ENTRADA

MICROCONTROLADOR PROGRAMA

DISPOSITIVO DE SALIDA

INTERRUPTORES TECLADOS SENSORES TRANSDUCTORES

MICROCONTROLADORES PROGRAMA

DIODOS LEDS DISPLAYS RELEVADORES PARLANTES

Qu es un Microcontrolador ? Un circuito integrado de alta escala de integracin que incorpora la mayor parte de los elementos que configuran un controlador.

Dnde encontrarlos?
En nuestro Trabajo, casa y en nuestra vida. Controlando : Telfonos, computadoras, automviles, hornos de microondas, televisores y en dnde menos lo imaginamos, ah se encuentran presentes.
8

Aplicaciones
En la electrnica de Control : pantallas alfanumricas LCD. teclados. Memorias EEPROM seriales. temperatura. robots. para motores.
9

10

Los microcontroladores
De la amplia gama de circuitos integrados disponibles se encuentran los microcontroladores. Un microcontrolador es un integrado que contiene una unidad lgica, una aritmtica y un conjunto de dispositivos indispensables para realizar funciones de clculo y control. Memorias RAM y ROM, circuitos de entrada y salida, convertidores A/D y D/A. Es la razn de que los microcontroladores trabajen en forma similar a una computadora.
11

Microcontroladores

Tienen la capacidad de recibir y procesar informacin a travs de un programa preestablecido, por el usuario. Y con ello hacer visible un resultado.

12

13

Conclusin
La diferencia principal entre un microprocesador y un microcontrolador es bsicamente su estructura. Todos los elementos externos del microprocesador ahora estn dentro de un solo integrado: El Picmicro.

14

Conclusin
El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador.

Debido a su reducido tamao es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller).

15

Filosofa de los Pics.


Entrada

Proceso

Salida

Memorias Puertos Temporizadores CPU P

Interfaces
Convertidores C (todo en uno )
16

Qu es un P I C ?
Programable Integrated Circuit. Programable , porque se puede planificar la manera como va a funcionar y se adapta a nuestras necesidades. Cuenta con la capacidad de modificar su comportamiento en funcin de una serie de instrucciones que es posible comunicarle.

17

Qu hacer con el PIC ?


Programarlo Conectar sus terminales a las entradas salidas de la seal que deseamos y listo !. No es necesario colocar prcticamente ningn otro elemento externo. Su bajo costo, hacen realizable casi cualquier proyecto de control.

18

Un microcontrolador dispone normalmente de los siguientes componentes


Procesador o UCP (Unidad Central de Proceso). Memoria RAM para Contener los datos. Memoria para el programa tipo ROM/PROM/EPROM. Lneas de E/S para comunicarse con el exterior.

19

Memorias
Flash. (solo p almacenar el cdigo instrucciones) Es la memoria para programa. 1 K. Arquitectura Harvard.

20

La La

RAM es la memoria para datos.

EEPROM es parte tambin de la memoria para datos. El PIC junta todos los datos y los procesa en un solo ciclo de reloj.

21

Diversos mdulos para el control de perifricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analgico/Digital, CDA: Conversores Digital/Analgico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.
22

Qu debemos tomar en cuenta al seleccionar un PIC ?


Tipo de prestaciones: Indica la velocidad del reloj y la alimentacin del PIC. Nmero de entradas y/o salidas Determina cuantas terminales tenemos disponibles para programar y como las vamos a usar. Hardware especial: si requerimos RS 232 entradas analgicas.
23

Qu debemos tomar en cuenta al seleccionar un PIC ?


Memoria de programacin. Porque determina la cantidad de instrucciones que puede almacenar el PIC. Memoria RAM. Nos indica la cantidad de localidades de memoria interna que estn disponibles en el PIC.

24

Los productos que para su regulacin incorporan un microcontrolador disponen de las siguientes ventajas:
Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo.

Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado nmero de elementos disminuye el riesgo de averas y se precisan menos ajustes.

25

Reduccin del tamao en el producto acabado: La integracin del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las caractersticas de control estn programadas por lo que su modificacin slo necesita cambios en el programa de instrucciones
26

Microcontroladores Flash
Ofrecen mayor flexibilidad para la programacin. Cuentan con memoria electricamente borrable (flash). Las instrucciones pueden ser borradas del integrado y vueltas a escribir por medio de equipos de grabacin Para la enseanza aprendizaje ste es el mejor , porque permite grabar y regrabar la informacin varias veces.

27

Arquitectura simplificada del Pic 16F84


A L U, Memoria de datos Lgica de control Memoria de programa. Puertos A y B.

28

29

COMO INICIARNOS EN LOS FUNDAMENTOS DE LA PROGRAMACION ?

EJEMPLO : ELEMENTO DE CONTROL DE UNA COMPUTADORA GENERICA. DETECCION DE LA PRESENCIA DE OBJETOS METALICOS. EL DETECTOR DE METALES PRODUCE UNA SEAL ELECTRICA LA ALARMA UNA SEAL AUDIBLE.
30

FUNDAMENTOS DE PROGRAMACION
DETECTOR DE METALES
COMPUTADORA TIPO PC

PERSONA

ALARMA SONORA

DIAGRAMA DE BLOQUES DEL SISTEMA DE DETECCCION DE OBJETOS METALICOS

31

LA COMPUTADORA ESTA CONECTADA PERMANENTEMENTE TANTO AL DETECTOR DE METALES COMO AL DISPOSITIVO SONORO

LA INTERFAZ DE ENTRADA SE ENCARGA DE ADAPTAR LA SEAL PROVENIENTE DEL DETECTOR, INTRODUCIENDOLE EN LA MEMORIA DEL COMPUTADOR
32

Computadora introduciendo un dato proveniente del detector.

Computadora esperando

Computadora introduciendo el siguiente dato proveniente del detector


La computadora trabaja a intervalos de tiempo predefinidos
33

Programa para resolver el problema del detector de metales Introducir un dato proveniente del detector
Hacer una pregunta es un objeto metlico? Si la respuesta es

no regresar al paso 1 para


introducir un nuevo dato
Si la respuesta es si introducir un nuevo dato y activar la alarma sonora y a continuacin terminar

34

Trabajo del programador

Entender el problema
Escribir las instrucciones

Almacenar las instrucciones en la memoria de la computadora Ejecutar el programa


35

36

Paso 1

Mover el dato desde el detector de metales hacia una posicin de memoria

Paso 2

Comparar el dato almacenado en la memoria con el valor 1

Paso 3

Si de la comparacin resulta que el dato almacenado no es 1, el detector no ha percibido la presencia de un metal y debe regresarse al paso 1 para continuar con una nueva lectura

Paso 4

En caso contrario el valor del dato es 1 ( presencia de metal )y debe activarse la alarma sonora

Paso 5

Terminar el proceso

37

Paso
0001 0002 0003

instruccin
Mover Comparar Saltar_si_difertente_a

comentario
Dato_detector,memoria_intern a Memoria _ interna,1 Paso 0001 diferente_a

0004

Activar

Alarma_externa

0005

parar

Figura 1.9 el programa escrito en lenguaje ensamblador genrico


38

Paso 0001 0002

Instruccin Mov comp.

comentario Detector, men Mem, 1

0003
0004 0005

sdif
Escr fin

0001
Alarma, 1

39

Paso 0001
Paso 0002

Tomar el dato correspondiente al estado del detector y almacenarlo en una posicin de memoria en el interior de la computadora. Comparar el dato almacenado en la memoria con el valor 1 Si de la comparacin resulta que el dato almacenado es diferente al valor 1, debe saltar al paso 0001para continuar en la ejecucin del programa En caso de que el dato almacenado sea igual al valor 1 debe activar la alarma sonora. Detener la ejecucin del programa.

Paso 0003

Paso 0004

Paso 0005

40

41

Conocimientos previos a la programacin de un PIC.


Sistema de numeracin HEX/Decimal/binaria. Operacin de circuitos de CD. Operacin de circuitos TTL/CMOS. Nociones de programacin. Conocimientos bsico en el manejo de PC.

42

Cmo funciona un programa?


Debemos saber: La forma en que funciona un programa Los elementos que lo integran. Y las acciones que realizan.

43

Trminos usuales
Registro: Es un deposito de nmeros binarios que permite guardar datos en forma temporal. El nombre del registro sirve para identificarlo y establece el tipo de informacin que almacena. El registro W (Work), se utiliza en la mayora de operaciones que manipulan datos.
44

Trminos usuales Literal: Se refiere a un valor constante, usualmente un nmero escrito en formato hexadecimal . Ejemplos : 3, 12, 3f
45

Estructura de un programa escrito en lenguaje ensamblador


Divisin en columnas de un programa fuente escrito en ensamblador.
etiquetas
instrucciones

operandos

Comentarios

inicio

org

comienzo del programa

46

Etiqueta : Nombre con el cual se identifica una posicin de memoria del microcontrolador, y sirve para marcar puntos especficos dentro del programa Instruccin: hace referencia a una de las operaciones bsicas que puede ejecutar el microcontrolador. Ejemplo : MOVLW carga el registro W con un valor literal. Almacenar un valor literal en el registro W Operando : Es un elemento utilizado por una instruccin Existen instrucciones que requieren el uso de dos operandos, el primero se denomina operando fuente , el segundo operando destino. La informacin fluye del operando fuente al operando destino.

47

Tipos de lneas que se pueden incluir en un programa


Encabezado Constantes

Definicin de origen
Instrucciones Final del programa
48

Encabezado
Primer componente del programa. En el se definen algunas directrices de tipo general, conocidas como directivas. Estas modifican el funcionamiento del ensamblador.;ejemplo :MPASM La directiva List indica el Mc. utilizado Directiva obligatoria.
49

List p= 16F84 ; microcontrolador ;16F84

50

Constantes
El uso de constantes simplifica la lectura de un programa, ya que , en lugar de referirse a un valor hexadecimal en particular , se puede utilizar el nombre de la constante asociada
51

La mayora de los ensambladores utilizan la palabra equ para definir una constante. Ejemplo : Puerto A equ 05 Le indica al ensamblador que se puede utilizar la palabra puerto A en lugar del numero 05

52

Definicin del origen del programa


Al programar el Mc. Es necesario indicar explcitamente en que sitio de la memoria se debe almacenar el cdigo binario del programa que est a punto de ser ensamblado. Esto se consigue con la palabra org (origen) . Ejemplo: org 0 Indica que debe almacenarse , a partir de la lnea cero en la memoria de programa.

53

Instrucciones del programa


Una instruccin tpica incluye los siguientes campos. A excepcin del campo cdigo de instruccin los restantes campos pueden aparecer no , dentro de una lnea de programa.

etiqueta

Cdigo de instruccin

Operando (s)

; comentarios
54

Final del programa


El ensamblador MPASM utiliza la siguiente instruccin.

end

55

PERIFERICO

PUERTO DE ENTRADA

REGISTROS INTERNOS UNIDAD ARITMETICA Y LOGICA UNIDAD DE CONTROL

PUERTO DE SALIDA

PERIFERICOS

SEALES DE INTERRUPCION

INTERRUPCION

MEMORIA DEL PROGRAMA MEMORIA DE DATOS

56

El entorno de programacin fundamental


1.- El Mc. Accede al contenido a las seales de los componentes externos, a travs de los puertos de entrada. 2.- El M c. modifica el contenido enva seales a los componentes externos, mediante el uso de los puertos de salida.

57

El entorno de programacin fundamental


3.- Los datos ledos en un puerto de entrada son almacenados, en primer lugar, en un registro interno del M c. 4.- Cuando un M c. lee muchos datos provenientes de componentes externos( mediante el uso de puertos de entrada) debe almacenar sta informacin en memoria de datos; esto permite que los datos estn disponibles para ser utilizados ms adelante
58

El entorno de programacin fundamental


5.- El M c. posee una A L U que se encarga de realizar operaciones sobre los datos. De acuerdo con los resultados obtenidos, el M c. toma decisiones sobre la activacin de lneas en los puertos de salida.

59

El entorno de programacin fundamental


6.- Un sistema embebido (embedded

system)(un proyecto de control).


Cumple con el objetivo de control , gracias a la existencia de un conjunto de instrucciones ( programa) que indica de manera precisa lo que debe hacerse en cada instante del tiempo.
60

El entorno de programacin fundamental

7.- Un programa( conjunto de instrucciones ) se almacena en la memoria de programa del microcontrolador.

61

El entorno de programacin fundamental

8.- A los procesos para el manejo de Interrupciones.

62

El contador de programa
Lo utiliza para saber cual es la siguiente instruccin que debe de ejecutar. El P C apunta a la primera instruccin del programa . Cada vez que ejecuta una instruccin el P C incrementa su valor, de modo que la instruccin que se ejecuta la prxima vez es la siguiente en la memoria del programa.
63

Memoria de programa

E j e c u ci n

p r o g r a m a

Contador del programa

d e l

El contador del programa almacena la direccin de LA siguiente instruccin que debe ejecutar

Fig. 3.8 flujo probable en la ejecucin de un programa

64

Conjunto ( Set ) de instrucciones


Objetivo Comprender la naturaleza de las instrucciones disponibles y la forma como se organizan jerrquicamente, segn las funciones para las que han sido diseadas.

65

INTRODUCCION

Una instruccin es un comando, parte del programa, que se le aplica al PIC para que lo interprete y ejecute su cumplimiento.

66

La instruccin se compone de una serie de bits presentada en secciones o posiciones perfectamente delimitadas, que el procesador interpreta para cumplir una orden deseada, quedando establecidas las variables que se modifican.
67

Las instrucciones

Su finalidad es : identificar las funciones que realizan aquellas consideradas como ms importantes.
68

Dicho de otra forma, las instrucciones poseen un formato de acuerdo a un sistema de codificacin. El formato cambia de acuerdo con la operacin que se va a realizar.

69

La codificacin es el formato de la palabra que define la instruccin y que veremos en detalle luego.
70

Note : que para que se complete la instruccin se necesita una sola palabra y un solo ciclo del contador de programas.
71

Instruccin de lectura dato dato

Perifrico externo

Puerto de entrada

Registro del microcontrolador

Registro del microcontrolador

dato

Puerto de salida

dato

Perifrico externo

Fig. 3.9 instrucciones de entrada / salida


72

Leer y escribir informacin


Algunas de las instrucciones permiten leer informacin proveniente de perifricos externos(mediante puertos de entrada) , mientras que otras alteran componentes conectados a los puertos de salida, lo que en cierto sentido implica un proceso de escribir informacin.
73

74

Dato intermedio

Instrucciones de transferencia a memoria y calculos artmeticos lgicos

Memoria de datos

Dato 1 Unidad logica aritmetica

Dato 2
Dato usado posteriormente Puerto de salida Dato intermedio

Registro interno

Dato usado posteriormente

75

Instrucciones de transferencia Un conjunto especializado de instrucciones permite acceder a informacin almacenada en la memoria, realizando a continuacin sobre ellas operaciones aritmticas y lgicas. Los resultados pueden ser devueltos a la memoria almacenados en registros temporales, para ser utilizados posteriormente
76

Instrucciones de manipulacin de bits.


En ocasiones es conveniente manipular directamente los bits individuales de los datos almacenados en la memoria disponibles en un registro interno. El microcontrolador dispone de instrucciones que aislan cada bit de manera individual. De ste modo se puede tomar una decisin segn el valor del bit alterar su contenido cambindolo por un valor diferente. Ver la figura 3.11

77

78

Salto condicional e incondicional


Las instrucciones de salto condicional, en las cuales el salto se produce si, y solo si se cumple una determinada condicin. Las instrucciones de salto incondicional, no se requiere que se cumpla ninguna condicin previa para generar el salto. Las instrucciones de control son las que habilitan inhiben las interrupciones externas.

79

80

1. Instrucciones orientadas a registros.

2. Instrucciones orientadas a bits. 3. Instrucciones con literales.


4. Instrucciones de control y especiales.

81

Instrucciones de desplazamiento de bits.


En ocasiones es conveniente desplazar los bits de un registro ( posicin de memoria) para ejecutar una operacin matemtica sencilla, simplemente para crear un efecto que pueda reflejarse en el medio de salida, como es el caso de un display despliegue luminoso de Leds.

82

Problema: se debe multiplicar el contenido del registro W con el literal 2, reemplazando el contenido previo del registro con el valor obtenido en la multiplicacin

W * 2 W El registro W contiene el valor 24. La respuesta (48) reemplaza el contenido previo del registro W. (24) 00011000 * 2 Registro W antes (48) 00110000 Registro W despus
83

Si se compara el contenido del registro W antes y despus de la multiplicacin, ver que la diferencia radica en la posicin que ocupa cada bit.

84

Conclusin

Desplazar el contenido de un registro un bit a la izquierda, es equivalente a multiplicar su contenido por 2

85

En cuanto a la operacin de divisin la operacin es a la inversa

86

Qu ocurre con el bit que sale del registro, tanto a la izq. Como a la derecha.?

87

El microcontrolador posee un registro especial, denominado registro de estado, para el cual el valor de los bits cambia segn el resultado de las operaciones ejecutadas.

88

Cul es el valor del bit que ingresa por el extremo ms a la izq.del registro en un desplazamiento hacia la derecha ? Usualmente es el valor Cero. Esto se aplica tambin al desplazamiento en sentido contrario , en cuyo caso el bit que ingresa por el extremo ms a la derecha es el digito Cero.

89

El desplazamiento de bits permite llevar a cabo tareas


diferentes a las que se derivan del clculo numrico.

Es posible desplazar circularmente el contenido de un registro , de modo que el bit ms a la derecha se inserta como primer bit ms a la izq.( en sentido inverso , segn se desee.)
90

91

Aplicacin del desplazamiento circular

En el siguiente programa se encontrar la solucin a un problema de animacin visual sobre un dispositivo ptico.

92

93

94

El registro de estado
Permite verificar condiciones derivadas de procesos internos y externos., as como establecer condiciones especiales de control. Cada bit en el registro de estado tiene un significado particular el cual puede variar segn la marca y familia del microcontrolador.. A continuacin se describen los bits ms importantes.
95

96

C . Control de acarreo
C. Toma el valor 1 cuando se produce un bit de acarreo ( Carry ) en una suma de nmeros binarios. Z. control de cero. Toma el valor 1. cuando el resultado de una operacin es cero.

N . Control de nmero negativo. Toma el valor 1 cuando el resultado de una operacin es negativo.
I. activacin global de interrupciones. Al establecer su valor 1 se activa la deteccin de interrupciones; el microcontrolador puede ser interrumpido en su funcionamiento por elementos externos.
97

98

99

Los elementos
Componentes del Pic 16f84. El registro de trabajo W El registro de estado (Status) La memoria de programa La memoria de datos. Los registros de propsito especial Los registros de propsito general Los registros de pila (stack) El puerto A El puerto B.
100

El registro de trabajo W
7 6 5 4 3 2 1 0

El registro W , de 8 bits , sirve para almacenar un dato, usualmemte de forma temporal , cuyo valor ser utilizado posteriormente para un clculo matemtico en la transferencia entre registros y memoria. Toda la informacin debe pasar por ste registro, siendo de suma importancia en las instrucciones del microcontrolador.
101

102

Los bits del registro de estado del pic 16f84


C.- carry (bit de acarreo) . Este bit se activa cuando se presenta un acarreo en el bit ms significativo del resultado. DC. Digit carry (bit de acarreo de digito).este bit se activa cuando se presenta un acarreo en el bit 3 del resultado. Esto tiene relacin, sobre todo, con operaciones con formato BCD. Z. Zero (bit de cero) este bit toma el valor de 1 cuando el resultado de una operacin lgica aritmtica es cero.
103

RP0: SELECCIONA EL BANCO DE MEMORIA QUE SE VA A UTILIZAR . SI RP0 = 0, SE SELECCIONA EL BANCO 1; SI RP0 = 1 SE SELECCIONA EL BANCO 0
104

105

106

107

LOS REGISTROS DE PROPOSITO GENERAL SON 36 Y VAN DE 00H A 2FH ESTAN MAPEADOS SOBRE EL BANCO DE MEMORIA CERO. SIGNIFICA QUE SOLO UNO DE LOS REGISTROS , EL CORRESPONDIENTE AL BANCO CERO ESTARA DISPONIBLE PARA EL PROGRAMADOR

108

109

110

CONFIGURACIN DE LOS PUERTOS A Y B.


Cada bit de un puerto puede ser configurado de manera individual, como entrada como salida, consiste en emplear los registros TRISA y TRISB del banco 1 de la memoria de registros RAM. Puerto A Puerto B

TRISA

TRISB

111

Como sabemos, los PICs 16X84, entre otros, manejan un set reducido de instrucciones (35 instrucciones en lo que se denomina RISC) que presentan una codificacin muy particular llamada formato de la instruccin .
112

113

En los microcontroladores PICs tipo 16X84 cada instruccin tiene una longitud de 14 bits.

Los bits que actuan como datos de la memoria EPROM se reciben en el decodificador de instrucciones, y operan con el contador de programa y el registro de trabajo W, para acceder a lugares especficos del microcontrolador. tales como la ALU, posiciones de memoria, registros, etc.
114

Sintaxis de una instruccin del set. Se trata de la instruccin que suma el contenido del registro de trabajo con el contenido de un registro cuya direccin est determinada por el operador f . Forma en que el programa escribir la instruccin en el lenguaje entendible por el operador (el programa en .asm).

115

Segn su funcin que desempean en un programa.


Por ejemplo para: Mover Cambiar el contenido de los registros Controlar el flujo del programa. Realizar operaciones lgicas. Realizar operaciones Aritmticas.

116

Qu realizan stas instrucciones?


Operaciones y movimientos entre el Acumulador registro de trabajo. Representado con la letra W y los registros de la memoria RAM del PIC. El acumulador W es una especie de transporte cuya capacidad est limitada a un registro de 8 bits.

117

Otras instrucciones que no son expresamente para programa.


Estas instrucciones nos ayudan a que nuestros programas sean claros y precisos. El punto y coma ; Sirve para insertar un comentario acerca de una instruccin dada. Todos los datos incluidos despus de stos caracteres no se traducen cuando el programa se transfiere al compilador.

118

Continua instrucciones.
Org. Siempre se escribir al inicio de todo programa y sirve para definir la direccin de memoria en la que deben empezar a colocar las instrucciones. Al Pic hay que explicarle con detalle lo que quieres hacer, pues no presupone nada.

119

Instrucciones
End. Indica el trmino de un programa. EQU. Mediante sta declaracin podremos asignar un nombre etiqueta a una direccin a una expresin completa. Ejemplo: Reles_De_ Salida EQU d6. Es decir, que durante el resto del programa Reles _ De _ Salida ser entendido como d6

120

Instrucciones para mover


MOVLW k Almacena los datos ingresados en el acumulador. Los datos que se van a cargar pueden escribirse en nmero decimal, hexadcimal binario.

121

Ejemplo
MOVLW d255 ; decimal

MOVLW 0xFF

; hexadecimal

MOVLW b11111111 ; binario


122

MOVWF f

Mueve una copia del acumulador W al registro f.

123

Ejemplo
Portb equ 0x6 Contador equ 10 Movlw 0x25
Movwf portb

Movwf

contador

;carga el acumulador con ;0x25 ;el registro portb contiene ; 0x25 ;el registro contador ; contiene ; 0x25
124

MOVF f,d
Mueve una copia del registro f al destino d. El destino puede ser: Si d=0 el destino es el acumulador. Si d=1 el destino es el mismo registro f. Nota: en ste ltimo caso, el dato se queda en el mismo lugar.

125

Ejemplo

W equ f equ Contador equ Movf contador,W

0 1 10

;mueve una copia del ;contenido del contador ; al acumulador

126

127

Memoria de datos (RAM) procesa la informacin antes de conocer las instrucciones. 24 Reg.especiales (12 Banco 0 y 12 Banco 1) 68 Reg.generales

00 Banco 0 (8 bits) 0B registros especiales 0Ch 1210 Reg. grales 4Fh 7910 Reg. Grales 50h 8010 Vacio. 7Fh 12710 Vacio.

80h 12810 Banco 1 8Bh 13910 Reg.especiales 8Ch 14010 Imagen CFh 20710 D0h 20810 FFh 25510
128

03h = Status
Localidad de Memoria variables

Registro(file)

El direccionamiento de la RAM El ancho de las localidades = 8 Bits. Los Bits de direccionamiento = 8 bits (0 a 25510) (00h a FFh)

8 Bits

W
todo tiene que pasar por W
129

130

Ejemplo: Si quiero pasar de una localidad a otra tiene que pasar por W

Ejemplo: Cmo le digo al C ve por el contenido de la localidad 12 Y copialo a la localidad 13 ?


Instruccin Movlw Mueve una copia de la localidad al registro W 12 para direccionar a la RAM (7 Bits) Que son las localidades del Banco 0 Banco 1.

Instruccin Movwf Mueve una copia de lo que hay en W a la localidad 13 (7 bits para direccionar A la RAM , que son localidades del Banco 0 Banco 1)
131

132

7 Bits para direccionar a la memoria RAM , el 8/o bit est dentro del registro Status para direccionar a la RAM
Status = File registro de RAM. Es el 5/o Bit de direccionamiento (status bit 5) 8 bits para direccionar a la RAM Los 7 bits estn en la flash (instrucciones). 1 0 0 0 0 0 0 0 7Bits 8/o Bit (localidad 03h y 83h)

0 h

1 0 0 0 0 0 0 0 7Bits 8/o Bit (localidad 03h y 83h)

133

Ejercicio con Status


Mueve una copia de lo que hay en W a la localidad 03h (7 bits de direccionamiento Si W = 1111 11112 entonces estar en el banco 1 (recordar que en 80h empieza el banco 1 y termina en FFh )

Si es 03h estar en el banco 0 como W= 0000 00112 (recordar que en 00h empieza el banco 0 y termina en 7Fh , el 8/o bit determina el banco 0)
Si es 83h estar en el banco 1 como W = 1000 00112 ( el 8/o bit determina el banco 1) Asegurarnos estar 1/o en Banco 0 (status = 0000 00002 ) Si se propone que se mueva una copia de lo que hay en W a la localidad 0Dh, Tendremos que ubicarla en el Banco 0 , porque B0 000 1101 , el 8/o bit determina el Banco 0.( que a la vez es el Status= 5/o Bit ) STATUS,5 ; Pero si es por ejemplo 8Dh, entonces lo ubicaremos en el Banco 1, porque 8Dh = B1 000 1101,el 8/o bit determina el banco 1 (status,5)
134

Aplicacin en el 16F84
Si tenemos que Status = 03h y PortB = 06h ( es un registro ). Es salida si estando en el interior W va a 06h. Es entrada si estando 06h en el exterior va al interior donde est W. Ejemplo si W = 1010 1010 Rb7 Rb6 Rb5 Rb4 Rb3 Rb2 Rb1 Rb0 1 0 1 0 1 0 1 0 in out in out in out in out B1010 1010 = AAh = 17010 (est en el banco 1) El 8/o Bit nos determina que es salida direccionamiento de entrada. NOTA IMPORTANTE: Si se puede escribir en la localidad 06h , es porque el puerto B se direccion como salida. Si se puede leer la localidad 06h es porque el puerto B est direccionado como entrada.

135

Otro ejemplo para cambiarse de banco


Primero asegurarse que Status,5 = 1 Si el 8/o Bit que es el Bit 5 est en 1 Ejemplo: 1111 0001 W= 1111 0001 ( le cargo a W ) Mueve una copia de lo que hay en W a 06h Por lo que tendr que ser salida el Bit 5 = 0 (8/o Bit ) Luego entonces tendremos que: B 0 111 1111 (7Fh). De 7Fh en el banco 0 sigue a la 80h en el banco 1.

136

Aprendiendo a Programar

137

Das könnte Ihnen auch gefallen