0% encontró este documento útil (0 votos)
34 vistas19 páginas

Codigos

Cargado por

mariana luevano
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas19 páginas

Codigos

Cargado por

mariana luevano
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 PDF, TXT o lee en línea desde Scribd

Universidad autónoma de Aguascalientes

Practica 1

Materia: controladores de señales biomédicas

Carrera: Ingeniería Biomédica 4B

Maestro: José de Jesús bonilla muoz

Integrantes del Equipo;


Heidi paloma Lara Herrera
Mariana Luevano Roque

Fecha:
Introducción:
Los microcontroladores, la interacción con dispositivos externos como LEDs es una
práctica común y fundamental para entender el funcionamiento y las capacidades de
estos dispositivos. Microchip Studio, anteriormente conocido como Atmel Studio, es un
entorno de desarrollo integrado (IDE) ampliamente utilizado para programar
microcontroladores de la familia Atmel, como los populares microcontroladores AVR.
En esta práctica en Microchip Studio, se explorarán varios códigos para controlar
LEDs en diferentes patrones y tiempos. La programación de LEDs no solo es una
excelente manera de comprender los conceptos básicos de la programación de
microcontroladores, sino que también permite visualizar de forma tangible el resultado
de nuestro código a través de la iluminación de los LEDs.
Al programar LEDs en diferentes tiempos y patrones, se podrá experimentar con
conceptos como temporización, bucles, condicionales y manipulación de puertos de
entrada/salida. Estas habilidades son fundamentales para el desarrollo de sistemas
embebidos y la creación de proyectos electrónicos interactivos.
A lo largo de esta práctica, se explorarán diferentes ejemplos de código que controlan
LEDs de manera creativa, como parpadeo intermitente, secuencias de encendido y
apagado, efectos de fading (atenuación) y patrones de encendido más complejos. Esto
permitirá no solo adquirir experiencia en la programación de microcontroladores, sino
también estimular la creatividad en el diseño de aplicaciones basadas en LEDs.

Objetivo
El objetivo de esta práctica es aprender a utilizar las funciones de temporización y
control de GPIO de los microcontroladores para crear efectos de iluminación
personalizados. Mediante la programación de estos códigos, se podrá controlar la
intensidad y la duración de la iluminación de los LEDs de forma precisa y creativa.

Actividad
1. Realice una subrutina que sea capaz de realizar un retardo para los siguientes
tiempos
A) 1 milisegundo
B) 100 milisegundos
C) 500 milisegundos
D) 1 segundo

2. Realice un código para el microcontrolador ATmega328P donde se enciendan los


leds de manera asíncrona, el tiempo de retardo entre el encendido y el apagado
deberá de ser de 500 milisegundos
3. Haciendo uso de las instrucciones LSL y LSR, realice el encendido de 8 leds donde
enciendan desde el bit menos significativo hasta el bit más significativo y se apaguen
desde el bit más significativo hasta el menos significativo. El tiempo de encendido del
led debe ser de 100 milisegundos
4. Realice un código para el ATmega328P que sea capaz de encender 8 bits
comenzando desde el menos significativo hasta el más significativo, deberán de
encender de uno en uno y el tiempo que debe de haber entre cada led es de 1
segundo
5. Escriba un código para el ATmega328P en donde se trabaje con 8 bits la siguiente
rutina

Códigos
Ejercicio 1
DELAY1S:
LDI R20, 180
CICLO1:
LDI R21, 255
CICLO2:
LDI R22, 21
CICLO3:
NOP
DEC R22
BRNE CICLO3
DEC R21
BRNE CICLO2
DEC R20
BRNE CICLO1
RET
DELAY2_1S:
LDI R20, 180
CICLO_1:
LDI R21, 255
CICLO_2:
LDI R22, 21
CICLO_3:
NOP
DEC R22
BRNE CICLO_3
DEC R21
BRNE CICLO_2
DEC R20
BRNE CICLO_1

RET
LDI R16, $0
LOOP:
LDI R16, $1
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $3
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $7
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $0F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $1F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $3F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $7F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $FF
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $7F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $3F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $1F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $0F
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $7
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $3
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
LDI R16, $1
OUT PORTD, R16
CALL DELAY1S
CALL DELAY2_1S
RJMP LOOP

Ejercicio 2
.INCLUDE"[Link]"
.ORG 0x00 ;
LDI R18, 0xFF ;
OUT DDRD, R18
LOOP:
LDI R18, 0b00000001 ;
OUT PORTD, R18
CALL DELAYms500 ;
LDI R18, 0b00000010 ;
OUT PORTD, R18
CALL DELAYms500 ;
LDI R18, 0b00000000 ;
OUT PORTD, R18
CALL DELAYms500 ;
RJMP LOOP ;
DELAYms500:
LDI R19, 125 ;
DELAms500 LOOP:
LDI R20, 0xFF ;
DELAYms500 INNER LOOP:
DEC R20 ;
BRNE DELAY ms50 INNER LOOP ;
DEC ;
BRNE DELAYms500 LOOP ;
RET ;

Ejercicio 3
. INCLUDE "[Link]"
.ORG 0x00

; inicialización de stack pointer


LDI R16, HIGH(RAMEND)
OUT SPH, R16
LDI R16, LOW(RAMEND)
OUT SPL, R16

; CONFIGURACIONES
; configurar E/S
; Puerto de D como salida
LDI R16,0XFF ; 255-SON 8 BITS EN ALTO
OUT DDRD,R16 ; CONFIRA A TODOS LOS BITS EN ALTO QUE INDICA QUE SON
SALIDAS

; REGISTRO VARIABLE
LDI R16,0X01 ; Inicializar el registro con el LED menos significativo encendido
MAIN:
LDI R17,0X07
LOOP_1:
; Encender LEDs desde el menos significativo hasta el más significativo
OUT PORTD,R16
CALL DELAY1S
; Desplazar a la izquierda para encender el siguiente LED
LSL R16
DEC R17
BRNE LOOP_1

LDI R17,0X07
LOOP_2:
; Apagar LEDs desde el más significativo hasta el menos significativo
OUT PORTD,R16
CALL DELAY1S
; Desplazar a la derecha para apagar el siguiente LED
LSR R16
DEC R17
BRNE LOOP_2

RJMP MAIN

DELAY1S:

LDI R20,100
CICLOAN:
LDI R21,10
CICLO1:
LDI R22,228
CICLO2:
NOP
NOP
NOP
NOP
DEC R22
BRNE CICLO2
NOP
DEC R21
BRNE CICLO1
DEC R20
BRNE CICLOAN

RET
Ejercicio 4
[Link]
;
; Créate: 3/20/2024 [Link] AM
; Autor: Paloma & Mariana
;
. INCLUDE "[Link]"
.ORG 0x00
; inicialización de stack pointer
LDI R16, HIGH(RAMEND)
OUT SPH, R16
LDI R16, LOW(RAMEND)
OUT SPL, R16
; CONFIGURACIONES
; configurar E/S
; Puerto de D como salida
LDI R16, $FF; 255-SON 8 BITS EN ALTO
OUT DDRD, R16; CONFIRA A TODOS LOS BITS EN ALTO QUE INDICA QUE SON
SALIDAS
; REGISTRO VARIABLE
LDI R16, $0
LOOP:
LDI R16, $1
OUT PORTD, R16
CALL DELAY1S
LDI R16, $3
OUT PORTD, R16
CALL DELAY1
LDI R16, $7
OUT PORTD, R16
CALL DELAY1S
LDI R16, $0F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $1F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $3F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $7F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $FF
OUT PORTD, R16
CALL DELAY1S
LDI R16, $7F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $3F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $1F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $0F
OUT PORTD, R16
CALL DELAY1S
LDI R16, $7
OUT PORTD, R16
CALL DELAY1S
LDI R16, $3
OUT PORTD, R16
CALL DELAY1S
LDI R16, $1
OUT PORTD, R16
CALL DELAY1S
RJMP LOOP
DELAY1S:
LDI R16,106
CICLO:
LDI R17,150
CICLO2:
LDI R18,250
CICLO3:
NOP
DEC R18
BRNE CICLO3
DEC R17
BRNE CICLO2
DEC R16
BRNE CICLO
RET
Ejercicio 5
INCLUDE "[Link]"
.ORG 0x00
; inicialización de stack pointer
LDI R16, HIGH(RAMEND)
OUT SPH, R16
LDI R16, LOW(RAMEND)
OUT SPL, R16
; CONFIGURACIONES
;configurar E/S
;Puerto de D como salida
LDI R16, $FF ; 255-SON 8 BITS EN ALTO
OUT DDRD, R16 ; CONFIRA A TODOS LOS BITS EN ALTO QUE INDICA QUE SON
SALIDAS
;REGISTRO VARIABLE
LDI R16, $0
LOOP:
LDI R16, $81
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
LDI R16, $42
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
LDI R16, $24
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
LDI R16, $18
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
LDI R16, $24
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
LDI R16, $42
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
LDI R16, $81
OUT PORTD, R16
CALL DELAY250
OUT PORTD ,R16
RJMP LOOP
DELAY250:
LDI R20, 180
CICLO1:
LDI R21, 255
CICLO2:
LDI R22, 21
CICLO3:
NOP
DEC R22
BRNE CICLO3
DEC R21
BRNE CICLO2
DEC R20
BRNE CICLO1
RET
Diagramas de flujo

También podría gustarte