Thông báo

Collapse
No announcement yet.

[Thắc mắc]cách viết Code cho IC 89S52

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

  • [Thắc mắc]cách viết Code cho IC 89S52

    Chào các anh, em đang tìm hiểu về lập tình cho IC họ 89.
    (Em chưa học vi điều khiển)
    em đã vẽ mô phỏng như sau:
    Click image for larger version

Name:	6qp2m.png
Views:	1
Size:	21.1 KB
ID:	1414501
    giờ em muốn cho đèn LED nhấp nháy với chu kỳ là 1s thì code như thế nào ạ ??
    mong các anh giúp đỡ, em đang tập tềnh tự học lập trình vi điều khiển.
    ai có tài liều gì hay hay mà cơ bản thì cho em nha !
    thanks all !


  • #2
    Tài Liệu 8051 | Cộng đồng cơ điện tử Việt Nam | Mechatronics

    Comment


    • #3
      Mạch reset vẽ sai nhé.
      Code:
      org 00h
      main:
      setb p1.0
      call delay
      clr p1.0
      call delay
      sjmp main
      delay:
      push 00h
      mov r0,#100
      mov tmod,#01h
      lap:
      mov th0,#high(-10000)
      mov tl0,#low(-10000)
      setb tr0
      jnb tf0,$
      clr tf0
      clr tr0
      djnz r0,lap
      pop 00h
      ret
      end
      ĐT: 0972 20 58 68
      Gmail:

      Comment


      • #4
        Chân 31 EA mà đưa vào 0V hả bạn?
        _--------------------------------------------------

        **** ------------------------------------------***

        Comment


        • #5
          Nguyên văn bởi hoangnam555 Xem bài viết
          Mạch reset vẽ sai nhé.
          Code:
          org 00h
          main:
          setb p1.0
          call delay
          clr p1.0
          call delay
          sjmp main
          delay:
          push 00h
          mov r0,#100
          mov tmod,#01h
          lap:
          mov th0,#high(-10000)
          mov tl0,#low(-10000)
          setb tr0
          jnb tf0,$
          clr tf0
          clr tr0
          djnz r0,lap
          pop 00h
          ret
          end
          Cảm ơn anh ! em sữa lại mạch rồi đó anh xem giúp em nha

          Free Cloud Storage - MediaFire
          Code:
          delay:
          push 00h
          mov r0,#100
          mov tmod,#01h
          lap:
          mov th0,#high(-10000)
          mov tl0,#low(-10000)
          setb tr0
          jnb tf0,$
          clr tf0
          clr tr0
          djnz r0,lap
          pop 00h
          Anh ơi cái đoạn này là sao nhỉ, em không hiểu cái đoạn này, anh giải thích giúp em luôn nha !
          Nguyên văn bởi romance_qt Xem bài viết
          Chân 31 EA mà đưa vào 0V hả bạn?
          mạch em sữa lại rồi anh, cảm ơn anh nha , chân 31 lên Vcc
          Free Cloud Storage - MediaFire
          cảm ơn anh nha !

          Comment


          • #6
            Nguyên văn bởi lee_trieu Xem bài viết
            Code:
            delay:
            push 00h
            mov r0,#100
            mov tmod,#01h
            lap:
            mov th0,#high(-10000)
            mov tl0,#low(-10000)
            setb tr0
            jnb tf0,$
            clr tf0
            clr tr0
            djnz r0,lap
            pop 00h
            Anh ơi cái đoạn này là sao nhỉ, em không hiểu cái đoạn này, anh giải thích giúp em luôn nha !
            Đoạn mã trên là chương trình tạo trễ sử dụng timer.
            Bạn đọc qua phần bộ định thời (timer) là hiểu lun.
            Mình gà asm nên ko giải thích được nhiều lệnh.
            delayush 00h
            mov r0,#100;nạp giá trị 100 cho R0
            mov tmod,#01h;sd timer 0 chế độ 1
            lap:mov th0,#high(-10000)
            mov tl0,#low(-10000)
            setb tr0;cho phép timer hoạt động
            jnb tf0,$
            clr tf0;xoá cờ tràn
            clr tr0;ngừng timer
            djnz r0,lap
            pop 00h

            Comment


            • #7
              Nguyên văn bởi hoangnam555 Xem bài viết
              Code:
              org 00h
              
              mov th0,#high(-10000)
              mov tl0,#low(-10000)
              Cho mình hỏi dấu (-) có nghĩa là gì vậy bạn?
              Và viết thế này thì có được không:
              mov th0,#(-10000)
              mov tl0,#(-10000)
              I'm A industrial chicken ~:>

              Comment


              • #8
                Nguyên văn bởi Rock32 Xem bài viết
                Cho mình hỏi dấu (-) có nghĩa là gì vậy bạn?
                Và viết thế này thì có được không:
                mov th0,#(-10000)
                mov tl0,#(-10000)
                dấu (-) là lấy bù của giá trị . -10000 bù là 55536
                high là lấy phần byte cao của giá trị -10000
                low là lấy phần byte thấp.
                Bạn ko dùng high và low thì trình dịch sẽ báo lỗi, vì đó là thanh ghi 2 byte mà lại đi nạp giá trị 4 byte

                Comment


                • #9
                  may a oi cho e xin cai mach trai tim í 89s52 dc k .?

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X