PIC16F887

PIC es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria para mas informacion haz click en la imagen arriba.

Aplicaciones

Editar y compilar un programa en MPLAB y simularlo en PROTEUS.

Microcontrolador

Que es un microcontrolador y principales caracteristicas.

Memorias

Explicacion de que es memoria y sus tipos: RAM, ROM, PROM, EPROM, EEPROM.

Conversiones

Tipos de conversiones y ejemplos ilustrados.

martes, 4 de diciembre de 2018

Conversiones

Conversiones

Decimal a octal
Resultado de imagen para decimal a octal

Binario a decimal

Resultado de imagen para binario a decimal

Binario a Hexadecimal

Resultado de imagen para binario a hexadecimal

Resultado de imagen para conversiones decimal a hexadecimal

Byte

Byte

Un byte no es más que un conjunto de bits, que trabajan como una sola unidad de medida mucho más grande, capaces de almacenar datos de mayor complejida. Esta unidad es un multiplo de bits, siendo su equivalente en esta unidad de 8, es decir, 8 bits equivalen a 1 byte

Resultado de imagen para byte


BIT

BIT

Es la unidad de almacenamiento más pequeña que puede tomar un ordenador. Sus valores se limitan a sólo dos, tomando el valor de 0 o de 1. Por lo tanto, es un tipo de dato binario, ya que de esta manera, es mucho más sencillo de interpretar por los dispositivos electrónicos.

Resultado de imagen para bit

Operaciones lógicas


Operaciones lógicas

Mientras que los operadores aritméticos se usan principalmente con números, los operadores lógicos están pensados para usarse con valores lógicos (verdadero y falso). Alguna de estas operaciones pueden variar desde la condición "If" "Else" y usando como referencia símbolos matemáticos ( mayor qué ">", menor qué "<", diferente a "!= o ><"), agregando también símbolos lógicos (y "AND", o "OR" y no).

Resultado de imagen para operaciones logicas

Operaciones aritméticas


Operaciones aritméticas


Estas operaciones están definidas por los símbolos matemáticos más básicos: suma (+), resta (-), multiplicación (* o un ciclo de suma), división (/ o un ciclo de resta) y potencia (^). En la programación son comúnmente usadas en cualquier lenguaje tanto para escribir datos en pantalla en base a una de estas operaciones, como declarar variables

Resultado de imagen para suma resta

Unidad lógica aritmética

Unidad lógica aritmética

Una unidad de lógica aritmética (ALU) es la parte de un procesador de computadora (CPU) que realiza operaciones aritméticas y lógicas en los operandos en palabras de instrucción de computadora. En algunos procesadores, la ALU se divide en dos unidades, una unidad aritmética (AU) y una unidad lógica (LU). Algunos procesadores contienen más de una AU, por ejemplo, uno para operaciones de punto fijo y otro para operaciones de punto flotante. (En las computadoras personales, las operaciones de punto flotante a veces se realizan mediante una unidad de punto flotante en un chip separado llamado coprocesador numérico).

Además, la ALU tiene acceso directo de entrada y salida al controlador del procesador, la memoria principal (memoria de acceso aleatorio o RAM en una computadora personal) y dispositivos de entrada / salida

Resultado de imagen para Unidad lógica aritmética


Retardo


Retardo


El retardo normalmente se ve representado como el diferencial de tiempo que se establece entre la señal de salida y de entrada de un dispositivo, en otras palabras es el tiempo que tarda una señal en producirse; en la informática es el tiempo requerido que tarda en enviarse un paquete de datos
Resultado de imagen para delay

Pila informática


Pila informática

En informática, una pila es un tipo de datos abstracto que sirve como una colección de elementos, con dos operaciones principales:

Push, que agrega un elemento a la colección, y
Pop, que elimina el elemento agregado más recientemente que aún no se eliminó...

/* Al entrar o al salir de la instrucción en ensamblador del programa, el compilador
no va a guardar los datos en el banco de la RAM actualmente activo. Esto significa
que en esta sección de programa la selección de banco depende de los registros SFR
utilizados. Al volver a la sección de programa escrito en C, los bits de control
RP0 y RP1 deben devolver el estado que tenían antes de la ejecución del código en
lenguaje ensamblador. En este ejemplo, el problema se soluciona al utilizar la
variable auxiliar saveBank que guarda el estado de estos dos bits*/

saveBank = STATUS & 0b01100000; // Guardar el estado de los bits RP0 y RP1
                      // (bits 5 y 6 del registro STATUS)
asm {                 // Inicio de la secuencia en ensamblador
...
...                   // Código ensamblador
...
}                     // Final de la secuencia en ensamblador
STATUS &= 0b10011111; // Bits RP0 y RP1 devuelven su estado original
STATUS |= saveBank;
...
...

Resultado de imagen para stack in c

Bus de Datos


BUS De Datos

Un bus de datos es un sistema dentro de una computadora o dispositivo, que consiste en un conector o conjunto de cables, que proporciona transporte para los datos. Diferentes tipos de buses de datos han evolucionado junto con las computadoras personales y otras piezas de hardware.


En general, un bus de datos está ampliamente definido. 

El primer estándar para el bus de datos fue de 32 bits, mientras que los sistemas de bus de datos más nuevos pueden manejar cantidades mucho mayores de datos.

Un bus de datos puede transferir datos hacia y desde la memoria de una computadora, o hacia o desde la unidad central de procesamiento (CPU) que actúa como el "motor" del dispositivo. Un bus de datos también puede transferir información entre dos computadoras.

Resultado de imagen para bus de control





Bus de direcciones


Bus de direcciones



El bus de direcciones es un canal del microprocesador totalmente independiente del bus de datos donde se establece la dirección de memoria del dato en tránsito.

El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección. La capacidad de la memoria que se puede direccionar depende de la cantidad de bits que conforman el bus de direcciones, siendo 2n el tamaño máximo en bits del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bits, son necesarias al menos 8 líneas, pues 28 = 256. Adicionalmente pueden ser necesarias líneas de control para señalar cuándo la dirección está disponible en el bus. Esto depende del diseño del propio bus.

Resultado de imagen para bus de control

Bus de control

Bus de control

El bus de control gobierna el uso y acceso a las líneas de datos y de direcciones. Como éstas líneas están compartidas por todos los componentes, tiene que proveerse de determinados mecanismos que controlen su utilización. Mejor dicho, es el que permite que no haya colisión de información en el sistema.

Resultado de imagen para bus de control

Bus

Bus

el bus (o canal) es un sistema digital que transfiere datos entre los componentes de una computadora o entre varias computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores, además de circuitos integrados

Resultado de imagen para bus de datos

Assembly

Assembly

Un lenguaje de ensamblaje (o ensamblador), a menudo abreviado asm, es un lenguaje de programación de bajo nivel en el que existe una correspondencia muy fuerte entre las declaraciones del programa y las instrucciones de código de máquina de la arquitectura.

Cada lenguaje ensamblador es específico de una arquitectura de computadora y sistema operativo en particular. En contraste, la mayoría de los lenguajes de programación de alto nivel generalmente son portátiles en múltiples arquitecturas, pero requieren interpretación o compilación. El lenguaje ensamblador también se puede llamar código de máquina simbólico.

Motorola 6800 Assembly Language.png

Pointer

Pointer

En informática, un puntero es un objeto de lenguaje de programación que almacena la dirección de memoria de otro valor ubicado en la memoria de la computadora. Un puntero hace referencia a una ubicación en la memoria, y la obtención del valor almacenado en esa ubicación se conoce como desreferenciación del puntero. Como analogía, un número de página en el índice de un libro podría considerarse un puntero a la página correspondiente; la eliminación de la referencia a dicho puntero se haría al pasar a la página con el número de página dado y leer el texto que se encuentra en esa página. El formato y el contenido reales de una variable de puntero dependen de la arquitectura de la computadora subyacente



Resultado de imagen para pointer program




Carry

Carry

En aritmética elemental, un acarreo es un dígito que se transfiere de una columna de dígitos a otra columna de dígitos más significativos. Es parte del algoritmo estándar para sumar números al comenzar con los dígitos más a la derecha y trabajar hacia la izquierda. Por ejemplo, cuando se agregan 6 y 7 para hacer 13, el "3" se escribe en la misma columna y el "1" se lleva a la izquierda. Cuando se usa en la resta, la operación se llama préstamo.

Banderas o flag

Banderas o flag

En informática, una bandera es un valor que actúa como una señal para una función o proceso. El valor de la bandera se utiliza para determinar el siguiente paso de un programa. Las banderas son a menudo banderas binarias, que contienen un valor booleano (verdadero o falso). Sin embargo, no todas las banderas son binarias, lo que significa que pueden almacenar un rango de valores.
Puede pensar en una bandera binaria como una pequeña bandera roja que se despliega cuando es falsa, pero aparece cuando es verdadera. Una bandera levantada le dice a un programa: "Detente, haz algo diferente". Un ejemplo común de una bandera en la programación de computadoras es una variable en un bucle while. El siguiente bucle de PHP se repetirá hasta que $ flag se establezca en true.

$flag = false;
$i = 1;
while (!$flag) // stop when $flag is true
{
  echo "$i, ";
  $i++; // increment $i
  if ($i > 100) $flag = true;
}

Resultado de imagen para flag programming

Memoria EEPROM

Memoria EEPROM


“Erasable Programmable Read Only Memory” que se puede traducir como Memoria programable borrable de solo lectura.. Como su nombre sugiere, una EEPROM puede ser borrada y programada con impulsos eléctricos.

Resultado de imagen para Memoria EePROM

Memoria EPROM

Memoria EPROM  

Está formada por celdas de FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) o "transistores de puerta flotante", cada uno de los cuales viene de fábrica sin carga, por lo que son leídos como 1 (por eso, una EPROM sin grabar se lee como FF en todas sus celdas). Se programan mediante un dispositivo electrónico que proporciona voltajes superiores a los normalmente utilizados en los circuitos electrónicos. 

Resultado de imagen para Memoria EPROM

Memoria PROM


Memoria PROM

Es una memoria digital donde el valor de cada bit depende del estado de un fusible (o anti fusible), que puede ser quemado una sola vez. Por esto la memoria puede ser programada (pueden ser escritos los datos) una sola vez a través de un dispositivo especial, un programador PROM. Estas memorias son utilizadas para grabar datos permanentes en cantidades menores a las ROMs, o cuando los datos deben cambiar en muchos o todos los casos. 


Resultado de imagen para Memoria pROM

Memoria ROM


Memoria ROM

Read-only memory (or simply ROM) es un tipo de memoria de computadora. A diferencia de la RAM, mantiene su contenido incluso cuando la computadora o el dispositivo están apagados. Por lo general, la ROM no se puede escribir cuando la computadora se ejecuta normalmente. La ROM se usa para el BIOS que le indica a la computadora cómo iniciar, o programas importantes como el firmware de ciertos dispositivos, que generalmente no necesitan ser modificados. Por lo general, ROM viene en chips de computadora.


Resultado de imagen para Memoria ROM

Memoria RAM


Memoria RAM

La memoria de acceso aleatorio, o RAM, es el hardware físico dentro de una computadora que almacena temporalmente los datos y sirve como la memoria "operativa" de la computadora.

Resultado de imagen para Memorias ram

Memorias

Memorias


Es el dispositivo que retiene, memoriza o almacena datos informáticos durante algún período de tiempo.


Resultado de imagen para Memorias

MPLAB


MPLAB


MPLAB® X Integrated Development Environment (IDE) es un programa de software que se ejecuta en una PC (Windows®, Mac OS®, Linux®) para desarrollar aplicaciones para microcontroladores de Microchip y controladores de señales digitales. Se denomina entorno de desarrollo integrado porque proporciona un "entorno" integrado único para desarrollar código para microcontroladores integrados.

Aquí se inserta el link para obtener una descarga gratuita, debe dar click en la foto: 



Imagen relacionada


En el siguiente video, se explica una simulación del MPLAB para lograr programar un pic:





Principales registros SFR


Principales registros SFR


El siguiente link describen los principales registros SFR del microcontrolador PIC16F887. Los bits de cada registro controlan los circuitos diferentes dentro del chip, así que no es posible clasificarlos en grupos especiales. Por esta razón, se describen junto con los procesos que controlan.


En el siguiente link encontrara mas información: 

https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-con-ejemplos/principales-registros-sfr


Resultado de imagen para registros SFR

Modo de direccionamiento


Modo de direccionamiento

Los modos de direccionamiento de un microcontrolador, son las diferentes maneras de especificar un operando dentro de una instrucción mediante lenguaje ensamblador, en otras palabras, localiza la dirección de memoria de un operando mediante la información contenida en los registros del microcontrolador. Se definen de seis formas:

  •  Direccionamiento Directo: En el modo directo, el campo de dirección contiene la dirección del operando. Se requiere una única referencia de memoria para leer el operando de la localización dada. Sin embargo, sólo proporciona un espacio de direcciones limitado.

  • Direccionamiento Indirecto: Este modo tiene un espacio de direcciones grande, a diferencia del direccionamiento inmediato y el directo, pero debido a que se requieren múltiples accesos de memoria para encontrar el operando es más lento.

  •  Direccionamiento Inmediato: Este modo es rápido y se puede utilizar para definir constantes o establecer valores de variables iniciales.

  • Direccionamiento Indirecto de registro: Este modo tiene un espacio de direcciones grande, pero es limitado al ancho de los registros disponibles para almacenar la dirección efectiva.

  • Direccionamiento de Desplazamiento: Este modo puede considerarse una combinación del modo de direccionamiento indirecto y de registro.

  •  Direccionamiento de Pila (Stack): Consiste en un conjunto lineal de ubicaciones referidos al último que entra y primero en salir. El operando está en la parte superior de la pila.

Resultado de imagen para Modo de direccionamiento