teclado matricial
Post on 17-Jul-2015
245 Views
Preview:
TRANSCRIPT
FAMLIA 51 Interface com o exterior
72
MP06-07 asg, jca, jpsousa
Interface com o exteriorEntradasRST permite inicializar o hardware interno /EA permite configurar o acesso MP:Se /EA=0, MPE activa, MPI inactiva Se /EA=1, MPE e MPI activas
Sadas/PSEN controla a leitura da MPE /RD controla a leitura da MDE /WR controla a escrita na MDE ALE controla a desmultiplexagem de DBUS
OutrosXTAL1, XTAL2 para ligao do cristal Vcc, Gnd para ligao da alimentao
73
MP06-07 asg, jca, jpsousa
Circuito de reset do CA entrada de reset da famlia 51 activa ao nvel lgico 1 Ao ligarmos VCC foramos o estado de reset (a tenso aos terminais do condensador C no pode variar bruscamente). R1 e C garantem um tempo de reset suficiente R1 e R2 devem permitir a aplicao de uma tenso prxima de VCC quando se fecha SW (O dodo permite a descarga rpida de C)
74
MP06-07 asg, jca, jpsousa
Gerao do sinal de relgioXTAL2 a sada de um amplificador interno e XTAL1 a entrada. Um cristal colocado entre XTAL1 e XTAL2 permite a gerao interna do sinal de relgio (frequncia igual do cristal) XTAL1 pode ser alimentado por um gerador de sinal de relgio externo ( nesse caso XTAL2 deve ser deixado no ar ). Os condensadores (dezenas de pF) melhoram a estabilidade e facilitam o arranque do oscilador.
75
MP06-07 asg, jca, jpsousa
Sistema mnimoNmero de componentes reduzidoMicrocontrolador (uC)MP e MD internas Perifricos internosP1 VCC 5V
P0
Alguns componentes discretos (circ. do reset e do oscilador e /EA=1)
Circuito reset
5V
MP int.
RST
C/EA ALE /PSEN
5V
Baixo custoComponentes Montagem TestesCircuito relgio
P3
P2 XTAL2 XTAL1 GND
Elevada fiabilidadePoucas ligaes externas Poucos componentes
76
MP06-07 asg, jca, jpsousa
FAMLIA 51 Interface E/S Paralela
77
MP06-07 asg, jca, jpsousa
Portas de E/S na famlia 51O C 8051 disponibiliza 4 portas de E/S de 8 bits cada, num total de 32 bits programveis individualmente como entrada ou sada. Os acessos a estas portas so feitos atravs dos SFRs P0(80h), P1(90h), P2(A0h) e P3(B0h), todos acessveis ao bit.Vcc
128 RAM 128 RAM
CPU INT
OSC
RST
TIMER 1 TIMER 0
Barramento interno
4k ROM
Bus CTR
I/O PORTS
UART
P0 P1 P2 P3
78
MP06-07 asg, jca, jpsousa
Portas de E/S na famlia 51 (cont.)Funes alternativasP0 e P2: barramentos de dados e endereos do C P3: acesso aos perifricos internos
Pseudo-bidireccionaisLeitura: JNB P2.5,START Escrita: MOV P1,A Modificao: XRL P1,0Fh Instrues de leitura acedem ao pino Instrues de modificao acedem ao SFR
Aps um RESET funcionam como entrada79MP06-07 asg, jca, jpsousa
Estrutura interna da porta P1 a porta mais simples, funcionando apenas como entrada/sada de dados. Cada bit desta porta de E/S do 8051 suportado por uma estrutura interna constitudo por um FF D, um andar de sada e buffers de entrada. Entrada de Dados: para programar o bit da porta como entrada de dados necessrio escrever um 1 no FFD de maneira a que o FET seja colocado no estado OFF antes de se ler o pino ( se o FET estivesse ON a leitura seria sempre 0). Sada de Dados: a escrita de um 0 no FFD coloca em conduo o FET do andar de sada, ligando massa o pino exterior. A escrita de um 1 na mesma latch coloca o FET em estado OFF colocando o pino da porta ligado a VDD atravs do pull-up interno. A porta capaz de absorver alguns mA mas fornece apenas alguns A.L registo DBUS (interno ) Escreve
Vcc
D
Q
Clk /Q
PINO
L pino
80
MP06-07 asg, jca, jpsousa
Estrutura interna da porta P0Na estrutura interna de cada bit desta porta surge um multiplexador para permitir comutar a funcionalidade da porta entre entrada/sada paralelo (Control=0) e barramento multiplexado de dados e endereos menos significativos (Control=1). Se Control=0 o FET superior est sempre OFF. FUNCIONAMENTO COMO PORTA E/S PARALELO Entrada de Dados: antes de ler o pino deve ser escrito um 1 no FFD da porta. Desta maneira o FET inferior do andar de sada colocado no estado OFF e como o FET superior est sempre OFF a porta fica em alta impedncia, permitindo assim a operao de leitura do pino. Sada de Dados: a sada de dados feita escrevendo os valores 0 ou 1 no FFD da porta P0. O andar de sada em dreno aberto dado que o FET superior para E/S (Control=0) est sempre OFF. Isto obriga utilizao de resistncias de pull-up no exterior para poder ser garantido o nvel lgico 1 no pino quando o FET inferior est OFF.
81
MP06-07 asg, jca, jpsousa
Estrutura interna da porta P2Esta porta apresenta um andar de sada semelhante ao existente na porta P1. Sendo uma das suas funes colocar no exterior os 8 bits mais significativos do endereo nas operaes de acesso memria externa, possui tambm um multiplexador como acontecia com a porta P0. Os processos ligados s operaes de E/S de dados so iguais aos descritos para a porta P1.
82
MP06-07 asg, jca, jpsousa
Estrutura interna da porta P3Cada bit desta porta apresenta um andar de sada semelhante ao existente nas portas P1 e P2. A diferena tem a ver com a possibilidade de os bits da porta P3 poderem apresentar funes alternativas que so lidas/escritas como se representa na figura. Notar que a sada no pino s controlada pela sada alternativa se a sada do FFD est em 1 e que a entrada alternativa pode sempre ser lida. Na porta podem coexistir bits de E/S e bits com funes especiais. Nas operaes de E/S, o funcionamento o mesmo que foi visto para as portas P1 e P2.
83
MP06-07 asg, jca, jpsousa
Funes alternativas na porta P3PinoP3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
I/OEntrada Sada Entrada Entrada Entrada Entrada Sada Sada
Funo alternativaRxD (linha de recepo de dados da porta srie) TxD (linha de transmisso de dados da porta srie) INT0 (entrada de interrupo externa 0) INT1 (entrada de interrupo externa 1) T0 (entrada de relgio para o TIMER 0) T1 (entrada de relgio para o TIMER 1) WR (sinal de escrita na memria externa de dados) RD (sinal de leitura na memria externa de dados)
84
MP06-07 asg, jca, jpsousa
Ex de interface com exterior - interruptorO bit da porta deve estar programado como entrada O nvel activo deve ser sempre o nvel baixo. Porqu? As imperfeies das superfcies de contacto dos interruptores mecnicos originam ressaltos (bouncing) que resultam em mltiplas transies de estado... debouncing por hardware ou por software VCCVCC P1 P1 51 51
Bouncing do interruptor
Debouncing por hardware MP06-07 asg, jca, jpsousa
85
Debouncing por softwareO fluxograma indica a forma de fazer o debouncing por software na deteco do fecho do interruptor, introduzindo um atraso superior ao tempo de bouncing.Sim INICIO
cdigo da subrotina que s retorna quando o interruptor ligado a P1.0 estiver fechadoint_fech TECLA segment equ code P1.0 ; nome simblico P1.0
INT. ABERTO? No SUBROTINA ATRASO
rseg int_fech salto: s0: jb TECLA, salto mov r0,#255 djnz r0,s0 ; d atraso jb TECLA, salto ret INT. FECHADO? Sim FIM No
86
MP06-07 asg, jca, jpsousa
Ex de interface com exterior LEDsO bit da porta vai funcionar como sada. O nvel activo deve ser o nvel baixo. Porqu? Se o Led necessitar de aproximadamente 10 mA para uma boa luminosidade e tiver uma tenso de 1,4V R = (Vcc - VLED) / 10mA = = ( 5 1,4 ) / 10 mA = 360 Corrente mxima das portas no nvel lgico baixo10mA por pino 15mA por porta (26mA na porta P0) 71mA no total de todas as portasVCC P1
R
Px51
No se poderiam ligar desta forma os 4 LEDs na mesma porta Px, porque se ultrapassaria a capacidade em corrente da porta.
87
MP06-07 asg, jca, jpsousa
Como ultrapassar as limitaes de corrente ?Introduzindo amplificadores de corrente.TRANSISTORESO ganho em corrente do transistor garante que a corrente na base no ultrapassa os limites de corrente da porta.Nivel baixo ( ver atrs) Nivel alto = 60A por pinoVCC VCC
P1 51P-N-P (activa em 0)
P1 51N-P-N (activa em 1)
CIRCUITOS INTEGRADOSExistem no mercado circuitos integrados que podem ser utilizados como LED drivers:7407 - 4 por circuito 74244 8 por circuito ULN2803 8 por circuito
VCCR
P1 51LED driver (saida do driver activa em 0)
88
MP06-07 asg, jca, jpsousa
Exemplo: LEDs e interruptoresHardware5 LEDS (P1.0 a P1.4) 4 Interruptores (P2.0 a P2.3) LEDS activos a zeroP1 VCC
51
ProblemaVisualizar nos LEDs o resultado da operao N+3, onde N representa o nmero definido pelos interruptoresP2
89
MP06-07 asg, jca, jpsousa
LEDs e interruptores...Hardware5 LEDS (P1.0 a P1.4) 4 Interruptores (P2.0 a P2.3) LEDS activos a zeroP1 VCC
51
SoluoRepetir para sempre Ler os interruptores Limpar os 4 bits mais significativos Somar 3 Negar o resultado (porqu) VisualizarP2
90
MP06-07 asg, jca, jpsousa
LEDs e interruptores...LEDS TECS equ equ cseg mov mov anl add cpl mov sjmp end 91MP06-07 asg, jca, jpsousa
P1 P2 at 0000h TECS,#0ffh a,TECS a,#0fh a,#3 a LEDS,a loop
; Nome simblico para P1 ; Nome simblico para P2 ; Porqu? ; Ler o nmero (teclas) ; Limpar os 4 MSBits ; Adicionar 3 ; Porqu? ; Visualizar o resultado ; Repetir
loop:
Contador crescente e decrescente...HardwareQuatro LEDS (P1.7 a P1.4) Um interruptor (P1.0) LEDS e interruptor activos a zero fx = 12MHzP1 VCC
51
ProblemaVisualizar nos LEDs uma contagem cclica entre 0 e 15 cujo sentido depende do estado de P1.0 P1.0 = 1 crescente P1.0 = 0 decrescente 92P2
MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...HardwareQuatro LEDS (P1.7 a P1.4) Um interruptor (P1.0) LEDS e interruptor activos a zero fx = 12MHzVCC
P1
Soluoinicializar contador repetir (para sempre) visualizar durante 0.5s se tecla premida decrementar contador seno incrementar contador garantir que fica entre 0 e 15
51
P2
93
MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...LEDS TECLA equ equ P1 P1.0 ; Nome simblico para P1 ; Nome simblico para P1.0
;--------;Variveis ;---------------------------------------------------dseg at 30h conta: ds 1 ; Contador
94
MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...;-----------------;Programa principal ;---------------------------------------------------cseg at 0000h mov conta,#0 ; Inicializar loop: call mostra ; Visualizar resultado call espera ; Esperar 0.5s jnb TECLA,decr inc conta sjmp adjust decr: dec conta adjust: call ajusta ; Ajustar o resultado sjmp loop ; Repetir 95MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...;-----------------------;Rotinas (mostra, ajusta) ;---------------------------------------------------mostra: mov a,conta swap a ; LEDs nos MSBits... cpl a ; LEDs activos a zero... mov LEDS,a ret ajusta: mov anl mov ret a,conta a,#0fh conta,a ; Resultado s com 4 bits
96
MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...Tempo de execuo de uma instruo:Medido em ciclos de relgio (Tx) Medido em ciclos mquina (Tm) Depende da frequncia de funcionamento (fx)Tx = 1/fx Tm = 12Tx = 12/fx
Exemplos:Se fx=12MHz ento Tm=1S Se fx=11.0592MHz ento Tm=1.0851s Se fx=3.6864MHz ento Tm=3.2552s
Como que isto se reflecte na rotina espera? 97MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...;------------;Rotina espera 0,5s (250 x 2ms) ; (Supondo fx=12MHz 2ms = 2000 ciclos mquina) ;---------------------------------------------------espera: mov r7,#250 lp1: call esp2ms ; Espera ~2ms djnz r7,lp1 ; Repete 250 vezes ret esp2ms: lp2: mov r6,#200 push acc pop acc push acc pop acc djnz r6,lp2 ret end ;1 ;2 ;2 ;2 ;2 ;2 ;2
3+10R6=2000;
R6=199.7
98
MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...Para o clculo ser mais rigoroso:Igualar o tempo dentro do ciclo lp2 ao tempo fora dele. Porqu? Incluir o tempo que demora a instruo de chamada da rotina. esp2ms: mov push lp2: push pop push pop djnz pop nop ret r6,#199 acc acc acc acc acc r6,lp2 acc ;(1) ;(2) ;(2) ;(2) ;(2) ;(2) ;(2) ;(2) ;(1) ;(2) 3 ciclos mquina
10 ciclos mquina
5 ciclos mquina
[2] + 3 + 10R6 + 5 = 10+10R6; 10+10R6=2000 d R6=199
99
MP06-07 asg, jca, jpsousa
Contador crescente e decrescente...Para o clculo ser ainda mais rigoroso:Incluir o tempo que demoram as instrues da rotina espera Incluir o tempo que demora a instruo de chamada da rotina espera: lp1: mov r7,#250 call esp2ms djnz r7,lp1 ret ;(1) ;(2000) ;(2) ;(2)
[2] + 1 + 2002 R7 + 2 = 5+2002 R7; 5+2002 R7=500000 d R7=249.7
Importante: avaliar sempre a necessidade deste rigor:face aplicao em causa face frequncia do relgio, especialmente se no for 12MHz
100
MP06-07 asg, jca, jpsousa
Visualizador de 7 segmentos
PINOUT
No Catodo Comum acende-se cada LED ligando o Comum ao GND e aplicando-se o valor lgico 1 em cada segmento que se quer acender, atravs de uma resistncia adequada. No nodo Comum acende-se cada LED ligando o Comum ao VCC e aplicando-se o valor lgico 0 em cada segmento que se quer acender, atravs de uma resistncia adequada.
101
MP06-07 asg, jca, jpsousa
Visualizador crescente e decrescente...Hardware Um visualizador de 7 segmentos (P1) Segmentos e interruptor activos a zero fx = 11.0592MHz Problema Visualizar uma contagem cclica entre 0 e 9 cujo sentido depende do estado de P1.0 P1.0 = 1 crescente P1.0 = 0 decrescente 102P1 51
VCC
MP06-07 asg, jca, jpsousa
Visualizador crescente e decrescente...HardwareUm visualizador de 7 segmentos (P1) Segmentos e interruptor activos a zero fx = 11.0592MHzVCC
Soluo
P1
inicializar contador 51 repetir (para sempre) converter para 7SEG e visualizar esperar 0.5s se P1.0=0 decrementar contador seno increment-lo garantir que fica entre 0 e 9
103
MP06-07 asg, jca, jpsousa
Visualizador crescente e decrescente...A contagem vai ser efectuada em BCD (0 a 9) e a visualizao em cdigo de 7 segmentos. Para converter BCD para cdigo de 7 segmentos (ver tabela ) podemos construir uma tabela armazenada na memria de programa:stab: DB 7Eh,30h,6Dh,79h,33h,5Bh,5Fh,70h,7Fh,7Bh
104
MP06-07 asg, jca, jpsousa
Visualizador crescente e decrescente...;Nomes simblicos ;---------------------------------------------------DIGITO equ P1 ; Nome simblico para P1 TECLA equ P1.0 ; Nome simblico para P1.0
;Variveis ;---------------------------------------------------dseg at 30h conta: ds 1 ; Contador
105
MP06-07 asg, jca, jpsousa
Visualizador crescente e decrescente...;Programa principal ;---------------------------------------------------cseg at 0000h mov conta,#0 ; Inicializar loop: call mostra ; Visualizar resultado call espera ; Esperar 0.5s jnb TECLA,decr inc conta sjmp adjust decr: dec conta adjust: call ajusta ; Ajustar o resultado sjmp loop ; Repetir 106MP06-07 asg, jca, jpsousa
Visualizador crescente e decrescente...;Rotinas (mostra, ajusta) ;---------------------------------------------------mostra: mov a,conta mov dptr,#stab ; Inicio da tabela movc a,@a+dptr ; Converte mov DIGITO,a ; Visualiza ret stab: DB 7Eh,30h,6Dh,79h,33h,5Bh,5Fh,70h,7Fh,7Bh ajusta: mov cjne mov ret a,conta a,#10,uok conta,#0 ; Resultado s com 4 bits
uok: done:
cjne a,#-1,done mov conta,#9 retMP06-07 asg, jca, jpsousa
107
Visualizador crescente e decrescente...;------------;Rotina espera 0,5s (250 x 2ms) ; (Supondo fx=11.0592MHz 2ms = 1843.2 ciclos mquina) ;---------------------------------------------------espera: mov r7,#250 lp1: call esp2ms ; Espera ~2ms djnz r7,lp1 ; Repete 250 vezes ret esp2ms: lp2: mov r6,#200 push acc pop acc push acc pop acc djnz r6,lp2 ret end ; 1 1+R6(8+2)+2 = 3+10R6 ;2 ; 2 3+10R6=1843.2 ; 2 R6=199.7 ;2 ;2 ;2
108
MP06-07 asg, jca, jpsousa
Teclado matricialHardwareUm teclado com 16 teclas (P1)
ProblemaDetectar se uma tecla est premida e identificar essa tecla.0 1 5 9 D 2 6 A E
Nota: No caso da porta P1, que possui resistncias de pull-up, as resistncias mostradas na figura podem ser dispensadas.
3 7 B F
4 P1 8 C 51
109
MP06-07 asg, jca, jpsousa
Teclado matricial...Colunas (P1.0 a P1.3) so sadas Linhas (P1.4 a P1.7) so entradas
0
1 5 9 D
2 6 A E
3 7 B F
Soluo
4 P1 8 C 51
Para detectar se uma tecla est premida coloca-se sucessivamente cada um dos bits ligados s colunas do teclado em 0 e so lidos os valores dos bits ligados s linhas. Quando num dos bits ligados a uma linha lido um 0 significa que est premida a tecla situada no cruzamento dessa linha com a coluna que est em 0.
110
MP06-07 asg, jca, jpsousa
Interface com teclado matricial...P1.7 x x x x x x x x x x x x 0 0 0 0 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 x x 0 1 1 1 0 x x 0 1 1 0 1 x x 0 1 0 1 1 x x 0 0 1 1 1 x 0 x 1 1 1 0 x 0 x 1 1 0 1 x 0 x 1 0 1 1 x 0 x 0 1 1 1 0 x x 1 1 1 0 0 x x 1 1 0 1 0 x x 1 0 1 1 0 x x 0 1 1 1 x x x 1 1 1 0 x x x 1 1 0 1 x x x 1 0 1 1 x x x 0 1 1 1 Tecla F E D C B A 9 8 7 6 5 4 3 2 1 0
P1.7
0 4 P1 8 C
1 5 9 D
2 6 A E
3 7 B F
51P1.0
111
MP06-07 asg, jca, jpsousa
Interface com 8 visualizadores de 7 segmentos
Sero necessrias 8 portas de E/S ?
112
MP06-07 asg, jca, jpsousa
Interface com 8 visualizadores de 7 segmentos...Com apenas duas Portas do 8051 (p.ex P1 e P2) possvel Multiplexar no tempo o comando de todos os Displays de 7 Segmentos !
113
MP06-07 asg, jca, jpsousa
Interface com 8 visualizadores de 7 segmentos...Para visualizar um dgito, o valor do cdigo desse dgito colocado na porta P1 e a porta P2 selecciona em qual dos 8 visualizadores ser visualizado o dgito, activando o transistor respectivo. Se for realizado um varrimento de todos os dgitos, por exemplo do menos significativo para o mais significativo, controlado pela porta P2, e alterando-se sncronamente o valor de cada dgito no tempo, atravs da Porta P1, a sensao para o observador a de que todos os visualizadores esto acesos simultneamente (fvarrimento>=50Hz).
114
MP06-07 asg, jca, jpsousa
Interface com visualizador LCDVisualizador de caracteres 16x2:O controlador mais utilizado pelos fabricantes de mdulos LCD o HD44780. A ligao ao controlador feita por um ligador contendo oito linhas de dados B0..B7 , trs sinais de controlo RS, R/W e E, a alimentao de 5V, a massa e um terminal para ajuste do contraste. Alguns visualizadores LCD, como o da figura, possuem LED Backlight ( iluminao de fundo ) com alimentao nos pinos 15 e 16 do ligador do LCD. A corrente consumida pelo LED de 100 a 200mA conforme o modelo.
115
MP06-07 asg, jca, jpsousa
Pinos no ligador do LCD
116
MP06-07 asg, jca, jpsousa
Linhas de controlo do LCDEN "Enable" - Esta linha de controlo serve para indicar ao LCD que lhe vo ser enviados dados. Para isso antes de os dados serem enviados o EN deve estar em 0, e s depois das outras linhas de controlo e dados estarem prontas o EN deve ser posto em 1, mantido nesse valor durante um tempo que depende do LCD e colocado de novo em 0. RS "Register Select - Quando RS=0, os dados so um comando ou uma instruo especial (limpa visor, posiciona cursor, etc.). Quando RS=1, os dados enviados so os caracteres de texto que devem ser visualizados no visor. RW "Read/Write - Quando RW=0, a informao no barramento de dados para ser escrita no LCD. Quando RW =1, pretende-se ler informao do LCD. De notar que s uma instruo "Get LCD status" um comando de leitura. Todos os outros comandos so de escrita. O barramento de dados de 4 or 8 linhas (dependendo do modo de funcionamento seleccionado).
117
MP06-07 asg, jca, jpsousa
Temporizaes do LCD
Ciclo de escrita
Largura mnima do Enable 220 ns Frequncia mxima do EN =2 MHz
Ciclo de leitura
118
MP06-07 asg, jca, jpsousa
Ajuste do contrasteO esquema mais usado para ajustar o contraste do LCD o seguinte:
(Pino 3 do ligador)
Se pretendermos variar o contraste por software o potencimetro pode ser substitudo por uma ligao directa do pino Vo sada de uma porta do microcontrolador a funcionar como gerador PWM (Pulse Width Modulation). Se a frequncia do gerador for suficientemente elevada o tempo de reaco do LCD integra a onda rectangular no sendo necessrio filtr-la para obter a tenso de ajuste do contraste.
119
MP06-07 asg, jca, jpsousa
Comandos do LCDInstruoRS RW D7 D6 D5 D4 D3 D2 D1 D0 Descrio e tempo de execuo t
120
MP06-07 asg, jca, jpsousa
Comandos do LCD (cont.)InstruoRS RW D7 D6 D5 D4 D3 D2 D1 D0 Descrio e tempo de execuo t
121
MP06-07 asg, jca, jpsousa
Endereos da DDRAM do LCD
Para se posicionar o cursor na primeira coluna da 2 linha comando (80h + 40h) = C0h ( 80h comando para estabelecer o endereo da DDRAM +40h 1 endereo da 2 linha )
122
MP06-07 asg, jca, jpsousa
Caracteres ASCII aceites pelo controlador do LCDFonte de 5x7 pontos
123
MP06-07 asg, jca, jpsousa
Flag Busy do LCDO tempo de execuo de cada instruo pelo controlador do LCD depende da frequncia do cristal usado no controlador bem como da instruo que est a ser executada. Para ter em conta o tempo de execuo das instrues podemos incluir um atraso fixo, por software, entre as instrues. Este processo no o mais indicado dado que as instrues tm tempo de execuo varivel e teriamos que usar um atraso superior ao maior deles, diminuindo muito a velocidade de escrita. O mtodo mais robusto de programao consiste em, antes de efectuar o prximo comando usar o comando "Get LCD Status" para determinar se o LCD est ainda ocupado (busy) a executar a ltima instruo recebida. A informao de retorno do comando "Get LCD Status" que nos til est contida no bit D7. Quando o comando "Get LCD Status" executado o LCD coloca o bit D7 em 1 se ainda estiver ocupado a executar o comando anterior ou coloca-o em 0 no caso contrrio.
124
MP06-07 asg, jca, jpsousa
Inicializao do mdulo LCDSempre que o mdulo LCD ligado alimentao deve ser executado o procedimento de inicializao, que consiste no envio de uma seqncia de 5 comandos para configurar o modo de funcionamento do LCD.No caso de um visualizador de 2 linhas o procedimento :Comando 38h (aguardar 15ms) Comando 38h (aguardar 15ms) Comando 06h (aguardar Busy=0) Comando 0Eh (aguardar Busy=0) Comando 01h (aguardar Busy=0)
125
MP06-07 asg, jca, jpsousa
top related