YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

1 Praktikum Mikrokontroler 1 (MKR 1)

PENDAHULUAN

Tujuan Umum:

1. Mahasiswa mengerti prosedur dan cara menggunakan software CodeVisionAVR

berbasis bahasa pemrograman C dengan baik dan benar

2. Mahasiswa memahami arsitektur dan prinsip kerja akses digital I/O pada

mikrokontroler AVR khususnya tipe ATMega8535

3. Mahasiswa bisa mengendalikan digital I/O pada mikrokontroler AVR khususnya tipe

ATMega8535 dan teknik interfacingnya dengan aplikasi berupa: LED, switch,

7segment, dan LCD

Teori Dasar

1. Arsitektur ATMega8535

AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur

RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu

siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan

mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog

Timer, dan mode power saving. Beberapa diantaranya mempunyai ADC (Analog to Digital

Converter) dan PWM (Pulse Width Modulation) internal. AVR juga mempunyai In-System

Programmable Flash on-chip yang mengizinkan memori program untuk diprogram ulang

dalam sistem menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk praktikum

adalah ATmega8535.

ATmega8535 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur

RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock,

ATmega8535 mempunyai throughput mendekati 1 MIPS per MHz.

Beberapa fitur dari AVR ATmega8535 antara lain:

Advanced RISC Architecture

o 130 Powerful Instructions – Most Single Clock Cycle Execution

o 32 x 8 General Purpose Working Registers

o Fully Static Operation

Page 2: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

2 Praktikum Mikrokontroler 1 (MKR 1)

o Up to 16 MIPS Throughput at 16 MHz

o On-chip 2-cycle Multiplier

Nonvolatile Program and Data Memories

o 8K Bytes of In-System Self-Programmable Flash

Endurance: 10,000 Write/Erase Cycles

o Optional Boot Code Section with Independent Lock Bits

In-System Programming by On-chip Boot Program

True Read-While-Write Operation

o 512 Bytes EEPROM

Endurance: 100,000 Write/Erase Cycles

o 512 Bytes Internal SRAM

o Programming Lock for Software Security

Peripheral Features

o Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes

o One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture

Mode

o Real Time Counter with Separate Oscillator

o Four PWM Channels

o 8-channel, 10-bit ADC

8 Single-ended Channels

7 Differential Channels for TQFP Package Only

2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP

Package Only

o Byte-oriented Two-wire Serial Interface

o Programmable Serial USART

o Master/Slave SPI Serial Interface

o Programmable Watchdog Timer with Separate On-chip Oscillator

o On-chip Analog Comparator

Special Microcontroller Features

o Power-on Reset and Programmable Brown-out Detection

o Internal Calibrated RC Oscillator

Page 3: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

3 Praktikum Mikrokontroler 1 (MKR 1)

o External and Internal Interrupt Sources

o Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down,

o Standby and Extended Standby

I/O and Packages

o 32 Programmable I/O Lines

o 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF

Operating Voltages

o 2.7 - 5.5V for ATmega8535L

o 4.5 - 5.5V for ATmega8535

Speed Grades

o 0 - 8 MHz for ATmega8535L

o 0 - 16 MHz for ATmega8535

Gambar 1.1 Pin-pin ATMega8535 kemasan 40-pin

2. Akses I/O pada AVR

Terdapat tiga register yang dapat dipakai untuk mengakses port-port AVR yang

digunakan sebagai digital I/O, yaitu: PORTx, PINx, dan DDRx. Index x disesuaikan dengan

port yang akan dipakai (Atmega8535 mempunyai empat port yang diberi nama port-A, port-

B, port-C, dan port-D).

Page 4: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

4 Praktikum Mikrokontroler 1 (MKR 1)

Register PORTx digunakan untuk mengeluarkan data ke pin. Register PINx digunakan

untuk membaca data dari pin. Register DDRx digunakan untuk mengatur arah aliran data

pada pin. Blok diagram lengkap dari arsitektur pin ATMega8535 sebagai digital I/O dapat

dilihat pada gambar 1.3.

Contoh untuk membuat port-D sebagai output dan mengeluarkan data bernilai 60

heksa dalam bahasa C menggunakan aplikasi Code Vision AVR.

DDRD=0xFF; //semua port-D menjadi port output

PORTD=0x60; //keluarkan data 60 heksa ke port-D

Contoh untuk membuat port-C sebagai port input dan membaca data dari port-C dalam

bahasa C menggunakan aplikasi Code Vision AVR.

DDRC=0x00; //semua port-C menjadi port input

i=PINC; //pindahkan isi pada port-C ke variabel i

Pada saat port digunakan sebagai input, instruksi PORTx dapat digunakan untuk

mengaktifkan resistor pull-up atau tidak. Contohnya sebagai berikut.

DDRC=0x00; //semua port-C menjadi port input

PORTC=0xFF ; //semua pin pada port-C diberi pull-up

i=PINC; //pindahkan isi pada port-C ke variabel i

DDRC=0x00; //semua port-C menjadi port input

PORTC=0x00 ; //semua pull-up pada port-C dimatikan

i=PINC; //pindahkan isi pada port-C ke variabel i

3. Alur Pemrograman

Untuk membuat program di dalam mikrokontroler AVR, kita bisa menggunakan

berbagai macam bahasa pemrograman, seperti: assembly, C, dan basic. Pada praktikum ini,

kita menggunakan bahasa pemrograman C melalui software CodeVisionAVR.

Page 5: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

5 Praktikum Mikrokontroler 1 (MKR 1)

CodeVisionAVR adalah salah satu software pemrograman mikrokontroler AVR.

Fasilitas wizard yang disediakan adalah salah satu kelebihan yang dimiliki software ini

sehingga membantu pengguna untuk melakukan pemrograman.

Program yang dibuat ditulis menggunakan bahasa-C. Kemudian dikompilasi untuk

mendapatkan file.hex. Selanjutnya file.hex tersebut diisi ke dalam IC mikrokontroler dan

diujicoba melalui pengamatan indikator atau bisa juga dengan pengukuran.

Gambar 1.2 Alur pemrograman AVR menggunakan CodeVisionAVR

Gambar 1.3 Arsitektur pin sebagai digital I/O

Page 6: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

6 Praktikum Mikrokontroler 1 (MKR 1)

PERCOBAAN 1

Aplikasi Port Sebagai Output Menggunakan LED

Tujuan:

Setelah melakukan praktikum ini diharapkan:

1. Mahasiswa bisa menggunakan software CodeVisionAVR berbasis bahasa

pemrograman C dengan prosedur yang benar

2. Mahasiswa bisa mengendalikan nyala LED sebagai port keluaran mikrokontroler

dengan teknik dan kombinasi yang diinginkan secara baik dan benar

Peralatan yang digunakan:

1. Modul mikrokontroler AVR

2. Komputer

Rangkaian percobaan

Gambar 1.4 Rangkaian sistem minimum mikrokontroler ATMega8535

Page 7: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

7 Praktikum Mikrokontroler 1 (MKR 1)

Gambar 1.5 Rangkaian aplikasi LED

Prosedur Percobaan

1. Buka program CodeVisionAVR dengan menekan klik ganda icon pada dekstop

komputer.

2. Pilih File – New – Project - Ok.

3. Selanjutnya pilih Yes untuk menggunakan CodeWizardAVR.

4. Pilih chip ATMega8535 dan clock 8MHz, dengan mengikuti isi sesuai gambar 1.6.

5. Lalu setting port-A sebagai output dengan cara memilih Ports, lalu pada Port A ubah

In menjadi Out mulai dari Bit 0 sampai dengan Bit 7.

6. Jika selesai, pilih File – Generate, Save and Exit.

7. Arahkan direktori ke dalam folder yang anda buat sebelumnya, lalu ketik nama file

dengan Percobaan1. Tekan Save. Lakukan sampai tiga kali.

8. Ketikkan program yang diinginkan atau sesuai contoh pada daftar program

percobaan 1.

9. Lakukan compile dengan cara menekan gambar atau tombol F9. Jika tidak ada

error tekan OK. Bila ada error, maka periksa program yang anda ketik. Lalu ulangi

lagi.

Page 8: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

8 Praktikum Mikrokontroler 1 (MKR 1)

Gambar 1.6 Wizard Chip Gambar 1.7 Wizard ports

10. Hubungkan kabel ISP downloader dari terminal USB komputer ke jalur downloader

pada modul praktikum. Hidupkan power supply pada board AVR.

11. Untuk mengisi program yang telah dibuat ke dalam chip, maka terlebih dahulu setting

programmer yang digunakan dengan cara pilih Settings – Programmer pada menu

bar. Selanjutnya muncul gambar seperti gambar 1.8. Pilih tipe programmer AVRProg

(AVR910) dengan baudrate 115200, untuk COM sesuaikan dengan device manager.

12. Pada menu bar, Project – Configure – After Make pilih Program the Chip

13. Pilih Project – Make atau Project – Build atau bisa juga dengan menekan shift + F9

untuk men-download program. Hubungkan konektor port-A dengan konektor LED.

Amati yang terjadi dan dianalisa!

14. Lakukan untuk semua contoh program percobaan. Lalu selesaikan tugas yang

diberikan dengan menunjukkan hasilnya kepada dosen yang mengampuh!

Page 9: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

9 Praktikum Mikrokontroler 1 (MKR 1)

Gambar 1.8 Programmer settings

Daftar program percobaan 1:

1. Membuat LED menyala semua #include <mega8535.h>

void main(void)

{

PORTA=0x00;

DDRA=0xFF;

while (1)

{

PORTA=0xff;

};

}

2. Membuat LED menyala kedip #include <mega8535.h>

#include <delay.h>

void main(void)

{

PORTA=0x00;

DDRA=0xFF;

while (1)

{

PORTA=0xff;

delay_ms(200);

PORTA=0x00;

delay_ms(200);

};

}

3. Membuat LED menyala berjalan #include <mega8535.h>

void main(void)

{

PORTA=0x00;

DDRA=0xFF;

while (1)

Page 10: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

10 Praktikum Mikrokontroler 1 (MKR 1)

{

PORTA=0b00000001

delay_ms(200);

PORTA=0b00000010;

delay_ms(200);

PORTA=0b00000100;

delay_ms(200);

PORTA=0b00001000;

delay_ms(200);

PORTA=0b00010000;

delay_ms(200);

PORTA=0b00100000;

delay_ms(200);

PORTA=0b01000000;

delay_ms(200);

PORTA=0b10000000;

delay_ms(200);

};

}

4. Membuat LED menyala berjalan (metode matematis) #include <mega8535.h>

#include <delay.h>

#include <math.h>

void main(void)

{

int i,a;

PORTA=0xff;

DDRA=0xff;

while (1)

{

for (i=0;i<=7;i++)

{a=pow(2,i);

PORTA=~a;

delay_ms(500);}

};

}

5. Membuat LED menyala berjalan (metode geser bit) #include <mega8535.h>

void delay(int n)

{

int i;

for(i=0;i<n;i++)

{ int b;

for(b=0;b<=150;i++);

}

}

void kiri()

{

unsigned char a=0x7f;

int i;

for(i=0;i<8;i++)

{

a=((a<<1)|(a>>7)); // instruksi geser bit

PORTA=a;

delay(200);

Page 11: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

11 Praktikum Mikrokontroler 1 (MKR 1)

}

}

void main(void)

{

PORTA=0x00;

DDRA=0xFF;

while (1)

{

kiri();

};

}

6. Membuat LED menyala berjalan (metode lookup table) #include <mega8535.h>

#include <delay.h>

void main(void)

{

unsigned char led[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

int a;

PORTA=0x00;

DDRA=0xFF;

while (1)

{

for (a=0;a<=7;a++)

{

PORTA = led[a];

delay_ms(200);

}

};

}

Tugas !

a. Buatlah program LED menyala berselingan

b. Buatlah program LED menyala flip-flop (empat mati dan hidup bergantian)

sebanyak 5kali kemudian LED padam semua

c. Buatlah program LED menyala geser kiri-ke-kanan sebanyak 5kali kemudian

geser dari kanan-ke-kiri sebanyak 5kali, terus – menerus

d. Buatlah program LED menyala mencacah(counter) 8bit naik kemudian turun

Page 12: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

12 Praktikum Mikrokontroler 1 (MKR 1)

PERCOBAAN 2

Input Switch dan Output Menggunakan LED

Tujuan:

Setelah melakukan praktikum ini diharapkan:

1. Mahasiswa bisa menggunakan software CodeVisionAVR berbasis bahasa

pemrograman C dengan prosedur yang benar

2. Mahasiswa mengerti teknik pembacaan input pada pin mikrokontroler menggunakan

switch baik secara hardware maupun pemrogramannya

Peralatan yang digunakan:

1. Modul mikrokontroler AVR

2. Komputer

Rangkaian aplikasi switch:

Gambar 2.1 Rangkaian aplikasi switch

Page 13: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

13 Praktikum Mikrokontroler 1 (MKR 1)

Prosedur Percobaan

1. Buka program CodeVisionAVR dengan menekan klik ganda icon pada dekstop

komputer.

2. Pilih File – New – Project - Ok.

3. Selanjutnya pilih Yes untuk menggunakan CodeWizardAVR.

4. Pilih chip ATMega8535 dan clock 8MHz, dengan cara mengikuti isi sesuai gambar

dibawah.

Gambar 2.2 CodeWizardAVR

5. Lalu setting port-A sebagai output dengan cara memilih Ports, lalu pada Port A ubah

In menjadi Out mulai dari Bit 0 sampai dengan Bit 7.

6. Jika selesai, pilih File – Generate, Save and Exit.

7. Arahkan direktori ke dalam folder yang anda buat sebelumnya, lalu ketik nama file

dengan Percobaan1. Tekan Save. Lakukan sampai tiga kali.

8. Ketikkan program yang diinginkan atau sesuai contoh pada daftar program

percobaan 2.

Page 14: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

14 Praktikum Mikrokontroler 1 (MKR 1)

9. Lakukan compile dengan cara menekan gambar atau tombol F9. Jika tidak ada

error tekan OK. Bila ada error, maka periksa program yang anda ketik. Lalu ulangi

lagi.

10. Hubungkan kabel ISP downloader dari terminal USB komputer ke jalur downloader

pada modul praktikum. Hidupkan power supply pada board AVR.

11. Pilih Project – Make atau Project – Build atau bisa juga dengan menekan shift + F9

untuk men-download program. Hubungkan konektor port-A dengan konektor LED.

Amati yang terjadi dan dianalisa!

12. Lakukan untuk semua contoh program percobaan. Lalu selesaikan tugas yang

diberikan dengan menunjukkan hasilnya kepada dosen yang mengampuh!

Daftar program percobaan 2:

1. Membuat LED menyala sesuai dengan kondisi switch

#include <mega8535.h>

void main(void)

{

PORTA=0x00;

DDRA=0xFF;

DDRC=0x00;

while (1)

{

PORTA=PINC;

};

}

2. LED menyala semua atau padam semua bergantung kondisi S1

#include <mega8535.h>

void main(void)

{

PORTA=0x00;

DDRA=0xFF;

DDRC=0x00;

while (1)

{

if(PINC.0==1) PORTA=0;

else PORTA=255;

};

}

Page 15: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

15 Praktikum Mikrokontroler 1 (MKR 1)

3. Membuat LED menyala berjalan bergantung kondisi S2

#include <mega8535.h>

#include <delay.h>

#include <math.h>

void main(void)

{

int i,a;

PORTA=0xff;

DDRA=0xff;

DDRC=0x00;

while(1)

{

while (PINC.1==1) // dengan pengkondisian

{

for (i=0;i<=7;i++)

{

a=pow(2,i);

PORTA=a;

delay_ms(100);

}

};

};

}

Tugas !

a. Buatlah program dengan syarat jika S1 ATAU S2= ON, DAN yang lain OFF, maka

LED menyala berjalan

b. Buatlah program dengan syarat jika S1 = ON maka LED menyala berjalan dari kiri ke

kanan. Namun, bila S1 di-OFF-kan maka LED langsung berubah arah dari kanan ke

kiri. Kondisi awal seluruh switch = OFF dan LED padam.

Page 16: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

16 Praktikum Mikrokontroler 1 (MKR 1)

PERCOBAAN 3

Aplikasi Port Sebagai Output Menggunakan 7-Segment

Tujuan:

Setelah melakukan praktikum ini diharapkan:

1. Mahasiswa bisa menggunakan software CodeVisionAVR berbasis bahasa

pemrograman C dengan prosedur yang benar

2. Mahasiswa bisa mengendalikan nyala 7segment sebagai port keluaran mikrokontroler

sesuai dengan karakter interfacing

Peralatan yang digunakan:

Modul mikrokontroler AVR

Komputer

Rangkaian percobaan:

Gambar 3.1 Rangkaian aplikasi 7Segment

Page 17: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

17 Praktikum Mikrokontroler 1 (MKR 1)

Prosedur Percobaan

1. Buka program CodeVisionAVR dengan menekan klik ganda icon pada

dekstop komputer.

2. Pilih File – New – Project - Ok.

3. Selanjutnya pilih Yes untuk menggunakan CodeWizardAVR.

4. Pilih chip ATMega8535 dan clock 8MHz, dengan cara mengikuti isi sesuai

gambar 1.6.

5. Lalu setting port-A sebagai output dengan cara memilih Ports, lalu pada Port A

ubah In menjadi Out mulai dari Bit 0 sampai dengan Bit 7.

Gambar 3.2 Wizard Chip Gambar 3.3 Wizard ports

6. Jika selesai, pilih File – Generate, Save and Exit.

7. Arahkan direktori ke dalam folder yang anda buat sebelumnya, lalu ketik nama file

dengan Percobaan1. Tekan Save. Lakukan sampai tiga kali.

8. Ketikkan program yang diinginkan atau sesuai contoh pada daftar program

percobaan 3.

Page 18: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

18 Praktikum Mikrokontroler 1 (MKR 1)

9. Lakukan compile dengan cara menekan gambar atau tombol F9. Jika tidak

ada error tekan OK. Bila ada error, maka periksa program yang anda ketik. Lalu

ulangi lagi.

10. Hubungkan kabel ISP downloader dari terminal USB komputer ke jalur

downloader pada modul praktikum. Hidupkan power supply pada board AVR.

11. Untuk mengisi program yang telah dibuat ke dalam chip, maka terlebih dahulu

setting programmer yang digunakan dengan cara pilih Settings – Programmer

pada menu bar. Selanjutnya muncul gambar seperti gambar di bawah ini. Pilih tipe

programmer AVRProg (AVR910) dengan baudrate 115200, untuk COM

sesuaikan dengan device manager.

12. Pada menu bar, Project – Configure – After Make pilih Program the Chip

untuk mengaktifkan mode pengisian program ke chip ketika di-build

13. Pilih Project – Make atau tekan shift + F9 untuk men-download program.

Hubungkan konektor port-A dengan konektor LED. Amati yang terjadi dan

dianalisa!

14. Lakukan untuk semua contoh program percobaan. Lalu selesaikan tugas yang

diberikan dengan menunjukkan hasilnya kepada dosen yang mengampuh!

Page 19: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

19 Praktikum Mikrokontroler 1 (MKR 1)

Daftar program percobaan 3:

1. Menampilkan angka ”0” pada semua 7Segment

// D7 D6 D5 D4 D3 D2 D1 D0

// SEG3 SEG2 SEG1 SEG0 D C B A

// 0 0 0 0 0 0 0 0 = 00H

#include <mega8535.h>

#include <delay.h>

void main(void)

{

DDRA = 0xFF;

while(1)

{

PORTA = 0x00;

}

}

2. Menampilkan angka ”0” pada satu buah 7Segment saja

// D7 D6 D5 D4 D3 D2 D1 D0

// SEG3 SEG2 SEG1 SEG0 D C B A

// 1 1 1 0 0 0 0 0 = E0H

#include <mega8535.h>

#include <delay.h>

void main(void)

{

DDRA = 0xFF;

while(1)

{

PORTA = 0xE0;

}

}

3. Menampilkan angka ”3” pada satu buah 7Segment saja

// D7 D6 D5 D4 D3 D2 D1 D0

// SEG3 SEG2 SEG1 SEG0 D C B A

// 1 1 1 0 0 0 1 1 = E3H

#include <mega8535.h>

#include <delay.h>

void main(void)

{

DDRA = 0xFF;

while(1)

{

PORTA = 0xE3;

}}

Page 20: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

20 Praktikum Mikrokontroler 1 (MKR 1)

4. Menampilkan angka ”0123”

// D7 D6 D5 D4 D3 D2 D1 D0

// SEG3 SEG2 SEG1 SEG0 D C B A

// 1 1 1 0 0 0 0 0 = E0H

// 1 1 0 1 0 0 0 1 = D1H

// 1 0 1 1 0 0 1 0 = B2H

// 0 1 1 1 0 0 1 1 = 73H

#include <mega8535.h>

#include <delay.h>

void main(void)

{

DDRA = 0xFF;

while(1)

{

PORTA= 0x73;

delay_ms(1);

PORTA= 0xB2;

delay_ms(1);

PORTA= 0xD1;

delay_ms(1);

PORTA= 0xE0;

delay_ms(1);

}

}

5. Menampilkan angka ”0123”

// SEG3 SEG2 SEG1 SEG0 D C B A

// 1 1 1 0 0 0 0 0 = E0H

// 1 1 0 1 0 0 0 0 = D0H

// 1 0 1 1 0 0 0 0 = B0H

// 0 1 1 1 0 0 0 0 = 70H

#include <mega8535.h>

#include <delay.h>

void main(void)

{

int rib,rat,pul,sat;

DDRA = 0xFF;

while(1)

{

sat = 3;

pul = 2;

rat = 1;

rib = 0;

PORTA= 0x70 | rib;

delay_ms(1);

PORTA= 0xB2 | rat;

delay_ms(1);

PORTA= 0xD1 | pul;

delay_ms(1);

PORTA= 0xE0 | sat;

delay_ms(1);

}

}

Page 21: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

21 Praktikum Mikrokontroler 1 (MKR 1)

6. Display data yang diambil dari PORTC (switch)

// D7 D6 D5 D4 D3 D2 D1 D0

// SEG3 SEG2 SEG1 SEG0 D C B A

// 1 1 1 0 0 0 0 0 = E0H LOKASI RIBUAN

// 1 1 0 1 0 0 0 1 = D1H LOKASI RATUSAN

// 1 0 1 1 0 0 1 0 = B2H LOKASI PULUHAN

// 0 1 1 1 0 0 1 1 = 73H LOKASI SATUAN

#include <mega8535.h>

#include <delay.h>

void main(void)

{

int i,data,sat,pul,rat,rib;

DDRA = 0xFF;

DDRC = 0X00;

while(1)

{

data = PINC;

sat = data % 10; // sat = sisa dari data dibagi 10

pul = data / 10;

pul = pul % 10;

rat = data / 100;

rat = rat % 10;

rib = data / 1000;

PORTA= 0x70 | sat;

delay_ms(1);

PORTA= 0xB0 | pul;

delay_ms(1);

PORTA= 0xD0 | rat;

delay_ms(1);

PORTA= 0xE0 | rib;

delay_ms(1);

}

}

Tugas !

1. Buatlah program konter up (0 s.d 1000)

2. Buatlah program konter barang dengan asusmi S1 sebagai sensornya. Jika S1 naik

1kali (naik – turun), maka 7segment terjadi increment. S2 untuk clear data

Page 22: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

22 Praktikum Mikrokontroler 1 (MKR 1)

PERCOBAAN 4

Interfacing dan Pemrograman LCD 2x16

Tujuan:

Setelah melakukan praktikum ini diharapkan:

Mahasiswa bisa menggunakan software CodeVisionAVR berbasis bahasa

pemrograman C dengan prosedur yang benar

Mahasiswa mengerti teknik interfacing LCD 2x16 untuk mode 4 bit dan 8 bit

Mahasiswa bisa memprogram LCD 2x16 untuk mode 4 bit dan 8 bit dengan baik dan

benar

Peralatan yang digunakan:

Modul mikrokontroler AVR

Komputer

Teori Dasar Karakter LCD 2x16

Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroler.

LCD yang akan kita praktikumkan ini berbasis ASCII dan mempunyai lebar display 2 baris

16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor.

Gambar 4.1 Modul LCD karakter 2x16

Display karakter pada LCD diatur oleh pin EN, RS dan RW:

Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda

sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program

Page 23: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

23 Praktikum Mikrokontroler 1 (MKR 1)

EN harus dibuat logika LOW “0” dan set pada dua jalur kontrol yang lain RS dan RW.

Ketika dua jalur yang lain telah siap, set EN dengan logika HIGH “1” dan tunggu untuk

sejumlah waktu tertentu (sesuai dengan datasheet dari LCD tersebut) dan berikutnya set EN

ke logika LOW “0” lagi.

Jalur RS adalah jalur Register Select. Ketika RS berlogika LOW “0”, data akan

dianggap sebagi sebuah perintah atau instruksi khusus (seperti clear screen, posisi kursor dll).

Ketika RS berlogika HIGH “1”, data yang dikirim adalah data text yang akan ditampilkan

pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS

harus diset logika HIGH “1”.

Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika LOW “0”, maka

informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika HIGH ”1”,

maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi

umum pin RW selalu diberi logika LOW ”0”.

Bus data terdiri dari 4 atau 8 jalur (bergantung pada mode operasi yang dipilih oleh

user). Pada mode 8 bit, maka data bus yang digunakan 8 jalur yang diacukan sebagai DB0 s.d

DB7 sedangkan pada mode 4 bit, maka data bus yang digunakan adalah 4 jalur yaitu DB4 s.d

DB7.

Tabel 4.1 Pin dan Fungsi

PIN Nama Fungsi

1 VSS Ground voltage

2 VCC +5V

3 VEE Contrast voltage

4 RS

Register Select

0 = Instruction Register

1 = Data Register

5 R/W

Read/ Write, to choose write or read mode

0 = write mode

1 = read mode

6 E

Enable

0 = start to lacht data to LCD character

1= disable

7 DB0 Data Bus 0

Page 24: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

24 Praktikum Mikrokontroler 1 (MKR 1)

8 DB1 Data Bus 1

9 DB2 Data Bus 2

10 DB3 Data Bus 3

11 DB4 Data Bus 4

12 DB5 Data Bus 5

13 DB6 Data Bus 6

14 DB7 Data Bus 7

15 BPL Back Plane Light / Anode

16 GND Ground voltage / Katode

Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character:

Function Set

Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 1 DL N F X X

X : Don’t care

DL: Mengatur lebar data

DL=1, Lebar data interface 8 bit ( DB7 s/d DB0)

DL=0, Lebar data interface 4 bit ( DB7 s/d DB4)

Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali

N: Pengaktifan baris

N=0, 1 baris

N=1, 2 baris

F: Penentuan ukuran font karakter

F=0, 5x7

F=1, 5x8

Entry Mode Set

Mengatur increment/ decrement dan mode geser

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 1 I/D S

Page 25: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

25 Praktikum Mikrokontroler 1 (MKR 1)

I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakter dituliskan

ke DDRAM.

I/D = “0”, decrement

I/D= “1”, increment

S: Geser keseluruhan display kekanan dan kekiri

S=1, geser kekiri atau kekanan bergantung pada I/D

S=0, display tidak bergeser

Display On/ Off Cursor

Mengatur status display ON atau OFF, cursor ON/ OFF dan fungsi Cursor Blink

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 1 D C B

D : Display, Mengatur display

D = 1, Display is ON

D = 0, Display is OFF

Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan kembali

secara langsung dengan mengatur D=1.

C : Cursor, Menampilkan kursor

C = 1, kursor ditampilkan

C = 0, kursor tidak ditampilkan

B : Blink, Karakter ditunjukkan dengan kursor yang berkedip

B=1, kursor blink

Clear Display

Perintah ini untuk menghapus layar

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 0 0 0 0 1

Page 26: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

26 Praktikum Mikrokontroler 1 (MKR 1)

Geser Kursor dan Display

Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data display.

Fungsi ini digunakan untuk koreksi atau pencarian display

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0 0 0 0 1 S/C R/L X X

x = don’t care

S/C R/L Keterangan

0 0 Shift cursor position to the left

0 1 Shift cursor position to the right

1 0 Shift the entire display to the left

1 1 Shift the entire display to the right

Posisi Kursor

Modul LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks

yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD

secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri.

Gambar 4.2 Peta alamat memori

Pada peta memori tersebut, 00 s.d. 0F dan 40 s.d. 4F adalah display yang tampak.

Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris.

Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar.

Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi

karakter berikutnya adalah alamat 01h dan seterusnya. Akan tetapi, karakter pertama dari

Page 27: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

27 Praktikum Mikrokontroler 1 (MKR 1)

baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h.

Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi

kursor pada baris dan kolom tertentu.

Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat

lokasi dimana kita berharap untuk menempatkan kursor. Sebagai contoh, kita ingin

menampilkan kata ”World” pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta

memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga

sebelum kita tulis kata ”World” pada LCD, kita harus mengirim instruksi set posisi kursor,

dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah.

Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris

kedua dan kolom ke 11 dari DDRAM.

Pemrograman LCD pada CodeVisionAVR

Pada CodeVisionAVR sudah tersedia fasilitas pemrograman LCD 2x16 untuk mode 4

bit, sehingga koneksi interface dan instruksi pemrograman tinggal disesuaikan saja. Namun,

untuk mode 8 bit kita harus melakukan inisialisasi sendiri dan membangun fungsi sendiri pula

Beberapa fungsi LCD yang ada di CodeVisionAVR untuk mode 4 bit :

1. lcd_init( ); // inisialisasi lcd

2. lcd_putchar(char c); // menulis karakter c pada LCD

3. lcd_puts(char *str ); // menulis string yang disimpan pada SRAM pada LCD

4. lcd_putsf(” ” ); // menulis string ke lcd

5. lcd_gotoxy(unsigned char x, unsigned char y); // posisi baris dan kolom

6. lcd_clear( ); // menghapus layer pada LCD

Page 28: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

28 Praktikum Mikrokontroler 1 (MKR 1)

Rangkaian percobaan:

Gambar 4.3 Rangkaian aplikasi LCD 2x16

Prosedur Percobaan Mode 4 bit

1. Buka program CodeVisionAVR dengan menekan klik ganda icon pada dekstop

komputer.

2. Pilih File – New – Project - Ok.

3. Selanjutnya pilih Yes untuk menggunakan CodeWizardAVR.

4. Pilih chip ATMega8535 dan clock 8MHz.

5. Lalu menu LCD pilih PORTC seperti pada gambar 4.4, maka akan muncul gambar

seperti pada gambar 4.5.

6. Jika selesai, pilih File – Generate, Save and Exit.

7. Arahkan direktori ke dalam folder yang anda buat sebelumnya, lalu ketik nama file

dengan Percobaan4a. Tekan Save. Lakukan sampai tiga kali.

8. Ketikkan program yang diinginkan atau sesuai contoh pada daftar program percobaan

mode 4 bit.

Page 29: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

29 Praktikum Mikrokontroler 1 (MKR 1)

9. Lakukan compile dengan cara menekan gambar atau tombol F9. Jika tidak ada error

tekan OK. Bila ada error, maka periksa program yang anda ketik. Lalu ulangi lagi.

10. Hubungkan kabel ISP downloader dari terminal USB komputer ke jalur downloader pada

modul praktikum. Hidupkan power supply pada board AVR.

11. Untuk mengisi program yang telah dibuat ke dalam chip, maka terlebih dahulu setting

programmer yang digunakan dengan cara pilih Settings – Programmer pada menu bar.

Selanjutnya muncul gambar seperti gambar di bawah ini. Pilih tipe programmer

AVRProg (AVR910) dengan baudrate 115200, untuk COM sesuaikan dengan device

manager.

Gambar 4.4 Wizard LCD Gambar 4.5 Wizard LCD

12. Pada menu bar, Project – Configure – After Make pilih Program the Chip

13. Pilih Project – Make atau tekan shift + F9 untuk men-download program. Hubungkan

konektor port-C dengan konektor LCD 4 bit. Amati yang terjadi dan dianalisa!

14. Lakukan untuk semua contoh program percobaan. Lalu selesaikan tugas yang diberikan

dengan menunjukkan hasilnya kepada dosen yang mengampuh!

Page 30: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

30 Praktikum Mikrokontroler 1 (MKR 1)

Daftar program percobaan mode 4 bit:

1. Menampilkan karakter ”A” pada baris ke-0 dan kolom ke-0

#include <mega8535.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

#include <lcd.h>

void main(void)

{

PORTA=0x00;

DDRA=0x00;

PORTB=0x00;

DDRB=0x00;

PORTC=0x00;

DDRC=0x00;

PORTD=0x00;

DDRD=0x00;

// LCD module initialization

lcd_init(16);

while(1)

{

lcd_gotoxy(0,0);

lcd_putchar(‘A’); //untuk karakter harus diapit dgn tanda apostrof

}

}

2. Menulis karakter di baris 1 dan baris 2

#include <mega8535.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

#include <lcd.h>

void main (void)

{

// LCD module initialization

lcd_init(16);

lcd_gotoxy(0,0);

lcd_putsf(" BARIS 1 ");

lcd_gotoxy(0,1);

lcd_putsf(" BARIS 2 ");

while(1);

}

Page 31: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

31 Praktikum Mikrokontroler 1 (MKR 1)

3. Menampilkan angka ”0” dengan nilai ASCII

#include <mega8535.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

#include <lcd.h>

void main(void)

{

// LCD module initialization

lcd_init(16);

while(1)

{

lcd_gotoxy(0,0);

lcd_putchar(‘0’); //untuk karakter harus diapit dgn tanda apostrof

//lcd_gotoxy(0,0);

//lcd_putchar(48); //dalam kode decimal ASCII untuk angka 0

//lcd_gotoxy(0,0);

//lcd_putchar(0x30); //dalam kode heksa ASCII untuk angka 0

}

}

4. Menampilkan tulisan dan angka dengan library standard I/O bahasa C

#include <mega8535.h>

#include <stdio.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

#include <lcd.h>

unsigned char n,kata[16];

void main(void)

{

// LCD module initialization

lcd_init(16);

n=4;

while(1)

{

sprintf(kata,”Percobaan %d”,n);

lcd_gotoxy(0,0);

lcd_puts(kata);

}

}

Page 32: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

32 Praktikum Mikrokontroler 1 (MKR 1)

Tugas mode 4 bit!

1. Buatlah program konter up (0 s.d 10) secara kontinyu pada baris 1 kolom 1

2. Buatlah program led menyala geser kiri-kanan sebanyak 10 kali kemudian pindah

kanan-kiri sebanyak 10 kali secara kontinyu, dengan display pada LCD tulisan ”geser

kiri” ketika terjadi geser kanan-kiri dan sebaliknya ”geser kanan” serta tampilkan juga

nilai konternya.

Prosedur Percobaan Mode 8 bit

1. Buka program CodeVisionAVR dengan menekan klik ganda icon pada dekstop

komputer.

2. Pilih File – New – Project - Ok.

3. Selanjutnya pilih Yes untuk menggunakan CodeWizardAVR.

4. Pilih chip ATMega8535 dan clock 8MHz.

5. Lalu menu Ports pada Port C ubah In menjadi Out dari bit 0 sampai dengan bit 7 seperti

pada gambar 4.5, begitu juga pada Port D seperti pada gambar 4.6

6. Jika selesai, pilih File – Generate, Save and Exit.

7. Arahkan direktori ke dalam folder yang anda buat sebelumnya, lalu ketik nama file

dengan Percobaan4b. Tekan Save. Lakukan sampai tiga kali.

8. Ketikkan program yang diinginkan atau sesuai contoh pada daftar program percobaan

mode 8 bit.

9. Lakukan compile dengan cara menekan gambar atau tombol F9. Jika tidak ada error

tekan OK. Bila ada error, maka periksa program yang anda ketik. Lalu ulangi lagi.

10. Hubungkan kabel ISP downloader dari terminal USB komputer ke jalur downloader pada

modul praktikum. Hidupkan power supply pada board praktikum.

11. Untuk mengisi program yang telah dibuat ke dalam chip, maka terlebih dahulu setting

programmer yang digunakan dengan cara pilih Settings – Programmer pada menu bar.

Selanjutnya muncul gambar seperti gambar di bawah ini. Pilih tipe programmer

AVRProg (AVR910) dengan baudrate 115200, untuk COM sesuaikan dengan device

manager.

Page 33: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

33 Praktikum Mikrokontroler 1 (MKR 1)

12. Pada menu bar, Project – Configure – After Make pilih Program the Chip

13. Pilih Project – Make atau tekan shift + F9 untuk men-download program. Hubungkan

konektor port-C dengan konektor LCD data 8 bit dan port-D ke kontrol. Amati yang

terjadi dan dianalisa!

14. Lakukan untuk semua contoh program percobaan. Lalu selesaikan tugas yang diberikan

dengan menunjukkan hasilnya kepada dosen yang mengampuh!

Daftar program percobaan mode 8 bit:

1. Menampilkan angka ’0’ di baris 1 dan angka ’1’ di baris 2

// D7 D6 D5 D4 D3 D2 D1 D0

// 8 4 2 1 8 4 2 1 = HEKSA

// DATA : PORTC

// RS : PORTD0

// R/-W : PORTD1

// ENABLE : PORTD2

void port_init(void);

void LCD_init(void);

void LCD_WriteCommand (unsigned char CMD);

void LCD_WriteData (unsigned char Data);

#define ENABLE_LCD PORTD |= 0x04

#define DISABLE_LCD PORTD &= ~0x04

#define SET_LCD_DATA PORTD |= 0x01

#define SET_LCD_CMD PORTD &= ~0x01

#include <mega8535.h>

#include <delay.h>

// Inisialisasi port AVR 8535

void port_init(void)

{

DDRA = 0x00; // PORTA INPUT

PORTA = 0x00; // SEMUA PORTA DIAKTIFKAN

DDRB = 0x00; // PORTB INPUT

PORTB = 0x00; // SEMUA PORTB DIAKTIFKAN

DDRC = 0xFF; // PORTC OUTPUT

PORTC = 0x00; // SEMUA PORTC DIAKTIFKAN

DDRD = 0xFF; // PORTD OUTPUT

PORTD = 0x00; // SEMUA PORTD DIAKTIFKAN

}

// Inisialisasi LCD

// DISPCLR = 01H

// FUNCSET = 38H

// ENTRMOD = 06H

// DISPON = 0CH

void LCD_init(void)

{

delay_ms(100); // tunggu selama 100 ms

Page 34: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

34 Praktikum Mikrokontroler 1 (MKR 1)

LCD_WriteCommand (0x38); // 8 data lines = FUNCSET

LCD_WriteCommand (0x06); // cursor setting = ENTRMOD

LCD_WriteCommand (0x0f); // display ON = DISPON

LCD_WriteCommand (0x01); // clear LCD memory = DISPCLR

delay_ms(10); // tunggu 10ms untuk membersihkan LCD

}

// Prosedur untuk command instruction

void LCD_WriteCommand (unsigned char Command)

{

SET_LCD_CMD; // Set LCD in command mode

PORTC = Command; // Load data to port

ENABLE_LCD; // Write data to LCD

delay_ms(10);

DISABLE_LCD; // Disable LCD

delay_ms(10); // wait for 1ms

}

// Prosedur untuk data instruction

void LCD_WriteData (unsigned char Data)

{

SET_LCD_DATA; // Set LCD in data mode

PORTC = Data; // Load data to port

ENABLE_LCD; // Write data to LCD

delay_ms(10);

DISABLE_LCD; // Disable LCD

delay_ms(10); // wait for 1ms

}

//******************* MAIN FUNCTION *******************

void main()

{

port_init();

LCD_init();

LCD_WriteCommand (0x80); // pesan tempat di baris 1 kolom 0

LCD_WriteData (0x30); // data ASCII 0 = 30H

LCD_WriteCommand (0x0C0); // pesan tempat di baris 2 kolom 0

LCD_WriteData (0x31); // data ASCII 1 = 31H

}

2. Menampilkan ”1234” di LCD

// D7 D6 D5 D4 D3 D2 D1 D0

// 8 4 2 1 8 4 2 1 = HEKSA

// DATA : PORTC

// RS : PORTD0

// R/-W : PORTD1

// ENABLE : PORTD2

void port_init(void);

void LCD_init(void);

void LCD_WriteCommand (unsigned char CMD);

void LCD_WriteData (unsigned char Data);

#define ENABLE_LCD PORTD |= 0x04

#define DISABLE_LCD PORTD &= ~0x04

#define SET_LCD_DATA PORTD |= 0x01

#define SET_LCD_CMD PORTD &= ~0x01

#include <mega8535.h>

#include <delay.h>

Page 35: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

35 Praktikum Mikrokontroler 1 (MKR 1)

int data,rib,rat,pul,sat;

// Inisialisasi port AVR 8535

void port_init(void)

{

DDRA = 0x00; // PORTA INPUT

PORTA = 0x00; // SEMUA PORTA DIAKTIFKAN

DDRB = 0x00; // PORTB INPUT

PORTB = 0x00; // SEMUA PORTB DIAKTIFKAN

DDRC = 0xFF; // PORTC OUTPUT

PORTC = 0x00; // SEMUA PORTC DIAKTIFKAN

DDRD = 0xFF; // PORTD OUTPUT

PORTD = 0x00; // SEMUA PORTD DIAKTIFKAN

}

// Inisialisasi LCD

// DISPCLR = 01H

// FUNCSET = 38H

// ENTRMOD = 06H

// DISPON = 0CH

void LCD_init(void)

{

delay_ms(100); // tunggu selama 100 ms

LCD_WriteCommand (0x38); // 8 data lines = FUNCSET

LCD_WriteCommand (0x06); // cursor setting = ENTRMOD

LCD_WriteCommand (0x0f); // display ON = DISPON

LCD_WriteCommand (0x01); // clear LCD memory = DISPCLR

delay_ms(10); // tunggu 10ms untuk membersihkan LCD

}

// Prosedur untuk command instruction

void LCD_WriteCommand (unsigned char Command)

{

SET_LCD_CMD; // Set LCD in command mode

PORTC = Command; // Load data to port

ENABLE_LCD; // Write data to LCD

delay_ms(1);

DISABLE_LCD; // Disable LCD

delay_ms(1); // wait for 1ms

}

// Prosedur untuk data instruction

void LCD_WriteData (unsigned char Data)

{

SET_LCD_DATA; // Set LCD in data mode

PORTC = Data; // Load data to port

ENABLE_LCD; // Write data to LCD

delay_ms(1);

DISABLE_LCD; // Disable LCD

delay_ms(1); // wait for 1ms

}

//******************* MAIN FUNCTION *******************

void main()

Page 36: Modul Mikrokontroler 1

Politeknik Manufaktur Negeri Bangka Belitung

36 Praktikum Mikrokontroler 1 (MKR 1)

{

port_init();

LCD_init();

data = 1234;

sat = data % 10; // sat = sisa dari data dibagi 10

pul = data / 10;

pul = pul % 10;

rat = data / 100;

rat = rat % 10;

rib = data / 1000;

LCD_WriteCommand (0x80); // pesan tempat di baris 1 kolom 0

LCD_WriteData (rib + 0x30); // data ASCII ribuan

LCD_WriteCommand (0x081); // pesan tempat di baris 1 kolom 1

LCD_WriteData (rat + 0x30); // data ASCII ratusan

LCD_WriteCommand (0x82); // pesan tempat di baris 1 kolom 2

LCD_WriteData (pul + 0x30); // data ASCII puluhan

LCD_WriteCommand (0x083); // pesan tempat di baris 1 kolom 3

LCD_WriteData (sat + 0x30); // data ASCII satuan

}

Tugas mode 8 bit!

1. Buatlah program menampilkan nilai pada LCD yang diambil dari data portA (switch)

2. Buatlah program konter up (0 s.d 10) secara kontinyu pada baris 1 kolom 1


Related Documents