Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Práctica 3.1
Docente:
10 Total
3. Objetivos:
5. Procedimiento
NOTA:
Se presenta los siguientes requerimientos para la implementación:
- La programación será en lenguaje C.
6. Contenido
• PIC16F877A
CARACTERÍSTICAS 16F877
Permite medir señales analógicas en forma digital, para ello el PIC cuenta
con pines por donde le llegará la señal analógica, estos pines deben
configurarse como entradas analógicas, el conversor analógico digital PIC
cuenta con un circuito que carga un condensador interno al PIC con la
tensión analógica que le está llegando a la entrada analógica, luego la
tensión almacenada en el condensador lo convierte en un número binario
de 10 bits que representará la tensión almacenada en el condensador,
este número binario se guarda en sus registros ADRESH y ADRESL de 8
bits cada uno pero estos actúan como un solo registro de 16 bits, en el
registro ADRESH se guardan los bits mas significativos y en el registro
ADRESL se guardan los bits menos significativos, el número que
representa la tensión almacenada en el condensador y guardado en forma
binaria dentro de estos registros será de 10 bits para el PIC16F877A, la
cantidad de bits de este número depende del conversor analógico digital
PIC del microcontrolador PIC utilizado.
6.2. Diagrama de Bloques
Entradas Analogica
1
RA0
4
RC4 – RC7
Microcontrolador
PIC 16F877A
Lectura/ Escritura
Activacion LCD
1
E
1
RS
1
RW
6.3. Asignación de variables
• int16 valor_adc : Declaro variable entera que guarda resultado del adc
• float voltaje : Declaro variable float para lectura de voltaje.
• #fuses XT,NOWDT:
FOSC1 → 0 FOSC0 → 1
1 WDT Habilitado
0 WDT
Deshabilitado
Mediante una regla de tres se logra hacer que el valor máximo fijado, es decir 20
voltios sea el máximo de la resolución del conversor (1023).
20 𝑉 1023 20 ∗ 𝑣𝑎𝑙𝑜𝑟_𝑎𝑑𝑐
→ 𝑉𝑖𝑛 =
𝑉𝑖𝑛 𝑣𝑎𝑙𝑜𝑟_𝑎𝑑𝑐 1023
Divisor de voltaje:
Para poder limitar que la entrada del PIC sea máximo 5 voltios se usa un divisor
de tensión.
𝑅2
𝑉𝑜𝑢𝑡 = 𝑉𝑖𝑛
𝑅2 + 𝑅1
10𝑘
5= ∗ 20
𝑅1 + 10𝑘
𝑅1 = 30𝑘 [𝛺]
6.5. Diagrama de flujo
6.6. Programa
#fuses XT,NOWDT
int16 valor_adc; /*Declaro variable entera que guarda resultado del adc*/
}
6.7. Diagrama electrónico
7. Conclusiones
8. Bibliografía