Microprocesadores

Solo disponible en BuenasTareas
  • Páginas : 5 (1176 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de mayo de 2011
Leer documento completo
Vista previa del texto
MICROPROCESADORES
INFORME DE PRACTICA 01
OPERACIONES CON PUERTOS – LENGUAJE ENSAMBLADOR

I. Añadir al diagrama esquemático cuatro micro-switchs (interruptores) en los bits inferiores del puerto P3 (P3.0 – P3.3) que deberá configurarse en software como entrada.

MOV P3, #0FFH ; Configura como entrada todo el puerto P3
ANL A, #0FH ; Enmascara la el puerto P3 para que solo loscuatro
; bits menos significativos sean de entrada (0FH)

II. Con esta nueva configuración, realizar los siguientes programas:
III. Imprimir el código fuente de ensamblador de los programas del punto II

a) Se obtiene un dato del puerto P3 de entrada. Este dato es multiplicado por 7 y se muestra en los 8 leds del puerto P1 de salida.

// LEE UN DATO DEL PUERTO P3, LO MULTIPLICA POR7 Y EL RESULTADO ES MOSTRADO EN P1
Org 0

MOV P1, #00H ; Limpia el puerto 1
MOV P3, #0FFH ; Configura como entrada todo el puerto 3
Bucle:
MOV A, P3 ; Lee el dato del puerto 3 y lo almacena en el acumulador
ANL A, #0FH ; Realiza la operación AND para que los bits
; mas significativos estén puestos en cero
MOV B, #7 ; El registro B es asignado con elvalor 7 para realizar
; la multiplicación por dicho numero, con el comando MUL
MUL AB ; Realiza la multiplicación de los registros A y B,
; el resultado se almacena en dos bytes B y A
; de acuerdo a los bits más o menos significativos respectivamente
MOV P1, A ; Como el resultado (bits menos significativos) es guardado en
; el acumulador se muestra el mismoen el puerto P1
JMP Bucle ; vuelve a revisar el dato introducido en el puerto P3

End

b) Se obtiene un dato del puerto P3 de entrada.
Si el dato es menor o igual a 7, entonces se invierten todos los bits del dato y se muestran en los leds del puerto P1 de salida.
Si el dato es mayor a 7, entonces todos los bits del dato se muestran sin modificación en los leds del puerto P1 desalida.

// SE OBTIENE UN DATO DE P3, SI ES MENOR O IGUAL A 7, SE INVIERTE Y MUESTA EN P1,
; SI ES MAYOR A 7 SE MUESTRAN EN P1

Org 0

MOV P1, #0 ; Limpia P1
MOV P3, #0FFH ; Se configura los bits del puerto P3, Como ENTRADA
LEE:
MOV A, P3 ; Se obtiene el dato del puerto P3 (LEER)
ANL A, #0FH ; se realiza la operación AND, para que los bits menos
; significativosdel puerto 3 sean uno
SUBB A, #7 ; Se resta del dato obtenido el numero 7 Para realizar
; la comparación mayor, menor o igual
JC INV ; si es menor a 7 el carry se pone en uno, y saltamos
; a la etiqueta INV, para invertir los bits
JZ INV ; si es igual a cero el acumulador será cero y saltamos
; a la etiqueta INV, para invertir los bits del byte
MOV A, P3; actualizamos el acumulador para mostrar el dato de P3
ANL A, #0FH ; se realiza la operación AND, para que los bits menos
MOV P1, A ; Muestra el mismo dato leído del puerto P3
JMP LEE ; y vuelve a leer el dato introducido
INV:
MOV A, P3 ; para invertir el dato leído del puerto 3, se actualiza
; el acumulador con el dato del puerto 3
CPL A ;realiza el complemento de todo el byte del acumulador
MOV P1, A ; lo muestra en el puerto 1
JMP LEE ; y vuelve a leer el dato introducido

End

c) Se obtiene un dato del puerto P3 de entrada. Este dato es comparado con el numero 7.
Pueden darse tres posibilidades:
* Si el dato es igual a 7, entonces se encienden todos los leds del puerto P1
* Si el dato es mayor a 7,entonces se encienden los leds pares (P1.0, P1.2)
* Si el dato es menor a 7, entonces se encienden los leds impares (P1.1, P1.3)

// SE OBTIENE UN DATO DE P3, SI ES IGUAL A 7, P1 = FF,
; SI ES MAYOR A 7 => P1 = 05H, SI ES MENOR A 7 => P1 = 0AH

Org 0

MOV P1, #0 ; LIMPIA P1
MOV P3, #0FFH ; Se configura los bits del puerto P3, Como ENTRADA
LEE:
MOV A, P3 ; Se...
tracking img