Modul Dasar Mikrokontroller.pdf
-
Upload
william-natanael -
Category
Documents
-
view
238 -
download
1
Transcript of Modul Dasar Mikrokontroller.pdf
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
1/38
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
2/38
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
3/38
3
Gambar. 1.1 Blok Diagram seri AT89S51
dan algoritma bahasa pemrograman yang dapat digunakan untuk pemrogramanmikrokontroler.
Tentang bahasa pemrograman dan set instruksi MCS 51 akan dibahaspada Bagian 2 Modul ini.
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
4/38
4
1.1 Organisasi Memori
Struktur Memori dalam konfigurasi AT89S51 terbagi menjadi memoriprogram (hanya baca) dan memori data (baca/tulis). Pembagian alamatnya
seperti gambar 1.2 berikut ini.
Memori data atau memori program dalam mikrokontroler dapat juga
diakses dari memori eksternal dengan memfungsikan strobe (tanda) PSEN
(Program Store Enable), RD (read), dan WR (write).MemoriAT Program, Flash on chipAT89S51 sebesar 4 KB yang
alamatnya selalu 16 bit. Flash PEROM (Programmable and Erasable Read onlyMemory) merupakan ROM yang dapat ditulis ulang atau dihapus menggunakan
sebuah perangkat programmer. Program yang ada pada flash PEROM akandijalankan pada saat system di-reset, untuk keamanan program yang ada padaFlash PEROM AT89S51 mempunyai fasilitas lock bit yang terdiri dari:Lock bi t 1, instruksi MOVC yang diseksekusi dari memori eksternal untukmembaca isi Flash tidak dapat dilakukan.Lock bi t 2, sama dengan lock bit 1, tetapi isi dari flash PEROM tidak dapatdiverivikasi oleh AT89S51 Programmer.Lock bi t 3, sama dengan lock bit 2, tetapi akses ke memori eksternal tidakdapat dilakukan.
Memori Data, RAM (Random Access Memory) internal pada AT89S51terdiri atas :
Register Banks (bank register)AT89S51 mempunyai delapan buah register yaitu R0 sampai dengan R7,kedelapan register ini selalu terletak pada alamat 00H hingga 07H padasetiap kali system direset.
Bit Addressable RAM
Gambar. 1.2 Struktur Memori AT89S51
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
5/38
5
RAM pada alamat 20H hingga 2FH dapat diakses secara pengalamatan bit(per bit) sehingga hanya dengan sebuah instruksi saja setiap bit dalam areaini dapat di set, clear, AND dan OR.
RAM Keperluan Umum
RAM keperluan umum dimulai dari alamat 30H hingga 7FH dan dapatdiakses dengan pengalamatan langsung maupun tidak langsung.Pengalamatan langsung dilakukan ketika salah satu operand dalam instruksimerupakan bilangan yang menunjukkan lokasi yang dialamati.
1.2 Special Function Registers (SFR)
Register Fungsi Khusus (SFR) pada mikrokontroler AT89S51 terlihatdalam tabel 1.2 berikut ini.
Tidak semua alamat pada SFR ini digunakan tetapi terdapat alamat-alamat yang tidak dipergunakan tidak diimplementasikan dalam chip.
SFR pada AT89S51 terdapat pada alamat antara 80H sampai FFH,beberapa dari register-hregister ini juga dapat dialamati per bit sehingga dapatdioperasikan seperti yang ada pada RAM yang lokasinya dapat dialamati denganpengalamatan bit.
Berikut ini SFRSFR ini akan dijelaskan sekilas.
Akumulator
ACC atau akumulator yang menempati alamat E0H digunakan sebagai registeruntuk mengolah data pada operasi aritmatika dan logika dan menyimpanannyasecara sementara, dalam program, instruksi mengacunya sebagai A (bukan
ACC).
Tabel 2.1Special Functions Registers AT89S51
128 bytes
F8 FFF0 B F7
E8 EF
E0 ACC E7
D8 DF
D0 PSW D7C8 (TCON) (T2MOD) (RCAP2L) (RCAP2H) (TL2) (TH2) CF
C0 C7
B8 IP BF
B0 P3 B7
A8 IE AFA0 P2 A7
98 SCON SBUF 9F90 P1 97
88 TCON TMOD TL0 TL1 TH0 TH1 8F80 P0 SP DPL DPH PCON 87
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
6/38
6
Gambar 1.3Program Status Word
Register B
Register B (Lokasi F0H) dapat digunakan seperti register A pada operasiperkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagairegister scratch pad(papan corat-coret) lainnya.
Program Status Word (PSW)Register PSW (lokasi D0H) mengandung informasi status program, dalam PSWstatus yang tersimpan meliputi: carry bit, the auxiliary carry untuk operasi BCD),dua bit pemilih bank register, overflow flag, sebuah bit paritas dan dua flag statusyang bias didefinisikan sendiri (user definable).
Stack Pointer
Register SP ini lokasinya 81H merupakan register dengan panjang 8 bit,digunakan dalam proses simpan dan ambil ke stack. Nilainya akan dinaikkansebelum data disimpan menggunakan instruksi PUSH dan CALL.
Data Pointer
Data Pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH) dan byterendah (DPL) yang masing-masing berada dilokasi 83H dan 82H, bersama-samamembentuk register yang mampu menyimpan alamat 16 bit. Dapat dimanipulasisebagai register 16 bit atau sebagai dua register 8 bit terpisah.
Port 0, Port 1, Port 2 dan Port 3P0, P1,P2 dan P3 masing-masing pada lokasi 80H, 90H, A0H, dan B0Hmerupakan pengunci-pengunci (latches), yang digunakan untuk menyimpan datayang akan dibaca atau ditulis dari/ke port, untuk masing-masing Port 0, Port 1,Port2 dan Port 3.
Serial Data BufferSBUF atau serial data buffer (lokasi 99H) sebenarnya terdiri dari dua registeryang terpisah yaitu penyangga pengirim (transmit buffer) dan penyangapenerima (receive buffer). Pada saat data disalin ke SBUF, maka data
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
7/38
7
B GI N
2
sesungguhnya dikirim ke penyangga pengirim sekaligus mengawali transmisidata serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya datatersebut berasal dari penyangga penerima.
Timer RegisterPasangan register (TH0, TL0) dilokasi 8CH dan 8AH, (TH1 dan TL1) dilokasi8DH dan 8BH serta (TH2, TL2) dilokasi CDH dan CCH merupakan register-register pencacah 16 bit untuk masing-masing Timer 0, Timer 1 dan Timer 2.
Control Register
Register register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCONberisi kontrol dan status untuk sistem interupsi, Pencacah/Pewaktu dan portserial, akan dijelaskan pada pembahasan selanjutnya.
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
8/38
8
Pemrograman Assembly MCS51 dan Instruction Set
2.1 Teknik Merancang Program
Kriteria program yang baik adalah selain program dapat berjalan denganbaik, juga harus dapat ditelusuri untuk mempermudah pengembangan. Dalam
prakteknya, pembuatan program biasanya diawali dengan membuat flowchartatau diagram alir, kemudian pseudo code dalam bahasa yang lebih dimengerti(misalnya pascal atau C) dan bahasa assembler (bahasa mesin).
Diagram alir digunakan untuk mengetahui terlebih dahulu apa yang harusdikerjakan sebelum mulai membuat program. Contoh diagram alir pada gambar2.1 berikut.
Pseudo Code dari diagram alir diatas seperti berikut ini :
ProsesX;
If Hasil = X ThenBeginProsesXEndElseBeginProsesYEnd;
Struktur rancangan program biasanya terdiri dari:Statement(pernyataan), menunjukkan dasar mekanisme dari melakukan
sesuatu , seperti pemberian nilai pada variable atau memanggil sub rutinContoh :Mov A,#00H ;memberi nilai pada akumulatorAcall serOut ;memanggil sub ruti SerOut
Loops (Putaran), struktur putaran dilakukan untuk melakukan sebuahoperasi yang dilakukan berulang-ulang. Berbagai macam struktur putaranbiasanya dibentuk oleh While/Do atau Repeat/Until.
Gambar 2.1Diagram alir
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
9/38
9
Gambar 2.2Contoh Flowchart
While/Do
Contoh:Psuedo Code dari Flowchart disampingsebagai berikut:
[jumlah = 0]
While [panjang>0] do begin[jumlah = jumlah +@pointer][increment pointer]Decrement panjang]
Program Assemmbly:Jumlah:
Clr ALoop:
Cjne R7,#0, PernyataanAjmp Keluar
Pernyataan:Add A,R0Inc R0Dec R7Ajmp Loop
Keluar:Ret
Choose(Pilihan), dua buah pernyataan seringkali digunakan dalamstruktur ini adalah If/Then/Else dan Case/Of.
2.2 Pemrograman Assembly
Penulisan program Assembly terdiri dari beberapa bagian, berikut ini satucontoh penulisan program sumber Assembly
IsiMemori: Movx @DPTR,A ;Isi Akumulator ke alamat yang ditunjuk DPTR
Pembuatan program assembly dapat dilakukan dengan menggunakansoftware teks editor seperti Notepad, Editor DOS, Crimson Editor atausejenisnya. Kumpulan baris-baris perintah kemudian disimpan (di-save) dengan
ekstension .ASM.Penjelasan dari bagian-bagian program Assembly diatas seperti berikut
ini:
Label
Label sangat berguna untuk memberi nama pada alamat-alamat yangdituju, pembuat program tidak harus mengetahui nilai alamat yang akan dituju
Label Mnemonic Operand1Operand2
Komentar
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
10/38
10
cukup menunjuk label maka rutin atau baris perintah (instruksi) sudah dapatdilaksanakan. Terdapat beberapa ketentuan dalam pembuatan label yaitu :
Harus diawali dengan huruf
Tidak diperbolehkan terdapat label yang sama dalam satu programassembly
Maksimal 16 karakter Tidak diperbolehkan adanya karakter spasi dalam penulisan label.
Mnemonic
Mnemonic atau operation code(opcode) adalah kode-kode yang akan dikerjakanoleh program assembler yang ada pada computer maupun mikrokontroler. Padamikrokontroler instruksi yang akan dikerjakan tergantung dari jenis mikrokontroleryang digunakan.Sedang Asembler directive sangat tergantung pada program assembler yangdigunakan.
OperandOperand merupakan pelengkap dari mnemonic, operand yang diperlukan olehsebuah mnemonic bisa lebih dari satu, atau tidak memerlukan operand samasekali.
KomentarKomentar tidak mutlak diperlukan dalam sebuah program, tetapi seringkalikomentar diperlukan untuk menjelaskan proses-proses kerja dari program ataucatatan-catatan tertentu pada bagian-bagian program.
2.3 Ekspresi Assembler
Basis Bi langan, dalam pembuatan program operand dapat diekspresikandalam berbagai bentuk, mikroprosesor Intel misalnya menggunakan akhiran Buntuk ekspresi bilangan biner, Q untuk octal, H untuk heksa dan D untukdecimal. Misalnya 10 Desimal dapat diekspresikan dengan menuliskan :
00010101B ;biner12Q ;octal10D atau 10 (tanpa akhiran) ;decimal0AH ;heksa
String Karakter, ekspresi string dilakukan dengan memberikan tanda xdiantara nilai yang diinginkan. Ekpresi ini sangat berguna untuk pembuatan
program yang membutuhkan perintah dengan nilai ASCII dari suatu operand.Misalnya : Mov A,#B
Operator Logika, ekspresi ini diperlukan dalam penulisan program yangmemerlukan operasi logika. Operator logika itu antara lain
OR untuk operator logika ORAND untuk operator logika ANDXOR untuk operator logika XOR
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
11/38
11
NOT untuk operator logika komplemenContoh :
Mov A, #39H AND OFHadalah sama dengan Mov A,#9
Mov A,#-3adalah sama dengan Mov A,#NOT 3
Operator Khu sus, operator-operator ini terdiri dari:SHR untuk menggeser ke kanan
Contoh :
Mov A,#00001000B SHR 1 sama denganMov A,#00000100B
SHL untuk menggeser ke kiriContoh:Mov A,#00001000B SHL 1 sama denganMov A,#00010000B
HIGH untuk mengambil nilai byte tinggiMov A,#HIGH 1234H sama dengan
Mov A,#12HLOW untuk mengambil nilai byte rendah
Contoh:
Mov A,#LOW 1234H sama denganMov A,#34H
() untuk operasi yang harus didahulukanContoh:Mov A,#(10+4) * 3 bilangan 10 desimal terlebih
dahuludijumlahkan dengan 4 sebelum dikalikan dengan 3 karenaadanya operator ().
2.4 Assembler Directive
Assembler Directive (Pengarah Assembler) merupakan mnemonic yangakan diproses oleh program Assembler. Berikut ini pengarah assembler yangbiasa digunakan untuk program-program assembler.
ORG (Orig in)
ORG digunakan untuk menunjukkan lokasi memori tempat instruksi atauperintah yang ada dibawahnya disimpan. Bentuk dari ORG adalah:
ORG ekspresi
Contoh : ORG 2000HMOV DPTR,#4000H
Maka perintah MOV DPTR,#4000Hyang berada dibawah ORG #2000H
akan terletak dialamat 2000H.
END
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
12/38
12
ENDbiasanya diletakkan diakhir baris dari file program sumber assembler
sebagai tanda akhir pernyataan bagi program assembler dalam melakukanproses pemograman.
EQU (Equat e)
EQU digunakan untuk mendefinisikan sebuah simbol atau lambangassembler secara bebas.Contoh:Bilangan EQU 50HMov A,#Bilangan
Bilangan pada instruksi Mov A,#Bilangan berisi 50H.
BIT
Pengarah BIT digunakan untuk mendefinisikan suatu lambang yangmenunjuk ke suatu lokasi bit pada memori yang dapat dialamati secara per bit.
Contoh:
Flag Bit 0 ;lambang Flag menunjuk ke lokasi 0 secarapengalamatan bit
DATA
Pengarah DATA digunakan untuk menyatakan secara langsung alamatpada memori internal dengan sebuah lambang. Alamat yang dimulai dari 00hingga 7FH menunjukkan RAM internal dan alamat 80H hingga FFHmenunjukkan alamat dari Register Fungsi Khusus.
Contoh :BUFFER DATA 32H ;lambang Buffer menunjukkan alamat 32H
IDATASama seperti DATA tapi untuk pengalamatan tidak langsung.
XDATA
Digunakan untuk menyatakan alamat yang ada pada memori eksternalalamatnya maksimal FFFFH.
CSEG, digunakan untuk memilih lokasi memori programBSEG, untuk memilih lokasi memori yang dapat dialamati dengan
pengalamatan bitDSEG, digunakan untuk memilih lokasi memori RAM internal.ISEG, digunakan untuk memilih lokasi RAM internal untuk pengalamatan
tak langsung.XSEG, digunakan untuk memilih lokasi di memori eksternal.
DB (Define Byte)
Digunakan untuk memberi nilai tertentu pada memori di lokasi tersebut,contoh:
ORG 3000HDB 50H,51H
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
13/38
13
DB terletak di bawah ORG 3000H, data 50H dan 51H akan menempatilokasi di alamat 3000H dan 3001H.
DW (Define Word)
Biasanya diikuti dengan label dan berfungsi untuk memberi nilai 2 byte
pada lokasi memori tempat DW dituliskan. Nilai 2 byte berasal dari alamat tempatlabel diberikan. Contoh:ORG 2100HLokasi1 :ORG 3000HDW Lokasi1 ; alamat 3000H dan 3001H diisi dengan
data 21H dan 00H.
DS (Define Str ing)
DS selalu diikuti dengan angka dan berfungsi untuk menyediakan tempatsebesar angka tersebut dimulai dari alamat assembler directive ini berada.Contoh:
DSEGORG 50HMemori1 DS 2 ; disediakan tempat sebesar 2 byte
; Mulai dari alamat 50H dari RAM
DBIT
Digunakan untuk menyediakan tempat pada segmen Bit dan dapatdigunakan jika segmen yang aktif adalah BSEG, contoh:
BSEG ; pilih segmenPetaIO: DBIT 32 ; sediakan 32 bit buffer untuk
i/o.
2.5 Sitem PengalamatanSistem pengalamatan dalam pemrograman mikrokontroler terdiri dari
beberapa jenis, berikut ini penjelasannya.
Pengalamatan Segera (imm ediately add ressing )
Pengalamatan ini terjadi pada sebuah perintah ketika nilai operandmerupakan data yanga akan diproses, biasanya selalu diawali dengan tanda #(kres). Contoh:
Mov A,#05H ; data didefinisikan bernilai 05H
Mov A,#data ; data dapat diisi dengan suatu angkamisalnya dengan Data EQU 5
Pengalamatan Langs ung (direct addressing)
Digunakan untuk menunjuk data yang ada pada suatu lokasi memoridengan cara menyebut lokasi memori itu berada, misalnya perintah Mov
A,50H instruksi ini berarti data yang berada pada lokasi 50H disalin ke
akumulator.
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
14/38
14
Pengalamatan Tidak Langsu ng ( ind irect addressing)
Pengalamatan ini digunakan untuk mengakses data yang berada di dalammemori, tetapi memori tidak disebutkan secara langsung melainkan dititipkan keregister lain. Misalnya:
Mov A,@R0 ;memori yang alamat lokasinya; tersimpan; di R0 isinya disalin ke akumulator.
Pengalamatan Register (register address ing)
pengalamatan ini menjadikan register serbaguna R0 sampai R7 sebagaitempat menyimpan data. Contoh :
Mov A,R0 ; data di R0 disalin ke akumulator
Pengalamatan Ko de (code add ressing)
Pengalamatan ini dilakukan ketika operand merupakan alamat dariinstruksi JUMP dan CALL (ACALL, JMP, LJMP dan LCALL). Biasanya operandtersebut akan menunjuk ke suatu alamat yang telah diberi label sebelumnya.
Misalnya:Acall Delay.Delay:Mov B,#0FFH
Pada saat dijalankan program akan lompat menuju sub-rutin berada padalokasi memori yang telah diberi label Delay.
Pengalamatan B IT (BIT address ing )
Digunakan untuk menunjuk alamat pada memori atau Register FungsiKhusus yang mempunyai kemampuan diakses per bit.
Misalnya:Setb P3.0 ;memberikan logika 1 pada bit ke 0 pada P3.
2.6 Instruction Set
Secara keseluruhan MCS-51 mempunyai 255 macam instruksi, instruksi-instruksi tersebut dikelompokkan manjadi sebagai berikut.
2.6.1 Kelompok Penyalinan DataInstruksi dasar untuk kelompok ini adalah MOV, jika perintah MOV A,R7
ini selesai dikerjakan berarti data yang ada di akumulator A sama dengan datayang ada di R7 yang sebelumnya tersimpan di R7.
Pada memori data MOV dituliskan seperti berikutMov A,20H ;salin isi lokasi memori 20H ke
;akumulatorMov A,@R1 ;salin isi lokasi yang ditunjuk R1
;ke AMov P3,A ;salin isi A ke latch Port 1
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
15/38
15
Untuk pemakain pada memori program penulisannya menjadi:Movc A,@A+DPTR ;DPTR sebagai register tak langsungMovc A,@A+PC ;PC sebagai register tak langsung
Untuk memori eksternal hanya berlaku bagi mikrokontroler yangmendukung penggunaan memori eksternal, hanya ada 6 buah instruksi, yaitu:
Movx A,@DPTRMovx A,@R0Movx A,@R1Movx @DPTR,AMovx @R0,AMovx @R1,A
2.6.2 Kelompok Instruksi Aritmetik
Instruksi ADD dan ADDCKedua instruksi ini selalu melibatkan akumulator, jika isi akumulator
dijumlahkan dengan suatu bilangan maka hasilnya akan kembali ditampung diakumulator. Perbedaan ADD dan ADDC apabila ADD melakukan operasi yangmelebihi kapasitas 1 byte, maka Carry Flag di PSW akan menunjukkan angka 1.sedangkan ADDC nilai bit carry sebelumnya ikut dijumlahkan. Contoh penulisaninstruksi ini sebagai berikut:
ADD A,R0 ; melalui register serbaguna R0ADD A,#23H ; langsung dengan suatu bilanganADD A,@R0 ; dengan isi memori yang ditunjuk R0ADD A,P1 ; dengan isi register P1
Instruksi SUBBIsi akumulator A dikurangi dengan satu bilangan (1 byte) beserta dengan
bit Carry, hasil pengurangan akan ditampung kembali di Akumulator. Jika terjadinilai pengurangan kurang dari 0 maka bit Carry akan bernilai 1. Contohpenulisannya adalah:
SUBB A,R0 ;A=A-R0-CarrySUBB A,#23H ;A=A-23HSUBB A,@R1 ;A=A-[R1] R1 artinya isi dari R1SUBB A,P0 ;A=A-P0
Instruksi DA ADigunakan untuk mengubah nilai biner 8 bit yang tersimpan dalam
akumulator menjadi 2 digit dalam format BCD digunakan setelah instruksi ADD,
ADDC, atau SUBB.
Instruksi MUL ABBilangan biner dalam akumulator A dikalikan dengan bilangan biner 8 bit
pada register B, hasil perkalian berupa bilangan biner 16 bit disimpan di B untuk8 bit bagian atas (high byte) dan di akumulator A untuk 8 bit bagian bawah (lowbyte). Bit Overflow (OV) di PSW akan bernilai 1 jika register B bernilai bukan00H. contoh operasinya:
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
16/38
16
Mov A,#20Mov B,#10MUL AB
Instruksi DIV AB
Instruksi pembagian bilangan di A oleh bilangan di B, OV akan bernilai 1jika register B sebelumnya bernilai.
Instruksi DEC dan INCDEC digunakan untuk menurunkan suatu nilai (I byte), yang tersimpan di
A, register, nilai langsung atau tak langsung yang melalui register sebesar 1.INC sebaliknya dari DEC yaitu menaikan nilainya sebesar 1.Contoh :DEC A ; artinya A=A-1DEC R0 ; artinya R0 = R0-1DEC #50H ; artinya jumlahnya adalah 4FHDEC @R1 ; artinya R1-1INC A ; artinya A=A+1INC R0 ; artinya R0 = R0+1INC #50H ; artinya jumlahnya adalah 51HINC @R1 ; artinya R1+1
2.6.3 Kelompok Instruksi LogikaIntstruksi yang terdapat pad kelompok ini antara lain operasi AND (ANL),
OR (ORL), XOR (XRL), operasi clear (CLR), komplemen (CPL), pergeserankanan atau kiri (RR, RL, RRC, dan RLC) serta instruksi penukaran data (SWAP).
2.6.4 Kelompok Instruksi JUMPInstruksi dalam kelompok ini ada tiga yaitu LJMP (long jump), AJMP
(absolute jump) dan SJMP (short jump) perbedaan dari ketiga jenis instruksitersebut terletak pada luas jangkauan dalam memori program, dimana LJMPmampu menjangkau 64 Kilobyte sedangkan AJMP menjangkau daerah di 2Kilobyte yang sama, dan SJMP menjangkau antara -128 sampai +127 byte. Nilainegative dapat digunakan untuk melompat ke instruksi sebelumnya. Prosesyang dilakukan oleh ketiga instruksi ini persis sama.
2.6.5 Kelompok Instruksi Sub RutinUntuk berbagai pertimbangan mungkin saja dalam satu rutin program
diperlukan sub-rutin yang menyimpan potongan program, untuk memanggil sub-
rutin dapat menggunakan instruksi LCALL, ACALL, dan SCALL jangkauannyasetara dengan instruksi JUMP. Untuk kembali pada program sebelumnya setelahinstruksi terakhir sub-rutin digunakan instruksi RET.
2.6.5 Kelompok Instruksi Lompatan BersyaratInstruksi JZ /JNZ
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
17/38
17
Instruksi JZ (Jump if Zero) dan instruksi JNZ (Jump if Not Zero) instruksiJump untuk memantau nilai akumulator, perhatikan contoh berikut ini:
MOV A,#0JNZ BukanNolJZ Nol
BukanNol:Nol:.
Dalam contoh tersebut MOV A,#0menjadika akumulator berisi 0, hal
ini mengakibatkan instruksi JNZ Bukan Noltidak dikerjakan, sedangkan JZ
Nolakan terus dikerjakan karena syaratnya dipenuhi.
Instruksi JC/JNCInstruksi JC (Jump on Carry) /JNC (Jump on Not Carry) digunakan untuk
memantau bit Carry pada Program Status Word (PSW).
Instruksi JB / JNB / JBCInstruksi JB (Jump on Bit Set), JNB (Jump on Not Bit set) dan JBC (Jump
on Bit Set Then Clear Bit) digunakan untuk memantau bit-bit tertentu, bisaberupa register-register status tertentu atau bit masukan mikrokontroler.
Instruksi DJNZ dan CJNEDJNZ (Decrement and Jump if Not Zero) merupakan instruksi yang akan
mengurangi 1 nilai register serbaguna (R0 sampai R7) atau memori data danakan melompat ke memori program yang dituju jika setelah 1 tersebut hasilnya
belum nol. Berikut ini contoh penulisannya:MOV R0,#23HDJNZ R0,$
R0 akan dikurangi 1 hingga R0 belum nol maka pengurangan akan terusdiulangi.
CJNE (Compare And Jump If Not Equal) membandingkan dua nilai yangdisebut MCS dan akan melompat ke memori program yang dituju jika kedua nilaitersebut tak sama.
Lebih lengkap mengenai instruction set MCS-51 dapat dibaca dalamlampiran tentang MCS51 Set Instruction.
2.7 Microcontroller USB-MCS51 Software dan ProsesPemograman SourceCode
Software ini dikembangkan oleh Thomas Fischl yang dapat secaralengkap didownload baik aplikasi dan rangkaiannya pada alamathttp://www.fischl.de/usbasp/ berfungsi sebagai downloader program
yang berbasiskan antarmuka (interface) USB pada PC kedalam mikrokontroler.Berikut ini langkah-langkah pembuatan dan download program source:
1. Jalankan aplikasi Pinnacle51, Mide51, atau aplikasi programmer lainnya
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
18/38
18
B GI N
3
2. Buat folder baru didalam windows explorer, khusus untuk programmikrokontroler.
3. Membuat Program sumber (source program) dengan bahasa Assemblerpada text editor seperti Notepad, Pinnacle51, Mide51 Crimson Editor, dll.
4. Simpan program sumber yang sudah dibuat pada pada folder yang
khusus mikrokontroler dengan extention file.asm.5. Lakukan proses kompilasi dengan compileryang tersedia pada aplikasiPinnacle sehingga menghasilkan file Heksa dengan extention file.hex
6. Jalankan aplikasi progisp v1.68 Software portableyang ada dalam folderwindows explorer.
7. Buka folder dimana program berkestensi .hex. disimpan,8. Lakukan proses flash programmerdengan menekan toolbarwrite to chip
pada aplikasiprogisp v1.68.
Aplikasi Port Paralel Mikrokontroler AT89S51Dan Percobaan
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
19/38
19
Pada bagian ini kita akan mencoba mengaplikasikan mikrokontrolerAT89S51 yang telah terintegrasi dalam modul MDSR Ver. 0, modul disiapkan
untuk melakukan percobaan pemrograman mikrokontroler, beberapa komponenyang di-interfacing dengan AT89S51 ini antara lain LED, Seven Segmen, Switch
dan Keypad.Tetapi sebelum memasuki percobaan kita akan melihat sekilas tentang
konfigurasi pin mikrokontroler AT89S51 untuk mengetahui pola pengawatan(wiring) dalam Modul MDSR ver. 0 ini.
3.1 Konfigurasi Pin AT89S51
AT89S51 terdiri dari beberapa bentuk package, seperti gambar diatas,tetapi yang banyak dipasaran berbentuk PDIP 40 pin. Fungsi dari pin-pintersebut bisa dijelaskan dalam table berikut ini:
Tabel 3.1 Tabel Fungsi Pin AT89S51
Gambar 3.1 Konfigurasi Pin AT89S51
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
20/38
20
VCC Tegangan supply bagi mikrokontroler
GND Ground
Port 0 (P0) Port I/O dua arah 8 bit dengan konfigurasi open drain, umumnyamemerlukan pull-up
Port 1 & Port 2
(P1 &P2)
Port I/O dua arah 8 bit dengan internal pull-up
Port 3 (P3) Port I/O dengan 8 bit dan internal pull-up, tetapi mempunyai fungsi alternatifyaitu :P3.0 RXD (port input serial)P3.1 TXD (port output serial)P3.2 INT0 (interrupt eksternal 0)P3.2 INT1 (interrupt eksternal 1)P3.4 T0 (input eksternal timer 0)P3.5 T1 (input eksternal timer 1)P3.6 WR (strobe penulisan untuk memori data eksternal)P3.7 RD (strobe pembacaan untuk memori data eksternal)
RST Input reset, kondisi high selama dua siklus mesin akan mengembalikanprogram pada alamat 0000H
XTAL1, XTAL2 Input untuk internal clock, pin ini dihubungkan dengan kristalEA Eksternal Akses, untuk memfungsikan memori internal maka pin ini diberilogaki high dan apabila mengakses memori eksternal pin ini diberi logika low
3.2 Blok Diagram MODUL DASARSecara umum modul MDSR Ver.0 ini mempunyai blok diagram seperti
berikut ini:
3.3 Blok Diagram MODUL ADVANCE Ver. 0
Gambar 3.2 Diagram Blok MDSR Ver.0
AT89S5
P0.0P0.7
ADC0804
LCD 16 Char
Kolom LED Marix
(P0.0-P0.4)
P1.0P1.7
Baris LED
Matrix
(P1.0P1.6)
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
21/38
21
SEKOLAH MENENGAH KEJURUANNEGERI 1 CIMAHI
Kelompok : Instrumentasi IndustriJurusan Kontrol Proses
No. Form. : F:ISO-KUR-06
Job Sheet MikrontrolerDasar 1
Gambar 3.3 Diagram Blok Modul Advance
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
22/38
22
Jl. Mahar Martanegara No. 48 Kota Cimahi
Pemrograman LED 8 Bit
1. Tujuan Kegiatan Belajar- Siswa dapat memahami penggunaan port pada AT89S51 sebagai output- Siswa mampu merancang program assembler untuk mengendalikan LED- Siswa mampu membuat minimum system pengendali LED dengan menggunakan
AT89S51
2. Materi
Seperti digambarkan pada diagram blok diatas LED terhubung dengan Port 0
(P0.0 sampai dengan P0.7), contoh program berikut ini dibuat untuk LED pada posisiPort 0.
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
vcc
Gambar 3.3. Hubungan led terhadap port I/O mikrokontroller
Lampu flip-flop pada Port 0
Program1$mod51org 0Mulai: mov P0,#0 ; Led nyala
call Delay ; panggil subrutin Delaymov P0,#0ffh ; Led padamcall Delay ; panggil subrutin Delayjmp Mulai ; lompat ke label mulai
Delay: mov R7,#50 ; Isi register R7 dengan 50Delay1: mov R6,#100 ; Isi register R6 dengan 100Delay2: mov R5,#100 ; Isi register R5 dengan 100Delay3: djnz R5,Delay3 ; kurangi R5 dengan 1, bila hasil
; belum sama dengan 0 maka lompat
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
23/38
23
ke Delay3djnz R6,Delay2 ; kurangi R6 dengan 1, bila hasil
; belum sama dengan 0 maka lompatke Delay2
djnz R7,Delay1 ; kurangi Rl dengan 1, bila hasil; belum sama dengan 0 maka lompat
ke Delay1ret ; Keluar dari subrutin
end
Lampu flip-flop nible atas dan nible bawah
Program2$mod51ORG 0HMULAI: Mov P0,#00001111B ; LED P0.4 s/d P0.7 nyala
CALL DELAY ; panggil subrutin DelayMov P0,#11110000B ; LED P3.0 s/d P3.3 nyala
CALL DELAY ; panggil subrutin DelaySjmp MULAI ; lompat ke label mulai;
Delay: mov R7,#50 ; Isi register R7 dengan 50Delay1: mov R6,#100 ; Isi register R6 dengan 100Delay2: mov R5,#100 ; Isi register R5 dengan 100Delay3: djnz R5,Delay3 ; kurangi R5 dengan 1, bila hasil
; belum sama dengan 0 maka lompatke Delay3
djnz R6,Delay2 ; kurangi R6 dengan 1, bila hasil; belum sama dengan 0 maka lompat
ke Delay2djnz R7,Delay1 ; kurangi Rl dengan 1, bila hasil
; belum sama dengan 0 maka lompatke Delay1
ret ; Keluar dari subrutinend
Running led dari kanan ke kiri
Program3$mod51org 0Mulai:
mov a,#0ffh ; Isi register accumulator dengan; FFhclr c ; Nolkan carry flag
Loop: mov P0,a ; Pindahkan isi register; accumulator ke P0
call Delay ; Panggil subrutin Delayrlc a ; Geser ke kiri isi register
; accumulator dengan carryjmp Loop ; Lompat ke label loop
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
24/38
24
Delay: mov R7,#50 ; Isi register R7 dengan 50Delay1: mov R6,#100 ; Isi register R6 dengan 100Delay2: mov R5,#100 ; Isi register R5 dengan 100Delay3: djnz R5,Delay3 ; kurangi R5 dengan 1, bila hasil
; belum sama dengan 0 maka lompatke Delay3
djnz R6,Delay2 ; kurangi R6 dengan 1, bila hasil; belum sama dengan 0 maka lompat
ke Delay2djnz R7,Delay1 ; kurangi Rl dengan 1, bila hasil
; belum sama dengan 0 maka lompatke Delay1
ret ; Keluar dari subrutinend
3. Langkah Kerja- Buat program 1 pada text editor (notepad, pinnacle, crimson editor), kemudian
simpan file tersebut dengan nama file LED dengan ekstensi .asm pada folder
khsusus*.- Lakukan pengkonversian (meng-compile) file tersebut ke bentuk hexa (.hex)
dengan menggunakan ASM51.exe atau langsung pada aplikasi yang telah tersedia
compilernya.- Hubungkan AT89S51 downloader ke PC melalui port parallel / serial.- Jalankan aplikasi Atmel ISP programmer pada PC.- Download file yang berekstensi .hextersebut ke dalam IC AT89S51 dengan
menggunakan aplikasi Atmel ISP programmer.
- Run target pada Atmel ISP programmer untuk menjalankan hasil yang telahdeprogram.
- Ulangi langkah di atas untuk mencoba program 2 dan 3.
4. Analisa- Catat perubahan yang dikeluarkan setelah program 1, 2 dan 3 dijlankan**.- Buat program running led dari kiri ke kanan**!- Buat program running led secara pingpong**!- Buat program running led dari luar ke dalam dan dari dalam keluar**!- Buat program kombinasi dari seluruh program yang telah dibuat**.
5. KesimpulanBuat kesimpulan yang diperoleh pada saat praktek**
Keterangan:* Folder baru yang di dalamnya terdapat file ASM51.exe dan file Mod51
** Dibuat dalam bentuk laporan praktikum
SEKOLAH MENENGAH KEJURUAN
NEGERI 1 CIMAHI
No. Form. : F:ISO-KUR-06
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
25/38
25
Kelompok : Teknologi & Industri
Jurusan Teknik Pendinginan & Tata UdaraJl. Mahar Martanegara No. 48 Kota Cimahi
Job Sheet MikrontrolerDasar 2
Pemrograman Display Seven Segmen
1. Tujuan Kegiatan Belajar- Siswa dapat memahami penggunaan port pada AT89S51 sebagai output- Siswa mampu merancang program assembler untuk mengendalikan 7-Segmen- Siswa mampu membuat minimum system pengaturan display 7-Segmen dengan
menggunakan AT89S51
2. Materi
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
abcdeg
f
dot
vcc vcc
Gambar 3.4. Susunan hubungan 7 segmen dengan port I/O mikrokontroller
Program menampilkan angka 0-9
Program1$mod51org 0Mulai:
mov P2,#0c0h ; keluarkan data angka nol ke P2call delay ; panggil sub rutin delay
mov P2,#0f3h ; keluarkan data angka satu ke P2call delay ; panggil sub rutin delaymov P2,#089h ; keluarkan data angka dua ke P2call delay ; panggil sub rutin delaymov P2,#0a1h ; keluarkan data angka tiga ke P2call delay ; panggil sub rutin delaymov P2,#0b2h ; keluarkan data angka empat ke P2call delay ; panggil sub rutin delaymov P2,#0a4h ; keluarkan data angka lima ke P2
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
26/38
26
call delay ; panggil sub rutin delaymov P2,#084h ; keluarkan data angka enam ke P2call delay ; panggil sub rutin delaymov P2,#0f1h ; keluarkan data angka tujuh ke P2call delay ; panggil sub rutin delaymov P2,#080h ; keluarkan data angka delapan ke
P2call delay ; panggil sub rutin delaymov P2,#0a0h ; keluarkan data angka sembilan ke P2call delay ; panggil sub rutin delaysjmp Mulai
delay:mov r7,#100
delay_1:mov r6,#100
delay_2:mov r5,#100djnz r5,$
djnz r6,delay_2djnz r7,delay_1ret
end
Program menampilkan angka 0-9 dengan metode Look Up Table
Program2$mod51org 0Mulai:
mov R4,#10 ; isi register R4 dengan 10mov Dptr,#Tabel_Data ; isi register DPTR dengan alamat
; yang ditunjukkan label Tabel_DataLoop:
clr a ; nolkan isi akumulatormovc a,@a+dptr ; copy data ke akumulator dari
; lokasi; memori program yang ditunjukkan; oleh isi akumulator ditmbah; dengan isi DPTR
mov p2,a ; keluarkan data ke P2call delay ; panggil sub rutin delay
inc dptr ; isi DPTR +1djnz r4,Loop ; kurangkan isi R4 dengan 1 dan; lompat ke label Loop jika isi R4; tidak nol
sjmp Mulai
Tabel_Data:db
0c0h,0f3h,89h,0a1h,0b2h,0a4h,84h,0f1h,80h,0a0h
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
27/38
27
delay:mov r7,#100
delay_1:mov r6,#100
delay_2:
mov r5,#100djnz r5,$djnz r6,delay_2djnz r7,delay_1ret
end
Program menampilkan angka A-F dengan metode Look Up Table
Program3$mod51org 0
mov R4,#6mov Dptr,#Tabel_Data
Loop:clr amovc a,@a+dptrmov p2,acall delayinc dptrdjnz r4,Loopsjmp 0;
Tabel_Data:
db 090h,086h,0cch,83h,8ch,9ch;
delay:mov r7,#100
delay_1:mov r6,#100
delay_2:mov r5,#100djnz r5,$djnz r6,delay_2djnz r7,delay_1ret
end
3. Langkah Kerja
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
28/38
28
- Buat program 1 pada text editor (notepad, pinnacle, crimson editor), kemudiansimpan file tersebut dengan nama file Seven-Segment dengan ekstensi .asmpadafolder khsusus*.
- Lakukan pengkonversian (meng-compile) file tersebut ke bentuk hexa (.hex)dengan menggunakan ASM51.exe atau langsung pada aplikasi yang telah tersedia
compilernya.- Hubungkan AT89S51 downloader ke PC melalui port parallel / serial.- Jalankan aplikasi Atmel ISP programmer pada PC.- Download file yang berekstensi .hextersebut ke dalam IC AT89S51 dengan
menggunakan aplikasi Atmel ISP programmer.- Run target pada Atmel ISP programmer untuk menjalankan hasil yang telah
deprogram.- Ulangi langkah di atas untuk mencoba program 2 dan 3.
4. Analisa- Catat perubahan yang dikeluarkan setelah program 1, 2 dan 3 dijlankan**.
- Buat program menampilkan hitungan mundur**.- Buat program menampilkan hitungan 0-99**.
5. KesimpulanBuat kesimpulan yang diperoleh pada saat praktek**
Keterangan:
* Folder baru yang di dalamnya terdapat file ASM51.exe dan file Mod51** Dibuat dalam bentuk laporan praktikum
SEKOLAH MENENGAH KEJURUAN No. Form. : F:ISO-KUR-06
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
29/38
29
NEGERI 1 CIMAHI
Kelompok : Insrtrumentasi IndustriJurusan Kontrol Proses
Jl. Mahar Martanegara No. 48 Kota Cimahi
Job Sheet Mikrontroler
Dasar 3
Pemrograman Input Switch
1. Tujuan Kegiatan Belajar- Siswa dapat memahami penggunaan port pada AT89S51 sebagai I/O- Siswa mampu merancang program assembler untuk mengendalikan LED dan 7-
Segmen dengan input switch
- Siswa mampu membuat minimum system pengaturan LED dan display 7-Segmendengan menggunakan AT89S51
2. Materi
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
vcc
Gambar 3.5. Susunan hubungan switch I/O dengan port I/O mikrokontroller
Program menghidup-matikan led dengan switch I/O
Program1$mod51org 0Mulai:
mov a,P3 ; copy data P3 ke akumulatorcjne a,#0fbh,Terus ; bandingkan isi akumulator
; dengan FBh; dan lompat ke label Terus; jika tidak sama,jika sama; eksekusi program dibawahnya
mov P0,#0 ; nyalakan ledsjmp Mulai ; lompat ke awal program
Terus:cjne a,#0f7h,Mulai ; bandingkan isi akumulator
dengan F7h
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
30/38
30
; dan lompat ke labelMulai; jika tidak sama,jika sama; eksekusi program dibawahnya
mov P0,#0ffh ; matikan ledsjmp Mulai ; lompat ke awal program
end
Progam toggle switch
Program2$mod51org 0Mulai:
mov a,P3 ; copy data P3 ke acjne a,#0fbh,Mulai ; bandingkan isi akumulator
dengan FBh; dan lompat ke labelMulai; jika tidak sama,jika sama
; eksekusi program dibawahnyacjne r0,#0,Terus ; bandingkan isi R0 dengan 0 dan
lompat ke; label Terus jika tidak sama,; jika sama; eksekusi program dibawahnya
mov r0,#1 ; isi R0 dengan 1mov P0,#0 ; nyalakan led
Tunggu:mov a,P3 ; copy data P3 ke acjne a,#0ffh,Tunggu ; tunggu hingga tombol-tekan
dilepas
sjmp Mulai ; lompat ke awal programTerus:
mov r0,#0 ; isi R0 dengan 0mov P0,#0ffh ; matikan ledsjmp Tunggu ; lompat ke label tunggu
end
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
abcdef
g
dot
vcc vcc
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
31/38
31
Gambar 3.6. Susunan switch I/O dengan port I/O mikrokontroller dan 7 seg
Program counter berdasarkan input switch
Program3$mod51
org 0mov r0,#0
Mulai:mov a,P3cjne a,#0fbh,Mulaicall Delay
Tunggu:mov a,P3
cjne a,#0ffh,Tunggucall Delayinc r0cjne r0,#10,Lanjutmov r0,#0
Lanjut:cjne r0,#0,Banding1mov P2,#0c0hsjmp Mulai
Banding1:cjne r0,#1,Banding2mov P2,#0f3h
sjmp MulaiBanding2:
cjne r0,#2,Banding3mov P2,#089hsjmp Mulai
Banding3:cjne r0,#3,Banding4mov P2,#0a1hsjmp Mulai
Banding4:cjne r0,#4,Banding5mov P2,#0b2h
sjmp MulaiBanding5:cjne r0,#5,Banding6mov P2,#0a4hsjmp Mulai
Banding6:cjne r0,#6,Banding7mov P2,#084hsjmp Mulai
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
32/38
32
Banding7:cjne r0,#7,Banding8mov P2,#0f1hsjmp Mulai
Banding8:cjne r0,#8,Banding9
mov P2,#080hsjmp Mulai
Banding9:cjne r0,#9,Mulaimov P2,#0a0hsjmp Mulai
Delay:mov r7,#100
Delay1:mov r6,#200djnz r6,$djnz r7,Delay1
retend
3. Langkah Kerja- Buat program 1 pada text editor (notepad, pinnacle, crimson editor), kemudian
simpan file tersebut dengan nama file Switch dengan ekstensi .asm pada folder
khsusus*.- Lakukan pengkonversian (meng-compile) file tersebut ke bentuk hexa (.hex)
dengan menggunakan ASM51.exe atau langsung pada aplikasi yang telah tersediacompilernya.
- Hubungkan AT89S51 downloader ke PC melalui port parallel / serial.
- Jalankan aplikasi Atmel ISP programmer pada PC.- Download file yang berekstensi .hextersebut ke dalam IC AT89S51 denganmenggunakan aplikasi Atmel ISP programmer.
- Run target pada Atmel ISP programmer untuk menjalankan hasil yang telahdeprogram.
- Ulangi langkah di atas untuk mencoba program 2 dan 3.
4. Analisa- Catat perubahan yang dikeluarkan setelah program 1, 2 dan 3 dijlankan**.- Buat program running led dari kanan ke kiri jika salah salah satu switch ditekan
dan running led dari kiri ke kanan jika switch lainnya ditekan.- Buat program nyala led per step jika salah satu switch ditekan dan padam led per
step jika switch lainnya ditekan.
- Buat program Up-Down binary counter (4 bit) ditampilkan di LED.- Buat program Up-Down decade counter ditampilkan ke 7 segmen.
5. KesimpulanBuat kesimpulan yang diperoleh pada saat praktek**
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
33/38
33
Keterangan:* Folder baru yang di dalamnya terdapat file ASM51.exe dan file Mod51
** Dibuat dalam bentuk laporan praktikum
SEKOLAH MENENGAH KEJURUAN
NEGERI 1 CIMAHIKelompok : Insrtrumentasi Industri
Jurusan Kontrol ProsesJl. Mahar Martanegara No. 48 Kota Cimahi
No. Form. : F:ISO-KUR-06
Job Sheet Mikrontroler
Dasar 4
Pemrograman Keypad
1. Tujuan Kegiatan Belajar- Siswa dapat memahami penggunaan port pada AT89S51 sebagai I/O
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
34/38
34
- Siswa mampu merancang program assembler untuk mengendalikan 7-Segmendengan input keypad
- Siswa mampu membuat minimum system pengaturan display 7-Segmen melaluikeypad dengan menggunakan AT89S51
2. Materi
P1.0P1.1P1.2P1.3
P3.4P3.5P3.6P3.7
1 2 3 A
B
C
DE0F
4 5 6
7 8 9
Gambar 3.7. Susunan konfigurasi keypad matrik
P1.0P1.1P1.2P1.3
P3.4P3.5P3.6P3.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4P2.5
P2.6
P2.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4P3.5
P3.6
P3.7
abcdef
g
dot
vcc vcc
Gambar 3.8. Susuna keypad matrik dengan 7 segmen
Program menampilkan 0-9 dan A-F
Program1
$mod51org 0
Mulai:mov P1,#0f7hjb P3.7,Key1mov P2,#0f3hsjmp Mulai
Key1:
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
35/38
35
jb P3.6,Key2mov P2,#089hsjmp Mulai
Key2:jb P3.5,Key3mov P2,#0a1h
sjmp MulaiKey3:
jb P3.4,Key4mov P2,#090hsjmp Mulai
Key4:mov P1,#0fbhjb P3.7,Key5mov P2,#0b2hsjmp Mulai
Key5:jb P3.6,Key6
mov P2,#0a4hsjmp MulaiKey6:
jb P3.5,Key7mov P2,#084hsjmp Mulai
Key7:jb P3.4,Key8mov P2,#086hsjmp Mulai
Key8:mov P1,#0fdhjb P3.7,Key9mov P2,#0f1hsjmp Mulai
Key9:jb P3.6,Key10mov P2,#080hsjmp Mulai
Key10:jb P3.5,Key11mov P2,#0a0hsjmp Mulai
Key11:jb P3.4,Key12
mov P2,#0cchsjmp Mulai
Key12:mov P1,#0fehjb P3.7,Key13mov P2,#09chsjmp Mulai
Key13:jb P3.6,Key14
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
36/38
36
mov P2,#0c0hsjmp Mulai
Key14:jb P3.5,Key15mov P2,#08chljmp Mulai
Key15:jb P3.4,Key16mov P2,#083hljmp Mulai
Key16:ljmp Mulai
end
Program menampilkan 0-9 dan A-F dengan metode Look Up Table
Program2
$mod51org 0
Mulai:mov 73h,#4mov r5,#0f7hmov DPTR,#Angkamov 71h,#0
Ulang:mov 70h,#07fhmov 72h,#0
Ulang1:
mov P1,r5mov a,P3call delaymov a,P3cjne a,70h,Geser1mov a,72hadd a,71hmovc a,@a+DPTRmov P2,asjmp Mulai
Geser1:inc 72hmov a,70hRR amov 70h,amov a,72hcjne a,#4,Ulang1
NextScan:mov a,71hadd a,#4mov 71h,a
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
37/38
37
mov a,r5RR amov r5,adjnz 73h,Ulangmov P0,#0ffhljmp mulai
Delay:mov r7,#50
Delay1:mov r6,#100djnz r6,$djnz r7,Delay1ret
Angka:db 0f3h,89h,0a1h,090hdb 0b2h,0a4h,84h,086hdb 0f1h,80h,0a0h,0cchdb 9ch,0c0h,8ch,83h
end
3. Langkah Kerja- Buat program 1 pada text editor (notepad, pinnacle, crimson editor), kemudian
simpan file tersebut dengan nama file Keypad dengan ekstensi .asmpada folder
khsusus*.- Lakukan pengkonversian (meng-compile) file tersebut ke bentuk hexa (.hex)
dengan menggunakan ASM51.exe atau langsung pada aplikasi yang telah tersedia
compilernya.- Hubungkan AT89S51 downloader ke PC melalui port parallel / serial.- Jalankan aplikasi Atmel ISP programmer pada PC.
- Download file yang berekstensi.hex
tersebut ke dalam IC AT89S51 denganmenggunakan aplikasi Atmel ISP programmer.
- Run target pada Atmel ISP programmer untuk menjalankan hasil yang telahdeprogram.
- Ulangi langkah di atas untuk mencoba program 2.
4. Analisa- Catat perubahan yang dikeluarkan setelah program 1, 2 dijalankan**.- Buat program penampilan angka 0-9 dan huruf A-F pada display 7 segmen
sebagaimana susunan keypad pada pesawat telepon.
5. KesimpulanBuat kesimpulan yang diperoleh pada saat praktek**
-
8/10/2019 Modul Dasar Mikrokontroller.pdf
38/38
Keterangan:* Folder baru yang di dalamnya terdapat file ASM51.exe dan file Mod51
** Dibuat dalam bentuk laporan