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!





Ndry, bahas PWM dong..
PWM, coming soon…
Hmm.. Port 0 tuh bermasalah saat dibaca. Alasannya lupa.. :p
Anyway, Port 0 yang bisa menjadi Z (high impedance) tuh juga bisa menjadi Port yang powerfull. Kalo Port 0 diset Z, berarti ga ada arus yang mengalir kan? hehehe..
@baguspewe:
Bener tuch… Thx masukannya…
Kalau datasheet dibaca betul-betul, port 0 itu memang internal pull up nya tidak aktif pada waktu dipakai sebagai port. Pull up aktif waktu port0 jadi bus data. Tapi ya itulah, biasanya kan kalau udah kejeblos baru baca datasheet.
Oh ya, kalau keukeuh menggunakan port 0 sebagai output, tambahkan saja resistor pull up di situ, 1k cukup lah.
Hohoho… Akhirnya sang ahli berkomentar juga ;p
Emang sih, banyak practitioner yang biasanya langsung mencoba tanpa membaca detil datasheet dari komponen yang digunakan (termasuk saya ;p hehehe)
kalo saya R pull up biasanya 10 k, kalo udah di Pull up mah aman buat I/O, P 0 emang biasa di pake buat Bus data ma Address (0-7).
wah sudah ada pak waskita yang berkomentar langsung
ngeri..
mabok..
saya juga biasanya cuma baca datasheet di bagian yg perlunya aja pak
@bowo:
Itu juga bisa jadi alternatif. thx masukannya…
@narpen:
wkwkwkwk… Sepakat! emang klo datasheet dibaca semua bisa mabok tuh!