Thông báo

Collapse
No announcement yet.

Đố vui về PIC, các câu đố cực vui và cực hay... hehe..

Collapse
This topic is closed.
X
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nguyên văn bởi KHHGD
    em xin hỏi các bác !!! Làm thế nào để em có thể mở rộng số ngắt ngoài cho PIC .Em xin hết(cụ thể em cần tới 16 ngắt ngòai chẳng hạn)
    Không giám qua mặt các bác !!!
    Cách 1: nối 16 lối vào vào 16 chân PIC, sau đó dùng vài IC số thiết kế mạch AND 16 lối vào này và lối ra cho vào chân INT ngoài.
    Khi có ngắt, chỉ chân đọc 16 chân của PIC sẽ xác định được nguồn ngắt?
    Cách này tạm chấp nhận được ko?
    Nhưng chú đố hay là chú hỏi? phải phân biệt rõ đó. He he...
    -------------------

    Comment


    • He he he !!! CÁch cảu bác cũng được nhưng tốn chân quá !!! Vậy em muốn dùng 32 ngắt thì phải mất 32 chân hả !!!

      Comment


      • Tại chú ko nói rõ yêu cầu tiết kiệm chân chớ.
        Nếu dùng chuyển mạch điện tử kiểu như 4051 chọn kênh thì chỉ mất khoảng: 6-7 chân tất cả với 32 đầu vào
        -------------------

        Comment


        • Bác định dùng MUX hả !!! he he he !!! Như thế vẫn chưa tiết kiệm 1 chân !!!

          Comment


          • Bác dùng cái khác sẽ tiết kiệm hơn 1 chân

            Comment


            • Nguyên văn bởi KHHGD
              Bác dùng cái khác sẽ tiết kiệm hơn 1 chân
              Tóm lại là chú thiết kế 32 kênh cần bao nhiêu chân? Ví dụ N chân, thì tớ có giải pháp N-1 chân ngay. He he...
              -------------------

              Comment


              • Đáp số ít chân nhất có thể là:
                1 chân ngắt
                2 chân I/O
                Vậy mất 3 chân tất cả. Chú mở rộng ra ba vạn sáu ngàn kênh cũng chỉ mất tất cả 3 chân thôi.
                -------------------

                Comment


                • Vậy bây giờ tui đố lại chú, 4 chân uC(trong đó có 1 chân ngắt ngoài), chú làm sao làm mở rộng được 100 ngắt ngoài?
                  -------------------

                  Comment


                  • Hihi... thấy bài toán hay hay, em lại muốn vào tham gia diễn đàn rùi.
                    Cách sử dụng 3 chân: INT+ 2 chân I/O như thế này:
                    Giả sử có N đầu vào ngắt và tích cực theo mức L:
                    -Ta dùng N diot+1 điện trở tạo thành mạch AND. Lối ra cho vào chân INT của uC.
                    -Dùng N/8 con ghi dịch 8 bit, nối nối tiếp với nhau, và các chân Load được nối với nhau và nối với INT.
                    -Khi có ngắt, thì dữ liệu được nạp vào ghi dịch, ta chỉ cần viết lệnh dùng 2 chân để làm Clock, một chân để nhận data.
                    Vậy kết quả có thể lên 3 vạn chín ngàn kênh như anh CB nói, mà tốn chỉ 1 chan ngắt ngoài + 2 chân I/O bất kỳ. Hihi...

                    Comment


                    • Nguyên văn bởi thaithutrang
                      Hihi... thấy bài toán hay hay, em lại muốn vào tham gia diễn đàn rùi.
                      Cách sử dụng 3 chân: INT+ 2 chân I/O như thế này:
                      Giả sử có N đầu vào ngắt và tích cực theo mức L:
                      -Ta dùng N diot+1 điện trở tạo thành mạch AND. Lối ra cho vào chân INT của uC.
                      Mong 3T giải thích rõ hơn về cách nối N diode thành cổng AND, mà sao lại là AND mà không phải là OR?
                      Nếu được mong 3T vẽ hình cho mọi người cùng chiêm ngưỡng.
                      Cảm ơn.
                      Một bông hồng cho những ai đang còn mẹ,
                      Đang còn mẹ để lòng vui sướng hơn ..

                      Comment


                      • N1-------<|----------COM
                        N2-------<|----------COM
                        .....
                        Nn-------<|----------COM
                        Chân COM nối chung nhau và nối với chân ngắt và đồng thời nối 1 điện trở khoảng 2.2 K lên Vcc.
                        Khi Ni=0 thì COM=0, vậy sinh ra ngắt. Còn khi tất cả Ni=1(mọi i) thì COM=1.

                        Comment


                        • Cách của bác CB và 3T rất hay !!! Nhưng 3T đã tính đến khoảng thời gian mà Ngắt của 3T yêu cầu đến khi được phục vụ chưa !!!
                          Quay trở lại câu hỏi em đã hỏi !!!
                          Với 32 đường vào ngắt thì em dùng một mạch Encoder tạo thành tổ hợp mã có 5 bit twcs là dùng 5 chân của Port .Còng đường báo ngắt thì dùng như của 3T không ai chê được rồi !!!
                          Vấn đề bây giờ làm thế nào để xây dựng đưởng bảng véc tơ ngắt động sao cho thời gian đáp ứng là ngắn nhất với số câu lệnh ít nhất ,thời gian sử dụng CPU là ngắt nhất (Kể từ khi có ngắt đến khi xác định được nguồn báo ngắt và gọi chương trình phục vụ ngắt !!!)
                          Không giám qua mặt các cao thủ !!!

                          Comment


                          • Nguyên văn bởi KHHGD
                            Cách của bác CB và 3T rất hay !!! Nhưng 3T đã tính đến khoảng thời gian mà Ngắt của 3T yêu cầu đến khi được phục vụ chưa !!!
                            Quay trở lại câu hỏi em đã hỏi !!!
                            Với 32 đường vào ngắt thì em dùng một mạch Encoder tạo thành tổ hợp mã có 5 bit twcs là dùng 5 chân của Port .Còng đường báo ngắt thì dùng như của 3T không ai chê được rồi !!!
                            Vấn đề bây giờ làm thế nào để xây dựng đưởng bảng véc tơ ngắt động sao cho thời gian đáp ứng là ngắn nhất với số câu lệnh ít nhất ,thời gian sử dụng CPU là ngắt nhất (Kể từ khi có ngắt đến khi xác định được nguồn báo ngắt và gọi chương trình phục vụ ngắt !!!)
                            Không giám qua mặt các cao thủ !!!
                            Tại anh đưa ra câu đố không chặt chẽ mà cứ theo ý của anh. Đáng lẽ anh phải post từ đầu là yêu cầu:
                            1-Tốn ít cổng nhất.
                            2-Tốn ít thời gian nhất
                            Thỉnh thoảng, anh lại thêm một điều kiện thế thì..hihi...
                            vậy em lại thêm điều kiện: tốn ít chân nhất, mạch đơn giản nhất.. thì sao?

                            Comment


                            • Cách mã hóa của anh KHHGD sẽ có thể bị lỗi bỏ sót ngắt nếu >1 ngắt đồng thời xảy ra.

                              Comment


                              • Còn việc mã hóa 2^N đường(1 lúc chỉ được 1 kênh) thành N đường thì kiến thức cơ bản rồi. Có lẽ câu này ko nên đưa vào đây

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X