Вы находитесь на странице: 1из 9

ESCUELA SUPERIOR POLITCNICA

DEL LITORAL

FACULTAD DE INGENIERA
ELCTRICA Y CIENCIAS DE LA
COMPUTACIN

LABORATORIO DE
MICROPROCESADORES

INFORME #6
Tutorial Bsico del Entorno de
Desarrollo

PROFESORA: Ing. Marcia Garcs


Mendoza

GRUPO #3
Jorge Elas Chamba Briones
Kevin Agustn Salazar Guzmn

PARALELO: 6

FECHA DE PRESENTACIN
15/12/2015
II Trmino 2015-2016

1. Enunciado del Proyecto

OBJETIVOS

Familiarizar al estudiante con el entorno de desarrollo u Vision 5 y del programa


Proteus, para lo cual se utilizar un programa sencillo que rota los LEDS conectados en
los puertos P1 y P2 del microcontrolador derivado AT89C52 que tiene 8K bytes de
memoria de programa interna tipo FLASH.

2. Diagrama de Bloques

Cdigo Ingresado por Teclado AT89C52 Salida por Pantalla


3. Diagrama de Flujo

Programa Principal

Subrutinas
4.

Descripcin del Algoritmo

Descripcin del Programa Principal

1. Inicializar la direccin de donde iniciar el programa fuente, en ORG 0H


2. Movemos el valor de #0 al registro A.
3. Los puertos P1 y P2 toman el valor de A, es decir son inicializados con el
valor de cero para ser utilizados, debido a que estaba configurados como
entradas.
4. Limpiamos el bit 0 del PUERTO 0.
5. Seteamos el bit 0 del PUERTO 0.
6. Seteamos el bit 7 del PUERTO 7, simula el valor que toma la botonera.
7. Creamos la etiqueta APTECLA, en la cual se pregunta si la tecla inicio del
paso 6 ha sido presionada.
8. Si es presionada me pregunta si la el valor del puerto ha sido liberado, si es
correcto, entonces apaga el led_inicio que se encuentra en el PUERTO 0 en
el bit 0.
9. El valor de #01H se mueve al registro R4 y el valor de #80H se mueve al
registro R5.
10. Se crea una etiqueta REPETIR, en la cual ingreso por el PUERTO 1 donde
toma el valor de R5 y el puerto 2 toma el valor de R4.
11. Se pregunta por la subrutina retardo, la cual me permitir realizar una
pequea demora en el momento que el encendido de LED va rotando.
12. El valor del registro R4 se mueve a A (acumulador)
13. Debido a que A tiene el valor de 1, este rota a la derecha, por lo que se
observa que el solo un led esta encendido.
14. Luego se vuelve a almacenar el valor de A al registro R4.
15. Mueve el valor del registro R5 a A.
16. Ahora el valor de A rota hacia la izquierda.
17. Guarda el valor que tiene A al registro R5.
18. Volvemos a la etiqueta REPETIR.

Descripcin de la Subrutina Retardo

1. Movemos el valor de #200H al registro R3.


2. Almacenamos el valor de #255H al registro R2.
3. Decrementamos en uno el valor que tiene R2 y luego se pregunta por el valor de
R2, si no es cero entonces se sigue decrementando hasta que el valor se haga
cero, mientras que si el valor ya es cero, entonces se decrementa en uno el
registro R3 y se pregunta si R2 es cero, si lo es, termina la subrutina retardo.
4. Si el valor de R2 no es cero, entonces salta hacia el lazo L02.

5. Cdigo del Programa Fuente

; PRACTICA_06
; ============================================================
; El siguiente programa en lenguaje ensamblador implementa la rotacin
; de puerto P1 y tambin de puerto P2.
; Inicialmente el programa enciende LED_INICIO y espera por TECLA. Para iniciar
; Rotacin apretar y luego liberar TECLA.
; El archivo ejecutable se lo implanta en la memoria de programa del
; Microcontrolador AT89C52 disponible en PROTEUS para la simulacin.
; Frecuencia del cristal 12.0 MHz.
;============================================================

ORG 0H ; Inicio del programa fuente


MOV A, #0
MOV P1, A; P1 salida
MOV P2, A; P2 salida
CLR P0.0; P0.0 salida
SETB P0.0; Enciende LED_INICIO
SETB P0.7; P0.7 entrada - tecla
APTECLA: JB P0.7, APTECLA; apretar tecla
LITECLA: JNB P0.7, LITECLA; liberar tecla
CLR P0.0; Apaga LED_INICIO
MOV R4, #01H
MOV R5, #80H
REPETIR: MOV P1, R5
MOV P2, R4
ACALL RETARDO
MOV A, R4
RR A
MOV R4, A
MOV A, R5
RL A
MOV R5, A
SJMP REPETIR
; SUBRUTINA RETARDO, USA DOS LAZOS ANIDADOS
RETARDO: MOV R3, #200
L02: MOV R2, #255
L01: DJNZ R2, L01
DJNZ R3, L02
RET
END ; Fin del programa fuente

6. Captura de pantallas de la simulacin

Simulacin en Proteus
7. Conclusiones

Pudimos concluir que Keil uVision 5 es una excelente herramienta para


programar el microcontrolador que se est estudiando como lo es el AT89C51.
Una de las ventajas de esta herramienta es el DEBUG que nos permite visualizar
paso a paso lo que se est haciendo, esto es fundamental al momento de querer
visualizar un error. Otra ventaja es que se puede visualizar la salida de los
puertos, activando P0, P1, P2, P3 en el men Peripherals.

Concluimos que los microcontroladores derivados de la familia 8051/8052, en


nuestro caso se trabaj con el AT89C51. El AT89C51 tiene 128 bytes de
memoria RAM, 4k bytes de memoria flash, tiene 2 temporizadores y una
frecuencia de operacin hasta 24MHz. Una caracterstica de este
microcontrolador es que se puede re-escribir hasta 1000 veces. En este proyecto
se utiliz una frecuencia de 12MHz.

Se logr familiarizar con la simulacin de sistemas digitales. Una ventaja que


nos proporciona PROTEUS es poder simular y visualizar a tiempo real lo que
hace tu programa.

Se concluy de que el programa, a pesar de tener una excelente interfaz an se


est utilizando lenguaje ensamblador (lenguaje de bajo nivel) por ende la
programacin va ser tan tediosa y los cdigos van hacer extensos.

8. Recomendaciones

Se recomienda para la simulacin paso a paso en uVision4 que cuando se llegue


a la etiqueta APTECLA del programa poner en 1 cualquier bit de P1 (puerto 1)
con esto se asegura se presion la tecla y cuando se llegue a la siguiente lnea
que es la etiqueta LITECLA poner en 0 el bit que se haba modificado en P1,
con esto se asegura que la tecla fue soltada, es importante estos pasos ya que sin
estos no podra visualizar los siguientes cambios que tiene el programa.

Se recomienda cuando se quiera saltar de una subrutina utilizar STEP OVER ya


que con esto se ahorra tiempo al momento de ejecutar el programa paso a paso.
Y si en caso de que haya entrado a una subrutina para salir de ella utilice STEP
OUT, con esto vuelves al programa principal.

Nunca olvidarse que antes de usar los PUERTOS, estos estn configurado como
entradas, por ende hay que limpiar los puertos y luego configralos como
entrada o salida. En este caso configuramos dos puertos como salida (para los
leds) y un bit de un puerto como entrada (para la botonera).
Es recomendable poner una botonera al pin 9 del microcontrolador para resetar
todo de nuevo.

9. Anexos

Conteste las preguntas siguientes:

1. Despus de RST escriba el contenido de: A, B, SP, PC, P0, P1, P2 y P3.

A = 0X00

B = 0X00

SP = 0X07

PC = 0X0000

P0 = 0X1

P1 = 0X1

P2 = 0X1

P3 = 0X1

2. Despus de ejecutar RR A dos veces el contenido de P2 es: ________.

0X80

3. EL cdigo de mquina de la instruccin MOV P2, A es:


____0X0004_____. Cuntos bytes ocupa
en la memoria de programa? ____1_______.

4. La instruccin MOV R4, #01H, cuntos bytes ocupa en la memoria de


programa? _______.

5. El cdigo de mquina de la instruccin JNB P0.7, LITECLA es:


________. Es decir
ocupa _______ bytes en memoria.

6. Despus de ejecutar RL A tres veces, el contenido del registro P1 es:


__________.
es:__________.

7. La instruccin MOV R5, #80H, cuntos bytes ocupa en la memoria de


programa? ________. Escriba el cdigo de mquina de la instruccin: ______. Escriba el
contenido de R5 despus
de su ejecucin. R5= ______.

8. Despus de la ejecucin de MOV R2, #255, el contenido de R2 es:


_____________.

9. Si estamos entrampados en la subrutina RETARDO, de qu manera se


regresa al programa principal para continuar con la ejecucin paso a paso? Explique.

10. Determine la magnitud del RETARDO, asuma XTAL de 12 MHz. Detalle


en su reporte
el clculo del RETARDO.

Вам также может понравиться