Reset digunakan untuk menempatkan mikrokontroler ke kondisi 'dikenal/known'. Itu berarti pada penggunaanya mikrokontroler dapat berjalan diluar keinginan. Maka supaya mikrokontroler dapat terus berfungsi perlu dilakukan pengaturan ulang, yang berarti semua register akan ditempatkan pada posisi awal. Reset tidak hanya digunakan ketika mikrokontroler tidak berjalan seperti yang kita inginkan, tetapi juga dapat digunakan ketika mencoba perangkat sebagai interupsi dalam pelaksanaan program, atau supaya mikrokontroler siap ketika loading program.
Untuk mencegah logika nol terbawa ke pin MCLR secara tidak sengaja ( reset tersebut diaktifkan dengan nol logis), MCLR harus dihubungkan melalui resistor ke kutub suplai positif. Resistor memiliki nilai antara 5 dan 10K. Resistor tersebut fungsinya adalah untuk menjaga pin MCLR pada satu logis sebagai pencegahan, teknik ini dinamakan Pull up.
Mikrokontroler PIC16F84 memiliki beberapa sumber me-reset:
a) Reset saat power on, POR (Power-On Reset)
b) Reset ketika mikrokontroler bekerja dengan memberika logika nol pada pin MCLR .
c) Reset selama kondisi sleep
d) Reset pada penjaga waktu (watchdog timer) (WDT) overflow
e) Reset saat overflow WDT selama kondisi sleep.
Sumber reset paling penting adalah a) dan b). Yang pertama terjadi setiap kali power supply diberikan ke mikrokontroler dan berfungsi untuk membuat semua register dan eksekusi program ke posisi awal. Yang kedua adalah dengan cara memberikan logika nol pada pin MCLR selama pengoperasian normal mikrokontroler. Sumber reset yang kedua sering digunakan dalam pengembangan program.
Selama reset, lokasi memori RAM tidak diatur ulang. RAM tidak berubah di reset apapun. Yang berubah keposisi awal adalah Register SFR. Salah satu efek yang paling penting dari reset adalah menetapkan program counter (PC) ke nol (0000H), yang memungkinkan program untuk memulai eksekusi dari instruksi tertulis pertama.
Reset Ketika Suplai Tegangan Drop/di bawah diijinkan (Brown-out Reset)
Impulse untuk reset selama teganan-naik yang dihasilkan oleh mikrokontroler itu sendiri ketika mendeteksi peningkatan pasokan Vdd (berkisar dari 1.2V ke 1.8V). Dorongan itu berlangsung 72ms yang memberikan cukup waktu bagi osilator untuk mendapatkan kondisi stabil. 72ms ini disediakan oleh timer PWRT internal . Mikrokontroler dalam mode reset selama PWRT aktif. Namun, sebagai perangkat kerja, masalah muncul ketika pasokan tidak drop ke nol tapi turun di bawah batas yang menjamin berfungsinya mikrokontroler. Kasus ini mungkin terjadi ketika penggunaan, terutama di lingkungan industri dimana gangguan dan ketidakstabilan pasokan listrik merupakan kejadian sehari-hari. Untuk mengatasi masalah ini kita perlu memastikan bahwa mikrokontroler dalam kondisi reset setiap kali suplai tegangan jatuh di bawah limit yang telah ditentukan.
Selama reset, lokasi memori RAM tidak diatur ulang. RAM tidak berubah di reset apapun. Yang berubah keposisi awal adalah Register SFR. Salah satu efek yang paling penting dari reset adalah menetapkan program counter (PC) ke nol (0000H), yang memungkinkan program untuk memulai eksekusi dari instruksi tertulis pertama.
Reset Ketika Suplai Tegangan Drop/di bawah diijinkan (Brown-out Reset)
Impulse untuk reset selama teganan-naik yang dihasilkan oleh mikrokontroler itu sendiri ketika mendeteksi peningkatan pasokan Vdd (berkisar dari 1.2V ke 1.8V). Dorongan itu berlangsung 72ms yang memberikan cukup waktu bagi osilator untuk mendapatkan kondisi stabil. 72ms ini disediakan oleh timer PWRT internal . Mikrokontroler dalam mode reset selama PWRT aktif. Namun, sebagai perangkat kerja, masalah muncul ketika pasokan tidak drop ke nol tapi turun di bawah batas yang menjamin berfungsinya mikrokontroler. Kasus ini mungkin terjadi ketika penggunaan, terutama di lingkungan industri dimana gangguan dan ketidakstabilan pasokan listrik merupakan kejadian sehari-hari. Untuk mengatasi masalah ini kita perlu memastikan bahwa mikrokontroler dalam kondisi reset setiap kali suplai tegangan jatuh di bawah limit yang telah ditentukan.
Jika, menurut spesifikasi listrik, rangkaian reset internal mikrokontroler tidak dapat memenuhi kebutuhan, komponen elektronik khusus dapat digunakan yang mampu menghasilkan sinyal reset diinginkan. Selain fungsi ini, rangkaian ini juga dapat berfungsi untuk menjaga tegangan suplai. Jika penurunan tegangan di bawah tingkat yang ditentukan, logika nol akan muncul pada pin MCLR yang membuat mikrokontroler dalam keadaan reset sampai tegangan tidak dalam batas yang menjamin kinerja yang akurat.