Sunteți pe pagina 1din 40

MANEJO PANTALLA LCD Y ADC

Microsoft PowerPoint 2010.lnk


PANTALLA LCD. COMANDO PRINT
PRINT
Sintaxis

PRINT Item { , Item... }

Envia texto al mòdulo LCD usando el controlador Hitachi 44780 o LCD


gráfica basada en el chip Samsung S6B0108.

Operadores
• Item – una constante, variable, expresión, modificador, o lista de
caracteres.
No hay operadores como tal, sino modificadores. Por ejemplo, si precede el
símbolo @ a un ítem, se enviará la representación ASCII de cada digito a la
LCD. La siguiente lista muestra los modificadores existentes:
Operation
Modifier Position the cursor on a serial LCD
AT ypos,xpos Clear a serial LCD (also creates a 30ms delay)
CLS Send binary digits
BIN{1..32} Send decimal digits
DEC{1..10} Send hexadecimal digits
HEX{1..8} Send signed binary digits
SBIN{1..32} Send signed decimal digits
SDEC{1..10} Send signed hexadecimal digits
SHEX{1..8} Send binary digits with a preceding '%' identifier
IBIN{1..32} Send decimal digits with a preceding '#' identifier
IDEC{1..10} Send hexadecimal digits with a preceding '$' identifier
IHEX{1..8} Send signed binary digits with a preceding '%' identifier
ISBIN{1..32} Send signed decimal digits with a preceding '#'
ISDEC{1..10} identifier
Send signed hexadecimal digits with a preceding '$'
ISHEX{1..8} identifier
REP c\n Send character c repeated n times
STR array\n Send all or part of an array
CSTR cdata Send string data defined in a CData statement
 PRINT "Hello World" ' Muestra el texto "Hello World"

 PRINT "VAR1= " , DEC VAR1 ' Muestra el valor decimal de VAR1

 PRINT "VAR1= " , HEX VAR1 ' Muestra el valor hexa de VAR1

 PRINT "VAR1= " , BIN VAR1 ' Muestra el valor binario de VAR1

 PRINT "VAR1= " , @VAR1 ' Muestra el valor decimal de VAR1


COMANDOS

Command Operation
$FE, 1 Clear display
$FE, 2 Return home (beginning of first line)
$FE, $0C Cursor off
$FE, $0E Underline cursor on
$FE, $0F Blinking cursor on
$FE, $10 Move cursor left one position
$FE, $14 Move cursor right one position
$FE, $C0 Move cursor to beginning of second line
$FE, $94 Move cursor to beginning of third line
$FE, $D4 Move cursor to beginning of fourth line
PRINT $FE , 2

Moverá el cursor a la línea 1, posición 1 (HOME).

Si se usa el commando de limpiar pantalla, se debe agregar


un pequeño retardo de tiempo.

PRINT $FE , 1
DELAYMS 30
Se le puede indicar a la pantalla la posición en la
que se desea observar la información:

' Muestra en la línea 1 columna 1 el mensaje “PI”, y


a continuación el valor de la variable en decimales,
usando dos cifras decimales.

SYMBOL pi = 3.14

PRINT AT 1 , 1 , “PI”, DEC2 pi


Configurando la pantalla LCD
estandar 2x16.
DECLARE LCD_DTPIN PORTB.4 ' Used for 4-line
interface.

DECLARE LCD_DTPIN PORTB.8 ' Used for 8-line


interface.

Las líneas de datos de la LCD pueden ser asignadas a


cualquier Puerto del micro. Si no se declara tomará por
defecto una interfaz de 4 líneas de datos en PORTB.
DECLARE LCD_ENPIN PORT . PIN

Asigna el Puerto y pin que usara la LCD para entrada


de habilitación.
Si no se declara se asume por defecto PORT.2.

DECLARE LCD_RSPIN PORTb . PIN

Asigna el Puerto y pin que usará la LCD para la entrada


de control. Si no se declara se tomara por defecto
PORTb.3.
Ejemplo
Device = 16F870
XTAL =4
TRISB=0
' configurando lcd
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.2
Declare LCD_RSPIN PORTB.3
' dimesionando variables
Dim VAR1 As Byte
inicio:
Print $FE,1 ' BORRA PANTALLA
DelayMS 30 ' ESPERA 30mS
Print At 1,1,"BIENVENIDOS"
VAR1 = 25
Print $FE,1
Print at 2,1, “El Valor es=”, VAR1
DelayMS 400
GoTo inicio
ADC

CONVERSOR ANÁLOGO DIGITAL


DEL PIC 16F870
Digitalización de una señal

 Digitalizar significa convertir una señal


analógica a un formato digital
Digitalización de una señal

El interés en puede surgir por varios motivos:


 Almacenarla en un soporte digital
 Transmitirla digitalmente para poder
reconstruirla
 Procesar los valores analógicos que mida un
sensor, etc.
 Procesarla por circuitos digitales
 A diferencia de su contraparte analógica, la
señal digital no pierde su calidad con
múltiples transmisiones, reproducciones o
procesamientos
Señal analógica
Señal digitalizada a 24 muestras
por segundo
Señal cuantificada

 Los valores cuantificados van a depender del


número de bits que vayamos a almacenar
para cada muestra, por ejemplo, en la imagen
se toman 4 bits y con ellos se pueden formar
16 combinaciones y por lo tanto 16 distintos
niveles en los que se puede dividir el eje. El
PIC cuantifica con 10 bits luego son 1023
niveles
Señal cuantificada
Principales características de
una digitalización:

 Frecuencia de Muestreo (Sampling rate)

 Número de bits
ADC

 El PIC16F870 posee 5 entradas analógicas.


Debido a éstas, el microcontrolador no sólo
puede reconocer si un pin es llevado a bajo o
alto (0 o +5V), sino que puede medir con
precisión el voltaje y convertirlo en un valor
numérico.
Características

 Dispone de 8 entradas analógicas separadas


que se conectan a los pines del puerto del
microcontrolador.
 Las entradas analógicas usan la carga de un
capacitor como retenedor sampler and hold.
 La salida del capacitor sampler and hold es la
entrada al conversor.
 La conversión se lleva al cabo aplicando el
método de aproximaciónes sucesivas.
 El convertidor A/D convierte una señal de
entrada analógica en un número binario de 10
bits.
 La resolución mínima o calidad de conversión
se puede ajustar a diferentes necesidades al
seleccionar voltajes de referencia Vref- y
Vref+.
REGISTROS DEL MODULO DE A/D
ADRESH:
Parte alta del resultado de la conversión·

ADRESL:
Parte baja del resultado de la conversión·

ADCON0:
Registro de Control 0 ;control del funcionamiento del conversor ·

ADCON1:
Registro de Control 1; configuración de los pines del puerto
ADCON0
ADCON1
ADRESH Y ADRESL
Config de canales
PROTÓN

En protón existe 1 instrucción para conversión


tres directivas Declare para configuración.

Declare ADIN_RES : indica la resolución del


conversor.. Este puede ser de 8 o 10 bits. Esto
hace una conversión de 256 niveles o de 1024
niveles.
Declare ADIN_RES 10: indica 10 bits de
resolución.
Declare ADIN_TAD:

Ajusta la señal de reloj del conversor. Puede ser


2_FOSC , 8_FOSC , 32_FOSC , or FRC.

DECLARE ADIN_TAD 2_FOSC


Declare ADIN_STIME:

Permite a los capacitores internos cargarse


antes de que se tome una muestra. Este puede
ser un valor entre 0 y 65535 microsegundos. Si el
valor es muy pequeño la se puede reducir la
resolución, mientras que si es muy grande la
velocidad de la conversión será muy pobre
Un valor típico es de 50 a 100. Por defecto el
valor es 50.
ADIN

Variable = ADIN channel number

Lee el valor analógico y lo convierte en digital

 Ejemplo:

VAR1 = ADIN 0 ' almacena el resultado de la


conversión del canal 0 en VAR1
Device 16F877
XTAL 20
' Asignación de pines de la LCD
Declare LCD_DTPIN PORTB.4 ' Pin de Datos LCD
Declare LCD_ENPIN PORTB.3 ' Pin de Enable LCD
Declare LCD_RSPIN PORTB.1 ' Pin de RS LCD
TRISB.2 = 0 ' Declara PORTB.2 como Salida Dig.
PORTB.2 = 0
' Conversión ADC
Declare ADIN_RES 10 '10 bits
Declare ADIN_TAD 3 'Fosc/32
Declare ADIN_STIME 100 '100us Samplig Time
Dim N as Word
Symbol CanalA = 0 ' define etiqueta canalA como canal 0
TRISa.0 = 1 ' Canal AN0 (Ra0) entrada
ADCON1 = %10001110 ' Justif. Derecha, An0 como analógico' Vref Internos
Inicio: ' leer canal A
N = Adin CanalA ' imprimir voltaje valor digital
Print at 1,1,“Valor Digit =", dec N
' tiempo de muestreo
Delayms 500
Goto Inicio
Ejemplo

 Mostrar, además del valor digital convertido


por AN1, el valor correspondiente en voltaje,
suponiendo que la señal es lineal. La recta de
conversión será:

Voltaje (V)
Vref+
Voltaje= ((Vref+) – (Vref-))* (N) /2^n-1

Vref-
2^n N (Valor digital)
 Si Vref+=5V ,
 Vref-=0,
 n= 10 bits,
 El voltaje será
Voltaje= 5*N/1023

Voltaje (V)
Vref+

Voltaje= ((Vref+) – (Vref-))* (N) /2^n-1

Vref-
2^n N (Valor digital)
.
.
.
.
' Conversión ADC
Declare ADIN_RES 10 '10 bits
Declare ADIN_TAD 3 'Fosc/32
Declare ADIN_STIME 100 '100us Samplig Time
Dim N as Word
Dim Volt as float
Symbol CanalA = 0 ' define etiqueta canalA como canal 0
TRISa.0 = 1 ' Canal AN0 (Ra0) entrada
ADCON1 = %10001110 ' Justif. Derecha, An0 como analógico' Vref Internos
Inicio: ' leer canal A
N = Adin CanalA ' imprimir voltaje valor digital
Voltaje= 5=N/1024
Print at 1,1,“Valor digit =", dec N
Print at 2,1,“Voltaj(V) =", dec2 Volt
' tiempo de muestreo
Delayms 500
Goto Inicio

S-ar putea să vă placă și