TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Teste PIC microcontrolador

Por:   •  7/5/2015  •  Resenha  •  1.050 Palavras (5 Páginas)  •  402 Visualizações

Página 1 de 5

// Conexoes LCD do kit PICGenios com 18F

sbit LCD_RS at RE2_bit;

sbit LCD_EN at RE1_bit;

sbit LCD_D4 at RD4_bit;

sbit LCD_D5 at RD5_bit;

sbit LCD_D6 at RD6_bit;

sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISE2_bit;

sbit LCD_EN_Direction at TRISE1_bit;

sbit LCD_D4_Direction at TRISD4_bit;

sbit LCD_D5_Direction at TRISD5_bit;

sbit LCD_D6_Direction at TRISD6_bit;

sbit LCD_D7_Direction at TRISD7_bit;

// Fim das conexoes do LCD

int valor1 = -99, valor2= -99, operacao = -99, resultado = 0;

char resultado_str;

void LCD(char texto[16])

{

Lcd_Cmd(_LCD_CLEAR); //limpa o Display

Lcd_Out(1,1,texto);

}

void calcula_resultado () {

if(operacao == 1) { //Se a operação for de soma

resultado = valor1 + valor2;

} else if (operacao == 2){ //Se a operação for de subtração

resultado = valor1 - valor2;

}

valor1 = -99; //Zera o valor1

valor2 = -99; //Zera o valor2

operacao = -99; //Zera operação

resultado_str = 'F'; //Zera Resultado

LCD("Resultado: "); //Mostra a palavra Resultado

VDelay_ms(900); //Espera um tempo

IntToStr(resultado, resultado_str); //Transforma Inteiro p/ string

LCD(resultado_str); //Mostra Resultado

resultado = 0;

}

void atribui_valor(int v_parm) {

char aux[10];

if(valor1 == -99){ //Se o valor 1 estiver zerado, atribui nele

valor1 = v_parm;

VDelay_ms(1000);

} else { //Senão atribui o valor 2 e já chama a função do resultado.

valor2 = v_parm;

IntToStr(v_parm, aux);

LCD(aux);

VDelay_ms(1000);

calcula_resultado();

}

}

void define_operacao(int op){ //Faz as validações.

if(valor1 == -99) {

LCD("Ins. valor 1");

VDelay_ms(900);

} else if (valor1 != -99 && operacao == -99){

operacao = op;

VDelay_ms(900);

} else {

LCD("Opcao Invalida");

}

}

void main(){

ADCON1 = 0x0F;

trisd = 0x0F;

portb = 0xFF;

trisb = 0xF8;

Lcd_Init(); //Inicializa o Display

Lcd_Cmd(_LCD_CLEAR); //limpa o Display

Lcd_Cmd(_LCD_CURSOR_OFF); //Desabilita o cursor

do

{

portb.rb0 = 0; //habilita primeira coluna do teclado

if (portd.rd0 == 0){

LCD("+"); //Mostra na tela

define_operacao(1); //Define

...

Baixar como (para membros premium)  txt (4 Kb)   pdf (46.8 Kb)   docx (12.9 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com