Resumen de ensamblador
FACULTAD DE INFORMATICA “INGENIERIA EN SISTEMAS”
TALLER DE AUTOMATIZACION Y ROBOTICA
PRACTICAS DE ENSAMBLADOR
ING. JOSE ALFONSO BRITO ROJAS
EDGAR JAVIER PADILLA RAMIREZ
Mazatlán, Sinaloa, Octubre del 2011
INDICE
PRACTICAS DE ENSAMBLADOR
HELLO_WORLD……..……………………………………………………………3
LED_BLINK…………...………………………...…………………………………5LED_BLINK2...…………………………………………………………………….8
IDA_VUELTA…………………………………………………………………….11
CONTADOR……………………………………………………………………...14
COLAGE……………………………………………………………………….....17
COLAGE2………………………………………………………………………...22
SUMA……………………………………………………………………………..27
PRACTICAS DE ENSAMBLADOR
HELLO_WORLD
INTRODUCCION
Esta es la primera práctica realizada en ensamblador como en cualquier otro tipo de programación yaque es la más básica pero aun así es necesaria para comenzar a conocer los mnemónicos y sus funciones.
DESARROLLO
Códigos
main
BSF STATUS,RP0 ; ENCENDER EL BIT RP0 DE STATUS (BANCO1)
MOVLW 0X1F ; MOVER LA LITERAL A W
MOVWF TRISA ; MOVER W A TRISA
CLRF TRISB ; LIMPIAR TRISB
BCF STATUS,RP0 ; APAGAR EL BIT RP0 DE STATUS (BANCO0)
CLRF PORTB ; LIMPIAR PORTB
INICIOBTFSC PORTA,0 ; BRINCA SI EL BIT 0 DE PORTA ESTA A CERO
GOTO LED_OFF ; IR A LED_OFF
GOTO LED_ON ; IR A LED_ON
LED_ON
MOVLW 0XFF ; MOVER LA LITERAL A W
MOVWF PORTB ; MOVER W A PORTB
GOTO INICIO ; IR A INICIO
LED_OFF
CLRF PORTB ; LIMPIAR PORTB
GOTO INICIO ; IR A INICIO
END ; directive 'end of program'
Circuito
5V
5V
10K
P
I
C1
6
F
8
4
A
4K
5V
CONCLUSION
En esta práctica aprendimos como entrar al banco1 para configurar a un puerto de entrada y a otro de salida y volver al banco0 para poder utilizar los puertos, además de que aprendimos como apagar y prender los LEDs utilizando un push bottom para que al presionarlo enciendan y al soltarlo se apaguen.
LED_BLINK
INTRODUCCION
En esta prácticaaplicaremos lo que ya sabemos acerca de cómo configurar los puertos y como usarlos, pero además vamos a aprender cómo hacer que los LEDs prendan y se apaguen, es decir que parpadeen.
DESARROLLO
Códigos
main
BSF STATUS,RP0 ; ENCENDER EL BIT RP0 DE STATUS (BANCO1)
MOVLW 0X00 ; MOVER LA LITERAL A W
MOVWF TRISB ; MOVER W A TRISB
MOVLW 0X1F ; MOVER LA LITERAL A W
MOVWF TRISA ; MOVERW A TRISA
BCF STATUS,RP0 ; APAGAR EL BIT RP0 DE STATUS (BANCO0)
CLRF PORTB ; LIMPIAR PORTB
INICIO
MOVLW 0XFF ; MOVER LA LITERAL A W
MOVWF PORTB ; MOVER W A PORTB
CALL RETARDO ; LLAMAR RETARDO
CLRF PORTB ; LIMPIAR PORTB
CALL RETARDO ; LLAMAR RETARDO
GOTO INICIO ; IR A INICIO
RETARDO
MOVLW 0X3F ; MOVER LA LITERAL A W
MOVWF I ; MUEVE W A I
CICLO1DECFSZ I,F ; DECREMENTA I Y SALTA SI ES 0
GOTO CICLO2 ; IR AL CICLO2
RETURN ; DEVOLVER
CICLO2
MOVLW 0XFF ; MOVER LA LITERAL A W
MOVWF J ; MOVER W A J
CICLO3
DECFSZ J,F ; DECREMENTA J Y SALTA SI ES 0
GOTO NOPS ; IR A NOPS
GOTO CICLO1 ; IR AL CICLO1
NOPS
NOP ; NO HACER NADA
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
NOP ;”
GOTO CICLO3 ; IR AL CICLO3
END ; directive 'end of program'
Circuito
5V
5V
10K
P
I
C
1
6
F
8
4
A
4K
CONCLUSION
En esta práctica hicimos que los LEDs parpadearan utilizando un retardo, sin lanecesidad de usar un switch, en el cual usamos por primera vez los mnemónicos NOP y DECFSZ, que funcionan para una pausa o no realizar una acción y decrementar un puerto hasta que sea cero, en ese orden.
LED_BLINK2
INTRODUCCION
Con esta práctica podremos hacer que enciendan los LEDs en forma de escalera, uno después de otro utilizando lo ya aplicado en las prácticas anteriores como es...
Regístrate para leer el documento completo.