En este tutorial se creará un programa en lenguaje de programación ensamblador para hacer que se apague un led presionando un botón. Para esto utilizaremos el PIC 16F84A de la empresa Microchip.
El circuito que se utilizará es el siguiente:
(Clic en la imagen para ampliar).
Los materiales son los siguientes:
- 3 resistencias de 10K
- 1 resistencia de 330 Ohms
- 1 Microcontrolador PIC 16F84A
- 1 Crystal 4 MHz
- 2 capacitores de 22pf
- 2 push button
- 1 led
Al probar el circuito, se utilizó una fuente de 5V.
El programa en ensamblador es el siguiente:
; **** Codigo by Masterhacks **** list p=16F84A #include P16F84A.inc __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC Led equ 0 ; Se define la variable Led como el bit cero de un registro, en este caso PORTB Pulsa equ 0 ; Se define la variable Pulsa como el bit 0, en este caso PORTA Reset org 0x00 ; Aqui comienza el MC y se configuran los puertos goto Inicio org 0x05 ; Origen del codigo Inicio bsf STATUS,RP0 ; Pasamos de Banco 0 a Banco 1 movlw b'11111' ; Se mueve 11111 a W movwf TRISA ; Se carga W en TRISA movlw b'11111110' movwf TRISB bcf STATUS,RP0 ; Se pasa del Banco 1 al Banco 0 bcf PORTB,Led ; Comienza apagado Bucle btfsc PORTA,Pulsa ; Se pregunta si esta en 0 logico goto Apagar ; Si esta en 1 logico, se apaga el led bsf PORTB,Led ; Si esta en 0 logico, se enciende el led goto Bucle ; se verifica la condicion del Pulsador.- Apagar bcf PORTB,Led ; Se apagar el led goto Bucle end
Se explica cada línea del código, por lo que es fácil entenderlo a menos que no se tenga ningún conocimiento del lenguaje.
Para ver el circuito funcionando, así como la simulación en Proteus, puedes ver el siguiente video:
me pudieras pasar el archivo.hex porfa??
una pregunta y si quisiera prender y apagar 16 leds pero estos led estan soldados tiene 4 pisos y por los 4 pisos hay 4 led
una pregunta y si quisiera prender y apagar 16 leds pero estos led estan soldados tiene 4 pisos y por los 4 pisos hay 4 led y con este material
1. 16 led
2. Pic16f84a
3. Regulador lm785
4. 5 Resistencia de 10k
5. Oscilador de cristal de 4mhz
6. 2 lentejas de 22 pico faradios
7. 8 transistor de 2n2222A
8. 4 resistencias de 500
9. 1 pic16f84a
10. 1 protoboard
Hola, disculpa si quiero que con un led prenda y con otro led se apague, que debo de hacer? Gracias 🙂
Hola, subiremos un tutorial sobre eso.
Saludos