Docstoc

AVR Studio tutorial

Document Sample
AVR Studio tutorial Powered By Docstoc
					                   TEORI DASAR MIKROKONTROLER


2.1   Pengenalan Mikrokontroller

             Mikrokontroler,   sebagai   suatu   terobosan   teknologi   mikroprosesor   dan

      mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru.

      Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang

      lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara

      masal (dalam jumlah banyak) membuat harganya menjadi lebih murah (dibandingkan

      mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera

      industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu bahkan mainan

      yang lebih baik dan canggih.

             Tidak seperti sistem komputer, yang mampu menanganiberbagai macam program

      aplikasi (misalnya pengolah kata, pengolah angkadan lain sebagainya), mikrokontroler

      hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang

      bisa disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada

      sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program

      pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin

      antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada

      Mikrokontroler, perbandingan ROM dan RAM-nya yang besar, artinya program kontrol

      disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif

      lebih besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk

      register-register yang digunakan pada mikrokontroler yang bersangkutan.

      Adapun kelebihan dari mikrokontroller adalah sebagai berikut :
      1. Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan

          berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat

          mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah

          dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input

          dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain

          bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa

          pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap

          diwajarkan.

      2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O

          terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat

          dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan

          kebutuhan sistem.

      3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan

          parameter komputer hanya digunakan untuk download perintah instruksi atau

          program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat

          mudah digunakan karena tidak menggunakan banyak perintah.

      4. Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan

          I/O yang disesuaikan dengan kebutuhan sistem.

      5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat.

2.2   Unit Mikrokontroller

              Keluarga MCS-51 merupakan mikrokontroller 8 bit seperti terlihat pada table

      berikut ini :
 Device     Internal memory        Internal        Timer/efen         Interupt

                program          memory data        Counter              S

8052AH        8K x 8ROM         256 x 8RAM          3 x 16 Bit           6

8051AH        4K x 8ROM         128 x 8RAM          2 x 16 Bit           5

  8051        4K x 8ROM         128 x 8RAM          2 x 16 Bit           5

8032AH            None          256 x 8RAM          2 x 16 Bit           6

8031AH            None          128 x 8RAM          2 x 16 Bit           5

  8031            None          128 x 8RAM          2 x 16 Bit           5

 8751H        4K x 8ROM         128 x 8RAM          2 x 16 Bit           5

8751H-12      4K x 8ROM         128 x 8RAM          2 x 16 Bit           5

8751H-88      4K x 8ROM         128 x 8RAM          2 x 16 Bit           5



                                 Tabel 2.1. keluarga MCS51



           Terdapat beberapa anggotanya mempunyai internal memory, salah satunya adalah

    mikrokontroller AT89C51 yang merupakan versi EEPROM dari 80C51 dimana memory

    internal ini dapat diprogram dan dihapus secara elektrik diproduksi oleh ATMEL

    Corporation. AT89C51 dibuat compatible dengan sel instruksi dan pin keluaran standar

    industri MCS-51 yang memiliki 4Kbyte RAM internal dengan teknologi flas EEPROM

    yang dapat menyimpan data meskipun catu daya dimatikan.

           DT-51 merupakan development tools yang terdiri dari 2 bagian terintegrasi yaitu

    perangkat keras dan perangkat lunak. Komponen utama perangkat keras DT-51 ialah

    mikrokontroler AT89C51 yang merupakan salah satu turunan keluarga MCS-51 Intel dan
      telah menjadi salah satu standar industri dunia. Selain mikrokontroler, DT-51 dilengkapi

      pula dengan EEPROM yang memungkinkan DT-51 bekerja dalam mode stand-alone

      (bekerja sendiri tanpa komputer). Selain komponen-komponen tersebut masih banyak

      fungsi lain pada DT-51, antara lain : timer, counter, RS-232 serial port, Programmable

      Perangkat Interface (PPI), serta LCD port. Perangkat lunak DT-51 terdiri dari

      Downloader DT51L dan Debugger DT51D. Downloader berfungsi untuk mentransfer

      user program dari PC (Portable Computer) ke DT-51, sedangkan debugger akan

      membantu user untuk melacak kesalahan program*.

      Spesifikasi DT-51

      1. Berbasis mikrokontroler 89C51 yang berstandar industri.

      2. Serial port interface standar RS-232 untuk komunikasi antara komputer dengan

          board DT-51.

      3. 8 Kbytes non-volatile memory (EEPROM) untuk menyimpan program dan data.

      4. 4 port input output (I/O) dengan kapasitas 8 bit tiap portnya.

      5. Port Liquid Crystal Display (LCD) untuk keperluan tampilan.

      6. Konektor ekspansi untuk menghubungkan DT-51 dengan add-on board yang

          kampatibel dari Innovative Electronics.




*Lihat AT89S51/52 Development Tools DT-51 MinSys.
Gambar di bawah ini menunjukan tata letak dari DT-51




                              Gambar 2.1. Tata Letak DT-51



2.3    Mikrokontroller AT89C51

              Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian

       elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler

       umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit

       pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di

       dalamnya.

              Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O

       pendukung   sehingga   ukuran    board   mikrokontroler   menjadi   sangat   ringkas.

       Mikrokontroler AT89C51 ialah mikrokomputer CMOS 8 bit dengan 4 KB Flash PEROM

       (Programmable and Erasable Only Memory) yang dapat dihapus dan ditulisi sebanyak

       1000 kali. Mikrokontroler ini diproduksi dengan menggunakan teknologi high density
      non-volatile memory Atmel. Flash PEROM on-chip tersebut memungkinkan memori

      program untuk diprogram ulang dalam sistem (in-system programming) atau dengan

      menggunakan programmer non-volatile memory konvensional. Kombinasi CPU 8 bit

      serba guna dan Flash PEROM, menjadikan mikrokontroler AT89C51 menjadi

      microcomputer handal yang fleksibel.

      Karakteristik lainya dari mikrokontroler AT89C51 sebagai berikut :

      -      Low-power

      -      32 jalur masukan/keluaran yang dapat diprogram*

      -      Dua timer counter 16 bit

      -      RAM 128 byte

      -      Lima interrupt

                Arsitektur perangkat keras 89C51 mempunyai 40 kaki, 31 kaki digunakan untuk

      keperluan 4 buah port pararel. 1 port terdiri dari 8 kaki yang dapat di hubungkan untuk

      interfacing ke pararel device, seperti ADC, sensor dan sebagainya, atau dapat juga

      digunakan secara sendiri setiap bitnya untuk interfacing single bit septerti switch, LED,

      dll.




*32 jalur masukan dihimpun dalam 4 buah port, setiap port memiliki 8 buah masukan
             Gambar 2.2. Konfigurasi Pin Mikrokontroler AT89C51

        Fungsi dari mikrokontroler AT89C51 secara keseluruhan dapat digambarkan

yaitu sebagai berikut :

Pin 1 sampai 8

Adalah kelompok pin untuk port 1. Port 1 ini merupakan port I/O dua arah yang

digunakan untuk penghubungan dengan peralatan luar.

Pin 9

Adalah masukan reset. Dimana ketika ada masukan sinyal dalam waktu tertentu pada pin

ini, mikrokontroler akan di reset.

Pin 10 sampai 17

Adalah port 3 yang juga merupakan port I/O. Port 3 terdiri dari pin-pin        yang

diperlihatkan tabel dibawah ini.
    Bit      Nama          Fungsi Alternatif

    P3.0     RXD           Port input serial

    P3.1     TXD           Port output serial

    P3.2      INT0         Interupsi eksternal 0

    P3.3      INT1         Interupsi eksternal 1

    P3.4     T0            Input Eksternal waktu/pencacah 0

    P3.5     T1            Input Eksternal waktu/pencacah 1

    P3.6      WR           Jalur menulis memori data eksternal

    P3.7      RD           Jalur membaca memori data eksternal



                           Tabel 2.2. fungsi pin pada P3



Pin 18

Adalah XTAL 2 yaitu untuk keluaran dari inverting oscillator amplifier. XTAL 2

digunakan untuk pewaktuan mikrokontroler.

Pin 19

Adalah XTAL 1 yaitu masukan untuk inverting oscillator amplifier dan masukan untuk

rangkaian sumber detak (clock).

Pin 20

Adalah ground dan diberi simbol gnd. Pin ini terhubung dengan jalur netral/ground dari

rangkaian pengatur daya.

Pin 21 sampai 28

Adalah port 2 yang juga sebagai port I/O.
      Pin 29

      Adalah Program Store Enable ( PSEN ), yaitu masukan sinyal baca untuk memori

      program eksternal agar masuk ke dalam bus selama proses pemberian/pengambilan

      instruksi (fetching).

      Pin 30

      Adalah Address Latch Enable (ALE) yaitu keluaran yang menghasilkan pulsa-pulsa

      untuk mengancing byte rendah alamat selama mengakses eksternal. Selain itu pin ini juga

      berfungsi sebagai PROG atau masukan pulsa program selama pemograman.

      Pin 31

      Adalah External Acces Enable ( EA ) yang merupakan sinyal kontrol untuk pembacaan

      memori program. Apabila diset rendah (L) maka mikrokontroler akan melaksanakan

      seluruh instruksi dari memori program eksternal, sedangkan jika diset tinggi (H) maka

      mikrokontroler akan melaksanakan instruksi dari memori program internal ketika isi

      program kurang dari 4096. Port ini juga berfungsi sebagai tegangan pemograman (V pp =

      + 12V) selama proses pemograman.

      Pin 32 sampai 39

      Adalah merupakan port 0 dan berfungsi sebagai I/O.

      Pin 40

      Adalah Vcc atau sumber tegangan. Pin ini dihubungakan dengan jalur positif dari

      rangkaian pengatur daya




2.4   Organisai Memori Mikrokontroller AT89C51
       AT89C51 yang merupakan versi EEPROM dari 8051yang program memorinya

dapat diprogram dan dihapus secara elektrik. AT89C51 mempunyai lokasi alamat yang

terpisah untuk program memori dan data memori . seperti yang terlihat pada gambar 2.3.




                 Gambar 2.3. Blok Diagram Inti Dari AT89C



       Pemisahan memori program dan data tersebut membolehkan memori data diakses

dengan alamat 8 bit, sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi

oleh CPU 8 bit. Namun demikian, alamat memori data 16-bit bisa juga dihasilkan melalui

register DPTR.
              Gambar 2.4. Struktur Memori Mikrokontroler AT89C51



2.4.1     Memori Program

                  Memori program hanya bisa dibaca saja karena bersifat sebagai     ROM.

   Memori ini disimpan dalam Flash PEROM. Memori program yang              bisa     diakses

   langsung hingga 64 Kbyte. Pada gambar memori program terdapat strobe (tanda) untuk

   akses memori program eksternal melalui     sinyal PSEN (Program Strobe Enable).

                  Mikrokontroler AT89C51 mempunyai 4 Kbyte memori program

          internal. Bila memakai memori program eksternal, maka pin ` EA ’ diberi

          logika Low. Apabila ingin memakai memori program internal pin ` EA ’      diberi

   logika High.
     2.4.2       Memori Data

                        Memori data menempati ruang alamat terpisah. Memori      eksternalnya

        dapat diakses secara langsung hingga 64 Kbyte. CPU akan memberikan sinyal baca RD

        dan tulis WR selama mengakses memori        data eksternal.

                        Gambar 2.4. menampilkan ruang alamat memori data internal dan

                 eksternal. Perincian ruang memori data internal seperti gambar 2.5. dibagi

                 menjadi tiga blok yaitu, 128 lower, 128 upper, dan Register Fungsi

                 Khusus (Special Function Register = SFR). Pengaksesan langsung dengan

                 alamat diatas 7FH mengakses suatu memori, sedangkan pengaksesan tak

                 langsung dengan alamat di atas 7FH mengakses ruang memori lain yang

                 berbeda. Pada memori data internal 128 byte lower terdapat empat bank   dan

        delapan register (Ro...R7).

                 FFH                                                      FFH
                             AKSES                    AKSES
UPPER                       DENGAN                   DENGAN               SFR
                         PENGALAMATAN             PENGALAMATAN
 128                     TAK LANGSUNG               LANGSUNG
                 80H                                                      80H

7H                           AKSES
                            DENGAN
LOWER                   PENGALAMATAN
                         TAK LANGSUNG
 128

             0

                                Gambar 2.5. Memori Data Internal
               Pengalamatan langsung dari 80H sampai FFH tergolong dalam            SFR.

Berikut fungsi yang terdapat dalam SFR.

       1. Program Status Word (PSW)

       PSW berisi bit-bit status yang berkaitan dengan kondisi CPU saat itu.        PSW

terletak dalam ruang SFR pada lokasi D0H.

       2. Akumulator

       ACC atau akumulator menempati lokasi E0H dan digunakan sebagai               register

untuk penyimpanan data sementara dalam program.

       3. Register B

       Register B terletak pada lokasi F0H. Register ini digunakan selama           operasi

perkalian dan pembagian. Saat intstruksi MUL AB terjadi perkalian antara akumulator

dengan data yang tersimpan dalam register B          dan hasilnya 16 bit disimpan dalam

register B dan akumulator (A).        Instruksi DIV AB melakukan pembagian antara

akumulator dengan data         yang tersimpan dalam register B.

       4. Stack Pointer (SP)

       Register SP terletak pada lokasi 81H. SP merupakan register dengan

       panjang 8 bit dan digunakan dalam proses simpan dan ambil dari/ke            stack.

       5. Data Pointer

       Register Data Pointer atau DPTR mengandung byte tinggi (DPH) dan             byte

rendah (DPL) masing-masing berada di lokasi 83H dan 82H. DPTR               dapat

dimanipulasi sebagai dua register 8 bit yang terpisah.

       6. Port 0, Port 1, Port 2, Port 3

       P0, P1, P2, P3 masing-masing menempati lokasi 80H, 90H, A0H, dan             B0H.
        7. Register Kontrol (Control Register)

        Pada register kontrol terdapat TMOD sebagai pewaktu.

        8. Timer Register

        Timer register merupakan register pencacah 16 bit. Timer 0 high dan timer

        0 low terdapat pada masing-masing 8CH dan 8AH. Timer 1 high dan                Timer

1 low terdapat dilokasi 8DH dan 8BH.

2.4.3 Memori Eksternal

                Selain     PEROM        dan      internal   RAM    yang     terdapat     pada

        mikrokontroler       AT89C51,    DT51       juga    mempunyai     memori   eksternal

        berjenis   EEPROM        (Electrically     Erasable   Programmable     Read      Only

        Memory). Sesuai dengan namanya maka EEPROM dapat ditulis dan

        dihapus secara elektrik, mirip seperti RAM namun bersifat non volatile

        sehingga data yang tersimpan dalam EEPROM tidak hilang meskipun catu

        daya dimatikan.

                AT28C64B adalah suatu memori eksternal seperti yang digunakan sebagai

tambahan dalam menyimpan program dan data. Pada                pengaksesannya baik dalam

menulis dan membaca, memori ini tidak            membutuhkan komponen luar. Didalamnya

terdiri dari suatu halaman      register 64 byte untuk penulisan. Memori AT28C64B

memiliki 28 pin          yang terdiri dari 13 pin pengalamatan, 8 pin I/O data dan 3 pin

inisialisasi,   serta 2 pin untuk Vcc dan ground, sedangkan 2 pin lainnya tidak

        dihubungkan.
       Gambar 2.6. Electrically-Erasable and Programmable Read Only

                          Memory (EEPROM) AT28C64B.



              Untuk penggunaan memori ini seperti telah disinggung diatas,

       dilakukan   dari     mikrokontroler.   Sebagai   memori     program,     pengaturan

       dilakukan dari mikrokontroler pada pin ALE, pin EA dan pin PSEN . Pin

       ALE sebagai pengunci alamat, pin            EA    berfungsi untuk menentukan

       pengambilan        instruksi.   Jika   EA     disambung     pada       Vcc,    maka

       mikrokontroler mengambil instruksi dari memori internal, dan bila EA

       tersambung pada ground maka pengambilan instruksi dari memori eksternal.

Sedangkan untuk inisialisasi pengambilan program dari memori       ekternal diatur pada

pin PSEN . Sama dengan memori internal, program            hanya       dapat         dibaca.

Penggunaan sebagai memori data, dilakukan pada pin         WR dan pin RD . Pin WR

untuk penulisan data dan pin RD untuk         pembacaan data.
2.5      Set Instruksi

         Ada beberapa instruksi yang dikenal oleh mikrokontroler AT89C51 yaitu:

                    Instruksi aritmetika

                    Intruksi logika dan manipulasi bit

                    Instruksi transfer data

                    Instruksi percabangan

         Instruksi-instruksi tersebut dijelaskan berikut ini.



      2.5.1     Instruksi Aritmetika

                         Intruksi   aritmetika   mencakup       penambahan   (ADD),   pengurangan

                (SUBB), perkalian (MUL), dan pembagian (DIV).

                1. Penambahan (ADD)

                Instruksi ini menjumlahkan suatu data dengan isi akumulator dan hasilnya

                disimpan dalam akumulator.

                Operasi ADD : A←A+data

                2. Pengurangan (SUBB)

                Instruksi ini mengurangkan isi akumulator dengan isi carry flag dan isi   data.


                Operasi SUBB : A←A-C-data

                3. Perkalian (MUL)

                Instruksi ini mengalikan isi akumulator dengan isi register B.


                Operasi MUL : AB←A*B

                4. Pembagian (DIV)
        Instruksi ini akan membagi isi register akumulator dengan isi register B.


        Operasi DIV : AB←A/B

        5. Penambahan satu (INC)

        Proses ini menambahkan satu pada isi suatu register atau memori.


        Operasi INC A : AB←A+B

        6. Pengurangan Satu (DEC)

        Proses ini kebalikan dari proses pengurangan satu.

2.5.2   Instruksi Logika Dengan Manipulasi Bit

        Instruksi logika dan manipulasi bit terdiri dari :

        1. Logika AND (ANL)

        Instruksi ini melakukan proses logika AND antara suatu register dengan

        register, register dengan data, carry flag dengan suatu alamat, dan lain-   lain.

        Tabel kebenarannya terlihat pada Tabel 2.3



   .


                         #1        #2     HASIL

                          0         0         0

                          0         1         0

                          1         0         0

                          1         1         1
                             Tabel 2.3. operasi AND



       Sebagai contoh, misalnya akumulator berisi 1011 1011B dan register R0 berisi

0100 1100B dengan instruksi ANL A, R0 menyebabkan isi              akumulator     menjadi

sebagai berikut :



       A       : 1011 1011

       B       : 0100 1100

                0000   1000 → akumulator akan berisi 0000 1000B atau 08H



       Format instruksi AND :

       ANL A, @Rr

       ANL A, #data

       ANL alamat data, A

       ANL alamat, #data




       2. Logika OR (ORL)

       Instruksi ini melakukan logika OR antara suatu register dengan register,   register

dengan data, carry flag dengan isi suatu alamat bit.

       Tabel kebenaran untuk logika OR ditunjukkan oleh Tabel 2.4.
                              #1        #2        HASIL

                               0        0           0

                               0        1           1

                               1        0           1

                               1        1           1


                              Tabel 2.4. Operasi OR



       Format instruksi OR:

       ORL A, @Rr

       ORL A, #data

       ORL alamat data, A

       ORL A, alamat data

       3. Logika NOT (CPL)

       Instruksi ini melakukan proses logika NOT pada suatu register, carry   flag,

atau isi suatu alamat bit. Tabel kebenarannya sebagai berikut.




                                   #1       HASIL

                                   0          1

                                   1          0



                            Tabel 2.5. Operasi NOT
Format instruksi NOT:

CPL A

CPL alamat bit



4. Logika EXOR (XRL)

Instruksi ini melakukan proses logika exlusive-OR antara register dengan

register, register dengan data, dan lain-lain. Tabel kebenarannya sebagai

berikut.

                 #1       #2       HASIL

                 0        0        0

                 0        1        1

                 1        0        1

                 1        1        0



                      Tabel 2.6. Operasi EXOR

5. Manipulasi Pengesetan (CLR)

Instruksi ini menyebabkan suatu bit menjadi reset atau nol

Format instruksi CLR :

CLR A

CLR alamat bit
        6. Manipulasi Bit Pengesetan (SETB)

        Instruksi ini akan mengeset bit yang dimaksud (atau 1)

        Format instruksi SETB :

        SETB C

        SETB bit



        7. Manipulasi Bit Pengisian (MOV)

        Instruksi ini akan mengisi suatu data dalam bentuk byte.

        Format instruksi MOV :

        MOV @Rr, A

        MOV A, @Rr

        MOV @Rr, #data

        MOV @Rr, alamat data

        MOV A, alamat data



        8. Manipulasi Lompat

        Program counter akan meloncat ke alamat yang dikehendaki.

        Format instruksinya :

        JC alamat kode

        JNC alamat kode



2.5.3   Instruksi Transfer Data

        Kelompok instruksi ini digunakan untuk memindahkan data antara :
       1. register-register

       2. memori-memori

       3. register-memori

       4. antarmuka-register

       5. antarmuka-memori

       Contoh :

       MOV A, R0       : Pindahkan isi register R0 ke akumulator.

       MOV A, @R0 : Pindahkan isi memori yang alamatnya ditunjukkan oleh

                  register R0 ke akumulator.

       MOV A, P3       : Pindahkan isi port 3 ke akumulator.

2.5.4 Instruksi Percabangan

               Instruksi percabangan ini dibagi dua yaitu percabangan dengan      syarat

dan percabangan tanpa syarat.

       Percabangan dengan syarat terdiri atas :




               CJNE

       Instruksi ini akan membandingkan isi register atau isi memori dengan       suatu

data. Bila hasil perbandingan itu sama, instruksi selanjutnya yang akan dituju. Bila tidak

sama, instruksi yang ditunjuk oleh label yang akan dilaksanakan.

       Format instruksi CJNE :
        CJNE A, @Rr

               DJNZ

        Instruksi ini akan mengurangi isi register atau memori dengan satu. Bila      sudah

0, instruksi selanjutnya akan dilaksanakan dan bila belum 0          instruksi     dilanjutkan

ke label.

        Format instruksi DJNZ :

        DJNZ Rr, alamat kode

        DJNZ alamat data, alamat kode

               JBC

        Instruksi ini akan menguji suatu alamat bit. Apabila alamat bit berisi 1      (set)

bit tersebut akan di clear dan selanjutnya program menuju tabel. Bila        alamat           bit

berisi 0, instruksi selanjutnya yang akan dieksekusi.

        Format instruksi JBC :

        JBC alamat bit, alamat kode

        Percabangan tanpa syarat meliputi :

               Long Jump (LJMP)

        Format instruksi Long Jump :

        LJMP alamat kode

               Short Jump (SJMP)

        Format instruksi Short Jump :

        SJMP alamat kode
2.6   Progaram sumber assembly

             Program sumber assembly merupakan program yang ditulis oleh pembuat

      program berupa kumpulan baris-baris perintah dan biasanya disimpan dengan extension

      .ASM. program sumber assembly terdiri atas beberapa bagian yaitu Label, Mnenonikm

      Operand, dan Komentar.

      1.     Label

      Label sangat berguna dalam pemberian nama pada alamat-alamat yang dituju, karena

      pemberian label pada suatu alamat lebih bersifat relatif. Selain itu, label juga digunakan

      sebagai catatan diri alur program. Untuk membuat label, ada beberapa persyaratan yang

      harus dipenuhi, dimana persyaratan ini kadang-kadang juga bergantung pada program

      assembler yang digunakan, yaitu :

      A. Harus diawali dengan huruf.

      B. Tidak diperbolehkan adanya label yang sama dalam satu program assembly.

      C. Maksimal 16 karakter.

      D. Tidak diperbolehkan adanya karakter spasi dalam label.




      2.     Mnemonic

      Mnemonic atau bisa juga disebut kode operasi adalah kode-kode yang akan dikerjakan

      oleh program assembler yang ada pada mikrokontroller merupakan perintah-perintah atau

      instruksi-instruksi yang sangat bergantung dengan jenis mikrokontroller yang digunakan.

      Contoh, untuk keluarga MCS51 digunakan MOVX, MOV, ADD dan lain-lain.

      3.     Operand
      Operand merupakan pelengkap dari mnemonic, jumlah operand yang dibutuhkan oleh

      satu mnemonic tidak selalu sama, sebuah mnemonic dapat memiliki tiga, dua, satu atau

      bahkan tidak memiliki operand sama sekali.

      4.      Komentar

      Bagian komentar tidak mutlak ada dalam sebuah program, namun bagian ini sangat

      berguna untuk menjelaskan proses-proses kerja ataupun catatan-catatan tertentu pada

      bagian-bagian program. Bahkan pembuat program seringkali membutuhkannya untuk

      mengingat kembali jalannya program rancanganya.

2.7   Sistem pengalamatan

              Dalam sebuah program, terdapat beberapa system pengalamatan yang perlu

      diketahui, yaitu :

      2.7.1 Pengalamatan Langsung

              1. Immediate Data

              Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand

              merupan data yang akan diproses. Biasanya operand tersebut selalau      diawali

      dengan tanda ‘#’. Operand yang digunakan operand yang     digunakan pada immediate

      data juga dapat berupa bilangan bertanda mulai     -256 hingga +256

              Contoh :

              Mov A,#-1     sama dengan Mov A,#0FFH

              Bilangan 1 adalah sama dengan 0 dikurangi 1, dalam bentuk heksa bilangan 00H

      jika dikurangi 1, hasilnya adalah 0FFH. Dengan pengertian seperti   ini,   bilangan   -1

      dianggap sama dengan 0FFH.

              2. Pengalamatan Data
       Proses pengalamatan ini terjadi pada sebuah proses perintah ketika nilai

       operand merupakan alamat dari data yang akan di isi, dipingahkan atau

       diproses.



2.7.2 Pengalamatan Tak Langsung

              Proses pengalamatan ini terjadi pada sebuah perintah ketika salah satu

operand merupakan register berisikan alamat dari data yang akan di            isi          atau

dipindahkan. Pengalamatan jenis ini biasa digunakan untuk melakukan                 penulisan,

pemindahan, atau pembacaan beberapa data dalam lokasi memori yang mempunyai

urutan beraturan.

2.7.3 Pengalamatan Kode

              Pengalamatan     kode     merupakan        pengalamatan       kerja    operand,

       merupakan     alamat   dari    instruksi   jump    dan   call.    Biasanya     operand

       tersebut akan menuju ke suatu alamat yang telah diberi label sebelumnya.

2.7.4 Pengalamatan Bit

              Pengalamatan bit adalah pengalamatan ketika operand menunjuk            ke

alamat pada RAM internal ataupun register fungsi khusus yang            mempunyai

kemampuan pengalamatan secara bit.

       Berdasarkan penulisannya, pengalamatan ini terdiri dari beberapa macam yaitu :

       1. Langsung menuju ke alamat bit

       Contoh :

       Setb   0B0H
             Perintah ini memberikan logika 1 pada bit di alamat B0H dengan pengalamatan

         secara bit.

             2. Menggunakan operator titik

             Contoh :

             Setb      P3.0

             Perintah ini memberikan logika 1 pada bit ke 0 dari port 3, bit tersebut   terletak

         di alamat B0H dengan pengalamatan secara bit.

             3. Menggunakan lambang assembler secara standar

             Contoh :

             Setb      RXD

             Perintah ini memberikan logika 1 pada kaki RXD yang terletak pada bit ke

             0 dari port 3.

             4. Menggunakan lambang assembler secara bebas

             Contoh :

             Penerima         Bit   P30

             Setb      Penerima

             Perintah ini memberikan logika 1 pada bit penerima yang sebelumnya

             didefinisikan sebagai bit P3.

2.8   Programmable Peripheral Interface (PPI) 8255

             Programmable Peripheral Interface (PPI) 8255 ialah chip antarmuka 24 bit (3

      port) yang dapat diprogram sesuai keinginan kita. PPI 8255 merupakan chip yang paling

      banyak digunakan untuk interfacing menggunakan port ISA komputer. PPI 8255 sering

      digunakan sebagai pengendali motor stepper, ADC/DAC, relay, dan rangkaian digital
lainnya yang digunakan untuk Sistem Akuisisi Data.

       Gambar 2.7. merupakan skema IC 8255 yang memiliki 40 pin. Perlu diingat

bahwa pin gnd berada di pin 7 dan Vcc berada di pin 26.Ic sangat sensitive terhadap listrik

statis. Arus keluaran IC ini sangat kecil, karena itu biasanya digunakan resistor pull-up

agar dapat menyuplai arus lebih besar.




         Gambar 2.7. Programmable Peripheral Interface (PPI) 82C55A

Berikut ini penjelasan mengenai tiap pin :

PA0-PA07

Merupakan port A yang terdiri dari 8 bit, dapat diprogram sebagai input atau output

dengan metode bidirectional input/output.

PB0-PB07

Port B dapat diprogram sebagai input/output, tetapi tidak dapat digunakan sebagai port

bidirectional.

PC0-PC07

Port C dapat diprogram sebagai input/output, bahkan dapat dipecah menjadi dua, yaitu
       CU (bit PC4-PC7) dan CL (bit PC0-PC3) yang dapat diprogram sebagai input/output.

       RD dan WR

       Sinyal kontrol aktif rendah ini dihubungkan ke 8255. Jika 8255 menggunakan desain

       periferal I/O maka IOR dan IOW bus sistem dihubungkan ke kedua pin ini.

       RESET

       Pin aktif tinggi ini digunakan untuk membersihkan Control Register. Ketika RESET

       diaktifkan, seluruh port diinisialisasi sebagai port input.



2.9.   Pengaturan Control Word

              Pengaturan control word bertujuan untuk menentukan fungsi dari setiap port pada

       PPI 8255. dengan menentukan data yang masuk pada pin D0 – D7, kita dapat

       menentukan fungsi dari port-port pada PPI 8255. Dengan fungsi masing - masing pin

       sebagai berikut :



D7 D6 D5 D4 D3 D2 D1 D0

                                           Mengatur fungsi Port C Lower apakah Input atau
                                           Output. 1 = Input dan 0 = Output.
                                           Mengatur fungsi Port B apakah Input atau Output.
                                           1 = Input dan 0 = Output.
                                           Mode Select untuk D0 dan D1.
                                           0 = fungsi D0 dan D1 dua arah (I/O)
                                           1 = fungsi D0 harus 1 (input).
                                           Mengatur fungsi Port C Upper apakah Input atau
                                           Output. 1 = Input dan 0 = Output.
                                           Mengatur fungsi Port A apakah Input atau Output.
                                           1 = Input dan 0 = Output.
                                           Mode Select untuk D3 dan D4.
                                           00 = fungsi D3 dan D4 bisa dua arah (I/O)
                                           01 = fungsi D3 harus 1 (input)
                                           10 = fungsi D4 harus 1 (input)
                                           11 = fungsi D3 dan D4 harus 1 (input)
                                           Sebagai mode aktif PPI.
                                           1 = PPI aktif dan 0 = PPI tidak aktif
                            Gambar 2.8. Pengaturan Control Word



2.10. Keypad

               Keypad adalah rangkaian tombol yang berfungsi untuk memberi sinyal pada suatu

     rangkaian dengan menghubungkan jalur-jalur tertentu. Keypad terdiri dari beberapa

     macam berdasarkan jumlah tombol dan fungsinya. Pada sistem pengontrolan ini,

     digunakan keypad matriks 3 x 4 (12 saklar) dengan pin penghubung rangkaian berjumlah

     7 buah.




                        Gambar 2.9. Tampilan Fisik Keypad 3 x 4

               Ketujuh pin penghubung ini terbagi dua kelompok yaitu 4 buah pin sebagai input

     dan 3 buah lainnya sebagai ouput. Adapun maksud dari 7 pin I/O adalah untuk dijadikan

     kombinasi penghubungan pada rangkaian yang akan disambungkan dengan keypad ini.
       Dimana dalam setiap penekanan satu tombol/saklar keypad maka terjadi kombinasi antara

       dua buah pin dalam pembacaan sinyalnya.

                                    I     1   2    3
                                    n
                                    p     4   5    6
                                    u
                                    t     7   8    9

                                              0    #


                                          Output


                            Gambar 2.10. Skematik Keypad 3 x 4




2.11   LCD (Liquid Cristal Display)

              LCD (Liquid Cristal Display) adalah salah satu komponen elektronika yang

       berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. Dipasaran

       tampilan LCD sudah tersedia dalam bentuk modul yaitu tampilan LCD beserta rangkaian

       pendukungnya termasuk ROM dll. LCD mempunyai pin data, kontrol catu daya, dan

       pengatur kontras tampilan.


            Pin No       Name            Function            Description

               1          Vss              Power                 GND

               2          Vdd              Power                 +5V

               3          Vee           Contrast Adj.         (-2) 0 - 5 V

               4          RS             Command            Register Select
         5          R/W            Command             Read / Write

         6           E             Command           Enable (Strobe)

         7          D0                I/O               Data LSB

         8          D1                I/O                 Data

         9          D2                I/O                 Data

        10          D3                I/O                 Data

        11          D4                I/O                 Data

        12          D5                I/O                 Data

        13          D6                I/O                 Data

        14          D7                I/O               Data MSB



             Tabel 2.7. Ko nfigurasi Pin Dar i LCD 2x16 M1632




              Data Bus                Control         Supply

     D0 D1 D2 D3 D4 D5 D6 D7         RS R/W E    VCC Gnd VLCD


                           Gambar 2.10. Rangkaian LCD



Fungsi dari pin-pin pada rangkaian LCD yaitu:

Pin data dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler

dengan lebar data 8 bit.

Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data
       yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah

       perintah, sedangkan logika high menunjukan data.

       Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data,

       sedangkan high baca data.

       Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.

       Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan

       dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan

       tegangan catu daya ke LCD sebesar 5 Volt.

                  LCD telah dilengkapi dengan mikrokontroler HD44780 yang berfungsi sebagai

       pengendali. LCD ini juga mempunyai CGROM (Character Generator Read Only

       Memory), CGRAM (Character Generator Random Access Memory) dan DDRAM

       (Display Data Random Access Memory).

       2.11.1 DDRAM

                         DDRAM       (Display    Data   Random     Access     Memory)    merupakan

                  memori tempat karakter yang akan ditampilkan berada. Contoh, untuk

                  karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan

       tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter                 tersebut

       ditulis dialamat 40, maka karakter tersebut akan tampil         pada   baris   kedua    kolom

       pertama dari LCD.



Display

Position 1    2      3   4   5   6    7 8       9 10 11 12 13 14 15 16

          0   0     0    0   04 05 06 07 08 09 0          0    0   0     0E 0
      0   1     2   3                             A    B   C    D            F

      4   4     4   4                             4    4   4    4            4
                         44 45 46 47 48 49                            4E
      0   1     2   3                             A    B   C    D            F



DDRAM Address

                                 Tabel 2.8. DDRAM Address



     2.11.2 CGRAM

                     CGRAM (Character Generator Random Access Memory) adalah

              merupakan memori untuk menggambarkan pola sebuah karakter dimana

              bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun

              memori ini akan hilang saat power supply tidak aktif, sehingga pola

              karakter akan hilang.



     2.11.3 CGROM

                     CGROM       (Character    Generator    Read      Only       Memory)   adalah

              merupakan memori untuk menggambarkan pola sebuah karakter dimana

              pola tersebut sudah ditentukan secara permanen dari HD 44780, sehingga

              pengguna tidak dapat merubahnya. Karena ROM bersifat permanen, maka

              pola karakter tersebut tidak akan hilang walaupun sumber tegangan tidak aktif.

                     Pada tabel 2.9. terlihat pola-pola karakter yang tersimpan dalam      lokasi-

     lokasi tertentu dalam CGROM. Pada saat HD44780 akan            menampilkan data 41H yang

     tersimpan pada DDRAM, maka HD44780            akan mengambil data di alamat 41H (0100
0001) yang ada pada CGROM    yaitu pola karakter A.




             Tabel 2.9. Karakter Pada CGROM M1632 LCD