Thông báo

Collapse
No announcement yet.

Các bạn giúp mình đoạn code C cho LCD 16x2 8bit mode này với !

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

  • Các bạn giúp mình đoạn code C cho LCD 16x2 8bit mode này với !

    #include <16f877a.h>
    #fuses NOPUT, HS, NOLVP, NOCPD, NOWRT, NOPROTECT
    #USE DELAY(CLOCK=20000000)
    #use fast_io(b)
    #define RS RE0;
    #define RW RE1;
    #define E RE2;
    #define lcd portb;

    unsigned char key[]="Phan Kien";
    int i;
    void cmd()
    {
    RS=0;
    RW=0;
    E=1;
    delay_ms(1);
    E=0;
    }

    void data()
    {
    RS=1;
    RW=0;
    E=1;
    delay_ms(1);
    E=0;
    }

    void main()
    {
    lcd=0x38;
    cmd();
    lcd=0xc0;
    cmd();
    lcd=0x80;
    cmd();
    set_tris_b(0);
    set_tris_e(0);
    while(1)
    {
    lcd=key[i];
    data();
    delay_ms(100);
    }
    }


    Mình mò mẫm viết đoạn code này theo sách hướng dẫn "CCS C for PIC16f877a" nhưng không hiểu sao trình biên dịch CCS báo lỗi không cho phép khai báo chân RS, RW, E như trên, nếu khai báo theo kiểu #bit , #byte thì lại được. Và chương trình LCD cũng không hiển thị ra chữ gì cả, mình cũng chưa hiểu lắm, nếu dùng thư viện LCD.c sẵn có thì viết rất đơn giản thui nhưng mà thế thì lại ăn sẵn quá. Bạn nào giải thích giúp mình cái khai báo chân và sao LCD lại ko hiển thị chữ như trên với, mình cảm ơn rất nhiều

  • #2
    vãi cả #define, cái này là bạn chưa hiểu cách define của nó chứ, với define thì tên chân trước, tên biến cần define đứng sau, đảo lại so với các kiểu kia
    Website chính thức đổi địa chỉ website thành
    Mời các bạn ghé thăm !!!

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X