Thông báo

Collapse
No announcement yet.

Cùng Nhau Học Từ đầu Về Lập Trình Cho 8051

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

  • Cùng Nhau Học Từ đầu Về Lập Trình Cho 8051

    Mình mong mọi người cùng nhau giúp đỡ nhau về lập trình từ các ví dụ đơn giản nhất. Để từ đó hiểu về 8051 hơn. (giúp mình với mình không biết gì đâu)
    Ví dụ: Dùng 8051 để lập trình cho 3 đèn led nhấp nháy thay phiên nhau mỗi đèn sáng 1s.

  • #2
    Nguyên văn bởi ngoctuan85 Xem bài viết
    Mình mong mọi người cùng nhau giúp đỡ nhau về lập trình từ các ví dụ đơn giản nhất. Để từ đó hiểu về 8051 hơn. (giúp mình với mình không biết gì đâu)
    Ví dụ: Dùng 8051 để lập trình cho 3 đèn led nhấp nháy thay phiên nhau mỗi đèn sáng 1s
    .
    Bây giờ không thể đi lại từ đầu được đâu bạn.
    Bạn hãy tìm trong diễn đàn này hoặc các trang về 8051, 8052... có rất nhiều ví dụ mẫu từ đơn giản cho đến phức tạp. Mua 1 quyển sách Tiếng Việt về ngâm cứu cũng được bạn ạ.
    Mà tốt hơn hết để cho nhanh và đỡ phí thời gian: bạn hãy đi theo 1 thầy giỏi về 8051, chỉ 3 ngày học thầy = 10 ngày đọc sách. Nếu gặp thầy đểu chắc cũng phí thời gian thôi...

    email:mahaco@fpt.vn

    Comment


    • #3
      #inlclude <sfr51.inc>
      org 00h ; bắt đầu tại ngăn nhớ 0
      ljmp main ; ?
      org 40h ; bắt đầu tại ngăn nhớ 40h
      main:
      mov SP,#5fh ;ban đầu các đèn đều tắt
      mov p1,#110b ;sáng led 1
      1call tre_1s
      mov p1,#101b ;sáng led 2
      1call tre_1s
      mov p1,#011b ;sáng led 3
      1call tre_1s
      sjmp main ;?
      tre_1s:
      mov r1,#10 ; dặt r1 bằng 10 ( r1 ở đâu trong 8051 ?)
      loop1: ; lệnh ?
      mov r2,#100
      loop2:
      mov r3,#100
      loop3:
      noop ;lệnh này là lệnh gì ?
      noop
      noop
      djnz r3,loop3 ;lệnh này là lệnh gì ?
      djnz r2,loop2
      djnz r1,loop1
      ret
      end

      cho minh hỏi? đây là lập trình mà mình làm giống sách nhưng chưa hiểu lắm về phần cứng. vả lại của nó là sáng lần lượt 8 led lên đầu ra chỉ cần gi la p1 là đủ. Mình có phải gi ro địa chỉ là p1.0, p1.1 , p1.2 hay không?
      còn lệnh loop có lẽ là lấy giá trị của thạch anh Ví dụ thạch anh có giá trị là 12MHz thì sẽ cho chu kỳ của máy là 1*exp(-6)s. Do đó để thành 1s ta cho no như trên.
      Mong các bạn chỉ dạy cho mình nhiều hơn

      Comment


      • #4
        Mình cũng đã xem các trang rồi nhưng hầu hết là toàn bắt đầu từ phần nào ấy. Học cũng khó hiểu quá. Mình lại gà lắm.

        Comment


        • #5
          Nguyên văn bởi ngoctuan85 Xem bài viết
          #inlclude <sfr51.inc>
          org 00h ; bắt đầu tại ngăn nhớ 0
          ljmp main ; ?
          org 40h ; bắt đầu tại ngăn nhớ 40h
          main:
          mov SP,#5fh ;ban đầu các đèn đều tắt
          mov p1,#110b ;sáng led 1
          call tre_1s
          mov p1,#101b ;sáng led 2
          call tre_1s
          mov p1,#011b ;sáng led 3
          call tre_1s
          sjmp main ;?
          tre_1s:
          mov r1,#10 ; dặt r1 bằng 10 ( r1 ở đâu trong 8051 ?)
          loop1: ; lệnh ?
          mov r2,#100
          loop2:
          mov r3,#100
          loop3:
          noop ;lệnh này là lệnh gì ?
          noop
          noop ; lệnh phải là nop
          djnz r3,loop3 ;lệnh này là lệnh gì ?
          djnz r2,loop2
          djnz r1,loop1
          ret
          end

          cho minh hỏi? đây là lập trình mà mình làm giống sách nhưng chưa hiểu lắm về phần cứng. vả lại của nó là sáng lần lượt 8 led lên đầu ra chỉ cần gi la p1 là đủ. Mình có phải gi ro địa chỉ là p1.0, p1.1 , p1.2 hay không?
          còn lệnh loop có lẽ là lấy giá trị của thạch anh Ví dụ thạch anh có giá trị là 12MHz thì sẽ cho chu kỳ của máy là 1*exp(-6)s. Do đó để thành 1s ta cho no như trên.
          Mong các bạn chỉ dạy cho mình nhiều hơn
          Phần cứng 3 LED đơn nhỏ nối A với + nguồn qua 1 con trở, còn K thì nối với các chân P1.0,P1.1,P1.2 tương ứng ( chân 1,2,3 của 89).
          mov SP,#5fh ;ban đầu các đèn đều tắt
          Câu lệnh trên không phải là "ban đầu các đèn đều tắt" mà là đặt giá trị con trỏ stack. Để tắt hết LED thì dùng mov P1,#0ffh.
          Thao tác từng chân của VĐK thì dùng
          Setb P1.0 ; đặt chân P1.0 lên 1
          CLR P1.0 ; xóa chân P1.0 về 0
          lệnh Nop : VĐK không làm gì 1 chu kỳ máy
          1 chu kỳ máy có thời gian = 12/F thạch anh. ví dụ nếu dùng thạch anh 12MHz thì lệnh Nop sẽ thực hiện hết 1us
          Mỗi lệnh trong tập lệnh có thể dài 1 hay 2 byte nhưng cũng có thể thực hiện hết 1 hay 2 chu kỳ máy - tra trong datasheet.

          email:mahaco@fpt.vn

          Comment


          • #6
            Bác họctrò89 bác rành về AVR ko?
            muốn thỉnh giáo bác về avr

            Comment


            • #7
              Nguyên văn bởi Haha1+1=3 Xem bài viết
              Bác họctrò89 bác rành về AVR ko?
              muốn thỉnh giáo bác về avr
              Đủ để mình muốn làm gì thì làm, chưa biết đọc sẽ biết. Mà đọc không biết nữa thì... bỏ.

              email:mahaco@fpt.vn

              Comment


              • #8
                Mình có vài lời đến với các ban trẻ đam mê hay muốn học MCU. Những điều này cũng có thể áp dụng cho mọi dòng MCU khác

                1/ Nghiên cứu architecture của dòng chip mình muốn học
                2/ Nghiên cứu instructions set (tập lệnh) của dòng chip
                3/ Đọc kỷ datasheet của con chip mà mình muốn học

                Sau khi đã hiểu thấu đáo 3 điều trên mới tiếp tục

                4/ Về phần hardware thì nên chọn mua một Development kit phù hợp với khả năng tài chính của bạn. Tại sao không làm mà nên mua?
                Theo kinh nghiệm của bản thân thì phần lớn chúng ta khi mới bước vào làm MCU còn bỡ ngỡ và không có nhiều kinh nghiệm design hardware nên sai sót khi design rất dễ xảy ra. Nếu may mắn thì mạch có thể chạy tốt, nếu không thì sẽ có nhiều điều bất bình thường xảy ra mà bạn không thể giải thích được. Một điều mà chúng ta nên biết là một software dù tốt đến đâu cũng không thể chạy tốt trên một hardware không ổn định và có quá nhiều lỗi thiết kế. Đó là lý do tại sao ta nên mua một development kit. Ít ra ta cũng có được 90% hardware ổn định để test software. Nếu mạch không làm việc như ý muốn thì cũng dể dàng cho ta debug vì chỉ còn tập trung vào software thôi.

                5/ Về software thì nên kiếm một bộ Assembler hay C compiler tin cậy như Keil A51 hay ASM51 của Metalink để tránh những lỗi của assembler/compiler.
                Mới bước vào làm MCU tôi khuyên nên học assembly, điều nầy có thể khó khăn với một số bạn, nhưng nếu bạn cố gắng thì sẽ được đền bù xứng đáng vế sau. Điều này rất có ích sau này khi bạn viết chương trình bằng HLL như C hay C++. Sau khi bạn compiled bạn có thể đọc assembly code do C compiler tạo ra và tìm lỗi rất dễ dàng.

                6/ Điều cuối cùng là nên tìm đọc những đoạn code mẫu để học thêm những programming technique mới của người khác.

                Comment


                • #9
                  1 cái đồ án mạch ghi đọc eprom cho 8051 . Bác nào chưa đọc thì down về
                  1 Cái của blackmon pro
                  Attached Files
                  Hok mang bút sao ký dc !

                  Comment


                  • #10
                    Mình thấy nên bắt dầu bằng việc mua sách VXL của thầy Hồ Trung Mỹ đọc trước. Sách có bạn tại tiệm sách B10 DHBK HCM. Tập lập trình bằng Assembler trước. Khi đã thạo thì đọc sách "thiết kế hệ thống với 8051" của thầy On, lập trình bằng C sẽ nhanh hơn nhiều.
                    Homepage:

                    Comment


                    • #11
                      Bạn VietCuong gửi file Mạch ghi đọc EPROM cho VĐK 8051. Có password thì ai mà mở được?????

                      Comment


                      • #12
                        - mình cần những cái sau dể học 8051 bạn nào giúp với
                        1. datashet 8051
                        2. trình dịch
                        3. tài liệu (nếu có)

                        thank!

                        Comment


                        • #13
                          Nguyên văn bởi VietCuong Xem bài viết
                          1 cái đồ án mạch ghi đọc eprom cho 8051 . Bác nào chưa đọc thì down về
                          1 Cái của blackmon pro
                          Bạn cho mình xin Password của file đồ án đi! Cảm ơn bạn nhiều nhé!

                          Comment


                          • #14
                            a da da , như vậy là ko đươc rồi. ko chia sẻ cho bà con gi cả.

                            Comment


                            • #15
                              Gửi file lên còn có password vậy thì gửi làm gì hả? Bực mình quá

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X