Selamat datang di ForSa! Forum diskusi seputar sains, teknologi dan pendidikan Indonesia.

Welcome to Forum Sains Indonesia. Please login or sign up.

Maret 29, 2024, 05:54:49 AM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 134
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 139
Total: 139

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Butuh bantuan interface Keypad 4x4 dengan LCD 2x16

Dimulai oleh riph, Juli 30, 2009, 04:24:42 PM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

riph

Sebelumnya salam kenal untuk member forumsains ini :)

Saya butuh bantuan, saya mau interface Keypad 4x4 ke LCD 2x16 menggunakan MC ATMega8535 & Compiler CodeVision AVR.

Koneksi PIN:
PORTA = LCD
PORTB VCC 5v = Keypad VCC 5v
PORTB.0 (Out 1) = Keypad C1
PORTB.1 (Out 1) = Keypad C2
PORTB.2 (Out 1) = Keypad C3
PORTB.3 (Out 1) = Keypad C4
PORTB.4 (In P) = Keypad R1
PORTB.5 (In P) = Keypad R2
PORTB.6 (In P) = Keypad R3
PORTB.7 (In P) = Keypad R4

PORTB saya set 0-3 Output dengan initial value 1, 4-7 Input dengan status P.
Programnya saya fungsikan agar bila tombol 1 ditekan menampilkan "Keypad = 1" di LCD baris atas dan tombol 2 ditekan menampilkan "Keypad = 2" di LCD baris bawah.

Tapi setelah saya download program ke MC, di LCD langsung tertulis "Keypad = 1" dan "Keypad = 2" padahal tombol belum ditekan sama sekali ???

Programnya sesuai lampiran, mohon bantuan teman2 sekalian ya, maaf kalo baru join udah lancang nanya hehe :)

Too Payz

Kutip dari: riph pada Juli 30, 2009, 04:24:42 PM
Koneksi PIN:
PORTA = LCD
PORTB VCC 5v = Keypad VCC 5v
PORTB.0 (Out 1) = Keypad C1
PORTB.1 (Out 1) = Keypad C2
PORTB.2 (Out 1) = Keypad C3
PORTB.3 (Out 1) = Keypad C4
PORTB.4 (In P) = Keypad R1
PORTB.5 (In P) = Keypad R2
PORTB.6 (In P) = Keypad R3
PORTB.7 (In P) = Keypad R4

PORTB saya set 0-3 Output dengan initial value 1, 4-7 Input dengan status P.
Ini keypad buat sendiri atau Beli modul ?
Lagian Cara penulisan pada program anda kurang tepat.
Yaitu penggunaan if yang terus menerus saat scanning keypad yang seharusnya else if, walaupun sebenarnya tidak salah.

Jika keypad-nya menggunakan modul keypad 4x4 yang udah dibeli n ada rangkaiannya, coba lihat dirangkaiannya apakah ada dioda penyearahnya (biasanya tipe 1N4148).
Kalo ada coba ganti yang sebagai input pin 0-3 dan output 4-7.
Karena program anda kayaknya sudah benar sii...   :D   :D

riph

Kutip dari: Too Payz pada Juli 31, 2009, 05:25:32 PMIni keypad buat sendiri atau Beli modul ?
Lagian Cara penulisan pada program anda kurang tepat.
Yaitu penggunaan if yang terus menerus saat scanning keypad yang seharusnya else if, walaupun sebenarnya tidak salah.

Jika keypad-nya menggunakan modul keypad 4x4 yang udah dibeli n ada rangkaiannya, coba lihat dirangkaiannya apakah ada dioda penyearahnya (biasanya tipe 1N4148).
Kalo ada coba ganti yang sebagai input pin 0-3 dan output 4-7.
Karena program anda kayaknya sudah benar sii...   :D   :D
Keypadnya modul, buatan Innovative Electronic. Oh harusnya else if yah, OK nanti saya ganti :)
Betul di rangkaian keypadnya sudah ada dioda penyearahnya. Input pin 0-3 dan Output 4-7 tapi dengan status awal P dan 1 yah betul?

Iya nih sebelumnya saya pakai keypad 3x4 program serupa jalan, eh ganti ke 4x4 saya adaptasi programnya untuk aplikasi 4x4 malah ga jalan :(

Too Payz

Kutip dari: riph pada Juli 31, 2009, 09:22:32 PM
Betul di rangkaian keypadnya sudah ada dioda penyearahnya. Input pin 0-3 dan Output 4-7 tapi dengan status awal P dan 1 yah betul?
Biasanya waktu menggunakan CodeWizzardAVR saya tidak melakukan inisialisasi DDR pada PORTnya tetapi saat akan menggunakan PORT tersebut barulah DDR di ubah nilainya.
Hal ini untuk mencegah kesalahan penggunaan PORT seandainya jika programnya panjang dan port tersebut digunakan oleh banyak perangkat.

Jadi fungsi DDR masukkan aja dalam fungsi keypad, misal
unsigned char Keypad4x4()
{
     DDRB = 0xf0;    // 0 - 3 sebagai input dan 4 - 7 sebagai output
     PORTB = 0xff;   // kondisi awal PORT berlogika 1 semua
..................
}

akhi

gan, udah bisa blum keypadnya?? gw dah tes juga ternyata keluar keypad=p di LCD..
keypadnya buatan Innovative Electronic juga.. katanya sih pengaruh dari Vcc yg jadi pull up...

buburkacang89

Kutip dari: akhi pada November 23, 2011, 04:22:11 PM
gan, udah bisa blum keypadnya?? gw dah tes juga ternyata keluar keypad=p di LCD..
keypadnya buatan Innovative Electronic juga.. katanya sih pengaruh dari Vcc yg jadi pull up...

gimana gan caranya?? awa juga pake modul keypad Innovative Electronics tapi belum bisa juga