Thông báo

Collapse
No announcement yet.

Lập trình ASM cho 8051

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

  • #76
    Chào bác Ngohaibac; bác cho em hỏi với
    em viết ASM cho 8051 bằng chương trình Read51
    đoạn code như sau:
    đoạn ví dụ thôi
    Mov A, #66h
    Main:
    RR A
    Mov P2, A
    Acall Delay
    Sjmp Main
    Delay:
    Mov R2,#100
    H1: Mov R3,#255
    H2: Djnz R3,H2
    Djnz R2,H1
    Ret
    end
    mà chương trình báo lỗi tại dòng 4 như sau: "Unresolved operand(s)"
    vậy đoạn code đang lỗi ở mov p2, A;
    nếu thay p2 bằng cái khác thì okie
    điều này em thực sự chưa hiểu tại sao?
    Rất mong nhận được ý kiến của bác và các bạn
    Trân trọng cảm ơn!..
    Nguyễn Xuân Trường

    Comment


    • #77
      ban co the giup minh lap trinh c cho led 5x5x5 dc ko

      Comment


      • #78
        Nguyên văn bởi myfriend_bd Xem bài viết
        ban co the giup minh lap trinh c cho led 5x5x5 dc ko
        Luồng này chỉ bàn về lập trình bằng ASM thôi bác ơi!

        Comment


        • #79
          bạn nào có hình proteus bai hiện số 123 bằng led 7 thank k?,cho t xin nhé.cảm ơn nhiều

          Comment


          • #80
            Nguyên văn bởi foundaction Xem bài viết
            Chào bác Ngohaibac; bác cho em hỏi với
            em viết ASM cho 8051 bằng chương trình Read51
            đoạn code như sau:
            đoạn ví dụ thôi
            Mov A, #66h
            Main:
            RR A
            Mov P2, A
            Acall Delay
            Sjmp Main
            Delay:
            Mov R2,#100
            H1: Mov R3,#255
            H2: Djnz R3,H2
            Djnz R2,H1
            Ret
            end
            mà chương trình báo lỗi tại dòng 4 như sau: "Unresolved operand(s)"
            vậy đoạn code đang lỗi ở mov p2, A;
            nếu thay p2 bằng cái khác thì okie
            điều này em thực sự chưa hiểu tại sao?
            Rất mong nhận được ý kiến của bác và các bạn
            Trân trọng cảm ơn!..
            Nguyễn Xuân Trường


            à bạn chưa khai báo chân cho nó , cụ thể là chưa include cho nó

            bạn thêm thế này là ok #include <sfr51.inc>
            như vậy là ổn


            MOV NHÀ,ANH
            MOV NHÀ,EM
            ADD ANH,EM

            Comment


            • #81
              Nguyên văn bởi trinhvund Xem bài viết
              bạn nào có hình proteus bai hiện số 123 bằng led 7 thank k?,cho t xin nhé.cảm ơn nhiều
              nó hiện như thế nào chứ?????
              3 led 7đoạn hiển thị 3 số 123 hay 1 cái sáng lần lượt??????
              bạn hỏi thế ai trả lời cho


              MOV NHÀ,ANH
              MOV NHÀ,EM
              ADD ANH,EM

              Comment


              • #82
                cam ơn bạn nhiều,bài đó mình lại làm dc rùi,mong bạn có thể giải thích giúp ý nghĩa từng câu lệnh bài này,thank trước nhé.
                #include <sfr51.inc>
                dem equ 30h
                leddv equ 31h
                ledch equ 32h
                ledtr equ 33h

                org 00h
                ljmp main
                org 0bh ; dia chi ISR timer 0
                ljmp timer0isr
                org 40h

                main:
                mov sp,#5fh
                mov tmod,#01h
                setb ET0
                setb EA
                mov dem,#0
                mov leddv,#0
                mov ledch,#0
                mov ledtr,#0
                mov th0,#high(15535) ; lay 8 bit cao
                mov tl0,#low(15535) ; lay 8 bit thap
                setb tr0 ; khoi dong bo dinh thoi timer 0
                mov dptr,#table

                loop: ; hien so
                mov a,leddv ; led hang don vi
                movc a,@a+dptr
                mov p0,a
                setb p2.2 ; sang led don vi boi vi ben trong khoi led dung trans NPN
                lcall delay1ms
                clr p2.2

                mov a,ledch ; led hang chuc
                movc a,@a+dptr
                mov p0,a
                setb p2.3
                lcall delay1ms
                clr p2.3

                mov a,ledtr ; led hang tram
                movc a,@a+dptr
                mov p0,a
                setb p2.4
                lcall delay1ms
                clr p2.4
                sjmp loop ; quay vong quet tiep de cho cap nhat gia tri boi timer 0

                delay1ms:
                mov r1,#5
                loop1:
                mov r2,#10
                loop2:
                mov r3,#10
                loop3:
                djnz r3,loop3
                djnz r2,loop2
                djnz r1,loop1
                ret

                ;-------------------------------------------------------

                timer0isr: ; dem thoi gian
                mov th0,#high(15535) ; lay 8 bit cao
                mov tl0,#low(15535) ; lay 8 bit thap
                inc dem
                mov r4,dem
                cjne r4,#20,thoat
                mov dem,#0
                lcall capnhat

                thoat:
                reti

                capnhat:
                inc leddv
                mov r4,leddv
                cjne r4,#10,thoat1
                mov leddv,#0

                inc ledch
                mov r4,ledch
                cjne r4,#10,thoat1
                mov ledch,#0h

                inc ledtr
                mov r4,ledtr
                cjne r4,#10,thoat1
                mov ledtr,#0h

                thoat1:
                ret

                table:
                db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
                ; 0 1 2 3 4 5 6 7 8 9

                end

                Comment


                • #83
                  Nguyên văn bởi trinhvund Xem bài viết
                  cam ơn bạn nhiều,bài đó mình lại làm dc rùi,mong bạn có thể giải thích giúp ý nghĩa từng câu lệnh bài này,thank trước nhé.
                  #include <sfr51.inc>
                  dem equ 30h
                  leddv equ 31h
                  ledch equ 32h
                  ledtr equ 33h

                  org 00h
                  ljmp main
                  org 0bh ; dia chi ISR timer 0
                  ljmp timer0isr
                  org 40h

                  main:
                  mov sp,#5fh
                  mov tmod,#01h
                  setb ET0
                  setb EA
                  mov dem,#0
                  mov leddv,#0
                  mov ledch,#0
                  mov ledtr,#0
                  mov th0,#high(15535) ; lay 8 bit cao
                  mov tl0,#low(15535) ; lay 8 bit thap
                  setb tr0 ; khoi dong bo dinh thoi timer 0
                  mov dptr,#table

                  loop: ; hien so
                  mov a,leddv ; led hang don vi
                  movc a,@a+dptr
                  mov p0,a
                  setb p2.2 ; sang led don vi boi vi ben trong khoi led dung trans NPN
                  lcall delay1ms
                  clr p2.2

                  mov a,ledch ; led hang chuc
                  movc a,@a+dptr
                  mov p0,a
                  setb p2.3
                  lcall delay1ms
                  clr p2.3

                  mov a,ledtr ; led hang tram
                  movc a,@a+dptr
                  mov p0,a
                  setb p2.4
                  lcall delay1ms
                  clr p2.4
                  sjmp loop ; quay vong quet tiep de cho cap nhat gia tri boi timer 0

                  delay1ms:
                  mov r1,#5
                  loop1:
                  mov r2,#10
                  loop2:
                  mov r3,#10
                  loop3:
                  djnz r3,loop3
                  djnz r2,loop2
                  djnz r1,loop1
                  ret

                  ;-------------------------------------------------------

                  timer0isr: ; dem thoi gian
                  mov th0,#high(15535) ; lay 8 bit cao
                  mov tl0,#low(15535) ; lay 8 bit thap
                  inc dem
                  mov r4,dem
                  cjne r4,#20,thoat
                  mov dem,#0
                  lcall capnhat

                  thoat:
                  reti

                  capnhat:
                  inc leddv
                  mov r4,leddv
                  cjne r4,#10,thoat1
                  mov leddv,#0

                  inc ledch
                  mov r4,ledch
                  cjne r4,#10,thoat1
                  mov ledch,#0h

                  inc ledtr
                  mov r4,ledtr
                  cjne r4,#10,thoat1
                  mov ledtr,#0h

                  thoat1:
                  ret

                  table:
                  db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
                  ; 0 1 2 3 4 5 6 7 8 9

                  end


                  giải thích gì nữa bạn nhỉ các lệnh đều có chú thích đo rồi bạn muốn hỏi chỗ nào nữa


                  MOV NHÀ,ANH
                  MOV NHÀ,EM
                  ADD ANH,EM

                  Comment


                  • #84
                    bạn có thể cho mình ních yahoo dc k,hoặc ép ních minh vao trinhvund dể mình hoi thêm,thank bạn nhiều.

                    Comment


                    • #85
                      Nguyên văn bởi boynghean Xem bài viết
                      à bạn chưa khai báo chân cho nó , cụ thể là chưa include cho nó

                      bạn thêm thế này là ok #include <sfr51.inc>
                      như vậy là ổn
                      Cảm ơn bạn boynghean; nhưng mình có viết bằng ngôn ngữ C đâu,
                      Hiiiiiiiiiiiiii, giờ mình viết bằng Mikroe rồi, cái này tiện dụng mà có sẵn nhiều thứ viện
                      chúc vui, khỏe

                      Comment


                      • #86
                        Nguyên văn bởi foundaction Xem bài viết
                        Cảm ơn bạn boynghean; nhưng mình có viết bằng ngôn ngữ C đâu,
                        Hiiiiiiiiiiiiii, giờ mình viết bằng Mikroe rồi, cái này tiện dụng mà có sẵn nhiều thứ viện
                        chúc vui, khỏe
                        không phải là chỉ C mới có include, vì read51 cần hiểu các tên của thanh ghi 89 địa chỉ ở đâu nên phải có file sfr51.inc (là file khai báo địa chỉ thanh ghi) nó mới có thể liên kết tên thanh ghi với địa chỉ.

                        Comment


                        • #87
                          Các anh ơi giúp em cái này với ạ
                          So sánh 2 phương pháp lập trình tạo trễ trong 8051 là
                          1. Dùng Timer.
                          2. Dùng vòng lặp.
                          Em cảm ơn các anh trước ạ.

                          Comment


                          • #88
                            cho minh hoi co ban nao biet ve ic cms69t08 khong
                            minh tra tren google toan la tieng trung quoc khong
                            xin moi nguoi giup do minh do la ic thuoc ho nao cua vdk va dung phan mem gi de viet chuong trinh

                            Comment


                            • #89
                              day la datsheet cua ic cms69t08 http://www.mcu.com.cn/admin/download...86%8C_v1.6.pdf

                              Comment


                              • #90
                                các a ơi , có thể giúp e chút k ....các a giúp e ... lập trình asm cho mạch gồm 32 đèn led theo thứ tự sáng dần rùi lặp đi lặp lại như vậy ....... e mới học nên chưa rõ lắm .. lại vừa là thành vien mới .. cảm ơn a nhiều

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X