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