PENGENALAN PROGRAM MICROCONTROLLER
KEPADA PELAJAR SMA/SMK
Diajukan sebagai salah satu syarat
untuk memperoleh gelar sarjana Teknik Elektro/Telekomunikasi
Oleh :
ADRIAL ANUGRAH PUTRA
10020023
PROGRAM STUDI TEKNIK ELEKTRO/TELEKOMUNIKASI
SEKOLAH TINGGI TEKNIK MULTIMEDIA
CENDEKIA ABDITAMA
TANGERANG
2009
Laporan Kerja Praktek ini telah dibaca, diperiksa dan disetujui pada:
Hari : Selasa
Tanggal : 05 Mei 2009
Tampat : STT Multimedia Cendekia Abditama
Jl. Siliwangi Raya No. 55 Pamulang-Banten
Mengetahui,
Kaprodi Teknik Telekomunikasi
NIP. K.04.008
Pembimbing Kerja Praktek
NIP. K.04.008
LEMBAR PENGESAHAN SIDANG KERJA PRAKTEK
Pada hari ini, Selasa, tanggal 19 Mei 2009, Pukul 13.00 sampai dengan 14.00 telah dilaksanakan sidang Kerja Praktek:
Nama : Adrial Anugrah Putra
NIM : 10020023
Program studi : Teknik Elektro/Telekomunikasi
Judul Kerja Praktek : Pengenalan Program Mikrokontroller Kepada
Pelajar SMA/SMK
Pembimbing : Yaaro Telaumbanua, MT.
Disahkan oleh:
Ketua Sidang
Djasiodi Djasri, Ir, MT.
Penguji Sidang 1
Puji syukur penulis ucapkan kehadirat Allah SWT yang telah melimpahkan rahmat, hidayah dan pertolongan-Nya sehingga penulis dapat menyelesaikan laporan Kerja Praktek (KP) yang berjudul Pemograman Microcontroller ini.
Penghargaan yang besar penulis sampaikan kepada Direktorat Jenderal Pendidikan Tinggi (DIKTI) yang telah memberikan kepercayaan kepada penulis untuk melaksanakan PKM yang dijadikan sebagai KP satu ini dan sekaligus menjadikannya sebagai proses pembelajaran mandiri di lingkungan kampus.
Dalam kesempatan yang baik ini, tak lupa pula penulis ucapkan rasa terima kasih kepada:
1. Seluruh dosen STT Multimedia Cendekia Abditama baik yang menjadi pembimbing, penguji, maupun dosen lainnya yang telah memberikan ilmu-ilmu yang sangat bermanfaat.
2. Seluruh civitas akedemika STT Multimedia Cendekia Abditama.
3. Teman-teman Cendekiawan, khususnya siswa-siswi jurusan Elektro atas bantuannya baik secara langsung maupun tidak langsung.
4. Orang tua dan keluarga yang telah banyak memberikan perhatian dan kasih sayang terus-menerus.
5. Dan semua pihak yang telah membantu yang tidak dapat disebutkan satu persatu.
Selanjutnya penulis berharap semoga KP 1 yang telah terlaksana ini dapat bermanfaat bagi mahasiswa pada khususnya dan bagi masyarakat luas pada umumnya.
Tangerang, 1 Mei 2009
Adrial Anugrah Putra
LEMBAR PENGESAHAN SIDANG KERJA PRAKTEK
1.5. Waktu dan Tempat Pelaksanaan
1.6.1 Metode perolehan informasi
BAB II GAMBARAN UMUM PERGURUAN TINGGI
2.1. Sekilas pandang tentang Multimedia
2.2. Daya Tampung dan Gedung Kampus STTMCA
2.2.1. Laboratorium elektronika
2.11. Pengembangan Program Studi
3.2. Sistem Bilangan Desimal, Biner dan Hexadesimal
3.2.1. Konversi bilangan desimal ke bilangan biner
3.2.2. Konversi bilangan desimal ke bilangan hexadesimal
3.3.5. PSEN (program store enable)
3.3.6. ALE (address latch enable)
4.1. Penyambungan Input dan Output
4.2. Pembuatan Algoritma (Flowchart)
4.3. Penerjemahan Flowchart Kedalam Bahasa Assembly
4.4. Compiler Untuk Menghasilkan Kode Biner
BAB VI METODA PEMBERIAN PELATIHAN
Tabel 3.1 Daftar assembly directive……………………………………. Tabel 3.2 Daftar assembly instruksi……………………………………. Tabel 3.3 Perbandingan bilangan desimal dan bilangan biner…………. Tabel 3.4 Perbandingan bilangan desimal dan bilangan hexadesimal…. Tabel 3.5 Metode coba-coba konversi bilangan desimal ke bilangan biner.......................................................................................... Tabel 3.6 Fungsi-fungsi khusus port 3…………………………………. Tabel 4.1 Konfigurasi port 2 dalam bilangan biner dan hexadesimal….. Tabel 4.2 Konfigurasi port 1 dalam bilangan biner dan hexadesimal...... Tabel 4.3 Konfigurasi port 0 dalam bilangan biner dan hexadesimal...... | 13 14 15 15 16 21 26 27 28 |
Gambar 2.1 Sekolah Tinggi Teknik Multimedia Cendekia Abditama…... Gambar 2.2 Laboratorium elektronika Sekolah Tinggi Teknik Multimedia Cendekia Abditama……………………………. Gambar 2.3 Laboratorium komputer Sekolah Tinggi Teknik Multimedia Cendekia Abditama………………………………………… Gambar 3.1 Blok system mikrokontroler AT89S51……………………... Gambar 3.2 Memory map mikrokontroler AT89S51……………………. Gambar 3.3 IC seri mikrokontroller AT89S51……………………........... Gambar 3.4 Seven segment common anode……………………………... Gambar 3.5 Seven segment common cathode………………………….... Gambar 4.1 Konvigurasi P2.0-P2.7…………………………………….... Gambar 4.2 Konvigurasi P1.0-P1.5…………………………………….... Gambar 4.3 Konvigurasi P0.0-P0.7…………………………………….... Gambar 4.4 Contoh flowcahrt…………………………………………… Gambar 4.5 Program kompiler ASM51………………………………….. Gambar 5.1 Program assembly yang telah disimulasikan kedalam mikrokontroller AT89S51....................................................... | 6 7 8 18 19 20 23 24 25 26 27 29 31 32 |
Lampiran 1 Notepad…………………………………………………….. Lampiran 2 ASM51 Dan MOD51………………………………………. Lampiran 3 ATMEL…………………………………………………….. Lampiran 4 Flowchart…………………………………………………… Lampiran 5 DT-HiQ AT89S Dan Kabel ISP............................................. | 36 36 37 38 39 |
BAB I PENDAHULUAN
Perkembangan teknologi tumbuh semakin pesat. Namun kebanyakan dari masyarakat hanya mengerti cara menggunakan teknologi yang sudah ada saja, tanpa mengetahui bagaimana teknologi tersebut dibuat.
Maka dari itu diperlukan sebuah pengenalan terhadap minimal satu teknologi, dalam hal ini pemograman dengan menggunakan bahasa assembly terhadap seven segment kepada masyarakat.
Kerja praktek ini bertujuan untuk menambah pengetahuan dan kemampuan bagi penulis. Di samping itu, bertujuan juga untuk memperkenalkan sebuah program dengan bahasa assembly sederhana kepada masyarakat, khususnya kepada pelajar SMA/SMK sehingga mereka memiliki pengetahuan dasar untuk membuat pemograman dengan menggunakan bahasa assembly walaupun hanya dengan sedikit instruksi saja.
Masalah yang hendak diselesaikan dalam kegiatan ini adalah pembuatan sebuah program assembly sederhana terhadap rangkaian seven segment dengan instruksi-instruksi yang umum digunakan, dan kemudian memperkenalkannya kepada masyarakat, khususnya kepada pelajar SMA/SMK.
Setelah kegiatan PKM selesai dilaksanakan, laporan yang hendak diselesaikan dapat dikelompokkan kedalam tiga bagian, yaitu perancangan hardware, pemograman dan statistik pelatihan. Dan dalam laporan KP ini hanya akan difokuskan ke bagian pemograman saja, dimana akan dibahas mengenai tiga topik utama, yaitu:
1. Prinsip kerja mikrokontroller AT89S51, yakni mengenai penyambungan input/output dengan seven segment yang akan mempermudah dalam pembuatan program bahasa assembly.
2. Pembuatan sebuah program sederhana dengan menggunakan bahasa pemograman assembly.
3. Pengenalan program assembly kepada masyarakat, khususnya kepada pelajar SMA/SMK.
1.5. Waktu dan Tempat Pelaksanaan
Pelaksanaan kerja praktek ini adalah sekaligus juga sebagai pelaksanaan Program Kreatifitas Mahasiswa (PKM) yang diselenggarakan oleh Direktorat Penelitian dan Pengabdian kepada Masyarakat (DP2M), Ditjen Dikti. Sehingga waktu pelaksanaan adalah seperti yang diberikan oleh DP2M, namun sekaligus disesuaikan dengan kegiatan belajar mahasiswa yang bersangkutan.
Waktu Pelaksanaan : April-Mei 2008
Tempat Pelaksanaan : Laboratorium Elektronika dan Laboratorium
Komputer STTMCA
1.6.1 Metode perolehan informasi
Metode perolehan informasi ini berkenaan dengan pengumpulan data-data mengenai proses pemograman dengan bahasa assembly, seperti proses pembuatan flowchart hingga menterjemahkan flowchart kedalam bahasa assembly.
1.6.2 Perancangan pemograman
Perancangan pemograman mikrokontroller ini dibuat berdasarkan spesifikasi IC AT89S51 yang dipakai.
Uji coba dilakukan di Laboratorium Teknik Telekomunikasi Sekolah Tinggi Teknik Multimedia Cendekia Abditama saat perancangan seven segment selesai dibuat.
Dilakukan untuk mengetahui sejauh mana efektifitas perencanaan kegiatan dengan pelaksanaan kegiatan.
Laporan ini terdiri atas beberapa bab yang masing-masing bab terdiri atas beberapa sub bab. Adapun sistematika penulisan laporan kerja praktek ini adalah sebagai berikut:
BAB I PENDAHULUAN
Di dalam bab ini, diuraikan mengenai latar belakang masalah, tujuan kerja praktek, perumusan masalah, pembatasan masalah, waktu dan tempat pelaksanaan, metodologi pelaksanaan serta sistematika penulisan.
BAB II GAMBARAN UMUM PERGURUAN TINGGI
Bab ini membahas mengenai profile perguruan tinggi tempat penulis melakukan kegiatan PKM sekaligus kerja praktek.
BAB III LANDASAN TEORI
Bab ini membahas tentang bahasa assembly, sistem bilangan desimal, biner serta hexadesimal, mikrokontroller AT89S51, dan seven segment.
BAB IV PERANCANGAN
Di dalam bab ini diuraikan mengenai proses pembuatan program dengan bahasa assembly. Mulai dari penyambungan input/output, hingga mensimulasi-kan program yang dibuat kedalam mikrokontroller AT89S51.
BAB V IMPLEMENTASI
Bab ini menguraikan hasil akhir setelah program disimulasikan kedalam mikrokontroller AT89S51.
BAB VI METODA PEMBERIAN LATIHAN
Bab ini menguraikan mengenai proses pemberian materi pelatihan kepada pelajar SMU/SMK.
BAB VII PENUTUP
Bab ini terdiri atas kesimpulan dan saran.
BAB II GAMBARAN UMUM PERGURUAN TINGGI
Sekolah Tinggi Teknik Multimedia Cendekia Abditama
Jl. Siliwangi Raya No. 55, Pamulang,
Kabupaten Tangerang, Banten
Telp. (021) 7492255, Fax. (021) 7498277
Website: www.cendekia.ac.id
2.1. Sekilas pandang tentang Multimedia
Era multimedia tidak terasa sudah merasuk dalam seluruh aspek kehidupan manusia, hal ini ditunjang oleh perkembangan Teknologi Informasi dan Telekomunikasi (ICT) yang menjadi basis dari multimedia telah mengalami kemajuan yang pesat tidak saja di negara-negara sedang berkembang termasuk Indonesia.
Mencermati kondisi tersebut Sekolah Tinggi Teknik Multimedia Cendekia Abditama (STTMCA) hadir dan dipersiapkan untuk menjawab kebutuhan sumber daya manusia di bidang multimedia yang saat ini dirasakan sangat kurang memadai baik secara kuantitas apalagi kualitas.
Kehadiran kami sebagai Perguruan Tinggi pertama di bidang multimedia di Indonesia saat ini memiliki visi sebagai pusat unggulan bidang multimedia Indonesia.
Kami yakin kontribusi STTMCA akan sangat berarti besar bagi kemajuan bidang multimedia Tanah Air.
2.2. Daya Tampung dan Gedung Kampus STTMCA
Seiring dengan semakin besarnya kebutuhan SDM di bidang multimedia dan pertumbuhan minat yang signifikan terhadap bidang ini dari tahun ke tahun, maka STTMCA meningkatkan daya tampung mahasiswa dengan membangun gedung kampus baru di Pamulang.
Gambar 2.1 Sekolah Tinggi Teknik Multimedia Cendekia Abditama
Dengan luas lahan 9.625 m2 dan luas kampus berlantai tiga kurang lebih 1072 m2, area ini diproyeksikan akan dapat menampung lebih kurang 1000 mahasiswa dan dilengkapi dengan berbagai fasilitas penunjang aktifitas mahasiswa.
2.2.1. Laboratorium elektronika
Laboratorium yang terletak dilantai satu gedung C Sekolah Tinggi Teknik Multimedia Cendekia Abditama ini dikepalai oleh Bapak Djasiodi Djasri, Ir, MT. dan merupakan laboratorium khusus untuk mahasiswa/mahasiswi berjurusan Teknik Elektro / Komunikasi.
Di dalam ruangan ini, penulis melakukan perancangan hardware serta uji coba sistem untuk mengetahui apakah rangkaian mikrokontroler dapat digunakan atau tidak dalam pelatihan.
Gambar 2.2 Laboratorium elektronika Sekolah Tinggi Teknik Multimedia Cendekia Abditama
Laboratorium yang terletak dilantai dua gedung C Sekolah Tinggi Teknik Multimedia Cendekia Abditama ini dikepalai oleh Bapak Novan Zulkarnain, ST, M.Kom. dan merupakan laboratorium untuk seluruh mahasiswa/mahasiswi STTMCA.
Pada ruangan ini penulis melakukan pelatihan dalam memperkenalkan program mikrokontroler kepada masyarakat, khususnya pelajar SMU/SMK.
Gambar 2.3 Laboratorium komputer Sekolah Tinggi Teknik Multimedia Cendekia Abditama
Sekolah Tinggi Teknik Multimedia Cendekia Abditama didirikan oleh Yayasan Cendekia Abditama dengan Akte Notaris Andrea Septiyani, SH, SpN. Nomor 2 Tanggal 8 Mei 2003. Disahkan dalam SK Mendiknas RI Nomor 56/D/O/2004.
Visi
Sekolah Tinggi Teknik Multimedia Cendekia Abditama menjadi Pusat Unggulan Pendidikan Bidang Multimedia yang disertai dengan pembinaan mental dan spiritual.
Misi
Berperan aktif dalam pembangunan bangsa dan negara melalui:
· Menyelenggarakan program studi guna menunjang pengembangan dan penerapan Teknologi Multimedia yang meliputi anatara lain Teknik Informatika dan Teknik Elektro.
· Menyediakan sarana-prasarana dan lingkungan kondusif bagi pelaksanaan kegiatan akademis yang efektif dan efisien, sehingga mendapatkan lulusan yang memiliki kecerdasan akademik, kecerdasan emosional dan kecerdasan spiritual, serta trampil dan kreatif dalam berinovasi.
· Menjaga keterkaitan dan relevansi kegiatan akademis untuk memenuhi kebutuhan pembangunan nasional serta mampu berkomunikasi secara global.
· Menjalin kerjasama dengan berbagai pihak untuk menjamin kemutakhiran ilmu pengetahuan dan teknologi yang dapat diterapkan tepat guna.
Ketua Sekolah
Ir. Muslim Jayadikusuma, MBA
Wakil Ketua I Bidang Akademik
H. M. Jarot S. Suroso, Ir. M.Eng.
Wakil Ketua II Bidang Administrasi dan Keuangan
Desmalena, SE
Wakil Ketua III Bidang Kemahasiswaan
Mas Bambang Purnomo Sigit, SH.MM.
Mulai bulan Februari 2006, Sekolah Tinggi Teknik Multimedia Cendekia Abditama mendapat sertifikat dan mengimplementasikan standar Sistem Manajemen Mutu ISO 9001:2000 dengan nomor sertifikat: IA4246.
Tenaga pengajar para akademisi lulusan dalam dan luar negeri, Universitas Indonesia, Universitas Gajah Mada, Universitas Hasanudin, Marseille University, University of Southern California, National University of Singapore, UC Berkley, yaitu:
2.7.1. H.A. Qadri Ramadhany, SH, MM, Ph.D.
2.7.2. Muslim Jayadi, Ir, MBA.
2.7.3. H. M. Jarot S. Suroso, Ir, M.Eng.
2.7.4. Mas Bambang Purnomo Sigit, SH, MM
2.7.5. Hadi Sutopo, Ir, MMSI
2.7.6. Yaaro Telaumbanua,
2.7.7. Novan Zulkarnain, ST, M.Kom.
2.7.8. Nur Akbar Said, Ir, M.Eng.Sc.
2.7.9. Djasiodi Djasri, Ir, MT.
2.7.10. Iyan Turyana, ST, MT.
2.7.11. Sugiono, S.Kom, M.Pd.
2.7.12. Priyono, Drs, ME.
2.7.13. Mazmur Tarigan, ST
2.7.14. Bramantyo Sukarno, Ir.
2.7.15. Sasanti T. Soegiarto, Dra.
2.7.16. Agus Setyaji, Ir.
1. Program sarjana S1
Teknik Informatika
2. Program sarjana S1
Teknik Elektro / Komunikasi
Untuk saat ini jumlah mahasiswa Sekolah Tinggi Teknik Multimedia Cendekia Abditama berjumlah 95, orang terdiri dari:
Jurusan Teknik Informatika: 70 orang.
Jurusan Teknik telekomunikasi: 25 orang.
1. Peserta PKM Tingkat Nasional di UNILA, Lampung.
2. Peserta PKIM Tingkat Propinsi Banten.
3.
4. Peserta Pemanfaatan Hasil Penelitian program PKM potensi Hak Paten.
2.11. Pengembangan Program Studi
1. Diploma 3 (D3)
· Teknik Informatika
· Teknik Elektro / Telekomunikasi
2. Sarjana (S1)
· Design Komunikasi Visual
· Teknik Bradcasting
BAB III LANDASAN TEORI
Bahasa Assembly adalah bahasa pemograman tingkat rendah. Dalam pemograman komputer dikenal dua jenis tingkat bahasa. Jenis yang pertama adalah bahasa pemograman tingkat tinggi (high level language) dan jenis yang kedua adalah bahasa pemograman tingkat rendah (low level language).
Bahasa pemograman tingkat tinggi lebih berorientasi kepada manusia yaitu bagaimana agar pernyataan-pernyataan yang ada program mudah ditulis dan dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung mengintepretasikan pernyataan-pernyataan program.
Kelebihan bahasa assembly:
- Ukurannya lebih kecil ketika di-compile.
- Lebih hemat dan efisien dalam penggunaan memori.
3. Lebih cepat dieksekusi.
Kesulitan bahasa assembly:
- Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang dibanding bahasa tingkat tinggi.
- Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak.
3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis.
Terdapat dua jenis bahasa assembly yang dapat kita tulis dalam program:
Assembly directive, yaitu kode yang menjadi arahan bagi assembler/ compiler untuk menata program.
Tabel 3.1 Daftar Assembly Directive
Assembly Directive | Keterangan |
EQU | Pendefinisian konstanta |
DB | Pendefinisian data dengan ukuran satuan 1 byte |
DW | Pendefinisian data dengan ukuran satuan 1 word |
DBIT | Pendefinisian data dengan ukuran satuan 1 bit |
DS | Pemesanan tempat penyimpanan data di RAM |
ORG | Inisialisasi alamat mulai program |
END | Penanda akhir program |
CSEG | Penanda penempatan di code segment |
XSEG | Penanda penempatan di external data segment |
DSEG | Penanda penempatan di internal direct data segment |
ISEG | Penanda penempatan di internal indirect data segment |
BSEG | Penanda penempatan di bit data segment |
CODE | Penanda mulai pendefinisian program |
XDATA | Pendefinisian external data |
DATA | Pendefinisian internal direct data |
IDATA | Pendefinisian internal indirect data |
BIT | Pendefinisian data bit |
#INCLUDE | Mengikutsertakan file program lain |
1. Instruksi, yaitu kode yang harus dieksekusi oleh CPU mikrokontroler dengan melakukan operasi tertentu sesuai dengan daftar yang sudah tertanam dalam CPU.
Tabel 3.2 Daftar Assembly Instruksi
Instruksi | Keterangan Singkatan | Instruksi | Keterangan Singkatan |
ACALL | Absolute Call | LJMP | Long Jump |
ADD | Add | MOV | Move from Memory |
ADDC | Add with Carry | MOVC | Move from Code Memory |
AJMP | Absolute Jump | MOVX | Move from Extended Memory |
ANL | AND Logic | MUL | Multiply |
CJNE | Compare and Jump if Not Equal | NOP | No Operation |
CLR | Clear | ORL | OR Logic |
CPL | Complement | POP | Pop Value From Stack |
DA | Decimal Adjust | PUSH | Push Value Onto Stack |
DEC | Decrement | RET | Return From Subroutine |
DIV | Divide | RETI | Return From Interrupt |
DJNZ | Decrement and Jump if Not Zero | RL | Rotate Left |
INC | Increment | RLC | Rotate Left through Carry |
JB | Jump if Bit Set | RR | Rotate Right |
JBC | Jump if Bit Set and Clear Bit | RRC | Rotate Right through Carry |
JC | Jump if Carry Set | SETB | Set Bit |
JMP | Jump to Address | SJMP | Short Jump |
JNB | Jump if Not Bit Set | SUBB | Subtract With Borrow |
JNC | Jump if Carry Not Set | SWAP | Swap Nibbles |
JNZ | Jump if Accumulator Not Zero | XCH | Exchange Bytes |
JZ | Jump if Accumulator Zero | XCHD | Exchange Digits |
LCALL | Long Call | XRL | Exclusive OR Logic |
3.2. Sistem Bilangan Desimal, Biner dan Hexadesimal
Pada umumnya semua manusia telah terbiasa menggunakan sistem bilangan desimal atau denary, yaitu sistem bilangan dengan basis 10 yang memiliki sepuluh buah simbol, yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8 dan 9. Tetapi sistem ini tidak selalu menjadi pilihan terbaik untuk setiap aplikasi. Rangkaian elektronika lebih cocok menggunakan sistem bilangan biner yang merupakan sistem bilangan berbasis 2, yang memiliki dua simbol, yaitu 0 dan 1. Dan sistem bilangan lain yang juga sering digunakan adalah sistem bilangan hexadesimal yang berbasis 16, yang dengan kata lain memiliki enambelas buah simbol, yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F.
Tabel 3.3 Perbandingan bilangan desimal dan bilangan biner
Desimal | Biner | Desimal | Biner |
0 | 0000 | 5 | 0101 |
1 | 0001 | 6 | 0110 |
2 | 0010 | 7 | 0111 |
3 | 0011 | 8 | 1000 |
4 | 0100 | 9 | 1001 |
Tabel 3.4 Perbandingan bilangan desimal dan bilangan hexadesimal
Desimal | Hexadesimal | Desimal | Hexadesimal |
0 | 0 | 8 | 8 |
1 | 1 | 9 | 9 |
2 | 2 | 10 | A |
3 | 3 | 11 | B |
4 | 4 | 12 | C |
5 | 5 | 13 | D |
6 | 6 | 14 | E |
7 | 7 | 15 | F |
3.2.1. Konversi bilangan desimal ke bilangan biner
Bilangan desimal dapat dikonversi ke bilangan biner dengan dua cara, yang pertama adalah dengan cara kombinasi intuisi serta metode coba-coba (trial and error), dan cara yang kedua adalah dengan pembagian.
Pada metoda coba-coba, bilangan desimal yang diketahui dipisah-pisahkan kedalam sejumlah bilangan pangkat dengan basis 2.
Tabel 3.5 Metode coba-coba konversi bilangan desimal ke bilangan biner
Bilangan Desimal | Kolom Biner | Bilangan Biner | |||||
25 (32) | 24 (16) | 23 (8) | 22 (4) | 21 (2) | 20 (1) | ||
22 | 0 | 1 | 0 | 1 | 1 | 0 | 010110 |
Contohnya, angka 22d (22 dalam sistem bilangan desimal) memiliki nilai yang lebih kecil dari 25 (=32), sehingga bit 0 ditempatkan pada kolom 25 (32). Tetapi angka 22d lebih lebih besar dari 24 (=16), sehingga bit 1 ditempatkan dikolom 24 (16). Sisanya adalah 22 – 16 = 6, yang nilainya lebih kecil dari 23 (=8), sehingga bit 0 ditempatkan pada kolom 23 (8). Tetapi lebih besar dari 22 (=4), sehingga bit 1 ditempatkan pada kolom 22 (2). Maka sisanya menjadi 6 – 4 = 2. Sisa ini akan menghasilkan bit 1 yang akan ditempatkan pada kolom 21 (2). Karena tidak ada lagi sisa, maka kolom 20 (1) akan diisi oleh bit 0. Sehingga 22d = 010110b.
Sedangkan dengan cara pembagian, bilangan desimal yang akan diubah secara berturut-turut dibagi dengan angka 2, dengan memperhatikan sisa pembagiannya yang bernilai 0 atau 1. Sisa pembagian ini akan membentuk bilangan biner. Contohnya:
sisa 0, LBS
sisa 1
sisa 1
sisa 0
sisa 1, MBS
Konversi bilangan desimal ke bilangan hexadesimal
Untuk mengkonversi bilangan desimal ke bilangan hexadesimal, dapat dilakukan dengan cara pembagian bilangan yang igin diubah dengan angka 16 secara berturut-turut. Contonya untuk mengubah angka 3409d, dapat dilakukan dengan langkah-langkah seperti berikut:
sisa 110, LBS
sisa 510
sisa 1310, MBS
Dengan memperhatikan tabel 3.4, maka 110 = 116, 510 = 516 dan 1310 = D16. Sehingga 3409d = D51h.
Mikrokontroler AT89S51 ini merupakan salah satu seri mikrokontroler MCS-51. Arsitektur mikrokontroler AT89S51 diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta jalur I/O berupa port bit I/O dan port serial. Selain itu terdapat fasilitas timer/counter internal dan jalur interface address dan data ke memori external.
Gambar 3.1 Blok sistem mikrokontroler AT89S51
Salah satu tipe mikrokontroler arsitektur MCS-51 yang banyak digunakan saat ini adalah tipe AT89S51. Tipe ini banyak digunakan karena memiliki fasilitas on-chip flash memory dan In System Programming. Berikut adalah feature-feature untuk mikrokontroler tipe AT89S51:
· 4K bytes Flash ROM
· 128 bytes RAM
· 4 port @ 8-bit I/O (Input/Output) port
· 2 buah 16 bit timer
· interface komunikasi serial
· 64K pengalamatan code (program) memori
· 64K pengalamatan data memori
· prosesor Boolean (satu bit-satu bit)
· 210 lokasi bit-addressable
· fasilitas In System Programming (ISP)
Memory map mikrokontroler AT89S51
Gambar 3.2 Memory map mikrokontroler AT89S51
Gambar 3.3 IC seri mikrokontroler AT89S51
Berikut adalah penjelasan fungsi setiap kaki yang biasa terdapat pada seri mikrokontroler AT89S51.
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada desain yang minimum (sederhana) digunakan sebagai port I/O (Input/Output). Pada desain lebih lanjut pada perancangan dengan memori eksternal digunakan sebagai data dan address yang di-multiplex. Port 0 terdapat pada pin 32-39.
Merupakan port yang hanya berfungsi sebagai port I/O.
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O. Pada desain lebih lanjut digunakan sebagai high byte dari address. Port 2 terdapat pada pin 21-28.
Merupakan dual-purpose port. Selain sebagai port I/O juga mempunyai fungsi khusus yang ditunjukkan pada tabel berikut.
Tabel 3.6 Fungsi-fungsi khusus Port 3
PIN | FUNGSI KHUSUS |
P3.0
| RXD ( serial input port )
|
3.3.5. PSEN (program store enable)
PSEN adalah kontrol sinyal yang mengijinkan untuk mengakses program (code) memori eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan 0 pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai 0 pada pembacaan program memori internal. PSEN terdapat pada pin 29.
3.3.6. ALE (address latch enable)
ALE digunakan untuk men-demultiplex address dan data bus. Ketika menggunakan program memori eksternal port 0 akan berfungsi sebagai address dan data bus. Pada setengah paruh pertama memory cycle ALE akan bernilai 1 sehingga mengijinkan penulisan alamat pada register eksternal dan pada setengah paruh berikutnya akan bernilai satu sehingga port 0 dapat digunakan sebagai data bus. ALE terdapat pada pin 30.
Jika EA diberi masukan 1 maka mikrokontroler menjalankan program memori internal saja. Jika EA diberi masukan 0 (ground) maka mikrokontroler hanya akan menjalankan program memori eksternal (PSEN akan bernilai 0). EA terdapat pada pin 31.
RST pada pin 9 merupakan pin reset. Jika pada pin ini diberi masukan 1 selama minimal 2 machine cycle maka sistem akan di-reset dan register-register internal akan berisi nilai default tertentu dan program kembali mengeksekusi dari alamat paling awal.
Mikrokontroler AT89S5151 telah memiliki on-chip oscillator yang dapat bekerja jika di-drive menggunakan kristal. Tambahan kapasitor diperlukan untuk menstabilkan sistem. Nilai kristal yang biasa digunakan pada 89S51/89S52 adalah sekitar 12 MHz, dan maksimum sampai 24 MHz. On-chip oscillator tidak hanya dapat di-drive dengan menggunakan kristal, tapi juga dapat digunakan TTL oscillator.
Mikrokontroler biasanya beroperasi pada tegangan 3.3 volt atau 5 volt (tergantung serinya). Pin Vcc terdapat pada pin 40 sedangkan Vss (ground) terdapat pada pin 20.
Seven Segment merupakan device yang berfungsi untuk menampilkan bilangan decimal dimana bilangan tersebut dinyatakan oleh segment (LED) yang akan menyala untuk menampilkan bilangan decimal tersebut. Seven Segment dibedakan menjadi dua yaitu common anode dan common cathode.
Common Anode adalah jenis seven segment yang menggabungkan seluruh kaki anode dari LED dan menghubungkannya ke satu pin yang akan diberi dengan Vcc. Sehingga untuk menyalakan satu buah segment, kaki cathode dari setiap LED perlu dihubungkan dengan Ground.
Untuk menyalakan setiap segment dari LED tersebut, pin-pin cathode tersebut yang telah diberi nama huruf, harus diberikan logic 0 (ground) sehingga segment tersebut dapat menyala karena terjadi perbedaan tegangan di kaki cathode dan anode, kaki anode mempunyai tegangan lebih tinggi dari cathode.
Gambar 3.4 Seven segment common anode
Common Cathode adalah jenis seven segment yang menggabungkan seluruh kaki cathode dari LED dan menghubungkannya ke satu pin yang akan diberi dengan ground. Sehingga untuk menyalakan satu buah segment kaki anode dari setiap LED perlu dihubungkan dengan Vcc (5V).
Untuk menyalakan setiap segment dari LED tersebut pin-pin Anode tersebut yang telah diberi nama huruf, harus diberikan logic 1 (Vcc) sehingga segment tersebut dapat menyala karena terjadi perbedaan tegangan di kaki cathode dan anode, kaki anode mempunyai tegangan lebih tinggi dari cathode.
Gambar 3.5 Seven segment common anode
BAB IV PERANCANGAN
4.1. Penyambungan Input dan Output
Mikrokontroler AT89S51 yang digunakan akan dirangkai sehingga mempunyai input (masukan) dan output (keluaran) sebagai berikut:
· Port 2 sebagai input.
· Port 0
Port 2 (P2.0-P2.7) yang berada pada pin 21 hingga pin 28 mikrokontroller AT89S51 disambungkan ke delapan buah push button. Mikrokontroller akan selalu membaca nilai 1 dari semua push button tersebut, kecuali jika satu atau lebih push button tersebut ditekan, maka mikrokontroller akan membaca nilai 0 dari setiap push button yang ditekan.
Gambar 4.1 Konfigurasi P2.0-P2.7
Tabel 4.1 Konfigurasi port 2 dalam bilangan biner dan hexadesimal
P2.7 | P2.6 | P2.5 | P2.4 | P2.3 | P2.2 | P2.1 | P2.0 | Hexa | Puss Button yang ditekan |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | FFh | tidak ada |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | FEh | P2.0 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | FCh | P2.0 dan P2.1 |
1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | B6h | P2.0, P2.3, dan P2.6 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 00h | semua |
Port 1 (P1.0-P0.5) yang berada pada pin 1 hingga pin 6 mikrokontroller AT89S51 disambungkan ke enam buah display seven segment. Tidak seperti port 2 yang akan selalu memberikan nilai walaupun tidak digunakan, port 1 akan bekerja jika diberi perintah oleh user.
Jika diberi nilai 1, maka display akan aktif atau dapat digunakan. Dan jika diberi nilai 0, maka display tidak dapat digunakan.
Gambar 4.2 Konfigurasi P1.0-P1.5
Tabel 4.2 Konfigurasi port 1 dalam bilangan biner dan hexadesimal
P1.5 | P1.4 | P1.3 | P1.2 | P1.1 | P1.0 | Hexa | Display yang aktif |
0 | 0 | 0 | 0 | 0 | 0 | 00h | tidak ada |
0 | 0 | 0 | 0 | 0 | 1 | 01h | P1.0 |
0 | 0 | 0 | 1 | 0 | 0 | 04h | P1.2 |
0 | 0 | 0 | 0 | 1 | 1 | 03h | P1.0 dan P1.1 |
1 | 1 | 1 | 1 | 1 | 1 | 3Fh | semua |
Port 0 (P0.0-P0.7) yang berada pada pin 32 hingga pin 39 mikrokontroller AT89S51 disambungkan secara serial ke delapan buah segment pada setiap display seven segment. Seperti halnya port 1, port 0 juga tidak akan memberikan nilai jika user tidak memberi perintah.
Jika setiap segment diberi nilai 0, maka LAD pada segment tersebut akan menyala. Dan jika diberi nilai 1, maka LAD tidak akan menyala.
Gambar 4.3 Konfigurasi P0.0-P0.7
Tabel 4.3 Konfigurasi port 0 dalam bilangan biner dan hexadesimal
P0.7 | P0.6 | P0.5 | P0.4 | P0.3 | P0.2 | P0.1 | P0.0 | Hexa | Karakter |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 11h | 0 atau O |
1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | D7h | 1 atau I |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 32h | 2 atau Z |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 92h | 3 |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | D4h | 4 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 98h | 5 atau S |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 18h | 6 atau G |
1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | D3h | 7 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 10h | 8 atau B |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 90h | 9 atau g |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 50h | A |
0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1Ch | b |
0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 39h | C |
0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 16h | d |
0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 38h | E |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 78h | F |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 55h | H |
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 13h | J |
0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 3Dh | L |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 51h | n |
0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 70h | P |
1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | D0h | q |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 79h | r |
0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 3Ch | t |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 15h | U |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 94h | y |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | FFh | (spasi) |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | FEh | - |
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | BFh | _ |
Kekurangan dari seven segment ini adalah tidak semua karakter dalam alfabet dapat dibuat, misalnya karakter-karakter yang memiliki garis diagonal seperti K, M, V, W dan X.
4.2. Pembuatan Algoritma (Flowchart)
Flowchart digunakan untuk mempermudah user dalam membuat susunan langkah program yang akan dibuat (lihat lampiran 4). Misalnya untuk membuat sebuah nama seseorang (misal; Adrial) pada seven segment, maka gambar flowchart yang dapat dibuat adalah sebagai berikut.
Gambar 4.4 Contoh flowchart
4.3. Penerjemahan Flowchart Kedalam Bahasa Assembly
Program bahasa assembly dapat dibuat dengan menggunakan software Notepad. Hanya saja program yang telah dibuat harus disimpan dengan listing [.asm].
Berdasarkan flowchart yang telah dibuat sebelumnya, maka program dalam bahasa assembly untuk membuat nama tersebut (Adrial) pada seven segment adalah sebagai berikut.
$MOD51
CSEG
ORG 0000H
LJMP START
ORG 0100H
START:
MOV P1,#01h
MOV P0,#3Dh
CALL DELAY
MOV P1,#02h
MOV P0,#50h
CALL DELAY
MOV P1,#04h
MOV P0,#0D7h
CALL DELAY
MOV P1,#08h
MOV P0,#79h
CALL DELAY
MOV P1,#10h
MOV P0,#16h
CALL DELAY
MOV P1,#20h
MOV P0,#50h
CALL DELAY
DELAY:
MOV R5,#60H
DELAY1:
NOP
DJNZ R5,DELAY1
RET
END
4.4. Compiler Untuk Menghasilkan Kode Biner
Compiler adalah sebuah program komputer yang berguna untuk menterjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemograman lain.
Program yang telah dibuat dengan menggunakan bahasa assembly tidak dapat langsung disimulasikan ke mikrokontroller AT89S51. Hal itu disebabkan karena mikrokontroller hanya membaca listing [.hex]. Untuk itu diperlukan sebuah compiler yang dapat mengubah atau menterjemahkan listing [.asm] menjadi [.hex].
ASM51 adalah program yang dapat digunakan untuk merubah program dalam bahasa assembly ke kode mesin mikrokontroler, dengan kata lain dapat menterjemahkan program dengan listing [.asm] menjadi file dengan listing [.hex].
Gambar 4.5 Program Compiler ASM51
Selain file dengan listing [.hex], ASM51 juga akan menterjemahkan listing [.asm] ini menjadi [.lst]. Fungsinya adalah untuk memberi tahu user apakah telah terjadi kesalahan dalam pembuatan program yang telah dikerjakan sebelumnya, misalnya jika terjadi kesalahan dalam menuliskan instruksi yang tidak dapat dimengerti oleh mikrokontroller AT89S51.
BAB V IMPLEMENTASI
Setelah mendapatkan file dengan listing [.hex] dan memastikan tidak terjadi kesalahan dalam pembuatan program, maka program yang telah dibuat dapat disimulasikan langsung ke mikrokontroller AT89S51 dengan menggunakan sebuah software ATMEL serta dengan menggunakan DT-HiQ AT89S dan kabel ISP, yang keduanya menghubungkan mikrokontroller AT89S51 dengan port parallel CPU komputer yang menjalankan software ATMEL tersebut. Sehingga program dapat dituliskan kedalam mikrokontroller AT89S51.
Gambar 5.1 Program assembly yang telah disimulasikan kedalam mikrokontroller AT89S51
BAB VI METODA PEMBERIAN PELATIHAN
Disini penulis akan menjelaskan seluruh materi yang berhubungan dengan pemograman mikrokontroler dengan menggunakan bahasa assembly. Dimulai dari menjelaskan tentang pengertian assembly, menjelaskan tentang penyambungan input/output mikrokontroler AT89S51 terhadap seven segment, menjelaskan tentang pembuatan algoritma atau flowchart dan menterjemahkan flowchart kedalam bahasa assembly, serta menjelaskan maksud setiap baris instruksi dari contoh program yang telah disediakan.
Sudah sifat setiap manusia bahwa mengalami suatu kejadian melalui diri sendiri lebih susah dilupakan daripada mendengarkan kejadian yang dialami orang lain. Maka dari itu penulis memberikan beberapa latihan kepada pelajar SMU/SMK untuk dikerjakan ditengah-tengah penjelasan materi. Karena hal ini dapat membantu dan mempermudah mereka dalam pengerjaan program dalam praktik langsung.
Latihan yang diberikan dapat berupa tugas untuk melengkapi tabel konfigurasi port 0, 1 dan 2. Atau dengan memberikan pertanyaan-pertanyaan ringan.
Praktikum dilakukan setelah materi selesai dijelaskan. Dengan melakukan praktikum langsung, tingkat kepahaman para pelajar SMU/SMK akan semakin meningkat dan mereka akan semakin mengerti fungsi dari setiap baris instruksi dibandingkan jika mereka hanya mendengarkan penjelasan saja.
BAB VII PENUTUP
Pengenalan pemograman mikrokontroller dengan menggunakan bahasa assembly kepada masyarakat terutama kepada pelajar SMA/SMK dapat membantu mereka mengerti dan memahami bagaimana cara kerja salah satu teknologi yang mungkin pernah mereka temui. Selain itu dengan mempelajari bahasa pemograman assembly, mereka dapat menambah keterampilan mereka sehingga dapat pula menambah kesempatan mereka dalam mencari pekerjaan pada bidang pembuatan program assembly.
Pemograman assembly ini merupakan salah satu program dasar sederhana yang hanya menggunakan beberapa instruksi yang umum digunakan saja. Program ini dapat dikembangkan menjadi aplikasi lain yang lebih kompleks, seperti pembuatan teks berjalan, jam digital, dan lain sebagainya.
DAFTAR PUSTAKA
[1] Ibrahim KF, 1996, Tekhnik Digital, ANDI, Jogjakarta
[2] Modul pelatihan mikrokontroller tahun 2007/2008 Sekolah Tinggi Tekhnik Multimedia Cedikia Abditama
[3] http://lab.binus.ac.id/pk/download/tugasrancangan/5/jamdigital.pdf
[4] http://www.mikron123.com/index.php/Tutorial-MCS-51/Arsitektur-Mikrokontroler-MCS-51.html
[5] http://www.mikron123.com/index.php/Tutorial-MCS-51/Daftar-Instruksi-Bahasa-Assembly-MCS-51.html
[6] http://www.mikron123.com/index.php/Tutorial-MCS-51/Pemrograman-AT89S51-bahasa-Assembly.html
LAMPIRAN
Lampiran 1. Notepad
Notepad digunakan sebagai editor. Listing Program berbahasa Assembly dalam praktikum ditulis dan diubah menggunakan Notepad. Listing program tersebut disimpan dengan format file [.asm].
Gambar 1. Software Notepad
Lampiran 2. ASM51 dan MOD51
ASM51 digunakan untuk merubah program dalam bahsa assembly ke kode mesin mikrokontroler. ASM51 akan mengubah listing program yang sudah dibuat di software notepad menjadi file heksadesimal. Hasil proses ini akan menghasilkan file dengan format [.hex] dan [.lst].
File [.hex] adalah file yang akan dituliskan kedalam mikrokontroller AT89S51. Sedangkan file [.lst] adalah file yang berisi alokasi (alamat) memori pada listing program. File [.lst] ini juga berisi pesan error dan lokasinya jika terdapat kesalahan pada listing program.
Sementara MOD51 berisi semua kode kontrol untuk keluarga MCS-51 antara lain: 8051, 8751, 8031, 80C51, 80C31, 87C51, 9761, 8053, termasuk 89C51 dan 89C2051.
Gambar 2. Program Compiler ASM51
Lampiran 3. ATMEL
Atmel adalah software yang digunakan untuk menuliskan program dengan listing [.hex] kedalam chip mikrokontroller.
Gambar 3. Software ATMEL
Lampiran 4. Flowchart
Flowchart adalah representasi grafik dari langkah-langkah yang harus diikuti dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing simbol merepresentasikan suatu kegiatan tertentu. Flowchart diawali dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart:
Tabel 1. Simbol-simbol yang digunakan untuk menggambar suatu flowchart
SIMBOL | NAMA | FUNGSI |
| Terminator | Permulaan/akhir program |
| Garis alir (flow line) | Arah aliran program |
| Preparation | Proses inisialisasi/pemberian harga awal |
| Proses | Proses perhitungan/proses pengolahan data |
| Input/output data | Proses input/output data, parameter, informasi |
| Predefined process (sub program) | Permulaan sub program/proses menjalankan sub program |
| Decision | Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya |
| On page connector | Penghubung bagian-bagian flowchart yang berada pada satu halaman |
| Off page connector | Penghubung bagian-bagian flowchart yang berada pada halaman berbeda |
Lampiran 5. DT-HiQ AT89S dan Kabel ISP
DT-HiQ AT89S berfungsi untuk menghubungkan port parallel pada CPU komputer dengan kabel ISP. Sedangkan kabel ISP adalah kabel yang menghubungkan DT-HiQ AT89S dengan mikrokontroler, fungsinya untuk meneruskan program yang akan dituliskan kedalam chip mikrokontroller.
Gambar 4. DT-H1Q AT89S dan kabel ISP
0 komentar:
Posting Komentar