ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN EN ELECTRICIDAD Y COMPUTACIÓN FIEC LABORATORIO DE MICROCONTROLADORES
PROYECTO # 2 LECTURA DE VALOR ANALÓGICO DE UN POTENCIÓMETRO Y TEMA LIBRE: MINI CALCULADORA NOMBRE CARLOS CELY LEON. PARALELO 8 GRUPO 5 FECHA DE ENTREGA 24/01/12 2011 – 2° TÉRMINO
Especificaciones técnicas del proyecto:
El siguiente proyecto es desarrollado en lenguaje C y ejecuta dos programas:
Programa #1 que consiste en la lectura de los valores analógicos de un potenciómetro colocado en la bornera de entrada analógica, presentando las variaciones de valores (en binario) en 8 LEDs y en dos DISPLAYs de 7 segmentos (en dos dígitos decimales) disponibles.
Programa #2 que consiste en una mini calculadora haciendo uso de los recursos de la tarjeta prototipo que consta de cuatro botoneras, 8 LEDs y dos DISPLAYs de 7 segmentos.
Descripción del Proyecto:
El PROGRAMA1
consiste en hacer uso del módulo
ADC que
posee el
microcontrolador. Lee el valor analógico del potenciómetro conectado en el PORTA y muestra su equivalente digital DECIMAL: unidades y decenas en los dos DISPLAYs conectados en los puertos C y D respectivamente; y su valor BINARIO en los 8 LEDs conectados al PORTB.
El PROGRAMA2 consiste en la implementación de una mini calculadora haciendo uso de 4 botoneras y mostrando el valor en los dos DISPLAYs de 7 segmentos. Si se presiona la BOTONERA1 incrementa el numero 1 con que se va a trabajar. Si se presiona la BOTONERA2 se incrementa el número 2 con que se va a trabajar. Ya seleccionados los números se presiona la BOTONERA3 para salir del ajuste y empezar con los cálculos. Los números son mostrados en los DISPLAYs. Ahora estaremos esperando la operación a realizar. Con la BOTONERA1 se mostrara la multiplicación, con la BOTONERA2 la suma y con la BOTONERA 3 la resta, con la BOTONERA4 regresamos al ajuste de los números.
Diagrama de Bloques:
Diagrama de Flujo del programa principal:
Descripción del Algoritmo:
Se escriben los parámetros de configuración e inicializan las variables y los puertos a ser utilizados. Se muestran en los puertos C y D las iniciales del estudiante. Quedamos encerrador en un lazo infinito que pregunta por la BOTONERA1 o la BOTONERA2.
Si se presiona la BOTONERA1, se ejecuta el PROGRAMA1: Se configura el modulo ADC y se leen los Datos Analógicos desde el PIN0 del PORTA. Una vez obtenido el valor digital se lo divide para 10.23 para obtener un rango de 0 a 99. Seguido separamos el número en unidades y decenas y Finalmente mostramos el valor binario en el PORTB y el valor Digital Decimal en los PUERTOS C y D. Usando un arreglo de códigos de 7 segmentos para poder mostrar el número correctamente.
Si se presiona la BOTONERA2, se ejecuta el PROGRAMA2: Se inicializan las variables y puertos a usar; y quedamos dentro de un lazo infinito también, en que se espera por la presión de alguna de las 4 botoneras a usar. Si presiona la BOTONERA1 se incrementa el valor del numero1 de uno en 1 y se muestra su valor en los DISPLAYs.
Si se presiona la BOTONERA2 se incrementa el valor del número 2 de uno en 1 y se muestra su valor en los DISPLAYS. Si se presiona la BOTONERA3 salimos de modo de ajuste para entrar al modo de cálculo. En este modo si se presiona la BOTONERA1 se muestra la multiplicación del numero1 y el numero2 en los DISPLAYs.
Si se presiona la BOTONERA2 se muestra la suma de los números en los DISPLAYs.
Si se presiona la BOTONERA3 se muestra la División de los números en los DISPLAYs en los PORTC y PORTD. Finalmente si se presiona la BOTONERA4 salimos del modo de cálculo para regresar al modo de ajuste en el que nuevamente se espera el ajuste de los números para realizar los cálculos y así infinitamente.
Programa Fuente: int dec,uni,decimal,dato,aux; int const disp[10] = {0x3F, 0x06, 0x5B, 0x4F, //Se declaran como constantes 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; //Código Hexa para cada número int const id[27] = {0X77,0X7C,0X39,0X5E,0x79,0x71,0x3d,0x76,0x06,0x1e,0x76,0x38,0x4F,0x54,0x55,0x5c,0x73,0x67,0x50, 0x6d,0x70,0x1c,0x3e,0x4f,0x76,0x6e,0x5b}; // A , B , C , D , E , F , G , H , I , J , K , L , M , N , Ñ , O , P , Q , R , S , T , U , V , W , X ,Y ,Z // 0 , 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 int espejo(int temp1) { int temp2=0; if ((temp1&0x01)==0x01) temp2=temp2+128; if ((temp1&0x02)==0x02) temp2=temp2+64; if ((temp1&0x04)==0x04) temp2=temp2+32; if ((temp1&0x08)==0x08) temp2=temp2+16; if ((temp1&0x10)==0x10) temp2=temp2+8; if ((temp1&0x20)==0x20) temp2=temp2+4; if ((temp1&0x40)==0x40) temp2=temp2+2; if ((temp1&0x80)==0x80) temp2=temp2+1; return temp2; }
//Función Para invertir Bits de una variable
void p1() { ADC_Init(); while(1) { dato=ADC_Read(0); aux=(dato/10.23); if(aux<=99) { dec=aux/10; uni=aux%10; } if(aux==100) { dec=0; uni=0; } PORTB=espejo(aux); PORTC=disp[uni];
//inicializo el ADC
//entrada analógica 0 //división perfecta para marcar rango
//división para extraer decimal del dato anterior //modulo (residuo de la división) para extraer unidades
// muestro el valor binario en el PORTB // muestro valor unidades en el PORTC.
PORTD=disp[dec];
// muestro valor decenas en el PORTD
} } void p2() { int contu=0, contd=0, contt=0, temp1=0, temp2=0; do{ PORTC=disp[0]; PORTD=disp[0]; }while(PORTA.F2); Delay_ms(300); while(1) { PORTC=disp[0]; PORTD=disp[0];
while(!PORTA.F3) { if(PORTA.F1) { if(contu>9) contu=0; contu++; PORTC=disp[contu]; Delay_ms(300); } if(PORTA.F2) { if(contd>9) contd=0; contd++; PORTD=disp[contd]; Delay_ms(300); } temp1=contu; temp2=contd; } Delay_ms(500); while(!PORTA.F4) { if(PORTA.F1) { contt=temp1*temp2; contd=contt/10; contu=contt%10;
//declaracion de variables //se enceran displays
// se valida que suelte la resistencia
PORTC=disp[contu]; PORTD=disp[contd]; Delay_ms(1000); } if(PORTA.F2) { contt=temp1+temp2; contd=contt/10; contu=contt%10; PORTC=disp[contu]; PORTD=disp[contd]; Delay_ms(1000); } if(PORTA.F3) { if(temp1>temp2) contt=temp1-temp2; if(temp2>temp1) contt=temp2-temp1; if(temp1==temp2) contt=0; contd=contt/10; contu=contt%10; PORTC=disp[contu]; PORTD=disp[contd]; Delay_ms(1000); } } } }
void main() { ANSEL=0x01; ANSELH = 0; C1ON_bit = 0; C2ON_bit = 0; TRISA = 0xFF; TRISC = 0; TRISB = 0; TRISD = 0; PORTB=0; while(1) { PORTC=id[2]; PORTD=id[2]; if(RA1_bit=1) p1(); if(PORTA.F2=1) p2(); }
// Configure other AN pins as digital I/O // Disable comparators // PORTA como entrada // PORTC como salida // PORTB como salida // PORTD como salida // inicializado en 0 el PORTB
// iniciales // iniciales //prueba el bit 1 del PORTA //prueba el bit 2 del PORTA
}
Circuito armado en Proteus: D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
GND
RA1 VCC
R26
VCC 1
2 RA2
R27
3
GND
GND
1k
R1 1k
RV1
1k
1VCC GND
2
R28
GND 1
42%
1
RA3
1k
VCC 1 GND
RE3
2
U1
1k 1
RA1 RA2 RA3 RA4
2
R29
2
RA4
1k
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
R3
R4
R5
R6
R7
R8
R9
330
330
330
330
330
330
330
330
D2
D3
D4
D5
D6
D7
D8
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
19 20 21 22 27 28 29 30
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330 330 330
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330 330 330
DIS2 4 5 9 7 6 2 1
8 9 10
DIS1 4 5 9 7 6 2 1
K
K
K
K
K
K
K
15 16 17 18 23 24 25 26
PIC16F887
D1 K
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
A
A
A
A
A
A
A
A
R2
RE3/MCLR/VPP
8
GND
8
VCC 1
GND
Aplastando la botonera dos para configurar el primer digito. D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
RA1 VCC
R26
VCC 1
2 RA2
R27
3
GND
GND
1k
R1 1k
RV1
1k
1VCC GND
R28
2
GND 1
42%
1
RA3
1k
VCC 1 GND
R29
2 RE3
2
U1
1k 1
RA1 RA2 RA3 RA4
2
RA4
1k
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
330
D7
D8
LED-RED
LED-RED
LED-RED
GND
K
D6
LED-RED
K
D5
LED-RED
K
D4
LED-RED
K
D3
LED-RED
K
D2
LED-RED
K
D1 K
K
A
R9
330
A
R8
330
A
R7
330
A
R6
330
A
R5
330
A
R4
330
A
R3
330
A
R2
RE3/MCLR/VPP
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
PIC16F887
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330 330 330
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330 330 330
DIS2 4 5 9 7 6 2 1
DIS1 4 5 9 7 6 2 1
8
GND
8
VCC 1
GND
Aplastando la botonera uno para configurar el segundo digito D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
RA1
VCC
R26
VCC 1
2 RA2
R27
R1 1k
RV1
3
GND
GND
1k
1k 42%
1
2
R28
RA3
1k
VCC 1 GND
RE3
U1
1k 1
RA1 RA2 RA3 RA4
2
R29
2
GND 1
1VCC GND
2
RA4
1k
RE3/MCLR/VPP
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
R3
R4
R5
R6
R7
R8
R9
330
330
330
330
330
330
330
330
D2
D3
D4
D5
D6
D7
D8
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
330 330
DIS2
DIS1
4 5 9 7 6 2 1
4 5 9 7 6 2 1
8 9 10
K
K
K
K
K
K
K
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330
PIC16F887
D1 K
330 330
19 20 21 22 27 28 29 30
A
A
A
A
A
A
A
A
R2
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330
15 16 17 18 23 24 25 26
8
GND
8
VCC 1
GND
GND
Aplastando la botonera tres para correr el programa y luego presionando la botonera uno realiza la operación de multiplicacion.
D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
RA1
VCC
R26
VCC 1
2 RA2
R27
3
GND
GND
1k
R1 1k
RV1
1k
1VCC GND
R28
2
GND 1
42%
1
RA3
1k
VCC 1 GND
R29
2
RE3
2
U1
1k 1
RA1 RA2 RA3 RA4
2
RA4
1k
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
330
D7
D8
LED-RED
LED-RED
LED-RED
GND
K
D6
LED-RED
K
D5
LED-RED
K
D4
LED-RED
K
D3
LED-RED
K
D2
LED-RED
K
D1 K
K
A
R9
330
A
R8
330
A
R7
330
A
R6
330
A
R5
330
A
R4
330
A
R3
330
A
R2
RE3/MCLR/VPP
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
PIC16F887
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330 330 330
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330 330 330
DIS2 4 5 9 7 6 2 1
DIS1 4 5 9 7 6 2 1
8
GND
8
VCC 1
GND
Presionando la botonera dos realiza la operación de suma D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
RA1
VCC
R26
VCC 1
2 RA2
R27
R1 1k
RV1
3
GND
GND
1k
1k 42%
1
2
R28
RA3
1k
VCC 1 GND
RE3
U1
1k 1
RA1 RA2 RA3 RA4
2
R29
2
GND 1
1VCC GND
2
RA4
1k
RE3/MCLR/VPP
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
R3
R4
R5
R6
R7
R8
R9
330
330
330
330
330
330
330
330
D2
D3
D4
D5
D6
D7
D8
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
LED-RED
330 330
DIS2
DIS1
4 5 9 7 6 2 1
4 5 9 7 6 2 1
8 9 10
K
K
K
K
K
K
K
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330
PIC16F887
D1 K
330 330
19 20 21 22 27 28 29 30
A
A
A
A
A
A
A
A
R2
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330
15 16 17 18 23 24 25 26
8
GND
8
VCC 1
GND
GND
Presionando la botonera 3 realiza la operación de resta D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
GND
RA1
VCC
R26
VCC 1
2 RA2
R27
3
GND
GND
1k
R1 1k
RV1
1k
1VCC GND
R28
2
GND 1
42%
1
RA3
1k
VCC 1 GND
R29
2
RE3
2
U1
1k 1
RA1 RA2 RA3 RA4
2
RA4
1k
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
330
D7
D8
LED-RED
LED-RED
LED-RED
GND
K
D6
LED-RED
K
D5
LED-RED
K
D4
LED-RED
K
D3
LED-RED
K
D2
LED-RED
K
D1 K
K
A
R9
330
A
R8
330
A
R7
330
A
R6
330
A
R5
330
A
R4
330
A
R3
330
A
R2
RE3/MCLR/VPP
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
PIC16F887
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330 330 330
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330 330 330
DIS2 4 5 9 7 6 2 1
DIS1 4 5 9 7 6 2 1
8
GND
8
VCC 1
Presionando la botonera cuatro realiza un reset. D9
J1
VCC
1 2
1N4001
TBLOCK-M2 2
RA1
VCC
R26
VCC 1
2 RA2
R27
3
GND
GND
1k
R1 1k
RV1
1k
1VCC GND
R28
2
GND 1
42%
1
RA3
1k
VCC 1 GND
R29
2
RE3
2
U1
1k 1
RA1 RA2 RA3 RA4
2
RA4
1k
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40
R3
R4
R5
R6
R7
R8
R9
330
330
330
330
330
330
330
330
D7
D8
LED-RED
LED-RED
LED-RED
K
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10
R10 R11 R12 330 R13 330 R14 330 R15 330 R16 330 330 330
R18 R19 R20 330 R21 330 R22 330 R23 330 R24 330 330 330
DIS2 4 5 9 7 6 2 1
DIS1 4 5 9 7 6 2 1
PIC16F887
K
D6
LED-RED
K
D5
LED-RED
K
D4
LED-RED
K
D3
LED-RED
K
D2
LED-RED
K
D1 K
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7
A
A
A
A
A
A
A
A
R2
RE3/MCLR/VPP
8
GND
GND
8
VCC 1
GND
Conclusiones:
Como conclusión se puede acotar que los módulos que tiene el PIC 16F887 como son el USART y I2C que sirven como comunicación entre el computador y el PIC o entre varios dispositivos cercanos que estén conectados al PIC ya sea como transmisor de datos como receptor de datos, así mismo la comunicación USART nos permite el enlace entre la PC con el PIC o entre PIC, esta comunicación es asincrónica sin depender de una señal de reloj, usando como sincronizador bit que determina cuando comienza a leer y cuando termina ya sea la transmisión o recepción de los datos.
Los displays LCD son dispositivos muy útiles en situaciones en las que se desean presentar menús o en las cuales se requiere de un nivel elevado de interacción con el usuario. Así mismo se puede decir que son una gran alternativa en sistemas de mediciones múltiples y simultáneas donde es
necesario visualizar los cálculos efectuados en donde el uso de displays de 7 segmentos fuera ineficiente.
Los displays LCD
poseen un controlador el mismo que les permite
comprender los comandos provenientes del microcontrolador. Entre los pines importantes de este dispositivo se encuentran los siguientes: una entrada de datos de 8 bits(8 pines), un bit selector de modo: lectura o escritura(1 pin), un bit selector de dato o instrucción(1 pin), un bit habilitador(1 pin), +Vcc (1 pin) y Gnd (1 pin).
Recomendaciones:
Se recomienda leer las funciones que involucran el display LCD de tal forma que se puedan aprovechar al máximo las prestaciones de este dispositivo, entrar en familia con el uso de las mismas, de tal manera, poder utilizar de mejor manera y de formas más eficiente los recursos que nos ofrece este software.
Antes de realizar cualquier proyecto es necesario tener a la mano todos los materiales que vayamos a necesitar, si es posible tener un reemplazo de los mismos en caso de que alguno se nos dañe o nos falle y por supuesto verificar el buen estado de los mismos antes de conectar en el circuito y montar la placa, de esta manera evitamos tener malos resultados y aseguramos asi mismo el correcto funcionamiento de nuestro circuito.
Como recomendación final, se puede decir que al terminar de soldar la placa de nuestro circuito, se debería medir con un multímetro la continuidad de la placa, y probar también si no existe algún corto circuito, ya que se puede dar el caso de que al soldar, se haya producido la unión de las pistas y esté haciendo corto circuito. Así mismo se recomienda también limpiar la placa con un cepillo y alcohol o diluyente, y de esta
forma extraer algunos residuos que podrían causar conflictos en el correcto funcionamiento del circuito.