///////////////////////////////////////////////////////////////////////// //// EX_876AD.C //// //// //// //// Ce programme utilise 1 convertisseur AN1 //// //// Puis renvoie le résultat sur la RS232 //// //// Aprés avoir reçu un code de conversion:'T' //// //// //// //// //// //// Sur le 16F876, RA0/AN0 = patte 2 //// //// //// //// Utilisation de la liaison série normale du 16F876 //// //// RX = RC7 //// //// TX = RC6 //// //// //// ///////////////////////////////////////////////////////////////////////// #if defined(__PCM__) #include "16F876.h" #fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP #DEVICE ADC=10 //Obligatoire, sinon, il passe en mode 8 bits #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, PARITY=N) #endif main() { float const Quanta=5.0/1024.0; int source; float res; setup_adc_ports(RA0_ANALOG); setup_adc(ADC_CLOCK_DIV_32); delay_ms(2000); do { printf("\r\nTapez 'T' pour lancer la conversion sur AN0:\r\n"); source = toupper(getc()); if (source == 'T') { source = 0; res = READ_ADC(); res = res * Quanta; printf("\r\nValeur A/D = %f V\n", res); } } while(TRUE); }