




















Diagrama em camadas da estrutura do produto
Como iluminar o display LCD sem programar a placa-mãe?
Tomemos como exemplo a figura a seguir
1. A luz de fundo é conectada aos polos positivo e negativo da fonte de alimentação de 3 V para acender. Esta é uma lâmpada plug-in com pernas positivas longas e negativas curtas. Há também uma linha de lâmpada SMD com positivo vermelho e negativo preto.
2. Coloque os quatro pinos COM juntos e toque nos polos negativos da tensão de 3 V.
3. Coloque os 9 pinos SEG juntos, toque no polo negativo da tensão de 3 V e você poderá ver o conteúdo do display.
(Observação: os pinos COM da tela de exibição geralmente são 4 ou 8, e o SEG é determinado pela quantidade de conteúdo exibido)

Ampla gama de aplicações

Exemplo de driver de display LCD
Shenzhen Zhuojinwei Technology é um fabricante profissional de telas LCD. A seguir estão algumas informações coletadas sobre como usar um microcomputador MCU de chip único para acionar diretamente a tela LCD. Espero que seja útil para você.
O driver do tubo digital LED é relativamente simples e fácil de entender. Tubos digitais multidígitos geralmente são na forma de matrizes de LED. Cada dígito usa um terminal comum, e os segmentos de caneta correspondentes de diferentes dígitos usam um terminal de controle; o driver usa varredura de tempo compartilhado para cada dígito e exibição dinâmica. No entanto, o LED consome mais energia. Quero fazer um relógio alimentado por bateria, e a bateria do tubo emissor de luz não durará muito. Então, considerei usar LCD. Comprei uma tela LCD de segmento de caneta de 4 dígitos da Zhuojinwei, um fabricante em Shenzhen. Há dois pontos no meio dos 4 dígitos e vários símbolos de seta na lateral. Há 15 pinos no total, o que é adequado para usar o AVR para controlar um relógio.
Segmento de canetaLCDTelaA estrutura é muito semelhante ao tubo digital de LED, mas por ser de cristal líquido, o mecanismo de funcionamento é diferente e o método de acionamento também é muito diferente:
(1) Os LEDs têm cursos positivos e negativos, mas os cursos do LCD não.
(2) Os LEDs operam sob tensão CC, enquanto os cristais líquidos requerem tensão CA para evitar o efeito eletrolítico.
(3) Os LEDs requerem corrente elétrica para fornecer energia para emitir luz, mas a corrente é muito fraca quando o LCD está no modo de exibição de curso.
(4) Os LEDs não respondem a pequenas correntes, mas os cristais líquidos são muito sensíveis.
Não é difícil perceber que não é viável tratar telas LCD com métodos de acionamento por LED. Eu não tinha percebido isso antes de comprar e testar esta tela, então me dediquei bastante. Ao contrário do acionamento por LED, é necessário adicionar uma tensão CA a cada pulso. Geralmente, uma onda quadrada de 30-60 Hz é suficiente. Se a frequência for menor, o display oscilará. Se a frequência for maior, o consumo de energia também aumentará, pois o LCD é capacitivo em relação ao circuito. Além disso, tensões positivas e negativas podem "acender" o LCD.
Felizmente, a porta de E/S do AVR pode emitir sinais em três estados, ou seja, além do nível alto/baixo, também pode apresentar alta impedância, o que equivale a uma desconexão. Então, pensei neste método: a extremidade comum correspondente ao grupo de sinais que não precisam ser exibidos é deixada flutuando (a porta de E/S seleciona três estados), portanto, nenhuma tensão será adicionada. De acordo com essa ideia, meu circuito experimental foi soldado, mas o display ficou uma bagunça: os sinais estavam todos pretos e não dava para ver claramente. Só então considerei o problema do próprio LCD: ele tem alta impedância e capacitores, e não pode ser deixado flutuando em um lado! Este princípio pode ser semelhante ao terminal de entrada do CMOS. Pesquisei algumas informações sobre LCD e percebi que telas de LCD não são tão simples. O método de acionamento geralmente é 1/N, ou seja, a tensão não é apenas alta e baixa. Mas a E/S do microcontrolador não tem tantos estados de saída para escolher.
A polarização 1/3 requer a divisão da tensão entre Vcc e GND em três partes iguais. Um exemplo de forma de onda de acionamento cíclico é o seguinte:
COM1:V+ --------
2/3 --------
1/3 --------
GND --------
COM2: V+ --------
2/3 --------
1/3 --------
GND --------
SEG1: V+ --------
2/3 --------
1/3 --------
GND --------
SEG2: V+ --------
2/3 --------
1/3 --------
GND --------
No segmento (COM1,SEG1), a tensão é +1, -1/3, -1, +1/3 ...Em (COM1,SEG2) é +1/3, +1/3, -1/3, -1/3 ...Em (COM2,SEG1) é +1/3, +1/3, -1/3, -1/3 ...Em (COM2,SEG2) é -1/3, +1, +1/3, -1 ...
Assim, a potência média é calculada. Em (COM1, SEG1) e (COM2, SEG2), é 2*1^2+2*(1/3)^2=20/9. Em (COM1, SEG2) e (COM2, SEG1), é 4*(1/3)^2=4/9. A razão entre os dois é 5:1.
Se não for a unidade de tempo compartilhado 1/2 na figura acima, mas a unidade de tempo compartilhado 1/4, a proporção se tornará
2*1^2+6*(1/3)^2 vs 8*(1/3)^2 = 3:1
Se o 1/2 Bias original for alterado para 1/3 Bias, a proporção da minha tela LCD será melhorada de 7:3 para 3:1. Como o PIC16F913 foi projetado apenas com 1/2 Bias e 1/3 Bias, não deve ser um problema usá-lo.
Uma única porta de E/S do AVR para atingir 4 saídas de tensão - impossível, não consigo pensar nisso. O AVR tem no máximo três saídas de tensão. Essa tensão pode ser dividida em 4 partes iguais? Depois de pensar um pouco, pensei que isso funcionaria: basta dividi-la em 4 partes iguais.
COM1:V+ --------
3/4
1/2 -------- --------
1/4
GND --------
COM2: V+ --------
3/4
1/2 -------- --------
1/4
GND --------
SEG1: V+
3/4 -------- ---------
1/2
1/4 ----------------
Terra
SEG2: V+
3/4 ----------------
1/2
1/4 -------- ---------
Terra
Minha abordagem é ter dois tipos de saídas SEGx: 3/4*Vcc e 1/4*Vcc, e três tipos de saídas COMy: Vcc, GND, 1/2*Vcc. Para cada porta de E/S, quatro saídas de tensão não são necessárias. Obviamente, isso é diferente do acionamento com polarização 1/3, mas atinge o efeito do acionamento com polarização 1/3, exceto que o valor absoluto máximo da tensão aplicada ao segmento LCD não é Vcc, mas 3/4*Vcc, portanto, a tensão da fonte de alimentação também precisa ser aumentada. O cálculo é omitido aqui.
Eu chamo esse método de acionamento de "acionamento com pseudo 1/3 Bias". O processamento do COMy é o mesmo de antes. Para o SEGx, altere a tensão de saída de E/S para 3/4*Vcc para nível alto e 1/4*Vcc para nível baixo. Minha abordagem é:
/-------------- Pino da porta de E/S
|
[ ]
[ ] 1Megagrama
[ ]
|
para LCD SEGx --------------+
|
[ ]
[ ] 1Megagrama
[ ]
|
|
1/2 Vcc
O 1/2 Vcc aqui pode ser obtido dividindo a tensão da fonte de alimentação pelos resistores. Pensei em conectar um capacitor de vários µF diretamente ao GND, e o experimento foi bem-sucedido. Porque, à medida que a varredura avança, a tensão média neste ponto é metade da saída de nível alto e nível baixo.
Atualmente, criei um contador de segundos Mega48V e posso criar um relógio modificando-o.


|
Este é meu programa: (Como comecei a usar o AVR recentemente, comecei com o mais simples e usei o assembly diretamente) |
Além disso, a correspondência entre os pinos e os traços da tela LCD pode ser diferente daquela do tubo digital LED. Minha tela é assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
< 1f 1a 2f 2a 3f 3a 4f 4a > -- ---- COM1
< 1g 1b 2g 2b 2g 3b 4g 4b > -- ---- COM2
< 1e 1c 2e 2c : 3e 3c 4e 4c > -- ---- COM3
1d 1h 2d 2h 3d 3h 4d ---- COM4
Entre eles, 12, 13, 14, 15 são 4 terminais comuns; 2, 3 controlam o primeiro dígito; 4, 5 o segundo; 7, 8 o terceiro; 9, 10 o quarto.
########################################## ##########
Eu já tinha um projeto de controle de aquecedor de água residencial, em que o hardware e o software eram desenvolvidos separadamente. Para economizar custos, o engenheiro de hardware não utilizou um circuito integrado dedicado ao driver de LCD, o que me deixou muito frustrado. O projeto inteiro levou 20 dias, e só o driver de LCD levou mais de 10 dias.
As portas de E/S SEG e COM são conectadas em série com um resistor e, em seguida, conectadas em paralelo com um resistor ao aterramento.
Dessa forma, para o LCD, a porta de E/S é a fonte de alimentação/aterramento, e o nível H/L de SEG/COM é alterado regularmente, o que é equivalente a um sinal CA de 1/2 VCC.
Quando SEG/COM são ambos níveis H ou L, o LCD é desligado. Quando os níveis SEG/COM não são iguais, o código do segmento pode ser exibido.
Depois de entender esse princípio, não é difícil escrevê-lo em linguagem C.
O acima é exibido por escaneamento direto usando um microcomputador de chip único. Na verdade, há outro método simples para acioná-lo.
Se você puder escolher um CI driver para acionar, o software será mais simples. O CI driver foi simplificado e é fácil de processar na tabela. Porque o princípio é que o MUC é conectado ao CI driver, e o CI driver é conectado à tela. O MCU precisa apenas de 5 portas de dados, VDD, VSS, DADTA, WR, CS, para entrada no chip driver, economizando muitas portas de E/S. O CI driver só precisa ser conectado à linha COM e à linha SEG da tela LCD, uma por uma, e o trabalho está feito. O próximo passo é usar o MUC para acionar. O CI driver existente geralmente escolhe a série HT1621B.
A Zhuojinwei não é apenas uma fabricante de telas LCD, mas também pode fornecer suporte e sugestões em tecnologia de software. Se você precisa produzir e personalizar telas LCD.