9
Encender y apagar un led #include<18f2550.h> #use delay(clock=8000000) void main(void) { output_high(pin_b0); delay_ms(60000); output_low(pin_b0); delay_ms(60000); }

MICROS Y REGISTROS

Embed Size (px)

DESCRIPTION

programaciones y simulaciones con un pic

Citation preview

Encender y apagar un led

#include<18f2550.h>

#use delay(clock=8000000)

void main(void)

{

output_high(pin_b0);

delay_ms(60000);

output_low(pin_b0);

delay_ms(60000);

}

SECUENCIA DE LEDS #include<18f2550.h>

//#fuses

#use delay(clock=8000000)

int x=1,aux[20];

void main(void)

{

aux[1]=0b00000001;

aux[2]=0b00000010;

aux[3]=0b00000100;

aux[4]=0b00001000;

aux[5]=0b00010000;

aux[6]=0b00100000;

aux[7]=0b01000000;

aux[8]=0b10000000;

aux[9]=0b01000000;

aux[10]=0b00100000;

aux[11]=0b00010000;

aux[12]=0b00001000;

aux[13]=0b00000100;

aux[14]=0b00000010;

aux[15]=0b00000001;

aux[16]=0b00000000;

aux[17]=0b11111111;

aux[18]=0b00000000;

aux[19]=0b11111111;

while(true)

{

for(x=1;x<=19;x++)

{

output_b(aux[x]);

delay_ms(100);

}

}

Contador de 0 a 9

#include<16f877.h>

//fuses

#use delay(clock=4000000)

int display[10]={

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};

int unidades;

void main(void)

{

While(true)

{

for(unidades=0; unidades<10;unidades ++)

{

output_b(display[unidades]);

delay_ms(1000);

}

}

}

ENCENDER LCD

#include<18f2550.h>

//#fuses intxt,nowdt,nomclr

#use delay(clock=8000000)

#define use_portb_lcd true

#include<lcd.c>

int x;

void main(void)

{

lcd_init(); //iniciamos la lcd

lcd_putc('a'); //para escribir una sola letra (a)

lcd_putc("HAROLD"); //para escribir un nombre

lcd_putc("\f"); //para aparecer y desaparecer

lcd_putc("\fSENA");

lcd_putc("2012\nHAROLD");

delay_ms(1000);

lcd_putc("\f"); //aparecer y desaparecer

lcd_putc("PROYECTO");

lcd_putc("\f");

lcd_putc("\fELECTRONIK");

lcd_putc("\f");

lcd_putc("TECNOLOGO\n");

delay_ms(1000);

while(true)

{

lcd_putc("CONTANDO\n"); //Para cambiar de linea ("\n")

++x;

delay_ms(1000);

printf(lcd_putc,"*""%u",x);

}

}

//si yo quiero trabajar con una lcd mas grande tengo q hacer lo

siguiente para poder centrar lo escrito en la lcd:

//lcd_gotoxy(x,y);

//lcd_gotoxy(5,1);

//lcd_gotoxy(4,2);

MANEJO DE COMBERSOR ANALOGO DIGITAL

#include<18f2550.h>

#use delay(clock=8000000)

#define use_portb_lcd true

#include<lcd.c>

float Vleido,voltage;

void main(void)

{

lcd_init();

setup_adc(adc_clock_internal);

setup_adc_ports(an0);

while(true)

{

set_adc_channel(0);

delay_ms(10);

Vleido=read_adc();

voltage=(Vleido/255)*5;

lcd_gotoxy(1,1);

printf(lcd_putc,"voltios=","%1,2f",voltage);

}

}

ENCENDER LED CONPULSADOR

#include <18f2550.h>

//#fuses intxt,nowdt,nolvp,noprotect // lo de sabilito para poder

probarlo en proteus pero si lo voy a quemar tengo que habilitarlo

#use delay(clock=8000000)

#define use_portb_lcd true

#include <lcd.c>

int a,b,c,dato[20];

void main(void){

setup_oscillator(osc_8MHz);

{

set_tris_a(0x00);

lcd_init();

delay_ms(100);

while(true){

if(input(PIN_A1)==1){

a=0;

for(a=0;a<=9;){

if(a==10){

break;}

lcd_putc("\f Contador \n");

printf(lcd_putc,"%u",a);

delay_ms(100);

if(input(PIN_A0)==1)

{

a++;

}

}

}

}

}

}