Help giao tiếp 8051 với LCD

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • thuongdtqb
    Thành viên tích cực
    • Apr 2011
    • 513

    #1

    Help giao tiếp 8051 với LCD

    mình viết code giao tiếp 8051 với LCD 16x2 nhưng chỉ viết dk hiện thị lên màn hình thui, bạn nào biết cách hiện thị LCD chử chạy trên xuống và từ phải qua trái thì giúp mình với. thank nhìu.
    file: LCD 16x2.rar
    ★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★
  • viboyth.haui
    Thành viên tích cực
    • Feb 2012
    • 300

    #2
    C thì mình có thể giúp bạn còn ASM thì mình chịu,hihi
    vanduc0211@gmail.com

    Comment

    • chung1608
      Thành viên tích cực
      • Sep 2009
      • 4160

      #3
      Nguyên văn bởi thuongdtqb Xem bài viết
      mình viết code giao tiếp 8051 với LCD 16x2 nhưng chỉ viết dk hiện thị lên màn hình thui, bạn nào biết cách hiện thị LCD chử chạy trên xuống và từ phải qua trái thì giúp mình với. thank nhìu.
      file: LCD 16x2.rar
      từ phải qua trái có mã lệnh 1CH còn từ trên xuống thì không hiểu bạn muốn dịch từ dòng trên xuống dòng dưới hay sao

      Comment

      • mast090
        Thành viên tích cực
        • Oct 2010
        • 1018

        #4
        LCD nó có nhứ matrix quét đâu mà trên xuống vs trái sang, có dịch chỉ là dịch từng byte cả ký tự chứ ko thể dịch từng cột từng cột dc
        Website chính thức đổi địa chỉ website thành
        Mời các bạn ghé thăm !!!

        Comment

        • thuongdtqb
          Thành viên tích cực
          • Apr 2011
          • 513

          #5
          ok. mình biết dịch phải qua trái rùi.thank mấy bạn nhìu. học vdk mà thầy dạy toàn lệnh thui không hỉu mấy về thuật toán giao tiếp ah
          ★♀♥♂Oº°(¯`◦_ _◦´¯)°ºO♂♥♀ღ ★

          Comment

          • tucchet
            Thành viên mới
            • Dec 2011
            • 7

            #6
            ban co code chi minh voi.Cam on ban nhieu

            Comment

            • tucchet
              Thành viên mới
              • Dec 2011
              • 7

              #7
              Nguyên văn bởi viboyth.haui Xem bài viết
              C thì mình có thể giúp bạn còn ASM thì mình chịu,hihi
              ban co code chi minh xin voi .cam onm ban nhieu

              Comment

              • bienhou
                Thành viên tích cực
                • Dec 2011
                • 971

                #8
                bạn cho ký tự cần hiển thị vào 1 buffer sau đó dịch cái buffer đó là oke thôi bạn
                Nguyễn Huy Biên - 01649 802 694
                gmail :

                Comment

                • bienhou
                  Thành viên tích cực
                  • Dec 2011
                  • 971

                  #9
                  lcd_puts(Buff);
                  // Cho chu dich chuyen trong Buff
                  j=Buff[0];
                  for(i=0;i<15;i++)
                  {
                  Buff[i]=Buff[i+1];
                  }
                  Buff[15]=j;
                  delay_ms(500);
                  Nguyễn Huy Biên - 01649 802 694
                  gmail :

                  Comment

                  • tucchet
                    Thành viên mới
                    • Dec 2011
                    • 7

                    #10
                    Nguyên văn bởi bienhou Xem bài viết
                    lcd_puts(Buff);
                    // Cho chu dich chuyen trong Buff
                    j=Buff[0];
                    for(i=0;i<15;i++)
                    {
                    Buff[i]=Buff[i+1];
                    }
                    Buff[15]=j;
                    delay_ms(500);
                    #include <REGX51.H>
                    #include <string.h>
                    #define RS P2_5
                    #define RW P2_6
                    #define EN P2_7
                    #define lcd P3
                    #define lcdbusy P3_7
                    void delay(unsigned int x)
                    {unsigned int y;
                    for (y=0;y<x;y++)
                    {}
                    }
                    void ghilenh (char x) //x: la ma lenh dua vao
                    {
                    lcdbusy=1;
                    while (lcdbusy==0)//neu lcd=0 ko lam j
                    {};
                    RS=0; //chon thanh ghi lenh
                    RW=0; //ghi vao LCD
                    lcd= x; ///////doc thanh ghi lenh
                    EN=1; //////// suon sau cho phep LCD nhan du lieu data
                    EN=0;
                    delay(2000);
                    }
                    void hamghidulieulcd(char x)//x:la gia tri du kieu can ghi
                    {
                    lcdbusy=1;
                    while (lcdbusy==0)
                    {};
                    RS = 1;///// chon du lieu hoac lenh
                    RW = 0; //// ghi vao LCD
                    lcd = x; // doc du lieu data
                    EN = 1; ////suon sau cho phep LCD nhan du lieu data
                    EN = 0;
                    delay(2000);
                    }
                    void ghichuoi(char *str)
                    {
                    while (*str)
                    {
                    hamghidulieulcd(*str);
                    str++;
                    }
                    }
                    void lcd_gotoxy(char x,char y)
                    {
                    //hamghilenhlcd((0x80+x+64*y)+x);
                    //delay(100);
                    }
                    void main (void)
                    { int x,y;
                    {

                    ghilenh(0x30);
                    ghilenh(0x0E);
                    ghilenh(0x80);
                    ghilenh(0x38);
                    ghilenh(0x0c);

                    }


                    //for (y=0;y<5;y++)
                    //{
                    while(1)
                    {
                    ghilenh(0x01);
                    ghichuoi(" NGUYEN VAN K");
                    ghilenh(0xC0);
                    ghichuoi(" LOP TU DONG HOA");

                    for(x=0;x<17;x++)
                    {
                    ghilenh(0x1C);
                    delay(1000);
                    }
                    ghilenh(0x01);
                    ghichuoi(" DH_PHUONGDONG");
                    ghilenh(0xC0);
                    ghichuoi(" LOP TU DONG HOA");

                    for(x=0;x<17;x++)
                    {
                    ghilenh(0x18);
                    delay(1000);
                    }
                    }
                    }
                    ban sua giup minh voi
                    minh lam cho con 8051

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...