Thông báo

Collapse
No announcement yet.

các huynh giải thích giúp em lệnh khai báo này với!!

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

  • các huynh giải thích giúp em lệnh khai báo này với!!

    -em kg hiểu char buf[33] là khai báo cho cái gì nữa?
    -Nhân tiện cho em hỏi em có giá trị một biến kiểu int làm sao em cho nó hiển thị ra LCD với dạng số được?
    các huynh giúp em với!!!! chia sẻ kinh nghiệm giúp em!!!thank nhiều

  • #2
    Nguyên văn bởi bijusi@ Xem bài viết
    -em kg hiểu char buf[33] là khai báo cho cái gì nữa?
    -Nhân tiện cho em hỏi em có giá trị một biến kiểu int làm sao em cho nó hiển thị ra LCD với dạng số được?
    các huynh giúp em với!!!! chia sẻ kinh nghiệm giúp em!!!thank nhiều
    Mình cũng chưa rõ lắm về khai báo " char buf[33]", nhưng theo mình đoán thì đấy là khai báo mảng đệm cho LCD, dữ liệu hiển thị được đưa vào mảng trước khi hiển thị. Bác nào có thể cắt nghĩa cho em thì tốt quá!

    Để hiện thị số int lên LCD có rất nhiều cách. Ở đây mình sẽ trình bày 1 cách khá dễ hiểu. Giả sử bạn cần hiển thị số 123 lên LCD:
    1. Chia 123 cho 100=>lấy được số 1.
    2. Hiển thị "1" lên lcd bằng cách: char a=1+0x30;
    lcd_putchar(a);
    3. làm tương tự cho các số 2,3.

    Comment


    • #3
      char buf[33]: khai báo một mảng có tên là buf kiểu char và có 33 phần tử.

      Comment


      • #4
        cái này bác chịu khó tìm sẽ thấy em có post.
        Câu khai báo của bác có lẽ trong đoạn code để hiển thị số lên màn lcd.
        khi đó người ta sử dụng hàm định sẵn sprintf để để chuyển giá trị từ dạng số ra các ký tự và ghi vào mảng buf[33],
        ví dụ:

        Code:
        char buf[33]; 
        unsigned int temp; 
        temp=100;    
        sprintf(buf,"TEMP: %d\xdfC",temp);
              lcd_gotoxy(3,0);           
              lcd_puts(buf);
        câu lệnh như trên sẽ ghi ra màn LCD " TEMP: 100°C "

        *** Thành viên không biết gì về điện ***

        Comment


        • #5
          Úi cha mẹ ơi. Lập trình C cho VDK đương nhiên là gồm 2 vấn đề: lập trình C và VDK. Bây giờ bạn còn chưa biết lập trình C mà đã đòi lập trình C cho VDK thì khác gì chưa học bò đã đòi học chạy. Nghiêm túc, bạn ko nghiên cứu một cách cơ bản thì suốt đời bạn chỉ đi hỏi những câu ngớ ngẩn thế này thôi. Lúc đó đừng vào kêu sao em hỏi ko ai trả lời.
          AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
          Xem thêm tại Online Store ---> Click here
          Mob: 0982.083.106

          Comment


          • #6
            Nguyên văn bởi AVR_VN Xem bài viết
            Code:
            char buf[33]; 
            unsigned int temp; 
            temp=100;    
            sprintf(buf,"TEMP: %d\xdfC",temp);
                  lcd_gotoxy(3,0);           
                  lcd_puts(buf);
            câu lệnh như trên sẽ ghi ra màn LCD " TEMP: 100°C "

            Mình đã làm thử câu lệnh này rồi. Có một số vấn đề mình chưa được rõ lắm đó là:

            1. Kích thước của mảng có ảnh hưởng đến kết quả hiển thị trên LCD ko? Vì khi mình dùng hàm này hiện kết quả của phép chia số thực thì với kích thước khác nhau của mảng sẽ cho kết quả khác nhau.=>>>Chưa hiểu vai trò của biến mảng này???

            2.Ở chỗ %d, nếu ta khai báo là %03f thì sẽ có 3 chữ số sau dấu phảy được hiển thị đúng không?

            Comment


            • #7
              @: vulongdt10
              trả lời câu 1, bạn khai báo mảng lớn chút để chống tràn là ok mà,... vai trò của mảng thì bạn đọc lại phần xuất nhập trong lập trình C, ở đây thì nó đóng vai trò là buffer -> nó thế hehe
              trả lời câu 2, đúng rồi: %.3f nhưng mà nếu dùng số thực chú ý set lại trong phần: project > configue > C compiler > [S]printf Features > Float,Width, precision
              ok !
              *** Thành viên không biết gì về điện ***

              Comment


              • #8
                Nguyên văn bởi vulongdt10 Xem bài viết

                2.Ở chỗ %d, nếu ta khai báo là %03f thì sẽ có 3 chữ số sau dấu phảy được hiển thị đúng không?
                Sai. Xem help của hàm này trong CAVR nhé.
                AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                Xem thêm tại Online Store ---> Click here
                Mob: 0982.083.106

                Comment


                • #9
                  To AVR_VN: Mảng này là một biến đệm. Cái này mình cũng đã nghĩ như thế rồi. Bạn cho mình hỏi, rõ ràng biến đệm này không được sử dụng cho một phép toán nào, vậy tại sao lại có thể tràn bit?

                  Mình đã thử hiện thị dấu phảy động như bạn nói. Khi thay %03f và %05f đều cho ra màn LCD 5 chữ số đằng sau dấu phảy? Chả hiểu gì cả!

                  Bác VNarmy. Em cũng đã đọc lướt qua phần help của CAV rồi. Nhưng mà hình như là ko có chỗ nói về vấn đề này hay sao ấy. Để em đọc lại cái nữa đã. Mà bác có thể trích luôn hộ em chỗ nói về vấn đề này lên đây được ko? Thanks bác.

                  Comment


                  • #10
                    mình chỉ ghi kiểu %+.3f chứ chưa %+03f bao giờ
                    *** Thành viên không biết gì về điện ***

                    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 nay, 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 nay, 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ì...
                      Hôm qua, 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...
                      Hôm qua, 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...
                      Hôm qua, 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...
                      Hôm qua, 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