0% encontró este documento útil (0 votos)
134 vistas7 páginas

Practica 5 Micros

El documento presenta el código en lenguaje ensamblador para configurar los puertos de entrada/salida (GPIO) en microcontroladores. El código configura los puertos N y J, enciende y apaga un LED en el puerto N 6 veces cuando se presiona un botón en el puerto J, usando retardos para simular flashazos.

Cargado por

Panda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
134 vistas7 páginas

Practica 5 Micros

El documento presenta el código en lenguaje ensamblador para configurar los puertos de entrada/salida (GPIO) en microcontroladores. El código configura los puertos N y J, enciende y apaga un LED en el puerto N 6 veces cuando se presiona un botón en el puerto J, usando retardos para simular flashazos.

Cargado por

Panda
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Manual de Prácticas

Microprocesadores y
Microcontroladores

P5

Puertos de E/S en lenguaje


ensamblador

Nombre completo del alumno Firma


Alvarez Rojas Brandon
N° de brigada: Fecha de elaboración: 04/10/2019 Grupo: 10
I. OBJETIVO

El estudiante analizará e implementará la configuración apropiada de los puertos de


entrada/salida (GPIOS), para un problema específico.

II. DESARROLLO
CODIGO PARTE I

.global main
.data
.text

SYSCTL_RCGCGPIO_R .field 0x400FE608,32 ;

GPIO_PORTN_DATA_R. field 0X400643FC,32 ;DECLARACION PUERTO_N


GPIO_PORTN_DIR_R. field 0X40064400,32
GPIO_PORTN_DEN_R .field 0X4006451C,32

GPIO_PORTJ_DATA_R .field 0X400603FC,32; DECLARACION PUERTO J


GPIO_PORTJ_DIR_R .field 0X40060400,32
GPIO_PORTJ_DEN_R .field 0X4006051C,32
GPIO_PORTJ_PUR_R. field 0X40060510,32

main LDR R0, SYSCTL_RCGCGPIO_R


MOV R1, #0X1100
STR R1,[R0]

NOP
NOP
NOP

LDR R0, GPIO_PORTN_DIR_R


MOV R1, #00000011B
STR R1,[R0]

LDR R0,GPIO_PORTN_DEN_R
STR R1,[R0]

LDR R0, GPIO_PORTJ_DIR_R


MOV R1,#0
STR R1,[R0]

LDR R0,GPIO_PORTJ_DEN_R
MOV R1,#0X03
STR R1,[R0]
LDR R0, GPIO_PORTJ_PUR_R
STR R1,[R0]

STACA LDR R0, GPIO_PORTN_DATA_R


MOV R1,#0
STR R1,[R0]
LDR R0, GPIO_PORTJ_DATA_R
AQUÍ LDR R1,[R0]
ANDS R1,#0X02
BNE AQUI

LDR R0, GPIO_PORTN_DATA_R


MOV R1, #0X02
STR R1,[R0]

LDR R0, GPIO_PORTJ_DATA_R


ACA LDR R1,[R0]
ANDS R1,#0X02
BEQ ACA
B STACA

CODIGO PARTE II

SYSCTL_RCGCGPIO_R .field 0x400FE608,32 ;

GPIO_PORTN_DATA_R .field 0X400643FC,32 ;DECLARACION PUERTO_N


GPIO_PORTN_DIR_R .field 0X40064400,32
GPIO_PORTN_DEN_R .field 0X4006451C,32

GPIO_PORTJ_DATA_R .field 0X400603FC,32; DECLARACION PUERTO J


GPIO_PORTJ_DIR_R .field 0X40060400,32
GPIO_PORTJ_DEN_R .field 0X4006051C,32
GPIO_PORTJ_PUR_R .field 0X40060510,32

main LDR R0, SYSCTL_RCGCGPIO_R


MOV R1, #0X1100
STR R1,[R0]

NOP
NOP
NOP

LDR R0, GPIO_PORTN_DIR_R


MOV R1, #00000011B
STR R1,[R0]

LDR R0,GPIO_PORTN_DEN_R
STR R1,[R0]

LDR R0, GPIO_PORTJ_DIR_R


MOV R1,#0
STR R1,[R0]

LDR R0,GPIO_PORTJ_DEN_R
MOV R1,#0X03
STR R1,[R0]
LDR R0, GPIO_PORTJ_PUR_R
STR R1,[R0]

STACA LDR R0, GPIO_PORTN_DATA_R


MOV R1,#0
STR R1,[R0]
RR
LDR R0, GPIO_PORTJ_DATA_R
AQUI LDR R1,[R0]
ANDS R1,#0X02 Se está esperando a que se oprima el botón
BNE AQUI

MOV R4,#6 Se colocan los 6 flashasos


LOOP2 LDR R0, GPIO_PORTN_DATA_R
MOV R1, #0X02
STR R1,[R0]
Se deja encendido el led con el retardo que se le coloco
MOVN R5,#0XB0AA
MOVT R5,#0X28
LOOP SUBS R5,#1
BNE LOOP

LDR R0, GPIO_PORTN_DATA_R


MOV R1,#0
STR R1,[R0]
Se apaga el led con el retardo colocado
MOVN R5,#0XB0AA
MOVT R5,#0X28
LOOP1 SUBS R5,#1
BNE LOOP1

SUBS R4,#1
BNE LOOP2 En esta parte se hace el loop para los 6 flashasos
B RR

También podría gustarte