Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pic16f873 - Conversion Ad y Transmision Por Puerto Serie
Pic16f873 - Conversion Ad y Transmision Por Puerto Serie
OBJETIVOS
Utilizar PIC para la adquisicin de datos analgicos y conversin a digital
Transmisin por puerto serie de los datos
MEDIOS A UTILIZAR
Microchip 16F873
convertidor A/D controlador Puerto Serie
PCB diseado para alojar el 16F873 y mdulos requeridos cdigo diseado para conseguir los objetivos, PC y conexiones
PIC 16F873
CPU RISC juego de 35 instrucciones 28 pins FLASH: 8K x 14 words RAM: 368 x 8 bytes EEPROM: 256 x 8 bytes Conversor A/D de 10 bits multicanal Puerto Serie multifuncional
4) Interrupciones habilitadas
Set bit TXIE
7) Si se ha seleccionado 9 bit
Cargar bit en TX9D
//ADCON0 (bank 0)
//set_bit( ADCS0,1); // Frecuencia de adquisicion //set_bit( ADCS1,0); asm bsf ADCON0,ADCS0 asm bcf ADCON0,ADCS1 //set_bit( ADFM,0); // Canal de entrada //set_bit( ADFM,0); //set_bit( ADFM,0); asm bcf ADCON0,CHS2 asm bcf ADCON0,CHS1 asm bcf ADCON0,CHS0 //ADCON1 //Pasamos al banco 1 (01) asm bcf STATUS, RP1 asm bsf STATUS, RP0
// Finalmente Habilitamos modulo AD //Pasamos al banco 0 (00) asm bcf STATUS, RP0 asm bcf STATUS, RP1 //Habilitamos asm bsf ADCON0, ADON }
} }//while
CODIGO PC - CONVERTIDOR
float convierte_dato(int dato, float low, float high){ float intervalo,margen; float result; intervalo = high - low; //printf("convierte: intervalo=%f\n",intervalo); // 2^10 = 1024 margen = (intervalo / (1024)); //printf("convierte: margen=%f\n",margen); result = low + margen*dato; //printf("convierte: resultado=%f\n",result); return result; }