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

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

Maret 29, 2024, 05:12:13 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: 135
Total: 135

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

[ASK] LCD 2x16 pake MK Atmega8 kok cuman nyala backlight??

Dimulai oleh blackrose87, Juni 30, 2010, 02:08:28 AM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

blackrose87

Saudara satu guru satu ilmu... mohon pencerahannya donk.
Ane mau nanya nih... Ane lagi bikin alat sensor nitrat yang nampilin kadar nitrat di LCD 2x16, pake MK atmega8 jadi ADC+Driver LCDnya... tapi apakah yang terjadi?? LCD nyala tapi cuman backlightnya aja, kagak nongol tulisannya... kira kira yang salah apanya ya bro? software-nya apa rangkaiannya?

ane pusing banget nih... mana deadline tinggal 2 minggu alat masih gak beres2 juga... mohon pencerahannya...  :'(
thanks...

ane kasih rangkaianMK + listing programnya (CVAVR) barangkali ada yang bisa bantu analisa...

Gambar rangkaian MK-nya


pin-pin di header pin (JP)
JP4.1 => BLK (Backlight katoda) <Ground>
JP4.2 => VSS <Ground>
JP4.3 => Vo
JP4.4 => VDD <voltage=+5V)
JP4.5 => BLA (Backlight anoda)

JP3.1 => RS
JP3.2 => R/W
JP3.3 => E
JP3.4 => D4
JP3.5 => D5
JP3.6 => D6
JP3.7 => D7

Listingnya

#include <mega8.h>
#include <stdio.h>
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>

#define ADC_VREF_TYPE 0x20

// ADC interrupt service routine
int kadar_nitrat;
char adc_data;

interrupt [ADC_INT] void adc_isr(void)
{

// Read the 8 most significant bits
// of the AD conversion result
ADCSRA.6=0;
ADCSRA.7=0;

adc_data=ADCH;

ADCSRA.6=1;
ADCSRA.7=1;

kadar_nitrat=(adc_data/80)*1000;

// Place your code here

}

// Declare your global variables here

void main(void)
{
char kadar[16];
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0xFF;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AREF pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x8A;

// LCD module initialization
lcd_init(16);

// Global enable interrupts
#asm("sei")

while (1)
{
// Place your code here
&nbsp;
lcd_clear(); &nbsp;
lcd_gotoxy(0,1);
lcd_putsf("Nama Ane");
lcd_gotoxy(1,3);
lcd_putsf("NIM Ane");
delay_ms(2000);
start:
lcd_clear();
lcd_gotoxy(0,0); &nbsp; &nbsp;
lcd_putsf("Kadar Nitrat= ");
lcd_gotoxy(1,0);
sprintf(kadar," %d mikromolar",kadar_nitrat);
lcd_puts(kadar); &nbsp;
delay_ms(500);
goto start;

};
}


Sekali lagi mohon bantuannya... :'(



0y1k

coba cek masalah kontrasnya...
pin 3 LCD tuh
puter-puter trimpotnya
لاَ إِلَـهَ إِلاَّ اللهُ الْعَظِيْمُ الْحَلِيْمُ، لاَ إِلَـهَ إِلاَّ اللهُ رَبُّ الْعَرْشِ الْعَظِيْمُ، لاَ إِلَـهَ إِلاَّ اللهُ رَبُّ السَّمَاوَاتِ وَرَبُّ اْلأَرْضِ وَرَبُّ الْع

Too Payz

Xixixixixixiii.......  ;D   ;D   ;D   :D
JP4.3 kan buat mengatur kontrasnya... udah diputer-puter...???

Masalahnya coba lihat JP4.4, itu buat VDD (supply) rangkaian driver (IC-IC) pada LCD kan..
nah itu belum terhubung ke supply 5 volt.
Jadi kontras LCD dan driver LCD belum dapat supply apa-apa...
Hubungkan dlu ke VCC, trus coba lg dah...

Met mencoba  ;)   ;)   :D

blackrose87

Sudah saya coba puter2...

cuman muncul kotak2 semua...
kira2 apanya yang salah yaa?? kok gak nongol tulisannya... malah kotak2 doang.... help me please... thanks for the attention...

haglan

dicoba ajh dulu pake program biasa sekedar nampilin tulisan ajh gitu jadi ga .. kalo jadi kemungkinan ada masalah di program yg kmu buat

blackrose87


danielektro04

Saya lihat ada 2 masalah utama di wiring:
1. Untuk Pin JP4.2 seharusnya Vcc bukan Ground
   JP4.1 => BLK (Backlight katoda) <Ground>
   JP4.2 => VSS <Ground> (salah) --> seharusnya VCC.
   JP4.3 => Vo

2. Untuk wiring ke pin Data+Control LCD mikro

   

rizqi_fs

KLo munculnya kotak-kotak, bisa jadi muternya kebanyaken, jadi terlalu kontras hi.. hi.., coba diputer dikit2 terus dicoba

ikhwanpcr

Wah saya kurag ngerti dengan c. kalao di bascom kan kita menyesuaikan configurasi pin mikro yang kita gunakan dengan pin lcdnya. kalo seperti itu biasanya masalah configurasi kaki mikro sama kaki lcd yang gak sesuai pas di programnya makanya gak muncul muncul.. kalo saya lihat, backlight lcd kan kaki 15(+) dan 16 (-). kita bisa lngsung test kok pas awal beli mengunakan multimeter analog sekalipun lihat lcdnya bagus ato gak hubungkan aja kaki itu dengan porb nya multi sesuaikan ya positive sama sama positive dan sebaliknya... (ini trik pas waktu beli lcd pertama kali)..

kalo untuk kontras kan ada trimpot yang di hubungkan ke 1,2,3 lcd. kalo kotaknya dah muncul berarti bukan disini kenanya.. soalnya trimpot di putar sebelum di hubungkan ke kaki mikro akan munbul seperti ini.

trus kalo data yang tidak muncul, coba cek kaki data lcd nya sama kaki mikronya... saya sering kena disini.. kadang kabel datanya gak bagus nancepnya... biasanya saya masalah disini.. hmmm kalo di bascom kaki data lcdnya 11,12,13,14 ...
untuk c beda kayaknya ... coba cek kaki enable, rs ,dan rw.  pastikan kaki rw terhubung ke ground... kalo gak tergubung ke ground data gak bakal muncul di lcd dari mikro...

selamat mencoba...

dhan_t46

hehehe, lcd nya jelek. atau progrmnya yang jelek, atau circuitnya yang jelek.

trouble shooting aja sendiri. kalo lcd nya yang warna hijau ngga perlu pakai potentiometer langsung aja pin contrasnnya di gndkan, kalo lcdnya warna biru perlu pakai potentiometer.

nah kalo pake code vision hardware harus menyesuiakan dengan program codevision, kecuali bikin subrutin lcd manual, wkwkwkwkwkwkw,
manja.

untuk ngecek program bener atau ngga pakai simulasi proteus.

chebyshev

coba pake program sederhana dulu om,,bisa tampil g,
sambil di puter2 tu trimpot yang ke LCD nya :D