FAQ FAQ  •  Buscar Buscar  •  Registrarse Registrarse  •  Entre para ver sus mensajes privados Entre para ver sus mensajes privados  • Login Login

programa pic 16f85 ejercicio 3 libro RAMA pagina 35

Índice de los Foros Electronica Facil » FOROS ELECTRONICA » Electronica Digital
Publicar nuevo tema   Responder al tema
Ver tema anteriorEntre para ver sus mensajes privadosVer tema siguiente
AutorMensaje
Aerosmico
Asunto: programa pic 16f85 ejercicio 3 libro RAMA pagina 35 MensajePublicado: 13 Dic, 2007 - 05:23
Nuevo en el Foro
Nuevo en el Foro


Registrado: 05 Dic, 2007
Mensajes: 2

;*********************Pag 33-EJER 03***************************************************
;
; El portB enciende tantos leds (0-8) como valor indique el numero binario del PORTA,


;ZONA DE DATOS*******************************************************************

__CONFIG _CP_OFF & _WDT_OFF &_PWRTE_ON &_XT_OSC ; Configuración para el grabador
LIST P=16F84A ;Procesador.
INCLUDE<P16F84A.INC> ;Incluimos el fichero del microcontrolador.
CBLOCK 0x0C ; Reservamos posiciones de memoria para las variables
CONT ; Hará de contador
AUX ;Guardará el valor inicial del PORTA
ENDC ;Finalizamos el bloque de variables

;ZONA DE CÓDIGOS*****************************************************************

ORG 0 ; El programa comienza en la dirección 0 de memoria de programa
Inicio bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salidas
movlw b'11111111'
movwf TRISA ; Las líneas del Puerto A se configuran como entradas
bcf STATUS,RP0 ;Pone a 0 el bit 5 de STATUS. Acceso al Banco 0

Principal
clrf PORTB ;Ponemos a 0 todo el PORTB
movf PORTA,W ;Leemos el PORTA y su valor lo cargamos en ...
movwf CONT ;la variable contador...
movwf AUX ; y en la variable AUX
btfsc STATUS,Z ;Si PORTA es >0, Z=0, salta y continua el programa
goto Principal ;Si PORTA es cero vuelve a Principal

AS1 bsf STATUS,C ;Ponemos a 1 el carry del status
rlf PORTB,F ;Rotamos PORTB con lo cual entra un 1 por la dcha
decfsz CONT,F ;Decrementa CONT y salta si es 0, ...
goto AS1 ;sino vamos a AS1 y seguimos metiendo 1 por la dcha

AS2 movf PORTA,W ;volvemos a leer PORTA
xorwf AUX,W ;vemos si cambió o no su valor, si es igual Z=1
btfsc STATUS,Z ;testeamos y si son distintos salta a PRINCIPAL
goto AS2 ;si son iguales sigue en este bucle esperando el cambio

goto Principal ; Crea un bucle cerrado.

END ;Fin del programa
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
Mostrar mensajes anteriores:     
Cambiar a:  
Todas las horas son GMT
Publicar nuevo tema   Responder al tema
Ver tema anteriorEntre para ver sus mensajes privadosVer tema siguiente
 Índice de los Foros Electronica Facil » FOROS ELECTRONICA »  Electronica Digital
powered by phppowered by MySQLPOWERED BY APACHEPOWERED BY CentOS© 2004 - 2025Información Legalpoliticas de cookiesipv6 ready