Derecho Informatico
http://www.circuitoselectronicos.org/2009/04/ejemplos-sencill...
CIRCUITOS ELECTRONICOS
TIENDA
FORO
RSS
CONTACTO
BUSCADOR.
¿Buscas algún tema? 8 de abril de 2009 Publicado por Oscar en 11:54
Programas sencillos para el microcontrolador PIC16F877A.
BUSCA POR ETIQUETAS.
Componentes (6)
Editor(11) Electrónica Analógica (10) Electrónica digital (6) Esquemas y Proyectos (9)
Documentales (4)
Manuales
Matemáticas
y
Tutoriales
(18)
(5)
Microcontroladores PIC (33)
Notas (19) Otros (10) Programación
C++ (5) Revistas (7)
Software (10)
En esta ocasión te presentaremos dos sencillos programas escritos en ensamblador para el PIC16F877A. El primero de ellos enciende y apagaun LED conectado al pin RA0 del microcontrolador; mientras que el segundo, prende secuencialmente los LEDs que han sido conectados al puerto B del mismo. Además, aprenderemos a simular nuestro microcontrolador en Isis Proteus e implementaremos físicamente nuestro PIC en el protoboard. - Para esta práctica utilizaremos un programador de PICs, que seguramente encontrarás en tu centro educativo. -Usaremos el compilador gratuito de Microchip “MPLAB IDE” para escribir nuestro programa en ensamblador y obtener el archivo .HEX (utilizado por el programador para grabar el micro). Descargar MPLAB IDE. - Aunque los PICs son resistentes a la estática, debemos tener cuidado de no tocar sus pines. ENCENDIDO DE UN LED. El siguiente código nos permitirá encender y apagar un LED conectado al pin RA0 delPIC.
Ó EN NUESTRO ÍNDICE.
Vea todos los artículos y notas del blog haciendo clic aquí.
__CONFIG _WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF ; Configuración para el programador LIST p=16F877A INCLUDE ORG 0x00 ;Inicio de programa N EQU 0x00 cont1 EQU 0x20 cont2 EQU 0x21 BCF STATUS,RP0 ; Accede a banco 0 BCF STATUS,RP1 CLRF PORTA ; Limpia PORTA BSF STATUS,RP0 ; Accede a banco 1 CLRF TRISA ;Configura todos las patitas de PORTA como salidas BCF STATUS,RP0 ; Regresa a banco 0 Encled BSF PORTA,0 ; La línea RA0 de PORTA toma el valor de 1, se enciende el LED
1 de 9
07/06/2012 12:26 p.m.
Programas sencillos para el microcontrolador PIC16F877A. | C...
http://www.circuitoselectronicos.org/2009/04/ejemplos-sencill...
CALL Retardo ; Llamada a la rutina de retardo BCF PORTA,0 ;La línea RA0 de PORTA toma el valor de 0, se apaga el LED CALL Retardo ; Llamada a la rutina de retardo GOTO Encled ; Va a la etiqueta Encled Retardo ; Rutina de retardo MOVLW N MOVWF cont1 Rep1 MOVLW N MOVWF cont2 Rep2 DECFSZ cont2,1 GOTO Rep2 DECFSZ cont1,1 GOTO Rep1 RETURN ; Retorno a la llamada de rutina de retardo. END ; Fin de programa
Y aquí, nuestro circuito implementado en el protoboardsimplificado.
Para esta práctica hemos utilizado una resistencia (R1) de 10 Kilo Ohms, un cristal (XTAL) de 4 MHz y una resistencia (R2) de 200 a 300 Ohms para limitar la corriente que llegara a nuestro LED. ENCENDIDO SECUENCIAL DE LEDs. Este código nos permitirá encender secuencialmente los LEDs conectados al puerto B del micro, en un ciclo infinito de RB0 a RB7.
__CONFIG_WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF ; Configuración para el programador LIST p=16F877A INCLUDE ORG 0x00 ; Inicio de programa N EQU 0x00 cont1 EQU 0x20 cont2 EQU 0x21 BCF STATUS,RP0 ; Accede a banco 0 BCF STATUS,RP1 CLRF PORTB ; Limpia PORTB BSF STATUS,RP0 ; Accede a banco 1 CLRF TRISB ; Configura todas las patitas de PORTB como salidas BCF STATUS,RP0 ; Regresa a banco 0 BSF PORTB,0 ; La línea RA0 de PORTBtoma el valor 1, se enciende el LED Encledsec CALL Retardo ; Llamada a la rutina de retardo RLF PORTB,1 ; Recorre el bit de RB0 a RB7 GOTO Encledsec ; Va a la etiqueta Encledsec Retardo ; Rutina de retardo MOVLW N MOVWF cont1
2 de 9
07/06/2012 12:26 p.m.
Programas sencillos para el microcontrolador PIC16F877A. | C...
http://www.circuitoselectronicos.org/2009/04/ejemplos-sencill......
Regístrate para leer el documento completo.