Cómo programar un PIC microcontrolador y leer un Encoder (6 / 7 paso)

Paso 6: programación

En este punto, vamos a trabajar exclusivamente con el MPLAB X IDE. Para comenzar, observe el panel titulado proyectos en el lado izquierdo de la ventana del MPLAB IDE. Desde este panel, crear un código:

Haga clic derecho en la carpeta 'Source Files' a continuación su proyecto > Nuevo > archivo de principal C

Sentirse libre nombrar como te deseo ('Main' está muy bien) ahora verás que MPLAB X ha creado un archivo principal, visible en el panel central.

Código: Para los propósitos de este tutorial proporcionarán el código necesario, que usted puede copiar y pegar en esa ventana de centro (después de eliminar todos los otros textos en el archivo) para darte una idea de lo que está haciendo el código, he incluido una breve descripción a continuación así como comentarios dentro del código real sí mismo (pegado a continuación)

Resumen: Hay un par de distintas partes del código para programar un microcontrolador PIC, que se detallan a continuación.

Definir declaraciones: Definir declaraciones permiten a los programadores a usar palabras que pueden significar algo más para el equipo. Por ejemplo, podríamos definir la palabra OFF en el sentido de un binario '0'. Así mientras que vemos la palabra apagado, haciendo el código más fácil de entender, la computadora Lee un '0' binario.

Incluyen declaraciones: Incluyen declaraciones Dile el compilador para incluir varios ficheros de cabecera. Estos archivos externos pueden consistir en archivos que definen funciones de entrada/salida (stdlib.h), o una variedad de funciones estándar de C (stdio.h), etc..

Directivas pragma: Directivas pragma se utiliza para definir los bits de configuración en el microcontrolador que controla aspectos como selección de oscilador, protección de código, etc.. No dude en revisar los bits de configuración seleccionando ventana > PIC memoria vistas > Bits de configuración

Funciones: Las funciones son secciones del programa que realizan tareas específicas. La función principal es donde el programa inicia su ejecución.

Programa:

/********************************************************************

Cómo programar un PIC y un programa encoder

Última revisión: 03/01/14
Autores: Carson Miller
Escrito por: PIC18F4525 (versión actual)

*********************************************************************/

#define entrada 1
#define salida 0

#define _XTAL_FREQ //Used 4000000 por la macro de delay_ms(x) XC8

PIC18F25K22 configuración de bits

asignación de hardware #include < xc.h > //Includes PIC
#include "GenericTypeDefs.h" tipos de variables estándar de //Includes

#pragma config declaraciones deben preceder incluye archivo de proyecto.
Usar enumeraciones de proyecto en lugar de #define para encendido y apagado.

CONFIG1H
#pragma config OSC = INTIO7 / selección de oscilador pedacitos (bloque oscilador interno, función CLKOUT en RA6, función del puerto en RA7)
#pragma config FCMEN = OFF / / FAIL-SAFE Clock Monitor activar bit (FAIL-SAFE Clock Monitor desactivado)
#pragma config estamos = OFF / / cambio de oscilador interno y externo del pedacito (conmutación oscilador modo desactivado)

CONFIG2L
#pragma config PWRT = OFF / / temporizador Power-up Enable bit (PWRT deshabilitado)
#pragma config BOREN = SBORDIS / / Brown-out Reset Enable pedacitos (Brown-out Reset activado en hardware (SBOREN está desactivado))
#pragma config BORV = 3 / / Brown Out Reset tensión bits (configuración mínima)

CONFIG2H
#pragma config WDT = OFF / / Watchdog Timer activar bit (WDT habilitado)
#pragma config WDTPS = 32768 / Watchdog Timer Postscale seleccione pedacitos (1:32768)

CONFIG3H
#pragma config CCP2MX = PORTC / / CCP2 MUX de bits (entrada/salida de CCP2 es multiplexado con RC1)
#pragma config PBADEN = ON / / PORTB A/D activar bit (pines PORTB < 0 4 > se configuran como canales de entrada analógica en el reinicio).
#pragma config LPT1OSC = OFF / / baja potencia permitir que oscilador Timer1 bit (Timer1 configurado para funcionar a mayor potencia)
#pragma config MCLRE = ON / / MCLR Pin activar bit (pin MCLR activado; RE3 entrada pin desactivado)

CONFIG4L
#pragma config STVREN = ON / / Stack Reset permiten Full/desbordamiento de capacidad inferior del pedacito (completo/subdesbordamiento de pila hará Reset)
#pragma config LVP = OFF / / solo-fuente ICSP permite bit (ICSP solo suministro habilitado)
#pragma config XINST = OFF / / extendido instrucción Set activar bit (extensión y direccionamiento indexado el modo desactivado (modo heredado) del conjunto de instrucciones)

CONFIG5L
#pragma config CP0 = OFF / / bit de protección de código (bloque 0 (000800-003FFFh) no protegido por el código)
#pragma config CP1 = OFF / / bit de protección de código (bloque 1 (004000-007FFFh) no protegido por el código)
#pragma config CP2 = OFF / / bit de protección de código (bloque 2 (008000-00BFFFh) no protegido por el código)

CONFIG5H
#pragma config CPB = OFF / / bit de protección de código del bloque de arranque (bloque de arranque (000000-0007FFh) no protegido por el código)
#pragma config CPD = OFF / / bit de protección de código de EEPROM de datos (EEPROM de datos no protegidos por el código)

CONFIG6L
#pragma config WRT0 = OFF / / escribir el bit de protección (bloque 0 (000800-003FFFh) no protegido contra escritura)
#pragma config WRT1 = OFF / / escribir el bit de protección (bloque 1 (004000-007FFFh) no protegido contra escritura)
#pragma config WRT2 = OFF / / escribir el bit de protección (bloque 2 (008000-00BFFFh) no protegido contra escritura)

CONFIG6H
#pragma config WRTC = OFF / / registro de configuración escribe bit de protección (registros de configuración (300000-3000FFh) no protegido contra escritura)
#pragma config WRTB = OFF / / bloque de inicio escribir bits de protección (bloque de arranque (000000-0007FFh) no protegido contra escritura)
#pragma config WRTD = OFF / / protección de datos de EEPROM escribir bits (datos EEPROM no protegido contra escritura)

CONFIG7L
#pragma config EBTR0 = OFF / / mesa Lee bits de protección (bloque 0 (000800-003FFFh) no protegido de mesa lee en otros bloques)
#pragma config EBTR1 = OFF / / mesa Lee bits de protección (bloque 1 (004000-007FFFh) no protegido de mesa lee en otros bloques)
#pragma config EBTR2 = OFF / / mesa Lee bits de protección (bloque 2 (008000-00BFFFh) no protegido de mesa lee en otros bloques)

CONFIG7H
#pragma config EBTRB = OFF / / tabla de bloque de arranque Lee bits de protección (bloque de arranque (000000-0007FFh) no protegido de mesa lee en otros bloques)

Configuración de variables dummy

Distancia UINT = 0;
CHAR dirección = 0;
CHAR error = 0;

void configure(void)
{

Configuración del ADC

ADCON1bits.PCFG = 1111; Desactiva todas las entradas analógicas (ver hoja de datos p. 224)

Configuración del oscilador

OSCCONbits.IRCF = 110; Oscilador a 4MHz de conjuntos

Interrumpir el programa de instalación

INTCONbits.GIE = 1; Permite todos desenmascarado o alta prioridad interrumpe (dependiendo del IPEN)
INTCONbits.PEIE = 1; Permite todas las interrupciones periféricas desenmascaradas o interrupciones de baja prioridad (dependiendo del IPEN)
INTCONbits.INT0IF = 0; Borra el bit 0 bandera de interrupción (debe ocurrir antes de habilitar la interrupción)
INTCONbits.INT0IE = 1; Habilita la interrupción externa INT0

INTCON2bits.INTEDG0 = 1; Sistemas externos interrumpen 0 interrupción en flanco ascendente

RCONbits.IPEN = 0; Deshabilita los niveles de prioridad de interrupciones

TRISBbits.TRISB0 = entrada; Establece INT0 como entrada
TRISBbits.TRISB1 = entrada; Establece INT1 como entrada

}

void main()
{
Configure();

while(1)

{
Bucle de programa
}
}

Rutina de servicio principal de interrupción (ISR)
anular la interrupción ISR()
{
Compruebe para ver si se trata de interrupción 0
Si (INTCONbits.INT0IF == 1)
{
distancia ++;
INTCONbits.INT0IF = 0; Borra bandera de interrupción
}
otra cosa
error = 1;
}

Artículos Relacionados

Cómo programar un PIC 18F2550 o 18f4550 con Arduino UNO

Cómo programar un PIC 18F2550 o 18f4550 con Arduino UNO

Aquí está nuestro nuestro primer tutorial en Instructable ser tan indulgente. Este tutorial muestra el método de usar una placa Arduino UNO como un programador de microcontroladores PIC. Este método ha sido probado con PIC 18F2550 y 18f4550 pero pued
PIC microcontrolador volumen Ajustador Program(Proteus 8 Stimulation)

PIC microcontrolador volumen Ajustador Program(Proteus 8 Stimulation)

Hola a todos,El aspecto importante de cada aprendizaje debe inducir curiosidad y hacer algo significativo para satisfacer. Con la ayuda de esa curiosidad, aquí estoy haciendo un programa de ajuste de volumen que se asemeja a la misma en la mayoría de
Máximo la araña - desarrollada por LEGO y PIC microcontrolador

Máximo la araña - desarrollada por LEGO y PIC microcontrolador

lo Max la araña nos visitó en el laboratorio de hoy y quería entrar en el espíritu de halloween. "Me gustaría bajar a las personas en el elevador", él sonrió, de manera que sólo una araña podría."He conseguido justo lo que," guiñó un o
Control remoto obstáculo evitando Robot con PIC microcontrolador

Control remoto obstáculo evitando Robot con PIC microcontrolador

Utilizo el pic 16f877amódulo ultrasónico motor servo había orientada motor motor cristal conductor y 20 mhz.En robótica, evitación del obstáculo es la tarea de satisfacer algún objetivo de control sujeto a las limitaciones de la posición de no inters
5 razones por qué usted son no capaz a programa A microcontrolador

5 razones por qué usted son no capaz a programa A microcontrolador

cuando a partir de microcontroladores es probable que algunos problemas en la programación de su microcontrolador y no hay nada más frustrante que perder horas para encontrar el problema y todavía no ser capaz. He trabajado con diferentes tipos de mi
IRK! Teclado USB de teclas con control remoto infrarrojo

IRK! Teclado USB de teclas con control remoto infrarrojo

IRK! es un teclado USB, sin llaves, que se puede utilizar simplemente usando su control remoto infrarrojo de aprendizaje .Creé que me permite controlar mi MythTV de cine en casa PC con mi control remoto infrarrojo de aprendizaje en lugar de tener que
Programación de microcontroladores PIC

Programación de microcontroladores PIC

microcontroladores PIC están una herramienta muy útil y versátil para su uso en muchos proyectos electrónicos. Son muy baratas y fáciles de encontrar. También son muy potentes y muchos son capaces de velocidades de hasta 64 MIPS utilizando el bloque
Comprensión ICSP de los microcontroladores PIC

Comprensión ICSP de los microcontroladores PIC

programación microcontroladores no es difícil. Construcción de un programador hace un gran primer proyecto de electrónica. El objetivo de este instructable es explicar el método simple 'en circuito serial programming' con Microchip PICs.Paso 1: ¿Por
Introducción a microcontroladores PIC

Introducción a microcontroladores PIC

un mínimo de lo que necesitas para empezar a programar micros PIC para el uso en proyectos de electrónica (robótica, etc.)Paso 1: Lo que usted necesita para el proyecto Nota: parece que si tienes windows XP, no hay ningún software de programador PIC
GSM base versátil robot vehículo usando microcontrolador PIC

GSM base versátil robot vehículo usando microcontrolador PIC

este proyecto está diseñado para desarrollar un vehículo robótico que puede ser controlado por un teléfono celular. Comandos DTMF de un teléfono envían a otro celular que se monta en el vehículo robótico. Estos comandos son alimentados a un microcont
Módulo inalámbrico Radio frecuencia con microcontrolador PIC.

Módulo inalámbrico Radio frecuencia con microcontrolador PIC.

Es un microcontrolador basado en proyecto de electrónica DIY. El nombre de módulo inalámbrico RF con microcontrolador PIC. El módulo de RF es un pequeño circuito electrónico utilizado para transmitir, recibir, o las ondas de radio transceive en uno d
Parpadear un LED con lenguaje ensamblador y un PIC

Parpadear un LED con lenguaje ensamblador y un PIC

para decir lo tan obvio, hay muchos sabores de microcontroladores en el mundo.  Existen innumerables aplicaciones para ellos.  Este Instructable cubrirá los pasos necesarios a parpadear un LED usando un microcontrolador PIC y el lenguaje de ensamblad
Cómo elegir un microcontrolador

Cómo elegir un microcontrolador

solía ser que el número de chips microcontroladores diferentes disponibles para el aficionado era bastante limitado. Tienes que usar lo que usted pueda llegar a comprar en el distribuidor de chip por correo, y que se redujo por la elección a un peque
Programador de PIC de la tarjeta

Programador de PIC de la tarjeta

este fue mi entrada para el concurso de Hack A Day tarjetas tamaño circuito. Acabo de comprimir los archivos y ponerlos en mi página web. Les dejo lo aquí porque todas las entradas parecen estar en un blog de fácil acceso. Esperemos que esto que el p