Professional Documents
Culture Documents
TEKNIK KOMPUTER
BINA SARANA INFORMATIKA
AMIK BSI JAKARTA 1
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
KATA PENGANTAR
Puji dan syukur saya panjatkan kepada Tuhan Yang Maha Esa, sehingga
saya dapat menelesaikan penyusunan Buku Panduan Modul Mikrokontroler.
Terima kasih penulis sampaikan kepada semua pihak yang telah mendukung
kelancaran dan penulis menerima saran dan kritikan dengan senang hati,
agar dapat membuat penyempurnaan modul ini.
Penulis
2
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Daftar Isi
3
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Data Sheet MODUL PRATIKUM MIKROKONTROLER
NB: Sumber tanggangan 5 Volt Kaki Pin 9 dan Gound Kaki Pin 10 pada
setiap kaki PORT mikrokontroler baik MCS51 dan Atmega16/32/8535.
4
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Gambar Blok Aplikasi Rangkaian LED dan PUS BUTTON
5 6
8
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
1.2 Konfigurasi PIN ATMEGA16
1. Kaki VCC yang merupakan masukan sumber tegangan terletak di PIN 10.
2. Kaki GND yang merupakan Ground terletak di kaki 11.
3. Kaki Xtal1 & Xtal2 yang merupakan pin masukan clock oscillator external di
Pin 12 dan Pin 13.
4. Kaki AVCC merupakan Pin masukan tegangan untuk ADC yang langsung
dihubungkan ke VCC.
5. Kaki AREF merupakan pin tegangan referensi atau nilai minimump ADC.
6. Kaki yang merupakan Interface PC ke Mikrokontroler (ISP) terletak pada kaki
PORTB dengan Pin 5 (Mosi), Pin 6 (Miso) dan Pin 7 (SCK).
7. Untuk dapat menggunakan pengaturan PWM terdapat di kaki PORTD Pin 4
(0C1B) dan Pin 5 (0C1A).
8. Untuk dapat berkomunikasi serial terdapat di kaki PORTD Pin 0 (RX/penerima)
dan Pin 1 (TX/pengirim).
9. Reset yang merupakan fungsi sebagai mereset mikrokontroler terdapat di kaki
pin 9.
9
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
10. Kaki PORTA terdapat pada kaki 33 s/d kaki 40 yang merupakan fungsi
converter Analog ke Digital (ADC).
11. Kaki PORTB terdapat pada kaki 1 s/d kaki 8 yang merupakan fungsi dua arah
serta ad beberapa fungsi lainya yang dapat dilihat pada table dibawah ini.
13. Kaki PORTD terdapat pada kaki 14 s/d kaki 22 yang merupakan fungsi dua
arah serta memiliki beberapa fungsi khusus seperti PWM dan Komunikasi
Serial.
Blok diagram Merupakan gambaran bagian –bagian atau peta yang ada
pada IC Mikrokontroler Atmega 16.
12
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
1.4 Arsitektur Mikrokontroler AVR RISC dan CISC.
A. Status Register (SREG) merupakan status yang dihasilkan pada operasi yang
dilakukan ketika suatu instruksi dieksekusi.
13
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
C. Peta Memori Atmega16.
- Memori Program.
Memori program berfungsi untuk menyimpan
instruksi-instruksi program yang sifatnya hanya
di baca/Read Only (ROM)
dengan alamat $0000 hingga $1FFF.
- Memori Data.
Memori Data berfungsi untuk keperluan program,
memori data terbagi 3 bagian yaitu :
32 buah register umum, 64 buah
register I/O dan 1 Kbyte SRAM internal.
GPR(General Purpose Register )
Menepati alamat data yaitu :
$0000 s/d $001F, Memori I/O menempati
64 alamat $20 hingga $5F. Memori I/O
berkapasitas 1024 Byte merupakan
Special Fungsi Register yang Khusus (SFR)
dengan Alamat $60 hingga $45F.
- Memori EEPROM.
Memori Data EEPROM 8 Bit
(Electrically Erasable Programmable read only Memory (EEPROM):
merupakan memori nonvolatile tidak hilang ketika catu daya mati)
yang menyerupai SRAM
dalam fleksibilitas pemrogramannya.
Memori jenis ini pada umumnya digunakan
untuk menyimpan data–data permanen
yang akan digunakan dalam program,
jumlah EEPROM yang tersedia adalah 512 Byte
dengan Alamat $000 hingga $1FF.
14
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
D. General Purpose Register AVR.
Seluruh instruksi operasi register dalam AVR
memiliki akses langsung ke semua register.
Kecuali untuk lima instruksi arimatika-logika
yang mengoperasikan register dengan konstanta
(SBCI, SUBI, CPI, ANDI, dan ORI) dan LDI
yang mengoperasikan pemuatan data konstan
imediet. Instruksi-instruksi tersebut dioperasikan
hanya pada separuh lokasi register terakhir
GPR (R16 sampai R31). Instruksi untuk
operasi umum seperti SBC, SUB, CP, AND, OR
dan operasi lainnya yang mengoperasikan
dua register atau satu register
dapat dilakukan akses terhadap seluruh register
15
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
BAB. II
Mengenal Bahasa Pemograman C/C++
Pada Mikrokontroler ATMEGA16
#include <mega16.h>
#include <delay.h>
main ()
{
………………. ;
………………. ;
………………. ;
};
}
Keterangan :
main () yang di awali dengan buka kurung dan tutup kurung merupakan program di
dalam tubuh program yang di sebut dengan blok program.
Tanda {………. dan di akhiri ……. } merupakan perintah yang harus dikerjakan oleh
prosesor, dan setiap pernyataan diakhiri dengan tanda titik koma (;).
Tanda akhir ……..}; dengan disertakan titik koma meruapakan bagian instrupsi atau
perintah looping atau berulang – ulang.
Tipe data merupakan bagian program yang paling penting karena tipe
data mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer.
16
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi
lebih efisien dan efektif, untuk lebih jelasnya dapat dilihat di table tipe data.
No. Tipe Data Ukuran Range (Jangkauan)
1. Char 1 byte -128 s/d 127
2. Int 2 byte -32768 s/d 32767
3. Unsigned int 2 byte 0 s/d 65535
4. Long Int 1 byte -2147483648 s/d 2147483648
5. Unsigned Long int 4 byte 0 s/d 4294967296
6. Float 4 byte -3.4E-38 s/d 3.4E+38
7. Double 4 byte 1.7E-308 s/d 1.7E+308
8. Long Double 10 byte 3.4E-4932 s/d 1.1E+4932
9. Char 1 byte -128 s/d 127
10. Unsigned char 1 byte 0 s/d 255
2.2 Variabel
17
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
DDRA=0xFF; PORTA=0xFF;
* bil1=4;
PORTA=bil1*bil2;
}
bil2=2;
#include <mega16.h>
#include <delay.h>
void main()
{ // awal program
int bil1;
Operator untuk Pembagian int bil2;
/ DDRB=0xFF;
PORTB=0xFF;
bil1=10;
bil2=2;
PORTB=bil1 / bil2; // artinya jumlah nilai
di PORTB = 5 Bit
} // penutup program atau akhiran program
#include <mega16.h>
#include <delay.h>
void main()
{ // awal program
int bil1;
int bil2;
untuk sisa pembagian DDRC=0xFF;
% PORTC=0xFF;
bil1=14;
bil2=2;
PORTC=bil1 % bil2; // artinya
jumlah nilai di PORTC = 8 Bit
} // penutup program atau akhiran program
#include <mega16.h>
#include <delay.h>
void main()
{ // awal program
int bil1;
int bil2;
untuk Penambahan DDRD=0xFF;
+ PORTD=0xFF;
bil1=16;
bil2=6;
PORTD=bil1 + bil2; // artinya jumlah
nilai di PORTD = 24 Bit
} // penutup program atau akhiran program
#include <mega16.h>
#include <delay.h>
void main()
{ // awal program
int bil1;
int bil2;
untuk Pengurangan DDRB=0xFF;
PORTB=0xFF;
18
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
bil1=12;
- bil2=7;
PORTB=bil1 - bil2; // artinya jumlah
nilai di PORTB = 5 Bit
}
2.4 Operator Hubungan (Perbandingan)
Contohnya:
Void main ()
{
Char a =0x03; // data Input 1
Char b=0x31; // data Input 2
DDRB=0XFF; // memakai alamat register B
PORTB=0xFF; // memakai output di kaki PORTB
PORTB= a & b ; // artinya data PORTB bernilai 1 H
}
0x31 = 00110001
Hasil 0x35 = 00110101 = 35H
21
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
#include <mega 16.h>
#include <delay.h>
Void main ()
{
Char a =0x03; // data input 1
Char b=0x31; // data input 2
DDRA=0xFF; // Memakai Alamat register A
PORTA=0xFF; // Output di kaki PORTA
PORTA= a I b ; // artinya data di PORTA bernilai 35 H
}
Contoh :
Hasil = 0x02 ^ 0xFA; Operasinya 0x02 = 00000010
0XFA = 11111010
Hasil 0xF8 = 11111000 = F8H
22
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
#include <mega 16.h>
#include <delay.h>
Void main ()
{
Char a = 0x31; // data input 1
DDRB=0XFF; // Memakai Alamat Register B
PORTB=0xFF; // Output di kaki PORTB
PORTB= a ~ a; // artinya data di PORTB bernilai 3EH
}
Dibelakang tanda // tak akan diproses dalam kompilasi. Tanda ini hanya untuk
satu baris kalimat.
Contoh kedua :
*/ program untuk memutar motor DC atau
motor Stepper */
Bentuk ini berguna kalau pernyataan berupa kalimat yang panjang sampai
beberapa baris.
#include <mega16.h>
#include <delay.h>
Void main()
{
char inp1;
DDRA=0xFF;
DDRB=0xFFF;
inp1=PORTB;
if(inp1==0x40)
{
PORTA=0x20
}
}
24
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
B. STRUKTUR KONDISI “IF….ELSE…”
#include <mega16.h>
#include <delay.h>
Void main ()
{
char inp1;
DDRA=0xFF;
DDRB=0xFF;
inp1=PORTB;
if (inp1==0x01)
{
PORTA = 0x20;
}
else // bila tidak sama kerjakan berikut ini
{
25
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PORTA=0x80;
}
}
2.14 PERULANGAN
26
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Maka dengan struktur perulangan akan mempermudah dalam pembuatan
program berulang ulang, ada beberapa struktur perulangan yaitu :
27
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
3. STRUKTUR PERULANGAN “FOR”
Pernyataan;
#include <mega16.h>
#include <delay.h>
Void main ()
{
char a;
DDRA=0xFF;
for (a=10;a>=a>=0;a--)
PORTA=a;
}
Setiap elemen array dapat diakses melalaui indeks. Indeks array secara
default dimulai dari 0. Deklarasi Array bentuk umum:
28
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
B. ARRAY DIMENSI DUA
Array dua dimensi merupakan array yang terdiri dari m buah baris dan
n buah kolom. Bentuknya dapat berupa matriks atau tabel.
[tipe_array][nama_array][elemen1][elemen2]…[elemenN];
2.16 FUNGSI
1. PENGERTIAN FUNGSI
2. PENDEFISIAN FUNGSI
3. PROTOTYPE FUNGSI
#include <mega16.h>
#include < delay.h>
int jumlah (int bil1, int bil2)
Void main ()
{
DDRA=0xFF ;
PORTA=jumlah (20, 50)
}
int jumlah (int bil1, int bil2)
{
Return (bil1+bil2) ;
}
30
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
ini maka variabel ini akan hilang. Variabel global adalah variabel yang
dideklarasikan di luar fungsi, sehingga semua fungsi dapat memakainya.
#include <mega16.h>
#include < delay.h>
int jumlah (int bil1, int bil2)
int data1;
void main ()
{
int data1;
DDRA=0xFF ;
data1=jumlah (20,50) ;
PORTA = data1;
}
int jumlah (int bil1,int bil2)
{
Return (bil1+bil2) ;
}
Kata kunci extern dan static digunakan untuk menyatakan sifat dari
variabel atau fungsi. Suatu variabel atau fungsi yang didepannya ditambah
dengan kata kunci extern maka artinya variabel atau fungsi tersebut
didefinisikan di luar file tersebut. Variabel global atau fungsi yang di
depannya ditambah kata kunci static mempunyai arti bahwa variabel
global atau fungsi tersebut bersifat pivate bagi file tersebut, sehingga tidak
dapat diakses dari file yang lain.
Fungsi yang tidak mempunyai nilai balik merupakan kata kunci void
sedangkan fungsi yang tidak mempunyai argumen, setelah nama fungsi
dalam kurung dapat kosong atau dengan menggunakan kata kunci void.
Contoh Program :
atau
void tunda ()
31
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
{
for (i=0;<10;i++) ;
}
/* fungsi tunda_panjang
Void tunda_panjang (int n )
{
Int i ;
for (i=0; i<n ;i++)
tunda () ;
Nilai balik yang dinyatakan delam pernyataan return. Tipe nilai balik
dapat berupa char, int, short, long, atau float.
Contoh Program :
int jumlah (int bil1, int bil2)
{
Return (bil1+bil2)
}
8. ARGUMEN/ PARAMETER FUNGSI
#include <mega16.h>
#include <delay.h>
Void Tambahv(int A)
{
A=A+1;
}
Void main ()
{
Int B;
DDRA=0xFF;
B=4;
Tambahv (B);
PORTA=B;
}
32
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
b. Pelewatan secara pointer
Bentuk definisi pelewatan secara pointer adalah:
Tipe nama_fungsi (tipe *argumen1, tipe *argumen2,…)
{
…………………………….
…………………………….
}
#include <mega16.h>
#include <delay.h>
Void Tambahp (int *A)
{
*A=A+1;
}
Void main ()
{
Int B;
DDRA=0xFF;
B=4;
Tambahp (&B);
PORTA=B;
}
33
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
BAB. III
Mengenal Program Codevision AVR (Compiler)
Selain library standar C, CodeVisionAVR juga mempunyai library atau fitur –fitur
Hardware yang terdiri dari :
34
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
3.1 Langkah – langkah dalam menggunakan software codevision AVR :
3. Klik New
lalu rubah Source dengan klik Project, lalu klik OK lalu klik Yes
Seting
35
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
5. Lalu klik PORT (tujuan untuk mengatifkan jenis port yang digunakan )
karena menggunakan skema gambar yang sudah di rangkai pada
software simulasi proteus di alamat PORTC maka klik PORTC, lalu
seting bit IN menjadi bit Out serta seting Pullup/Out T menjadi 1.
Seting
36
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
BAB. IV
Mengenal Program Download (ISP Prog.1.68)
37
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Cara Mendownload Program dengan
Software ISP Prog (Ver 1.68)
Open File Hex
Untuk Download
Menyimpan Data
Program Hex Ke
Memori External
Klik Command
Melihat menu
Berikutnya
Write Flash
Buat Download
Program Ke IC
Program Fuse
Menetapkan Fuse
Bit
Lock Chip
Untuk Mengunci
Program yang sudah
di download
Select Chip
Jenis IC Mikrokontroler Erase berfungsi
Atmel Untuk Menghapus
Atmega Program yang ada di IC
AVR
ANT9 Auto berfungsi
dll Untuk membaca /
Scanning IC
Mikrokontroler
38
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
4.1 Langkah – Langkah dalam mendwonload program
Hasilnya
39
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
8. Bila benar maka tampil succesfull read.
40
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
12. Setelah dihapus klik file pilih load flash atau klik load flash yang ada di
samping tampilan, pilih dimana anda menyimpan program yang sudah
disimpan di folder, bila sudah ketemu klik Exe, untuk membuka isi file hex
yang sudah di compiler tadi, lalu klik Open.
14. Klik Command klik Write Flash , karena masih dalam flash penyimpanan
programnya jadi jangan klik Write EEPROM. Setelah itu klik lagi Command klik
Program Fuse.
41
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
15. Jangan Klik Lock Chip bila tidak ingin mengunci program download
NB : Bila di lock chip maka sulit untuk membuka atau mengisi lagi program ke
IC Mikrokontroler Atmega
16. Bila sudah berhasil atau succesfuly dalam mendownload program ke dalam IC
mikrokontroler, maka IC Siap dipakai dan lihat hasilnya.
42
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
BAB. V
Aplikasi Rangkaian
43
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK I
APLIKASI INPUT/OUTPUT MENYALAKAN LED
#include <mega16.h>
#include <delay.h>
void main(void)
{
DDRC=0x0FF;
PORTC=0x00;
while (1)
{
PORTC=0b11111111;
delay_ms(500);
PORTC=0b11111110;
delay_ms(500);
PORTC=0b11111101;
delay_ms(500);
PORTC=0b11111011;
delay_ms(500);
PORTC=0b11110111;
delay_ms(500);
PORTC=0b11101111;
delay_ms(500);
PORTC=0b11011111;
delay_ms(500);
PORTC=0b10111111;
delay_ms(500);
PORTC=0b01111111;
delay_ms(500);
};
}
NB : Dapat membuat tampilan led berbeda dari tugas yang ada diatas, tetap
jelaskan prinsip kerja tampilan led yang dibuat.
44
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Tabel Bilangan Biner
45
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK II
Aplikasi Menyalakan Seven Segmen
#include <mega16.h>
#include <delay.h>
{
switch (data1)
{
case 0: PORTA=0xc0;
break;
case 1: PORTA=0xf9;
break;
case 2: PORTA=0xa4;
break;
case 3: PORTA=0xb0;
break;
case 4: PORTA=0x99;
break;
case 5: PORTA=0x92;
break;
case 6: PORTA=0x82;
break;
case 7: PORTA=0xf8;
break;
case 8: PORTA=0x80;
break;
case 9: PORTA=0x90;
break;
}
}
void main(void)
{
DDRA=0xff;
while (1)
{
bin7seg(0); delay_ms(500);
bin7seg(1); delay_ms(500);
bin7seg(2); delay_ms(500);
bin7seg(3); delay_ms(500);
bin7seg(4); delay_ms(500);
bin7seg(5); delay_ms(500); 1. Buatlah Tampilan seven segment
bin7seg(6); delay_ms(500); menyala dari 0 s/d F ?
bin7seg(7); delay_ms(500);
bin7seg(8); delay_ms(500); 2. Buatlah Tampilan seven segment
bin7seg(9); delay_ms(500); berupa ( b. s. i ) ?
};
}
3. Buatlah tampilan Seven segment
berupa ( A.Y.A.H) dan ( i.b.u) ?
NB : Komponen yang digunakan dalam Modul Pratikum ini berjenis Seven Segmen Anoda
atau berkutub Positif, sehigga untuk menyalakan membutuhkan kondisi low
(Ground).
46
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Aplikasi menyalakan
Seven Segment 2 Digit
47
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK III
Aplikasi led dengan pus button
#include <mega16.h>
#include <delay.h>
void main(void)
{
DDRC=0xff;
PORTC=0x00;
DDRD=0x00;
PORTD =0xff;
while(1)
{
if(PIND.0==0)
{
PORTC=0b1111110;
delay_ms(100); //delay 100 ms
}
if (PIND.1==0)
{
PORTC=0b11111101;
delay_ms(100); //delay 100 ms
}
if (PIND.2==0)
{
PORTC=0b11111011;
delay_ms(100);
}
if (PIND.3==0)
{
PORTC=0b11110111;
delay_ms(100);
}
if (PIND.4==0)
{
PORTC=0b11101111;
delay_ms(100);
}
if (PIND.5==0)
{
PORTC=0b11011111;
delay_ms(100);
}
if (PIND.6==0)
{
PORTC=0b10111111;
delay_ms(100);
1. Buatlah Tampilan led menyala
}
if (PIND.7==0) kekiri setelah ditekan button ?
{ 2. Buatlah Tampilan led menyala
PORTC=0b01111111;
delay_ms(100); kekanan setelah ditekan button ?
} 3. Buatlah tampilan led secara acak
} //akhir looping bila di tekan button ?
} //Akhir program utama
48
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK IV
Aplikasi Seven Segmen dengan Pus Button
#include <mega16.h>
#include <delay.h>
void main(void)
{
DDRA=0xFF;
PORTA=0x00;
DDRD=0x00;
PORTD =0xFF;
while(1)
{
PORTA=0xC0;
If (PIND.0==0)
{
PORTA=0xF9;
}
If (PIND.1==0)
{
PORTA=0xA4;
}
if (PIND.2==0)
{
PORTA=0xB0;
}
if (PIND.3==0)
{
PORTA=0x99;
}
if (PIND.4==0)
{
PORTA=0x92;
}
if (PIND.5==0)
{
PORTA=0x82;
}
if (PIND.6==0)
{
PORTA=0xF8;
}
if (PIND.7==0)
{
PORTA=0x80;
}
}; //akhir looping
} //Akhir program utama
49
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK V
Aplikasi Sensor dengan BUZER
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0b10000000; // data Port A.7 untuk sensor (input)
DDRA=0x00; Port yang di
PORTC=0x00; // data Port C.7 untuk buzer (output) gunakan untuk
DDRC=0b10000000; sensor Kaki
while (1) PortA.7, untuk
{ Buzer Kaki
{
PORTC=0b10000000; // Kondisi Buzer tidak bunyi
PortC.7,
delay_ms(100);
if (PINA.7==1) // bila sensor terhalang maka buzer bunyi
PORTC=0b00000000; // kondisi Buzer keadaan bunyi
delay_ms(200);
}
};
}
1. Buatlah tampilan led mati hidup bersama buzzer bunyi ketika sensor
terhalangi
2. Buatlah buzzer berbunyi ketika sensor terhalang dan buzzer mati ketika
sensor terhalang
50
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK VI
Aplikasi Sensor dengan Motor DC
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0b10000000;
DDRA=0x00;
while (1)
{
if (PINA.7==0) // Data untuk Sensor
{
PORTB.0=1; // data untuk motor DC
PORTB.1=0; // data untuk motor DC
}
if (PINA.7==0)
{
PORTB.0=0;
PORTB.1=1;
}
};
}
51
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK VII
Aplikasi sensor dengan motor DC dan Buzer
#include <mega16.h>
#include <delay.h>
void main(void)
{
PORTA=0b10000000;
DDRA=0x00;
PORTB=0xFF; // data untuk port sensor (input)
DDRB=0x000;
PORTC=0x00; // ouput Buzer
DDRC=0b10000000;
while (1)
{
{
PORTC=0b10000000;
delay_ms(100);
PORTB.0=0;
PORTB.1=0;
}
if (PINA.7==1) // bila sensor terhalang
{
PORTB.0=1;
PORTB.1=0;
delay_ms(100); NB : sensor di kaki Port A.7
PORTC=0b00000000;
delay_ms(200);
}
};
}
52
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK VIII
Aplikasi sensor dan seven segmen
53
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
TABEL LAYAR LCD
S e la m a t D a t a n g
D i Kam pus
B IN A S A R A N A IN F O R M A T IK A
10
11
12
13
14
15
16
1
9
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
BPL
VEE
RS
GND
VCC
GND
R/W
5V 5V
P (A5)
P (A2)
P (A4)
P (A6)
P (A7)
P (A0)
P (A1)
10K
10K
#include <mega16.h>
#include <delay.h>
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
void main(void)
{
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("selamat datang");
delay_ms(1000);
lcd_gotoxy(0,1);
lcd_putsf("di AMIK BSI");
delay_ms(1000);
lcd_gotoxy(0,5);
lcd_putsf(" JURUSAN ");
delay_ms(1000);
lcd_gotoxy(0,8);
lcd_putsf("T.Komputer");
delay_ms(1000);
while (1)
{
// Place your code here
};
}
55
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK XI
Aplikasi Tampilan Layar LCD dengan Pus Button
#include <mega16.h>
#include <delay.h>
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
void main(void)
{
DDRC=0xFF;
PORTC=0x00;
DDRD=0X00;
PORTD=0XFF;
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("Selamat Datang");
delay_ms(800);
while (1)
{
if(PIND.7==1)
{
lcd_gotoxy(0,1);
PORTC=0xff;
lcd_putsf("= Di Lab Teknik I =");
delay_ms(800);
}
else
{
lcd_gotoxy(0,0);
PORTC=0x00;
lcd_putsf("Pratikum Mikro");
delay_ms(800);
lcd_gotoxy(0,1);
PORTC=0x00;
lcd_putsf("**Terima Kasih**");
delay_ms(800);
}
};
}
56
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
PRAKTEK XII
Aplikasi Tampilan Layar LCD, Sensor dan Buzer
#include <mega16.h>
#include <delay.h>
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
void main(void)
{
DDRC=0xFF;
PORTC=0x00;
DDRD=0X00;
PORTD=0XFF;
lcd_init(16);
while (1)
{
if(PIND.7==0)
{
lcd_gotoxy(0,0);
lcd_putsf("Selamat Datang");
delay_ms(800);
lcd_gotoxy(0,1);
PORTC=0xff;
lcd_putsf("=Silahkan Masuk=");
delay_ms(800);
}
else
{
lcd_gotoxy(0,0);
PORTC=0x00;
lcd_putsf("Silahkan Keluar");
delay_ms(800);
lcd_gotoxy(0,1);
PORTC=0x00;
lcd_putsf("**Terima Kasih**");
delay_ms(800);
}
};
}
57
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
BAB VI
Penutup
58
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta
Daftar Referensi
59
Email : fildesrobotik@yahoo.co.id, winnerparluhutan.blogspot.com
Teknik Komputer AMIK BSI JAkarta