phím điều khiển cho 8051.

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • swat_heliket
    Thành viên chính thức
    • Apr 2011
    • 52

    #1

    phím điều khiển cho 8051.

    em đang làm 1 bàn phím cho 8051 ( thi robocon). Các bác vui lòng hướng dẫn cho em về mạch nguyên lý và thuật toán đơn giàn của nó. bàn phím của em chỉ gồm 8 nút thoi và điều khiển chỉ khoản 4 động cơ. em xin cám ơn các bác trước
  • swat_heliket
    Thành viên chính thức
    • Apr 2011
    • 52

    #2
    cac bac jup em vs

    Comment

    • thanhnshd
      Thành viên chính thức
      • Mar 2011
      • 86

      #3
      Ban có thể dùng ngắt ngoài into còn phần cứng dùng công and. còn động cơ dùng mạch cầu h. Nói chung bạn phải có ý tưởng bằng sơ đồ nguyên lý thì anh em mới giúp được.

      Comment

      • ckd-ir
        Thành viên tích cực
        • Aug 2010
        • 183

        #4
        Ý của bác là làm mạch điều khiển cho robot bằng tay hả?
        Nút nhấn thì 1 chân nối chân vđk, chân kia nối mass
        Code thì dùng jb và jnb.

        Comment

        • swat_heliket
          Thành viên chính thức
          • Apr 2011
          • 52

          #5
          vâng. em làm robo điều khiển tay. dùng động cơ đề và 2 động cơ 5v khác. vậy là nút nhấn 1 chân nối madd 1 chân nối vdk chân nào cũng được hả các bác??????????????

          Comment

          • ckd-ir
            Thành viên tích cực
            • Aug 2010
            • 183

            #6
            Nối vào port nào cũng được. Nên thêm tụ 104 nối từ pin kết nối với nút nhấn xuống mass để chống nhiễu

            Comment

            • nguyentot90
              Thành viên tích cực
              • Mar 2011
              • 488

              #7
              hic sẵn đây cho mình hoi.minh không biết nhiều về vi điều khiển...Giờ mình có 4 nút nhấn trực tiếp vào vi điều khiển khi nhấn nút 1 thi led p1.0 sáng.lần lượt vậy đến nút thứ 4 = p1.3
              a,e nào sẵng lòng thì hướng dẫn cho mình sơ đồ và code nghe.thanks trước.

              Comment

              • ckd-ir
                Thành viên tích cực
                • Aug 2010
                • 183

                #8
                Mình nghĩ nếu chỉ đơn giản như thế thì không cần xài vđk đâu bạn.

                Comment

                • nguyentot90
                  Thành viên tích cực
                  • Mar 2011
                  • 488

                  #9
                  dĩ nhiên là phải ý tưởng lớn hơn goy` chứ đơn giản vậy dùng ic làm j. làm công tắc lun >.< thay vì bạn làm 8 phim thi tui 4 phim
                  Last edited by nguyentot90; 19-08-2011, 08:48.

                  Comment

                  • nguyentot90
                    Thành viên tích cực
                    • Mar 2011
                    • 488

                    #10
                    minh không đảo chiều bằng vkd luôn sao.

                    Comment

                    • swat_heliket
                      Thành viên chính thức
                      • Apr 2011
                      • 52

                      #11
                      các bác nói rõ hơn dùm em. vì dc em dùng là động cơ đề nên dây phải lớn. nếu dùng công tắc bình thường thì 2 dc đề dã là 8 dây như vậy sẽ rất cồng kềnh. trước nay em sử dụng công tắc 6 chấu và thấy ko hiệu quả. nay biết so so vdk nên thử dùng. các bác có cách nào hay chỉ giúp em vs. thank

                      Comment

                      • ckd-ir
                        Thành viên tích cực
                        • Aug 2010
                        • 183

                        #12
                        Xài động cơ đề thì phải quấn lại đã. Còn bạn nói 8 dây là như thế nào? Mình không hiểu cho lắm

                        Comment

                        • thanhnshd
                          Thành viên chính thức
                          • Mar 2011
                          • 86

                          #13
                          $include(reg52.inc)
                          org 0000H ;Vector reset
                          ljmp Init ;nh¶y tíi ch-¬ng tr×nh k

                          org 0003H ;Vector ng¾t ngoµi EX0
                          ljmp INT_EX0 ;ctcpvn bµn phÝm

                          org 001BH ;Vector ng¾t trµn TF0
                          ljmp P_XUNG ;ctcpvn ph¸t xung

                          org 0013H ; Vector ng¾t ngoµi INT1
                          ljmp INT_EX1 ; Tªn ctcpvn ngoµi INT1

                          org 002BH ; Vector ng¾t trµn T/C2
                          ljmp INT_T2 ; Tªn ctcpvn ng¾t trµn T/C2
                          ;org 001BH ; Vector ng¾t trµn T/C1
                          ;ljmp INT_T1 ; Tªn ctcpvn ng¾t trµn T/C1
                          num equ 50h
                          org 100
                          Init:
                          clr EA ;cÊm c¸c ng¾t
                          mov SP,#2FH ;khëi t¹o ng¨n xÕp
                          mov T2CON,#00H ;T2 lµm viÖc ë chÕ ®é
                          mov TL2,#0EFH ;Auto_reload víi
                          mov RCAP2L,TL2 ;chu kú ng¾t lµ 10ms
                          mov TH2,#0D8H
                          mov RCAP2H,TH2
                          mov TMOD,#01H ;T0 lµ bé ®Õm 16 bit
                          mov TH0,#0FCH ;cã chu kú ng¾t lµ
                          mov TL0,#0EFH ;392µs
                          mov Num,#00H
                          setb ET0 ;cho phÐp T0 ng¾t
                          setb TR0 ;cho phÐp T0 ch¹y
                          setb ET2 ;cho phÐp T2 ng¾t
                          setb TR2 ;cho phÐp T2 ch¹y
                          setb IT0 ;®Æt ng¾t ngoµi INT0
                          setb it1
                          setb ex1
                          ;theo s-ên xuèng
                          setb EX0 ;cho phÐp ng¾t ngoµiINT0
                          setb EA ;cho phÐp c¸c ng¾t
                          ;here:
                          ; sjmp here ;®îi ng¾t
                          INT_T2:
                          clr tf2
                          cpl p3.4
                          reti

                          ttt:
                          cpl p3.0
                          call DELAY100ms
                          sjmp ttt
                          DELAY100ms: MOV R2,#100
                          DL5: MOV R1,#250
                          DL4: NOP
                          NOP
                          DJNZ R1,DL4
                          DJNZ R2,DL5
                          RET
                          INT_EX0:
                          clr IE0 ;x¸o cê b¸o ng¾t
                          mov a,P1 ;®äc m· bµn phÝm
                          anl a,#07H ;xo¸ 5 bit cao vÒ "0"
                          jb p1.0,KT_ADD ;cã ph¶i phÝm "Func" ?
                          setb P2.0 ;cho D0 s¸ng
                          clr P2.1 ;cho D1 t¾t
                          clr P2.2 ;cho D2 t¾t
                          clr P2.3 ;cho D3 t¾t
                          KT_ADD:
                          jb p1.1,KT_SUB ;cã ph¶i phÝm "+" ?
                          clr P2.0 ;cho D0 t¾t
                          setb P2.1 ;cho D1 s¸ng
                          clr P2.2 ;cho D2 t¾t
                          clr P2.3 ;cho D3 t¾t
                          KT_SUB:
                          jb p1.2,KT_OK ;cã ph¶i phÝm "-" ?
                          clr P2.0 ;cho D0 t¾t
                          clr P2.1 ;cho D1 t¾t
                          setb P2.2 ;cho D2 s¸ng
                          clr P2.3 ;cho D3 t¾t
                          KT_OK:
                          jb p1.3,KT ;cã ph¶i phÝm "OK" ?
                          clr P2.0 ;cho D0 t¾t
                          clr P2.1 ;cho D1 t¾t
                          clr P2.2 ;cho D2 t¾t
                          setb P2.3 ;cho D3 s¸ng
                          KT:
                          reti ;KÕt thóc ?
                          INT_EX1:
                          cpl p3.1
                          reti
                          P_XUNG:
                          clr TF0 ;xo¸ cê b¸o ng¨t
                          clr TR0 ;dõng T0
                          mov TH0,#0FCH
                          mov TL0,#0EFH
                          setb TR0 ;cho T0 ch¹y
                          cpl p3.5
                          mov P0,Num
                          mov a,Num
                          cjne a,#0FFH,TANG
                          mov Num,#00H
                          sjmp P_RET
                          TANG:
                          inc Num
                          P_RET:
                          reti ;kÕt thóc
                          end


                          cho bạn tham khảo các loại ngắt

                          Comment

                          • swat_heliket
                            Thành viên chính thức
                            • Apr 2011
                            • 52

                            #14
                            Nguyên văn bởi ckd-ir Xem bài viết
                            Xài động cơ đề thì phải quấn lại đã. Còn bạn nói 8 dây là như thế nào? Mình không hiểu cho lắm
                            vâng. trước đây em dùng công tắc 6 chân dùng để đổi chiều động cơ. em nhìn thì có vẻ giống cầu H. nguồn để trên robot. vậy dây dùng để điều khiển 1 dc là 4 dây. 2dc là 8 dây. còn anh nói quấn lại là sao. ra tiệm mình nói như thế nào? trước đây em cho qua 2 nhông để giảm tốc độ. bây giờ tính tìm mua con trở cong suất lớn nhưng anh nói quấn đề lại có vẻ hay. giúp em với

                            Comment

                            • swat_heliket
                              Thành viên chính thức
                              • Apr 2011
                              • 52

                              #15
                              các bác giúp em vs. ra tiệm phải nói thế nào để người ta quấn lại cho vừa ??????????????

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...