Vistas de página en total

lunes, 15 de agosto de 2011

Ejercicios Capitulo 8

Ejercicios ASM



Elemental_01.asm: Por el puerto B se obtiene el dato de las cinco líneas del Puerto A , al que se está conectado un array de interruptores , sumándole el valor de una constante , por ejemplo 74 decimal. Es decir (PORTB)= (PORTA)+Constante
1)
;====================================================================
 Main
;====================================================================
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw     b'00000000' ;todo el PORTB como salida
                movwf    TRISB
                BANK0
;====================================================================
; Programa principal
;====================================================================
 ABC       
    movf   PORTA,W
                addlw      K
                movf       PORTB  
    goto    ABC

;====================================================================



Elemental_02.asm: Por el Puerto B se obtiene el dato del Puerto A multiplicando por 2. Es decir : (PORTB) = 2(PORTA) =(PORTA)+(PORTA)
2)
;====================================================================
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código

; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw     b'00000'
                movwf    TRISB
                BANK0
;====================================================================
; Programa principal
;====================================================================
                movf       PORTA,W              
                addwf     PORTA,PORTB
;====================================================================





Elemental_03.asm: Por el Puerto B se obtiene el dato introducido por el Puerto A , pero los bits pares de salida se fijan siempre a “1”. El orden de los bits será “b7 b6 b5 b4 b3 b2 b1 b0” , siendo los pares el b6 , b4, b2 , y b0. Por ejemplo , si el Puerto A se introduce el dato ‘---01100’, por el Puerto B se visualiza ‘ ---11101’. Observa que:
-Los bits pares están a “1”, efectivamente (Puerto B)= ‘---1x1x1’
-Los impares permanecen con el datos con el dato del puerto de entrada , efectivamente: (Puerto A) = ‘---x1x0x’ y (Puerto B) = ‘---x1x0x’
3)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw   b'00000000'
    movwf   TRISB       
                BANK0
;====================================================================
; Programa principal
;====================================================================
  ABC
   movf     PORTA,W
   movwf    PORTB
   bsf      PORTB,8
   bsf      PORTB,6
   bsf      PORTB,4
   bsf      PORTB,2
   goto     ABC
;====================================================================




Elemental_04.asm: Por el Puerto B se obtiene el contenido del Puerto A , pero los bits impares de salida se fijan a “0”. El orden de los bits será “b7 b6 b5 b4 b3 b2 b1 b0”, siendo los impares el b7, b5 , b3 , b1. Por ejemplo , si por el puerto B se introduce el dato b’---01100’ , por el Puerto B se visualiza ‘00000100’. Observar que:
-          Los bits impares están en “ 0 “ , efectivamente (Puerto B) = ‘0x0x0x0x’
-          -Los pares permanecen con el dato del puerto de entrada , efectivamente : (Puerto A) = ‘---0x1x0’ y (Puerto B) = ‘ –0x1x0’
4)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw     b'00000000'          
    movwf   TRISB       ;todo el PORTB como salida
                BANK0
;====================================================================
; Programa principal
;====================================================================
 Loop 
   movf   PORTA,W
   movlw  PORTB
   bcf    PORTB,7
   bcf    PORTB,5
   bcf    PORTB,3
   bcf    PORTB,1
   goto   Loop
;====================================================================


Elemental_05.asm:  Por el Puerto B se obtiene el dato del Puerto A invertidos los unos y los ceros. Por ejemplo , si por el Puerto A se introduce ‘---11001’, por el Puerto B aparecerá ‘xxx00110’. (No importa el estado de los tres bits superiores del Puerto B)
5)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw   b'00000000'
    movwf   TRISB       
                BANK0
;====================================================================
; Programa principal
;====================================================================
 ABC  
    movf    PORTA,W
    xorlw   11111
    movwf   PORTB
    goto    ABC
;====================================================================




Elemental_06.asm: Por el Puerto B se obtiene el dato del Puerto A intercambiado los nibbles alto y bajo. Por ejemplo , si por el Puerto A se introduce ‘---1001’, por el Puerto B apare ‘1001xxx1’.
6)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw     b'00000000'          
    movwf   TRISB       ;todo el PORTB como salida
                BANK0
;====================================================================
; Programa principal
;====================================================================
 Loop 
   movf   PORTA,W
   swapf  W,PORTB
   goto   Loop
;====================================================================



Elemental_07.asm: Por el Puerto B se obtiene el dato del Puerto A despazando un bit hacia la izquierda , por la derecha entrará un “1”. Por ejemplo , si por el Puerto A se introduce “---11001”, por el Puerto B aparecerá “xx110011”
7)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw   b'00000000'
    movwf   TRISB       
                BANK0
;====================================================================
; Programa principal
;====================================================================
 ABC 
   rlf     PORTA,W
   addlw   .1
   movwf   PORTB
   goto    ABC  
;====================================================================


Elemental_08.asm: Por el Puerto B se obtiene el dato del Puerto A despazando un bit hacia la derecha , por la izquierda entrará un “1”. Por ejemplo , si por el Puerto A se introduce “---11001”, por el Puerto B aparecerá “0xxx1100’
8)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw   b'00000000'
    movwf   TRISB       
                BANK0
;====================================================================
; Programa principal
;====================================================================
 ABC
   rrf     PORTA,W
   bcf     W,7
   movwf   PORTB  
   goto    ABC  
;====================================================================



Elemental_09.asm: Por el Puerto  B se saca el dato del Puerto A invirtiendo los bits pares . Los impares se dejan como entrada.
9)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw   b'00000000'
    movwf   TRISB       
                BANK0
;====================================================================
; Programa principal
;====================================================================
 ABC  
    movf    PORTA,W
    xorlw   b'01010101'
    movwf   PORTB
    goto    ABC
;====================================================================


Elemental_10.asm: Por el Puerto B se obtiene el dato de las cinco líneas del Puerto A al que esta conectado un array de interruptores. Esta operación se realizará una única vez . Despues del programa entrara en modo Standby o de bajo consumo el cual no podrá salir 
10)
Main
;====================================================================
; A partir de aqui se escribe el pgm principal
; A partir de aquí incluí tu código
; El código que sigue es un ejemplo de configuración de puertos
; Configuro los puertos I/O
                BANK1
                movlw     b'11111'
                movwf    TRISA       ;todo el PORTA como entrada
                movlw     b'00000000'          
    movwf   TRISB       ;todo el PORTB como salida
                BANK0
;====================================================================
; Programa principal
;====================================================================
   movf   PORTA,W
   movwf  PORTB
   sleep
;====================================================================

En C:

1)
void main()
{
while(1){
output_b(input_a()+55);
}
}
2)

void main()
{
while(1){
output_b(input_a()*2);
}
}
3)

void main()
{
while(1){
output_b(input_a()|0b10101);  
}
}


4)


void main()

{
while(1){
output_b(input_a()&0b10101);
}
}


5)



void main()
{
while(1){
output_b(input_a()^01010101);
}
}


6)

void main()
{
while(1){
swap(input_a());
output_b(input_a());
}
 }


7)



void main()
{
while(1){
rotate_left(input_a(), 1);
bit_set(input_a(),0);
output_b(input_a());
}   
}


8)

void main()
{
while(1){
rotate_right(input_a(), 1);
output_low(input_a(),7);
output_b(input_a());
}   
}



9)



void main()
{
while(1){
output_b(input_a()^11111);
}
}


10)



void main()
{
output_b(input_a());
sleep();
}







No hay comentarios:

Publicar un comentario