Está en la página 1de 5

Centro Tecnolgico de Mecatrnica / Centro Tecnolgico Automotivo

Disciplina PROGRAMAO Instrutor DANIEL CORTELETTI


SADA DE DADOS FORMATADA NO LCD
Sada de dados quando enviamos uma informao qualquer para um perifrico de
sada : Vdeo, impressora, disco. Para usar o LCD (padro HD!"#, $% colunas, & lin'as,
modo (e)(o* como perifrico de sada, nes(e ma(erial ado(aremos a +i+lio(eca LCD.C includa
no ca+eal'o dos nossos pro,ramas, e u(ili-aremos como padro a se,uin(e li,ao en(re o
LCD e o ./C01C12301L4D10 P/C :
PINOS PIC PINOS LCD
B0 -- enable
B1 -- rs
B2 -- rw
B4 -- D4
B5 -- D5
B6 -- D6
B7 -- D7
5s(a li,ao u(ili-a
um displa6 de carac(eres
em modo 7 fios8. 1+serve
que so u(ili-adas !
li,a9es para enviar dados
ao LCD, sendo que : so
para con(role (5., 0; e 0<*, e so para os dados (um ni++le por ve-*.
2o en(an(o, para que o D/;PL4= acei(e es(e modo de li,ao, ele deve sofrer um
processo de iniciali-ao. 5s(e processo implica no envio de al,uns sinais em seq>?ncia e
(empos pr@de(erminados.
Para reali-ar es(a iniciali-ao, podemos usar a funo lcd_init(), que es(A presen(e na
+i+lio(eca lcd.c.
4o se enviar um dado ao LCD, u(ili-aremos a funo lcd_putc(CHAR). 1+serve que
en(re os par?n(eses des(a funo, serA colocado o (e)(o ou o carac(ere a ser enviado ao LCD.
Por(an(o, se e)ecu(armos a funo lcd_putc(!")# serA enviado ao LCD o carac(ere 7)8. ;e
e)ecu(armos a funo lcd_putc($Ola %%%&)' serA enviada a mensa,em en(re as aspas duplas ao
LCD.
Caracteres especiais do lcd_putc : 4l,uns carac(eres podem ser enviados ao
LCD pra promover con(role de posio, apa,ar ou re(roceder o cursor. 1 cursor um pon(o
que pode ou no es(ar 'a+ili(ado, e que iden(ifica onde serA escri(o o prB)imo carac(ere.
;o carac(eres especiais do LCD :
() limpe-a do displa6. 5s(a opo reinicia o displa6, limpando@o e posicionando o
cursor na lin'a $ coluna $.
(* re(orno de um carac(ere. 5s(a opo fa- com que o cursor re(roceda uma
posio.
(n 2ova lin'a. Posiciona o cursor na primeira coluna da se,unda lin'a do LCD.
VeCa al,uns e)emplos de uso :
Impresso em !/""/#$ ""%&#% AM' P(gina "
Centro Tecnolgico de Mecatrnica / Centro Tecnolgico Automotivo
Disciplina PROGRAMAO Instrutor DANIEL CORTELETTI
+osicionando o cu,so,
Para posicionar o cursor no LCD, podemos usar a funo lcd_-oto!.(!'.),
onde ) e 6 so, respec(ivamen(e, a coluna e a lin'a onde o cursor deve ser reposicionado.
Des(a forma, caso deseCe escrever al,o na primeira lin'a do displa6, sem apa,ar a
se,unda lin'a, +as(a inserir o comando lcd_-oto!.(/'/). /sso irA posicionar o cursor na
primeira lin'a, e primeira coluna. 2o en(an(o, (ome cuidado, pois uma ve- que o displa6 no foi
apa,ado, as informa9es an(i,as permanecero na primeira lin'a, a menos que voc? as
so+rescreva.
Out,as )un01es pa,a o LCD
Para rolar o con(eDdo do LCD um carac(ere para a direi(a, u(ili-e o comando
lcd_send_*.te(2'2!/C*, ou caso es(eCas usando a +i+lio(eca LCD.C modificada, u(ili-e o
comando lcd_s3i)t_,i-3t().
Para rolar o con(eDdo do LCD um carac(ere para a esquerda, u(ili-e o comando
lcd_send_*.te(2'2!/4)' ou caso es(eCas usando a +i+lio(eca LCD.C modificada, u(ili-e o
comando lcd_s3i)t_le)t().
5)emplo de uso do recurso de rola,em do displa6:
4 se,uin(e seq>?ncia de comandos, ,era o efei(o de uma mensa,em rolando no
displa6. Para isso, serA necessArio declarar uma variAvel do (ipo /23 c'amada E.
int x; // essa varivel usada na rolage
!!!
l"d#$ut"%&'()*+,-).), /0D*1+2/)3 4 -5.)+2,0/.)67;
(or %x 8 0; x 9 :5; x ;;7 // re$ete o blo"o abaixo $or :5 ve<es
=
dela>#s%:007; // te$o
l"d#send#b>te%0?0x1@7; // rola dis$la> u "ara"tere $ara esAuerda
B
Para a(ivar o cursor, u(ili-e o comando lcd_send_*.te(2'2!2E)% Para a(ivar o cursor piscan(e,
u(ili-e o comando lcd_send_*.te(2'2!2F)' e para desa(ivar o cursor, use
lcd_send_*.te(2'2!2C)#
Impresso em !/""/#$ ""%&#% AM' P(gina #
Centro Tecnolgico de Mecatrnica / Centro Tecnolgico Automotivo
Disciplina PROGRAMAO Instrutor DANIEL CORTELETTI
5so do +R6NTF
1 prin(f um comando +as(an(e con'ecido por pro,ramadores de lin,ua,em C. ;ua
funo ,erar uma sada forma(ada, permi(indo Cun(ar (e)(o e informa9es con(idos em
variAveis, ,erando uma seq>?ncia de carac(eres que podes ser enviada a qualquer funo de
en(rada e sada de dados.
;ua u(ilidade clara quando precisamos reali-ar opera9es como a de escri(a de um
valor numrico no LCD, ou enviar es(e valor via sada serial.
5)emplo de uso com o LCD :
#include <16f877.h>
#use delay (clock=4000000)
#define use_por!_lcd rue
#include <lcd.c>
"oid #ain()
$
in %&'() = 0*
lcd_ini()*
+hile(1)
$
prinf(lcd_puc,-.fconando /> 0u-, %&'())*
%&'() = %&'() 1 1*
delay_#s(200)*
3
3
1 pro,rama acima reali-a uma con(a,em pro,ressiva, iniciando pelo valor -ero, e
mos(rando um nDmero a cada :## milsimos de se,undo.
Para se u(ili-ar o prin(f, devemos o+servar sua sin(a)e :
Den(ro dos
par?n(eses da funo prin(f,
deve@se dispor os se,uin(es
elemen(os, separados por
vr,ulas :
/ 7 )un08o de sada. F a
funo que irA rece+er a
seq>?ncia de carac(eres
cons(ruda pelo prin(f. 2es(a
posio, e para o compilador
em ques(o, voc? pode
u(ili-ar qualquer funo que
acei(e carac(eres como parGme(ros. Hsando@se a funo lcdIpu(c, o+(m@se a sada de dados
no displa6 LCD. ;e es(e elemen(o for suprimido, a sada serA enviada ao disposi(ivo padro,
que ,eralmen(e a por(a serial do microcon(rolador.
9 7 STR6N: ; F o (rec'o de carac(eres delimi(ado por aspas duplas, que irA definir como serA a
seq>?ncia de carac(eres a ser ,erada. Den(ro das aspas, podem ser inseridos carac(eres de
(e)(o, carac(eres especiais e especificadores de forma(o.
2o caso dos ca,acte,es especiais, por no possurem uma represen(ao impressa,
so compos(os por uma +arra inver(ida se,uida de um sm+olo, ,eralmen(e uma le(ra.
5)emplo de carac(eres especiais : () (limpar displa6*, (n (nova lin'a*, (* (vol(ar um
carac(ere*, (, (re(orno de carro*, (- (+eep*, e(c...
1+s: al,uns carac(eres especiais somen(e resul(aro efei(o em (erminais seriais.
Impresso em !/""/#$ ""%&#% AM' P(gina )
Centro Tecnolgico de Mecatrnica / Centro Tecnolgico Automotivo
Disciplina PROGRAMAO Instrutor DANIEL CORTELETTI
JA os especi)icado,es de )o,<ato so os locais, em meio ao (e)(o, onde sero
inseridas as variAveis que aparecero apBs a ;30/2K. Des(a forma, es(es especificadores
devem o+edecer al,umas re,ras, de acordo com o (ipo da variAvel a ser impressa.
1+serve a se,uin(e (a+ela :
Tipo de =a,i>=el Especi)icado, de )o,<ato e e!e<plos de uso
s'or( ou
in(
?u valor decimal (e): :#*
?! valor em 'e)adecimal (e): $D*
?@u valor decimal alin'ado com (r?s d,i(os (e): I:#*
?2@u valor decimal alin'ado : di,i(os cL -ero (e): #:#*
si,ned in(
?i valor decimal com sinal. (e): @&*
?29i decimal com sinal, & casas e -eros a esq. (e): @#&*
lon,
in(:&
?lu valor decimal (e): $###*M
?2Alu valor decimal N casas cL -eros a esquerda. (e): #$###*
si,ned lon,
si,ned in(:&
?li valor decimal cL sinal (e): @N##*
?Bli valor decimal cL sinal alin'ado a esquerda (e): @IN##*
floa(
?) valor real. 5): (&:.:$:N$*
?9%@) valor real cL & casas in(eiras, : decimais. 5): (&:.:$:*
c'ar ?c carac(ere. 5): (4*
@ 7 CAR6DCE6S : Deve ser
u(ili-ada uma variAvel para
cada especificador de
forma(o da ;30/2K. 4s
variAveis indicaro qual o
valor que serA impresso no
lu,ar de cada especificador
de forma(o encon(rado.
VeCa ao lado al,uns
e)emplos de prin(f, e seus
efei(os :
5)erccios :
$* 1 pro,rama a+ai)o ,era um relB,io, que con(a 'oras, minu(os e se,undos. 2o
en(an(o, al,umas lacunas devem se preenc'idas para que es(e pro,rama funcione.
Complemen(e@as e e)ecu(e o pro,rama.
Cin"lude 916(@77!DE
Cuse dela> %"lo"F 8 ###############7
Cde(ine use#$ortb#l"d true // de(ine Aue o 3.D usar o G,2+B
Cin"lude ############# // in"lui a bibliote"a 3.D!.
void ain%7
=
##### H,2)80? -/0*+,80? 15I*0D,80; // de"lara variveis inteiras de @ bits
###########; // ini"iali<a"ao do dis$la>
wDile%17 // laJo in(inito
=
dela>#s%####7; // te$o de 1 segundo
15I*0D, ;;; // auenta varivel 15I*0D, e ua unidade
i( %15I*0D, ## 5K7 // se a varivel 15I*0D, (or aior Aue 5K
=
15I*0D, 8 0; // <era a varivel 15I*0D,
########### // auenta a varivel -/0*+, e ua unidade
B
i( %##############7 // se a varivel -/0*+, (or aior Aue 5K
=
############### // <era a varivel -/0*+,
H,2) ;;; // auenta H,2) e ua unidade
B
$rint(%l"d#$ut"?6######################6? H,2)? ########? ##########7;
B // ostra no dis$la> no (orato HHL--L11
B
Impresso em !/""/#$ ""%&#% AM' P(gina *
Centro Tecnolgico de Mecatrnica / Centro Tecnolgico Automotivo
Disciplina PROGRAMAO Instrutor DANIEL CORTELETTI
&* 4l(ere o pro,rama an(erior de forma que seCa emi(ido um aler(a sonoro sempre que um
minu(o for incremen(ado.
:* ;u,es(o de implemen(ao: 4 par(ir do pro,rama an(erior, crie um con(ador que, quando
um de(erminado +o(o for pressionado, irA aumen(ar o valor e)i+ido no displa6 a cada um
se,undo, e que com ou(ro +o(o pressionado, irA diminuir es(e valor.
Impresso em !/""/#$ ""%&#% AM' P(gina &