My Geo Map

Sponsor Links

AmericasBest.com

09 November 2008

AVR ATmega to LCD Programmable

LCD is very important in programming because we can’t use debug program. We need to display the result of calculation, variable or other to the LCD to know the program processing that we make. LCD can displaying the result data from the sensor, and can be interaction between microcontroler with the human.

The type LCD that we use is M1632. This LCD have when each row using 16 characteristic. This device is easy to operate and need the low power. For interfacing circuit, LCD don’t need a much of the support component. We need only one resistor and resistor variable to give the contrast voltage to the matrix of LCD.
This is the table of the pin LCD:


This the LCD circuit to microcontroller:




When we want to display the string to the LCD is easy. We are need a tool to compile our listing with CodeVision AVR. You can having with download from the site http://www.hpinfotech.ro. You must install this program and set this program like picture inside:

In menu setting, choose programmer and make setting programmer in Programmer setting and doing changing this setting like this


After those, make a new project that appropriate with the listing that will make. Attention this block program:

//Alphanumeric LCD Module functions

#asm

.equ _lcd_port=0x15 ;PORTC

#endasm

#include

The block must be participate if we ‘ll make Generate file way….and automatically its will done. The meaning of the instruction block above is to set LCD to the PORT C and then linking in library lcd.h that the inside of those provide the instructions for access to the LCD.

This is the listing program that can be to practice our skill:

#include

//Alphanumeric LCD Module functions

#asm

.equ _lcd_port=0x15 ;PORTC

#endasm

#include

// Declare your global variables here

Void main (void)

{

// Declare your local variables here

// Input / Output Ports initialization

// Port A 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

PORTA=0x00;

DDRA=0x00;

// PORT B 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

PORTB=0x00;

DDRB=0x00;

// PORT C 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

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

// Mode: Normal top=FFh

//OC0 output: Disconnected

TCCR0=0x00;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer 1 Stopped

// Mode: normal top=FFFh

// 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

// INT2: Off

MCUCR=0x00;

MCUCSR=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=0x00;

SFIOR=0x00;

// LCD module initialization

Lcd_init(16); //inisialisasi LCD

Lcd_gotoxy(0,0); //menempatkan posisi di 0,0

//kolom 0, baris 0

lcd_putsf(“Halo..”): //menampilkan string Halo..

lcd_gotoxy(0,1); //menempatkan posisi

//kolom 0, baris1

Lcd_putsf(“Nama saya Joni”); //menampilkan string

While (1)

{

// Place your code here

}

}

Lets to practice and Good Luck.

The End.



Advertisement