Modul Dasar Mikrokontroller.pdf

download Modul Dasar Mikrokontroller.pdf

of 38

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