Professional Documents
Culture Documents
Buku Ajar Mikroprosesor Dan Mikrokontroler PKM Di SMKN 1 SOLOK123
Buku Ajar Mikroprosesor Dan Mikrokontroler PKM Di SMKN 1 SOLOK123
Buku Ajar Mikroprosesor Dan Mikrokontroler PKM Di SMKN 1 SOLOK123
Oleh:
Dr. Edidas, M.T.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 1 dari 54
DAFTAR ISI
ABSTRACT
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 2 dari 54
The main part in a processor is Arithmatic and Logic Unit (ALU). The function of ALU
can do arithmatic opration and logic operation. Add, substarct, multiply and devide are
arithmatic operation. AND, OR, NOT, EXOR, EXNOR or its combinations are call logic
operation. To do a operation the processor need two data operand, an instruction and many
registers to support. For Example how to realization ADD instruction to adding two numbers.
The first data operand must put in one of all purpose register, R0. Then the contens of R0
register must move into Y register to be latch on Y input of ALU. After that make sure fill in R0
register again with a second data operand. Then move it in internal bus and give processor
ADD instruction simultaneous. The result of operation come soon in Z register.
Processor need many memory to remember the result, becouse the last result will be loss
when a new result come on. The operation must be continued to write the result into memory.
For the fisrt time R0 must fill in numbers and then move it into Memory Address Register
(MAR). Now a location of memory that pointing by MAR make active. Then make sure the
contents of Z register move into Memory Data registers (MDR). Give write instruction and
wait for Memory Fuction Complete (MFC) signal to sign that all data had written into
memory. In this point we can say that processor had finished one operation.
A. PENDAHULUAN
Suatu hal yang tak dapat dipungkiri adalah bahwa wajah dunia sangat cepat berubah
sejak ditemukannnya prosesor (sebutan umum untuk mikroprosesor) yang menjadi otak dari
sistem komputer. Dengan kecerdasan dan kecepatan yang dimiliki oleh sebuah prosesor banyak
hal yang dapat dikerjakannya seperti pengendalian alat-alat listrik dan elektronik rumah tangga
sampai pengindaraan dan pengendalian jarak jauh yang tidak lagi dibatasi jarak, waktu dan
ruang. Teknologi prosesor ternyata sangat mudah dan murah untuk diterapkan pada sistem alat-
alat bantu manusia. Televisi, Video CD, Mesin cuci, mobil, apalagi pesawat udara, pesawat
ruang angkasa, satelit dan seterusnya telah menerapkan teknologi prosesor untuk meningkatkan
unjuk kerjanya.
Nah untuk megetahui sehebat apakah sebuah prosesor itu sehingga hampir semua
sektor kehidupan manuasia dapat dimasukinya. Dan seberapa rumitkah sistem prosesor itu
sehingga banyak orang enggan untuk mempelajarinya namun tetap mengaguminya dan
memanfaatkannya. Sebenarnya sistem prosesor tidaklah begitu rumit dan semua orang yang
telah punya latar belakang elektronika dan digital dengan cepat dapat mengerti tentang sistem
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 3 dari 54
dan cara kerjanya. Dalam tulisan yang ringkas ini ini saya akan menjelaskan bagaimana cara
kerja proseseor mulai dari hal-hal sangat gamblang dan mudah dipahami.
PERIPHERAL CLOCK
MEMORY
Prosesor bekerja hanya satu kali jadi untuk satu proses data, kalau ada pekerjaan
berikutnya maka hasil proses yang pertama akan hilang . Untuk menjaga data dapat diproses
prosesor dan hasilnya dapat diingat maka di perlukan bantuan memory, yang mampu
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 4 dari 54
menyimpan data baik sebelum diproses ataupun setelah diproses. Selain itu memory juga
berguna untuk menyimpan program-program yang akan dipergunakan untuk memerintah
prosesor itu sendiri.
Agar data yang telah dihasilkan dari proses pada prosesor dapat dipakai pada waktu
ldan tempat lain maka dipelukan media penyimpan permanen yang disebut Storage. Banyak
jenis penyimpan data komputer ini misalnya : Disket, Harddisk, CD, Flash Disk, tape back up
dan lain-lain.
C. Arsitektur Prosesor
Untuk mengetahui prinsip kerja prosesor maka kita dapat melihat gambar arsitektur
nya . Secara garis besarnya arsitektur prosesor dibagi menjadi dua jenis yaitu :
Prosesor sistem bus tunggal maksudnya adalah saluran perpindahan data antar bagian
di dalam prosesor melalui satu sistem bus saja, seperti terlihat pada gambar 2. Sistem bus itu
tediri dari beberapa kawat penghubung yang berguna untuk menyalurkan data antar bagian-
bagian di dalan prosesor itu. Oleh karena bus dapat diisi data hanya satu macam data setiap
saat, maka data yang akan di transfer dari dan ke bagian hanya dapat dilakukan secara
bergantian dengan urutan tertentu. Dengan sifat bus yang demikian itu maka prosesor dengan
sistem bus tunggal akan bekerja lebih lambat dan waktu prosesor banyak terbuang hanya
kerena menunggu aliran data selesai. Namun demikian untuk mempelajari prinsip kerjanya
maka prosesor sistem bus tunggal lebih mudah dimengerti.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 5 dari 54
Y yang berguna untuk menahan salah satu data yang akan di proses di input Y. Sedangkan data
kedua dapat langsung dimasukkan ke input X.
Ketika sinyal kontrol diberikan ke ALU maka data hasil proses ALU akan terjadi di
outputnya. Agar data ini tidak terganggu oleh yang lain maka data hasil proses itu langsung
dipindahkan ke register Z yang terletak di Output ALU. Data yang sudah berada di register Z
itu akan dapat dipindahkan ke register lain untuk di proses selanjutnya.
Register Y adalah sebuah register yang ditempatkan di salah satu input ALU (arithmatic
and Logic Unit) yang berguna untuk menahan salah satu data yang akan di proses ALU
tersebut. Misalnya ALU diperintahkan untuk menjumlahkan dua buah bilangan 1001 dengan
1100. Maka data operand pertama 1001 harus dimasukkan ke register Y untuk ditahan
sementara di input Y ALU. Setelah itu data operand kedua 1100 langsung dimasukkan ke input
X ALU bersama dengan sinyal control ADD. Hasil dari proses penjumlahan tersebut akan
dimasukkan ke register Z dan Carry out ke Co ALU. Jadi register Z berguna untuk menahan
data hasil proses ALU.
Selain register Y dan register Z ternyata ALU memerlukan register-register lain untuk
membantu tugasnya agar dapat melakukan proses yang benar. Diperlukan register serbaguna
untuk memasukkan data operan pertama ke register Y serta data operan kedua pada input X
dari ALU. Sebelum diproses oleh ALU maka kedua data harus ada secara bersama-sama pada
kedua input ALU tersebut.
BUS
ALAMAT
CU
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 6 dari 54
IR
MPACR
Bus Internal
M
E
M
O
R
I
MDR
Register R0
BUS
DATA Serbaguna
Rn-1
Y X
ALU
Keterangan Gambar :
CU = Control Unit (Kumpulan Perintah)
IR = Intruction Register ( Register Penunjuk Perintah)
MAR = Memory Address Register ( Register Penunjuk Alamat Memory)
MDR = Memory Data Register ( Register Pencatat Data Memory )
PC = Program Counter ( Register penunjuk Langkah Program yang akan
diproses).
R0 = Register Serbaguna nomor pertama
R1 = Register Serbaguna kedua
R n-1 = Register serbaguna terakhir.
Y = Register Pemegang operan pertama sebelum diproses ALU
Z = Register Pemegang hasil yang sudah diproses ALU
Bus Internal = Bus data yang terdapat di dalam prosesor
Bus Alamat = Bus yang menghubungkan PIN alamat prosesor dengan
PIN Alamat Memory, yang berguna untuk menunjuk
alamat memory.
Bus Data = Bus yang menghubungkan PIN data prosesor dengan PIN
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 7 dari 54
data Memory, yang berguna untuk baca/tulis data dari
prosesor ke Memory atau sebaliknya.
Misalnya ketika prosesor diinginkan untuk melakukan operasi penjumlahan (ADD) dari
dua buah bilangan 1001 dengan 1100 maka langkah-langkah yang dilakukan prosesor adalah
sebagai berikut :
1. Isi register serbaguna R0 dengan suatu angka yang sama dengan alamat data
operan pertama dalam memory. Misalnya operan pertama (angka 1001) terletak
pada alamat 500 maka isilah R0 dengan angka 500.
2. Pindahkan isi register serbaguna R0 ke MAR. Maka sekarang isi MAR adalah
angka 500, itu berarti sekarang prosesor menunjuk alamat memory 500.
3. Bila alamat memory sudah ditunjuk oleh MAR maka data yang ada di alamat itu
akan langsung pindah ke MDR.
4. Proses pemindahan data dari memory ke MDR memakan waktu, sehingga prosesor
harus menunggu sinyal MFC (Memory Function Complete) yang menandakan
semua data sudah pindah ke MDR. Dengan demikian sekarang MDR berisi data
1001 yang berasal dari memory alamat 500 tadi.
5. Pindahkan data yang sudah ada di MDR ke register Y untuk ditahan pada input Y
dari ALU. Dan data yang berada dalam regsiter Y itu berfungsi sebagai operan
pertama.
6. Ambil data operan kedua dengan cara menunjuk alamat lokasi memory dimana
data itu terletak. Misalnya data operan kedua yaitu angka 1100 terletak pada lokasi
501, maka langkah-langkahnya sama dengan langkah 1-4 ditambah dengan
perintah operasi (dalam contoh ini perintah itu adalah ADD).
7. Isi regiater serbaguna R0 kembali dengan bilangan 501, karena alamat yang akan
di tunjuk adalah 501.
8. Pindahkan isi register serbaguna R0 ke MAR. Menurut contoh ini maka isi MAR
sekarang adalah angka 501, sehingga lokasi memory 501 sekarang sedang
ditunjuk.
9. Data yang berada pada lokasi 501 sekarang pindah ke MDR.
10. Setelah sinyal MFC datang maka sekarang MDR berisi data yang berasal dari
memory 501. Menurut contoh ini maka MDR sekarang berisi angka 1100.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 8 dari 54
11. Berikan perintah ADD pada prosesor maka data yang di MDR akan langsung
masuk ke input X dari ALU dan langsung dijumlahkan dengan data operan
pertama yang sudah berada di input Y tadi.
12. Operasi memakan waktu beberapa saat setelah itu hasilnya akan keluar pada
output ALU dan langsung dipegang oleh register Z.
13. Hasil operasi ALU yang sudah berada di dalam register Z akan disimpan ke dalam
lokasi memory tertentu untuk diamankan ( sebab jika tetap berada di dalam
register Z data itu akan hilang jika ALU melakukan tugas berikutnya).
14. Proses penyimpanan data ke dalam memory dilakukan dengan cara menununjuk
lokasi memory tempat data akan disimpan, lalu data yang akan disimpan
dimasukkan ke MDR untuk diampaikan ke lokasi itu.
15. Misalnya data itu akan disimpan pada lokasi 502 maka pertama yang dilakukan
adalah mengisi register serbaguna R0 dengan angka 502.
16. Pindahkan isi register serbaguna R0 ke MAR, sehingga sekarang MAR akan
menunjuk lokasi memory 502.
17. Pindahkan isi reister Z ke MDR.
18. Berikan perintah tulis memory (Write) pada prosesor.
19. Tunggu sinyal MFC sebagai tanda bahwa seluruh data yang ada pada MDR sudah
selesai disimpan pada lokasi memory yang ditunjuk tadi.
20. Selesai satu siklus pekerjaan prosesor dalam operasi penjumlahan (ADD).
Walaupun langkah-langkahnya cukup panjang untuk dipaparkan tetapi
sesungguhnya waktu yang diperlukan oleh prosesor untuk pekerjaan itu adalah
sangat cepat yaitu dalam orde nano detik.
3. Kesimpulan
Sejak ditemukannya mikroprosesor pertama kali oleh Marcian E. Hoff, Jr seorang
insinyur pada perusahaan Intel Amerika Serikat pada tahun 1971 maka hampir seluruh sudut
kehidupan manusia disentuhnya. Hal itu disebabkan karena cara kerja prosesor relatif tidaklah
rumit jika diukur dari kemampuan kerja yang dipunyainya. Mulai dari kontrol pada alat-alat
rumah tangga seperti mesin cuci, kulkas, VCD, televisi, kontrol peralatan mobil, pesawat
telepon, handphone, pesawat terbang sampai pesawat ruang angkasa. Melihat kemampuan
kerja dan fleksibelitasnya program yang dapat dijalankan sebuah prosesor maka tidak ada hal
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 9 dari 54
yang tak mungkin yang dapat menggunakan teknologi prosesor. Kita dapat melihat lampu
reklame yang beranimasi bermacam-macam gaya, dunia entertaimen yang serba otomatis dan
lain-lain asesoris yang sangat mempesona tampilannya adalah berkat bantuan teknologi
prosesor ini. Suatu hal yang sangat mungkin untuk terwujud pada suatu saat nanti mobil dapat
berjalan tanpa sopir layaknya pesawat terbang fly by wire.
DAFTAR PUSTAKA
Haskell, E. Richard, 1993, Assembly Language Tutor For The IBM PC and
Compatibles, Rhochester, Michigan, Oakland University.
Mano, M. Morris, 1991, Computer System and Architecture, Los Angeles, Calofornia
State University.
Hamacher, V.Carl, 1990, Computer Organization, Toronto, Univeristy Of Toronto.
Miller, Alan R, 1998, DOS Assembly Language Programming, Soccoro, New
Mexico.
Rizkiawan, Rizal, 1997, Tutorial Perancangan Hardware II, Jakarta, PT Elex Media
Komputindo.
Hariyanto, Bambang, 2000, Sistem Operasi, Bandung, Informatika.
Pitowarno, Endra, 2005, Mikroprosesor & Interfacing, Yogyakarta, Andi
Mikrokontroler Arduino
A. Pengertian Arduino
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 10 dari 54
Arduino adalah papan rangkaian elektronika open source yang berisi mikrokontroler dan
rangkaian pendukungnya, yang dapat diprogram dan digunakan untuk mengendalikan alat-alat
kelisterikan (disebut juga beban) melalui port-port-nya. Arduino terdiri dari2 bagian yaitu: 1.
Board Arduino, 2. Software Arduino IDE. Arduino berwujud sebuah papan elektronik dengan
rangkaian sistem minimum mikrokontroller di dalamnya. Mikrokontroller yang digunakan
adalah AVR produk dari Intel. Beberapa mikrokontroller yang sering digunakan adalah
ATmega168, ATMega328 dan ATMega2560, tergantung dari tipe papan elektronik yang
digunakan. Contoh, Arduino Uno, Nano dan Pro Mini, menggunakan mikrokontroller
ATmega328, sedangkan Arduino Mega menggunakan mikrokontroller jenis ATMega2560.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 11 dari 54
3) Sebuah osilator Kristal 16 MHz
4) sebuah koneksi USB
5) sebuah power jack
6) sebuah ICSP header
7) dan sebuat tombol reset
Arduino UNO memuat semua yang dibutuhkan untuk menunjang mikrokontroler,
mudah menghubungkannya ke sebuah computer dengan sebuah kabel USB atau
mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai untuk
memulainya. Spesifikasi board Arduino Uno adalah sebagai berikut:
1) Mikrokontroler: ATmega328
2) Tegangan Operasi: 5V
3) Tegangan Input (recommended): 7 - 12 V
4) Tegangan Input (limit): 6-20 V
5) Pin digital I/O: 14 (6 diantaranya pin PWM)
6) Pin Analog input: 6 input pin 21
7) Arus DC per pin I/O: 40 mA
8) Arus DC untuk pin 3.3 V: 150 mA
9) Flash Memory: 32 KB dengan 0.5 KB digunakan sebagai bootloader
10) SRAM: 2 KB
11) EEPROM: 1 KB
12) Clock Speed: 16 Mhz
Dalam bord Arduino Uno terdapat sebuah IC mikrokontroler ATMega 328 yang
merupakan pusat pengolah data dalam sistem minimum. Mikrokontroler tersebut
dikemas dalam paket DIL (dual in line) dengan jumlah pin sebanyak 28 buah, seperti
yang terlihat pada Gambar 2.2. Nama-nama pin mikrokokntroler ATMega 328 dengan
padanannnya dengan board Arduino Uno adalah seperti terlihat pada Gambar 2.3
dibawah ini. Pemrograman board Arduino dapat dilakukan dengan menggunakan
software Ardino IDE. Dalam pemrograman Arduino IDE port yang dirujuk oleh
program adlah port-port yang ada pada board Arduino Uno, namun dengan
memperhatikan padanan port antara board Aduino Uno dengan Mikrokontroler ATMega
328 maka dapat ditentukan port mikrokontroler yang mana yang dituju sebenaranya.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 12 dari 54
Gambar 2.2. Bentuk Phisik Mikrokontroler ATMega 328
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 13 dari 54
memanggil file program Arduino (disebut juga sketch dengan ekstensin.ino) dan meng-
upload file sketch ke mikrokontroller. Sedangkan sketch adalah program Arduino dalam
bahasa C yang harus diisikan (di-upload menggunakan Arduino IDE) ke dalam IC
mikrokontroller, agar Arduino bekerja berdasarkan keinginginan kita Sebuah sketch, minimal
harus memiliki dua blok program, yakni:
void setup {} ; untuk menginisialisasi program dan atau variabel pendukung, dan
void loop {} ; yang berisikan program utama.
Arduino dapat di operasikan dengan cara menginstal terlebih dahulu software atau
aplikasi pendukung untuk memprogram mikrokontroler arduino berupa program Sederhana,
dengan programming environment turunan dari bahasa pemrograman C yang mudah
dimengerti. Software arduino untuk windows dapat di download langsung ke web arduino.cc
atau github. Jika menginginkan Software Arduino untuk dijalankan pada Operasi Sistem (OS)
lainnya, dapat diperoleh pada alamat situs web resminya, dimana tersedia untuk sistem operasi
Windows, Mac dan Linux: dapat diklik di Web Arduino.cc
D. Sketch Ardino
1. Contoh Sketch untuk membaca tombol pada port digital 2. Ditampilka pada LED 13
void loop(){
nilai= digitalRead(tombol);
if(nilai == 1){
digitalWrite(led, HIGH);
}
else{
digitalWrite(led, LOW);
}
}
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 15 dari 54
UNIVERSITAS NEGERI PADANG MATAKULIAH: Praktik Mikroprosesor pada PKM
PROGRAM STUDI : Pendudikan Teknik
TOPIK : Pemrograman Mikroprosesor
Elektronika
JENJANG PROGRAM / SEMESTER : S1/ JUDUL : Pemrograman Mikroprosesor
V Melalui Register dan Interupt
NOMOR : 01 / EIK.FT.UNP-PDG/S1 /
PERTEMUAN KE :1
19
A.Tujuan
kalimat di layar monitor menggunakan INT 21H service 2 dan nilai ASCII
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 16 dari 54
B. Teori Pendukung
Mikroprosesor dapat diprogram untuk menampilkan data ke layar monitor. Untuk
urusan monitor vendor mikroprosesor Intel telah menerbitkan program interupt sebagai
berikut :
1. INT 5 adalah perintah PRINT SCREEN. Untuk mencetak apa yang ada di layer.
2. INT 10 service 0H, adalah perintah format layer. Nilai 0H disimpan di register AH
sedang nilai yang yang ada pada register AL adalah nilai format layar. Ada 15 nilai
mulai dari 0 sampai F yang menyatakan format layar ( Lihat detailnya pada kamus
Interupt).
3. INT 10 service 01H, adalah perintah untuk menentukan bentuk kursor.
4. INT 10 service 02H, adalah perintah untuk menentukan posisi kursor.
5. INT 10 service 03H, adalah perintah untuk mencari posisi kursor.
6. INT 10 service 04H, adalah perintah untuk mencari posisi light pen.
7. INT 10 service 05H, adalah perintah untuk memilih halaman yang aktif.
8. INT 10 service 06H, adalah perintah untuk menggulung layar ke atas.
9. INT 10 service 07H, adalah perintah untuk mengguung layar ke bawah.
10. INT 10 service 08H, adalah perintah untuk membaca data ASCII dan atribut karakter.
11. INT 10 service 09H, adalah perintah untuk mencetak karakter ASCII dan atribut ke
layar.
12. INT 10 service 0AH, adalah perintah untuk mencetak karakter ASCII tanpa atribut le
layar.
13. INT 10 service 0BH, adalah perintah untuk mencetak warna background dan
foreground layar.
14. INT 10 service 0CH, adalah perintah untuk mencetak pixel pada posisi kursor.
15. INT 10 service 0DH, adalah perintah untuk membaca angka pixel.
16. INT 10 service 0EH, adalah perintah untuk mencetak karakter TTY (tele type) mode.
17. INT 10 service 0FH, adalah perintah untuk membaca modus video.
18. INT 21 service 02H, adalah perintah untuk menulis satu karakter le layar.
19. INT 21 service 09H, adalah perintah untuk menulis seuntai kalimat ke layar.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 17 dari 54
Untuk lebih jelasnya cara penggunaan INTn tersebut diatas dapat dilihat dalam kamus
interupt. Karakter yang dapat ditampilkan di layar adalah karakter yang sudah mempunyai kode
ASCII (American Standart Code for Interchage Information) atau kode perluasanya.
C. Langkah Kerja
1. Jalankan program DEBUG.exe (dapat dilakukan melalui tab RUN pada menu START
yang ada pada pojok kiri bawah layar Windows, sehingga layar debug dengan prompt
2. Ketik perintah r pada prompt untuk melihat regsister-register yang ada di dalam
mikroprosesor Intel yang yang terpasang di dalam komputer anda, sehingga tampilah
nama-nama register beserta isinya seperti yang terlihat pada gambar berikut:
3. Selanjutnya catatlah isi 13 buah regsiter dan status 8 bit register flag yang terlihat di
layar debug anda, lalu cobalah memaknai setiap data yang anda catat itu !.
Hasil: (makna setiap isi register dan makna status register Flag)
.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 18 dari 54
4. Rakitlah program seperti disamping pada alamat
-a100
Xxxx:0100 MOV AH,02
offset 100 dengan perintah a[alamat]. MOV DL,45
INT 21
INT 20
5. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset
-a100
8. Tambahkan tiga baris program berikut Xxxx:0100 MOV AH,00
MOV AL,03
ke program tadi pada baris 1 sampai 3 INT 10
MOV AH,02
sehingga program menjadi seperti : MOV DL,45
INT 21
INT 20
9. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset
Cek 2: . ..
10. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 19 dari 54
12. Tambahkan program lagi untuk mencetak karakter
-a100
Xxxx:0100 MOV AH,00
lebih banyak. Misalnya seperti program disamping ! . MOV AL,03
INT 10
MOV AH,02
MOV DL,45
INT 21
13. Jika sudah selesai dirakit pastikan isi register IP
MOV AH,02
MOV DL,44
apakah sama dengan alamat offset ketika program
INT 21
MOV AH,02
ditulis tadi! MOV DL,49
INT 21
Cek 3: IP =
.. INT 20
14. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !
Catatan : Jika banyak karakter yang akan ditampilkan maka terjadi program yang
2. Tunjuk alamat awal karakter dengan salah register dengan cara pengalamatan
5. ..
6. ..
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 20 dari 54
16. Rakit program berikut pada alamat offset 100 dan dan program definisi karakter pada
A300
xxxx: 0300 DB TERNYATA BELAJAR MIKROPROSESOR ITU MENYENANGKAN
A100
xxxx:0100 MOV AH,00
MOV AL,03
INT 10
MOV CX,0030
MOV AH,02
MOV BX,0300
MOV DL,[BX]
INT 21
INC BX
LOOP 010E
INT 20
17. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset
program utama (a100)! . Program pada alamat 300 adalah sub program yang dipanggil
Cek 4: ..
18. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 21 dari 54
20. Tambah lagi baris program untuk memindahkan posisi
MOV AH,00
MOV AL,03
tampil karakter dengan menggunakan INT 10 sevice 2. INT 10
MOV AH,02
Rakit program pada alamat 100 seperti program MOV DX,0920
INT 10
disamping dan subprogram tetap pada alamat 300! MOV CX,0030
MOV AH,02
MOV BX,0300
MOV DL,[BX]
INT 21
INC BX
LOOP 0115
INT 20
21. Jika sudah selesai dirakit pastikan isi register IP
apakah sama dengan alamat offset program utama (a100)! . Cek 5:
..
22. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !
24. Lanjutkan merancang dan merakit program pada layar debug untuk menampilkan huruf
abjad dari A sampai Z ! (kode ASCII dari A=41), seperti listing program pada kotak
sebelah kiri. Selanjutnya modifikasi program untuk menampilkan huruf abjad kecil a
sampai z jika kode ASCII a=61.. Hasil 6 : ( berupa Listing Program pada kotak
sebelah kanan)
A100 A100
MOV AH,00
MOV AL,03
INT 10
Mov CX,1A
Mov AH,2
Mov DL,41
INT 21
INC DL
LOOP 10D
INT 20
25. Rancang dan rakit program untuk menampilkan huruf abjad dari z sampai a dimana
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 22 dari 54
26. Rancang dan rakit program untuk menampilkan huruf angka 9 sampai 5 pada posisi
27. Untuk program berikut anda mencatat kode ASCII nama anda sendiri pada layar debug
dengan cara memasukkan nama anda pada alamat tertentu dengan perintah A[alamat]
lalu melihat hasilnya dengan perintah d[alamat], seperti contoh E=45, D=44, I=49,
-a100
1358:0100 db'EDIDAS'
1358:0106
-d100
1358:0100 45 44 49 44 41 53 00 00-00 00 00 00 00 00 00 00 EDIDAS.....
1358:0110 00 00 00 00 00 00 00 00-00 00 00 00 34 00 47 13 ...........
1358:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...........
1358:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...........
1358:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...........
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 23 dari 54
Tambahkan program delay seperti disamping
A200
untuk menampilkan huruf nama anda ditampilkan xxxx: 0200 PUSH BP
PUSH CX
secara berurutan karakter demi karakter. Rakit MOV BP,100
MOV CX,4000
LOOP 208
program delay pada alamat offset 200. Hasil10: DEC BP
JNZ 205
(listing program nama anda digabung dengan POP CX
POP BP
program delay)
.. RET
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 24 dari 54
UNIVERSITAS NEGERI PADANG MATAKULIAH : Praktik Mikroprosesor pada PKM
PTOGRAM STUDI: Pendidikan Teknik TOPIK : Memprogram Input Output (I/O)
Elektronika Mikroprpsesor
TOPIK : Memprogram Mikroprosesor Untuk
JENJANG/SEMESTER : S1/ V
Mengganti Halaman Layar Monitor
PERTEMUAN.KE :2 NOMOR : 02 / EIK.FT.UNP-PDG/ S1 /19
A. Tujuan :
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 25 dari 54
6. Agar mahasiswa dapat menggabungkan program ganti halaman layar
menjadi satu program com saja
7. Agar mahasiswa dapat menerapkan perintah assembley CMP, JE, JNE dan
JMP untuk mengarahkan program.
B. Teori Pendukung
Layar monitor mempunyai beberapa halaman layar. Jumlah halaman tergantung dari
jumlah memori kartu monitor dan format layar. Jika format layar adalah 80 x 25 hitam putih,
maka gambar layar itu akan menampilkan 80 x 25 = 2000 karakter. Satu karakter memakai 2
byte memory, dimana 1 byte pertama untuk menyimpan kode ASCII dan satu byte yang lain
untuk menyimpan atribut dari karakter itu. Dengan demikian untuk menampilkan satu halaman
layar format 80 x 25 memakai memory kartu sebanyak 2 X 2000 byte= 4000 byte atau 4 KB.
Kalau memory kartu monitor 16 KB maka ada 4 halaman layar dan kalau memory kartu
monitor 8 MB maka jumlah halaman adalah 8 . 10 6 : 4.103 = 2000 halaman. Begitu juga kalau
memakai monitor warna untuk menampilkan satu karakter membutuhkan 4 byte memory. Satu
byte untuk kode ASCII-nya dan tiga byte yang lain untuk menyimpan kode warna R(red),
G(green), B(blue). Jumlah memory yang dibutuhkan untuk satu layar dapat dihitung sendiri.
Untuk mengamati halaman layar yang aktif dipakai int 10h layanan 5h. Prosedur
ganti halaman adalah dengan mengeset register AH 05h. dan register AL dengan nilai nomor
halaman yang diaktifkan .Nilai AL maksimum adalah FFh (255 desimal) sehingga jumlah
halaman yang dapat diaktifkan sebanyak 256 halaman layar.
Untuk memperingkas program ganti halaman layar namun dapat dipakai untuk
mengaktifkan halaman nomor tertentu maka program-program itu digabung dengan
menggunakan logika pilih dengan cara menerima inputan keyboard lalu mengarahkan
peogram dengan statemen CMP, JMP, JE, JNE . Program-program ganti layar akan disatukan
dengan satu program, dengan ketentuan setiap nomor layar yang diinginkan akan di inputkan
dari keyboard. Untuk menerima inputan dari keyboard dapat memakai int 16h service 0h.
Interup ini akan menunggu samapai ada input karakter dari keyboard. Secara default kode
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 26 dari 54
ASCII karakter yang di inputkan dari keyboard akan masuk ke register AL . Didalam program
ganti halaman layar dapat dibuat program filter dengan cara membandingkan isi AL dengan
angka-angka nomor halaman layar yang baku. Jika angka nomor halaman layar yang
dimasukan benar, maka akan di teruskan ke program ganti nomor halaman layar . Jika inputan
tidak ada yang benar maka program akan meminta inputan baru sampai cocok dengan ganti
halaman layar yang telah ditetapkan. Untuk membandingkan isi AL adalah sbb:
ghal segment
assume cs:ghal
org 100h
start: jmp mulai
ket db,13,10,' MENGGANTI HALAMAM LAYAR YANG AKTIF',13,10,
db ,13,10,,13,10, 'Masukkan Nomor Halaman :',13,10,'$'
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 27 dari 54
HAL2 db,13,10,' ███'
db,13,10,' ███'
db,13,10,' ███ INI ADALAH HALAMAN KETIGA'
db,13,10,' ███'
db,13,10,' ███','$'
cmp al,'1'
je H1
cmp al,'2'
je H2
cmp al,'3'
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 28 dari 54
je H3
cmp al,'4'
jne t5
jmp H4
t5 : cmp al,'5'
jne keluar
jmp H5
mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,6 ; coklat
int 10h
jmp ulang
mov ah,0
mov al,6 ;format laya ke 6
int 10h
mov ah,09h
mov dx,offset hal1
int 21h
mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,5 ; megenta
int 10h
jmp ulang
mov ah,0
mov al,6 ;format laya ke 6
int 10h
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 29 dari 54
mov ah,09h
mov dx,offset hal2
int 21h
mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,1 ; biru
int 10h
jmp ulang
mov ah,0
mov al,6 ;format laya ke 6
int 10h
mov ah,09h
mov dx,offset hal3
int 21h
mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,4 ; merah
int 10h
jmp ulang
mov ah,0
mov al,6 ;format laya ke 6
int 10h
mov ah,09h
mov dx,offset hal4
int 21h
mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,2 ; hijau
int 10h
jmp ulang
mov ah,0
mov al,6 ;format laya ke 6
int 10h
mov ah,09h
mov dx,offset hal5
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 30 dari 54
int 21h
mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,6 ; coklat
int 10h
jmp ulang
selesai: int 20h
ghal ends
end start
E. Langkah kerja.
1. Siapkan komputer dalam sistem operasi DOS (command prompt), dapat dilakukan
mengetikkan perintah cmd pada menu RUN melalui menu menu START yang berada
2. Jalankan program EDIT.COM (dapat juga dilakukan melalui menu RUN dalam menu
START yang berada pada pojok kiri layar windows. Sehingga tampil layar kerja EDIT
4. Jika telah selesai mengetik program simpanlah file itu dengan nama GTHAL.asm dalam
perintahnya pada prompt folder dimana program tadi disimpan, misalnya jika program
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 31 dari 54
dan compilernya disimpan dalam folder MASM pada Drive D maka perintahnya adalah
6. Abaikan permintaan nama file selama proses kompilasi dengan cara menekan enter
sebanyak 4 kali, sehingga kursor kembali berada pada prompt kembali. Lalu catalah
pesan kesalahan (error)yang ditampilkan. Jika yang tampil pesan no errors found maka
7. Jika terdapat pesan kesalahan silahkan perbaiki setiap kesalahan sesuai dengan nomor
baris yang ditampilkan. Lalu simpan kembali hasil perbaikan yang telah dilakukan !
8. Compilasi ulang program yang sudah diperbaiki itu dan catat lagi pesan kesalahan yang
9. Ulang langkah 7-8 sampai melihat tampilan pesan kesalahan no errsors found.
10. Jika tidak ada lagi pesan kesalahan lagi maka kompilasi telah berhasil membuat
12. Perhatikan pesan setelah menjalankan perintah diatas apakah kompilasi kedua ini
berhasil atau belum. Kalau pesan file dont exist itu menandakan belum berhasil
9. Jika program anda sudah jalan (running) panggil pilihan layar anda dengan cara
dibawah ini.
10. Praktik selesai, lakukan analisis dan buatlah laporan praktek dan kesimpulannya.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 32 dari 54
TABEL PENGAMATAN
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 33 dari 54
4
2. Hubungkan semua program ganti halaman ini sehingga setelah halaman berganti akan
meminta inputan lagi, kecuali kalau inputannya karakter k maka program akan
berhenti !.
4. Pada register mana terletak nilai nomor halaman pada int 10h layanan 5h ?
Mov al,2
Int 10h
8. Buat program sederhana untuk menampilkan seluruh kode ASCII ke layar montor
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 34 dari 54
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 35 dari 54
LAMPIRAN :
a160 a100
mov ah,0 mov ah,1
mov al,6 int 21
int 10h cmp al,30
mov ah,0b jz 150
mov bh,0 cmp al,31
mov bl,2 jz 160
int 10h cmp al,32
jmp 100 jz 170
cmp al,33
a170 jz 180
mov ah,0 cmp al,34
mov al,6 jz 190
int 10h cmp al,6b
jz 11e
mov ah,0b
jmp 100
mov bh,0
mov ah,0
mov bl,3
mov al,3
int 10h
int 10
jmp 100
int 20
a180
mov ah,0
mov al,6
int 10h
mov ah,0b
mov bh,0
mov bl,4
int 10h
jmp 100
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 36 dari 54
UNIVERSITAS NEGERI PADANG MATAKULIAH : Praktik pada PKM
Program Studi : Pend. Teknik Elekronika TOPIK : Membuat Rangkaian Beban Arduino
1. Agar peserta dapat membuat rangkaian beban LED 8 bit untuk board Arduino
terakit pada PCB dengan baik dan rapi.
3. Agar peserta dapat membuat rangkaian beban DOT MATRIX 8x8 untuk
board Arduino terakit pada PCB dengan baik dan rapi.
4. Agar peserta dapat membuat rangkaian beban SAKLAR 8 bit untuk board
Arduino terakit pada PCB dengan baik dan rapi.
5. Agar peserta dapat membuat rangkaian beban SENSOR LDR untuk board
Arduino terakit pada PCB dengan baik dan rapi.
7. Agar peserta dapat membuat rangkaian beban SENSOR INFRA RED untuk
board Arduino terakit pada PCB dengan baik dan rapi.
9. Agar peserta dapat membuat rangkaian beban MOTOR SERVO untuk board
Arduino terakit pada PCB dengan baik dan rapi.
10. Agar peserta dapat membuat rangkaian beban STEPPER untuk board
Arduino terakit pada PCB dengan baik dan rapi.
11. Agar peserta dapat membuat rangkaian beban LCD 2X16 untuk board
Arduino terakit pada PCB dengan baik dan rapi.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 37 dari 54
B. Teori Pendukung
Beban Arduino dikeluarkan melalui port Input Output (I/O). Ada beberapa port
I/O yang perlu diakses bagi pemula adalah I/O analog sebanyak 6 buah (A0, A1,
A2, A3, A4, A5) dan I/O digital sebanyak 14 buah (1,2,3....13). Untuk tingkat
lanjut belajar arduino akan dipelajari I/O serial,I2C dan lain-lain.
2. Software Electronic Design (Eagle, Proteus, Circuit Maker, ect) .. .. 1 paket
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 38 dari 54
D. Gambar Rangkaian
J4
CONN-SIL10
1
2
3
4
5
6
7
8
9
10
J1
150
1
2 SW5 SW6 SW7 SW8
3 SW1 SW2 SW3 SW4
4
5
6
7
DOTMATRIX2
DOTMATRIX1
8
J8 J7 J10 J9 J6 J5
1 1 1 1 1 1
soket SIP8 F 2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
J14 J13
1 1
2 2
3 3
J2
12
11
10
9
150 J12 J11
8 1 1
7 2 2
6 3 3
5 4 4
4
3
2
1 SENSOR SR04
E. Langkah kerja.
1. Siapkan komputer dalam sistem operasi windows yang punya sistaem aplikasi pembuat
Cek 2 :.........................................................................
3. Cetaklah lay out PCB ke kertas duplikator PCB dengan printer laser !
Cek 3 :.........................................................................
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 39 dari 54
4. Bersihkan permukaan PCB polos dengan ampelas halus lalu tempel kertas lay out ke
Cek 4 :.........................................................................
5. Gosoklah kertas duplikator sampai kelihatan jalur sudah pindah ke permukaan PCB !
Cek 5 :.........................................................................
6. Lepaskan kertas duplikator dari permukaan PCB dengan hati-hati, jaga jangan sampai
Cek 6 :.........................................................................
7. Larutkan PCB dengan larutan FeCL3 sehingga jalur tercetak dengan jelas dan rapi !
Cek 7 :.........................................................................
Cek 8 :.........................................................................
Cek 9 :.........................................................................
10. Periksa rangkaian anda apakah semua komponen sudah selesai dirakit !
Cek 10 :.........................................................................
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 40 dari 54
UNIVERSITAS NEGERI PADANG MATAKULIAH : Praktik Mikrokontroler pada PKM
Program Studi : Pend. Teknik Elekronika TOPIK : Memprogram Beban LED dengan Arduino
2. Agar peserta didik dapat mengetes software Arduino IDE sudah terpasang pada PC
atau laptop bisa terkoneksi ke board board Arduino dengan baik dan benar.
3. Agar peserta didik dapat membuat program animasi LED flip-flop pada beban LED
8 bit pada board Arduino dengan baik dan benar.
4. Agar peserta didik dapat membuat program animasi LED berjalan pada beban LED
8 bit pada board Arduino dengan baik dan benar.
5. Agar peserta didik dapat membuat program animasi LED wiper pada beban LED 8
bit pada board Arduino dengan baik dan benar.
6. Agar peserta didik dapat membuat program animasi LED kembang-kempis pada
beban LED 8 bit pada board Arduino dengan baik dan benar.
7. Agar peserta didik dapat membuat program animasi LED kura-kura lapar pada
beban LED 8 bit pada board Arduino dengan baik dan benar.
8. Agar peserta didik dapat membuat program animasi LED tertentu pada beban LED
8 bit pada board Arduino, sesuai kreatifitas masing-masing dengan baik dan benar.
B. Teori Pendukung
Board sistem minimum Arduino Uno memepunyai 14 pin input-output digital dimana 6
pin input tersebut dapat digunakan sebagai output PWM (Pulse Width Modulation) dan 6 pin
input analog, 2 pin sebagai komunilasi serial. Board Arduino menggunakan catudaya 5VDC
melalui USB atau melaui jack input DC 9 V.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 41 dari 54
C. Alat dan Bahan
D. Gambar Rangkaian
VCC
Design by Edidas
microcontrolandos.blogspot.com
150
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~PD6/AIN0
PC0/ADC0 5
A1
PC1/ADC1
~ PD5/T1
4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
Gambar 1.
Rangakaian Beban LED Arduino
E. Listing Program
//PROGRAM : MENAMPILKAN ANIMASI void loop() {
// put your main code here, to run
LED FLIP-FLOP repeatedly:
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
//Deklarasi Variable dan Pin digitalWrite(LED3, LOW);
int LED1 = 2; digitalWrite(LED4, LOW);
int LED2 = 3; digitalWrite(LED5, HIGH);
int LED3 = 4; digitalWrite(LED6, HIGH);
int LED4 = 5; digitalWrite(LED7, HIGH);
int LED5 = 6; digitalWrite(LED8, HIGH);
int LED6 = 7; delay(500);
int LED7 = 8; digitalWrite(LED1, HIGH);
int LED8 = 9; digitalWrite(LED2, HIGH);
void setup() { digitalWrite(LED3, HIGH);
pinMode(LED1, OUTPUT); digitalWrite(LED4, HIGH);
pinMode(LED2, OUTPUT); digitalWrite(LED5, LOW);
pinMode(LED3, OUTPUT); digitalWrite(LED6, LOW);
pinMode(LED4, OUTPUT); digitalWrite(LED7, LOW);
pinMode(LED5, OUTPUT); digitalWrite(LED8, LOW);
pinMode(LED6, OUTPUT); delay(500);
pinMode(LED7, OUTPUT); }
pinMode(LED8, OUTPUT);
}
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 42 dari 54
//PROGRAM 2 : MENAMPILKAN //PROGRAM 3 : MENAMPILKAN
ANIMASILED JALAN ANIMASILED WIPER
KANAN void setup()
void setup() {
//Deklarasi Variable dan Pin int pinLED;
menggunakan FOR for(pinLED = 2; pinLED < 10; pinLED +
{ +)
int pinLED; {pinMode(pinLED, OUTPUT);}
for(pinLED = 2; pinLED < 10; pinLED ++) }
{pinMode(pinLED, OUTPUT);}
} void loop()
{
void loop() int LED;
// for(LED = 2; LED <10; LED ++)
{perulangan menggunakan FOR {digitalWrite(LED,0);
delay(10);
int LED; digitalWrite(LED,1);
for(LED = 9; LED >1; LED --) delay(10);}
{digitalWrite(LED,0); for(LED = 9; LED >1; LED --)
delay(500); {digitalWrite(LED,0);
digitalWrite(LED,1); delay(30);
delay(500);} digitalWrite(LED,1);
} delay(30);}
}
F. Langkah kerja.
1. Siapkan komputer dengan sistem operasi windows yang punya sistem aplikasi Arduino
IDE (Versi 1.8.5 atau last vesion) ! Cek 1 :................
4. Tulis Program 1: LED flip-flop dari baris pertama sampai baris terakhir !
Cek 5:.........................................................................
5. Simpan file yang sudah ditulis dengan nama Led Flip-flop atau boleh juga nama lain !
Cek 6 :.........................................................................
6. Klik ikon atau verify, untuk mencek penulisan program yang baru saja selesai
ditulis ! Cek 7 :.........................................................................
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 43 dari 54
7. Jika tidak pesan errors yang tampil berarti penulisan program telah benar, sehingga
dapat dilanjutkan meng-upload program ke board arduino dengan cara meng-klik ikon
atau upload, sehingga dengan demikian program akan tersimpan dalam memri
board arduino.
Cek 8 :.........................................................................
8. Setelah program selesai di-upload ke board arduino maka board arduino akan
menjalankan program sesuai yang ditulis di jendela arduino IDE tadi!
Cek 9 :.........................................................................
11. Dengan jalannya program 1 secara baik berati Satu seksi program telah selesai !
Cek 10 :.........................................................................
12. Lakukan dengan cara yang sama untuk program ke 2 dan seterusnya, sehingga
SEMUA program yang ada dalam listing program, berhasil dengan baik dan benar !
Cek 12 :.........................................................................
2. Rencanakan sebuah program aplikasi sesuai dengan pengalaman belajar yang telah
anda peroleh selama belajar dalam seksi ini !.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 44 dari 54
UNIVERSITAS NEGERI PADANG MATAKULIAH : Praktik Mikrokontoler pada PKM
TOPIK : Memprogram Beban Seven Segmen dengan
Program Studi : Pend. Teknik Elekronika
Arduino
PERTEMUAN.KE :5 NOMOR : 05 / PEIK /18
A. Tujuan :
1. Agar peserta didik dapat memasang software Arduino IDE pada PC atau laptop
dengan baik dan benar.
2. Agar peserta didik dapat mengetes software Arduino IDE sudah terpasang pada PC
atau laptop bisa terkoneksi ke board board Arduino dengan baik dan benar.
3. Agar peserta didik dapat membuat program animasi tampilan sebuah angka dengan
beban Seven Segmen pada board Arduino dengan baik dan benar.
4. Agar peserta didik dapat membuat program animasi tampilan 10 angka desimal urut
naik dengan beban Seven Segmen pada board Arduino dengan baik dan benar.
5. Agar peserta didik dapat membuat program animasi tampilan 10 angka desimal urut
turun dengan beban Seven Segmen pada board Arduino dengan baik dan benar.
6. Agar peserta didik dapat membuat program animasi tampilan 100 angka desimal urut
naik dengan beban Seven Segmen pada board Arduino dengan baik dan benar.
7. Agar peserta didik dapat membuat program animasi tampilan 100 angka desimal urut
turun dengan beban Seven Segmen pada board Arduino dengan baik dan benar.
8. Agar peserta didik dapat membuat program animasi tampilan simbol-simbol tertentu
dengan beban Seven Segmen pada board Arduino dengan baik dan benar.
B. Teori Pendukung
a b c
Gambar 1. Seven Segmen (a. Bentuk Phisik, b. Nama Segmen, c. Pin Segmen )
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 45 dari 54
Ada dua jenis seven segmen yaitu : Common Katoda dan Common Anoda. Common Katoda
adalah seven segmen yang setiap katoda LED-nya disambung bersama sehingga hanya yang
keluar hanya stau pin saja yang keluar yang diberi nama Common. Data untuk seven segmen
common katoda dimasukkan pada setiap anoda LED. Begitu juga untuk Common Anoda,
semua anoda LED-nya disambungkan bersama, sehingga data akan dimasukan pada masing-
masing kotoda.
C. Alat dan Bahan
D. Gambar Rangkaian
0 VCC
A5 RX PD0/RXD
PC5/ADC5/SCL 1
A4 TX PD1/TXD
DIGITAL (~PWM)
PC4/ADC4/SDA 2
A3 PD2/INT0
PC3/ADC3 3
ANALOG IN
A2 ~ PD3/INT1 150
PC2/ADC2 4
A1 PD4/T0/XCK
PC1/ADC1 5
ATMEGA328P-PU
A0 ~ PD5/T1
PC0/ADC0 6
~ PD6/AIN0
7
PD7/AIN1
1121
8
microcontrolandos.blogspot.com
PB0/ICP1/CLKO
9
~ PB1/OC1A
10
~ PB2/SS/OC1B
11
~PB3/MOSI/OC2A
RESET 12
PB4/MISO
13
PB5/SCK Design by Edidas
AREF
ARDUINO UNO R3
Gambar 2.
Rangkain Beban 7Segment Arduino
E. Listing Program
//PROGRAM 1 MENAMPILKAN DIGIT void loop() {
ANGKA 3 PADA SEVEN SEGMEN // put your main code here, to run
int a = 0,b = 1,c = 2,d = 3,e = 4,f = 5,g = 6; tiga();
}
void setup() { void tiga()
// put your setup code here, to run on {
pinMode(a,OUTPUT); digitalWrite(a,LOW);
pinMode(b,OUTPUT); digitalWrite(b,LOW);
pinMode(c,OUTPUT); digitalWrite(c,LOW);
pinMode(d,OUTPUT); digitalWrite(d,LOW);
pinMode(e,OUTPUT); digitalWrite(e,HIGH);
pinMode(f,OUTPUT); digitalWrite(f,HIGH);
pinMode(g,OUTPUT); digitalWrite(g,LOW);
} }
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 46 dari 54
//PROGRAM 2 MENAMPILKAN void nol() void lima()
DIGIT ANGKA 0-9 PADA SEVEN { {
SEGMEN digitalWrite(a,LOW); digitalWrite(a,LOW);
int a = 0,b = 1,c = 2,d = 3,e = 4,f = digitalWrite(b,LOW); digitalWrite(b,HIGH);
5,g = 6; digitalWrite(c,LOW); digitalWrite(c,LOW);
digitalWrite(d,LOW); digitalWrite(d,LOW);
void setup() { digitalWrite(e,LOW); digitalWrite(e,HIGH);
// put your setup code here, to run on digitalWrite(f,LOW); digitalWrite(f,LOW);
pinMode(a,OUTPUT); digitalWrite(g,HIGH); digitalWrite(g,LOW);
pinMode(b,OUTPUT); } }
pinMode(c,OUTPUT); void satu() void enam()
pinMode(d,OUTPUT); {
pinMode(e,OUTPUT); digitalWrite(a,HIGH); void enam()
pinMode(f,OUTPUT); digitalWrite(b,LOW); {
pinMode(g,OUTPUT); digitalWrite(c,LOW); digitalWrite(a,LOW);
digitalWrite(d,HIGH); digitalWrite(b,HIGH);
digitalWrite(a,HIGH); digitalWrite(e,HIGH); digitalWrite(c,LOW);
digitalWrite(b,HIGH); digitalWrite(f,HIGH); digitalWrite(d,LOW);
digitalWrite(c,HIGH); digitalWrite(g,HIGH); digitalWrite(e,LOW);
digitalWrite(d,HIGH); } digitalWrite(f,LOW);
digitalWrite(e,HIGH); void dua() digitalWrite(g,LOW);
digitalWrite(f,HIGH); { }
digitalWrite(g,HIGH); digitalWrite(a,LOW); void tujuh()
digitalWrite(b,LOW); {
} digitalWrite(c,HIGH); digitalWrite(a,LOW);
digitalWrite(d,LOW); digitalWrite(b,LOW);
void loop() { digitalWrite(e,LOW); digitalWrite(c,LOW);
// put your main code here, to run digitalWrite(f,HIGH); digitalWrite(d,HIGH);
repeatedly: digitalWrite(g,LOW); digitalWrite(e,HIGH);
nol(); } digitalWrite(f,HIGH);
delay(500); void tiga() digitalWrite(g,HIGH);
satu(); { }
delay(500); digitalWrite(a,LOW); void lapan()
dua(); digitalWrite(b,LOW); {
delay(500); digitalWrite(c,LOW); digitalWrite(a,LOW);
tiga(); digitalWrite(d,LOW); digitalWrite(b,LOW);
delay(500); digitalWrite(e,HIGH); digitalWrite(c,LOW);
empat(); digitalWrite(f,HIGH); digitalWrite(d,LOW);
delay(500); digitalWrite(g,LOW); digitalWrite(e,LOW);
lima(); } digitalWrite(f,LOW);
delay(500); void empat() digitalWrite(g,LOW);
enam(); { }
delay(500); digitalWrite(a,HIGH); void sambilan()
tujuh(); digitalWrite(b,LOW); {
delay(500); digitalWrite(c,LOW); digitalWrite(a,LOW);
lapan(); digitalWrite(d,HIGH); digitalWrite(b,LOW);
delay(500); digitalWrite(e,HIGH); digitalWrite(c,LOW);
sambilan(); digitalWrite(f,LOW); digitalWrite(d,LOW);
delay(500); digitalWrite(g,LOW); digitalWrite(e,HIGH);
} } digitalWrite(f,LOW);
digitalWrite(g,LOW);
}
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 47 dari 54
F. Langkah kerja.
1. Siapkan komputer dengan sistem operasi windows yang
punya sistem aplikasi Arduino IDE (Versi 1.8.5 atau last
vesion) ! Cek 1 :................
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 48 dari 54
8. Setelah program1 selesai di-upload ke board arduino maka board arduino akan
menjalankan program sesuai yang ditulis di jendela arduino IDE tadi, deskripsikan hasil
program yang anda amati!
Cek 9 :.........................................................................
13. Dengan jalannya program 1 secara baik berati satu seksi program telah selesai !
Cek 10 :.........................................................................
14. Lakukan dengan cara yang sama untuk program ke 2 dan seterusnya, sehingga
SEMUA program yang ada dalam listing program, berhasil dengan baik dan benar !
Cek 12 :.........................................................................
2. Rencanakan sebuah program aplikasi sesuai dengan pengalaman belajar yang telah
anda peroleh selama belajar dalam seksi ini !.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 49 dari 54
UNIVERSITAS NEGERI PADANG MATAKULIAH : Praktik Mikrokontroler pada PKM
TOPIK : Memprogram Beban Dot Matrix dengan
Program Studi : Pend. Teknik Elekronika
Arduino
PERTEMUAN.KE :6 NOMOR : 06/ PEIK /18
A. Tujuan :
1. Agar peserta didik dapat memasang software Arduino IDE pada PC atau laptop dengan
baik dan benar.
2. Agar peserta didik dapat mengetes software Arduino IDE sudah terpasang pada PC atau
laptop bisa terkoneksi ke board board Arduino dengan baik dan benar.
3. Agar peserta didik dapat membuat program animasi tampilan nyala semua titik dengan
beban dot Matrix pada board Arduino dengan baik dan benar.
4. Agar peserta didik dapat membuat program animasi tampilan nyala semua titik dengan
beban dot Matrix pada board Arduino dengan baik dan benar.
5. Agar peserta didik dapat membuat program animasi tampilan nyala satu baris titik
dengan beban dot Matrix pada board Arduino dengan baik dan benar.
6. Agar peserta didik dapat membuat program animasi tampilan nyala satu kolom titik
dengan beban dot Matrix pada board Arduino dengan baik dan benar.
7. Agar peserta didik dapat membuat program animasi tampilan nyala satu kolom titik
berjalan dengan beban dot Matrix pada board Arduino dengan baik dan benar.
8. Agar peserta didik dapat membuat program animasi tampilan nyala satu baris titik
berjalan dengan beban dot Matrix pada board Arduino dengan baik dan benar.
9. Agar peserta didik dapat membuat program animasi tampilan nyala satu buah karakter
dengan beban dot Matrix pada board Arduino dengan baik dan benar.
10. Agar peserta didik dapat membuat program animasi tampilan nyala satu buah karakter
berganti-ganti dengan beban dot Matrix pada board Arduino dengan baik dan benar.
11. Agar peserta didik dapat membuat program animasi tampilan nama dengan beban dot
Matrix pada board Arduino dengan baik dan benar.
12. Agar peserta didik dapat membuat program animasi tampilan nama berjalan dengan
beban dot Matrix pada board Arduino dengan baik dan benar.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 50 dari 54
13. Agar peserta didik dapat membuat program berbagai animasi tampilan nama dengan
beban dot Matrix sesuai kreativitas sendiri pada board Arduino dengan baik dan benar.
B. Teori Pendukung
a b
Dot Matrix adalah rangkaian LED yang dirangkai dalam bentuk format 8x8 atau format
yang lain. Penampil dot matrix digunakan untuk menampilkan berbagai karakter yang dibentuk
oleh cahaya LED pada titik tertentu sehingga membetuk angka, huruf atau simbol-simbol
tertentu. Menampilkan sebuah karakter pada dot matrix diperlukan program untuk memberikan
asupan tegangan listrik positif (+ Volt )pada anoda dan negatif (0 Volt) pada katoda LED yang
dinyalakan. Pemrograman tampilan dot matrix melalui Arduino IDE karena rangkaian dot
matrix dikontrol mennggunakan Arduino Uno.
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 51 dari 54
D. Gambar Rangkaian
Gambar 2.
Rangkaian Beban Dot Matrix Arduino
E. Listing Program
// PROGRAM 1: NYALA 1 TITIK //PROGRAM 2 : MENAMPILKAN 1 BARIS
#include <MaxMatrix.h> PADA DOT MATRIX
#include <avr/pgmspace.h>
#define DIN 2 #include <MaxMatrix.h>
#define CLK 3 #include <avr/pgmspace.h>
#define CS 4 #define DIN 2
#define CLK 3
byte DOT [] = {8, 8, B10000000,B00000000, #define CS 4
B00000000,B00000000,B00000000,B00000000,
B00000000,B00000000}; byte BARIS [] = {8, 8,
B11111111,B00000000,B00000000,B00000000,
MaxMatrix m(DIN, CS, CLK, 1); B00000000,B00000000,B00000000, B00000000};
void setup() {
// put your setup code here, to run once: MaxMatrix m(DIN, CS, CLK, 1);
m.init(); void setup() {
m.setIntensity (15); // 0 - 15 // put your setup code here, to run once:
m.writeSprite ( 0, 0, DOT); m.init();
} m.setIntensity (15); // 0 - 15
m.writeSprite ( 0, 0, BARIS);
void loop() { }
// put your main code here, to run repeatedly: void loop() {
} // put your main code here, to run repeatedly:
}
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 52 dari 54
// PROGRAM 3: TAMPILAN NAMA void loop(){
#include <LedControl.h>
#include "MaxMatrix.h" cetak(E);
delay(1000);
int DIN =8; cetak(D);
int CS =9; delay(1000);
int CLK =10; cetak(I);
delay(1000);
byte E[8]= {0x1F,0x10,0x10,0x1F,0x10,0x10,0x1F,0x00}; cetak(D);
byte D[8]= {0x1E,0x11,0x11,0x11,0x11,0x11,0x1E,0x00}; delay(1000);
byte I[8] = {0x1F,0x04,0x04,0x04,0x04,0x04,0x1F,0x00}; cetak(A);
byte A[8]= {0x04,0x0A,0x11,0x1F,0x11,0x11,0x11,0x00}; delay(1000);
byte S[8]= {0x0F,0x10,0x10,0x0E,0x01,0x01,0x1E,0x00}; cetak(S);
delay(1000);
byte all[8]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; cetak(none);
byte none[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; delay(1000);
F. Langkah kerja.
1. Siapkan komputer dengan sistem operasi windows yang punya sistem aplikasi Arduino
IDE (Versi 1.8.5 atau last vesion) ! Cek 1 :................
4. Tulis Program 1: NYALA 1 TITIK daaari i baris pertama sampai baris terakhir !
Cek 5:.........................................................................
5. Simpan file yang sudah ditulis dengan nama nyala1titik atau boleh juga nama lain !
Cek 6 :.........................................................................
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 53 dari 54
6. Klik ikon atau verify, untuk mencek penulisan program yang baru saja selesai
ditulis ! Cek 7 :.........................................................................
7. Jika tidak pesan errors yang tampil berarti penulisan program telah benar, sehingga
dapat dilanjutkan meng-upload program ke board arduino dengan cara meng-klik ikon
atau upload, sehingga dengan demikian program akan tersimpan dalam memri
board arduino.
Cek 8 :.........................................................................
8. Setelah program1 selesai di-upload ke board arduino maka board arduino akan
menjalankan program sesuai yang ditulis di jendela arduino IDE tadi, deskripsikan hasil
program yang anda amati!
Cek 9 :.........................................................................
15. Dengan jalannya program 1 secara baik berati satu seksi program telah selesai !
Cek 10 :.........................................................................
16. Lakukan dengan cara yang sama untuk program ke 2 dan seterusnya, sehingga
SEMUA program yang ada dalam listing program, berhasil dengan baik dan benar !
Cek 12 :.........................................................................
Ooleh Ds.Edidas, MT Bahan Ajar Program Kemitraan Masyarakat 2018 Halaman 54 dari 54