jueves, 4 de julio de 2013

IMPLEMENTACION DE LA RUTINA DEL MODULO PWM, ADC, RS 232, Y LCD; POTENCIOMETRO Y ACTUADOR Y COMUNICACION TTL DE COMUNICACION SERIAL (LAB - 6)



MATERIALES:
 -  MICROCONTROLADOR 18F2550
  -  MOTOR
-       -  LCD 16X2
-       -  RESISTENCIAS
-       -  PROTOBOARD
-       -  POTENCIOMETRO
        -  CABLE RS 232
    CODIGO (1) :
#    include <18F2550.h> //DEFINIR  PROCESADOR
#fuses  HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN //FUSIBLES
#use delay (clock=12000000)//12Mhz
#USE RS232 (baud=9600,bits=8,parity=N,xmit=PIN_C6,rcv=PIN_C7) //CONFIG RS232
#byte portb =  0x06 //DIRECCION DE ALMACENAMIENTO

INT VALORT;  //VARIABLE 1
int VALORR;  //VARIABLE 2

#int_RDA
void RDA_isr()
{
VALORR=GETC();    //ALMACENAR EN VARIABLE 2 EL GETC
}

void main() {
  
  
   SET_TRIS_B(0X00);     //SALIDAS PUERTOS B
   SETUP_ADC_PORTS(AN0|VSS_VDD) ; //PUERTO A
   setup_adc(ADC_CLOCK_INTERNAL); // RELOJ INTERNO
   
   enable_interrupts(INT_RDA);    // ACTIVAR INTERRUPCIONES
   enable_interrupts(GLOBAL);     // ACTIVAR INTERRUPCIONES

for (;;) {
   set_adc_channel(0);  //ACTIVAR CANAL CONVERSION
   delay_us(20);        //RETARDO
   VALORT = read_adc();  //ALAMACENAR EN VARIABLE 1 VALOR
   PUTC(VALORT);      
  
   output_b(VALORR);    //MOSTRAR EN PUERTO B
   }
}
 
  HARDWARE1 :
 
    
CODIGO (2) :
   #include <18F2550.h>  //DEFINIR  PROCESADOR
#fuses  HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN //FUSIBLES
#use delay (clock=12000000)//12Mhz
#include <flex_lcd.c>  //LIBRERIA LCD
#USE RS232 (baud=9600,bits=8,parity=N,xmit=PIN_C6,rcv=PIN_C7) //CONFIG RS232
#byte portb =  0x06  //DIRECCION DE ALMACENAMIENTO

INT VALORTx;    //VARIABLE 1
int VALORRx;    //VARIABLE 2

#int_RDA
void RDA_isr()
{
VALORRx=GETC();  //ALMACENAR EN VARIABLE 2 EL GETC
}

void main() {
  
  
   SET_TRIS_B(0X00);                 //SALIDAS PUERTOS B
   SETUP_ADC_PORTS(AN0|VSS_VDD) ;   //PUERTO A
   setup_adc(ADC_CLOCK_INTERNAL);   // RELOJ INTERNO
   
   enable_interrupts(INT_RDA);      // ACTIVAR INTERRUPCIONES
   enable_interrupts(GLOBAL);       // ACTIVAR INTERRUPCIONES
   lcd_init();                      // INICIALIZAR LCD
   
for (;;) {
   set_adc_channel(0);    //ACTIVAR CANAL CONVERSION
   delay_us(20);          //RETARDO
   VALORTx = read_adc();  //ALAMACENAR EN VARIABLE 1 VALOR
   PUTC(VALORTx);
   lcd_gotoxy(1,2);       // IR A  POCISION LCD 2,2
   printf(lcd_putc, "ADC=%u", VALORRx );  // MOSTRAR EN PANTALLA EL VALORRX
   delay_ms(100);         //RETARDO
   }
}
  
     HARDWARE2 :
 

No hay comentarios:

Publicar un comentario en la entrada