Saya telah menggunakan PIC16F877( lembar data ) untuk beberapa proyek. Untuk interupsi penggantian pin eksternal tunggal, Anda dapat menggunakan PORTB0interupsi. Tapi sekarang saya perlu mendukung 8 interupsi penggantian pin eksternal independen, dalam satu sirkuit.
Dalam datasheet dikatakan ada 15 interupsi PIC16F877, tetapi saya kira itu dihitung termasuk timer overflow interupsi dll ... yang tidak berguna dalam kasus ini.
Inilah yang dikatakan lembar data tentang INTCONdaftar.

Bisakah saya memiliki 4 interupsi independen menggunakan bit0 RBIF,? Ini mewakili perubahan PB7:PB4. Bagaimana saya bisa mengidentifikasi pin mana yang berubah, apakah dengan membaca nilai port dalam rutin interupsi?
Bahkan saya mendapat jawaban positif di atas, saya butuh 8 interupsi? tentu saja saya masih bisa menggunakan INTE, untuk PORTB0perubahan. Lalu 4 + 1 = 5, tapi bagaimana dengan 3 lainnya? (Namun karena semua 8 peristiwa interupsi memiliki tipe yang sama, 4 + 1 + 3 = 8masalahnya tampak jelek, bukan?)
Tidak ada tugas berat lain yang diharapkan dari mikrokontroler lain yang memantau 8 pin. (Berbicara tentang tugas-tugas lain, itu harus mempertahankan satu set variabel penghitung yang terpisah dan sering mengirimkan sekitar 4 byte ke PC secara seri)
Setiap saran dipersilahkan. Bahkan jika itu tentang mengubah mikro-controller untuk yang lebih cocok (tapi uh .. jangan bilang pergi dari PICs).