Tablas Indexadas y Arreglos Unidimensionales en microcontrolador 8051

La Directiva de Ensamblador “DB”

DB (Definición de Bytes): Se utiliza para colocar constantes de datos en la memoria para código.

Sintaxis:
[etiqueta: ] DB expresión, expresión,…

"La lista de expresiones es una serie de uno o más valores de byte (cada uno de los cuales puede ser una expresión) separadas por comas"


ORG 0010h

TABLA: DB 54h

DB 3Ah

DB F8h


Código en lenguaje ensamblador (asm)

ORG 00H

MOV DPTR, #NOMBRE

MOV P1, #0FFH

MOV R0, #00H

INICIO:

MOV A, R0

MOVC A, @A+DPTR

CPL A

MOV P1, A

ACALL TIME

INC R0

SJMP INICIO

NOMBRE:

DB 79H;E

DB 77H;A

DB 50H;R

DB 38H;L

DB 00H;

DB 3FH;O

DB 50H;R

DB 38H;L

DB 77H;A

DB 54H;N

DB 5EH;D

DB 3FH;O

DB 00H;

DB 50H;R

DB 77H;A

DB 4FH;M

DB 06H;I

DB 50H;R

DB 79H;E

DB 5BH;Z

DB 00H;

DB 6DH;S

DB 77H;A

DB 54H;N

DB 39H;C

DB 76H;H

DB 79H;E

DB 5BH;Z


TIME: MOV R2, #14H

DEC1: MOV R3, #62H

DEC2: MOV R4, #05H

DEC3: DJNZ R4, DEC3

DJNZ R3, DEC2

DJNZ R2, DEC1

RET

END


Arreglos unidimensionales y multidimensionales

Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice.

Formato para declarar un arreglo unidimensional es:


ipo nombre_arr [ tamaño ]


Por ejemplo, para declarar un arreglo de enteros llamado listanum con diez elementos se hace de la siguiente forma:


int listanum[10];


En C, todos los arreglos usan cero como índice para el primer elemento. Por tanto, el ejemplo anterior declara un arreglo de enteros con diez elementos desde listanum[0] hasta listanum[9].

La forma como pueden ser accesados los elementos de un arreglo, es de la siguiente forma:


listanum[2] = 15; /* Asigna 15 al 3er elemento del arreglo listanum*/

num = listanum[2]; /* Asigna el contenido del 3er elemento a la variable num */


El lenguaje C no realiza comprobación de contornos en los arreglos. En el caso de que sobrepase el final durante una operación de asignación, entonces se asignarán valores a otra variable o a un trozo del código, esto es, si se dimensiona un arreglo de tamaño N, se puede referenciar el arreglo por encima de N sin provocar ningún mensaje de error en tiempo de compilación o ejecución, incluso aunque probablemente se provoque el fallo del programa. Como programador se es responsable de asegurar que todos los arreglos sean lo suficientemente grandes para guardar lo que pondrá en ellos el programa.

Permite arreglos con más de una dimensión, el formato general es:


tipo nombre_arr [ tam1 ][ tam2 ] ... [ tamN];


Por ejemplo un arreglo de enteros bidimensionales se escribirá como:


int tabladenums[50][50];


Observar que para declarar cada dimensión lleva sus propios paréntesis cuadrados.

Para acceder los elementos se procede de forma similar al ejemplo del arreglo unidimensional, esto es,


tabladenums[2][3] = 15; /* Asigna 15 al elemento de la 3ª fila y la 4ª columna*/

num = tabladenums[25][16];


A continuación se muestra un ejemplo que asigna al primer elemento de un arreglo bidimensional cero, al siguiente 1, y así sucesivamente.


main()

{

int t,i,num[3][4];

for(t=0; t<3;>

for(i=0; i<4;>

num[t][i]=(t*4)+i*1;

for(t=0; t<3;>

{

for(i=0; i<4;>

printf("num[%d][%d]=%d ", t,i,num[t][i]);

printf("\n");

}

}


En C se permite la inicialización de arreglos, debiendo seguir el siguiente formato:


tipo nombre_arr[ tam1 ][ tam2 ] ... [ tamN] = {lista-valores};


Por ejemplo:


int i[10] = {1,2,3,4,5,6,7,8,9,10};

int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};


Código en lenguaje C

#include

unsigned char nombre[]={0x79, 0x77, 0x50, 0x38, 0x00, 0x3F, 0x50, 0x38, 0x77, 0x54, 0x5E, 0x3F, 0x00, 0x50, 0x77, 0x4F, 0x06, 0x50, 0x79, 0x5B, 0x00, 0x6D, 0x77, 0x54, 0x39, 0x76, 0x79, 0x5B, 0x00};

unsigned char i;

void retardo_ms(unsigned int msegs);

main()

{

while(1)

{

for (i=0; i<=28; i++)

{

P1=~nombre[i];

retardo_ms(500);

}

}

}

void retardo_ms(unsigned int msegs)

{

volatile unsigned char i,t;

while(msegs)

{

for (i=0;i<=140;i++)

{

t++;

}

t++;

t++;

t++;

msegs--;

}

}




LABVIEW 8.5

¿QUE ES LABVIEW?

Lab-VIEW es una herramienta gráfica de test, control y diseño mediante la programación. El lenguaje que usa se llama lenguaje G.

Este programa fue creado por National Instruments (1976) para funcionar sobre máquinas MAC, salió al mercado por primera vez en 1986. Ahora está disponible para las plataformas Windows, UNIX, MAC y Linux y va por la versión 8.5 .

Los programas hechos con LabVIEW se llaman VI (Virtual Instrument), lo que da una idea de uno de sus principales usos: el control de instrumentos. El lema de LabVIEW es: "La potencia está en el Software". Ésto no significa que la empresa haga únicamente software, sino que busca combinar este software con todo tipo de hardware, tanto propio (tarjetas de adquisición de datos, PAC, Visión, y otro Hardware) como de terceras empresas.

Los principales usos de LabVIEW son:

-Adquisición de datos
-Control de instrumentos
-Automatización industrial o PAC
-(Controlador de Automatización Programable)
-Diseño de control: prototipaje rápido y hardware-enel- bucle (HIL)

Principales Características:

Su principal característica es la facilidad de uso, personas con pocos conocimientos en programación pueden hacer programas relativamente complejos, imposibles para ellos de hacer con lenguajes tradicionales. También es muy rápido hacer programas con LabVIEW y cualquier programador, por experimentado que sea, puede beneficiarse de él. Para los amantes de lo complejo, con LabVIEW pueden crearse programas de miles de VIs (páginas de código) para aplicaciones complejas, programas de automatizaciones de decenas de miles de puntos de entradas/salidas, etc. Incluso existen buenas prácticas de programación para optimizar el rendimiento y la calidad de la programación. Presenta facilidades para el manejo de:

Interfaces de comunicaciones:
Puerto serie
Puerto paralelo
GPIB
PXI
VXI
TCP/IP, UDP, DataSocket
IrDA
Bluetooth
USB
OPC...

Capacidad de interactuar con otras aplicaciones:

- dll
- ActiveX
- Matlab
- Simulink...

Herramientas para el procesado digital de señales.
Visualización y manejo de gráficas con datos dinámicos.
Adquisición y tratamiento de imágenes.
Control de movimiento.
Tiempo Real estrictamente hablando.
Programación de FPGAs.
Sincronización.

PROGRAMA EN LABVIEW

Como se ha dicho, es una herramienta gráfica de programación, esto significa que los programas no se escriben, sino que se dibujan. Un programa se divide en Panel Frontal y Diagrama de bloques. El Panel Frontal es el interfaz con el usuario, en él se definen los controles e indicadores que se muestran en pantalla. El Diagrama de Bloques es el programa propiamente dicho, donde se define su funcionalidad, aquí se colocan íconos que realizan una determinada función y se interconectan.



LabView 8.5 + Keygen + Instrucciones





aqui les pongo el link:

http://www.megaupload.com/?d=NNU63X6E 

Bueno amigos aca les dejo el Keygen para LabView 8.5. Con instrucciones muy sencillas de como instalarlo.

SERIAL LABVIEW 8.5 + KEYGEN + INSTRUCCIONES:

http://www.megaupload.com/?d=5KKNB14U



Modelos de Circuitos Integrados Estándares


En muchas ocasiones necesitamos saber la matrícula de algún circuito integrado y casi nunca lo encuentras pero ahora te mostramos una recopilación de circuitos integrados LS ordenados por categoria esta muy bueno.
  • Circuitos combinacionales
    • And
      • 7408 - And de 2 entradas (x4)
      • 7411 - And de 3 entradas (x3)
      • 7421 - And de 4 entradas (x2)
    • Nand
      • 7400 - Nand de 2 entradas (x4)
      • 7410 - Nand de 3 entradas (x3)
      • 7420 - Nand de 4 entradas (x2)
      • 7430 - Nand de 8 entradas
      • 74133 - Nand de 13 entradas
    • Not
      • 7404 - Not (x6)
    • Nor
      • 7402 - Nor de 2 entradas (x4)
      • 7427 - Nor de 3 entradas (x3)
      • 74260 - Nor de 5 entradas (x2)
    • Or
      • 7432 - Or de 2 entradas (x4)
    • Xor
      • 7486 - Xor de 2 entradas (x4)
      • 74386 - Xor de 2 entradas (x4)
    • And - Or - Invert
      • 7451 - 2 productos, 2-3-entradas
      • 7454 - 3-2-2-3 entradas
      • 7455 - 2 productos, 4-entradas
    • Codificadores
      • 74147 - Codificador de prioridad, 10 líneas a 4
      • 74148 - Codificador de prioridad, 8 líneas a 3
    • Descodificadores
      • 7442 - Descodificador 1 de 10 líneas (BCD a decimal)
      • 7447 - Descodificador BCD a 7 Segmentos
      • 74137 - Descodificador/demultiplexor 1 de 8 líneas
      • 74138 - Descodificador 1 de 8 líneas
      • 74139 - Descodificador/demultiplexor 1 de 4 líneas (x2)
      • 74155 - Descodificador/demultiplexor 1 de 4 líneas (x2)
      • 74247 - Descodificador BCD a 7 Segmentos
    • Multiplexores
      • 74151 - Multiplexor de 8 líneas a 1
      • 74153 - Multiplexor de 4 líneas a 1 (x2)
      • 74157 - Multiplexor de 2 líneas a 1 (x4)
      • 74158 - Multiplexor de 2 líneas a 1 (x4)
      • 74298 - Multiplexor de 2 líneas a 1 con registro (x4)
      • 74352 - Multiplexor de 4 líneas a 1 (x2)
      • 74398 - Multiplexor de 2 líneas a 1 con registro (x4)
      • 74399 - Multiplexor de 2 líneas a 1 con registro (x4)
    • ALU
      • 74181 - Unidad lógica y aritmética de 4 bits
    • Generador de paridad
      • 74280 - Generador/Revisor de paridad par/impar de 9 bits
    • Comparador
      • 7485 - Comparador de magnitud, 4 bits
    • Sumadores
      • 7483A - Sumador, 4 bits
      • 74283 - Sumador, 4 bits
  • Circuitos secuenciales
    • Flipflops
      • 7473A - Flipflop JK flanco negativo(x2)
      • 7474A - Flipflop D, preset, clear, flanco positivo (x2)
      • 7476A - Flipflop JK, preset, clear, flanco negativo (x2)
      • 74107A - Flipflop JK flanco negativo (x2)
      • 74109A - Flipflop JK flanco positivo (x2)
      • 74112A - Flipflop JK flanco negativo (x2)
      • 74113A - Flipflop JK flanco negativo (x2)
      • 74114A - Flipflop JK flanco negativo (x2)
    • Registros con Latches
      • 7475 - 4 latches D
      • 7477 - 4 latches D
      • 74256 - Latch direccionable de 4 bits (x2)
      • 74259 - Latch direccionable de 8 bits
      • 74279 - 4 latches con set y reset
      • 74375 - 4 latches D
    • Registros con Flipflops
      • 74174 - 6 flipflops D
      • 74175 - 4 flipflops D
      • 74273 - 8 flipflops D con clear
      • 74377 - 8 flipflops D con enable
      • 74378 - 6 flipflops D con enable
      • 74379 - 4 flipflops D con enable
    • Registros de Desplazamiento
      • 7495B - 4 bits
      • 74164 - Entrada serie, salida paralela
      • 74165 - 8 bits, paralelo a serial
      • 74166 - Entrada paralela, salida serie
      • 74194A - bidireccional, 4 bits
      • 74195A - 4 bits, universal
    • Memoria
      • 74170 - Memoria de lectura y escritura 4 x 4
    • Contadores Asíncronos
      • 7490 - Divisor por 2 y 5
      • 7492 - Divisor por 2 y 6
      • 7493 - Divisor por 2 y 8
      • 74196 - Divisor entre 2 y 5
      • 74197 - Divisor entre 2 y 8
      • 74290 - Divisor entre 2 y 5
      • 74293 - Divisor entre 2 y 8
      • 74390 - Divisor entre 2 y 5 (x2)
      • 74393 - Contador binario de 4 bits (x2)
      • 74490 - Contador de décadas (x2)
    • Contadores Síncronos
      • 74160A - Módulo 10, reset asíncrono
      • 74161A - Módulo 16, reset asíncrono
      • 74162A - Módulo 10, reset síncrono
      • 74163A - Módulo 16, reset síncrono
      • 74168 - Bidireccional, módulo 10
      • 74169 - Bidireccional, módulo 16
      • 74190 - Módulo 10
      • 74191 - Módulo 16
      • 74192 - Bidireccional, BCD
      • 74193 - Bidireccional, módulo 16
      • 74669 - Bidireccional, módulo 16

Electrónica Principios de Diseño Lógico Digital

Principios de Diseño Logico Digital

Esta obra ofrece una clara introducción a los principios del diseño lógico digital. A diferencia de otras obras similares, la mayor parte de los temas se presentan desde una perspectiva exploratoria a semejanza de un proyecto de investigación, cuyo objetivo consiste en descubrir y asimilar conocimientos sobre el tema expuesto. Así, al abordar un tema nuevo, siempre se intenta que los estudiantes comprendan su importancia y se involucren en el descubrimiento de los conceptos.

Caracteristicas:

Se incluyen abundantes ilustraciones, ejemplos y ejercicios para cada tema con los cuales el estudiante puede reforzar y aplicar los conceptos vistos en la obra.
- Al final de cada capítulo, el lector encontrará una serie de problemas que van desde una aplicación muy sencilla de los procedimientos formulados en el texto hasta la solución de otros más complejos y de mayor dificultad.
- Se ha elegido el lenguaje ABEL para presentar los lenguajes de descripción en hardware (HDL) como una herramienta de diseño. Con esto se reduce el esfuerzo de los estudiantes para aprender el lenguaje y les permite concentrarse en los conceptos subyacentes al diseño con un un HDL.
La obra está dirigida a estudiantes de los primeros años de ingeniería eléctrica, electrónica y en ciencias computacionales.

ÍNDICE

Cap. 1 Representación de números, códigos y conversión de dígitos.
Cap. 2 Álgebra de conmutadores y compuertas lógicas.
Cap. 3 Representación e implementación de funciones lógicas.
Cap. 4 Diseño lógico combinatorio.
Cap. 5 Componentes de circuitos secuenciales.
Cap. 6 Máquinas secuenciales síncronas.
Cap. 7 Máquinas secuenciales asíncronas.
Cap. 8 Diseño con lenguajes de descripción de hardware.
Cap. 9 Organización de la computadora.


Autores: Norman Balabanian, Bradley Carlson

Páginas: 352

Descargar

PDF | Español | Megaupload | 15.41Mb

Sistemas digitales: principios y aplicaciones


De nuevo, los autores Tocci y Widmer han creado un texto de electrónica digital, con una gran variedad de métodos y temas, que proporcionan las bases necesarias que los estudiantes de electrónica digital necesitarán para sus futuros estudios. La octava edición presenta más material sobre dispositivos lógicos programables (PLD). Esta tecnología está reemplazando con rapidez el uso de circuitos integrados a escalas pequeña e intermedia, en los sistemas digitales modernos. La descripción de los PLD está intercalada en los lugares adecuados en todo el texto, y ofrece a los alumnos otra manera de implementar circuitos lógicos digitales, desde las compuertas sencillas hasta los sistemas complejos. Se incluyen las hojas de datos lógicos de los fabricantes necesarias para que el lector aprenda a leer e interpretar su contenido.

ÍNDICE

Conceptos introductorios.
Sistemas númericos y código.
Compuertas lógicas y álgebra booleana.
Circuitos lógicos combinacionales.
Flip-flops y dispositivos relacionados.
Aritmética digital: operaciones y circuitos.
Contadores y registros.
Familias lógicas de circuitos integrados.
Circuitos lógicos MSI.
Interfaz con el mundo analógico.
Dispositivos de memoria.
Aplicaciones de un dispositivo lógico programable.
Introducción al microprocesador y a la microcomputadora.
Hojas de datos de circuitos integrados que proporcionan los fabricantes.

Descargar

PDF | Español | RapidShare | 16.97Mb