;======================================================= ; El esquema: PIC16F84A --> 1 Pulsador Enciende 1 LED ; +Vcc --pin1 R1- 1k pin2-- pin 4 ; +Vcc -- -- -- pin14 ; masa -- -- pin5 ; masa -- C2 22pf -- pin15 ; masa -- C2 22pf -- pin16 ; pin15 -- Cristal 4 MHz -- pin16 ; masa -- K LED1 A -- R2 ; A LED1--pin1 R2 220 pin2-- pin6 ; +Vcc -- Pulsador -- pin1 R3 ; pin2R3-- R3 de 5k -- pin18 ; masa -- pin1 R4 de 1k -- pin18 ; ;======================================================== TITLE "ledpuls" ; SUBTITLE "Revision Nº 1" ERRORLEVEL -302, -306 PROCESSOR 16F84A ; ; ; El esquema: PIC16F84A --> 1 Pulsador Enciende 1 LED ;---------------Encabezado------------- List p=16F84 #include ;------------mapa de memoria--------- cont EQU 0A ;-------Configuración de puertos------- reset: ORG 0 GOTO inicio ORG 5 inicio: BSF STATUS,5 ; configurando puertos MOVLW 0x02 ; carga w con 0000 0010 MOVWF TRISA ; ahora RA1 es entrada MOVLW 0x00 ; carga w con 0000 0000 MOVWF TRISB ; y el puerto B salida BCF STATUS,5 CLRF PORTB ; limpio el puerto B CLRF cont ; limpio el contador BSF cont,0 ; pongo el contador a 1 ;------------------------------------------ test: BTFSC PORTA,1 ; si alguien presiona CALL led ; voy a la etiqueta "led" GOTO test ; sino me quedo esperando led: BTFSC cont,0 ; si el contador está a 1 GOTO on_led ; lo atiendo en "on_led" BCF PORTB,0 ; sino, apago el LED BSF cont,0 ; pongo el contador a 1 GOTO libre ; y espero que suelten el pulsador on_led: BSF PORTB,0 ; enciendo el LED CLRF cont ; pongo el contador a 0 libre: BTFSC PORTA,1 ; si no sueltan el pulsador GOTO libre ; me quedaré a esperar RETURN ; si lo sueltan regreso ; a testear nuevamente ;------------------------------------------ END ;------------------------------------------