CAMBIO DE ESTADO DE UN LED CON UN PIC

2
;Con un botón pulsador (en RA0) se puede encender o apagar un led (en RB0), el botón pulsador ;es activado por flanco de subida ;ZONA DE DATOS******************************************* LIST P=16F627A ;PIC seleccionado INCLUDE<P16F627A.INC> ;Definición de registros especial __CONFIG _LVP_OFF & _WDT_OFF& _XT_OSC & _MCLRE_ON ;Configuración de grabación CBLOCK 0x20 ;Inicio de declaración de variables de propósito general ENDC ;Fin de declaración de variables de propósito general #DEFINE PULSA PORTA,0 ;Darle nombre a un bit de un registro #DEFINE LED PORTB,0 ORG 0X00 ;Origen de la memoria de programa MOVLW .7 ;Desactivación de Comparadores analógicos. W=7 MOVWF CMCON ;W-->CMCON BSF STATUS,RP0 ;Cambio a Banco 1 BSF PULSA ;PULSA = 1, por lo tanto es entrada BCF LED ;LED = 0, por lo tanto es salida BCF STATUS,RP0 ;Cambio a Banco 0 BCF LED ;Se pone un 0 en LED (RB0) VERIFICA BTFSC PULSA ;¿Hay un 0 en RA0? GOTO VERIFICA ;No ha sido apretado CALL Retardo_100ms ;Llamada retardo de 100 ms, RA7/OSC1/CLKIN 16 RB0/INT 6 RB1/RX/DT 7 RB2/TX/CK 8 RB3/CCP1 9 RB4 10 RB5 11 RB6/T1OSO/T1CKI 12 RB7/T1OSI 13 RA0/AN0 17 RA1/AN1 18 RA2/AN2/VREF 1 RA3/AN3/CMP1 2 RA4/T0CKI/CMP2 3 RA6/OSC2/CLKOUT 15 RA5/MCLR 4 U1 PIC16F627A R1 10k X1 CRYSTAL C1 22PF C2 22PF R2 1k D1 LED-RED R3 330

description

SE PRESENTA EL DIAGRAMA DEL MANEJO DE UN MICROCONTROLADOR DE LA EMPRESA MICROCHIP, LOS RECONOCIDOS PIC DE GAMA MEDIA, EL CUAL CONTROLA EL ENCENDIDO Y APAGADO DE UN LED, CUANDO UN BOTON PULSADOR ES ACTIVADO ENCIENDE EL LED, CUANDO SE VUELVE A PULSAR APAGA EL LED.EN ESTE DOCUMENTO NO SE INCLUYE LA LIBRERIA D ERETARDOS, PERO ES SIMPLE GENERAR UNA.

Transcript of CAMBIO DE ESTADO DE UN LED CON UN PIC

  • ;Con un botn pulsador (en RA0) se puede encender o apagar un led (en RB0), el botn pulsador ;es activado por flanco de subida

    ;ZONA DE DATOS******************************************* LIST P=16F627A ;PIC seleccionado INCLUDE ;Definicin de registros especial __CONFIG _LVP_OFF & _WDT_OFF& _XT_OSC & _MCLRE_ON ;Configuracin de grabacin CBLOCK 0x20 ;Inicio de declaracin de variables de propsito general ENDC ;Fin de declaracin de variables de propsito general #DEFINE PULSA PORTA,0 ;Darle nombre a un bit de un registro #DEFINE LED PORTB,0 ORG 0X00 ;Origen de la memoria de programa MOVLW .7 ;Desactivacin de Comparadores analgicos. W=7 MOVWF CMCON ;W-->CMCON BSF STATUS,RP0 ;Cambio a Banco 1 BSF PULSA ;PULSA = 1, por lo tanto es entrada BCF LED ;LED = 0, por lo tanto es salida BCF STATUS,RP0 ;Cambio a Banco 0 BCF LED ;Se pone un 0 en LED (RB0) VERIFICA BTFSC PULSA ;Hay un 0 en RA0? GOTO VERIFICA ;No ha sido apretado

    CALL Retardo_100ms ;Llamada retardo de 100 ms,

    RA7/OSC1/CLKIN16

    RB0/INT6

    RB1/RX/DT7

    RB2/TX/CK8

    RB3/CCP19

    RB410

    RB511

    RB6/T1OSO/T1CKI12

    RB7/T1OSI13

    RA0/AN017

    RA1/AN118

    RA2/AN2/VREF1

    RA3/AN3/CMP12

    RA4/T0CKI/CMP23

    RA6/OSC2/CLKOUT15

    RA5/MCLR4

    U1

    PIC16F627A

    R1

    10k

    X1CRYSTAL

    C1

    22PF

    C2

    22PF

    R2

    1k

    D1

    LED-RED

    R3

    330

  • BTFSS PULSA ;Dejo de ser presionado RA0? GOTO VERIFICA ;No, sigue presionado MOVLW B'00000001' ;El valor de literal se carga a W XORWF PORTB,F ;El resultado de XOR de PORTB y W se guarda en PORTB GOTO VERIFICA INCLUDE ;Se inserta una librera para retardos END