0% encontró este documento útil (0 votos)
1K vistas4 páginas

Ejemplos de Programas para Microcontrolador PIC

Este documento presenta varios proyectos simples para microcontrolador PIC que permiten conocer fundamentos básicos. Un proyecto parpadea los pines de I/O del PIC16F874 intermitentemente cada 500 ms usando C. Otro proyecto enceinde y apaga un LED conectado al PIC16F84 dependiendo del estado del pin RB0 usando ensamblador. Finalmente, se provee el código fuente y diagramas esquemáticos para ambos proyectos.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1K vistas4 páginas

Ejemplos de Programas para Microcontrolador PIC

Este documento presenta varios proyectos simples para microcontrolador PIC que permiten conocer fundamentos básicos. Un proyecto parpadea los pines de I/O del PIC16F874 intermitentemente cada 500 ms usando C. Otro proyecto enceinde y apaga un LED conectado al PIC16F84 dependiendo del estado del pin RB0 usando ensamblador. Finalmente, se provee el código fuente y diagramas esquemáticos para ambos proyectos.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Ejemplos de programas para microcontrolador PIC

A continuacin se presentan varios proyectos simples para microcontrolador PIC que te permitirn conocer algunos de los fundamentos de esta pequea maravilla. Algunos estn escritos en Assembler, otros en lenguaje C (para compilador CCS). Aunque estn diseados para apuntar a algunos modelos de PIC en particular, son fcilmente modificables para que funcionen en cualquier otro. Parpadeo mltiple en C (sin usar interrupcin)

Para PIC16F874/874A/877/877A, escrito en C para compilador CCS-C Compiler. Este programa sirve para probar el buen funcionamiento de cada uno de los pines de I/O del PIC16F874. Para ello, se prenden y apagan intermitentemente cada 500 ms. Recordar que pin A4 es open drain (debe usarse un resistencia pull-up en ese pin) !

Diagrama esquemtico

Cdigo fuente (C para compilador CCS)


// Este programa sirve para probar el buen funcionamiento de cada uno de los pines de I/O // del PIC16F874. Para ello, se prenden y apagan intermitentemente cada 500 ms. Recordar que // pin A4 es open drain (debe usarse un resistencia pull-up en ese pin) ! #device PIC16F874 #include <16f874.h> #include #use DELAY(Clock=6000000) #use STANDARD_IO(A) #use STANDARD_IO(B) //Usando un cristal de 6 MHz

#use STANDARD_IO(C) #use STANDARD_IO(D) #use STANDARD_IO(E) void main() { short int i; i = 0; while(1) { output_bit(PIN_B0,i); output_bit(PIN_B1,i); output_bit(PIN_B2,i); output_bit(PIN_B3,i); output_bit(PIN_B4,i); output_bit(PIN_B5,i); output_bit(PIN_B6,i); output_bit(PIN_B7,i); output_bit(PIN_A0,i); output_bit(PIN_A1,i); output_bit(PIN_A2,i); output_bit(PIN_A3,i); output_bit(PIN_A4,i); output_bit(PIN_A5,i); output_bit(PIN_E0,i); output_bit(PIN_E1,i); output_bit(PIN_E2,i); output_bit(PIN_C0,i); output_bit(PIN_C1,i); output_bit(PIN_C2,i); output_bit(PIN_C3,i); output_bit(PIN_C4,i); output_bit(PIN_C5,i); output_bit(PIN_C6,i); output_bit(PIN_C7,i); output_bit(PIN_D0,i); output_bit(PIN_D1,i); output_bit(PIN_D2,i); output_bit(PIN_D3,i); output_bit(PIN_D4,i); output_bit(PIN_D5,i); output_bit(PIN_D6,i); output_bit(PIN_D7,i); i=!i; delay_ms(500); } }

Prueba bsica Assembler

Para PIC16F84, escrito en Assembler. Este sencillo programa funciona de la siguiente manera: si el pin RB0 est en 0, entonces apaga el LED conectado a RA0. Si el pin RB0 est en 1, entonces prende el LED conectado a RA0. Qu complicado! Recuerda conectar el pin RA0 al LED a travs de una resistencia de unos 330 ohms.

Diagrama esquemtico

Cdigo fuente (Assembler)


;Este sencillo programa funciona de la siguiente manera: si el pin ;RB0 est en 0, entonces apaga el LED conectado a RA0. Si el pin RB0 ;est en 1, entonces prende el LED conectado a RA0. Qu complicado! ;Recuerda conectar el pin RA0 al LED a travs de una resistencia de unos 330 ohms. ;***** Creado por: Jos Luis Ortiz G. ***** ;***** Junio 2004 ***** list p=16f84 include <[Link]> ORG H'00' GOTO PARTIDA ORG H'04' RETFIE PARTIDA BCF BSF MOVLW MOVWF MOVLW MOVWF

STATUS,RP1 STATUS,RP0 ;banco 1 B'00011110' TRISA ;PORTA output slo RA0 H'FF' TRISB ;PORTB es input, en particular RB0

BCF LOOP BTFSC CALL BTFSS CALL GOTO

STATUS,RP0

;banco 0

PORTB,0 ;RB0 est en 0? PRENDE_LED ;si NO (o sea,RB0=1), entonces prende el LED PORTB,0 ;RB0 est en 1? APAGA_LED ;si NO (o sea,RB0=0), entonces apaga el LED LOOP

PRENDE_LED BSF PORTA,0 ;pone en 1 el pin RA0 RETURN APAGA_LED BCF PORTA,0 ;pone en 0 el pin RA0 RETURN END

También podría gustarte