Você está na página 1de 7

MODIFIQUE EL PROGRAMA PRACTICA 1DE MANERA QUE ALTERNE EN EL ECNCENDIDO DE LA

PARTE ALTA Y PARTE BAJA.

CODIGO PARACTICA 1
/*
* practica1.asm
*
* Created: 12/03/2019 12:27:41 p. m.
* Author: Acer
*/
.CSEG // indica seg. de codigo
.ORG 0 //PONE EL CONTADOR DE PROGRAMA A CERO
JMP main
main:
LDI R16, 255 // pone 1111 1111 en el registro 16
OUT DDRB, R16//configura todos los pines del puerto B como salidas
loop:
LDI R16, 0x0f//carga 0101 0101 en el registro 16
OUT PORTB, R16// saca el contenido del registro 16 por el puerto B
CALL Delay// llama ala subrutina de retraso ""
CALL Delay
CALL Delay
CALL Delay
LDI R16, 0xf0//ca 1010 1010 en el registro 16
OUT PORTB, R16//saca el contenido del registro 16 por el puerto B
CALL Delay// llama ala subrutina de retraso ""
CALL Delay
CALL Delay
CALL Delay
RJMP main//REGRESA A LAETIQUETA MAIN PARA CONTINUAR IDENFINITIVAMENTE
Delay:
LDI R16, 255 // CARGA 1111 1111 EN EL REGISTRO 16
Repite:
NOP // NO HACE NADA DURANTE UNCICLO DE RELOJ
NOP
NOP
DEC R16 //DECREMENTA EL CONTENDO DE REGISTRO 16
BRNE Repite //VERIFICA SI EL CONTENIDO DEL REGISTRO 16 LLEGÓ A 0; SI R16=0
EJECUTA INSTRUCCIÓN; SI R16!=0, EJECUTA LA INSTRUCCION SIGUIENTE
RET// RETORNA DE LA SUBRUTINA A LA INSTRUCCIÓN SIGUIENTE DE LA LÍNEA DONDE
SE LLAMÓ
MODIFIQUE EL PROGRAMA PRACTICA 2 DE MANERA QUE LA ROTACIÓN SEA HACIA LA DERECHA

CODIGO PRACTICA 2
/*
* PRACT3.asm
*
* Created: 12/03/2019 08:21:48 p. m.
* Author: Acer
*/
.CSEG //INICIO DEL SEGMENTO DE CODIGO
.ORG 0 //PONE EL CONTADOR DEL PROGRAMA A CERO
JMP main
main:
LDI R16,0x01 //CARGA 0000 0001 EN EL REGISTRO 16
loop:
LDI R20, 255 //CARGA 1111 1111 EN EL REGISTRO 20
OUT DDRB, R20// CONFIGURA TODOS LOS PINES DEL PUERTO B COMO SALIDAS
OUT PORTB, R16// SACA EL CONTENIDO DE R16POR EL PUERTO B
CALL Delay//LLAMA A LA SUBRUTINA DE RETRASO "Delay"
CALL Delay
CALL Delay
CALL Delay
ROR R16 //ROTA EL CONTENIDO DE R16 A TRAVÉS DEL ACARREO
RJMP loop //SALTA A LA ETIQUETA "loop" PARA REPETIR INDEFINIDAMENTE
Delay:
LDI R19, 255 //CARGA EL REGISTRO 19 CON 1111 1111
Repite:
NOP //NO HACE NADA DURANTE UN CICLO DE RELOJ
NOP
NOP
DEC R19 //DECREMENTA EL CONTENIDO DEL REGISTRO 19
BRNE Repite //HACE UN SALTO CONDICIONAL A LA SIGUIENTE INSTRUCCIÓN SI EL
CONTENIDO DE R19 ES CERO O A LA ETIQUETA "Repite" SI ES DIFERENTE DE CERO
RET //RETORNA A LA INSTRUCCIÓN SIGUIENTE DEL LLAMADO A SUBRUTINA
MODIFIQUE EL PROGRAMA PRACTICA 1 DE MANERAQUE EL CONTENIDO INICIAL DEL REGISTRO
SEA INGRESADO POR OTRO PUERTO

CODIGO Y SIMULACION PRACTICA 3


/*
* PRACT4.asm
*
* Created: 13/03/2019 12:33:38 p. m.
* Author: Acer
*/

.CSEG // indica seg. de codigo


.ORG 0 //PONE EL CONTADOR DE PROGRAMA A CERO
JMP main
main:
LDI R16, 255
OUT DDRB, R16
LDI R16, 20
loop:
IN R17, PIND
OUT PORTB, R17
CALL Delay//
CALL Delay
CALL Delay
CALL Delay
COM R17//
OUT PORTB, R17//saca el contenido del registro 17 por el puerto B
CALL Delay//llama ala subrutina de retraso ""
CALL Delay
CALL Delay
CALL Delay
RJMP loop
Delay:
LDI R16, 255 // CARGA 1111 1111 EN EL REGISTRO 16
Repite:
NOP //NO HACE NADA DURANTE UNCICLO DE RELOJ
NOP
NOP
DEC R16 //DECREMENTA EL CONTENDO DE REGISTRO 16
BRNE Repite //VERIFICA SI EL CONTENIDO DEL REGISTRO 16 LLEGÓ A 0; SI R16=0
EJECUTA INSTRUCCIÓN; SI R16!=0, EJECUTA LA INSTRUCCION SIGUIENTE
RET//RETORNA DE LA SUBRUTINA A LA INSTRUCCIÓN SIGUIENTE DE LA LÍNEA DONDE SE
LLAMÓ
CODIGO 2 ORIGINAL HACIA A LA IZQUIERDA
/*
* PRACT3.asm
*
* Created: 12/03/2019 08:21:48 p. m.
* Author: Acer
*/
.CSEG //INICIO DEL SEGMENTO DE CODIGO
.ORG 0 //PONE EL CONTADOR DEL PROGRAMA A CERO
JMP main
main:
LDI R16,0x01 //CARGA 0000 0001 EN EL REGISTRO 16
loop:
LDI R20, 255 //CARGA 1111 1111 EN EL REGISTRO 20
OUT DDRB, R20// CONFIGURA TODOS LOS PINES DEL PUERTO B COMO SALIDAS
OUT PORTB, R16// SACA EL CONTENIDO DE R16POR EL PUERTO B
CALL Delay//LLAMA A LA SUBRUTINA DE RETRASO "Delay"
CALL Delay
CALL Delay
CALL Delay
ROR R16 //ROTA EL CONTENIDO DE R16 A TRAVÉS DEL ACARREO
RJMP loop //SALTA A LA ETIQUETA "loop" PARA REPETIR INDEFINIDAMENTE
Delay:
LDI R19, 255 //CARGA EL REGISTRO 19 CON 1111 1111
Repite:
NOP //NO HACE NADA DURANTE UN CICLO DE RELOJ
NOP
NOP
DEC R19 //DECREMENTA EL CONTENIDO DEL REGISTRO 19
BRNE Repite //HACE UN SALTO CONDICIONAL A LA SIGUIENTE INSTRUCCIÓN SI EL
CONTENIDO DE R19 ES CERO O A LA ETIQUETA "Repite" SI ES DIFERENTE DE CERO
RET //RETORNA A LA INSTRUCCIÓN SIGUIENTE DEL LLAMADO A SUBRUTINA

Você também pode gostar