Thông báo

Collapse
No announcement yet.

Lcd16x2(LM016L)giao tiếp với 89c51?

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

  • Lcd16x2(LM016L)giao tiếp với 89c51?

    các anh xem giùm em sao em không hiển thị được kí tự lên lcd lệnh điều khiển thỉ nhận được mà không hiển thị được kí tự các anh xem giúp code em có viết sai chổ nào không
    Attached Files

  • #2
    không ai giúp em à
    #include <REGX51.H>
    #include <stdio.h>
    #include <string.h>
    sbit BS=P0^7;
    sbit RS=P2^7;
    sbit RW=P2^6;
    sbit EN=P2^5;
    sbit a=P1^0;
    sbit b=P1^1;
    sbit c=P1^2;
    sbit d=P1^3;
    sbit e=P1^4;
    sbit f=P1^5;
    #define PortData P0
    //--------------control LCD--------------------------
    #define Clear 0x01
    #define BackTopLine 0x02
    #define MovePointerLeft 0x04
    #define MoveDisplayRight 0x05
    #define MovePointerRight 0x06
    #define MoveDisplayLeft 0x07
    #define OffPointerOffDisplay 0x08
    #define OffDisplayOnPointer 0x0a
    #define OnDisplayOffPointer 0x0c
    #define OnDisplayFlashingPointer 0x0e
    #define OffPointerFlashingPointer 0x0f
    #define MovePositionCursorLeft 0x10
    #define MovePositionCursorRight 0x14
    #define MoveDisplayEntireLeft 0x18
    #define MoveDisplayEntireRight 0x1c
    #define PressCursorBeginline1 0x80
    #define PressCursorBeginline2 0xc0
    #define TwoLineAndMatrix5x7 0x38
    //-------------------------------------------------------
    void BusyLcd();
    void ControlLcd(unsigned char Code);
    void WriteLcd(char Code);
    void Delay(int t);
    void KTlcd();
    void SanKey();
    //------------------------------------------------
    void Delay(int t)
    {
    while(t--);
    }
    void ControlLcd(unsigned char Code)
    {
    PortData=Code;
    RS=0;
    RW=0;
    EN=1;
    EN=0;
    // BusyLcd();
    }
    void WriteLcd(char Code)
    {
    PortData=Code;
    RS=1;
    RW=0;
    EN=1;
    EN=0;
    // BusyLcd();
    }
    //void BusyLcd()
    //{
    // RS=0;
    // RW=1;
    // PortData=0xff;
    // while(BS)
    // {
    // EN=0; Delay(1);
    // EN=1;
    // }
    //}
    void KTlcd()
    {

    ControlLcd(0x38);
    ControlLcd(0x0e);
    ControlLcd(0x01);
    //ControlLcd(0x06);
    // ControlLcd(0x1c);
    }

    void main()
    {
    KTlcd();
    WriteLcd('1');
    WriteLcd('2');
    WriteLcd('3');
    WriteLcd('4');
    WriteLcd('5');
    WriteLcd('6');
    WriteLcd('7');
    WriteLcd('8');
    WriteLcd('9');

    }

    Comment


    • #3
      Ông in cái bản vẽ của ông ra thành file pdf, nhiều người coi được mới giúp được cho ông, ai ở không đâu mà đi cài phần mềm rồi coi cho ông mà giúp ông được.

      Comment


      • #4
        thư viện lcd trên mạng có đầy mà, lấy về mà tham khảo!
        mà anh chạy mô phông hay ráp mạch vậy?

        Comment


        • #5
          em chạy mô phònh mà nó hông ra chử được lệnh điều khiển thỉ nhận mà không xuất chữ được mấy pác xem giúp code mình viết sai ở đâu
          Click image for larger version

Name:	lcd.JPG
Views:	1
Size:	161.4 KB
ID:	1375111
          #include <REGX51.H>
          #include <stdio.h>
          #include <string.h>
          sbit BS=P0^7;
          sbit RS=P2^7;
          sbit RW=P2^6;
          sbit EN=P2^5;
          #define PortData P0
          //--------------control LCD--------------------------
          #define Clear 0x01
          #define BackTopLine 0x02
          #define MovePointerLeft 0x04
          #define MoveDisplayRight 0x05
          #define MovePointerRight 0x06
          #define MoveDisplayLeft 0x07
          #define OffPointerOffDisplay 0x08
          #define OffDisplayOnPointer 0x0a
          #define OnDisplayOffPointer 0x0c
          #define OnDisplayFlashingPointer 0x0e
          #define OffPointerFlashingPointer 0x0f
          #define MovePositionCursorLeft 0x10
          #define MovePositionCursorRight 0x14
          #define MoveDisplayEntireLeft 0x18
          #define MoveDisplayEntireRight 0x1c
          #define PressCursorBeginline1 0x80
          #define PressCursorBeginline2 0xc0
          #define TwoLineAndMatrix5x7 0x38
          //-------------------------------------------------------
          void BusyLcd();
          void ControlLcd(unsigned char Code);
          void WriteLcd(char Code);
          void Delay(int t);
          //------------------------------------------------
          void Delay(int t)
          {
          while(t--);
          }
          void ControlLcd(unsigned char Code)
          {
          PortData=Code;
          RS=0;
          RW=0;
          EN=1; Delay(1);
          EN=0;
          // BusyLcd();
          }
          void WriteLcd(char Code)
          {
          PortData=Code;
          RS=1;
          RW=0;
          EN=1; Delay(1);
          EN=0;
          // BusyLcd();
          }
          void BusyLcd()
          {
          RS=0;
          RW=1;
          PortData=0xff;
          while(BS)
          {
          EN=0; Delay(1);
          EN=1;
          }
          }
          void main()
          {
          ControlLcd(0x38); Delay(100);
          ControlLcd(0x0e); Delay(100);
          ControlLcd(0x01); Delay(100);
          ControlLcd(0x80); Delay(50000);
          ControlLcd(0x0c);Delay(50000);
          WriteLcd(0x61);Delay(50000);

          while(1);
          }

          Comment


          • #6
            vào đây mà tham khảo
            C:\Program Files\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for 8051\8051 with LCD1602 LCD controller

            Comment


            • #7
              Nguyên văn bởi aphu Xem bài viết
              Ông in cái bản vẽ của ông ra thành file pdf, nhiều người coi được mới giúp được cho ông, ai ở không đâu mà đi cài phần mềm rồi coi cho ông mà giúp ông được.
              diễn đàn này chắc tế mấy pác cao thủ chắc còn cóc ké thì quăng sang 1 bên

              Comment


              • #8
                Định trả lời cho bạn nhưng mà thái độ của bạn như vậy, còn định tế sống người khác thì thánh mới giúp bạn nỗi.

                Comment


                • #9
                  Nguyên văn bởi thanhnha220 Xem bài viết
                  diễn đàn này chắc tế mấy pác cao thủ chắc còn cóc ké thì quăng sang 1 bên
                  CODE không sai.
                  Chân RS và chân RW trên mạch bị dính với nhau...do dùng Label không cẩn thận
                  p/s:Bạn nên rút kinh nghiệm khi vẽ mạch đừng dùng nhiều Label như vậy, vừa xấu lại khó kiểm soát.
                  Hôm nay trời nắng chang chang.
                  Mèo con đi học chẳng mang thứ gì.
                  Chỉ mang một cái bút chì.
                  Và mang một mẩu bánh mì con con.

                  Comment


                  • #10
                    Nguyên văn bởi thanhnha220 Xem bài viết
                    diễn đàn này chắc tế mấy pác cao thủ chắc còn cóc ké thì quăng sang 1 bên
                    không biết thì hỏi, muốn giỏi phải học. nhưng không biết mà có thái độ không tốt thì làm sao ai giúp nhiệt tình cho bạn, bạn cứ nghĩ là mình không chịu khó giải quyết đựoc thì cứ lên mạng là phải có người trả lời giải quyết cho bạn ngay à. thật là thái độ làm việc như thế thì không chủ động chút nào cả.
                    bạn đừng phật ý nhé !
                    chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
                    Everything should be made as simple as possible, but not simpler

                    Comment


                    • #11
                      Nguyên văn bởi daohuytien Xem bài viết
                      không biết thì hỏi, muốn giỏi phải học. nhưng không biết mà có thái độ không tốt thì làm sao ai giúp nhiệt tình cho bạn, bạn cứ nghĩ là mình không chịu khó giải quyết đựoc thì cứ lên mạng là phải có người trả lời giải quyết cho bạn ngay à. thật là thái độ làm việc như thế thì không chủ động chút nào cả.
                      bạn đừng phật ý nhé !
                      Thôi mà...Dù sao bạn ấy cũng có thành ý hỏi, đưa ra vấn đề đến mấy lần...Chắc sợ câu hỏi bị chìm vào quên lãng nên mới PAM ầm ầm vậy.
                      Nhìn Code mình biết đây không phải là người lần đầu chơi với LCD, chắc bị em nào đá nên lú thôi...
                      Bỏ thời gian căng mắt giúp người ta tí... cũng chẳng sao
                      Hôm nay trời nắng chang chang.
                      Mèo con đi học chẳng mang thứ gì.
                      Chỉ mang một cái bút chì.
                      Và mang một mẩu bánh mì con con.

                      Comment


                      • #12
                        mất mấy ngày rùi mà chưa xong nên có phần cáu gắt tìm hoài hông ra lỗi lần sau mình sẽ phát ngôn vừa phải mong anh chị em bớt chút thời gian quý bàu giúp min với tại pam kiểu nhẹ nhàng không gây được ấn tượng chả ai thèm đọc hết pam dữ dằng mới có người tham gia

                        Comment


                        • #13
                          Nguyên văn bởi Acxen_lupine Xem bài viết
                          CODE không sai.
                          Chân RS và chân RW trên mạch bị dính với nhau...do dùng Label không cẩn thận
                          p/s:Bạn nên rút kinh nghiệm khi vẽ mạch đừng dùng nhiều Label như vậy, vừa xấu lại khó kiểm soát.
                          bó tay mình nối trực tiếp mà nó củng hông chạy là sao chứ

                          Comment


                          • #14
                            Nguyên văn bởi Acxen_lupine Xem bài viết
                            CODE không sai.
                            Chân RS và chân RW trên mạch bị dính với nhau...do dùng Label không cẩn thận
                            p/s:Bạn nên rút kinh nghiệm khi vẽ mạch đừng dùng nhiều Label như vậy, vừa xấu lại khó kiểm soát.
                            bó tay mình nối trực tiếp mà nó củng hông chạy là sao chứ

                            Comment


                            • #15
                              Nguyên văn bởi thanhnha220 Xem bài viết
                              bó tay mình nối trực tiếp mà nó củng hông chạy là sao chứ
                              Mạch của bạn hai cái Label RS và RW phía VDK bị đặt trùng cho 1 dây nên 2 đường này chập nhau.
                              Mình đã thử: sửa lại mạch, copy code ở bài #5, dịch, chạy ngon: LCD hiện ra chữ 'a'.
                              Last edited by Acxen_lupine; 06-03-2013, 12:51.
                              Hôm nay trời nắng chang chang.
                              Mèo con đi học chẳng mang thứ gì.
                              Chỉ mang một cái bút chì.
                              Và mang một mẩu bánh mì con con.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X