trabajo final

17
TALLER FINAL SEMESTRE MICROPROCESADORES I CAMILO ANDRES INFANTE UNIVERSIDAD SANTIAGO DE CALI “SECCIONAL PALMIRA”

Upload: ruderocker-billy

Post on 19-Jun-2015

482 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Trabajo final

TALLER FINAL SEMESTRE

MICROPROCESADORES I

CAMILO ANDRES INFANTE

UNIVERSIDAD SANTIAGO DE CALI “SECCIONAL PALMIRA”

ELECTROMEDICINA IV

2010

Page 2: Trabajo final

TALLER REPASO GENERAL

1. Alu

La Unidad Aritmético Lógica, o simplemente ALU (por Arithmetic Logic Unit) es una de las unidades que conforman la Unidad Central de Procesos (CPU) mediante la cual se pueden realizar un conjunto de operaciones aritméticas básicas (resta, suma, división y multiplicación) y de operaciones lógicas (OR, NOT, AND, etc.).

RegistroLos registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. Los registros son direccionables por medio de una viñeta, que es una dirección de memoria.

MicroprocesadorUn microprocesador es un circuito integrado que incorpora en su interior una unidad central de proceso (CPU) y todo un conjunto de elementos lógicos que permiten enlazar otros dispositivos como memorias y puertos de entrada y salida (I/O), formando un sistema completo para cumplir con una aplicación específica dentro del mundo real.

BusConjunto de líneas (cables) de hardware utilizados para la transmisión de datos entre los componentes de un sistema informático. Un bus es en esencia una ruta compartida que conecta diferentes partes del sistema como el microprocesador, la controladora de unidad de disco, la memoria y los puertos de entrada, salida, permitiéndoles transmitir información. El bus, por lo general supervisado por el microprocesador.

Bus Bidireccional Es un bus de información en dos sentidos, Lectura-escritura.

Bus de datosEl Bus de Datos es un bus bidireccional, que permite el intercambiar datos del Microprocesador y las unidades de entrada, salida y Entrada/Salida.

Bus de direcciones

Page 3: Trabajo final

El Bus de Direcciones es de una sola vía; desde el Microprocesador hacia los periféricos; con el se selecciona o direcciona a cual elemento se le envía la información o desde cual se recibe.

Bus de controlConjunto de líneas encargadas de la gestión del sistema, lectura, escritura, inhibiciones, etc.

MemoriaSe denomina elemento de memoria a cualquier dispositivo que tenga capacidad para “recordar“ información almacenada previamente.

Memoria RAMEs una memoria de acceso aleatorio (Random Access Memory). Contiene bytes de información, y el microprocesador puede leer o escribir en esos bytes dependiendo de si las líneas de lectura y escritura son señalizadas. Este tipo de memoria olvida toda la información que contiene una vez que la energía se apaga.

Memoria ROMEs una memoria de solo lectura (Read Only Memory). Un chip ROM es configurado por una serie de bytes predefinidos. El bus le dice al chip ROM que byte coger y emplazar en el bus de datos. Cuando la línea lectura cambia su estado, este chip presenta el byte seleccionado en el bus de datos antes mencionado.

Memoria de programaLa memoria de programa, normalmente externa y enchufable a la CPU mediante casete de memoria, almacena el programa escrito por el usuario para su aplicación.

Memoria de Datos

es aquella memoria en la que se pueden almacenar datos.

TemporizadorSe emplean para controlar periodos de tiempo.

ContadorEs una variable que acumula las veces que se pasa por ella. Se suele denominar contador cuando el incremento de la variable es de 1 en 1, pero no tiene por qué ser así obligatoriamente. La sintaxis genérica sería: variable = variable + 1

Page 4: Trabajo final

Puertos Interfaz a través de la cual los diferentes tipos de datos se pueden enviar y recibir.

MicrocontroladorUn microcontrolador es un dispositivo electrónico capaz de llevar a cabo procesos lógicos.

2. Respuestas

a) Que el bus de direcciones de 16 bit tiene mas capacidad de direccionar información que el bus de 8 bits ya que el de 16bits 2^16=65536 posiciones de memoria y el de 2^8=256 posiciones de memoria

b) La diferencia radica en la capacidad de manejo de datos, el de 16 maneja datos de 2 bytes y el de 8 de 1 byte

c) La Velocidad del Procesador es afectada por:

Reloj del Sistema = Un pulso electrónico usado para sincronizar el procesamiento. (Entre pulso y pulso solamente puede tener lugar una sola acción).

Medido en megahertz (MHz) dónde 1 MHz= 1 millón de ciclos por segundo o gigahertz (GHz) donde 1 GHz = 1 ciclos de mil millones por segundo.

De esto es lo que están hablando cuando dicen que una computadora es una máquina de 2.4 GHz .La velocidad de su reloj es de 2.4 mil millones de ciclos por segundo.

Cuanto más grande el número = más rápido el procesamiento

Ancho del Bus = Es la cantidad de datos que la CPU puede transmitir en cada momento hacia lla memoria principal y a los dispositivos de entradas y salidas. (todo camino para conducir bits es un bus).

Page 5: Trabajo final

Un bus de 8 bits mueve en cada instante 8 bits de datos.

El ancho del Bus puede ser de 8, 16, 32, 64, o 128 bits, hasta ahora.

Piense en ello como "cuántos pasajeros (bits) puede caber en determinado momento, dentro del autobús a fin de trasladarse de una parte de la computadora a otra."

Cuanto más grande sea el número = más rápida será la transferencia de datos.

Tamaño de la palabra = Una palabra es la cantidad de datos que la CPU puede procesar en un ciclo de reloj.

Un procesador de 8 bits puede manejar 8 bits cada vez. Los procesadores pueden ser, hasta ahora, de 8-, 16-, 32, o 64- bits.

reloj. No serviría de nada tener un bus que entregue 128 bits cada vez, si la CPU solo puede, utilizar 8 bits y tiene un reloj de baja velocidad. Se formaría una enorme fila de datos esperando poder salir del bus! Cuando las computadoras se saturan como en ese caso, pueden suceder cosas indeseables con sus datos.

d)

Un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine.El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos.

e) Un micro de 8 bits puede hacer operaciones lógicas y aritméticas con operandos (datos) de hasta 8 bits con solo una instrucción.

f) es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.

Page 6: Trabajo final

g) es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata (un PLC) . Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina.

h) El de bajo nivel está más próximo a lo que entiende la máquina y el de alto nivel más próximo a lo que entiende el ser humano

i)

-AT89xxx-TS87xxx-AVR-AT91xxx- XMEGA- AVR32

j)

La línea baja:Es la serie 10Fxxx y 12FxxxLa línea Media:La serie 16FxxxEl PIC16F84La línea mejorada:La serie 18FxxxLa línea Alta:La serie 24Fxxx- 16 bitsLa serie dsPIC30F- 16 bitsLa serie dsPIC33F- 16 bitsLa serie PIC32- 32 bits

k) Dispositivo electrónico que permite, leer, borrar y programar, memorias tipo EPROM, EEPROM, FLASH, microcontroladores, PLD´s entre otros.

l) Es el sistema por el cual se puede familiarizarse con el microcontrolador, también sirve como herramienta de desarrollo, experimentación y prueba de algunos proyectos.

Page 7: Trabajo final

m) Un diagrama de flujo es una representación gráfica de un algoritmo o proceso.

3.

las siguientes preguntas están relacionadas con el microcontrolador AT89C52:

A). cuál es el tamaño del bus de datos.El tamaño de un bus de datos de una AT89C52 es de 8 bitsB). cuál es el tamaño de la memoria de programa.AT89C52 tiene mayor tamaño que la memoria del programa AT89C51 (52 ha 8Kbytes la memoria del programa, mientras que 51 ha 4Kbytes). C. cuál es el tamaño de la memoria interna de datos volátiles. El tamaño de memoria de datos volátiles es de 256 x RAM interna de 8 bits.D). cuál es la función de un de los registros de propósito especifico.El acumulador almacena temporalmente el resultado de las operaciones aritméticas y lógicas

E). cuál es la función de los registros de propósito general. La memoria interna RAM en el 8051/8052 contiene los registros de función especial, bancos de registros, y el área de datos conocida como la RAM de propósito general. F). cuál es la función del registro A.La función de registro A, manda la información o datos almacenado a una posición de memoria.Un registro A es un acumulador de 8 bits y transporta datos MOVER- DESTINO - FUENTEG). describa cual es la función del registro psw y qué papel cumplen cada uno de sus bits.Almacena la información que describe los resultados de operaciones anteriores, esta información se almacena asignando un bits en el registro en algunos microprocesadores el registro de código de condición contiene 8 bits el bits menos significativo es el bits de acarreo o bits C que se pone a uno cuando se produce un acarreo aritmético el bits de desbordamiento, o el bits V se pone en 1 si se produce un desbordamiento, el bits cero o el bits Z el tercer bits en el registro de código de condición se pone a uno cuando se produce el resultado cero el bits negativo o el bits N se pone a uno cuando el resultado es negativo.

Page 8: Trabajo final

H). describan como se configuran los puertos para que trabajen como entrada o salida.El funcionamiento de los puertos es similar al de una posición de memoria. Al igual que los registros de una memoria, Además, P1.0 y P1.1 se puede configurar para ser eltemporizador / contador 2 de entrada de la cuenta externa (P1.0/T2) y eltemporizador / contador 2 de disparo de entrada (P1.1/T2EX), respectivamente.I). cuál es la diferencia entre instrucciones de direccionamiento directo y direccionamiento indirecto, de algunos ejemplos. Específica en la instrucción por un campo de dirección de 8 bites. Solo la RAM interna de datos (primeros 128 bites) y la zona de SFR se pueden direccionar de esta forma.EjemploADD A, 4CHEs decir suma el contenido del acumulador con el contenido de la posición de memoria (4CH).A<--(A) +(4C).DIRECCIONAMIENTO INDIRECTO la instrumentación especifica un registro que contiene la dirección de operando. Tanto la memoria RAM interna, como la externa se pueden direccionar indirectamente los registros para direccionar sobre el mapa de 8 bits son R0 Y R1 del banco de registro seleccionada, o el STACK panter el registro para direccionar sobre 16 bits solo puede ser el DPTR Ejemplo:ADD A,@R0; ASI,SI (R0)= 4CH la operación será AC—(A)+(4C)(@) Es el indicador de direccionamiento indirecto

4. Programacion.

A. /* se observan una serie de instrucciones mediante las cuales asignamos nombre a una posición de memoria, guardamos un numero en una posición, sumamos a un acumulador lo que se encuentra en una posición y demás aplicaciones de el KEIL UVISION y el ATMEL AT89C52*/

ORG 0X00

Page 9: Trabajo final

W EQU 1FH

REGRESAR: MOV 35H,#35HMOV 81H,#45HMOV A,81HSUBB A,35HMOV W,#56HMOV 20H,WMOV A,#45HSUBB A,83HMOV A,84HMOV A,25HADD A,P1MOV 26H,A

JMP REGRESAREND

B. /* En este programa parpadean dos leds mediante Las instrucciones SETB bit y CLR bit que afectan de forma directa al bit poniendo un 1 en el bit dirigido*/

ORG 0X00

BACK: SETB P1.1CLR P1.1 SETB P1.2 CLR P1.2 JMP BACK

END

B.2 /* esta programación tiene como objetivo sumar 3 numeros y promediarlos : el numero en P0 es movido al acumulador, al acumulador se le suman otros puertos, p2 y p3 a B en la RAM interna se le asigna la cantidad de variables sumadas quedando dos valores únicos a dividir A y B los cuales se operan mediante DIV AB este resultado se asigna al puerto P1*/

ORG 0X00

Page 10: Trabajo final

BACK: MOV A, P0ADD A, P2ADD A, P3MOV B, #03HDIV ABMOV P1, A

JMP BACKEND

B.3

ORG 0X00/*M ES IGUAL A LA PENDIENTE (Y2-Y1)/(X2-X1) DONDE P0=Y2 P1=Y1 P2=X2 P3=X1 la única variación respecto a los ejercicios anteriores es SUBB la cual es la resta*/

BACK: MOV A, P0 SUBB A, P1 MOV P0, #00H MOV P1, #00H MOV P1, A MOV A, P2 SUBB A, P3 MOV P2, #00H MOV P3, #00H MOV P2, A MOV A, P1 MOV B, P2 DIV AB MOV P1, #00H MOV P2, #00H MOV P1, A JMP BACK END

C. /* la orden CPL es la encargada de invertir el numero mejor dicho negarlo*/ ORG 0X00

BACK: MOV P1, #6D

MOV A, P1CPL AMOV P2, AJMP BACK

Page 11: Trabajo final

END

E. /* Esta es la comparación <,>,=, con la instrucción CJNE el cual utilizando el registro PSW bit del carry y el bit P señala, cuando el numero en el acumulador es mayor que P2 no hay carry cuando es menor el acumulador que P2 hay un 1 en el registro P y si es igual es un cero el SETB se utiliza para aumentar un bit puerto p3 donde p3.1 es = , P3.0 es > y P3.2 es <*/

ORG 0X00BACK:

MOV P3,0X00MOV A, P1CJNE A, P2, SIGUIENTEJMP IGUAL

SIGUIENTE: JNC P2_MENORJMP P2_MAYOR

IGUAL: SETB P3.1JMP FIN

P2_MENOR: SETB P3.0JMP FIN

P2_MAYOR: SETB P3.2JMP FIN

FIN: JMP BACKEND

F. /* la instrucción DJNZ decremento a p2 hasta llegar a cero JB habilita el programa siempre que el haya 1 bit en la posición P3.0 y permite que la sección LED del programa encienda y apague un led el número de veces estipulado en p2.*/

ORG 0X00BACK: JB P3.0, PUERTO2

JMP BACK

Page 12: Trabajo final

PUERTO2: DJNZ P2, LEDJMP BACK

LED: SETB P1.0CLR P1.0JMP BACK

ENDG. /* Consiste en contar el numero de unos en p1 hayandolos con JBC, borrándolos y sumándolos con INC una vez terminado se busco en la configuración del display en p2 de tal manera que dado el numero que diera por resultado ajustarlo para que aparezca*/

ORG 0X00INFINITO: MOV A,0X00 JB P3.0,VOLVER

JMP INFINITO VOLVER: JBC P1.0,SUMA

JBC P1.1,SUMA JBC P1.2,SUMA JBC P1.3,SUMA JBC P1.4,SUMA JBC P1.5,SUMA JBC P1.6,SUMA JBC P1.7,SUMA JMP FINAL

SUMA: INC A

JMP VOLVERFINAL: CJNE A,#00H,NP

MOV P2,#0X7E JMP INFINITO

NP: CJNE A,#01H,NP1 MOV P2,#0X30 JMP INFINITO

NP1: CJNE A,#02H,NP2 MOV P2,#0X6D JMP INFINITO

Page 13: Trabajo final

NP2: CJNE A,#03H,NP3 MOV P2,#0X79 JMP INFINITO

NP3: CJNE A,#04H,NP4 MOV P2,#0X33 JMP INFINITO

NP4: CJNE A,#05H,NP5 MOV P2,#0X5B JMP INFINITO

NP5: CJNE A,#06H,NP6 MOV P2,#0X1F JMP INFINITO

NP6: CJNE A,#07H,NP7 MOV P2,#0X70 JMP INFINITO

NP7: CJNE A,#08H,NP8 MOV P2,#0XFF

NP8: JMP INFINITO

END

4.

A. /* corre un bit a la derecha de puerto p1 y carga los registros r2 r1 r0 y los decremento, el corre el bit cuando el decremento de los registros llegue a 0*/ ORG 0X00

MOV A,#0FEHCICLO: MOV P1,A

RL A MOV R0,#3

CICLOA: MOV R1,#2CICLOB: MOV R2,#1CICLOC: DJNZ R2,CICLOC

DJNZ R1,CICLOB DJNZ R0,CICLOA SJMP CICLO END