Hati-hati menggunakan Port pada 8051

26 04 2008

Sekedar berbagi pengalaman, bagi para pengguna uC 8051 (MCs51) khususnya bagi para pemula berhati-hatilah menggunakan port pada 8051 (AT89C51/52, AT89S51/52) Anda khususnya port0. Mengapa?

Jawabannya adalah dari sisi hardware, port0 tidak dapat digunakan untuk men-drive logika ‘1′ (5 volt). Port0 baik digunakan untuk proses “sink” yaitu proses menerima logika ‘0′. Bila dipaksa untuk mendrive logika ‘1′, maka port0 ini akan mengeluarkan nilai ‘Z‘ (High-Impedance). Dari sisi software (khususnya bagi Anda para pengguna C), jangan meng-assign P0 di mana P0 merupakan input dari statement tersebut, seperti

P0 = P0 << 1;

sebaiknya Anda menggunakan temporary terlebih dahulu. Contoh:

temp = P0 << 1;
P0 = temp;

Semoga bermanfaat! :D