Cap.3 - Conversor AD e LCD

11 Pages • 1,970 Words • PDF • 128.7 KB
Uploaded at 2021-09-24 07:00

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


Capítulo 03 PIC: Conversor A/D e LCD

OBJETIVOS

• • •

Compreender a operação do conversor A/D do PIC; Aprender a utilizar as funções do drive de LCD ; Desenvolver uma IHM usando o LCD e o teclado da placa de experimentos;

CONVERSOR A/D O módulo do conversor A/D possui 8 entradas analógicas, que possuem um capacitor de sampleand-hold. A saída do sample-and-hold é conectada a entrada do conversor A/D a partir de um multiplex 8 x 1. O conversor A/D gera uma palavra binária de 10 bits para representar o valor de tensão na entrada analógica selecionada. O módulo A/D tem duas entradas de tensão de referência (alta e baixa), que são selecionadas por software, entre algumas opções de combinação pré-estabelecidas. Uma característica apenas presente no módulo conversor A/D é que o mesmo pode operar mesmo o PIC estando no modo SLEEP. Para operar neste modo o sinal de clock do conversor A/D (CAD) deve ser derivado do oscilador RC interno do PIC. O conversor A/D possui quatro registradores: • Registrador do byte mais significado do resultado da conversão (ADRESH); • Registrador do byte menos significado do resultado da conversão (ADRESL); • Registrador de controle 0 (ADCON0) e • Registrador de controle 1. Os registradores ADRESH:ADRESL contém os 10 bits do resultado da conversão. Quando a mesma é concluída, o resultado é carregado nesses registradores, o bit GO/DONE (bit 2 do Reg. ADCON0) é resetado e o flag de interrupção, bit ADIF, é setado. Após a configuração do módulo como desejado, o canal cujo sinal analógico deve ser convertido, deve ser selecionado antes da conversão ser iniciada. Os canais de entrada analógicos devem ter seus correspondentes bits TRIS ajustado para que os pinos das portas A e E se comportem como entradas. Após o período de aquisição do sinal ter finalizado (aproximadamente 20µs) a conversão A/D pode ser iniciada conforme os seguintes passos: 1. Configure o módulo A/D • Configure os pinos de entrada analógica, as tensões de referência e os pinos de I/O digital (ADCON1); • Selecione o canal de entrada analógica (ADCON0); • Selecione a freqüência do sinal de clock do conversor A/D (ADCON0); • Ative o módulo A/D; 2. Configure a interrupção do módulo A/D (se desejado); • Resete o bit ADIF; • Sete o bit ADIE; • Sete o bit GIE;

1

3. Aguarde o tempo de aquisição requerido; 4. Inicie a conversão • Sete o bit GO/DONE (ADCON0) 5. Aguarde o tempo de conversão ter transcorrido; • Realize um POLLING no bit GO/DONE, verificando se o seu valor é zero (indicativo de fim de conversão A/D); • ou aguarde pela interrupção gerada pelo módulo A/D ao fim da conversão; 6. Leia o par de registradores (ADRESH:ADRESL), resete o bit ADIF se a interrupção do conversor A/D está sendo utilizada; 7. Para realizar uma nova conversão retorne ao passo 1 ou 2 (antes de uma nova conversão ser iniciada, deve ser aguardado um tempo de 2TAD, que é o tempo de conversão por bit, cujo valor é definido na tabela 1). O conversor A/D necessita de no mínimo 12 TAD para realizar uma conversão de 10 bits. A fonte do clock do conversor A/D é selecionada por software entre as possibilidades abaixo: • 2Tosc • 8Tosc • 32Tosc • Oscilador RC interno Para uma conversão correta, o clock do conversor A/D deve ser selecionado para garantir um TAD mínimo de 1.6µs. A tabela 1 mostra os valores de TAD em função da seleção da fonte do clock. Tabela1 – TAD x Máxima freqüência de conversão

Se o bit GO/DONE for resetado durante uma conversão, esta será abortada. Os registradores de resultado do módulo A/D não serão atualizados com a parcialmente concluída conversão. Assim, os registradores ADRESH:ADRESL continuaram armazenando o valor da última conversão concluída (ou o último valor escrito para os registradores ADRESH:ADRESL). Após uma conversão ser abortada, um tempo de 2TAD é necessário antes de uma nova conversão ser iniciada. Após este tempo, a aquisição do canal selecionado é automaticamente iniciada. O par de registradores ADRESH:ADRESL comporta 16 bits, assim, o valor convertido de 10 bits pode ser justificado a direita ou à esquerda, de acordo com o bit seleção de formato do conversor A/D (ADFM), que controla a justificação. Os bits extras não utilizados são carregados com “0” (zeros). Quando o módulo A/D não estiver sendo utilizado, os registradores ADRESH:ADRESL podem ser usados como dois registradores de propósito geral de 8 bits.

2

Justificação do resultado da conversão A/D

Diagrama de blocos do conversor A/D

3

Registrador ADCON0 - Controla a operação do módulo A/D.

4

Registrador ADCON1 – Configura a função dos pinos das portas (A e E)

Os registradores ADCON1 e TRIS controlam a operação dos pinos das portas A/D. Os pinos das portas que serão entradas analógicas devem ter seus correspondentes bits TRIS setados. Se o bit está resetado, o nível de tensão da saída digital será convertido. A operação do conversor A/D independe do estado dos bits CHS2:CHS0 e dos bits TRIS Observações: 1 – Quando o registrador da porta é lido, qualquer pino configurado como um canal de entrada analógica será lido como zero (nível baixo). Pinos configurados como entradas digitais irão se converter em entradas analógicas. Níveis analógicos em uma entrada configurada como digital, não afetarão a precisão da conversão. 2 – Níveis analógicos em qualquer pino que é definido como uma entrada digital (incluindo os pinos AN7:AN0) podem fazer com que o buffer de entrada consuma corrente que está fora das especificações do dispositivo.

5

Registradores associados com o módulo do conversor A/D

As rotinas abaixo implementam as funções utilizadas para escrever caracteres e/ou mensagens em um LCD (Display de Cristal Líquido) de 16 colunas por 2 linhas. /*===================================================================== ======================================================================= ARQUIVO - DRIVER: LCD_16x2_LIB.C DATA DE CRIAÇÃO: 03/11/2003 REVISÃO: 1.0 DATA DA ULTIMA REV: 03/12/2004 ULTIMA REV: 1.1 MICROCONTROLADOR: FAMILIA PIC FUNÇÃO: DESCRIÇÃO: BIBLIOTECA DE MANIPULAÇÃO DO DISPLAY DE CRISTAL LÍQUIDO (LCD 16X2). AUTOR:

TÉC. LÚCIO HÉLIO

======================================================================= =====================================================================*/ #ifndef

CS_LCD

#define

CS_LCD

PIN_E0

#define

RS_LCD

PIN_E1

#define

D4_LCD

PIN_D4

#define

D5_LCD

PIN_D5

#define

D6_LCD

PIN_D6

#define

D7_LCD

PIN_D7

// Pino de Controle "CS - CHIP //SELECT" do LCD --------- (pino 6). // Pino de Controle "RS - REGISTER //SELECT" do LCD ----- (pino 4). // Pino do Barramento de Dados "D4 //4" do LCD --- (pino 11). // Pino do Barramento de Dados "D5 //5" do LCD --- (pino 12). // Pino do Barramento de Dados "D6 //6" do LCD --- (pino 13). // Pino do Barramento de Dados "D7 //7" do LCD --- (pino 14).

Dado Dado Dado Dado

6

#endif #define lcd_type 2 #define lcd_seg_lin 0x40

// 0=5x7, 1=5x10, 2=2 linhas // Endereço da segunda linha na RAM do //LCD

// A constante abaixo define a seqüência de inicialização do LCD. byte CONST seq_ini_lcd[4] = {0x20 | (lcd_type > 4); // Envia a primeira parte do byte. envia_nibble_lcd(dado & 0x0f); // Envia a segunda parte do byte. }

/*===================================================================== FUNÇÃO: PARÂMETROS: RETORNO:

INI_LCD() BYTE, NENHUM. BYTE, NENHUM.

DESCRIÇÃO:

ROTINA DE INICIALIZAÇÃO DO LCD.

=====================================================================*/ void ini_lcd_16x2() { byte conta; output_low(CS_LCD); output_low(D4_LCD); output_low(D6_LCD); output_low(D7_LCD); output_low(RS_LCD); output_low(CS_LCD); delay_ms(15); // Envia uma seqüência de 3 vezes o valor "0x03" e depois o valor // "0x02" para configurar o barramento do LCD no modo de 4 bits. for(conta = 1 ;conta
Cap.3 - Conversor AD e LCD

Related documents

11 Pages • 1,970 Words • PDF • 128.7 KB

143 Pages • 61,098 Words • PDF • 792.8 KB

26 Pages • 1,338 Words • PDF • 917.2 KB

135 Pages • 116,902 Words • PDF • 71.7 MB

1,480 Pages • 590,941 Words • PDF • 20.1 MB

12 Pages • 4,080 Words • PDF • 197.8 KB

74 Pages • 2,203 Words • PDF • 2.8 MB

11 Pages • 2,666 Words • PDF • 185 KB

113 Pages • 38,526 Words • PDF • 721.1 KB

8 Pages • 2,259 Words • PDF • 153.1 KB