Uploaded by Javier C. Mendoza

ADC

advertisement
CONVERSOR ANALOGO/DIGITAL
I.
CONVERSOR ANALOGO/DIGITAL
La conversión implementada por los microcontroladores PIC16F cuenta con una resolución de 10 bits, lo que
permite obtener un número con un rango de 0 a 1023, que es proporcional a los valores de referencia, que
por defecto son 0 voltios y 5 voltios. Esto significa que si una entrada análoga, tiene una tensión de 0 voltios
su resultado es 0, y si la tensión es de 5 voltios el resultado de la conversión es 1023 de igual manera si la
tensión es de 2.5 voltios, el resultado será 511.
El PIC16F877A tiene 8 entradas de señal análoga multiplexadas, lo que significa que el módulo de conversión
interna del microcontrolador es sólo uno, y los múltiples canales se pueden leer pero no al mismo tiempo.
Para realizar este tipo de conversiones el compilador MikroC Pro for PIC cuenta con la librería ADC Library.
Está librería cuenta con la función denominada ADC_Read(). Esta función retorna el resultado de la
conversión del canal especificado por el parámetro entre paréntesis.
Diagrama de bloques:
La placa dispone de 16 pines enumerados, la función de los pines se muestra en la siguiente tabla:
II.
LIBRERÍA LCD – LIBRARY DE MIKROC
III.
DIAGRAMA ESQUEMATICO (“HOLA MUNDO”)
LCD1
RV1
LCD 'HOLA MUNDO'
C1
10k
2
100%
22pF
X1
U1
4MHZ
13
14
1
C2
22pF
2
3
4
5
6
7
8
9
10
R1
1
ET
10k
OSC1/CLKIN
OSC2/CLKOUT
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
1
2
3
VSS
VDD
VEE
LM016L
LCD_RS at RB0_bit;
LCD_EN at RB1_bit;
LCD_D4 at RB4_bit;
LCD_D5 at RB5_bit;
LCD_D6 at RB6_bit;
LCD_D7 at RB7_bit;
LCD_RS_Direction at
LCD_EN_Direction at
LCD_D4_Direction at
LCD_D5_Direction at
LCD_D6_Direction at
LCD_D7_Direction at
TRISB0_bit;
TRISB1_bit;
TRISB4_bit;
TRISB5_bit;
TRISB6_bit;
TRISB7_bit;
void main() {
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,4,"HOLA MUNDO");
Lcd_Out(2,4,"PIC16F877A");
}
DIAGRAMA ESQUEMATICO (RUTINA LCD_CHR Y CONVERSION)
LCD1
RV1
10k
C1
100%
22pF
X1
4MHZ
C2
22pF
U1
13
14
2
3
4
5
6
7
8
9
10
R1
1
OSC1/CLKIN
OSC2/CLKOUT
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
VSS
VDD
VEE
LM016L
1
2
3
V.
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
sbit
2
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
CODIGO FUENTE MIKROC (“HOLA MUNDO”)
1
IV.
VI.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
CODIGO FUENTE MIKROC (RUTINA LCD_CHR Y CONVERSION)
//RUTINA Lcd_Chr
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at
sbit LCD_EN_Direction at
sbit LCD_D4_Direction at
sbit LCD_D5_Direction at
sbit LCD_D6_Direction at
sbit LCD_D7_Direction at
TRISB0_bit;
TRISB1_bit;
TRISB4_bit;
TRISB5_bit;
TRISB6_bit;
TRISB7_bit;
unsigned short i, dato;
char txt[4];
void main() {
Lcd_Init();
//Inicializa el LCD
Lcd_Cmd(_LCD_CURSOR_OFF);
//Apaga el cursor
Lcd_Out(1,1,"CARACTER:");
while(1){
for(i=33; i<=255; i++){
Lcd_Chr(1,12,i); //Imprime el caracter correspondiente al nro
dato=i;
ByteToStr(dato, txt);
//Convertir a cadena ASCII en decimal
Lcd_Out(2,1,"NRO DE CHR:");
Lcd_Out(2,12,txt); //Imprime el nro correspondiente al caracter
delay_ms(500);
}
}
}
Download