Thông báo

Collapse
No announcement yet.

Giao tiếp giữa 2 vi điều khiển.

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

  • Giao tiếp giữa 2 vi điều khiển.

    Mình đang viết code cho 1 bài, nhưng làm hoài mà VDK B không nhận được dữ liệu khi mình mô phỏng trên Proteus.
    2 vdk 89c51 cách nhau 5m. VDK A gửi dữ liệu cho VDK B. VDK A có 1 nút nhấn SW. Khi nút nhấn ĐÓNG thì VDK B sẽ sáng 8 đèn led từ trái sang phải và tự
    động lặp lại. KHi nút nhấn MỞ thì VDK B sẽ sáng led đầu tiên, các led còn lại tắt.
    Các bạn giúp mình với!!! Mình viết code có ngắt để nhận và phát và dữ liệu. Nhưng mình không biết là chương trình chính có phải là chương trình kiểm tra nút nhấn hay không??? Hay tất cả code sáng 8 led từ trái sang phải đều nằm trong chương trình phục vụ ngắt ISR??? còn chuơng trình chính chỉ nhảy tại chỗ.
    Nếu các bạn code thì cho mình tham khảo nha.
    Cám ơn các bạn đã đọc chủ đề của mình!!!

  • #2
    quá đơn giản. Cho 8951 B lấy dữ liệu từ 1 port và xuất ra port khác liên tục ko cần delay 8951 A quyết định việc sáng đèn. Còn ko thích thì cứ viết chương trình sáng đèn cho 8951B rồi chờ 8951 A thay đổi trạng trái từ thấp lên cao hay gì đó tùy bạn, 8951 B nhận việc thay đổi trạng thái mà làm việc.
    Cái này chỉ là xuất có điều kiện bên ngoài chứ giao tiếp gì. Ko cần tới ngắt cũng đc

    Comment


    • #3
      đêy là code mình viết cho VDK B, không dùng ngắt port nối tiếp. NHưng không biết sai gì mà lại không chạy, không nhan dc dữ liệu!!! Bạn xem giúp mình nha!!!

      ORG 0000H
      MOV SCON,#50H
      MOV TMOD,#20H
      MOV TH1,#-12
      SETB TR1
      MAIN:
      JNB RI,$
      CLR RI
      MOV P2,SBUF
      JNB P2.0,LB
      MOV P1,#00000001B
      CALL DELAY
      JMP MAIN
      LB:
      MOV A,#00000001B
      LB1:
      MOV P1,A
      CALL DELAY
      CLR C
      RLC A
      JC MAIN
      JMP LB1

      Comment


      • #4
        Code:
        ORG	 0000H
        
        MAIN:
        MOV	R0,#8
        MOV	A,#00H
        SETB	ACC.7
        MAIN2:
        JNB	 P2.0,LB
        RL	A
        MOV	P1,A
        CALL	DELAY
        DJNZ	R0,MAIN2
        SJMP	 MAIN
        LB:
        MOV	 A,#00000001B
        MOV	P1,A
        JNB	 P2.0,$
        SJMP	MAIN
        DELAY:	
        	MOV	R7,#5
        	MOV	TMOD,#11H
        LOOPD:	MOV	TH0,#HIGH(-50000)
        	MOV	TL0,#LOW(-50000)
        	SETB	TR0
        	JNB	TF0,$
        	CLR	TF0
        	DJNZ	R7,LOOPD
        	CLR	TR0
        RET
        END
        chân p2.0 nối với 8951 A . Khi có sự thay đổi trạng thái ở chân p2.0 ( do 8951 A quyết định ) 8951 B sẽ chạy theo ý bạn nói ở trên

        Comment


        • #5
          Bạn chung nói cho mô phỏng à.Thực tế mà 5m thì với 8 dây thì lấy cáp rj45 nhé.DÙng 2 dây xuất áp vi sai.Chứ kô thì nhiễu lắm.
          , , ,

          Comment


          • #6
            Nguyên văn bởi rptdnmqs Xem bài viết
            Bạn chung nói cho mô phỏng à.Thực tế mà 5m thì với 8 dây thì lấy cáp rj45 nhé.DÙng 2 dây xuất áp vi sai.Chứ kô thì nhiễu lắm.
            5 m sài cách tăng áp truyền bằng transistor lên 12V rồi truyền đi là đc. Nếu đã ko truyền data thì phức tạp hóa lên làm gì

            Comment


            • #7
              Nguyên văn bởi chung1608 Xem bài viết
              Code:
              ORG	 0000H
              
              MAIN:
              MOV	R0,#8
              MOV	A,#00H
              SETB	ACC.7
              MAIN2:
              JNB	 P2.0,LB
              RL	A
              MOV	P1,A
              CALL	DELAY
              DJNZ	R0,MAIN2
              SJMP	 MAIN
              LB:
              MOV	 A,#00000001B
              MOV	P1,A
              JNB	 P2.0,$
              SJMP	MAIN
              DELAY:	
              	MOV	R7,#5
              	MOV	TMOD,#11H
              LOOPD:	MOV	TH0,#HIGH(-50000)
              	MOV	TL0,#LOW(-50000)
              	SETB	TR0
              	JNB	TF0,$
              	CLR	TF0
              	DJNZ	R7,LOOPD
              	CLR	TR0
              RET
              END
              chân p2.0 nối với 8951 A . Khi có sự thay đổi trạng thái ở chân p2.0 ( do 8951 A quyết định ) 8951 B sẽ chạy theo ý bạn nói ở trên
              BẠN ƠI!
              Hình như bạn nhầm thì phải, do đề của mình không rõ. hihi
              MÌnh nói vi dieu khien A truyền dữ liệu cho vi dieu khien B, thông qua TxD, RxD đó pạn. Truyền port nối tiếp đó. Và ý mình nói sử dụng ngắt ở đây là xử lý ngắt port nối tiếp. Có cần phải sử dụng ngắt port nối tiếp hay không???
              Cám ơn bạn nha. Đề mình nêu chưa rõ. VDK A chỉ nối với VDK B thông qua 2 chân Txd Rxd thôi. Truyền dữ liệu VDK A sang VDK B. Nút nhấn SW của A.

              Comment


              • #8
                Ax.Giao tiếp UART hay USRT thì bạn nói trước chứ.Làm mọi người loay hoay với cái đâu đâu.
                , , ,

                Comment


                • #9
                  Nguyên văn bởi ronaldodtvt Xem bài viết
                  BẠN ƠI!
                  Hình như bạn nhầm thì phải, do đề của mình không rõ. hihi
                  MÌnh nói vi dieu khien A truyền dữ liệu cho vi dieu khien B, thông qua TxD, RxD đó pạn. Truyền port nối tiếp đó. Và ý mình nói sử dụng ngắt ở đây là xử lý ngắt port nối tiếp. Có cần phải sử dụng ngắt port nối tiếp hay không???
                  Cám ơn bạn nha. Đề mình nêu chưa rõ. VDK A chỉ nối với VDK B thông qua 2 chân Txd Rxd thôi. Truyền dữ liệu VDK A sang VDK B. Nút nhấn SW của A.
                  ko hiểu truyền data đi làm gì trong khi data truyền ko để làm gì cả
                  Attached Files

                  Comment


                  • #10
                    Cám ơn bạn nhiều nha. Đây là 1 bài tập mà Thầy yêu cầu làm sau khi học phần truyền port nối tiếp. Ah. Nếu bài này mình viết mà sử dụng ngắt port nối tiếp có được không bạn???

                    Comment


                    • #11
                      Nguyên văn bởi ronaldodtvt Xem bài viết
                      Cám ơn bạn nhiều nha. Đây là 1 bài tập mà Thầy yêu cầu làm sau khi học phần truyền port nối tiếp. Ah. Nếu bài này mình viết mà sử dụng ngắt port nối tiếp có được không bạn???
                      được, nếu là 1 ứng dụng thì nên dùng ngắt

                      Comment


                      • #12
                        các anh giúp em với. em đang làm 1 bài thiết kế liên quan đến giao tiếp 2 vi điều khiển. em không biết cho 2 vi điều khiển ấy giao tiếp bằng cách nào?
                        đề tài cụ thể là thế này ạ:


                        Giao tiếp 2 vi điều khiển trong đó:
                        Vi điều khiển 1 – matter
                        Vi điều khiển 2 – Slaver
                        Vi điều khiển 1: có 2 bàn phím điều khiển tác động qua ngắt INT0, INT1
                        Vi điều khiển 2: + có bộ nhớ 28C64 (bộ nhớ EFPROM) chứa chương trình điều khiển 8 led
                        + port 0: 8led đơn
                        Yêu cầu:
                        - Khi chưa nhấn phím điều khiển 8 led nháy đuổi theo chu trình D0 đến D7
                        - Khi nhấn phím INT0: led nháy theo chu trình:
                        + led sáng lan dần từ trong ra
                        + sau đó 8 led nhấp nháy 10 lần và tắt dần từ ngoài vào trong
                        Quá trình sau đó sẽ lặp lại
                        - Khi nhấn INT1
                        +led sáng lan dần từ trái sang phải
                        +8led nhấy nháy 10 lần rồi tắt dần từ phải sang trái
                        Quá trình sẽ lặp lạị

                        thanks

                        Comment


                        • #13
                          rất tiễc bạn firefox về quê rồi buồn thật,một cao thủ vsl đấy các bạn ah

                          Comment


                          • #14
                            giao tiếp đơn giản nhất là port nối port, hoặc thường dùng là RS232
                            Tư vấn thiết kế hệ thống điện-điện tử theo yêu cầu.
                            Tel: 0903 702 417. Email: web:

                            Comment


                            • #15
                              các anh có thể giúp em phần viết chương trình được không ạ? em viết chương trình giao tiếp 2 con đó mà chạy k được
                              Last edited by vananh18; 28-10-2011, 13:56.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X