Sei sulla pagina 1di 5

CODIGOS PIC C COMPILER PARA LA PROGRAMACION DE PICS Y SIMULACION EN ISIS PROTEUS

WWW.INGALEJANDROTORRES.COM
ING. Oscar Alejandro Torres Cruz
Microprocesadores y Micro controladores
1) Prender y apagar un led
#include <16f877A.h>
#use delay (clock =20M)
#fuses XT,NOWDT
#use standard_io(b)
void main()
{
while (true)
{
output_high(pin_b0);
delay_ms(500);
output_low(pin_b0);
delay_ms(500);
}
}

2)

Secuencia de Leds

#include <16f877A.h>
#use delay (clock =20M)
#fuses XT,NOWDT
#use standard_io(b)
void main()
{
while(true)
{
if (input(pin_a0))
{
output_high(pin_b0);
delay_ms(20);
}
output_low(pin_b0);
delay_ms(20);
}
}

3) Prender led oprimiendo un botn


#include <16f877A.h>
#use delay (clock =20M)
#fuses XT,NOWDT
#use standard_io(b)
void main()
{
while(true)
{
output_low(pin_b0);
output_low(pin_b1);
if (input(pin_a0))
{
output_high(pin_b0);
delay_ms(200);
}
if (!input(pin_a1))
{
output_high(pin_b1);
delay_ms(200);
}
}
4) Secuencia LEds usando cdigo binario en el puerto B
#include <16f877A.h>
#use delay(clock=4M)
#fuses XT,NOWDT
#use standard_io(b)
void main()
{
while(true)
{
output_b(0b00011000);
output_b(0b00100100);
output_b(0b01000010);
output_b(0b10000001);
output_b(0b01000010);
output_b(0b00100100);
}
}

delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);

5) Diseo de un semaforo
#include <16f877A.h>
#use delay (clock =20M)
#fuses XT,NOWDT
#use standard_io(b)
void main()
{
while (true) {

delay_ms(5000);

output_high(pin_d7);
output_low(pin_d6);
output_low(pin_d5);

output_low(pin_b2);
output_low(pin_b1);
output_high(pin_b0);

output_high(pin_b5);
output_low(pin_b6);
output_low(pin_b7);

output_low(pin_d2);
output_high(pin_d1);
output_high(pin_d0);

output_high(pin_b0);
output_low(pin_b1);
output_low(pin_b2);

delay_ms(2000);

output_high(pin_d0);
output_low(pin_d1);
output_low(pin_d2);

output_low(pin_b2);
output_high(pin_b1);
output_low(pin_b0);
delay_ms(3000);

output_high(pin_d2);
output_low(pin_d1);
output_low(pin_d0);
delay_ms(5000);

delay_ms(5000);
output_low(pin_d7);
output_high(pin_d6);
output_low(pin_d5);

output_low(pin_d2);
output_high(pin_d1);
output_low(pin_d0);

delay_ms(2000);

delay_ms(2000);

output_low(pin_d7);
output_low(pin_d6);
output_high(pin_d5);

output_low(pin_d2);
output_low(pin_d1);
output_high(pin_d0);

output_low(pin_b2);
output_high(pin_b1);
output_high(pin_b0);

output_low(pin_d7);
output_high(pin_d6);
output_high(pin_d5);

delay_ms(2000);

delay_ms(2000);

output_high(pin_b2);
output_low(pin_b1);
output_low(pin_b0);

}
}

6) Mensaje en una LCD


#include <16f877a.h>
#use delay (clock = 4M)
#include <LCD.C>
void main () {
while (true) {
lcd_init (); //inicializa la LCD
printf (lcd_putc,"u controladores. \n");
printf (lcd_putc," IT.COFREM. ");
delay_ms(1000);
}
}
7) Conexin al Led 7 segmentos de ctodo Comn
#include <16f877A.h>
#use delay(clock=4M)
#fuses XT,NOWDT
#use standard_io(b)
//segundero
void main()
{
while(true)
{
// gfedcba en el display 7 segmentos //
output_b(0b10111111); delay_ms(1000); //numero 0
output_b(0b00000110); delay_ms(1000); //numero 1
output_b(0b11011011); delay_ms(1000); //numero 2
output_b(0b01001111); delay_ms(1000); //numero 3
output_b(0b11100110); delay_ms(1000); //numero 4
output_b(0b01101101); delay_ms(1000); //numero 5
output_b(0b11111100); delay_ms(1000); //numero 6
output_b(0b00000111); delay_ms(1000); //numero 7
output_b(0b11111111); delay_ms(1000); //numero 8
output_b(0b01100111); delay_ms(1000); //numero 9

}
}

8) Lectura de la entrada Analoga (An0)}


#include <16F877A.h>
#device adc=10 //para la practica cambiemos
por 8
#FUSES XT,NOWDT
#use delay(clock=4000000)
#include <LCD.C>
void main() {
double q;
setup_adc_ports(AN0);
//Canal 0 analgico
setup_adc(ADC_CLOCK_INTERNAL); //Fuente de reloj RC
for (;;) {
set_adc_channel(0);
delay_us(20);

//Habilitacin canal a0;si lo cambiamos cambia el puerto A1,A2,A3

q = read_adc();
//Lectura canal0
//Conversin a tensin
lcd_init();
printf(lcd_putc, "Numero =%1.2f", q);
delay_ms(1000);
}
}
9) Logica positiva y negativa conexin a bombillos de 120VAC
#include <16F877A.h>
#FUSES XT,NOWDT
#use delay(clock=4000000)
void main()
{
while(true)
{
output_high(pin_b0);
output_high(pin_b1);
delay_ms(5000);
output_low(pin_b0);
output_low(pin_b1);
delay_ms(10000);
}

Potrebbero piacerti anche