Está en la página 1de 2

Programas en Lenguaje C para el PIC16F877 - Compilador CCS

1. Encender y apagar un LED en el puerto B


#if defined(__PCM__)
//Compilador para micros con instruccin de 14 bits
#include <16F877.h>
//Archivo que incluye encabezados y definiciones
#use delay (clock = 4000000)
#use standard_io(B)
void main()
{
set_tris_A(255);
set_tris_C(255);
set_tris_D(255);
set_tris_E(255);
// Configuro los puertos A,C,D,E como entradas digitales
set_tris_B(254); // Configuro el puerto B como entradas digitales exepto el pin 1
do
{
output_low(PIN_B0);
delay_ms(100);
output_high(PIN_B0);
delay_ms(100);
}
while(true);
// Bucle infinito
}
2. Rotar un uno hacia la izquierda como un secuenciador en el puerto B
#if defined(__PCM__)
//Compilador para micros con instruccin de 14 bits
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay (clock = 4000000)
// a trabajar con 4MHz
#use standard_io(B)
#byte puerto_b=06
void main()
{
int sqcia;
set_tris_A(255);
set_tris_C(255);
set_tris_D(255);
set_tris_E(255);
// Puertos A,C,D,E como entradas digitales
set_tris_B(0);
// Puerto B como salidas digitales
puerto_b = 255;
// Puerto B en 0
do
{
for (sqcia = 0; sqcia < 8; sqcia++)
{
delay_ms(1000);
puerto_b = puerto_b / 2;
// divido entre 2 para rotar hacia la izquirda
}
puerto_b = 255;
// vuelvo y inicio el ciclo
}
while(true);
// bucle
}

3. Conversin A/D de 8 bits y se muestra el nmero binario en LEDS de puerto B


#if defined(__PCM__)
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT // configuracin del micro para quemarlo
#use delay (clock = 4000000)
// 4MHz
#use standard_io(B)
// Indica que usar el puerto B
#byte puerto_b = 06
// Define una variable llamada puerto_b
void main()
{
int conversion;
set_tris_A(255);
set_tris_C(255);
set_tris_D(255);
set_tris_E(255);
// Puerto A,C,D,E como entradas digitales
set_tris_B(0);
// Puerto B como salida digitales
puerto_b = 0;
// inicializo el puertoB
setup_adc_ports(RA0_RA1_ANALOG_RA3_REF);
// configuro los pines de la conversion
setup_adc(adc_clock_div_32);
// configuro el conversor anlogo digital
conversion = 0;
do
{
set_adc_channel(0);
// escojo el canal a convertir
delay_ms(1);
// esperar mientras se inicializa el mdulo A/D
conversion = read_adc();
// leer el valor
delay_ms(1);
puerto_b = conversion;
// visualizo por el puerto_ B
}
while(true);
// bucle
}
4. Escribir un mensaje en una pantalla LCD a 4 bits, RS = pin RB1, E=pin RB0, R/W=pin RB2
Pines RB4 a RB7 corresponden al bus de datos D4 a D7 de la pantalla
#if defined(__PCM__)
#include <16f877.h>
#use delay(clock = 4000000)
#define use_portb_lcd TRUE
#include <lcd.c>
void main()
{
do
{
lcd_init();
// se imicializa la lcd
lcd_gotoxy(5,1);
printf(lcd_putc,"MICROCHIP");
delay_ms(1000);
}
while(true);
}

También podría gustarte