Академический Документы
Профессиональный Документы
Культура Документы
// **********
#include <18f2550.h>
#fuses HS,NOMCLR,PUT,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPBADEN
#use fast_io(c)
void main()
output_c (0x00);
WHILE (TRUE)
output_high(PIN_C0);
delay_ms(50);
output_low(PIN_C0);
delay_ms(50);
}
// EJEM2.C
// **********
#fuses HS,NOMCLR,PUT,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPBADEN
void main()
set_tris_b(0x00);
int8 X=0x01;
while(TRUE)
delay_ms(50); //Retardo de 50 ms
rotate_left(&X,1);
// EJEM3.C
// *******
#fuses HS,NOMCLR,PUT,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPBADEN
int N;
void main()
set_tris_b(0x00);
output_b(0);
WHILE (TRUE)
{
for (N=0;N<8;N++)
output_b(led[N]);
delay_ms(75);
// EJEM4.C
// *******
#fuses HS,NOMCLR,PUT,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPBADEN
int8 const
led[12]={0x8000001,0x400002,0x200004,0x100008,0x80010,0x40020,0x20040,0x10080,0x810
0,0x4200,0x2400,0x1800};
int N;
void main()
set_tris_b(0x00);
output_b(0);
WHILE (TRUE)
for (N=0;N<12;N++)
output_b(led[N]);
delay_ms(150);
// EJEM5.C
// **********
#use fast_io(A)
#use fast_io(B)
int8 i=0,j=0;
void main()
setup_comparator(NC_NC_NC_NC);
set_tris_a(0x00);
set_tris_b(0x00);
WHILE (TRUE)
for (i=0;i<8;i++)
output_b(X[i]);
delay_ms(150);
output_b(0);
for (j=0;j<6;j++)
output_a(Y[j]);
delay_ms(150);
output_a(0);
}
}
/* EJEM6.C
#INCLUDE <18F2550.h>
#USE fast_io(a)
#USE fast_io(b)
int8 LEDS=0x80;
void main()
set_tris_b(0x00);
output_b(0x01);
set_tris_a(0x00);
output_a(0x01);
DO
output_b(LEDS);
rotate_right(&LEDS,1);
delay_ms(100);
output_a(LEDS);
rotate_right(&LEDS,0);
delay_ms(0);
WHILE(TRUE);
/* EJEM7.C
*******
#INCLUDE <18F2550.h>
#FUSES XT,PUT,NOWDT,NOPBADEN,MCLR,NOLVP //configura PIC
int8 LEDS=0x01,X=0;
void main()
set_tris_a(0);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
//WHILE(TRUE)
DO
DO
output_b(LEDS);
rotate_left(&LEDS,1);
delay_ms(100);
WHILE(bit_test(LEDS,7)==0);
DO
{
output_b(LEDS);
rotate_right(&LEDS,1);
delay_ms(100);
WHILE(bit_test(LEDS,0)==0);
X++;
WHILE(X<6);
/* EJEM8.C
*******
#INCLUDE <18F2550.h>
#USE fast_io(a)
#USE fast_io(b)
int8 LEDS;
void main()
set_tris_a(0x00);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
DO
LEDS=0x01;
DO
output_b(LEDS);
rotate_left(&LEDS,1);
delay_ms(100);
WHILE(bit_test(LEDS,7)==0);
output_b(LEDS);
delay_ms(100);
output_b(0x00);
LEDS=0x01;
DO
{
output_a(LEDS);
rotate_left(&LEDS,1);
delay_ms(100);
WHILE(bit_test(LEDS,6)==0);
output_a(0x00);
WHILE(TRUE);
// EJEM9.C
#INCLUDE <18F2550.h>
#USE fast_io(b)
void main()
set_tris_b(0x00);
output_b(0x00);
WHILE(TRUE)
FOR (i=3;i>=1;i--)
output_b(DATOS_1[i-1]);
delay_ms(100);
FOR (i=3;i>=1;i--)
output_b(DATOS_2[i-1]);
delay_ms(100);
}
/* EJEM10.C
********
#INCLUDE <18F2550.h>
#USE fast_io(a)
#USE fast_io(b)
void main()
set_tris_b(0x00);
output_b(0x00);
WHILE(TRUE)
WHILE(bit_test(LEDS,0)==0)
output_b(LEDS);
rotate_right(&LEDS,1);
delay_ms(100);
WHILE(bit_test(LEDS,6)==0)
output_b(LEDS);
rotate_left(&LEDS,1);
delay_ms(100);
}
/* EJEM11.C
********
#INCLUDE <18F2550.h>
#USE fast_io(a)
#USE fast_io(b)
int8 LEDS;
void main()
set_tris_a(0x00);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
WHILE(TRUE)
LEDS=0x01;
WHILE(bit_test(LEDS,7)==0)
output_b(LEDS);
rotate_left(&LEDS,1);
delay_ms(50);
}
output_b(LEDS);
delay_ms(50);
output_b(0x00);
LEDS=0x01;
WHILE(bit_test(LEDS,5)==0)
output_a(LEDS);
rotate_left(&LEDS,1);
delay_ms(50);
output_a(LEDS);
delay_ms(50);
LEDS=0x10;
WHILE(bit_test(LEDS,0)==0)
output_a(LEDS);
rotate_right(&LEDS,1);
delay_ms(50);
output_a(LEDS);
delay_ms(50);
output_a(0x00);
LEDS=0x80;
WHILE(bit_test(LEDS,0)==0)
{
output_b(LEDS);
rotate_right(&LEDS,1);
delay_ms(50);
/* EJEM12.C
********
#INCLUDE <18F2550.h>
#FUSES XT,PUT,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,CPUDIV1,NOPBADEN
//configura PIC
#USE rs232(baud=19200,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1,parity=N)
#USE fast_io(c)
int8 i,j;
void main()
output_b(0x8F); //10000000
for(i=0,j=10;((i<10)&&(j>0));i++,j--)
printf("%d - %d\n\r",i,j);
delay_ms(500);
/* EJEM13.C
********
#INCLUDE <18F2550.h>
#USE fast_io(a)
#USE fast_io(b)
int8 X;
void main()
set_tris_a(0x00);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
WHILE(TRUE)
for (X=0;X<=15;X++)
output_b(X);
delay_ms(1000);
for (X=14;X>=1;X--)
output_b(X);
delay_ms(1000);