1. TALLER FINAL SEMESTRE
MICROPROCESADORES I
CAMILO ANDRES INFANTE
UNIVERSIDAD SANTIAGO DE CALI “SECCIONAL PALMIRA”
ELECTROMEDICINA IV
2010
2. 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.).
Registro
Los 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.
Microprocesador
Un 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.
Bus
Conjunto 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 datos
El 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
3. 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 control
Conjunto de líneas encargadas de la gestión del sistema, lectura, escritura,
inhibiciones, etc.
Memoria
Se denomina elemento de memoria a cualquier dispositivo que tenga
capacidad para “recordar“ información almacenada previamente.
Memoria RAM
Es 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 ROM
Es 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 programa
La 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.
Temporizador
Se emplean para controlar periodos de tiempo.
Contador
4. Es 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
Puertos
Interfaz a través de la cual los diferentes tipos de datos se pueden enviar y
recibir.
Microcontrolador
Un 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).
5. 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.
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á
6. 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 12Fxxx
La línea Media:
La serie 16Fxxx
El PIC16F84
La línea mejorada:
La serie 18Fxxx
La línea Alta:
La serie 24Fxxx- 16 bits
La serie dsPIC30F- 16 bits
La serie dsPIC33F- 16 bits
La 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.
m) Un diagrama de flujo es una representación gráfica de un algoritmo o
proceso.
7. 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 bits
B). 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 - FUENTE
G). 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.
H). describan como se configuran los puertos para que trabajen como
entrada o salida.
8. 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 el
temporizador / contador 2 de entrada de la cuenta externa (P1.0/T2) y
el
temporizador / 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.
Ejemplo
ADD A, 4CH
Es 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
W EQU 1FH
9. REGRESAR: MOV 35H,#35H
MOV 81H,#45H
MOV A,81H
SUBB A,35H
MOV W,#56H
MOV 20H,W
MOV A,#45H
SUBB A,83H
MOV A,84H
MOV A,25H
ADD A,P1
MOV 26H,A
JMP REGRESAR
END
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.1
CLR 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
BACK: MOV A, P0
10. ADD A, P2
ADD A, P3
MOV B, #03H
DIV AB
MOV P1, A
JMP BACK
END
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, P1
CPL A
MOV P2, A
JMP BACK
END
11. 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 0X00
BACK:
MOV P3,0X00
MOV A, P1
CJNE A, P2, SIGUIENTE
JMP IGUAL
SIGUIENTE: JNC P2_MENOR
JMP P2_MAYOR
IGUAL: SETB P3.1
JMP FIN
P2_MENOR: SETB P3.0
JMP FIN
P2_MAYOR: SETB P3.2
JMP FIN
FIN: JMP BACK
END
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 0X00
BACK: JB P3.0, PUERTO2
JMP BACK
12. PUERTO2: DJNZ P2, LED
JMP BACK
LED: SETB P1.0
CLR P1.0
JMP BACK
END
G. /* 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 0X00
INFINITO: 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 VOLVER
FINAL:
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
NP2: CJNE A,#03H,NP3
13. 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,#0FEH
CICLO: MOV P1,A
RL A
MOV R0,#3
CICLOA: MOV R1,#2
CICLOB: MOV R2,#1
CICLOC: DJNZ R2,CICLOC
DJNZ R1,CICLOB
DJNZ R0,CICLOA
SJMP CICLO
END