Thông báo

Collapse
No announcement yet.

giúp em sửa lỗi nháy liên tục trên màn hình hiển thị lcd

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp em sửa lỗi nháy liên tục trên màn hình hiển thị lcd

    đây là code và mạch của em ạ khi em bật thì màn hình lcd hiển thị nhưng nháy đen liên tục các ace xem giúp em lỗi ở đâu ạ
    code ạ
    #INCLUDE <16F887.H>
    #FUSES NOWDT, PUT, HS, NOPROTECT, NOLVP
    #USE DELAY(CLOCK = 20M)
    #INCLUDE <TV_LCD.C>

    #DEFINE MODE PIN_B0
    #DEFINE UP PIN_B1
    #DEFINE DOWN PIN_B2

    UNSIGNED INT8 GIO, PHUT, GIAY, BDT;
    UNSIGNED INT8 GT;
    #INT_TIMER1
    VOID INTERRUPT_TIMER1()
    { SET_TIMER1 (59286);
    BDT++;
    }
    Void LCD_HIENTHI()
    {
    LCD_COMMAND (0X84); LCD_DATA ("DONG HO");
    LCD_COMMAND (0XC4); LCD_DATA (GIO/10 + 0X30);
    LCD_DATA (GIO%10 + 0X30); LCD_DATA (":");
    LCD_DATA (PHUT/10 + 0X30); LCD_DATA (PHUT%10 + 0X30);
    LCD_DATA (":"); LCD_DATA (GIAY/10 + 0X30);
    LCD_DATA (GIAY%10 + 0X30);
    }
    VOID LCD_NHAPNHAY()
    { IF (GT==1) { LCD_COMMAND (0XC4); LCD_DATA (" ");}
    IF (GT==2) { LCD_COMMAND (0XC7); LCD_DATA (" ");}
    IF (GT==3) { LCD_COMMAND (0XCA); LCD_DATA (" ");}
    }
    VOID BT_MODE()
    { IF (!INPUT (MODE))
    { DELAY_MS (20);
    IF (!INPUT (MODE))
    { GT++;
    IF (GT==4) GT=0;
    }
    WHILE (!INPUT(MODE));
    }
    }
    VOID BT_UP()
    { IF (!INPUT (UP))
    { DELAY_MS (20);
    IF (!INPUT (UP))
    { SWITCH (GT)
    {
    CASE 1: IF (GIO==23) GIO=0;
    ELSE GIO++;
    BREAK;
    CASE 2: IF (PHUT==59) PHUT=0;
    ELSE PHUT++;
    BREAK;
    CASE 3: IF (GIAY==59) GIAY=0;
    ELSE GIAY++;
    BREAK;
    DEFAULT: BREAK;
    }
    }
    WHILE (!INPUT (UP));
    }
    }
    VOID BT_DOWN()
    { IF (!INPUT (DOWN))
    { DELAY_MS (20);
    If (!INPUT (DOWN))
    { SWITCH (GT)
    { CASE 1: IF (GIO==0) GIO=23;
    ELSE GIO--;
    BREAK;
    CASE 2: IF (PHUT==0) PHUT=59;
    ELSE PHUT--;
    BREAK;
    CASE 3: IF (GIAY==0) GIAY=59;
    ELSE GIAY--;
    BREAK;
    }
    }
    WHILE (!INPUT (DOWN));
    }
    }


    VOID MAIN()
    { SET_TRIS_D (0X00);
    LCD_SETUP();
    GIAY=0;
    PHUT=0;
    GIO=0;
    BDT=0;
    LCD_HIENTHI();
    SETUP_TIMER_1 (T1_INTERNAL|T1_DIV_BY_8);
    Set_TIMER1 (59286);
    ENABLE_INTERRUPTS (GLOBAL);
    ENABLE_INTERRUPTS (INT_TIMER1);

    wHILE (TRUE)
    {
    IF (BDT<100)

    { LCD_HIENTHI();
    LCD_NHAPNHAY();
    BT_MODE();
    BT_UP();
    BT_DOWN();
    }
    ELSE
    { BDT=BDT-100;
    GIAY++;
    IF (GIAY==60)
    { GIAY=0;
    PHUT++;
    IF (PHUT==60)
    { PHUT=0;
    GIO++;
    If (GIO==24) GIO=0;
    }
    }
    }
    }
    }

Về tác giả

Collapse

kudosai999 Tìm hiểu thêm về kudosai999

Bài viết mới nhất

Collapse

Đang tải...
X