Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Selamat datang, Pengunjung. Silahkan masuk atau mendaftar. Apakah anda lupa aktivasi email?

Mei 22, 2022, 10:07:04 AM

Masuk dengan nama pengguna, kata sandi dan lama sesi

Topik Baru

Artikel Sains

Anggota
  • Total Anggota: 26747
  • Latest: loutlos
Stats
  • Total Tulisan: 139629
  • Total Topik: 10386
  • Online Today: 51
  • Online Ever: 441
  • (Desember 18, 2011, 12:48:51 AM)
Pengguna Online
Users: 0
Guests: 49
Total: 49

Ikuti ForSa

ForSa on FB ForSa on Twitter

Penulis Topik: hubungan keypada 3 x 4 dengan at89s51  (Dibaca 7047 kali)

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline hafidzar

  • Siswa Baru
  • *
  • Tulisan: 1
  • IQ: 1
hubungan keypada 3 x 4 dengan at89s51
« pada: April 26, 2010, 12:33:43 AM »
Saya menghubungkan keypad 3 x 4 ke at89s51 dengan susunan pin sbb :
Keypad 3 x 4   At89s51
C1                P0.0
C2                P0.1
C3                P0.2
R1                P0.4
R2                P0.5
R3                P0.6
R4                P0.7
vcc   
   
Lalu saya membuat program dengan bascom sbg berikut
$regfile = "8051.dat"
$crystal = 11059200
$baud = 9600
CONFIG LCDPIN = PIN, DB4=P1.4,DB5=P1.4,DB6=P1.6,DB7.P1.7,E=P1.2,RS=P1.0
CONFIG LCD = 16 *2

CLS
if P0 =&HFF then
     lcd “tombol tidak ditekan”
else
      lowerline   
      lcd  “tombol ditekan”
endif

ketika dijalankan pada lcd tampil “tombol tidak ditekan” ketika salah satu keypad saya tekan (tombol apa saja) yang muncul tetap “tombol tidak ditekan” seharusnya “tombol ditekan”.
Ketika vcc pada keypad dan saya hubungkan dengan negatif hasilnya tetap seperti diatas.
Mohon pencerahan.



Offline 0y1k

  • Dosen
  • ****
  • Tulisan: 233
  • IQ: 3
  • Gender: Pria
  • بسم الله
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #1 pada: Mei 06, 2010, 03:00:19 PM »
Wah.. Saya terbiasa dengan bahasa C :-P
Maksud dari P0 =&HFF itu sama seperti gini gak?
P0 = P0 & HFF

atw maksudnya lain?
لاَ إِلَـهَ إِلاَّ اللهُ الْعَظِيْمُ الْحَلِيْمُ، لاَ إِلَـهَ إِلاَّ اللهُ رَبُّ الْعَرْشِ الْعَظِيْمُ، لاَ إِلَـهَ إِلاَّ اللهُ رَبُّ السَّمَاوَاتِ وَرَبُّ اْلأَرْضِ وَرَبُّ الْع

Offline kuin

  • Dosen
  • ****
  • Tulisan: 121
  • IQ: 0
  • Gender: Pria
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #2 pada: Mei 11, 2010, 07:34:41 PM »
pemasangan keypad boleh sembarang terhadap PORT. yang penting semuanya dipetakan.

lakukan scanning kolom dan baris keypad.

manfaatkan intruksi logika seperti   "&"

Offline muflih

  • Mahasiswa
  • **
  • Tulisan: 22
  • IQ: 5
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #3 pada: Mei 12, 2010, 01:24:04 PM »
Maksud dari P0 =&HFF adalah port 0 semua bernilai 1 (jika tidak ada penekanan tombol). jika salah satu tombol keypad ditekan berarti adalah yang bernilai 0. tapi kok ketika saya menekan salah satu tombol keypad yang muncul hasilnya tetap "tidak ada penekanan tombol".

Offline 0y1k

  • Dosen
  • ****
  • Tulisan: 233
  • IQ: 3
  • Gender: Pria
  • بسم الله
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #4 pada: Mei 13, 2010, 05:59:28 AM »
Maksud dari P0 =&HFF adalah port 0 semua bernilai 1 (jika tidak ada penekanan tombol). jika salah satu tombol keypad ditekan berarti adalah yang bernilai 0. tapi kok ketika saya menekan salah satu tombol keypad yang muncul hasilnya tetap "tidak ada penekanan tombol".

eh bentar mau nanya dulu nih bung.. hehehe
cara bedakan port itu sebagai input dan ouput ada ga?? sebelumnya dikasih tahu dulu yang mana input dan ouput.. takutnya portnya yang bung muflih itu hanya sebagai port...
atau otomatis port bisa langsung sebagai input dan output? gitu??
k'lo di bahasa C ada perintah yang bedakan port sebagai input dan ouput
DDRA = 0xFF (menandakan PORTA sebagai output)
DDRA = 0x00 (menandakan PORTA sebagai input)
DDRA = 0x0F (menandakan PORTA.0 sampai PORTA.3 sebagai output dan sisanya input)
begitulah sekiranya bung... ditakutkan belum ada pendefinisian tentang input dan ouputnya

Offline muflih

  • Mahasiswa
  • **
  • Tulisan: 22
  • IQ: 5
hubungan keypada 3 x 4 dengan at89s51
« Jawab #5 pada: Mei 15, 2010, 12:54:51 PM »
nga ada pendefenisian input dan outputnya. saya sekarang lagi belajar secara otodidak jd banyak nga ngertinya.saya baca buku bahwa jika keypad tidak ada ditekan paka outputnya semua 1 jika ada ditekan salah satu tombol maka ada yang bernilai 0 . jd saya ingin buktikan dengan program bascom diatas. jadi mohon masukan dan pencerahan bagai mana seharusnya? scanning itu apa sih ?

Offline 0y1k

  • Dosen
  • ****
  • Tulisan: 233
  • IQ: 3
  • Gender: Pria
  • بسم الله
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #6 pada: Mei 15, 2010, 01:01:05 PM »
nga ada pendefenisian input dan outputnya. saya sekarang lagi belajar secara otodidak jd banyak nga ngertinya.saya baca buku bahwa jika keypad tidak ada ditekan paka outputnya semua 1 jika ada ditekan salah satu tombol maka ada yang bernilai 0 . jd saya ingin buktikan dengan program bascom diatas. jadi mohon masukan dan pencerahan bagai mana seharusnya? scanning itu apa sih ?
wah sulit juga yah k'lo ga ada pembedaan output dan inputnya
kayaknya ada deh.. hehehehe

sy mahir dalam C nih.. bukan bascom. maaf

Offline Too Payz

  • Dosen
  • ****
  • Tulisan: 260
  • IQ: 7
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #7 pada: Mei 15, 2010, 09:31:48 PM »
Kutip
k'lo di bahasa C ada perintah yang bedakan port sebagai input dan ouput
DDRA = 0xFF (menandakan PORTA sebagai output)
DDRA = 0x00 (menandakan PORTA sebagai input)
DDRA = 0x0F (menandakan PORTA.0 sampai PORTA.3 sebagai output dan sisanya input)
begitulah sekiranya bung... ditakutkan belum ada pendefinisian tentang input dan ouputnya
Bukan masalah bahasa C-nya tapi masalah mikrokontrollernya.
Mikro AVR dan MCS51 berbeda untuk pengaturan IO-nya

AVR ada 3 register yang berpengaruh :
- DDRx = Data Direction Register, Register yang menentukan "arah" apakah input atau output.
- PORTx = Register OUTPUT.
- PINx = Register INPUT.

Sedangkan MCS51 hanya perintah PORTx saja.
Apakah itu Output atau Input ditentukan dari Hardware-nya.
Makanya Logika pada Port MCS51 sangat terpengaruh keadaan logika dari luar dan ini kelemahan MCS51.

Kutip
Lalu saya membuat program dengan bascom sbg berikut
$regfile = "8051.dat"
$crystal = 11059200
$baud = 9600
CONFIG LCDPIN = PIN, DB4=P1.4,DB5=P1.4,DB6=P1.6,DB7.P1.7,E=P1.2,RS=P1.0
CONFIG LCD = 16 *2

CLS
if P0 =&HFF then
     lcd “tombol tidak ditekan”
else
      lowerline  
      lcd  “tombol ditekan”
endif
Pantes aja "tombol tidak ditekan", lha di tekan ga ditekan tetap FF tuh...
Lihat rangkaian schematik keypad dan coba pelajari logika hardware keypad..

Udah liat blogku.. ?  ::)   ::)
Baca-baca yaa...   ;D   ;D

Tapi coba logikanya gini (sori ga ngerti BASCOM juga:  ::)   ::))
P0 = HFE            >> sejak awal logika P0 selalu FE kalo bisa jgn didalam looping
if P0 ==HFE then
     lcd “tombol tidak ditekan”
if P0.4 ==0 then         >> ganti P0==HEE atau P0==HDE atau P0==HBE atau P0==H7E
      lowerline  
      lcd  “tombol X”
endif
delay(xx)            >> jangan lupa tundaan biar perubahan tampilan LCD kelihatan

dah... mudah-mudahan Ceraaah...   ;D   ;D   ;)
« Edit Terakhir: Mei 15, 2010, 09:47:41 PM oleh Too Payz »

Offline 0y1k

  • Dosen
  • ****
  • Tulisan: 233
  • IQ: 3
  • Gender: Pria
  • بسم الله
Re: hubungan keypada 3 x 4 dengan at89s51
« Jawab #8 pada: Mei 17, 2010, 12:42:02 AM »
Kutip
k'lo di bahasa C ada perintah yang bedakan port sebagai input dan ouput
DDRA = 0xFF (menandakan PORTA sebagai output)
DDRA = 0x00 (menandakan PORTA sebagai input)
DDRA = 0x0F (menandakan PORTA.0 sampai PORTA.3 sebagai output dan sisanya input)
begitulah sekiranya bung... ditakutkan belum ada pendefinisian tentang input dan ouputnya
Bukan masalah bahasa C-nya tapi masalah mikrokontrollernya.
Mikro AVR dan MCS51 berbeda untuk pengaturan IO-nya

AVR ada 3 register yang berpengaruh :
- DDRx = Data Direction Register, Register yang menentukan "arah" apakah input atau output.
- PORTx = Register OUTPUT.
- PINx = Register INPUT.

Sedangkan MCS51 hanya perintah PORTx saja.
Apakah itu Output atau Input ditentukan dari Hardware-nya.
Makanya Logika pada Port MCS51 sangat terpengaruh keadaan logika dari luar dan ini kelemahan MCS51.

Kutip
Lalu saya membuat program dengan bascom sbg berikut
$regfile = "8051.dat"
$crystal = 11059200
$baud = 9600
CONFIG LCDPIN = PIN, DB4=P1.4,DB5=P1.4,DB6=P1.6,DB7.P1.7,E=P1.2,RS=P1.0
CONFIG LCD = 16 *2

CLS
if P0 =&HFF then
     lcd “tombol tidak ditekan”
else
      lowerline   
      lcd  “tombol ditekan”
endif
Pantes aja "tombol tidak ditekan", lha di tekan ga ditekan tetap FF tuh...
Lihat rangkaian schematik keypad dan coba pelajari logika hardware keypad..

Udah liat blogku.. ?  ::)   ::)
Baca-baca yaa...   ;D   ;D

Tapi coba logikanya gini (sori ga ngerti BASCOM juga:  ::)   ::))
P0 = HFE            >> sejak awal logika P0 selalu FE kalo bisa jgn didalam looping
if P0 ==HFE then
     lcd “tombol tidak ditekan”
if P0.4 ==0 then         >> ganti P0==HEE atau P0==HDE atau P0==HBE atau P0==H7E
      lowerline   
      lcd  “tombol X”
endif
delay(xx)            >> jangan lupa tundaan biar perubahan tampilan LCD kelihatan

dah... mudah-mudahan Ceraaah...   ;D   ;D   ;)

oh iyah, tampaknya emang terletak pada perbedaan mikronya.. hehehe
maklum ga pernah make keluarga MCS-51 (jadul sih)

 

Related Topics

  Subyek / Dimulai oleh Jawaban Tulisan terakhir
6 Jawaban
15309 Dilihat
Tulisan terakhir Januari 31, 2007, 10:05:24 AM
oleh sautom
248 Jawaban
80198 Dilihat
Tulisan terakhir Mei 28, 2010, 02:50:13 AM
oleh Pi-One
18 Jawaban
20302 Dilihat
Tulisan terakhir Mei 12, 2012, 11:30:22 AM
oleh ahmad m.s
6 Jawaban
6191 Dilihat
Tulisan terakhir September 28, 2010, 12:11:18 PM
oleh adisae
6 Jawaban
6358 Dilihat
Tulisan terakhir September 07, 2011, 11:40:41 AM
oleh Pi-Man