miércoles, 21 de mayo de 2014

Practica 9 de Proteus

#include "C:\Users\Lalo\Documents\UAA\DispositivosES\ejercicio9\ejercicio9.h"
#include <LCD.C>
#include <18F452.h>
//#device ADC=16

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(crystal=4000000)

void LE (int j)
   {
         int i; //variable local del sub-programa.  
         for (i=1;i<=j;++i) //Retardo de jseg
            delay_ms(1000); // 1 seg ^_^
       
         printf(LCD_PUTC, "\f"); //limpiamos la LCD
      return; // no retorna nada u.u
   }


int main()
{
   lcd_init(); //Inicializa la libreria para manejar el LCD
      //unsigned int i; // Variable local
      printf(LCD_PUTC, "\f"); //Borra o limpia la LCD
     
      while (true) //Bucle infinito =P
      {
         lcd_gotoxy(1,1);// cd_gotoxy(x,y) donde x es la fila, y la columna.
            printf(LCD_PUTC, "Ejemplo 1 :D"); // entre comillas el mensaje.
         LE(2); // limpiar y esperar 2seg
                 
         lcd_gotoxy(1,1);// cd_gotoxy(x,y) donde x es la fila, y la columna.
            printf(LCD_PUTC, "Hola Mundo"); // entre comillas el mensaje.
           
         //LE(4); // limpiar y esperar 4seg
     
         LE (2);
      }
      return 0;
     
}


Practica 8 de Proteus

#include <16F876.h>
#include <lcd.c>

#fuses XT,NOWDT
#use delay(clock=4000000)
#use standard_io(C)
#use standard_io(A)

void main()
{
 printf("HOLA");
}

/*enum funciones {med,cal,ini};

void medir(void){
   output_toggle(pin_C0);
}

void calibrar(void){
   output_toggle(pin_C1);
}

void inicializar(void){
   output_toggle(pin_C2);
}

void run_func(int numfunc){
   switch(numfunc){
      case med:
         medir();
         break;
      case cal:
         calibrar();
         break;
      case ini:
         inicializar();
         break;
   }
}

void main() {
 
   char item;
   char n_menus = 3;
 
   lcd_init();
 
   while (1) {
   if (input(PIN_A0) == 1) {
   item++;
   delay_ms(300);
   lcd_putc('\f'); }
 
   if (item > (n_menus-1)) {
   item = 0;}
 
 
   switch (item) {
 
      case 0:
         lcd_gotoxy(1,1);
         printf(lcd_putc, "MEDIR");
         lcd_gotoxy(1,1);
         break;
       
      case 1:
         printf(lcd_putc, "CALIBRAR");
         lcd_gotoxy(1,1);
         break;
       
      case 2:
         printf(lcd_putc, "INICIALIZAR");
         lcd_gotoxy(1,1);
         break;      
   }
 
   if (input(PIN_A1) == 1)
   {delay_ms(200);
   run_func(item);}
 
   }
 }*/


Practica 7 de Proteus

#include <16F876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock= 4000000)
#use standard_io(a)

#include <lcd.c>
#include <kbd.c>
#include <stdlib.h>
#rom 0x2100={'7','2','3'}

void main() {
   char k;
   int x;
   char data[3], clave[3];
   lcd_init();
   kbd_init();
   port_b_pullups(TRUE);
 
   while (TRUE) {
   i=0;
   printf(lcd_putc,"\fpulsar tecla 1\n");
   while(1<=2){
      k=kbd_getc();
      if(k!=0)
      {data[i]=k;
      i++;
      printf(lcd_putc,"\fpulsat tecla %u\n",i+1);
      }
   }
   for(1=0;i<=2;i++){
      clave[i]=read_eeprom(i);}
   if((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2]))
   {  printf(lcd_putc,"\fPuerta Abierta");
      output_high(PIN_A0);
      delay_ms(500);
      output_low(PIN_A0);}
   else printf(lcd_putc,"\fPuerta Cerrada");
   delay_ms(500);
   }
}

Practica 6 de Proteus

#include <16F876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock= 4000000)
#include <lcd.c>
#include <kbd.c>

void main() {
   char k;
   int x;
   lcd_init();
   kbd_init();
   port_b_pullups(TRUE);
   lcd_putc("\fListo...\n");
 
   while (TRUE) {
      k=kbd_getc();
      x=k-48;
      if(k!=0){
         if(k=='*')
         lcd_putc('\f');
      else
         lcd_putc(k);
         delay_ms(500);
       
         printf(lcd_putc,"\f Car=%c",k);
         delay_ms(500);
       
         printf(lcd_putc,"\f Car=%u", k);
         delay_ms(500);
       
         printf(lcd_putc,"\f Num=%u",x);
         delay_ms(500);
         lcd_putc("\fListo...\n");
      }
   }
}


Practica 5 de Proteus

#include <16F877A.h>
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6, rcv=PIN_C7,bits=8)

void main()
{
 printf("Mensaje desde PIC C Compiler");
}


Practica 4 de Proteus

#include <16F876.h>
#fuses XT,NOWDT
#use delay(clock = 4000000)
#BYTE TRISB = 0x86
#BYTE PORTB = 0x06
#BYTE OPTION_REG = 0x81

void main(){
   bit_clear(OPTION_REG,7);
   bit_set(TRISB,0);
   bit_clear(TRISB,1);
   bit_clear(PORTB,1);
   while(1){
      if(bit_test(portb,0) == 1)
         bit_clear(portb,1);
      else
         bit_clear(portb,1);
   }
}


Practica 3 de Proteus

#include <16F84A.h>

#FUSES NOWDT                  
#FUSES XT                       //Crystal osc <= 4mhz para PCM/PCH , 3mhz a 10 mhz para PCD
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT              
#use delay(clock=4000000)

void main()
{
//           76543210            Número de PIN del PIC
set_tris_a(0b00000000);       // Todos salida valor cero. Las entradas van con 1.
 while(true)                  // Bucle infinito
{
   output_high(PIN_A0);       // enciende el LED
   delay_ms( 1000 );          // retardo de 1 segundo
   output_low(PIN_A0);        // apaga el LED
   delay_ms( 1000 );          // retardo de 1 segundo
}
}