Thông báo

Collapse
No announcement yet.

Code C cho LCD!!!

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

  • Code C cho LCD!!!

    Hi all! Mình đang nghiên cứu LCD dùng C. Có bạn nào có Code C giao tiếp LCD thì share cho mình và mọi người học hỏi với. Trước kia mình có, viết chương trình giao tiếp với LCD dùng ASM và chạy cũng tương đối. Bạn nào có kinh nghiệm hoặc có Code C về LCD thì giúp mình nhé. Thanks all!

  • #2
    Nếu bạn xài AVR thì code có sẵn hết rồi
    Dưới đây là VD nè :
    #include <mega16.h>
    #include <delay.h>

    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x15 ;PORTC //mach phan cung vao port C , giao tiep 4bit cao LCD
    #endasm
    #include <lcd.h>

    void main(void)
    {
    // LCD module initialization
    lcd_init(16);
    lcd_gotoxy(0,0);
    lcd_putsf("Wellcome to test")
    .........
    }

    Comment


    • #3
      Vậy cho con 89C51 thì sao hả đại ca ơi
      Nhưng mà mỗi trình biên dịch lại có các thư viện khác nhau, làm sao mà viết được bây giờ

      Comment


      • #4
        Em cũng xài CodeVisionAVR hehe để hiển thị thì dễ thật. Nhưng mà em vẫn chưa hiểu hết các lệnh nó có ý nghĩa gì.
        Em muốn làm cho hiển thị chữ chạy từ trái qua phải VD : Dòng chữ : " Viet Nam "
        Với chữ cái đầu tiên được hiện là chữ "m" rồi đến chữ "a" và cứ như thế chữ chạy cho tới chữ cuối cùng "V" khi hết dòng 01 chẳng hạn. Bác nào làm được chỉ em với.

        Comment


        • #5
          Nguyên văn bởi GS_Nobita Xem bài viết
          Em cũng xài CodeVisionAVR hehe để hiển thị thì dễ thật. Nhưng mà em vẫn chưa hiểu hết các lệnh nó có ý nghĩa gì.
          Em muốn làm cho hiển thị chữ chạy từ trái qua phải VD : Dòng chữ : " Viet Nam "
          Với chữ cái đầu tiên được hiện là chữ "m" rồi đến chữ "a" và cứ như thế chữ chạy cho tới chữ cuối cùng "V" khi hết dòng 01 chẳng hạn. Bác nào làm được chỉ em với.
          Bác giở Help trong CodeVision ra mà nghiên cứu các hàm của LCD, đọc kĩ sẽ làm được hết. Còn vấn đề chữ chạy, chử nhảy hay cái của nợ gì đó chỉ là vấn đề lập trình thôi, không liên quan gì đến LCD cả. hehe.
          Nỏ biết chữ mần răng ký được??!! Thôi nhé.

          Comment


          • #6
            Đúng là Codevision chỉ hỗ trợ các hàm xuất,hiển thị LCD,nhảy tới các tọa độ,xóa màn hình,các hàm chuyển đổi trực tiếp từ số thập phân ra mã của LCD( mã LCD = mã thập phân của ký tự cần hiển thị + 48 đơn vị )
            Bạn khéo léo kết hợp các hàm trên thì muốn hiển thị gì mà chẳng được, còn nếu lười nghĩ thì đến tài thánh cũng kô thể viết được!


            Hầu hết các hàm của Codevesion AVR là viết bằng mã ASsem, bạn có thể tìm thấy trong thư mục cài đặt của Codevesion AVR, nếu bạn muốn tìm hiểu nó!

            Comment


            • #7
              cho em hỏi cai màn hình dell 17 loại dài ,sao back chay một tý rồi tắt ah
              các anh có cách gì giúp em với

              Comment


              • #8
                Nguyên văn bởi lahodu Xem bài viết
                Hi all! Mình đang nghiên cứu LCD dùng C. Có bạn nào có Code C giao tiếp LCD thì share cho mình và mọi người học hỏi với. Trước kia mình có, viết chương trình giao tiếp với LCD dùng ASM và chạy cũng tương đối. Bạn nào có kinh nghiệm hoặc có Code C về LCD thì giúp mình nhé. Thanks all!
                nếu bạn dùng 89 thì có thể tham khảo tại đây nha:
                http://08tdt.com/forum/showthread.php?t=20&page=2
                chúc thành công

                Comment


                • #9
                  Nguyên văn bởi GS_Nobita Xem bài viết
                  Em cũng xài CodeVisionAVR hehe để hiển thị thì dễ thật. Nhưng mà em vẫn chưa hiểu hết các lệnh nó có ý nghĩa gì.
                  Em muốn làm cho hiển thị chữ chạy từ trái qua phải VD : Dòng chữ : " Viet Nam "
                  Với chữ cái đầu tiên được hiện là chữ "m" rồi đến chữ "a" và cứ như thế chữ chạy cho tới chữ cuối cùng "V" khi hết dòng 01 chẳng hạn. Bác nào làm được chỉ em với.
                  để chạy chữ đc thì bạn phải viết từ từ cho một kí tự "m" hiển thị trước rồi xóa nó đi với 1 khoảng delay(tốc độ dịch chữ ấy) rồi sau đó cho hiển thị 2 kí tự "am" rồi lại xóa rồi lại delay, cứ như thế sẽ hiển thị được chữ chạy mà thôi, đến khi hiển thị đủ rồi thì bạn chỉ cần tăng vị trí con trỏ trước khi hiển thị chuổi "VietNam" là ok ngay. cái này mình làm rồi mà lúc đó mình viết cho con 89 dùng Keil.
                  hãy cố gắng dù vướn phải thất bại!!!!!!!!

                  Comment


                  • #10
                    Mình cũng đã dùng KeilC viết cho cho LCD bằng asm với AT89S52, về nguyên tắc hiển thị thì đúng như chipmickey nói. Tức là cho hiển thị dần dần từng ký tự một và để trễ một khoảng thời gian nhất định! Nhưng bạn nên nhớ chúng ta có hàm dịch phải & trái cơ mà, vậy thì việc cho chạy chữ thật hết sức đơn giản. Chỉ cần dịch toàn bộ hiển thị sang phải sau khi đặt vị trí con trỏ ở chỗ thích hợp là ta có được hình ảnh chữ "VietNam" trôi ngược.^__^
                    Bằng cách sử dụng một macro nhỏ, mình dùng hiển thị 1 chuỗi rất linh hoạt:


                    doc_chuoi macro string ;macro gửi dữ liệu tới LCD
                    irpc char, <string>
                    if nul 'char'
                    exitm
                    endif
                    mov a,#'char'
                    lcall hienthi_lcd
                    endm
                    endm


                    Sau đó khi cần hiển thị "Vietnam" ta chỉ cần gọi hàm: doc_chuoi<Vietnam>
                    Còn dịch trái phải thì biết rùi!

                    Comment


                    • #11
                      các anh ơi em dùng codevisionAVR viết cho mega8 kết nối chuẩn rồi mà tại sao chạy nó chỉ hiện ra một tràng lốm đốm jf đó vài giây rồi tắt phần cứng em nối như sau:
                      PORTD chíp--------------chân LCD
                      -----------------------------1-----GND
                      -----------------------------2-----VCC
                      -----------------------------3-----Biến trở điều chỉnh độ sáng
                      0----------------------------4
                      1----------------------------5
                      2----------------------------6
                      3
                      4----------------------------11
                      5----------------------------12
                      6----------------------------13
                      7----------------------------14
                      chương trình em viết chỉ đơn giản là hiển thị một chữ "happy new year"
                      vậy mà không biết tại sao, các anh xem giúp em nhé
                      Attached Files
                      Last edited by Le Thi Bich; 10-10-2008, 23:39.
                      Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                      Comment


                      • #12
                        các anh ơi em dùng codevisionAVR viết cho mega8 kết nối chuẩn rồi mà tại sao chạy nó chỉ hiện ra một tràng lốm đốm jf đó vài giây rồi tắt..............
                        chương trình em viết chỉ đơn giản là hiển thị một chữ "happy new year"
                        vậy mà không biết tại sao, các anh xem giúp em nhé
                        Bạn thử thêm một lệnh while xem sao nhé!
                        Code:
                        while (1)
                              {
                              // Place your code her
                              lcd_putsf("Happy new year");
                              while (1){};
                              };
                        }

                        Comment


                        • #13
                          Bạn có dùng Proteus giả lập không?
                          Attached Files

                          Comment


                          • #14
                            Nguyên văn bởi mrcuongcon Xem bài viết
                            Bạn có dùng Proteus giả lập không?
                            em mới học nên chưa biết cách mô phỏng anh ạ
                            Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                            Comment


                            • #15
                              Nguyên văn bởi mrcuongcon Xem bài viết
                              Bạn thử thêm một lệnh while xem sao nhé!
                              Code:
                              while (1)
                                    {
                                    // Place your code her
                                    lcd_putsf("Happy new year");
                                    while (1){};
                                    };
                              }
                              em làm như anh bảo thì nó chỉ hiện được chữ "Happy ne" thôi. em dùng LCD 16 cột một hàng
                              Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X