Ejemplos para PIC16F84 en C

Hola soy Edgar E. Tek Torres les traigo la programación del cambio de giro de un motor bipolar usando lenguaje de programación C el cual es nivel medio-alto. Con esto quiero ayudar a otros estudiantes con sus proyectos y tareas dado a que no en muchos lugares encontraran este tipo de ayuda.

EL SOFTWARE:

#include <16f84a.h>
#fuses nowdt, xt, noput, noprotect
#use fast_io(a)
#use fast_io(b)
#use delay(clock=4000000)

void rutina1()

{
output_b(0b00000011); delay_ms(vel);
output_b(0b00000110); delay_ms(vel);
output_b(0b00001100); delay_ms(vel);
output_b(0b00001001); delay_ms(vel);

}

void rutina2()

{
output_b(0b00001001); delay_ms(vel);
output_b(0b00001100); delay_ms(vel);
output_b(0b00000110); delay_ms(vel);
output_b(0b00000011); delay_ms(vel);
}


void main ()
{

Set_tris_a(0b00011111);
set_tris_b(0b00000000);

while (true)

{
if(!input(pin_a0))rutina1();
if(input(pin_a0))rutina2();
}
}

PUEDEN DESCARGAR LA SIMULACIÓN EN PROTEUS CLARO
PASS:kami desu
 

Adjuntos

  • motor.rar
    17.4 KB · Visitas: 28
Hola soy Edgar Enrique Tek Torres les traigo la programación de un contador de 0-99 y 99-0 usan do lenguaje C. Usando un display doble y un decodificador binario.

SOFTWARE:


#FUSES NOWDT,XT,NOPUT,NOPROTECT
#use FAST_IO(A)
#use FAST_IO(B)
#use delay(clock=4000000)
void unidec(con)
{
int8 uni=0,dec=0;
while(con>9){con-=10;dec++;}
uni=con;
output_b(uni);output_high(pin_b6);delay_ms(5);
output_b(dec);output_high(pin_b7);delay_ms(5);
}
Void main()
{
Set_tris_a(0b00011111);
Set_tris_b(0b00000000);
int8 con=0;
output_b(0b11000000);
while(true)
{
while(!input(pin_a0) && !input(pin_a1))unidec(con);
{if (input(pin_a0))
if(con>98) con=0;
else con++;}
{if(input(pin_a1))
if(con<1) con=99;
else con--;}
while(input(pin_a0)|| input(pin_a1))unidec(con);
}
}
 
Hola soy Edgar E. Tek Torres les traigo la simple programación de un semáforo en lenguaje C.

SOFTWARE:

#include <16f84a.h>
#fuses nowdt, xt, noput, noprotect
#use fast_io(a)
#use fast_io(b)
#use delay(clock=4000000)

void main ()
{
set_tris_b(0b00000000);

WHILE(true)
{
output_b(0b0100001); delay_ms(5000);
output_b(0b0100010); delay_ms(3000);
output_b(0b0001100); delay_ms(5000);
output_b(0b0010100); delay_ms(3000);
}
}
 
Hola soy Edgar E. Tek Torres y les traigo la simple programacion de un segundero en lenguaje C.

Sofware:
#include <16F84A.h>
#FUSES NOWDT,XT,NOPUT,NOPROTECT
#use FAST_IO(A)
#use FAST_IO(B)
#use delay(clock=4000000)
void unidec(seg)
{
int8 uni=0,dec=0, xxx=0;
while(seg>9){seg-=10;dec++;}
uni=seg;
for(xxx=0; xxx<101; xxx++)
{
output_b(uni);output_high(pin_b6);delay_ms(5);
output_b(dec);output_high(pin_b7);delay_ms(5);
}
}
Void main()
{
Set_tris_a(0b00011111);
Set_tris_b(0b00000000);
int8 seg=0;
while(true)
{
for(seg=0; seg<60; seg++) unidec(seg);
}
}
 
Atrás
Arriba