Thông báo

Collapse
No announcement yet.

Xin chỉ cách nâng số ngắt ngoài của 8051

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

  • #16
    Các bác xem chỗ ngắt port nối tiếp, cả 2 cờ ngắt RI & TI đều tác động đến vectơ ngắt ở địa chỉ 23h. Không biết chỗ nầy có liên quan gì đến câu đố của bác MicroDuyphi hay không?

    Comment


    • #17
      Nguyên văn bởi MicroDuyphi Xem bài viết
      Đố vui: Có cách nào xác định được 1 trong 8 ngắt xảy ra mà không cần: quét liên tục, cứ mỗi vòng quét bạn không cần kiểm tra các chân ngắt nối vào 1 port ???

      (Xin lỗi anh em, do vô tình ghé qua thăm BOS cũ, đọc qua, sực nãy ra câu hỏi thấy hay hay.....nên post lên thôi, ko có ý châm chọc ai cả!)

      [ans:..qb.use.m...]
      Dùng thêm mạch bên ngoài hay là chỉ dùng phần mềm để giải quyết ạ ? BÁc nói rõ hơn được ko ? tức là 8 cái ngắt ngoài này ko cần thiết phải nối vào 1 port nữa hay sao ??

      Comment


      • #18
        Làm gì cũng đc :- Thiết kế phần cứng bên ngoài hoặc bằng phần cũng được. Miễn sao giải đáp đc câu đố trên là Ok.
        TO...: NGắt serial không liên can, đang nói đến ngắt ngoài mà.

        Comment


        • #19
          Dùng thử cái mã hóa từ 8 -> 3 được ko bác ? như vậy trong chương trình ngắt mình chỉ cần đọc giá trị của port là bao nhiêu ( giá trị từ 1 ->8) thì giá trị đó sẽ chỉ vị trí tác động(số thứ tự của tác động) trong 8 tác độg gây ngắt. Dùng cách này chỉ xác định được 1 trong 8 ngắt chứ nếu có 2,3 tác động cùng xảy ra thì bó tay !

          Comment


          • #20
            Cách của PUMA có thể sử dụng IC 74xx148 (8 đầu vào, 3 đầu ra mã hóa và 1 đầu ra báo ngắt). Chân báo ngắt có thể nối vào một ngắt ngoài của 8051, 3 chân mã hóa cho vào 3 cổng bất kỳ khác. Khi có 1 trong 8 đầu vào tác động thì đầu ra báo ngắt sẽ tích cực -->gây ngắt-->trong chương trình xử lý ngắt có thể đọc 3 đầu vào mã hóa để xác định tín hiệu ngắt thực sự. Đúng như PUMA nói, cách này không cần quét nhưng không làm được với nhiều ngắt cùng xảy ra. Không hiểu đã giải được câu đố của DuyPhi hay chưa? Hay yêu cầu bài toán cao hơn?

            Thân mến,
            blackmoon.

            Comment


            • #21
              Theo tớ như vầy:
              8 ngắt ngoài được đưa tới 8 ngõ vào của 4051, ngõ ra 4051 nối tới chân INT0.
              dùng 1 timer(2) để tạo 8 xung clock cho 1 mạch đếm 3 trạng thái cấp địa chỉ cho 4051. Thế là khi 1 trong 8 ngắt xảy ra ta có thể xác định xem xung đếm đang ở số mấy, tức là biết được ngắt tương ứng.
              Các này được o các bạn
              !e

              Comment


              • #22
                Nguyên văn bởi blackmoon Xem bài viết
                Cách của PUMA có thể sử dụng IC 74xx148 (8 đầu vào, 3 đầu ra mã hóa và 1 đầu ra báo ngắt). Chân báo ngắt có thể nối vào một ngắt ngoài của 8051, 3 chân mã hóa cho vào 3 cổng bất kỳ khác. Khi có 1 trong 8 đầu vào tác động thì đầu ra báo ngắt sẽ tích cực -->gây ngắt-->trong chương trình xử lý ngắt có thể đọc 3 đầu vào mã hóa để xác định tín hiệu ngắt thực sự. Đúng như PUMA nói, cách này không cần quét nhưng không làm được với nhiều ngắt cùng xảy ra. Không hiểu đã giải được câu đố của DuyPhi hay chưa? Hay yêu cầu bài toán cao hơn?

                Thân mến,
                blackmoon.
                - Dùng giải mã 8 sang 3 vẫn phải KIỂM TRA VÒNG từ 1 đến 8 tức là:
                000 -->001-->010,...111 Như vậy theo mình thấy vẫn chưa thể giải quyết được bài toán trên của mình đưa ra?
                Sư Huynh BlackMoon & anh em có cách nào khác hơn không?

                Comment


                • #23
                  tại vì anh nói là chỉ xác đinh 1 trong 8 ngắt mà ko quét thì em nghĩ dung` mã hóa có thể xác định tức thời luôn là ngắt nào rồi mà ,quét là bước tiếp theo để coi với ngắt đó cần phải làm gì đúng ko ạ ? vậy ý anh DP là khi 1 ngắt nào đó trong 8 ngắt xuất hiện thì tự động nó thực hiện luôn yêu cầu theo ngắt đó chứ ko qua việc quét nữa chứ gì ? Em nghĩ thế này vẫn sử dụng giải mã để biết vị trí ngắt là số mấy ,em có thể thực hiên luôn yêu cầu của ngắt đó (tạm hiểu là ISR của ngắt đó cũng được nhưng thực ra ISR này là do mình đặt ra chứ ko phải phần cứng ) mà ko phải quét hết từ 1 -> 8 , làm như sau anh coi được ko :
                  ; ----- port 1 nối với đầu ra của IC mã hóa
                  ;trong chương trình phục vụ ngắt ngoài :
                  INT0 :
                  MOV A,P1
                  RL A
                  MOV DPTR,#BANG_VECTOR_NGAT
                  JMP @A+DPTR ; lenh nhay gian tiep

                  RETI
                  ;-----------------------
                  ..
                  BANG_VETOR_NGAT :
                  SJMP ISR_0
                  SJMP ISR_1
                  sJMP ISR_2
                  ......
                  ;----
                  vi` SJMP chiem 2 byte nen điểm nhập A ta phải nhân đôi lên(dùng lệnh RL A ) mới nhảy đến đúng vị trí yêu cầu , tại các nhãn ISR 0,1,2... muốn làm gì thì làm .
                  Như vậy là em có thể đọc vị trí của ngắt rồi làm luôn chứ ko quet hết vòng nữa rồi .
                  Nếu ko dùng mã hóa 8 ->3 thì ta có thể dùng chương trình cũng được ,
                  ISR_INT0:
                  mov A,P1
                  mov 30H,#0
                  CHECK :
                  RRC A
                  INC 30H ; thanh ghi 30H là chứa biến vị trí của ngắt
                  JC CHECK ; dịch vào cờ C đến khi có bit 0 xuất hiên
                  MOV A,30H
                  ; có vi trí của ngắt rồi làm tương tự như trên để nhảy đến thực hiện yêu cầu ;ngắt đó
                  MOV DPTR,#BANG_VECTOR_NGAT
                  JMP @A+DPTR ; lenh nhay gian tiep

                  RETI
                  .....
                  ;---------
                  Em chỉ nghĩ đến vậy thôi,nếu ko được nữa thì em cũng bó tay, nếu có sai ở đâu thì mong các anh chỉ giúp .
                  Last edited by PUMA; 16-10-2006, 01:06.

                  Comment


                  • #24
                    Với phần cứng không hỗ trợ nhiều ngắt như vậy thì cách của PUMA là tốt nhất rồi, anh DuyPhi đến lúc phải tòi đáp án ra rồi đấy, hihi
                    Cảm ơn PUMA.

                    Comment


                    • #25
                      Cách 1 ở trên của PUMA cần nói thêm là không chỉ áp dụng được cho mạch có giải mã 8-->3 mà còn dùng cho mạch không cần thêm bất kỳ phần cứng nào khác.

                      Thật ra nếu chú ý thì ngay từ đầu mình đã có câu trả lời rồi:
                      PS:..ans là answer: Trả lời
                      qbm: là trong quang báo ứng dụng lệnh MOVE để giải quyết bài toán trên.
                      Đến đây chấm hết.
                      Mong Anh em cứ tiếp tục thảo luận và có nhiều vấn đề hay!

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      • nhathung1101
                        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                        bởi nhathung1101
                        Vừa thử lại, con loa kẹo kéo Tầu giá 1tr2 và loa Pionner.

                        Thử đọc chứ chưa hát:

                        - Ủa ái ni thì loa tàu ra đúng.

                        - Ủa ái ni trên con Pionner thành Ùa ái ni. Mà từ "ái" lại rõ to.

                        Thử "chèm...
                        hôm nay, 00:23
                      • nhathung1101
                        Trả lời cho Sửa bộ nguồn DC 60V 45A
                        bởi nhathung1101
                        Nhưng anh em nào còn đam mê sửa nguồn thì cứ cố gắng.
                        Tiền số đang có giá, mà nguồn cho bọn "trâu cày" toàn vài Kw.
                        Làm được vẫn sống tốt. Tôi thì nghỉ hưu rồi.

                        Hôm trước có ku em năn nỉ tôi sửa cho nó cái nguồn 12V/170Amp. Tôi bảo đi mua cái mới.
                        hôm nay, 00:02
                      • nhathung1101
                        Trả lời cho Sửa bộ nguồn DC 60V 45A
                        bởi nhathung1101
                        Ngày xưa, còn làm với bên viễn thông (giờ chẳng thèm làm vì công bèo).
                        Tôi sửa nguồn, tối thiểu phải đủ công cụ:
                        - Osciloscope.
                        - Logic Analyzer (để làm với chuẩn truyền thông)
                        - Đồng hồ đo dòng. Đồng hồ đo áp. Đồng...
                        Hôm qua, 23:43
                      • nhathung1101
                        Trả lời cho Sửa bộ nguồn DC 60V 45A
                        bởi nhathung1101
                        Thì không cấp nguồn là an toàn nhất rồi còn gì? Lo gì cháy nổ.
                        Còn đo đạc thì kiểm tra huyết áp hay nhịp tim ở cô hàng xóm vậy.

                        Còn Mèo thì toàn xúi thâm, thằng nào nghe cứ lãnh đủ. Chuyên lừa chuột non....
                        Hôm qua, 23:32
                      • nhathung1101
                        Trả lời cho Trình điều khiển bước rời rạc
                        bởi nhathung1101
                        "Chú ấy" ở bên Quảng Đông đấy. Đang bị "rã rời" rồi, nên đừng hướng vào con đường tội lỗi nữa....
                        Hôm qua, 23:26
                      • nhathung1101
                        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                        bởi nhathung1101
                        Loa Tầu nó đáp ứng được tiếng VN, vì mấy câu hát kiểu "oăng oẳng như sủa" Nhật nó không có. Nó chỉ hát kiểu "đục đục chạc chạc" thôi.
                        Nếu thấy loa Tầu hay, thì gỡ cái mác SONY gắn vào là xong. Còn cái loa Nhật thì vứt luôn, chỉnh làm quái gì.
                        ...
                        Hôm qua, 23:17
                      • since0501
                        Trả lời cho Pin Li-FePO4 (pin sắt) rất dể hỏng! Các biện pháp ngăn ngừa.
                        bởi since0501
                        Mình đào mộ xíu, cho mình hỏi là pin của bác vẫn ok chứ? Mình vừa đóng khối pin 16 cell 40135 thì khi chạy điện áp nó sụt so với khi nghỉ như video mình dẫn link, vậy cho mình hỏi là dung lượng pin sẽ tính khi áp nghỉ hay áp đang hoạt động, và pin sụt áp như vậy là bình thường hay pin kém?
                        ht...
                        Hôm qua, 17:56
                      • mèomướp
                        Trả lời cho Sửa bộ nguồn DC 60V 45A
                        bởi mèomướp
                        Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                        10-01-2025, 13:11
                      • tuyennhan
                        Trả lời cho Sửa bộ nguồn DC 60V 45A
                        bởi tuyennhan
                        Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                        10-01-2025, 09:25
                      • tuyennhan
                        Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                        bởi tuyennhan
                        Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                        Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                        10-01-2025, 09:10
                      Đang tải...
                      X