Electgpl

PIC - Keypad One Wire v2

Jan 22nd, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.93 KB | None | 0 0
  1. #include <16F883.h>
  2. #device adc=10
  3. #FUSES NOWDT, INTRC_IO, NOPUT, MCLR
  4. #use delay(int=4000000)
  5. #include <LCD.C>
  6. void main(){
  7.    setup_adc_ports(sAN0|VSS_VDD);
  8.    setup_adc(ADC_CLOCK_DIV_32);
  9.    lcd_init();
  10.    int i;
  11.    int16 salida;
  12.    char caracter;
  13.    const int keyValueMinor[17]={100,360,386,403,415,440,469,490,515,550,595,630,680,750,820,900,950};
  14.    const int keyValueMajor[17]={350,384,401,413,435,465,485,510,540,585,625,670,720,800,880,940,1024};
  15.    const char   KeySimbols[17]={'@','+','=','0','C','-','3','2','1','*','6','5','4','/','9','8','7'};
  16.    while(true){
  17.       set_adc_channel(0);
  18.       salida=read_adc();
  19.       delay_us(30);
  20.       lcd_gotoxy(1,1);
  21.       printf(lcd_putc,"Valor: %4lu",salida);
  22.       lcd_gotoxy(1,2);
  23.       printf(lcd_putc,"Caracter: %c",caracter);
  24.       for(i=0;i<18;i++){
  25.          if(salida>keyValueMinor[i]&&salida<keyValueMajor[i])
  26.             caracter=KeySimbols[i];
  27.       }
  28.    }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment