Estoque agora, pague os 80% restantes depois. Entrada de 20% até 30 de setembro.Vamos fazer compras

Lcd1602 Tela Azul com Backlight Display Lcd 1602A-5V Fundo Azul e Exibição de Texto Branco

30 dias
110 dias
Mín. R$ 3.948 (400 un.)
Produto 5.0
Fornecedor 4.5

Quantidade

LCD1602 blue screen

Produtos similares a um preço mais baixo

Especificações do produto
Marca
Tomorrow micro
Número do lote
Blue Screen
Especificações
LCD1602 blue screen
Marca
Tomorrow micro
Número do lote
Blue Screen
Especificações
LCD1602 blue screen
Marca
Tomorrow micro
Número do lote
Blue Screen
Especificações
LCD1602 blue screen
Detalhes do produto
O texto nas imagens pode ser traduzido
 








Copie e baixe as informações necessárias:

http://pan.baidu.com/s/1dDzimwp

Tamanho do vidro:aprox. 69,5*21,8*17,8

Texto branco sobre fundo azul

Módulo de exibição de caracteres LCD padrão 16X2 (luz de fundo/tela azul)

1602 usa uma interface padrão de 16 pinos, onde:

Pino: VSS é fonte de alimentação de aterramento

Pino 2: VDD conectado à fonte de alimentação positiva de 5V

Pino 3: V0 é o terminal de ajuste de contraste para o display de cristal líquido. Quando conectado à fonte de alimentação positiva, o contraste é fraco; quando conectado à fonte de alimentação terra, o contraste é alto. Se o contraste for muito alto, pode ocorrer "ghosting". Durante o uso, o contraste pode ser ajustado usando um potenciômetro de 10K.

Pino 4: RS é a seleção do registro. Quando o nível é alto, o registro de dados é selecionado. Quando o nível está baixo, o registro de instrução é selecionado.

Pino 5: R/W é a linha de sinal de leitura/gravação. Quando RS e RW estão baixos, você pode escrever instruções ou exibir endereços. Quando RS está baixo e RW alto, você pode ler o sinal de ocupado. Quando RS está alto e RW está baixo, você pode gravar dados.

Pino 6: O terminal E é o terminal de habilitação. Quando o terminal E salta de um nível alto para um nível baixo, o módulo LCD executa o comando.

Pinos 7 a 14: D0 a D7 são linhas de dados bidirecionais de 8 bits.

Pino 5: Positivo de energia da luz de fundo

Pino 6: Negativo de energia da luz de fundo

A memória geradora de caracteres (CGROM) dentro do módulo LCD 1602 armazenou 160 gráficos de caracteres matriciais diferentes, conforme mostrado na Tabela 1. Esses caracteres incluem: algarismos arábicos, letras inglesas maiúsculas e minúsculas, símbolos comuns e kana japonês, etc. personagem tem um código fixo. Por exemplo, o código para a letra maiúscula "A" em inglês é 01000001B (41H). Ao exibir, o módulo exibe os gráficos de caracteres matriciais no endereço 41H, e podemos ver a letra “A”.

A seguir está o programa para exibir a letra "A" na segunda posição do caractere do módulo LCD: ORG 0000H

RS EQU P3.7; Determine o método de conexão de hardware específico
RW EQU P3.6 ; Determine o método de conexão de hardware específico
E EQU P3.5; Determine o método de conexão de hardware específico

MOV P1,#00000001B; Limpe a tela e redefina o cursor
ATIVAR A CHAMADA; chame a sub-rotina do comando de gravação

MOV P1,#00111000B; Definir modo de exibição: matriz de pontos 5x7 de 2 linhas e 8 bits
ACALL ENABLE ;Chama a sub-rotina do comando de escrita

MOV P1,#00001111B; Display ligado, cursor ligado, cursor pode piscar
ACALL ENABLE ;Chama a sub-rotina do comando de escrita

MOV P1,#00000110B; O texto não se move e o cursor se move automaticamente para a direita
ACALL ENABLE ;Chama a sub-rotina do comando de escrita

MOV P1,#0C0H; Escreva o endereço inicial da tela (a segunda posição da linha)
ACALL ENABLE ;Chama a sub-rotina do comando de escrita

MOV P1, #01000001B; código para a letra A

SETBRS;RS=1
CLR RW; WR=0 ; Prepare-se para gravar dados
CLRE; E = 0; Executar comando de exibição
ATRASO DE CHAMADA; Determinar se o módulo LCD está ocupado?
SETB E; E = 1; Display concluído, programa interrompido

AJMP $

HABILITAR:
CLR RS ;Escrever sub-rotina de comando de controle
CLR RW
CLR E
ATRASO DE CHAMADA
SETB E
RET

ATRASO:
MOV P1,#0FFH ; Subrotina para determinar se o LCD está ocupado
CLR RS
SETB RW
CLR E
NÃO
SETB E
JB P1.7, ATRASO; se P1.7 estiver alto, significa ocupado, então espere em loop
RET

FIM

O programa realiza as configurações iniciais para as funções do módulo LCD no início, especificando o formato de exibição. Observe que o cursor move para a direita automaticamente ao exibir caracteres, sem intervenção manual. Cada vez que uma instrução é inserida, a sub-rotina DELAY, que verifica se o módulo LCD está ocupado, é chamada primeiro, depois o endereço da posição de exibição 0C0H é inserido, seguido pelo código 41H para o caractere A a ser exibido.


Método de fiação de porta analógica SMC1602A (16*2)
Diagrama de conexão:
-------------------------------------------------- -
|MMC-----51 | MMC-----51 | MMC------51 |
------------------------------------------------|
|DB0-----P1.0 | DB4-----P1.4 | RW-------P2.0 |
|DB1-----P1.1 | DB5-----P1.5 | RS-------P2.1 |
|DB2-----P1.2 | DB6-----P1.6 | E--------P2.2 |
|DB3-----P1.3 | DB7-----P1.7 | VLCD conectar resistor de 1K ao GND|
-------------------------------------------------- -

[Nota: AT89S52 usa oscilador de cristal de 12M]
================================================= ===========*/

#define LCM_RW P2_0 //define o pino
#define LCM_RS P2_1
#define LCM_E P2_2
#define LCM_Data P1
#define Ocupado 0x80 //Usado para detectar o sinalizador Ocupado na palavra de status LCM

#incluir

void WriteDataLCM (caractere não assinado WDLCM);
void WriteCommandLCM(caractere não assinado WCLCM,BuysC);
caractere não assinado ReadDataLCM(void);
caractere não assinado ReadStatusLCM(void);
void LCMInit(void);
void DisplayOneChar(caractere não assinado X, caractere não assinado Y, caractere não assinado DData);
void DisplayListChar(char não assinado X, char não assinado Y, código de char não assinado *DData);
vazio Atraso5Ms(vazio);
Atraso vazio400Ms (vazio);

código char não assinado uctech[] = {"uctech
código char não assinado net[] = {"uctech.icpcn.com

vazio principal(vazio)
{
Delay400Ms(); //Iniciar espera, aguardar que o LCM entre no estado de trabalho
LCMInit(); //Inicialização do LCM
Delay5Ms(); //Atraso por um momento (opcional)

DisplayListChar(0, 5, uctech);
DisplayListChar(0, 0, líquido);
ReadDataLCM(); //A frase de teste não tem sentido
enquanto(1);
}

//Escreve dados
void WriteDataLCM (caractere não assinado WDLCM)
{
ReadStatusLCM(); //Detecção de ocupado
Dados_LCM = WDLCM;
MMC_RS = 1;
LCM_RW = 0;
LCM_E = 0; //Se a velocidade do cristal for muito alta, você pode adicionar um pequeno atraso depois disso
LCM_E = 0; //Atraso
MMC_E = 1;
}

//Escreve instrução
void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC é 0 e a detecção de ocupado é ignorada
{
if (BuysC) ReadStatusLCM(); //Verifique se está ocupado conforme necessário
Dados_LCM = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
MMC_E = 0;
MMC_E = 0;
MMC_E = 1;
}

//Lê os dados
caractere não assinado ReadDataLCM (void)
{
MMC_RS = 1;
LCM_RW = 1;
MMC_E = 0;
MMC_E = 0;
MMC_E = 1;
retornar(LCM_Data);
}

//Lê o status
caractere não assinado ReadStatusLCM(void)
{
Dados_LCM = 0xFF;
LCM_RS = 0;
LCM_RW = 1;
MMC_E = 0;
MMC_E = 0;
MMC_E = 1;
while (LCM_Data & Busy); //Detectar sinal de ocupado
retornar(LCM_Data);
}

void LCMInit(void) //inicialização do LCM
{
Dados_LCM = 0;
WriteCommandLCM(0x38,0); //Configuração do modo de exibição três vezes, não detecta sinal de ocupado
Atraso5Ms();
WriteCommandLCM(0x38,0);
Atraso5Ms();
WriteCommandLCM(0x38,0);
Atraso5Ms();

WriteCommandLCM(0x38,1); //Configuração do modo de exibição, comece a exigir cada detecção de sinal ocupado
WriteCommandLCM(0x08,1); //Desliga a tela
WriteCommandLCM(0x01,1); //Limpar tela
WriteCommandLCM(0x06,1); // Exibe as configurações de movimento do cursor
WriteCommandLCM(0x0C,1); //Exibir e definir o cursor
}

//Mostra um caractere na posição especificada
void DisplayOneChar(caractere não assinado X, caractere não assinado Y, caractere não assinado DData)
{
Y &= 0x1;
X &= 0xF; //Limite X para não ser maior que 15, Y para não ser maior que 1
if (Y) X |= 0x40; //Quando a segunda linha deve ser exibida, o código de endereço +0x40;
X |= 0x80; // Calcula o código de instrução
WriteCommandLCM(X, 0); //Não detecte sinal de ocupado aqui, envie código de endereço
WriteDataLCM(DData);
}

//Exibe uma string de caracteres na posição especificada
void DisplayListChar(char não assinado X, char não assinado Y, código de char não assinado *DData)
{
unsigned char ListLength;

Comprimento da lista = 0;
Y &= 0x1;
X &= 0xF; //Limite X para não ser maior que 15, Y para não ser maior que 1
enquanto (DData[ListLength]>0x20) // Sair se o fim da string for alcançado
{
if (X <= 0xF) //X坐标应小于0xF
{
DisplayOneChar(X, Y, DData[ListLength]); //Exibe um único caractere
ComprimentoDaLista++;
X++;
}
}
}

//atraso de 5ms
Atraso vazio 5Ms (vazio)
{
int não assinado TempCyc = 5552;
enquanto(TempCyc--);
}

//atraso de 400ms
Atraso vazio400Ms (vazio)
{
char não assinado TempCycA = 5;
int não assinado TempCycB;
enquanto(TempCycA--)
{
TempCycB=7269;
enquanto(TempCycB--);
};

Os procedimentos acima são apenas para referência!!

Total