Thông báo

Collapse
No announcement yet.

Lập trình AVR bằng CodeVisionAVR C Compiler cho người mới bắt đầu

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

  • #31
    Nguyên văn bởi popeye Xem bài viết
    với lại trong proteus , để một mạch vi điểu khiển hoạt động thì phải nối như thế nào ,
    em dùng một con thạch anh với 2 con tụ , với mạch reset (con at8 là reset ở mưc thấp)
    lối ra PD5 em cho một con led với 1 con trở 500R rồi nối xuống đất , vậy có được không

    thế này ko được rồi , dòng ra của con avr nhỏ quá , ko sáng được led ,
    mong các bác giải đáp sớm cho em
    Thật ra trong Proteus không phân biệt dòng nhỏ hay lớn, chỉ cần nối led qua R rồi nối xuống đất, khi Pin lên cao thì nó sáng thôi.

    Thậm chí khi bạn mô phỏng cho 89C51 cũng vậy, trên thực tế thì nó không sáng (phải có bộ đệm hoặc nối lên nguồn ), nhưng trong Proteus thì OK.

    Nhưng các bạn chú ý, để quét các led đơn hoặc 7 Seg Led thì nên có nối thêm điện trở, nếu không thì nó không chạy đâu .

    Còn nữa, khi mô phỏng cho 8051, AVR thì không cần thạch anh, không cần nguồn, không cần reset (nếu cần thì tắt rồi chạy lại thôi . Riêng với con ARM thì phải có những cái này.
    Still waters run deep.

    Comment


    • #32
      Nguyên văn bởi popeye Xem bài viết
      các bác ơi bây giờ em muốn phát xung dùng con at8 , em định làm như led , sau đó cho xung đó quay ngược vào vi điều khiển để đếm xung , tần số xung có thể thay đổi được ....

      hay dung timer/couter bằng cách set cách thanh ghi , bác nào viết cho em đoạn code này với ...
      Thân gởi bạn Popeye (tui cũng rất thích nhân vật hoạt hình này )

      Không biết có phải tôi nhiều chuyện không, nhưng có vẻ như bạn nên học cách viết chương trình trước.

      Khi bạn có khái niệm chung về cách viết ct cho MCU rồi thì cho dù dùng con MCU nào thì cũng không là vấn đề lớn lao cả.

      Để học cách viết chương trình thì tốt nhất là bạn nên ĐỌC SÁCH.

      Tôi mạo muội recommend cho bạn cuốn sách Embedded C của tác giả Michael-J-Pont. Tuy nội dung dành cho 8051, nhưng tư tưởng thì chung cho MCU.

      Chúc bạn mau tiến bộ.
      Still waters run deep.

      Comment


      • #33
        Nguyên văn bởi haquang Xem bài viết
        Chào các anh, em có 2 vấn đề với codevisionAVR, mong các anh giải đáp giúp:
        1. Khi dùng codevisionAVR để lập trình AVR hiển thị LCD, em đã thấy các anh làm nhiều ví dụ nhưng chưa thấy dùng hàm putchar. Em đã đọc help và thử làm theo nhưng khi mô phỏng trên proteus thì hoàn toàn không thấy hiển thị.Em muốn viết 1 hàm để hiển thị 1 số ra LCD nên em nghĩ là dùng hàm này là đúng, không biết có phải em hiểu sai gì không????
        2. CodevisionAVR có hỗ trợ tổ chức dữ liệu kiểu mảng không? Em không thấy dạng mảng trong các kiểu dữ liệu của nó???
        3. Em định nghĩa hơn 10 biến kiểu bit thì nó báo là quá nhiều biến. Vậy có cách nào khác không ạ???
        Câu hỏi 1: Lâu rồi không xài nên quên. Để xem lại đã.

        Câu hỏi 2: Trình dịch C nào, thậm chí ngôn ngữ nào cũng vậy, cũng có hỗ trợ kiểu mảng cả bạn ạ. Mảng được xem là biến cấu trúc, nên bạn không thể tìm thấy nó ở cùng chung với mục "kiểu dữ liệu" rồi. Khai báo nó đơn giản theo kiểu truyền thống thôi.

        Câu hỏi 3: CVAVR không cho phép bạn khai báo quá 8 bit địa phương. Nhưng toàn cục thì có thể.

        CV dùng R2 - R14 cho các biến kiểu bit. Muốn sử dụng bao nhiêu thì bạn thay đổi ở mục Bit Variables Size. Từ Project - Configure Proj, vào tab C Compiler.

        Có một cách chữa cháy là bạn thêm chữ static vào đằng trước khai báo bit , hơi cù lần, nhưng chạy tốt.

        Nhưng tôi tự hỏi không biết bạn cần gì nhiều biến kiểu bit đến vậy ???
        Still waters run deep.

        Comment


        • #34
          thanks cac ban giup do ve lien ket LCD voi AVR. ve nha minh thu ngay.

          Comment


          • #35
            Mình cũng đang muốn bắt đầu bằng C với AVR.Nói chung là rất muốn học ngay để tiến bộ hơn.
            Các bác nào có tài liệu cụ thể về đề tài này làm ơn cho mình nhé.
            Mình rất muốn học hỏi về ngôn ngữ tiện lợi như C.
            Mong nhận được sự giúp đỡ của các bác.
            Thanks nhiều

            Comment


            • #36
              Nguyên văn bởi tc8051 Xem bài viết
              Mình cũng đang muốn bắt đầu bằng C với AVR.Nói chung là rất muốn học ngay để tiến bộ hơn.
              Các bác nào có tài liệu cụ thể về đề tài này làm ơn cho mình nhé.
              Mình rất muốn học hỏi về ngôn ngữ tiện lợi như C.
              Mong nhận được sự giúp đỡ của các bác.
              Thanks nhiều
              Chắc bạn cũng 8051 rồi, chuyển qua AVR cũng dễ thôi. Thử đọc tài liệu mình gửi kèm nhé! (Tải trên mạng thui).
              Attached Files
              Nỏ biết chữ mần răng ký được??!! Thôi nhé.

              Comment


              • #37
                mình liên kết LCD(4x20) với AVR(ATMEGA32L), sử dụng Codevision, nhưng không thành công. mình sử dụng hàm các bạn đã sử dụng. lcd_putsf(" ") không hiển thị được trên lcd. mình không biết tại sao. Help me!!!!!!!!!!!!!!!!!!!

                Comment


                • #38
                  Nguyên văn bởi tanxuyenhg Xem bài viết
                  mình liên kết LCD(4x20) với AVR(ATMEGA32L), sử dụng Codevision, nhưng không thành công. mình sử dụng hàm các bạn đã sử dụng. lcd_putsf(" ") không hiển thị được trên lcd. mình không biết tại sao. Help me!!!!!!!!!!!!!!!!!!!


                  Bạn nối LCD với AVR bằng PORTC ah, nếu bằng PORTC thì bạn phải chú ý tới JTAG của mega32. Nếu PORT khác mà ko chạy được thì bạn hãy post code lên mình giúp.
                  Chúc thành công!

                  Comment


                  • #39
                    Cảm ơn anh thangktvta nhiều.
                    File anh gửi sẽ rất có ít cho người mới.
                    Anh có file nói về ngôn ngữ C dùng cho con avr ko vậy?Sặn tiện giúp cho chót luôn nhé anh.Em thích có tài liệu nhiều để học cơ bản trước.
                    Thú thật là e sử dụng con 89 với asm.Lập trình cũng khá gian nan nên đang định chuyển sang con avr với C đây.
                    Mong nhận được sự giúp đỡ của các pro nhé.
                    Chúc vui vẻ!

                    Comment


                    • #40
                      Nguyên văn bởi thangcftd Xem bài viết



                      Bạn nối LCD với AVR bằng PORTC ah, nếu bằng PORTC thì bạn phải chú ý tới JTAG của mega32. Nếu PORT khác mà ko chạy được thì bạn hãy post code lên mình giúp.
                      Chúc thành công!
                      **********************************
                      minh đã kết nối PORTC với LCD. theo ý kiến bạn đã gởi cho mình. mình kết nối PORTA với AVR, nhưng kết quả vẩn khôg hiển thị được. cách Supply power LCD mình dựa vào datasheet của nó. ban giúp mình với!!!!!!!!

                      Comment


                      • #41
                        mình cảm thấy rất khó khăn khi liên kết LCD(4x20) với AVR(mega32L). gần như mình không thể nào làm được. mong sự giúp đỡ của các bạn.!!!!!:

                        Comment


                        • #42
                          Nguyên văn bởi tanxuyenhg Xem bài viết
                          **********************************
                          minh đã kết nối PORTC với LCD. theo ý kiến bạn đã gởi cho mình. mình kết nối PORTA với AVR, nhưng kết quả vẩn khôg hiển thị được. cách Supply power LCD mình dựa vào datasheet của nó. ban giúp mình với!!!!!!!!
                          bạn xem nhé

                          code
                          void main(void)
                          {
                          lcd_init(16);
                          lcd_gotoxy(0,0);
                          lcd_putsf("Hello Tanxuyenhg");

                          while (1)
                          {
                          // Place your code here

                          };
                          }
                          Attached Files

                          Comment


                          • #43
                            Nguyên văn bởi thangcftd Xem bài viết
                            bạn xem nhé

                            code
                            void main(void)
                            {
                            lcd_init(16);
                            lcd_gotoxy(0,0);
                            lcd_putsf("Hello Tanxuyenhg");

                            while (1)
                            {
                            // Place your code here

                            };
                            }
                            minh đang sử dụng LCD 4x20 mã hiệu YM2004B. các chân đều giống như LCD bạn đã gởi cho mình. nhưng nó vẫn không hiển thị được. có khi nào LCD của mình không đúng chủng loại không?

                            Comment


                            • #44
                              Dùng lcd 4x20 thì kh.tạo lcd_init(20) mới đúng chứ bạn, mình dùng nó rồi, thấy bình thường mà.
                              !e

                              Comment


                              • #45
                                Chân cẳng LCD của bạn là loại thông dụng, giống như loại bán nhiều ngoài chợ. Bạn tham khảo file mình gửi xem có được gì không? Kiểm tra mạch cẩn thận một lần nữa trước khi cắm nguồn. Bạn phải TEST xem AVR của bạn đã chạy chưa đã bằng cách viết một chương trình đơn giản sử dụng một cổng bật tắt một LED.
                                - Nếu sử dụng LCD2004 mà cấu hình lcd_init(16) thì nó vẫn chạy, chỉ bị sai vị trí hiển thị trên LCD thôi.
                                Attached Files

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X