HƯỚNG DẪN LẬP TRÌNH KEIL C CHO 8051-[Chỉ dành post bài hướng dẫn]

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • vinhkim
    Thành viên mới
    • Oct 2006
    • 16

    #211
    xin chào các Bác trong diễn đàn .
    có Bác nào biết cách khởi động và dùng ngát timer2 của con 89s52 ?
    |

    Comment

    • dvnccbmacbt
      Thành viên chính thức
      • May 2007
      • 36

      #212
      Chào mọi người! Mọi người cho em hỏi lệnh nào là "quay trái ( rotate left) và "quay phải ( rotate right ) " trong keil C. em muốn quay trái thanh chứa ACC thì làm sao? Cảm ơn mọi người nhiều!

      Comment

      • sharps
        Thành viên mới
        • Oct 2006
        • 13

        #213
        cách nap cho vđk

        mình đã viết xong chương trình nhưng còn phần nạp thì không được, dù mình đã mạch nạp các file dịch từ các file ám thi ok nhung nạo các file hex dịch từ keilc thi không được

        Comment

        • VNarmy
          Moderator
          • Feb 2007
          • 1413

          #214
          Nguyên văn bởi dvnccbmacbt Xem bài viết
          Chào mọi người! Mọi người cho em hỏi lệnh nào là "quay trái ( rotate left) và "quay phải ( rotate right ) " trong keil C. em muốn quay trái thanh chứa ACC thì làm sao? Cảm ơn mọi người nhiều!
          Toán tử dịch trái trong C là << và dịch phải là >>. Còn với phép quay thì bạn có thể biến báo từ đó mà ra. Ví dụ như dùng toán tử | (OR).
          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

          • dvnccbmacbt
            Thành viên chính thức
            • May 2007
            • 36

            #215
            Anh VNarmy có thể cho em xin một cái code mẫu hay 1 ví dụ dơn giản được không? Em không rõ cú pháp lắm. Xài >> hay << không được! Cảm ơn anh trước.

            Comment

            • ngohaibac
              Moderator
              • Sep 2005
              • 600

              #216
              Chào bạn.

              Ví dụ: A = 0x01; //0000 0101

              Thì lệnh:
              Code:
              B =[B] A<<1[/B];   // B = [B]0000 1010 [/B], dịch sang trái 1 bit
              C = [B]A>>1;[/B]   // C = [B]0000 0010[/B] , dịch sang phải 1 bit
              Bạn có thể hiểu:
              Code:
              [latex] A>>i = A*2^{-i} [/latex]  //Toán tử dịch phải >>
              [latex] A<<i = A*2^{i} [/latex]   // Toán tử dich trái <<
              Bạn cần chú ý đến việc chuyển đổi kiểu dữ liệu nữa, dùng A>>i thì những bit thêm vào bit cao nhất sẽ là 0, và bit thấp bị dịch đi sẽ mất. Và A<<i thì tương tự. (Bạn xem ví dụ trên là hiểu).

              Chúc bạn thành công.
              Technical sale at WT Microelectronics S'pore
              Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
              Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

              Comment

              • VNarmy
                Moderator
                • Feb 2007
                • 1413

                #217
                Phép quay thì trong C ko có. Em có thể dùng inline để cài ASM vào hoặc viết đơn giản như sau:
                Code:
                unsigned char RotateRight(unsigned char A, i){
                unsigned char tmp1, tmp2;
                tmp1=A;
                A>>=i;
                tmp2=A;
                A=tmp1;
                A<<=(8-i);
                A|=tmp2;
                return(A);
                }
                Phép quay trái em có thể tự viết 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

                • kt3tuan
                  Thành viên mới
                  • Mar 2007
                  • 2

                  #218
                  Các bác cho em hỏi cai header của con 89s52 la ở file nào? em viết chương trình lấy header của 89X52, dịch ra file hex, nạp vào ok nhưng chạy không đúng. Mong các bác chỉ giúp. Cảm ơn rất nhiều!

                  Comment

                  • sharps
                    Thành viên mới
                    • Oct 2006
                    • 13

                    #219
                    bạn oi câu lệnh dừng nop của asm tương đương với bên c la gì vậy

                    Comment

                    • quoc_thaibk
                      Thành viên tích cực
                      • Mar 2006
                      • 766

                      #220
                      while(0);
                      nhưng số chu kì là nhiều hơn.

                      Sông dài, Thuyền lớn, Biển rộng bao la.
                      Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

                      Comment

                      • VNarmy
                        Moderator
                        • Feb 2007
                        • 1413

                        #221
                        Nguyên văn bởi sharps Xem bài viết
                        bạn oi câu lệnh dừng nop của asm tương đương với bên c la gì vậy
                        Lệnh trong C là: _nop_();
                        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

                        • natra2k2
                          Thành viên tích cực
                          • Oct 2005
                          • 481

                          #222
                          Nguyên văn bởi VNarmy Xem bài viết
                          Lệnh trong C là: _nop_();
                          Nếu dùng Keil C nhớ khai báo #include "intrins.h" mới dùng được hàm _nop_();

                          Comment

                          • natra2k2
                            Thành viên tích cực
                            • Oct 2005
                            • 481

                            #223
                            Nguyên văn bởi longviet
                            bac nao cho tui cai duong link de dơn load ban KeilC v 7.08 co crak nha .

                            Comment

                            • khduc
                              Thành viên mới
                              • Sep 2006
                              • 2

                              #224
                              cho hỏi cách chuyển từ C sang asm trong phần mềm keil ?

                              Comment

                              • natra2k2
                                Thành viên tích cực
                                • Oct 2005
                                • 481

                                #225
                                Nguyên văn bởi khduc Xem bài viết
                                cho hỏi cách chuyển từ C sang asm trong phần mềm keil ?
                                Khi chạy debug Ctrl+F5, bạn vào menu View-Assembly Windows, mã hợp ngữ sẽ tương ứng với mã C bên chương trình chính!
                                Bạn bấm F11 để debug từng lệnh nhé!

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...