Thông báo

Collapse
No announcement yet.

Hỏi về cách quét cổng để tăng số ngắt ngoài 8051

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

  • Hỏi về cách quét cổng để tăng số ngắt ngoài 8051

    Chào mọi người. Mình cần nâng số ngắt ngoài của 8051. Đọc trong diễn đàn thấy có topic bàn về việc này nhưng có chỗ không hiều. Đây là hướng giải quyết về phần cứng đã được giải đáp trên diễn đàn:
    Đầu tiên 8 ngắt ngoài này sẽ đấu vào 1 port của 8051 (P1 chẳng hạn).
    Sau đó xét 2 trường hợp :
    1- : Ngắt ngoài của bạn loại tác động mức 1 hoặc sườn lên : 8 ngắt này sẽ đồng thời đấu đền ngõ vào của 1 cổng NOR, ngõ ra của NOR đấu đến INT của 8051.
    2- : Ngắt ngoài của bạn loại tác động mức 0 hoặc sườn xuống : 8 ngắt này sẽ đồng thời đấu đền ngõ vào của 1 cổng AND, ngõ ra của AND đấu đến INT của 8051.
    Như vậy khi có một ngắt xảy ra, sẽ có 1 ngắt ngoài cho 8051, lúc đó phần mềm xử lý ngắt sẽ đọc trạng thái cổng P1 để biết ngắt nào đang xảy ra để xử lý tiếp.
    Vậy, phương pháp quét cổng để xác định ngắt là như thế nào. Xin pà koan chỉ giúp. Thanks !!!

  • #2
    đọc xong chả hiểu j, mà nối ngắt kiểu j cho 8 chân của 1port
    Website chính thức đổi địa chỉ website thành
    Mời các bạn ghé thăm !!!

    Comment


    • #3
      em thấy cách này cũng hay đấy chứ, như thế thì có thể nhân lên thành 8 ngắt ngoài rồi, trong chương trình xử lí ngắt đầu tiên ta cho lệnh kiểm tra cổng p1 xem ngắt nào được thực hiện thì nhảy đến ngắt đó. cũng hay thanks phát

      Comment


      • #4
        Có sư huynh nào giúp giùm với!!!

        Comment


        • #5
          ko biết bạn dùng làm gì tới 8 ngắt ngoài, 1 cái ngắt ngoài mà mình còn chưa bao giờ dùng nữa, sao không dùng quét kiểm tra trạng thái các chân cho nhanh bạn, chu kì của 89 là 1us ( thạch anh 12 Mhz ) quá đủ để bạn vừa kiểm tra trạng thái các chân vừa làm việc khác

          Comment


          • #6
            Mình muốn nâng số ngắt ngoài lên để dùng nhiều switch điều khiển nhiều đèn hơn. Mọi người ai giúp giùm phương pháp quét cổng để xác định ngắt với!!!

            Comment


            • #7
              đọc trạng thái từ sw thì dùng phuơng pháp đọc trạng thái từng chân rồi điều khiển đèn cũng được chứ gì đâu bạn dùng ngắt chi mắc công zay, còn nếu bạn dùng 8 switch điều khiển 8 đèn thì càng đơn giản, giả sử switch gắn port 1, đèn gắng port 2, switch on là 1 off là 0 và đèn on là 1 off là 0 thì trong code bạn chỉ đơn giản làm 1 việc :

              C:
              while(1) P2=P1;

              ASM:
              main:
              mov P2,P1
              jmp main

              Comment


              • #8
                Nguyên văn bởi trimen Xem bài viết
                đọc trạng thái từ sw thì dùng phuơng pháp đọc trạng thái từng chân rồi điều khiển đèn cũng được chứ gì đâu bạn dùng ngắt chi mắc công zay, còn nếu bạn dùng 8 switch điều khiển 8 đèn thì càng đơn giản, giả sử switch gắn port 1, đèn gắng port 2, switch on là 1 off là 0 và đèn on là 1 off là 0 thì trong code bạn chỉ đơn giản làm 1 việc :

                C:
                while(1) P2=P1;

                ASM:
                main:
                mov P2,P1
                jmp main
                Mình muốn giảm thiểu số chân kết nối á bạn. Như là hướng giải quyết phần cứng đầu topic á. Mong bạn xem giúp.

                Comment


                • #9
                  Nguyên văn bởi kid1417 Xem bài viết
                  Chào mọi người. Mình cần nâng số ngắt ngoài của 8051. Đọc trong diễn đàn thấy có topic bàn về việc này nhưng có chỗ không hiều. Đây là hướng giải quyết về phần cứng đã được giải đáp trên diễn đàn:
                  Đầu tiên 8 ngắt ngoài này sẽ đấu vào 1 port của 8051 (P1 chẳng hạn).
                  Sau đó xét 2 trường hợp :
                  1- : Ngắt ngoài của bạn loại tác động mức 1 hoặc sườn lên : 8 ngắt này sẽ đồng thời đấu đền ngõ vào của 1 cổng NOR, ngõ ra của NOR đấu đến INT của 8051.
                  2- : Ngắt ngoài của bạn loại tác động mức 0 hoặc sườn xuống : 8 ngắt này sẽ đồng thời đấu đền ngõ vào của 1 cổng AND, ngõ ra của AND đấu đến INT của 8051.
                  Như vậy khi có một ngắt xảy ra, sẽ có 1 ngắt ngoài cho 8051, lúc đó phần mềm xử lý ngắt sẽ đọc trạng thái cổng P1 để biết ngắt nào đang xảy ra để xử lý tiếp.
                  Vậy, phương pháp quét cổng để xác định ngắt là như thế nào. Xin pà koan chỉ giúp. Thanks !!!
                  Đây là cách mở rộng ngắt ngoài của AVR còn 89 mình nghĩ làm thế này cũng đc, kết nối mạch như thế kia là bạn có 8 cái ngắt rồi đấy.
                  Tại chân ngắt ngoài phải có 1 con điện trở 10K nối lên VCC nữa, hình bị vẽ thiếu.
                  Attached Files
                  Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
                  Liên hệ sđt: 0902.808.371

                  Comment


                  • #10
                    Thế này có được ko ?
                    Mà nếu nhiều nữa thì là nối quách nó với cái Matrix Key. Hoặc nhiều nữa nữa thì nối với cái bàn phím máy tính.
                    Attached Files

                    Comment


                    • #11
                      Nếu quét trạng thái chân thì khi có delay sẽ bị quét trễ. nếu cho quét chân cả vào trong delay thì delay ko còn chính xác nữa, và tốn bộ nhớ. như vậy cách tốt nhất là sử dụng ngắt ngoài. trên họ 8051 chỉ có 2 chân cho phép ngắt ngoài. bây giờ phải làm sao với 8 chân đây. nhỡ mình cần nhiều hơn thì sao?

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X