Bạn nào biết cách nâng số ngắt ngoài lên 8 mà chỉ dùng 2 ngắt ngoài của 8051. 8 ngắt này lại phải kích hoạt timemer để đếm thời gian một cách riêng biệt khi có tin hiệu từ 8 nguồn khác nhau.Xin các ban giúp với.
Thông báo
Collapse
No announcement yet.
Xin chỉ cách nâng số ngắt ngoài của 8051
Collapse
X
-
Tui có 1 giải pháp :
Đầ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.Imagine all the people
Living life in peace...
-
có cách này (tôi chưa kiểm chứng), bạn thử cho 8 nguồn ngắt nối vào 1 port của VDK - ví dụ port1 chẳng hạn. đông thời 8 chúng cũng được AND hoặc OR với nhau để tạo một tín hiệu OUT nối với chân ngắt ngoài VDK. Tôi nói AND hoặc OR là do tính toán và lựa chọn của bạn sao cho cứ một trong 8 thằng trên sinh ra ngắt thì tín hiệu OUT cũng tạo ra ngắt tại chân ngắt ngoài. Khi có ngắt thì tại hàm phục vụ ngắt bạn scan cổng 1 để xem nguồn ngắt phát sinh từ đâu -> OK
Chúc thành công.CUNG CẤP PSOC, MẠCH NẠP
CHUYỂN ĐỔI USB <-> RS485 AutoBaud
RS232 <-> RS485 MultiBaud
MẠCH NẠP USBPPI S7-200
Mobile: 0906076116
Email:
Comment
-
2 cách trên giống nhau mà !!!! giải pháp hay thật,đúng là còn rất nhiều điều phải học hỏi các bác !!! Bác Toymaker này ,liệu có thể dùng tiết kiệm port 1 chút được ko ? vd như qua thêm 1 con mã hóa chẳng hạn như vậy chỉ tốn có 3 chân của VDK để đọc ? hà hà như vậy ta có thể dùng giải pháp này để quét bàn phím bằng ngắt ngoài cũng được chứ nhỉ ?có vẻ hơi phí ngắt ngoài nhưng nếu VDk làm nhiều việc quá mà cần can thiệp bằng bàn phím vào lúc bất kỳ thì cái này có vẻ có ích đấy chứ ?
Comment
-
Em hiểu ý Toymaker rồi , tại vì ở đây mang tiếng là nhiều ngắt ngoài nhưng thực sự chỉ tác động cho 1 ngắt trong VDK thôi nên ko có ưu tiên ngắt . 2 ngắt đồng thời ở đây là có 2 sự kiện cùng gây ra cái ngắt ngoài đó cùng lúc và trong chương trình phục vụ ngắt ta chỉ scan port để biết có những tác động nào đang gây ra ngắt đó, như vậy là vẫn có thể vẫn biết đang có nhiều sự kiện gây nên ngắt bên ngoài cùng xảy ra. Bác DUYCUONG hỏi vấn đề này cho ứng dụng gì vậy ??Nguyên văn bởi animo Xem bài viếtBản thân các ngắt của 8051 cũng có thứ tự ư tiên rồi, chỉ có thể xử lý ngắt trong ngắt thôi chứ làm gì xử lý 2 ngắt đồng thời được. Nếu mình mở rộng ngắt thì cũng phải có thứ tự ưu tiên chứ.
Comment
-
Good solution! Thank you!Nguyên văn bởi toymaker Xem bài viếtTui có 1 giải pháp :
Đầ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.
Comment
-
Vào ngắt bạn chỉ cần quét liên tục, cứ mỗi vòng quét bạn kiểm tra các chân ngắt nối vào 1 port như đã nói, chân nào còn tích cực thì bạn tăng giá trị trong ô nhớ chứa thời gian ngắt của ngắt đó lên, đến lúc nào tất cả các chân đều hết tích cực thì thoát ngắt.Nguyên văn bởi duycuong289 Xem bài viếtcám ơn các bạn , nhưng tôi cần thiết kế timer ra sao để phục vụ cho 8 tin hiệu ngắt trên 1 cách riêng biệt ( VD như đếm thời gian từ lúc bắt đầu đến lúc hết ngắt)
Cái này yêu cầu thời gian của ngắt duy trì dài nhất phải nhỏ hơn thời gian xảy ra 1 trong các ngắt mới! Tức các ngắt không được xảy ra quá nhanh và thời gian kết thúc tất cả các ngắt phải đủ ngắn!
Comment
-
Đố 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 ???Nguyên văn bởi natra2k2 Xem bài viếtVào ngắt bạn chỉ cần quét liên tục, cứ mỗi vòng quét bạn kiểm tra các chân ngắt nối vào 1 port như đã nói, chân nào còn tích cực thì bạn tăng giá trị trong ô nhớ chứa thời gian ngắt của ngắt đó lên, đến lúc nào tất cả các chân đều hết tích cực thì thoát ngắt..........................!
(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...]
Comment
-
được chứ! Bạn nên cho mọi người biết ý đồ bạn định làm gì. Bạn bạn nên thử thì biết!Nguyên văn bởi duycuong289 Xem bài viếtvậy tôi có thể chạy timer riêng biệt trong lúc ngắt để tạo xung clock hay không?
Comment
-
Chắc chắn rồi. Dĩ nhiên là có.Nguyên văn bởi natra2k2 Xem bài viếtko quét sao biết được nhỉ, em chịu thôi, phải chăng cần thêm mạch phụ trợ bên ngoài nữa, bác ra câu hỏi thì phải có đáp án à nha!
Comment
Bài viết mới nhất
Collapse
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
hôm nay, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -

Comment