Professional Documents
Culture Documents
/
*=======================================================================
=====================================================================
ARQUIVO - DRIVER: LCD_16x2_LIB.C
DATA DE CRIAO: 03/11/2003
REVISO: 1.0
DATA DA ULTIMA REV: 03/12/2004
ULTIMA REV: 1.1
MICROCONTROLADOR: FAMILIA PIC
FUNO:
========================================================================
====================================================================*/
#ifndef CS_LCD
#endif
/*=====================================================================
1
FUNO: ENVIA_NIBBLE_LCD()
PARMETROS: BYTE, DADO...
RETORNO: BYTE, NENHUM.
=====================================================================*/
void envia_nibble_lcd( byte dado )
{
/*=====================================================================
FUNO: ENVIA_BYTE_LCD()
PARMETROS: BYTE, ENDERECO, DADO...
RETORNO: BYTE, NENHUM.
=====================================================================*/
void envia_byte_lcd( boolean endereco, byte dado )
{
/*=====================================================================
FUNO: INI_LCD()
PARMETROS: BYTE, NENHUM.
RETORNO: BYTE, NENHUM.
2
=====================================================================*/
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_nibble_lcd(2);
/*=====================================================================
FUNO: XY_LCD()
PARMETROS: BYTE, X,Y.
RETORNO: BYTE, NENHUM.
=====================================================================*/
void posicao_xy_lcd( byte x, byte y)
{
byte endereco;
if(y != 1)
endereco = lcd_seg_lin;
else
endereco = 0;
endereco += x-1;
envia_byte_lcd(0,0x80|endereco);
}
3
/*====================================================================
FUNO: EXIBE_LCD()
PARMETROS: BYTE, C...
RETORNO: BYTE, NENHUM.
=====================================================================*/
void exibe_lcd( char caracter)
{
switch (caracter)
{
case '\f' : // Envia um byte de Comando de Limpar (CLEAR) o
//Display.
envia_byte_lcd(0,1);
delay_ms(2);
break;
case '\n' :
posicao_xy_lcd(1,2);
break;
case '\b' :
envia_byte_lcd(0,10);
break;
}
}
4
O programa abaixo fica alternando as mensagens,
Modulo Avanado
P I C
** MicroLabs **
microlabs.com.br
fPlaca de Estudos
Desenvolvimentos
/*=====================================================================
=====================================================================*/
/*=====================================================================
INCLUSO DE BIBLIOTECAS - ARQUIVOS DE DRIVERES
=====================================================================*/
/*=====================================================================
=====================================================================*/
void main()
{
delay_ms(1000);
5
ini_lcd_16x2(); // Inicializa o LCD.
// - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - -
while(TRUE)
{
printf(exibe_lcd,"\f");
delay_ms(500);
printf(exibe_lcd,"\f");
delay_ms(500);
printf(exibe_lcd,"\fPlaca de Estudos\nDesenvolvimentos");
delay_ms(2000);
printf(exibe_lcd,"\f");
delay_ms(500);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
} // while...
} // Main...
Referncias
1 PIC16F87X Datasheet Microchip Technology Incorporated. USA. Nov 1999.
6
PREPARAO
Descreva a operao realizada por cada uma das funes abaixo e tambm o que representa cada
opo dos parmetros da funo em termos do funcionamento do bloco ao qual a funo est
associada (quando houver):
SETUP_ADC (mode)
mode: ADC_OFF
ADC_CLOCK_DIV_2
ADC_CLOCK_DIV_8
ADC_CLOCK_DIV_32
ADC_CLOCK_INTERNAL
SETUP_ADC_PORTS (value)
value: NO_ANALOGS
ALL_ANALOG
AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF VRefh=A3
AN0_AN1_AN2_AN3_AN4
AN0_AN1_AN2_AN4_VSS_VREF VRefh=A3
AN0_AN1_AN3
AN0_AN1_VSS_VREF VRefh=A3
AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF VRefh=A3 VRefl=A2
AN0_AN1_AN2_AN3_AN4_AN5
AN0_AN1_AN2_AN4_AN5_VSS_VREF VRefh=A3
AN0_AN1_AN4_AN5_VREF_VREF VRefh=A3 VRefl=A2
AN0_AN1_AN4_VREF_VREF VRefh=A3 VRefl=A2
AN0_AN1_VREF_VREF VRefh=A3 VRefl=A2
AN0
AN0_VREF_VREF VRefh=A3 VRefl=A2
READ_ADC (mode)
mode: ADC_START_AND_READ
ADC_START_ONLY
ADC_READ_ONLY
7
Resumo de Instrues:
8
9
10
11