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.
3
1.2. Mikroprosesor, Mikro-Komputer dan Mikro-kontroler
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).
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
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
Berikut piranti piranti yang dapat ditemukan pada sebuah micro controller:
1. Memory
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
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
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
5. Clock Osilator
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
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.
PWM (Pulse Width Modulation) adalah format sinyal output mikrokontroler yang nilainya
dinyatakan dalam bentuk lebar pulsa, PWM digunakan untuk pengendali kecepatan motor.
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
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.
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
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.
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)
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.
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.
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.
22
11. Pilih “Project”, kemudian “Configure”.
12. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.
23
Program
#include <mega16.h>
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
24
PRAKTIKUM II
RANGKAIAN LCD DAN PUSH BUTTON DENGAN MINIMUM
SYSTEM
Konfigurasi Rangkaian
25
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, Push Button, dan port
LCD, seperti gambar dibawah ini.
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.
28
12. Setelah muncul windows configure pilih after build sesuaikan dengan setting dibawah ini.
29
Program
#include <mega16.h>
void main(void)
{
// Declare your local variables here
…………….
………………..
………………..
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.
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.
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)
{
…….
…….
……..
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
37
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system, Push Button, dan port
Barled seperti gambar dibawah ini.
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.
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
46
Langkah langkah
1. Pastikan kabel connector sudah terhubung antara minimum system dan port Seven
Segmen seperti gambar dibawah ini.
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);
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.
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
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).
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
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.
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>
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