Anda di halaman 1dari 67

1

Contents
1.1. Pengenalan Mikrokontroller ......................................................................................................... 3
1.2. Mikroprosesor, Mikro-Komputer dan Mikro-kontroler ................................................................ 4
2.1 Mikrokontroler AVR .......................................................................................................................... 4
2.1.1 Arsitektur ..................................................................................................................................... 5
2.1.2 Memori ......................................................................................................................................... 5
2.2 Bagian pada Mikrokontroller .............................................................................................................. 7
3.1. AT Mega 16 .................................................................................................................................... 13
PRAKTIKUM I
RANGKAIAN LCD DENGAN MINIMUM SYSTEM ............................................................................. 20
PRAKTIKUM II
RANGKAIAN LCD DAN PUSH BUTTON DENGAN MINIMUM SYSTEM ....................................... 25
PRAKTIKUM III
MENAMPILKAN JUMLAH MENEKAN PUSH BUTTON DI LCD ...................................................... 32
PRAKTIKUM IV
RANGKAIAN BARLED DAN PUSH BUTTON DENGAN MINIMUM SYSTEM ............................... 37
PRAKTIKUM V
RANGKAIAN RUNNING BARLED DAN PUSH BUTTON DENGAN MINIMUM SYSTEM ........... 42
PRAKTIKUM VI
RANGKAIAN SEVEN SEGMENT DENGAN MINIMUM SYSTEM .................................................... 46
PRAKTIKUM VII
RANGKAIAN Counter SEVEN SEGMENT DENGAN MINIMUM SYSTEM ...................................... 52
PRAKTIKUM VIII
RANGKAIAN CONTROL MOTOR DC DENGAN MINIMUM SYSTEM ............................................ 56
PRAKTIKUM IX
RANGKAIAN SENSOR LDR MINIMUM SYSTEM .............................................................................. 61

2
1.1. Pengenalan Mikrokontroller
Mikrokontroler adalah sebuah komputer kecil ("special purpose compu-
ters") di dalam satu IC yang berisi CPU, memori, timer, saluran komunikasi
serial dan paralel, Port input/output, ADC. Mikrokontroller digunakan untuk
suatu tugas dan menjalankan suatu program.

Gambar 1.1: IC Mikrokontroler

Mikrokontroller ini adalah ilmu terapan yang pengaplikasiaannya dapat


kita temui di kehidupan sehari-hari seperti jam digital, televisi, sistem keamanan
rumah, dll

Mikrokontroller adalah komponen yang sangat umum dalam sistem elektronika


modern. Penggunaannya sangat luas, dalam kehidupan kita seharihari
baik dirumah, kantor, rumah sakit, bank, sekolah, industri, dll. Mikrokontroller
digunakan dalam sejumlah besar sistem elektronika seperti :
sistem manajemen mesin mobil, keyboard komputer, alat ukur elektronik
( multimeter digital, synthesizer frekuensi, dan osiloskop ), televisi, radio,
telepon digital, mobile phone, microwave oven, printer, scanner, kulkas, pendingin
ruangan, CD/DVD player, kamera, mesin cuci, PLC (programmable
logic controller ), robot, sistem otomasi, sistem akuisisi data, sitem keamanan,
sistem EDC ( Electronic Data Capture ), mesin ATM, modem, router,
dll.

Mikrokontroller dapat kita gunakan untuk berbagai aplikasi misalnya


untuk pengendalian, otomasi industri, akuisisi data, telekomunikasi, dan
lain-lain. Keuntungan menggunakan mikrokontroller yaitu harganya murah,
dapat diprogram berulang kali, dan dapat kita program sesuai dengan keinginan kita. Saat ini
keluarga mikrokontroller yang ada dipasaran yaitu intel 8048 dan 8051 ( MCS51 ), Motorola
68HC11, microchip PI,hitachi H8, dan atmel AVR.

3
1.2. Mikroprosesor, Mikro-Komputer dan Mikro-kontroler

Mikropropesor adalah Central Professing Unit (CPU) didalam single


chip. Komponen CPU : Arithmatic and Logic Unit (ALU), instruction deco-
der, register, bus control circuit, dll. Mikro-Komputer adalah mikropropesor
yang dihubungkan dengan rangkaian pendukung.
komponen I/O dan memori (program & data) ditempatkan bersama untuk
membentuk komputer kecil khususnya untuk akuisisi data dan aplikasi
kontrol.

Jika komponen yang menyusun sebuah mikro-komputer diletakkan bersama


didalam single chip silicon maka disebut mikrokontroler berisi CPU,
memori, timer, port serial dan pararel, port input / output, ADC

Gambar 1.2: Perbedaan Mikroporcessor dan Mirokontroler

2.1 Mikrokontroler AVR

Mikrokontroler AVR (Alf and Vegards Risc processor) dari Atmel ini
menggunakan arsitektur RISC (Reduced Instruction Set Computer) yang
artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit
dibandingkan dengan MCS-51 yang menerapkan arsitektur CISC (Complex
Instruction Set Computer).

Gambar 2.1: Mikrokontroller AVR

4
Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum
tentu sederhana), sehingga instruksi-instruksi ini umumnya hanya memerlukan
1 siklus mesin untuk menjalankannya. Kecuali instruksi percabangan
yang membutuhkan 2 siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard, karena
arsitektur ini yang memungkinkan untuk membuat eksekusi
instruksi selesai dikerjakan dalam satu atau dua siklus mesin, sehingga
akan semakin cepat dan handal. Proses downloading programnya relatif
lebih mudah karena dapat dilakukan langsung pada sistemnya.
Sekarang ini, AVR dapat dikelompokkan menjadi 6 kelas, yaitu keluarga
ATtiny, keluarga AT90Sxx, keluarga ATmega, keluarga AT90CAN, keluarga
AT90PWM dan AT86RFxx. Pada dasarnya yang membedakan masingmasing
kelas adalah memori, peripheral, dan fungsinya, sedangkan dari segi
arsitektur dan instruksi yang digunakan hampir sama.

2.1.1 Arsitektur

Mikrokontroler AVR RISC(Reduced instruction set computing atau Komputasi


set instruksi yang disederhanakan pertama kali digagas oleh John Cocke)
adalah perangkat yang di desain untuk berjalan dengan cepat, dengan menggunakan
instruksi mesin yang disederhanakan sehingga dapat meningkatkan
kinerja dari mikrokontroler. Sebelum ada RISC, namanya CISC(Complex Instruction Set
Computers). Dengan pengunaan instruksi yang lebih sederhana memberikan konstribusi pada
kecepatan dengan instruksi mesin yang terbatas. Mikrokontroler AVR RISC dapat berjalan pada
single cycle dari prosesor clock, yang berarti Mikrokontroler AVR dengan clock 8 MHz, dapat
mengeksekusi sekitar 8 juta instruksi perdetiknya atau 8 MIPS(million instruction per second).

2.1.2 Memori

Bagian memori dari mikrokontrol Atmel RISC AVR berbasis Harvard Model,
yang mana memorinya terbagi sehingga dapat meningkatkan kecepatan
akses dan meningkatkan kapasitas. CPU membagi antarmuka untuk bagian
kode memori FLASH, bagian memori data , dan memori EEPROM.
Memori FLASH memori FLASH merupakan blok dari memori FLASH
yang dimulai dari lokasi 0x000 dan ukurannya tergantung dari mikrokontroler
yang digunakan.
Memori FLASH merupakan memori nonvolatile dan digunakan untuk menyimpan kode
eksekusi dan konstanta, karena kode-kode tersebut akan digunakan
kembali meskipun mikrokontroler tidak terhubung ke catu daya, oh iya..
yang dimaksud non-volatile yaitu kode yang disimpan dalam memori
tidak hilang meskipun mikrokontrol tidak dialiri listrik, ruang memori
antara 16 bit pada setiap lokasi untuk menagani instruksi mesin yang
khusunya single-16 bit word.
Memori Data Memori data Atmel AVR khasnya terdiri dari tiga bagian memori

5
baca/tulis terpisah .bagian terendah terdiri dari 32 register kerja umum,
yang diikuti oleh 64 register I/O, yang diikuti oleh internal SRAM.
Register kerja umum hanya : digunakan untuk menyimpan variabel lokal
dan data temporal yang digunakan oleh program saat dieksusi dan dapat
juga digunakan untuk penyimpanan data variable global, 64 register I/O
digunakan sebagai antarmuka untuk perangkat I/O dan peripheral yang
berada di papan mikrokontroler. dan internal SRAM digunakan sebagai
area penyimpanan variable umum dan juga untuk prosessor stack.
Register-register , Register kerja umum menempati 32 sel terndah dalam data memori.
register ini kebanyakan digunakan seperti data penyimpanandalam
kalkulator yang mana hanya disimpan sementara. terkadang digunakan
untuk menyimpan variable lokal, dan terkadang variable global, dan
terkadang sebagai pengarah ke memori yang digunakan oleh prosessor.
singkatnya prosessor menggunakan 32 register
kerja sebagaimana program dieksekusi.
Register I/O , Setiap regiter memberikan akses ke register kontrol atau ke register data
I/O peripheral yang berada dalam mikrokontroler. Programer lebioh
sering menggunakan I/O register untuk mengantarmuka ke peripheral
I/O dari mikrokontroler. ukuran Register I/O tergantung dari perangkat.
setiap register I/O memiliki nama, sebuah alamat I/O, dan alamat
SRAM. SRAM , Bagian SRAM dari memori digunakan untuk
menyimpan variable yang tidak dapat disimpan kedalam register dan
untuk menyimpan prosessor satck. Memori EEPROM bagian memori
EEPROM adalah area memori baca/ tulis yang non volatile. ini biasanya
digunakan untuk menyimpan data yang tidak boleh hilang saat catu
daya dilepas (mikrokontroler dimatikan) dan dipasang kembali
(mikrokontroler dinyalakan). Ruang EEPROM dimulai dari 0x000 dan
ke nilai maksimum tergantung spesifikasi mikrontroler yang digunakan.

6
2.2 Bagian pada Mikrokontroller

Gambar Skema pada Mikrokontroller

Berikut piranti piranti yang dapat ditemukan pada sebuah micro controller:

1. Memory

Gambar Skema proses kontrol pada Mikroprosessor dan Mikrokontroller

7
Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan data dan
instruksi (program) yang dijalankan oleh processor. Ada beberapa jenis memory yang biasa
digunakan oleh suatu sistem komputer,
a. RAM (Random Acces Memory), RAM adalah “Working Memory” pada sistem
komputer, dimana CPU dapat menuliskan data untuk disimpan sementara. RAM bersifat
”volatile”, yang berarti datanya akan hilang apabila catu daya dimatikan.
b. ROM (Read Only Memory), bersifat “non volatile”, yang berarti data tidak akan hilang
meskipun catu daya dimatikan. Tujuan utama dari ROM adalah menyimpan kode/data yang
dibutuhkan pada saat start up.

8
2. PROCESSOR

Gambar Skematic AT Mega 16

CPU didalamnya berisi ALU (Aritmatic Logic Unit), Control Unit, PC (Program Counter) dan
beberapa register (diantaranya adalah register Accumulator). ALU merupakan pusat pengolahan
logika (AND, OR, NOT, Compare, etc) dan fungsi matematis (tambah, kurang, kali, bagi). Unit
Control adalah unit yang berfungsi untuk mengambil, mengdekode dan melaksanakan urutan
instruksi suatu program yang tersimpan dalam memori. Pelaksanaan dari instruksi dilakukan
dengan cara mengatur sinyal kendali yang diperlukan dalam melakukan suatu operasi. Dapat
disimpulkan bahwa unit control adalah suatu unit yang mengatur urutan operasi seluruh sistem
mikroprosesor.

9
3. INPUT/OUTPUT

Gambar Pin INPUT dan OUTPUT pada Mikrokontroller

Fasilitas input/output merupakan fungsi mikrokontroller untuk dapat menerima sinyal masukan
(input) dan memberikan sinyal keluaran (output). Sinyal input
maupun sinyal output adalah berupa data digital 1 (high, mewakili tegangan 5 volt) dan 0 (low,
mewakili tegangan0 volt).

4. BUS

10
Gambar Jalur BUS pada Mikrokontroller

Masing-masing bagian pada microcontroller saling dihubungkan melalui internal BUS,


umumnya terdiri dari 3 jenis bus, yaitu: address bus, data bus dan control bus.

5. Clock Osilator

Gambar Rangkaian Clock Osilator pada AT Mega

Osilator clock untuk memicu CPU mengerjakan satu instruksi ke instruksi berikutnya dalam alur
yang berurutan. Setiap langkah kecil dari operasi mikrokontroler memakan waktu satu atau
beberapa clock untuk melakukannya.

6. Timer/counter

Gambar Proses Kerja Timer/Counter pada AT Mega

Untuk mengetahuai waktu , panjang sinyal, frekwensi dll kita membutuhkan timer. dasarnya
adalah timer free-run counter adalah sebuah register counter yang nilainya bertambah satu
mulai dari 0000 sampai ffff kemudian kembali 0000 terus menerus berulang

11
7. Piranti tambahan
Pada mikrokontroler selain komponen standar ada juga komponen tambahan dengan fungsi
tambahan pula. Contoh komponen tambahan adalah: ADC (analog to digital converter) yang
berfungsi untuk pengubah analog ke digital. ADC dan komparator sebagai penghubung ke sistem
analog.

Gambar Skematic Rangkaian ADC untuk Sensor Analog

PWM (Pulse Width Modulation) adalah format sinyal output mikrokontroler yang nilainya
dinyatakan dalam bentuk lebar pulsa, PWM digunakan untuk pengendali kecepatan motor.

Gambar Rangkaian PWM pada Mikrokontroller

12
8. Program
Mikrokontroler adalah piranti yang harus di program supaya dapat bekerja, program
mikrokontroler ditulis dalam berbagai bahasa. Program untuk mikrokontroler harus dikompilasi
agar mendapatkan hasil file eksekusi dengan ekstensi “.HEX”, “.File” kemudian di download ke
memori program dengan perantaraan sebuah programmer.

3.1. AT Mega 16

IC ATMEGA16 memiliki 32 pin GPIO (General Purpose Input Output). Ketigapuluhdua


pin ini bisa diprogram dalam berbagai fungsi seperti ADC, UART, INTERRUPT dan TIMER.
Proses download program flash memori melalui sistem ISP (In System Programming) juga
dilakukan melalui GPIO ini.

Secara fisik, mikrokontroler ATMEGA16 dikemas dalam dua model, yaitu PDIP 40 pin dan
TQFP 44pin. Kemasan PDIP atau singkatan dari Plastic Dual In Line Package adalah yang
umum kita pakai yaitu kemasan dengan dua buah kaki berjajar masing-masing 20 pin.
Sedangkan kemasan TQFP atau singkatan dari Thin Quad Flat Pack adalah kemasan model SMD
(Surface Mount Device) yang umum dipakai pada produk pabrik.

Gambar3.1 Konfigurasi pin dari ATMEGA 16 model PDIP 40 pin

13
Secara fungsional konfigurasi pin ATMega 16 adalah sebagai berikut:
a. VCC = Tegangan sumber
b. GND (Ground)
c. Port A (PA7 – PA0)
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin memilki internal pull-
up resistor. Output buffer port A dapat mengalirkan arus sebesar 20 mA. Ketika port A digunakan
sebagai input dan di pull-up secara langsung, maka port A akan mengeluarkan arus jika internal
pull-up resistor diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi
sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Pada Port ini biasanya
digunakan sebagai input dari sensor yang mengeluarkan data analog (sensor arus dan sensor
tegangan). Port ini mengubah sinyal sinus(linier/analog) dengan range 0Volt sampai 5Volt
menjadi sinyal digital.

Gambar 3.2 Gelombang sinus yang dihasilkan dari pembacaan sensor analog

14
Gambar 2.4 Mekanisme pengolahan data sensor analog agar dapat dibaca/diproses oleh mikrokontroller

Port Alternate Function


PA7 ADC7 (ADC input channel 7)
PA6 ADC6 (ADC input channel 6)
PA5 ADC5 (ADC input channel 5)
PA4 ADC4 (ADC input channel 4)
PA3 ADC3 (ADC input channel 3)
PA2 ADC2 (ADC input channel 2)
PA1 ADC1 (ADC input channel 1)
PA0 ADC0 (ADC input channel 0)
Tabel 1.1 Fungsi khusus port A

15
d. Port B (PB7 – PB0)
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin mengandung internal
pull-up resistor. Output buffer port B dapat mengalirkan arus sebesar 20 mA. Ketika port B
digunakan sebagai input dan di pull-down secara external, port B akan mengalirkan arus jika
internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
· SCK port B, bit 7
Input pin clock untuk up/downloading memory.
· MISO port B, bit 6
Pin output data untuk uploading memory.
· MOSI port B, bit 5
Pin input data untuk downloading memory.

Port Alternate Function


PB7 SCK (SPI Bus Serial Clock)
PB6 MISO (SPI Bus Master Input/Slave Output)

PB6 MOSI (SPI Bus Master Output/Slave Input)


PB5 SS (SPI Slave Select Input)
AIN1 (Analog Comparator Negative Input)
PB3
OCO (Timer/Counter0 Output Compare Match Output)

AIN0 (Analog Comparator Positive Input)


PB2
INT2 (External Interrupt 2 Input)
PB1 T1 (Timer/Counter1 External Counter Input)

T0 (Timer/Counter External Counter Input) XCK (USART


PB0
External Clock Input/Output)
Tabel 1.2 Fungsi khusus port B

16
e. Port C (PC7 – PC0)
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal
pull-up resistor. Output buffer port C dapat mengalirkan arus sebesar 20 mA. Ketika port C
digunakan sebagai input dan di pull-down secara langsung, maka port C akan mengeluarkan arus
jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan
seperti yang tertera pada tabel dibawah ini.
Port Alternate Function
PC7 TOSC2 (Timer Oscillator Pin 2)
PC6 TOSC1 (Timer Oscillator Pin 1)

PC6 TD1 (JTAG Test Data In)


PC5 TD0 (JTAG Test Data Out)
PC3 TMS (JTAG Test Mode Select)
PC2 TCK (JTAG Test Clock)
PC1 SDA (Two-wire Serial Bus Data Input/Output Line)
PC0 SCL (Two-wire Serial Bus Clock Line)
Tabel 1.3 Fungsi khusus port C

17
f. Port D (PD7 – PD0)
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal
pull-up resistor. Output buffer port D dapat mengalirkan arus sebesar 20 mA. Ketika port D
digunakan sebagai input dan di pull-down secara langsung, maka port D akan mengeluarkan arus
jika internal pull-up resistor diaktifkan.

Port Alternate Function


PD7 OC2 (Timer / Counter2 Output Compare Match Output)
PD6 ICP1 (Timer/Counter1 Input Capture Pin)
PD6 OCIB (Timer/Counter1 Output Compare B Match Output)
PD5 TD0 (JTAG Test Data Out)
PD3 INT1 (External Interrupt 1 Input)
PD2 INT0 (External Interrupt 0 Input)
PD1 TXD (USART Output Pin)
RXD (USART Input Pin)
PD0

Tabel 1.6 Fungsi khusus port D

18
2.3 Algoritma Pemrograman
Dalam pembuatan sebuah program terdapat 7 langkah umum yaitu:
1. Mendefinisikan masalah, Langkah yang pertama dilakukan adalah mendefinisikan
permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan
pula input dan output program.
2. Mencari solusi, Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk
mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian
masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul
kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
3. Menentukan algoritma, Dalam pemilihan algoritma, pemrogram atau analis harus
menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
4. Menulis program, Penulisan program bisa dilakukan dengan menggunakan bahasa
pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan
menggunakan program tersebut.
5. Menguji program, Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui
apakah program yang dibuat sudah layak untuk digunakan.
6. Mendokumentasikan program, Penulisan dokumentasi yang biasanya dilupakan oleh
pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat.
penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang
kegunaannya (variabel, parameter, procedur, fungsi).
7. Merawat program, Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian
bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah
pengguna program. Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran
algoritma pemrograman adalah bagian dari langkah-langkah pembuatan
program. Untuk lebih jelasnya tentang algoritma pemrograman akan diulas sebagai berikut :

19
PRAKTIKUM I
RANGKAIAN LCD DENGAN MINIMUM SYSTEM
Konfigurasi Rangkaian

Rangkaian LCD

Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system dan port LCD, seperti
gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

20
3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.

21
7. Pilih Port dan posisikan pada pillihan Port B(untuk LCD) dan setting semuanya menjadi
Out.

8. Pilih Alphanumeric LCD dan setting sesuai dengan gambar dibawah.

9. Kemudian pilih Generate program, save and exit.


10. Dan save 3 kali dengan nama file yang sama.

22
11. Pilih “Project”, kemudian “Configure”.

12. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

23
Program

#include <mega16.h>

// Alphanumeric LCD functions


#include <alcd.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{
……..
………
……….
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16
lcd_init(16);

while (1)
{
// Place your code here
lcd_clear(); // Membersihkan layar LCD dan memposisikan cursor pada (0,0)
delay_ms(500); // Waktu tunda 500 ms atau 1/2 detik

lcd_putsf("Pemrograman LCD"); // Menampilkan ‘strings’ pada baris ke-1


lcd_gotoxy(0,1); // Memposisikan cursor pada (0,1) atau baris ke-2
//lcd_putchar(‘1’); // Menampilkan ASCII ‘1’
//lcd_putchar(0x32); // Menampilkan ASCII bernilai 0x32 = ‘2’
lcd_putchar(51); // Menampilkan ASCII bernilai 50 = ‘3’
delay_ms(500); // Waktu tunda 500 ms atau 1/2 detik
}
}

24
PRAKTIKUM II
RANGKAIAN LCD DAN PUSH BUTTON DENGAN MINIMUM
SYSTEM

Konfigurasi Rangkaian

Rangkaian Pull Up Push Button

Rangkaian Pull Down Push Button

25
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, Push Button, dan port
LCD, seperti gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).

26
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.
7. Pilih Port dan posisikan pada pillihan Port B(untuk LCD) dan setting semuanya menjadi
Out. Dan pilih Port C (untuk push button) dan setting semua menjadi In.

27
8. Pilih Alphanumeric LCD dan setting sesuai dengan gambar dibawah.

9. Kemudian pilih Generate program, save and exit.


10. Dan save 3 kali dengan nama file yang sama.
11. Pilih “Project”, kemudian “Configure”.

28
12. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

29
Program

#include <mega16.h>

// Alphanu meric LCD functions


#include <alcd.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{
// Declare your local variables here
…………….
………………..
………………..

// Alphanumeric LCD initialization


// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0
// RD - PORTB Bit 1
// EN - PORTB Bit 2
// D4 - PORTB Bit 4
// D5 - PORTB Bit 5
// D6 - PORTB Bit 6
// D7 - PORTB Bit 7
// Characters/line: 16
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("LAB SCADA");
delay_ms(200);
lcd_gotoxy(0,1);
lcd_putsf("EN-104");
delay_ms(1000);
lcd_clear();
while (1)
{
// Place your code here
lcd_gotoxy(0,0);
lcd_putsf("silahkan");
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf("tekan tombol");
lcd_clear();

30
if(PINC.0==0) while(PINC.0==0)
{ {
lcd_gotoxy(0,0); lcd_gotoxy(0,0);
lcd_putsf("tombol 1"); lcd_putsf("tombol 1");
lcd_gotoxy(0,1); lcd_gotoxy(0,1);
lcd_putsf("sedang ditekan"); lcd_putsf("sedang ditekan");
delay_ms(10); delay_ms(10);
} }
if(PINC.1==0) while(PINC.1==0)
{ {
lcd_gotoxy(0,0); lcd_gotoxy(0,0);
lcd_putsf("tombol 2"); lcd_putsf("tombol 2");
lcd_gotoxy(0,1); lcd_gotoxy(0,1);
delay_ms(10); delay_ms(10);
lcd_gotoxy(0,1); lcd_gotoxy(0,1);
lcd_putsf("sedang ditekan"); lcd_putsf("sedang ditekan");
delay_ms(10); delay_ms(10);
} }
}
}

31
PRAKTIKUM III
MENAMPILKAN JUMLAH MENEKAN PUSH BUTTON DI LCD

Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, Push Button, dan port
LCD, seperti gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).

32
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.
7. Pilih Port dan posisikan pada pillihan Port B(untuk LCD) dan setting semuanya menjadi
Out. Dan pilih Port C (untuk push button) dan setting semua menjadi In.

33
8. Pilih Alphanumeric LCD dan setting sesuai dengan gambar dibawah.

9. Kemudian pilih Generate program, save and exit.


10. Dan save 3 kali dengan nama file yang sama.
11. Pilih “Project”, kemudian “Configure”.

34
12. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

35
PROGRAM
#include <mega16.h>
// Alphanumeric LCD functions
#include <alcd.h>
#include <delay.h>
#include <stdio.h>
char lcd[30];
int a =0;
int A;

void main(void)
{
…….
…….
……..

// Alphanumeric LCD initialization


// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0
// RD - PORTB Bit 1
// EN - PORTB Bit 2
// D4 - PORTB Bit 4
// D5 - PORTB Bit 5
// D6 - PORTB Bit 6
// D7 - PORTB Bit 7
// Characters/line: 16
lcd_init(16);

while (1)
{
while (A<10)
{
if (PINC.0==0)
{
A=a+1;
lcd_gotoxy(0,1);
sprintf(lcd,"data a: %d",A);
lcd_puts(lcd);
++a;
delay_ms(1000);
//lcd_clear();
}
}
}
}

36
PRAKTIKUM IV
RANGKAIAN BARLED DAN PUSH BUTTON DENGAN
MINIMUM SYSTEM
Konfigurasi Rangkaian

Rangkaian Barled Active High

Rangkaian Barled Active Low

37
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, Push Button, dan port
Barled seperti gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).

38
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.
7. Pilih Port dan posisikan pada pillihan Port D(untuk BARLED) dan setting semuanya
menjadi Out. Dan pilih Port C (untuk push button) setting semua menjadi In.

39
8. Kemudian pilih Generate program, save and exit.
9. Dan save 3 kali dengan nama file yang sama.
10. Pilih “Project”, kemudian “Configure”.

11. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

40
Program
#include <mega16.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{
…….
…….
…….

while (1)
{
// Place your code here
while(PINC.0==0)
{
PORTD =0b11101110;
}
while(PINC.1==0)
{
PORTD =0xFF;
}
}
}

41
PRAKTIKUM V
RANGKAIAN RUNNING BARLED DAN PUSH BUTTON DENGAN
MINIMUM SYSTEM

Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system dan port LCD, seperti
gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).

42
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.
7. Pilih Port dan posisikan pada pillihan Port D(untuk BARLED) dan setting semuanya
menjadi Out. Dan pilih Port C (untuk push button) dan setting semua menjadi In.

43
8. Kemudian pilih Generate program, save and exit.
9. Dan save 3 kali dengan nama file yang sama.
10. Pilih “Project”, kemudian “Configure”.

11. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini

44
Program
#include <mega16.h>
#include <delay.h>
int i;
// Declare your global variables here
void kanan ()
{
PORTD=0b10000000;
delay_ms(40);
for (i=0;i<7;i++)
{
PORTD>>=1;
delay_ms(400);
}
}

void kiri ()
{
PORTD=0b00000001;
delay_ms(40);
for (i=7;i>0;i--)
{
PORTD<<=1;
delay_ms(400);
}
}

void main(void)
{
…..
…..
…..
while (1)
{
// Place your code here
while(PINC.0==0)
{
kanan();
}
while(PINC.1==0)
{
kiri();
}
}
}

45
PRAKTIKUM VI
RANGKAIAN SEVEN SEGMENT DENGAN MINIMUM SYSTEM
Konfigurasi Rangkaian

Rangkaian Seven Segmen Common Anode

Rangkaian Seven Segmen Common Cathode

46
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system dan port Seven
Segmen seperti gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).

47
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.
7. Pilih Port dan posisikan pada pillihan Port A(untuk input seven segment) dan setting
semuanya menjadi In. Dan pilih Port B (untuk seven segment) dan setting semua
menjadi Out.

48
8. Kemudian pilih Generate program, save and exit.
9. Dan save 3 kali dengan nama file yang sama.
10. Pilih “Project”, kemudian “Configure”.

11. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini

49
Program
#include <mega16.h>
#include <delay.h>
char digit1, digit2, digit3, digit4;
// Declare your global variables here

void main(void)
{
…..
…..
…..
digit1=0xb0;
digit2=0xb0;
digit3=0Xb0;
digit4=0xb0;
while (1)
{
// Place your code here
PORTA=digit1;//mengirimkan data untuk angka 2
PORTB=0b11110111;//menyalakan digit1
delay_ms(10);

PORTA=digit2;//mengirimkan data untuk angka 1


PORTB=0b11111011;//menyalakan digit2
delay_ms(10);

PORTA=digit3;//mengirimkan data untuk angka 6


PORTB=0b11111101;//menyalakan digit3
delay_ms(10);

PORTA=digit4;//mengirimkan data untuk angka 3


PORTB=0b11111110;//menyalakan digit4
delay_ms(10);
}

50
51
PRAKTIKUM VII
RANGKAIAN Counter SEVEN SEGMENT DENGAN MINIMUM
SYSTEM
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system dan port LCD, seperti
gambar dibawah ini.

2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).

52
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.
7. Pilih Port dan posisikan pada pillihan Port A(untuk input seven segment) dan setting
semuanya menjadi In. dan pilih Port B (untuk output seven segment) dan setting semua
menjadi Out.

53
8. Kemudian pilih Generate program, save and exit.
9. Dan save 3 kali dengan nama file yang sama.
10. Pilih “Project”, kemudian “Configure”.

11. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

54
Program
#include <mega16.h>
#include <delay.h>
// Declare your global variables here
unsigned char bil[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main(void)
{
int satuan, puluhan, i;
……….
………
……….
while (1)
{
// Place your code here
satuan=0;
puluhan=0;

for(satuan=0;satuan<10;satuan++)
{
for(puluhan=0;puluhan<10;puluhan++)
{
for(i=0;i<1;i++)
{
PORTB.0=0;
PORTB.1=1;
PORTA=bil[puluhan];
delay_ms(1000);

PORTB.0=1;
PORTB.1=0;
PORTA=bil[satuan];
delay_ms(1000);

}
}
}
}
}

55
PRAKTIKUM VIII
RANGKAIAN CONTROL MOTOR DC DENGAN MINIMUM
SYSTEM

Konfigurasi Rangkaian

Rangkaian Driver Motor

Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, port motor dc, dan
port LCD seperti gambar dibawah ini.

56
2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).
5. Kemudian muncul Code WizardAVR.

6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.

57
7. Pilih Port dan posisikan pada pillihan Port D(untuk output motor DC).

8. Pilih Timer/Counter Timer 1 Clock Source (System Clock) Clock Value


(11059.200Khz) Mode (Fast PWM top[=0x00FF) Out.A & Out. B(Non Inverted
PWM).

58
9. Kemudian pilih Generate program, save and exit.
10. Dan save 3 kali dengan nama file yang sama.
11. Pilih “Project”, kemudian “Configure”.

12. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

59
Program
#include <delay.h>
unsigned char xcount,lpwm,rpwm ;
// Declare your global variables here
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
xcount++;
if (xcount <= lpwm){PORTD.4=1;}
else {PORTD.4=0;}
if (xcount <= rpwm){PORTD.5=1;}
else {PORTD.5=0;}
TCNT0 = 0XFF;
}
void maju ()
{
rpwm=200;
PORTA.4=1 ;PORTA.5=0 ;
}
void mundur ()
{
lpwm=200;
PORTA.5=1 ;PORTA.4=0 ;
}
void berhenti()
{
PORTA.5=0 ;PORTA.4=0 ;
}
void main(void)
{
……….
……….
……….
#asm("sei")

while (1)
{
// Place your code here
maju();
delay_ms(100);
mundur();
delay_ms(100);
berhenti();
delay_ms(100);
}
}

60
PRAKTIKUM IX
RANGKAIAN SENSOR LDR MINIMUM SYSTEM

Konfigurasi Rangkaian

Rangkaian sensor LDR

Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, sensor LDR, dan port
LCD, seperti gambar dibawah ini.

61
2. Kemudian hubungkan USB ASP ke port yang ada diatas AT MEGA.

3. Buka software CV AVR pada computer dan hubungkan USB ASP ke computer.

4. Pilih File New Project Target AVR chipe Type (AT90,ATtinny,At mega).
5. Kemudian muncul Code WizardAVR.

62
6. Pilih Chip, kemudian pilih Chip dengan ATmega16 dan ubahlah clock : 11.059200MHz.

7. Pilih “Analog to Digital Converter” kemudian setting sesuai dengan gambar diatas.
8. Pilih Port dan posisikan pada pillihan Port B(untuk LCD) dan setting semuanya menjadi
Out. Pilih Pin A.1 (untuk sensor LDR) dan setting menjadi In.

63
9. Pilih Alphanumeric LCD dan setting sesuai dengan gambar dibawah.

10. Kemudian pilih Generate program, save and exit.


11. Dan save 3 kali dengan nama file yang sama.
12. Pilih “Project”, kemudian “Configure”.

64
13. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.

65
Program

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

// Alphanumeric LCD functions


#include <alcd.h>
unsigned char data=0;
char kata[16];
// Declare your global variables here

// Voltage Reference: AREF pin


#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (1<<ADLAR))

// Read the 8 most significant bits


// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCH;
}

void main(void)
{
……..
……..
……..
while (1)
{
// Place your code here
data=read_adc(1);//baca data yang masuk pada ADC1 yaitu PINA1
sprintf(kata,"sensor : %d",data);//tampilkan data pada layar LCD
lcd_gotoxy(0,0);//posisi pada layar lcd

66
lcd_puts(kata);
delay_ms(1000);//waktu tunda biar nggak kecepetan
lcd_clear();//clear layar LCD
}
}

67

Anda mungkin juga menyukai