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

Calculadora: SERÃO USADAS A TECLAS DO TECLADO MATRICIAL NUMÉRICO DO KIT PICGENIOS

Por:   •  13/2/2016  •  Trabalho acadêmico  •  607 Palavras (3 Páginas)  •  462 Visualizações

Página 1 de 3

Calculadora

Serão usadas a teclas do teclado matricial numérico do kit PICGenios

O push-botton da 4° linha /1° coluna é o operador de subtração, enquanto o push-botton  da  4° linha /3° coluna é o operador de soma.

// Conexoes LCD

sbit LCD_RS at RE2_bit; sbitLCD_RS_Directionat TRISE2_bit;

sbit LCD_EN at RE1_bit; sbitLCD_EN_Directionat TRISE1_bit;

sbit LCD_D4 at RD4_bit; sbit LCD_D4_Direction at TRISD4_bit;

sbit LCD_D5 at RD5_bit; sbit LCD_D5_Direction at TRISD5_bit;

sbit LCD_D6 at RD6_bit; sbit LCD_D6_Direction at TRISD6_bit;

sbit LCD_D7 at RD7_bit; sbit LCD_D7_Direction at TRISD7_bit;

// Conexoes do teclado

// Saidas do PIC:

//    RB0 - primeira coluna

//    RB1 - segunda coluna

//    RB2 - terceira coluna

// Entradas do PIC:

//    RD3 - primeira linha

//    RD2 - segunda linha

//    RD1 - terceira linha

//    RD0 - quarta linha

void LCD(char texto[16])//Habilita as 16 colunas do LCD

{

Lcd_Cmd(_LCD_CLEAR);    //limpa o Display

delay_ms(100);

Lcd_Out(1,4,texto);

delay_ms(100);

}

intleitura_TM()//leitura do teclado matricial

{

while (1) {

    // Lendo o Teclado

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

        //Habilitando as linhas

if (portd.rd0 == 0)

return (-1);

elseif (portd.rd1 == 0)

return (7);

elseif (portd.rd2 == 0)

return (4);

elseif (portd.rd3 == 0)

return (1);

        portb.rb0 = 1;          //desabilita primeira coluna do teclado

        portb.rb1 = 0;          //habilita segunda coluna do teclado

if (portd.rd0 == 0)

return (0);

elseif (portd.rd1 == 0)

return (8);

elseif (portd.rd2 == 0)

return (5);

elseif (portd.rd3 == 0)

return (2);

        portb.rb1 = 1;          //desabilita segunda coluna do teclado

        portb.rb2 = 0;         //habilita terceira coluna do teclado

        //Habilitando as linhas

if (portd.rd0 == 0)

return (-2);

elseif (portd.rd1 == 0)

return (9);

elseif (portd.rd2 == 0)

return (6);

elseif (portd.rd3 == 0)

return (3);

        portb.rb2 = 1;        //desabilita terceira coluna do teclado

    }

}

voidmain(){

     // inicia as variáveis

     // as varaiveis começam com zero por causa de algum lixo de memoria

int a=0; //Primerio numero a ser digitado

int b=0;//SEgundonumero a ser digitado

intop=0;// Operacao a ser feita

int res=0;//Resultado

charch_res[7];

charch_a[7];

charch_b[7];

     ADCON1  = 0x0F;  

trisd = 0x0F;  

portb = 0xFF;

trisb = 0xF8;  

Lcd_Init();                      //Inicializa o Display

delay_ms(100);

Lcd_Cmd(_LCD_CLEAR);             //limpa o Display

delay_ms(100);

Lcd_Cmd(_LCD_CURSOR_OFF);        //Desabilita o cursor

delay_ms(100);

while(1)

{

lcd_cmd(_LCD_CLEAR);

lcd_out(1,1,"CALCULADORA:  ");

lcd_out(2,1,"a= ");

a=leitura_TM(); // leitura do teclado

...

Baixar como (para membros premium)  txt (3.5 Kb)   pdf (65.3 Kb)   docx (9.1 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com