Professional Documents
Culture Documents
I.
OBJETIVOS:
1.1 OBJETIVO GENERAL
APRENDER
II.
MATERIALES
Computadora con software Proteus Professional, software Pic C Compiler .
III.
MARCO TEORICO:
Para poder llevar a cabo nuestra primera practica como primer paso debemos
seleccionar un microcontrolador que cuente con los siguientes requisitos:
Conversor A/D
Modulo PWM
Timer
Modulo de comunicacin Serial o USART
Dentro de las innumerables gamas de microcontroladores que existen en el mercado
vamos a elegir uno de proposito general, como el PIC 16F88 de Microchip. Este
microcontrolador cuenta con las siguientes caracteristicas:
Cuenta con un modulo A/D de 7 canales, con 10 bits de resolucion.
Modulo CCP(captura,comparacion,pwm)
Cuenta con 3 timers :
Temporizador de 8 bits
Genera interrupcin por desbordamiento
Figura 1.0
b. Implementar el programa (en lenguaje C) utilizando para ello el software PIC C
y copiando en su editor el cdigo que se muestra a continuacin.
#include <16F88.h>
#device adc=10
#FUSES NOWDT, INTRC_IO, NOMCLR
#use delay(INT=8000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B2,bits=8)
long adc_value; // variable para guardar la lectura del ADC
float adc_volts; // variable para expresar el voltaje de entrada
#int_TIMER1
void TIMER1_isr(void)
{
set_timer1(40535L); // Tm = 0.1s -- tiempo de muestreo
output_high(PIN_B1);
set_adc_channel( 0 );
delay_us(10);
adc_value = read_adc();
adc_volts = adc_value*0.004887; // 0.004887 = 5/1023
printf("ad_val = %4Lu adc_vol = %2.3f \n\r",adc_value,adc_volts);
delay_ms(50);
output_low(PIN_B1);
}
void init_cpu(void)
{
setup_adc_ports(sAN0|sAN1|VSS_VDD); //channel 0 y 1 analgicos
setup_adc(ADC_CLOCK_INTERNAL);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); // preescaler de 8
set_timer1(40535L); // T=(1/8)us*4*(65535-TMR1)*8->T=0.1s
enable_interrupts(GLOBAL);
setup_oscillator(OSC_8MHZ|OSC_INTRC);
}
void main()
{
init_cpu();
while(1);
}
c. Compile el programa antes citado y cargue el archive .HEX en el uC del
circuito implementado en Proteus.
d. En el canal D del osciloscopio (conectado al pin B1 de uC) se podr visualizar
la seal cuyo periodo corresponde al tiempo de muestreo, el Ton de la misma
corresponder al tiempo que utiliza el procesador para la lectura del ADC y
dems operaciones dentro de la interrupcin.
Anotar:
Tiempo de muestreo : 11 ms
Tiempo utilizado por el procesador para la lectura del ADC : 90 ms
e. Manipular el voltaje de entrada del ADC del uC, por medio del potencimetro
conectado al pin AN0 del mismo, utilizando el virtual terminal anote el valor de
la conversin correspondiente, e ingrese sus datos en la tabla 1.0
Resolucin del ADC del uC :49 mV
ANALOGICO - DIGITAL
f.
Vi
adc_value
000
205
419
2.5
512
614
829
1023
adc_value vs. Vi
1200
1023
1000
829
800
614
600
512
419
400
205
200
0 0
0
U
sando los datos de la tabla graficar adc_value vs Vi y encontrar la funcin de
transferencia (K) para el A/D.
N= KV
g. Usando PWM para generar una seal analgica (D/A)
Acontinuacion se muestra el diagrama de flujo del proceso de generacion de la
seal PWM
Figura 1.1
j. En el canal D del osciloscopio (conectado en el pin C1 del uC), se podr
visualizar la grfica del tiempo de muestreo, as como el tiempo utilizado por el
cdigo del programa para lectura del A/D y D/A generacin de PWM del uC
(tiempo contado luego de generada la interrupcin del TIMER1) y en el canal C
se podr visualizar la seal PWM proveniente del uC.
k.
DIGITAL - ANALOGICO
Adc_value
Tpwm
Tpwm
%D
Duty
Vi
0
1
N
0
205
Ton
0
40
Tof
0
10
0
20
D
0
80
2
3
419
614
29
20
21
30
40.9
60
163
240
829
9.25
40.75
81
324
1023
0.10
49.90
99.99
399
Tabla 1.2
Vi vs %D
120
100
80
%D
60
40
20
0
Vi
l. De la tabla
1.2 graficar Vi vs %D, %D vs Duty y Duty vs adc_value
Duty Vs. %D
450
400
399
350
324
300
250
240
DUTY 200
163
150
100
80
50
0 0
0
20
40
60
80
100
120
%D
1000
829
800
Adc_value
614
600
419
400
205
200
0 0
0
50
100
150
200
250
DUTY
300
350
400
450
2 Hz
10 Hz
20 Hz
CONCLUSIONES
El convertidor digital-analgico es un circuito que tiene una
entrada digital y da a la salida una tensin proporcional a la
palabra digital.
Mientras que el convertidor analgico-digital es un Circuito
tiene una entrada analgica y da a la salida una palabra digital
proporcional a la entrada analgica.
Agregando una pequea seal analgica debemos utilizar offset
porque el microcontrolador no lee seales negativas, hacemos