Вы находитесь на странице: 1из 20

DISTRIBUCIN DE LA MEMORIA DE DATOS EN LA GAMA MEDIA

Arquitectura de Procesadores

Arquitectura de Procesadores

INSTRUCCIONES DE MANIPULACIN DE BITS


BSF F, bit

BCF F, bit

Arquitectura de Procesadores

INSTRUCCIONES DE MANIPULACIN DE BITS


BTFSS F, bit

Arquitectura de Procesadores

INSTRUCCIONES DE MANIPULACIN DE BITS


BTFSC F, bit

Arquitectura de Procesadores

Los registros estn distribuidos en los cuatros bancos de la memoria de datos por lo que el programador deber estar cambiando constantemente de bancos. En la regin de memoria definida como GPR, el usuario puede trabajar sin problemas que afecte al hardware del microcontrolador, es aqu donde normalmente se definen las variables de trabajo.

Arquitectura de Procesadores

EJEMPLO : El siguiente programa muestra como configurar el puerto B como salida y generar una cuenta binaria.

Arquitectura de Procesadores

EJEMPLO :

Arquitectura de Procesadores

EJEMPLO :

Arquitectura de Procesadores

EJEMPLO : Escribir un programa que permita leer el puerto C y escribir el dato ledo al puerto D.

Arquitectura de Procesadores

Arquitectura de Procesadores

EJERCICIO : Escribir un programa que permita realizar la funcin lgica de una inversor.

Arquitectura de Procesadores

Arquitectura de Procesadores

EJERCICIO : Escribir un programa que permita implementar un contador binario de 8 bits.

Arquitectura de Procesadores

Arquitectura de Procesadores

Arquitectura de Procesadores

list p = PIC16F84A ; Seleccionar procesador #include <P16F84A.inc> ; incluir archivo P16F84A.inc __config _PWRTE_ON & _WDT_OFF & _XT_OSC & _CP_OFF cont1 equ cont2 equ Start org bsf clrf bcf 0x0C 0x0D 0x00 ; Ubicar cont1 en direccin 0x0C ; Ubicar cont2 en direccin 0x0D

; Vector de Reset ; Iniciar STATUS, RP0 ; RP0 = 1. Cambiar al Banco 1 TRISB ; TRISB = 0x00. Configurar todo PORTB como salida STATUS, RP0 ; RP0 = 0. Cambiar al Banco 0

Arquitectura de Procesadores

MLoop movlw b'00000000' ; 00000000 a W movwf PORTB ; W a PORTB call Pausa ; Llamar pausa de 250 ms movlw b'00011000' ; 00011000 a W movwf PORTB ; W a PORTB call Pausa ; ... movlw b'00100100' movwf PORTB call Pausa movlw b'01000010' movwf PORTB call Pausa movlw b'10000001' movwf PORTB call Pausa goto MLoop ; Saltar a MLoop

Arquitectura de Procesadores

; Subrutina pausa. Genera 250 milisegundos. Pausa movlw d'79' ; Mover 79 a W movwf cont1 ; Mover W a cont1 (cargar cont1) movlw d'196' ; Mover 196 a W movwf cont2 ; Mover W a cont2 (cargar cont2) loop1 decfsz cont1, f ; decrementar cont1, saltear si da 0 goto loop2 ; saltar a loop2 decfsz cont2, f ; decrementar cont2, saltear si da 0 loop2 goto loop1 ; saltar a loop1 return ; retornar de subrutina end ; Fin del cdigo

Arquitectura de Procesadores

Вам также может понравиться