Вы находитесь на странице: 1из 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 instrucción 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 instrucción 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. Conversión A/D de 8 bits y se muestra el número binario en LEDS de puerto B

#if defined(__PCM__)
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT // configuración 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 análogo digital
conversion = 0;
do
{
set_adc_channel(0); // escojo el canal a convertir
delay_ms(1); // esperar mientras se inicializa el módulo 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);
}

Вам также может понравиться