Advertisement
ericksm

pic16f886_lcd

Apr 12th, 2020
1,015
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. #include <16F886.h>
  2. #use delay(internal = 8M)
  3.  
  4. #FUSES NOWDT                    //No Watch Dog Timer
  5. #FUSES INTRC_IO                       //#FUSES INTRC_IO
  6. #FUSES NOPUT                    //No Power Up Timer
  7. #FUSES NOMCLR                   //Master Clear pin used for I/O
  8. #FUSES NOPROTECT                //Code not protected from reading
  9. #FUSES NOCPD                    //No EE protection
  10. #FUSES NOBROWNOUT               //No brownout reset
  11. #FUSES NOIESO                   //Internal External Switch Over mode disabled
  12. #FUSES NOFCMEN                  //Fail-safe clock monitor disabled
  13. #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
  14. #FUSES NODEBUG                  //No Debug mode for ICD
  15. #FUSES BORV40                   //Brownout reset at 4.0V
  16. #FUSES NOWRT                    //Program memory not write protected
  17.  
  18. #use fast_io(A)
  19. #use fast_io(B)
  20. #use fast_io(C)
  21. #define PORTC 0x07
  22. #define LCD_PinRS PIN_B0
  23. #define LCD_PinEnable PIN_B1
  24. #define LCD_BusDatos PORTC  //utiliza la parte baja del puerto
  25. #include <lcd_custom.c>
  26. char mensaje[33];
  27.  
  28. void main()
  29. {
  30.    int16 count =0;
  31.    setup_adc_ports(NO_ANALOGS|VSS_VDD);
  32.    setup_adc(ADC_OFF);
  33.    setup_spi(FALSE);
  34.    setup_oscillator(OSC_8MHZ);
  35.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  36.    setup_timer_1(T1_DISABLED);
  37.    setup_timer_2(T2_DISABLED,0,1);
  38.    setup_comparator(NC_NC_NC_NC);
  39.    setup_vref(FALSE);
  40.    set_tris_a(0x00);
  41.    set_tris_b(0x00);
  42.    set_tris_c(0x10);
  43.    delay_ms(100);
  44.    output_a(00);
  45.    output_b(00);
  46.    output_c(0x00);
  47.  
  48.    output_high(PIN_C5);//test
  49.    lcd_Inicializa();
  50.    strcpy(mensaje,"hola mundo");
  51.    mensaje_lcd(mensaje);
  52.    delay_ms(2000);
  53.    strcpy(mensaje,"contador de     pulsos:");
  54.    mensaje_lcd(mensaje);
  55.    delay_ms(2000);
  56.    count = 1;
  57.    while(1)
  58.    {
  59.       if(bit_test(input_c(),4)==0)
  60.       {
  61.          delay_ms(100);// evitar debounce
  62.          if(bit_test(input_c(),4)==0)
  63.          {
  64.             sprintf(mensaje,"%3Lu",count);
  65.             mensaje_lcd(mensaje);
  66.             count++;
  67.          }
  68.       }
  69.    }
  70.  
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement