practicas de programacion en lenguaje ensamblador

10
Juan Francisco Ayala Lozano Microcontroladores Reyes Olguín Arturo Matricula 1313083134 Mecatrónica 180501 18/02/2015

Upload: jorge-ivan-ken-espinoza

Post on 16-Nov-2015

34 views

Category:

Documents


6 download

DESCRIPTION

PRACTICAS PIC 16F877A

TRANSCRIPT

Juan Francisco Ayala LozanoMicrocontroladores

Reyes Olgun ArturoMatricula 1313083134Mecatrnica 180501

18/02/2015

MARCO TEORIO:SALTOS EN FUNCION DE UN BIT.Son muy ponderosas ya que permiten al programa tomar decisiones en funcin del estado de un bit perteneciente a cualquier registro o puerto de entrada/salida. Hay dos instrucciones de este tipo:Instruccin btfsc f,b(bit test f, skip if clear). Esta instruccin puede actuar de dos formas: Si el bit nmero b del registro f es 1 la instruccin que sigue a esta se ejecuta normalmente. Si el bit nmero b del registro f es 0 la instruccin que sigue a esta se ignora y se salta.INSTRUCCION btfss f,b(bit test f, skip if set). Esta instruccin acta de forma contraria a la instruccin anterior: Si el bit nmero b del registro f es 0 la instruccin que sigue a esta se ejecuta normalmente Si el bit nmero b del registro f es 1 la instruccin que sigue a esta se ignora y salta.

INSTRUCCIONES SALTOS1.Disear, ensamblar, simular, grabar el microcontrolador y comprobar los siguientes programas.Saltos_01.asm: el puerto B, que acta como salida, es controlado por el bit 0 de puerto A que acta como entrada, de tal manera que: Si el bit 0 del PORTA =1, se encienden todos los led de salida Si el bit 0 del porta=1, solo se encienden los led del nible alto.PROGRAMA:saltos_01.asm

__CONFIG _HS_OSC LIST P=16F877A INCLUDE ORG 0x000 Inicio bsf STATUS,RP0 CONF_ADCON1 equ b'00000110' clrf TRISB bsf STATUS,RP0 bcf STATUS,RP1 movlw CONF_ADCON1 movwf ADCON1 clrf TRISB clrf TRISC movlw b'11111111' movwf TRISA bcf STATUS,RP0 SI bcf STATUS,RP1 Principal btfss PORTA,0 goto on NO goto of GOTO prenden led nible alto.

Prenden todos los led W=1?InicioConfiguracion PORTA entradas PORTB salidas PORTA =w

on GOTO movlw b'11111111' movwf PORTB movwf PORTC goto Principal of movlw b'11110000' movwf PORTB movwf PORTC goto PrincipalPRINCIPAL

END

EVIDENCIAS:Entrada de datos PORTA=00000001, Salida PORTB=11111111

Entrada de datos PORTA=00000000, salida de datos PORTB=11110000

INSTRUCIONES SALTOS2Saltos_2.asm:Compara el dato del Puerto de entrada, PORTA con el nmero 13.Pueden darse dos posibilidades: Si PORTA= NUMERO, se encienden todos los leds de salida Si PORTA NO ES =NUMERO, se activan los led pares.

__CONFIG _HS_OSC LIST P=16F877A INCLUDE ORG 0x000Saltos 2

Iniciobsf STATUS,RP0 CONF_ADCON 1 equ b'00000110'Configuracin PORTA=ENTRADA PORTB=SALIDAS PORTA=W

clrf TRISBbsf STATUS,RP0bcf STATUS,RP1movlw CONF_ADCON1movwf ADCON1 INICIO

clrf TRISBclrf TRISCmovlw b'00111111'Prenden todos los led de salidaW=13

movwf TRISASIbcf STATUS,RP0bcf STATUS,RP1 Principalbtfsc PORTA,0 NOgoto uno GOTO goto pares uno btfsc PORTA goto pares GOTO btfsc PORTA,2 goto tres goto pares tres btfss PORTA,3 goto pares movlw b'11111111' movwf PORTB movwf PORTCprincipalSolo prenden los leds pare

goto Principal pares movlw b'01010101' movwf PORTB movwf PORTC goto Principal END

Entrada de datos PORTA= 00000000, Salida PORTB= 00001101

Entrada desato PORTA= 00000000, salida de datos PORTB, 13

SALTOS3Compara el dato introducido por el PORTA, que acta como entrada por un nmero, pueden darse 2 posibilidades: Si PORTA es igual o mayor que NUMERO prenden todos los leds. Si PORTA, es menor que NUMERO se activan lo leds pares de la salida.

__CONFIG _HS_OSC LIST P=16F877A ISaltos_03.asm

NCLUDE ORG 0x000 Inicio bsf STATUS,RP0 CONF_ADCON1 equ b'00000110' clrf TRISB bsf STATUS,RP0 bcf STATUS,RP1 Configuracin PORTA=ENTRADA PORTB=SALIDAW=PORTA NUMERO=14

movlw CONF_ADCON1 movwf ADCON1 clrf TRISB clrf TRISC movlw b'00111111' movwf TRISA bcf STATUS,RP0 bcf STATUS,RP1

principal movlw d'14' subwf PORTA,W PRENDEN TODOS LOS LEDS

btfsc STATUS,C SIWNUMERO?

goto mayor movlw b'01010101' movwf PORTB movwf PORTC goto principal mayorNOGOTO movlw b'11111111' movwf PORTBGOTOWNUMERO?PRENDEN SOLO LEDS PARES DE SALIDA

movwf PORTC goto principal END

Entrada de datos PORTA= 14, Salida PORTB= 11111111.

Entrada de datos PORTA NO ES =14, Salida PORTB=101010101.

CONCLUCIONES:Es importante recordar, que es muy recomendable simular el programa, antes de llevarlo a la forma fsica, ya que pueden existir ciertos errores en el programa que afectaran el funcionamiento del circuito, si es necesario, revisar con atencin el programa ya que puede suceder que el erro que tenga no lo detecte el programa, tratar con cuidado el integrado, ya que sus pines son muy frgiles, lo programas no son tan difciles de entender , recomendamos que si es necesario aprendan de memoria el cuerpo principal del programa ya que en muchos casos es muy similar para cualquier programa de este tipo de dificultad.