Thông báo

Collapse
No announcement yet.

Tập lập trình LCD 2x16 trên AVR vô đây!

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

  • Tập lập trình LCD 2x16 trên AVR vô đây!

    Chẳng hạn dùng con Atmega32 thì như vầy
    Đầu tiên khai báo

    #include<lcd.h>
    #include<mega32.h>
    #asm
    .equ __lcd_port=0x15 //khai báo port dùng LCD ở đây là portC, nếu portD, B là 12, 18
    #endasm
    Void main(void)
    {
    lcd_init(16); //khởi tạo LCD
    lcd_clear();
    lcd_gotoxy(0,0);
    lcd_putsf("welcome");
    }

  • #2
    Nguyên văn bởi bijusi@ Xem bài viết
    Chẳng hạn dùng con Atmega32 thì như vầy
    Đầu tiên khai báo

    #include<lcd.h>
    #include<mega32.h>
    #asm
    .equ __lcd_port=0x15 //khai báo port dùng LCD ở đây là portC, nếu portD, B là 12, 18
    #endasm
    Void main(void)
    {
    lcd_init(16); //khởi tạo LCD
    lcd_clear();
    lcd_gotoxy(0,0);
    lcd_putsf("welcome");
    }
    Con nào mà chẳng như nhau.Quan trọng là cái thư viện LCD bạn viết như thế nào thôi.Cái code của bạn là cách sài thư viện LCD rồi.Mà thư viện thì mỗi người mỗi khác mà bạn.
    The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.

    Comment


    • #3
      mình chẳng có viết thư viện LCD gì cả, mua về xài thôi, cứ viết như thế trong codevision là dùng được, bạn chưa xài lần nào hả?

      Comment


      • #4
        Ôi trời, cãi nhau!
        Thanks for chia sẻ.
        Cũ với người này nhưng sẽ mới với người kia thôi.
        Nguy hiểm của tuổi già là cháy nổ gì chả có phản ứng!

        Comment


        • #5
          Nguyên văn bởi bijusi@ Xem bài viết
          mình chẳng có viết thư viện LCD gì cả, mua về xài thôi, cứ viết như thế trong codevision là dùng được, bạn chưa xài lần nào hả?
          Lúc trước mình có làm đồ án viết thư viện LCD.Viết cho tất cả các con VDK đều sài được.Nếu cần mình send cho. Cái #include<lcd.h> là include thư viện LCD đó bạn à.Mình nghĩ bạn nên tự viết cái thư viện này sẽ hay hơn.
          The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.

          Comment


          • #6
            Mình biết nó là thư viện, nhưngn trong codevision nó hỗ trợ hết, chẳng cần làm gì hết, chỉ ghi như vậy thôi, chẳng lẽ bây giờ người ta tạo sẵn kg thèm sài, lại phải tạo mới hay sao, vậy có cần viết lại phần mềm hỗ trợ lập trình lun kg. Chịu tội!

            Comment


            • #7
              16x2 có cụm chân điều khiển, trong đó có chân RS không hiểu có thừa không khi đã có chân RW?
              chu trình hiển thị của nó là:
              đưa chân ghi lên cao
              đưa data lên bus
              cho chân E xuống thấp .

              Comment


              • #8
                Nguyên văn bởi bijusi@ Xem bài viết
                Mình biết nó là thư viện, nhưngn trong codevision nó hỗ trợ hết, chẳng cần làm gì hết, chỉ ghi như vậy thôi, chẳng lẽ bây giờ người ta tạo sẵn kg thèm sài, lại phải tạo mới hay sao, vậy có cần viết lại phần mềm hỗ trợ lập trình lun kg. Chịu tội!
                Mình chỉ sài Notepadd++. .Tại vì còn đi học Đại học nên mọi thứ phải tự viết mới thú.Với lại thư viện của mình nên mình có thể dùng những thứ mình cần thôi mà bạn.Dân IT của bọn mình chỉ cần cái Notepad++ là làm được mọi chuyện.
                The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.

                Comment


                • #9
                  anh chénut xử lí cái này thế nào:

                  kết nối lcd 16x2 với avr 8bit.
                  thủ tục để:
                  đưa con trỏ về vị trí đầu tiên
                  ghi da ta vào lcd.
                  con trỏ dịch phải từng bậc.
                  con trỏ nhấp nháy.
                  font chữ 5x7.
                  --------------------

                  tôi chưa hiểu dân IT làm cho lcd như thế nào.

                  http://www.youtube.com/watch?v=nZO3b-3phSs

                  Comment


                  • #10
                    ui trùi! dân IT mà đọ với dân AT một cái project kg chỉ đơn giản chỉ chơi với con LCD, mà còn nhìu em khác nữa, với lại kg chỉ xử lí vài cái đơn giản mà còn phải làm cho đối tượng điều khiển thật thông minh. Cứ chơi như thế kg biết bộ nhớ con AVR nào nhận chương trình cho nổi!

                    Comment


                    • #11
                      share với anh em một số vần đề về LCD này, tôi thấy cũng khá rõ ràng. anh em nào thích thì góp ý đôi chút cho vui.

                      có sẵn một bảng địa chỉ về từng vị trí. LCD có một số chân Vcc - mass- Vee ( Vcc- 5v, Vee- chỉnh độ sáng từ 0...1.5v). cụm điều khiển có RS, RW, E....hình như 10 chân trên Lcd.

                      công việc cơ bản:
                      ghi lệnh cho lcd sau đó ghi dữ liệu rồi đọc dữ liệu từ nó. việc ghi lệnh phân biệt với ghi dữ liệu qua bit RS 0 hay 1. bằng lệnh sbi hay cbi.
                      lênh như nhập một chuỗi 8bit vào một thanh ghi tạm thời rồi chuyển vào port điều khiển ( ddr...là ff > output). trong đó có các vị trí là 1 chẳng hạn 0b00011100, các ô 1 đóng vai trò định cho việc chọn font 5x7 hay 5x10, con trỏ nháy và nhảy về trước.
                      các thủ tục ghi lệnh, ghi data, chờ xem cờ bận, đưa con trỏ về đầu hàng.... được làm riêng biệt và cứ thế rcall.
                      chu kì ghi da ta cơ bản là:
                      rw = 0
                      rs =1
                      nạp vào port xuất, định cấu hình out/in cho port này.
                      đưa E lên cao
                      chờ
                      đưa data lên bus qua thanh ghi tạm
                      hạ E xuống.....

                      mời ai tiếp đi...

                      http://www.youtube.com/watch?v=CbU-jeAPT58
                      Last edited by VNarmy; 16-11-2008, 12:54. Lý do: Ko quá khích

                      Comment


                      • #12
                        Nguyên văn bởi bijusi@ Xem bài viết
                        ui trùi! dân IT mà đọ với dân AT một cái project kg chỉ đơn giản chỉ chơi với con LCD, mà còn nhìu em khác nữa, với lại kg chỉ xử lí vài cái đơn giản mà còn phải làm cho đối tượng điều khiển thật thông minh. Cứ chơi như thế kg biết bộ nhớ con AVR nào nhận chương trình cho nổi!
                        Cái LCD là làm mấy cái đồ án ở trường mà bạn.Còn trong Robocon thì LCD để bọn mình Debug thôi.Còn chuyện bạn lo con AVR không đủ bộ nhớ vì mình tự tay viết thư viện là không đúng rồi.Vì khi bạn #include một thư viện thì khi biên dịch compiler nó tự động load những thư viện đó vào luôn -> cái nào cũng phải load. Đây là nơi để trao đổi ý kiến thôi mà.Bạn có vẻ cay cú quá.
                        The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.

                        Comment


                        • #13
                          để hiển thị một giá trị data (adc_data) chẳng hạn em làm thế này:
                          char lcd_buffer[33];
                          unsigned int data0;
                          data0=adc_data[0];
                          sprintf(lcd_buffer,"Gia tri la: %d",data0);
                          lcd_gotoxy(0,0);
                          lcd_puts(lcd_buffer);
                          delay_ms(50);
                          lcd_clear();

                          hôm trước anh VNarmy cho em em làm để hiện thị giá trị adc0 lên lcd chạy tốt lắm nhưng em chẳng hiểu j cả
                          char lcd_buffer[33];để làm j?
                          tại sao lại là [33]?
                          sao em dùng đoạn code như thế này:
                          lcd_gotoxy(0,0);
                          lcd_puts(adc_data(0));
                          delay_ms(50);
                          lcd_clear();
                          lại không chạy được nhỉ?
                          các anh cùng bàn luận cho em vỡ!
                          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


                          • #14
                            char lcd_buffer[33]; // khai báo biến mảng char 33 phần tử
                            unsigned int data0;
                            data0=adc_data[0];
                            sprintf(lcd_buffer,"Gia tri la: %d",data0); // chuyển giá trị int của data0 sang giá trị text
                            lcd_gotoxy(0,0);
                            lcd_puts(lcd_buffer);
                            delay_ms(50);
                            lcd_clear();

                            char lcd_buffer[33] ====> theo mình đây là biến mảng 33 phần tử dùng để lưu giá trị chuyển đổi từ data0 trong cái hàm này sprintf(lcd_buffer,"Gia tri la: %d",data0); với %d là kiểu chuyển đổi từ int sang text (vì lcd chỉ hiện thị được text). Nếu thay đổi số 33 này thành số khác cũng dc chẳng hạn 100.
                            Hàm lcd_puts() không dùng để hiện thị trực tiếp số int được.

                            Comment


                            • #15
                              Nếu dùng thư việc có sẵn của CV thì chúng ta chỉ có thể đấu LCD vào một Port cố định của LCD mà thôi. Và chúng ta cũng chẳng bao giờ hiểu được nguyên lý, hoạt động và cách điều khiển của LCD cả.
                              Còn nếu dùng thư viện tự viết thì không nhất thiết phải nối LCD vào một PORT mà các chân điều khiển có thể nối vào các chân của PORT khác --> Linh hoạt hơn.
                              Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                              Comment

                              Về tác giả

                              Collapse

                              bijusi@ Tìm hiểu thêm về bijusi@

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

                              Collapse

                              • tuyennhan
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi tuyennhan
                                Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                                Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                                Hôm qua, 07:44
                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Cám ơn những lời chúc tốt đẹp của em.

                                Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                                Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                                Hôm qua, 02:00
                              • nhathung1101
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi nhathung1101
                                Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                                Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                                Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                                22-02-2025, 22:18
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                22-02-2025, 14:51
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                22-02-2025, 14:39
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                22-02-2025, 14:28
                              • bqviet
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi bqviet
                                Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                21-02-2025, 20:26
                              • mèomướp
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi mèomướp
                                Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                21-02-2025, 12:32
                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                20-02-2025, 21:31
                              • bqviet
                                Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                bởi bqviet
                                Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                20-02-2025, 17:22
                              Đang tải...
                              X