Thông báo

Collapse
No announcement yet.

Vi điều khiển họ 89C51 !!!!

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

  • Vi điều khiển họ 89C51 !!!!

    Mấy pro dùng mình!!! Mình đang làm bài tập lớn môn vi điều khiển với đề : " viết chương trình hợp ngữ mạch điều khiển động cơ DC quay thuận quay nghịch có tăng giảm tốc độ gồm 5 nút nhấn ( thuận , ngịch , tăng ,giảm , dừng ) và 5 Led báo hiệu họ 89c51 dùng ngôn ngữ Assembly !!!!
    Cảm ơn mọi người !!!
    Last edited by mrtungnt92; 05-12-2012, 20:33.

  • #2
    bạn vào trang :phúc lan shop tìm thử đi.Hồi mình thấy ở đó có chỉ dẫn chi tiết và đầy đủ lắm-từ phần làm xe đến code .
    Bùi Thành Hậu

    Gmail:
    Fb:

    Comment


    • #3
      Lên diễn đàn, google search mấy cái liên quan đọc hiểu mấy đoạn code của người khác rồi cop dán hay tự viết chi cho ra được cái sườn, nếu không chạy thì mang lên đây

      Comment


      • #4
        Mình cũng viết gần xong rồi chỉ còn việc viết delay để làm sao cho động cơ khi bấm quay chậm vs quay nhanh thôi !!!
        Last edited by mrtungnt92; 05-12-2012, 18:45.

        Comment


        • #5
          #include <sfr51.inc>
          org 000h
          main:
          quyetphim:
          jnb p1.0,thuan
          jnb p1.1,nghich
          jnb p1.2,stop
          jnb p1.3,nhanh
          jnb p1.4,cham
          sjmp quyetphim
          thuan:
          setb p2.0
          clr p2.1
          clr p3.0
          setb p3.1
          setb p3.3
          setb p3.2
          setb p3.4
          jnb p1.2,stop
          jnb p1.1,nghich
          jnb p1.3,nhanh
          jnb p1.4,cham
          sjmp thuan
          nghich:
          setb p2.1
          clr p2.0
          clr p3.1
          setb p3.0
          setb p3.2
          setb p3.3
          setb p3.4
          jnb p1.2,stop
          jnb p1.0,thuan
          jnb p1.4,cham
          jnb p1.3,nhanh
          sjmp nghich
          stop:
          clr p2.0
          clr p2.1
          clr p3.2
          setb p3.0
          setb p3.3
          setb p3.1
          setb p3.4
          sjmp quyetphim
          nhanh:
          clr p3.3
          setb p3.0
          setb p3.1
          setb p3.2
          setb p3.4
          jnb p1.2,stop
          jnb p1.0,thuan
          jnb p1.1,nghich
          jnb p1.4,cham
          sjmp nhanh
          lcall delay
          cham:
          clr p3.4
          setb p3.0
          setb p3.1
          setb p3.2
          setb p3.3
          jnb p1.2,stop
          jnb p1.0,thuan
          jnb p1.1,nghich
          jnb p1.3,nhanh
          sjmp cham
          lcall delay
          delay:
          mov r1,#0ffh
          del: mov r6,#00fffh
          de: mov r7,#00fffh
          djnz r7,$
          djnz r6,del
          djnz r1,de
          ret

          end
          Đây là bài viết của mình nhưng chưa xong vì khi nhấn nút nhanh hay nút chậm thì tốc độ vẫn thế , ai viết được phần delay tăng giảm tốc độ chỉ mình với . Cảm ơn !!!

          Comment


          • #6
            Tham khảo link đây bạn nhé:Trao đổi học tập - chi tiết bạn vẽ và mô phỏng bằng protues thử đi!Hồi đó thằng bạn của mình mô phỏng được đấy.
            Bùi Thành Hậu

            Gmail:
            Fb:

            Comment


            • #7
              Nguyên văn bởi mrtungnt92 Xem bài viết
              #include <sfr51.inc>
              ...
              Đây là bài viết của mình nhưng chưa xong vì khi nhấn nút nhanh hay nút chậm thì tốc độ vẫn thế , ai viết được phần delay tăng giảm tốc độ chỉ mình với . Cảm ơn !!!
              Code của bạn không tăng giảm được tốc độ là đúng rồi. Bạn cấn sửa lại theo hướng khi gặp phím giảm tốc độ thì cần tăng thời gian delay tắt xung cấp cho động cơ lên, và khi gặp phím tăng tốc độ thì tăng thời gian cấp xung cho động cơ lên!

              Comment


              • #8
                delay:
                mov r1,temp
                del: mov r6,#00fffh
                de: mov r7,#00fffh
                jnb nhanh,cnhanh
                jnb cham,cham
                djnz r7,$
                djnz r6,del
                djnz r1,de
                ret

                cnhanh:
                inc temp
                ret
                ccham:
                dec temp
                ret

                bạn thử làm cách này xem

                Comment


                • #9
                  Nguyên văn bởi cdtk5 Xem bài viết
                  delay:
                  mov r1,temp
                  del: mov r6,#00fffh
                  de: mov r7,#00fffh
                  jnb nhanh,cnhanh
                  jnb cham,cham
                  djnz r7,$
                  djnz r6,del
                  djnz r1,de
                  ret

                  cnhanh:
                  inc temp
                  ret
                  ccham:
                  dec temp
                  ret

                  bạn thử làm cách này xem
                  xem lại code chú sai cơ bản nhé.
                  để motor chạy nhanh chậm phải dùng PWM tạo tần số cố định trên chân điều khiển chứ ko phải dùng delay.

                  Comment


                  • #10
                    ở đây mình dùng cơ bản là thay đổi delay giữa on/off. để tạo xung. như thế có phải là sai cơ bản hả bạn.

                    Comment


                    • #11
                      Nguyên văn bởi cdtk5 Xem bài viết
                      ở đây mình dùng cơ bản là thay đổi delay giữa on/off. để tạo xung. như thế có phải là sai cơ bản hả bạn.
                      xai cơ bản là các thanh ghi Rx là thanh ghi 1 byte mà bạn đi nạp 0FFFh à. Hơn nữa delay bạn viết thấp nhất là 300 mấy mS thì PWM thế nào

                      Comment


                      • #12
                        chương trình delay đó của bạn mrtungnt92 mình chưa sửa gì cả.

                        Comment


                        • #13
                          Mấy bạn nếu làm được delay thì làm cho mình tham khảo . Cảm ơn các bạn đã comment chia sẻ ý . Mình vẫn còn vướng mắc vấn đề DELAY để tăng gảm tốc độ động cơ !!!

                          Comment


                          • #14
                            bài của mình đây,bị sai chỗ:MOV TH1,#HIGH(SUBB A,@R0) và MOV TL1,#LOW(ADD A,@R1)


                            #include <sfr51.inc>
                            org 000h

                            main:
                            quyetphim:
                            jnb p1.0,thuan
                            jnb p1.1,nghich
                            jnb p1.3,nhanh
                            jnb p1.4,cham
                            jnb p1.2,stop
                            sjmp quyetphim
                            thuan:
                            setb p2.0
                            clr p2.1
                            clr p3.0
                            setb p3.1
                            setb p3.3
                            setb p3.2
                            setb p3.4
                            jnb p1.2,stop
                            jnb p1.1,nghich
                            jnb p1.3,nhanh
                            jnb p1.4,cham
                            sjmp thuan
                            nghich:
                            setb p2.1
                            clr p2.0
                            clr p3.1
                            setb p3.0
                            setb p3.2
                            setb p3.3
                            setb p3.4
                            jnb p1.2,stop
                            jnb p1.0,thuan
                            jnb p1.4,cham
                            jnb p1.3,nhanh
                            sjmp nghich
                            stop:
                            clr p2.0
                            clr p2.1
                            clr p3.2
                            setb p3.0
                            setb p3.3
                            setb p3.1
                            setb p3.4
                            sjmp quyetphim
                            nhanh:
                            lcall TOCDO
                            clr p3.3
                            setb p3.0
                            setb p3.1
                            setb p3.2
                            setb p3.4
                            jnb p1.2,stop
                            jnb p1.0,thuan
                            jnb p1.1,nghich
                            jnb p1.4,cham
                            MOV R0,#0
                            INC R0
                            sjmp nhanh
                            cham:
                            lcall TOCDO1
                            clr p3.4
                            setb p3.0
                            setb p3.1
                            setb p3.2
                            setb p3.3
                            jnb p1.2,stop
                            jnb p1.0,thuan
                            jnb p1.1,nghich
                            jnb p1.3,nhanh
                            MOV R1,#0
                            INC R1
                            sjmp cham
                            TOCDO:
                            lcall DELAY1MS
                            TOCDO1:
                            lcall DELAY1MS
                            DELAY1MS:
                            PUSH 07
                            MOV TMOD,#20H
                            MOV R7,#5
                            dell:
                            MOV A,#56
                            MOV TH1,#HIGH(SUBB A,@R0)
                            MOV A,#56
                            MOV TL1,#LOW(ADD A,@R1)
                            SETB TR1
                            CLR TF1
                            JNB TF1,$
                            DJNZ R7,dell
                            POP 07
                            RET
                            end

                            Comment


                            • #15
                              có ai viết cho mình 1 chương trình với.
                              đề là như thế này:
                              nhấn sw1 p1.0 thì động cơ bước quay thuận 1 bước p2.0
                              nhan sw2 p1.1 thi dc dung.
                              yeu cau dung con 89c51.
                              thuan 1 buoc bd 08h,04h,02h,01h
                              em chân thành cảm ơn nếu ai giúp em.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X