TUGAS AKHIR Penghasil Sinyal Terprogram Diajukan Untuk Melengkapi Tugas Dan Memenuhi Syarat Kelulusan Program Strata -1
Oleh NASIR 01400 – 063
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2007
PERNYATAAN KEASLIAN KARYA TUGAS AKHIR Saya yang bertandatangan di bawah ini : Nama
: Nasir
N.I.M
: 01400 – 063
Fakultas
: Teknologi Industri
Jurusan
: Teknik Elektro
Program Studi
: Elektronika
Dengan ini menyatakan bahwa karya tugas akhir yang saya buat dengan judul : “ Penghasil Sinyal Terprogram “ 1. Adalah hasil karya saya sendiri, kecuali yang saya nyatakan sumbernya dan belum dipublikasikan untuk mendapat gelar sarjana di Universitas lain kecuali pada bagian – bagian sumber informasi yang dicantumkan dengan cara referensi yang semestinya. 2. Dan bersedia menerima sangsi dari Universitas Mercu Buana jika dikemudian hari terdapat ketidak benaran.
Jakarta, Mei 2007 Yang Membuat Peryataan
( NASIR )
i
LEMBAR PENGESAHAN Penghasil Sinyal Terprogram Diajukan Untuk Memenuhi Salah Satu Syarat Kelulusan Pendidikan Strata Satu (S1) Program Studi Teknik Elektro
Disusun Oleh : NASIR NIM : 01400 – 063
Menyetujui Pembimbing TA
Koordinator TA
Yudhi Gunardi, ST, MT
Ir. Eko Ihsanto, M.Eng
Mengetahui Ketua Program Studi Teknik Elektro
Ir. Budi Yanto Husodo, MSc
ii
ABSTRAK Dalam pengujian alat di laboratorium elektronika, tenaga listrik maupun telekomunikasi, biasanya dibutuhkan generator sinyal (signal generator). Sinyal yang dapat dihasilkannya biasanya bervariasi dari bentuk sinyal, misalnya segitiga, sinus dan persegi, frekuensi sinyal dan amplitudo sinyal. Untuk generator sinyal yang menghasilkan lebih dari 1 sinyal, diperlukan juga variasi beda fasa. Tetapi umumnya generator sinyal memproses atau menghasilkan sinyal secara analog, sehingga distorsi amplitudo, frekuensi dan fasa sulit dihindari, baik karena pengaruh suhu atau kualitas catu daya. Tujuan tugas akhir ini adalah membuat generator sinyal dengan 3 macam bentuk sinyal, yaitu sinus, segitiga dan persegi. Bentuk dan frekuensi sinyal yang ingin dihasilkan dapat dipilih melalui PC. Sinyal tersebut dihasilkan secara digital melalui sistem minimum AT89C51. Berdasarkan hasil pengujian, diketahui bahwa 3 macam jenis sinyal dengan variasi frekuensi dapat dihasilkan secara digital. Satu-satunya komponen analog hanyalah 8-bit DAC. Meskipun amplitudo sinyal masih berupa konstanta dan frekuensi yang dihasilkan masih di bawah 1 kHz, pengembangan mudah dilakukan untuk memperbaiki 2 hal ini, misalnya dengan mengganti mikrokontroler penghasil sinyal, menambah jumlah bit DAC dll.
iii
DAFTAR ISI
PERYATAAN KEASLIAN TUGAS AKHIR ........................................
i
LEMBAR PENGESAHAN ......................................................................
ii
ABSTRAK .................................................................................................
iii
KATA PENGANTAR ...............................................................................
iv
DAFTAR ISI..............................................................................................
vi
DAFTAR GAMBAR .................................................................................
viii
DAFTAR TABEL .....................................................................................
x
BAB I PENDAHULUAN..........................................................................
1
1.1
Latar Belakang .......................................................................
1
1.2
Tujuan Penulisan ....................................................................
1
1.3
Pokok – Pokok Pembahasan ..................................................
2
1.4
Metode Penulisan ...................................................................
2
1.5
Sistematika Penulisan ............................................................
2
BAB II TEORI DASAR............................................................................
4
2.1
Mikrokontroler .......................................................................
4
2.2 Arsitektur Mikrokontroler AT89C51 .....................................
4
2.3. Fungsi - fungsi Pin Mikrokontroler AT89C51 ......................
6
2.4. Organisasi Memori.................................................................
9
2.5. SFR (Special Function Register) ...........................................
12
2.6. Struktur Port ...........................................................................
16
2.7
Metode Pengalamatan (addressing mode) .............................
17
2.8
Spesifikasi DT-51 ..................................................................
19
2.9
Tata Letak DT-51 ...................................................................
20
vi
2.10 Detail Urutan Konektor Ekspansi .................................................
20
2.11 Peta Memori DT-51 .......................................................................
21
2.12 Komunikasi Serial ..................................................................
22
BAB III PERANCANGAN ALAT ..........................................................
38
3.1
Blok Diagram .........................................................................
38
3.2
Konverter Digital Analog ......................................................
40
3.3
Rangkaian Minimum Mikrokontroler AT89C51 ...................
41
3.4
Downloader DT-51 ................................................................
42
3.5
Program ..................................................................................
43
3.5.1 Program Debugger DT51D ..........................................
44
3.5.2 Program Downloader DT51L ......................................
45
3.6 Perencanaan Pembuatan Program .........................................
47
BAB IV PENGUJIAN ALAT ..................................................................
48
4.1
Jenis-jenis Pengujian Alat ......................................................
48
4.2 Pengukuran Keluaran dari Konverter Digital Analog ......................................................
48
4.3
Pengujian sinyal pada Osilloscope .......................................
49
4.4
Pengujian Sinyal Pada PC......................................................
51
BAB V KESIMPULAN DAN SARAN ....................................................
53
5.1
Kesimpulan ............................................................................
53
5.2 Saran ......................................................................................
54
DAFTAR PUSTAKA ................................................................................
55
LAMPIRAN...............................................................................................
56
LAMPIRAN DATA SHEET ....................................................................
57
vii
DAFTAR GAMBAR
Gambar 2.1. Arsitektur Internal Mikrokontroler AT89C51 .............................
6
Gambar 2.2 Konfigurasi Pin Mikrokontroler AT89C51...................................
6
Gambar 2.3. Contoh koneksi kristal untuk clock ..............................................
7
Gambar 2.4. Peta Memory internal pada intel 8051 .........................................
9
Gambar 2.5 Peta RAM internal 8051. ..............................................................
11
Gambar 2.6. Peta SFR (Special Function Register). .........................................
13
Gambar 2.7 Tata Letak DT-51 ..........................................................................
20
Gambar 2.8. Gelombang informasi untuk komunukasi serial. .........................
24
Gambar 2.9 Contoh penggunaan IC pengubah level sinyal. .............................
33
Gambar 2.10 Contoh sambungan antara DB9 denganprosesor AT89C2051 ..
33
Gambar 2.11 Penggunaan program Hyper Terminal pada Windows XP .........
34
Gambar 2.12 Penentuan konektor DB9 (kiri) dan baudrate (kanan) ................
34
Gambar 3.1 Blok Diagram Sistem ....................................................................
38
Gambar 3.2 Generator sinyal ............................................................................
39
Gambar 3.3 Sinyal sinus dan sinyal segitiga ....................................................
39
Gambar 3.4 Rangkaian dasar converter digital analog R-2R ...........................
41
Gambar 3.5 Rangkaian Sistem Minimum Mikrokontroller AT89C51 .............
41
viii
Gambar 4.1 Sinyal Sinus yang di hasilkan Osilloscope ...................................
50
Gambar 4.2 Sinyal Segitiga yang di hasilkan Osilloscope ...............................
50
Gambar 4.3 Sinyal Persegi yang di hasilkan Osilloscope.................................
50
Gambar 4.4 Sinyal Sinus yang di tampilkan PC ..............................................
51
Gambar 4.5 Sinyal Segitiga yang di tampillkan PC .........................................
51
Gambar 4.6 Sinyal Persegi yang di tampilkan PC ............................................
52
ix
DAFTAR TABEL
Tabel 2.1. Fungsi lain Port 3 .............................................................................
17
Tabel 2.2 Isi register SCON ..............................................................................
26
Tabel 2.3 Mode komunikasi serial berdasarkan bit pada SM0 dan SM1 .........
26
Tabel 4.1 Data pengukuran keluaran DAC .......................................................
49
x
BAB I PENDAHULUAN
1.1 Latar Belakang Dewasa ini penggunaan teknologi semakin dibutuhkan disetiap bidang kehidupan, karena dengan diterapkannya teknologi dalam melakukan pekerjaan akan di dapat kemudahan. Data didalam mikroprosesor selalau berbentuk digital. Ini berbeda dari kenyataan dunia luar yang lazimnya mengenal data analog. Untuk mendapatkan data digital, kita membutuhkan suatu converter analog ke digital (A/D), piranti ini melakukan konversi tegangan atau konversi arus analog menjadi suatu kata digital. Sebaliknya, setelah CPU selesai memproses data, sering kali diperlukan suatu konversi dari jawaban digital ke dalam tegangan atau arus analog. Konversi ini memerlukan converter digital ke analog (D/A). Perantara anlog (analog interface) merupakan perbatasan antara dunia digital dan dunia analog atau antara mikrokomputer dan dunia luar. Pada muka perantara (interface, atau perantara) ini, kita akan menjumpai baik converter A/D ( sisi masukan ) maupun converter D/A ( sisi keluaran ).
1.2 Tujuan Penulisan Tujuan tugas akhir ini adalah membuat generator sinyal dengan 3 macam bentuk sinyal, yaitu sinus, segitiga dan persegi. Bentuk dan frekuensi sinyal yang ingin dihasilkan dapat dipilih melalui PC. Sinyal tersebut dihasilkan secara digital melalui sistem minimum AT89C51.
1
1.3 Pokok-pokok Pembahasan pada tugas akhir ini, akan di bahas hal-hal yang berhubungan dengan rangkaian Konverter Digital Analog. Hal-hal yang akan dibahas adalah teori dasar komponen-komponen pada blok diagram, analisa alat, pembuatan alat dan pengujian alat.
1.4 Metode Penulisan Metode penulisan tugas akhir ini dilakukan dengan beberapa cara yaitu: 1. Metode pustaka yaitu dengan cara melakukan penelusuran pustaka melalui referensireferensi yang menunjang tema penulisan yang didapat dari perpustakaan. 2. Metode Eksperimen Yaitu dengan cara melakukan penelitian dan pengujian secara langsung terhadap alat yang dibuat.
1.5 Sistematika Penulisan Agar mudah dimengerti, maka tugas akhir ini harus disusun secara sistematis. Untuk itu penulis membaginya menjadi lima bab, dimana tiap babnya saling berhubungan antara satu dengan yang lainnya. Adapun pokok pembahasan masing-masing bab adalah sebagai berikut:
2
BAB I PENDAHULUAN Berisikan hal-hal yang mendasari pengerjaan tugas akhir ini, seperti latar belakang masalah, tujuan penulisan, pokok-pokok pembahasan, metode penulisan, dan sistematika penulisan. BAB II TEORI DASAR Bab ini berisikan teori dasar tentang konponen-konponen dan rangkaian yang berhubungan dengan alatyang dibuat sebagai gambaran awal teori dasar yang menjadi landasan perancangan sebelum beralih ke bab berikutnya. BAB III PRINSIP KERJA ALAT Menjelaskan prinsip kerja alat secara blok diagram dan secara keseluruhan dari tiap-tiap rangkaian berdasarkan sumber sinyal yang menyebabkan alat tersebut dapat bekerja . BAB IV PENGUJIAN DAN PENGUKURAN ALAT Berisikan penjelasan tentang pengujian dari masing-masing rangkaian, untuk mengetahui apakah alat telah bekerja dengan baik. BAB V PENUTUP Bab ini berisikan kesimpulan dari pembahasan tentang alat yang dibuat terutama dilihat dari hasil pengujian dan pengukuran yang telah dilakukan.
3
BAB II TEORI DASAR
Untuk memahami cara kerja alat yang dibuat pada tugas akhir ini, diperlukan pengertian dari beberapa teori dasar yang berhubungan dan mendukung alat ini. Berikut ini akan dilelaskan teori dasar dari komponen pendukung tersebut.
2.1 Mikrokontroler Perbedaan antara mikroposesor serta mikrokontroler sangat penting sebelum mempelajari ketiganya secara mendalam. Suatu mikroposesor adalah Central Prosesing Unit dari sebuah computer, tanpa memori, I/O unit, dan peripheral yang dibutuhkan oleh suatu sistem lengkap. Sebagai contoh 8088 dan 80X86 adalah suatu mikroposesor yang membutuhkan perangkat pendukung berupa RAM, ROM serta I/O unit. Bila sebuah mikroposesor dikombinasikan dengan I/O unit dan memori (RAM/ROM), akan dihasilkan sebuah mikrokomputer. Pada kenyataannya mengkombinasikan CPU dengan memori dan I/O unit dapat juga dilakukan dalam level chip, yang menghasilkan Single Chip Mikrocomputer (SCM) untuk membedakannya dengan mikrokomputer. Untuk selanjutnya karena fungsinya SCM dapat disebut mikrokontoler.
2.2 Arsitektur Mikrokontroler AT89C51 AT89C51 merupakan prosesor 8-bit dengan low power supply dan performansi tinggi yang terdiri dari CMOS dengan Flash Programmable dan
4
Erasable Read Only Memory (PEROM) sebesar 4 Kbyte didalamnya. Alat tersebut dibuat dengan menggunakan teknologi tinggi non-volatile berdensitas tinggi dari ATMEL yang kompatibel dengan keluarga MCS-51 buatan Intel yang merupakan standar industri. Dengan menggunakan flash memori, program dapat diisi dan dihapus secara elektrik, yaitu dengan memberikan kondisi-kondisi tertentu (high / low) pada pin-pinnya sesuai dengan konfigurasi untuk memprogram atau menghapus. Cara ini lebih praktis dibandingkan dengan menggunakan EPROM yang penghapusan program atau datanya menggunakan sinar ultraviolet. Fasilitas yang tersedia pada AT89C51 antara lain : a. 4 Kbytes Flash EEROM dengan kemampuan sampai 1000 kali tulishapus b. 128 x 8-bit internal RAM. c. 32-bit atau jalur Input/Output. d. 2 (dua) buah 16-bit Timer / Counter. e. 6 (enam) buah sumber interupsi. f. Serial Communication Interface. g. Kompatibel dengan prosesor MCS-51 buatan Intel Corp. h. Operasi Klok antara 1 sampai 24 MHz.
5
Gambar 2.1. Arsitektur Internal Mikrokontroler AT89C51
2.3 Fungsi - fungsi Pin Mikrokontroler AT89C51 Susunan pin atau kaki–kaki mikrokontroler AT89C51 dapat dilihat pada gambar di bawah ini :
Gambar 2.2 Konfigurasi Pin Mikrokontroler AT89C51
6
XTAL1, adalah kaki masukan ke rangkaian oscilator internal. Sebuah oscillator kristal atau sumber oscilator luar dapat digunakan. XTAL2, adalah kaki keluaran dari rangkaian oscilator internal. Pin ini dipakai bila menggunakan oscilator kristal.
Gambar 2.3. Contoh koneksi kristal untuk clock. Gambar 2.3. memperlihatkan contoh koneksi pin XTAL2 dan XTAL1 untuk menghasilkan klok internal. Kristal yang digunakan berkisar antara 1 MHz sampai 24 MHz. Penggunaan klok pada sistem mikroprosesor mutlak diperlukan untuk sinkronisasi aktivitas seluruh komponen digital yang terlibat di dalamnya, makin cepat getaran klok, makin cepat pula proses yang dilakukan sistem tersebut. Karena sebuah siklus mesin (machine cycle) pada 8051 membutuhkan 12 klok, maka jika kita menggunakan kristal 12 MHz, 1 siklus mesin memakan waktu 1 μs. RST, Reset input.. Memberikan sinyal HIGH pada pin ini paling tidak selama 2 siklus mesin (sekitar 2 μs untuk prosesor yang menggunakan kristal 12 MHz) akan me-reset mikrokontroler. Semua pin I/O akan high ketika reset diberi kondisi high ALE / PROG,
7
Sinyal HIGH diberikan oleh pin ini atau ALE (Addres Latch Enable) ketika prosesor mengakses kode program (fetch cycle) dari memory eksternal. Pin ini disediakan karena 8 dari 16 pin Address dipakai bergantian dengan 8 pin Data. Pin ini disambungkan dengan sebuah Latch atau Buffer yang menahan sinyal address. Pada operasi normal ALE dikelurkan secara konstan pada 1/6 frekuensi oscillator dan dapat dipakai untuk timing atau clocking eksternal. Sedangkan PROG atau kondisi LOW yang diberikan terhadap pin ini diterapkan pada saat pengisian kode program ke dalam ROM internal. PSEN, Program Strobe Enable merupakan sinyal pengontrol yang membolehkan program memori eksternal masuk ke dalam
bus selama proses pemberian /
pengambilan instruksi (fetching). Pin ini biasanya dihubungkan dengan OE (output enable) pada Chip ROM eksternal. EA / VPP, Pin EA ini harus dihubungkan ke ground jika kode program diletakkan pada memory eksternal. Sebaliknya harus disambunkan ke Vcc jika kode program diletakkan pada ROM internal. AT89C51 memiliki memory internal, yaitu 128 byte RAM dan 4kbytes ROM, sehingga untuk menyimpan program yang ukurannya tidak melebihi 4kbyte tidak diperlukan lagi ROM eksternal. Dari 32-pin saluran I/O yang tersedia, 24 di antaranya digunakan untuk I/O paralel dan 8-bit sisanya berfungsi ganda, yaitu sebagai I/O paralel sekaligus untuk sinyal kontrol yaitu pin P3.0 sampai P3.7. Sinyal control tersebut adalah WR, RD, T0, T1, INT0, INT1 dan 2-bit saluran Input/Output serial yaitu RXD dan TXD.
8
2.4 Organisasi Memori Mikrokontroler AT89C51 memiliki memory internal program yang terpisah dari memory internal data, ruang memory internal program memiliki kapasitas 4 kbyte flash EEROM, yaitu alamat 0000H sampai 0FFFH dalam bilangan heksadesimal atau alamat 0 sampai 4095 dalam bilangan desimal. Karena alamat terkait dengan jumlah pin address yang menggunakan sistem biner, maka biasanya angka alamat memory menggunakan bilangan biner atau heksadesimal, di mana setiap angka heksadesimal mewakili 4-bit angka biner.
(a). Memory Program.
(a). Memory Data. Gambar 2.4. Peta Memory internal pada intel 8051.
9
Gambar 2.4.. memperlihatkan lokasi ROM internal. Lokasi ini dapat diakses jika pin EA = 1 atau diberi tegangan Vcc. Jika ukuran program melampaui 4kbyte, maka harus digunakan ROM eksternal yang alamatnya antara 0000h sampai FFFFh atau 64kbyte dan pin EA = 0 atau dihubungkan dengan ground. Jika digunakan EPROM eksternal, maka alamat memory program sama dengan alamat memory data, dengan kata lain alamat 64 kbyte dipakai bersama oleh program dan data. Seperti telah disebutkan di atas, AT89C51 dapat membedakan alamat memory hingga 64 kbyte, pengaksesan data ke memori data eksternal dilakukan dengan menggunakan data pointer melalui instruksi “MOVX”. Di samping dapat mengakses RAM eksternal, mikrokontroler AT89C51 memiliki RAM internal yang pengaksesannya terpisah dengan RAM eksternal. RAM internal berkapasitas 128 byte ditambah sejumlah SFR (Special Function
Register). Gambar 2.4.b. kiri memperlihatkan RAM internal dan SFR. Kelompok RAM internal memiliki alamat antara 00 – 7FH sedangkan kelompok SFR (Special Function Register) memiliki alamat antara 80H – FFH. RAM internal dapat diakses secara langsung (direct addressing) maupun tak langsung (indirect
addressing) melalui RO dan R1. Sedangkan SFR hanya dapat diakses secara langsung dengan menyebutkan nama lokasinya, bukan nomor lokasinya, misalnya ACC, B, P0, P1 dst. 128 byte RAM internal yang terletak antara 00 – 7FH terbagi atas 3 (tiga) bagian yaitu :
10
Gambar 2.5 Peta RAM internal 8051. a. Kelompok Register Bank. Berupa 32 byte atau 32 register yang terletak antara 00h sampai 1Fh. Bagian ini dipecah menjadi 4 register bank yang masing-masing terdiri dari 8 register yang diberi nama R0 sampai R7. Masing-masing register dapat dialamatkan dengan nama ataupun dengan alamat RAM-nya. Bit RS0 dan RS1 pada register PSW di SFR menentukan bank mana yang sedang digunakan. Misalnya jika RS0 dan RS1 bernilai 00, maka R2 menempati lokasi 02H pada register bank pertama, tetapi jika RS0 dan RS1 bernilai 10, maka R2 menempati lokasi 12H pada register bank ketiga. b. Daerah pengalamatan bit (bit addressable) yang terdiri dari 16 byte atau 16 register dengan alamat antara 20h sampai 2Fh. Setiap bit pada areal ini dapat diakses secara terpisah tanpa mengganggu bit lainnya. Pengalamatan byte dapat mengunakan alamat register antara 20h sampai 2Fh, sedangkan pengalamatan bit dapat dilakukan dengan menuliskan
11
titik setelah alamat registernya, misal 20H.7 untuk bit MSB pada register 20H. c. Daerah register penggunaan umum (Scratch Pad Area) yang terletak di bagian atas RAM internal, yaitu alamat 30h sampai 7FH. Biasanya Stack diletakkan di area ini.
2.5 SFR (Special Function Register) Di dalam setiap operasinya mikrokontroler harus selalu menyertakan register sebagai salah satu operand atau tempat data yang akan dilibatkan dalam operasi tsb. Register adalah memori kecil berukuran 1 atau 2 byte, 8-bit atau 16bit. Register akan menampung data sebelum diolah, register juga akan menampung data hasil olahan sementara sebelum dikembalikan atau dikirim ke BUS internal atau eksternal. Selain itu, register juga digunakan untuk mengendalikan operasi I/O device, seperti paralel I/O, serial communication, Timer dan Interrupt. Gambar 2.6. memperlihatkan peta SFR. Register-register yang ada di mikrokontroler adalah sebagai berikut: a. Register A, disebut juga sebagai akumulator (SFR alamat E0h) yaitu tempat akumulasi proses olah data. b. Register B, disebut juga Base Register (SFR alamat F0h). Register ini jarang dipakai karena hanya dipakai untuk operasi perkalian dan pembagian saja.
12
Gambar 2.6. Peta SFR (Special Function Register). c. Register R0 s/d R7 (tidak terletak dalam SFR). Merupakan Register serbaguna yang boleh dipakai untuk apa saja. Khusus untuk register R0 dan R1 dapat digunakan juga untuk operasi pengalamatan tak langsung (indirect addressing).
13
d. Register DPTR, merupakan satu-satunya register 16-bit yang ada pada mikrokontroler keluarga MCS51. Register ini mempunyai fungsi serbaguna seperti halnya register R0 s/d R7, dan dapat juga untuk menyimpan alamat memory eksternal bagi mode pengalamatan tak langsung. Register ini dapat dibagi menjadi dua bagian yaitu register DPL dan register DPH. Register DPL adalah byte bawah dari DPTR yaitu bit ke-0 s/d bit ke-7, sedangkan register DPH adaalh byte atas dari DPTR yaitu bit ke-8 s/d bit ke-15. e. PSW (Program Status Word) atau flag register, SFR alamat D0H, merupakan register yang berisi data-data kondisi mikrokontroler setelah suatu operasi selesai dijalankan. Register ini memiliki bit ke-3 dan bit ke-4 digunakan untuk pemilihan register bank. f. Register Port, terdiri dari 4 (empat) yaitu P0, P1, P2, dan P3. Register port berisi data-data yang akan dikirim keluar dan data-data yang telah dibaca dari luar. Setiap bit pada register port terkait langsung dengan kondisi pin tertentu, misalnya jika bit pada P1.5 diberi nilai biner “1”, maka pin yang terkait dengannya, yaitu pin nomor 6 (lihat gambar 2.2.) akan berkondisi HIGH atau tegangan 5 volt. Jika pin 6 ini disambungkan ke sebuah LED, maka LED akan menyala. Sebaliknya, jika pin 6 tsb disambungkan ke sebuah sensor dan sensor tsb dalam kondisi HIGH, maka P1.5 akan bernilai “1”. Pada kasus LED, pin P1.5. berfungsi sebagai pin output, sedangkan pada kasus sensor, pin tsb berfungsi sebagai input bagi prosesor. g. SP (Stack Pointer), SFR alamat 81h, berisi alamat stack atau tumpukan tertinggi dalam RAM internal. Register ini berguna untuk menyimpan
14
data yang terkait dengan instruksi PUSH (memasukkan data ke stack) dan POP (mengeluarkan data dari stack) atau alamat-alamat kode program yang diselamatkan pada saat terjadi pemanggilan subprogram atau rutin interupsi. h. Pasangan Register Timer. Register yang terkait dengan penggunaan timer adalah register TH0, TL0, TH1, TL1, TMOD dan TCON. Pasangan register TH dan TL digunakan sebagai container atau jam pasir yang menampung pulsa dengan kapasitas maksimum 65535 pulsa. Pulsa yang masuk ke dalam kontainer ini bergantung pada mode penggunaan Timer. Jika I/O device ini digunakan sebagai Timer, maka pulsa yang masuk berasal dari rangkaian klok internal dengan perioda 12 kali perioda kristal yang digunakan. Jika prosesor menggunakan kristal 12 MHz, maka perioda pulsa untuk timer 1 μs. Sedangkan jika I/O device ini digunakan sebagai Counter, maka pulsa yang masuk berasal dari pin T1 atau T0 para Port 3 (lihat gambar 2.2.). Frekuensi pulsa yang masuk melalui T1 maupun T0 tidak boleh melampaui 1/24 frekuensi kristal. i. Register-register kontrol. Yaitu register-register yang digunakan untuk mengendalikan kerja I/O device internal. Reegister tersebut antara lain register IP (Interrupt Priority) dan IE (Interupt Enable) untuk operasi interupsi, register TMOD (Timer Mode) danTCON (Timer Control) untuk operasi Timer atau Counter, register SCON untuk operasi komunikasi serial dan register PCON (Power Control) untuk pengendalian penggunaan daya listrik prosesor.
15
2.6 Struktur Port. Prosesor AT89C51 menyediakan 32-pin I/O yang dikelompokkan menjadi 4 buah Port. Setiap pin terkait langsung dengan bit tertentu yang ada pada register P0, P1, P2 atau P3 yang terletak dalam SFR. Seperti tampak pada gambar 2.6. register P0, P1, P2 dan P3 merupakan register bit addressable, setiap bit dapat diakses 2 arah (input atau output) secara terpisah tanpa mempengaruhi bit lainnya. Sebagai contoh saat P1.5 digunakan sebagai pin input, P1.4 dapat digunakan sebagai output atau sebaliknya. Port 0 Port 0 (nol) terdapat pada pin 32 s/d pin 39. Port 0 adalah port paralel 8-bit dua arah yang belum dilengkapi dengan rangkaian pull-up internal, yaitu rangkaian untuk mempertahankan harga tegangan pada saat kondisi HIGH maupun LOW. Output dari port 0 dapat mensuplai arus ke 8 buah pin TTL. Meskipun demikian, karena pin pada port 0 tidak dilengkapi dengan internal pullup, biasanya pin-pin pada port ini digunakan sebagai pin input. Selain untuk paralel port, pin-pin pada port 0 juga dapat digunakan untuk pin address maupun pin data ketika prosesor menggunakan memory atau I/O eksternal. Port 1 Port 1 terdapat pada pin 1 s/d pin 8. Port 1 adalah port paralel 8-bit dua arah yang telah dilengkapi dengan internal pull-up. Setiap pin pada port 1 dapat mensuplai arus ke 4 buah pin TTL. Seluruh pin dapat digunakan sebagai input maupun output.
16
Port 2 Port 2 terdapat pada pin 21 s/d pin 28. Port 2 adalah paralel port dua arah yang dilengkapi dengan rangkaian pull-up. Output dari port 2 dapat mensuplai arus ke 4 buah pin TTL. Selain sebagai paralel port. Port 2 juga dapat digunakan sebagai pin address (lihat gambar 2.2.). Untuk fungsi ini port 2 mengunakan
internal pull-up yang kuat. Port 3 Port 3 terletak pada pin 10 s/d 17. Port 3 adalah port paralel dua arah yang dilengkapi dengan rangkaian pull-up. Output dari port 3 dapat mensuplai arus ke 4 pin TTL. Selain itu port 3 juga memiliki fungsi lain yang dapat dilihat pada tabel di bawah ini : Tabel 2.1. Fungsi lain Port 3.
2.7 Metode Pengalamatan (addressing mode) Untuk mengakses memory atau register, prosesor 8051 memiliki beberapa cara pengalamatan, yaitu : a. Pengalamatan Register (register addressing) Cara ini hanya berlaku untuk register R0 sampai R7. Misalnya instruksi : MOV R7,22H
menyebabkan isi RAM internal alamat 22H disalin
ke Register R7.
17
b. Pengalamatan Langsung (direct addressing) Cara pengalamatan seperti ini hanya berlaku untuk RAM internal dan SFR. Pada cara ini, dalam instruksinya operand ditunjukkan oleh suatu alamat yang lebarnya 8-bit. Misalnya instruksi MOV 24H,22H
menyebabkan isi RAM internal alamat 22H disalin
ke RAM internal alamat 24H. MOV TMOD,#00010001B menyebabkan
angka
biner
00010001
dimasukkan ke register TMOD. MOV 24H,P1
menyebabkan kondisi pin pada Port 1 direkam ke
dalam RAM internal alamat 24H. c. Pengalamatan tidak langsung (indirect addressing) Cara pengalamatan ini hanya berlaku untuk RAM internal. Pada cara ini, instruksi menunjukkan suatu register yang isinya adalah alamat dari suatu operand . Misalnya, MOV @R0,22H
menyebabkan isi RAM internal alamat 22H disalin
ke RAM internal yang alamatnya tersimpan pada registe R0. d. Pengalamatan segera (immediate addressing) Cara ini berlaku untuk RAM internal dan SFR, di mana data yang akan dilibatkan tertulis langsung pada instruksinya, misalnya : MOV TMOD,#00010001B menyebabkan
angka
biner
00010001
dimasukkan ke register TMOD. MOV 24H,#22H
menyebabkan angka 22H dimasukkan ke RAM
internal alamat 24H.
18
e. Pengalamatan berindeks (indexed addressing) Biasanya cara ini digunakan untuk mengambil data yang ditulis pada memory program. Cara ini ditujukan untuk menbaca look-up table yang ada di memori program. Misalnya : MOVC A,@A+DPTR
menyebabkan data yang terletak pada memory
yang alamatnya merupakan hasil penjumlahan isi register A dengan isi register DPTR disalin ke register A.
2.8 Spesifikasi DT-51 Spesifikasi DT-51 sebagai berikut : ·
Berbasis mikrokontroler AT89S51 yang ber standar industri.
·
Serial port interface standar RS-232 untuk komunikasi antara komputer dengan board DT-51.
·
8 Kbytes non-volatile memory (EEPROM) untuk menyimpan program dan data.
·
4 por t input output (I/O) dengan kapas itas 8 bit tiap por tnya.
·
Port Liquid Crystal Display (LCD) untuk keperluan tampilan.
·
Konektor ekspansi untuk menghubungkan DT-51 dengan add-on board yang kompatibel dari Innovative Electronics.
19
2.9 Tata Letak DT-51 Gmbar 2.7 menunjukkan tata letak DT-51.
Gambar 2.7 Tata Letak DT-51
2.10 Detail Urutan Konektor Ekspansi Detail urutan masing-mas ing konektor ekspansi sebagai berikut :
20
2.11 Peta Memori DT-51 Peta Memori DT-51 menunjukkan alamat masing-masing bagian komponen seperti yang tercantum pada gambar berikut :
8Kb pertama (0000H - 1FFFH) digunakan untuk internal 4K PEROM yang berisi kernel code, sedangkan 4K sisanya reserved. 8Kb kedua (2000H - 3FFFH) digunakan untuk PPI 8255 dan hanya terpakai 4 alamat : · 2000H - Port A · 2001H - Port B · 2002H - Port C · 2003H - Control Word Register 8Kb ketiga (4000H - 5FFFH) digunakan oleh EEPROM untuk menyimpan User Code. CS3-CS7 (6000H - FFFFH) disediakan untuk ekspansi. sebelum menggunakan routine-routine LCD yang lain atau sebelum mengakses LCD.
21
CommandLCD Fungsi : Memberikan command word pada LCD Input
: ACC Command word
Command Word : DisplayClear 01H Menghapus semua tampilan pada LCD. CursorHome 02H Meletakkan cursor dan display pada posisi awal. DecCursor 04H Cursor decrement setiap kali selesai menulis atau membaca LCD. IncCursor 06H Cursor increment setiap kali selesai menulis atau membaca LCD. CDDSR 05H Cursor decrement dan display bergeser kekanan setiap kali selesai menulis atau membaca LCD. ICDSL 07H Cursor increment dan display bergeser ke kiri setiap kali selesai menulis atau membaca LCD. DisplayOff 08H Mematikan LCD display. Cursor Off 0CH Mematikan cursor. CursorOn 0EH Menghidupkan cursor. CursorBlink 0FH Cursor akan blinking. CurShLeft 10H Cursor menggeser ke kiri. CurShRight 14H Cursor menggeser ke kanan. DispShLeft 18H Display mengeser ke kiri. DispShRight 1CH Display menggeser ke kanan.
2.12 Komunikasi Serial Serial Port lebih sulit diterapkan dibandingkan dengan Paralel Port. Dalam banyak kasus, device yang dihubungkan dengan saluran serial membutuhkan sarana untuk mengubah informasi serial kembali menjadi bentuk paralel agar dapat diolah oleh prosesor, sarana ini antara lain UART (Universal Asynchronous Receive Transmit). Dilihat dari sisi software, register yang dibutuhkan untuk komunikasi serial lebih banyak dari yang dibutuhkan untuk komunikasi paralel, yaitu sekedar SPP (Standard Paralel Port).
22
Tetapi di balik itu semua, ada beberapa keunggulan Serial transfer dibandingkan dengan paralel, antara lain : 1. Kabel serial dapat lebih panjang dari kabel paralel. Serial Port mengirimkan informasi ‘1’ atau HIGH sebagai tegangan antara –3 sampai –25 volt dan informasi ‘0’ atau LOW sebagai tegangan antara +3 sampai +25 volt. Sedangkan paralel port mengirimkan LOW dalam bentuk tegangan 0 volt dan HIGH sebagai tegangan 5 volt. Sehingga serial port memiliki sinyal yang dapat berayun dengan jangkauan maksimum yang dibolehkan sebesar 50 volt, dibandingkan dengan paralel port yang hanya memiliki jangkauan maksimum 5 volt saja. Sehingga kehilangan tegangan pada kabel serial tidak menjadi masalah berarti dibandingkan dengan masalah yang dialami oleh kabel paralel. 2. Jumlah kabel yang dibutuhkan untuk kabel serial jauh lebih sedikit dibandingkan kabel paralel. Tiga utas kabel (Tx, Rx dan Ground) untuk komunikasi serial jelas lebih sedikit dibandingkan dengan 19 sampai 25 utas kabel untuk komunikasi paralel. Meskipun kita jjuga harus memperhitungkan iinterfacing atau antarmuka yang dibutuhkan pada ujung kabel. 3. Infra Red devices atau peralatan elektronik yang menggunakan cahaya infra merah telah mulai populer, antara lain electronic diary atau buku harian elektronik, komputer palmtop dll. Tentu saja transfer data melalui infra red lebih mudah diterapkan jika dilakukan secara serial, bukan paralel 8-bit yang membutuhkan satu saluran infra red untuk setiap bit. IrDA-1, spesifikasi infra red yang pertama, dapat mentransfer data dengan baudrate 115.2 kilo baud dan telah dikaitkan (interfaced into) dengan UART (Universal Asynchronous Receive
Transmit).
Penggunaan
mikrokontroler
atau
single
chip
microprocessor juga sudah populer, beberapa di antaranya sudah dilengkapi
23
dengan Serial Communication Interface, misalnya prosesor Intel 8051 yang dilengkapi dengan built in USART. Dengan fasilitas seperti ini prosesor dapat berkomunikasi dengan prosesor lain melalui 2 kabel saja, yaitu TxD dan RxD, tidak seperti komunikasi paralel yang paling tidak membutuhkan 8 kabel belum termasuk kabel strobe dan status. Satu di antara beberapa standar untuk komunikasi serial adalah RS-232. Komunikasi RS-232 dilakukan secara asinkron (asynchronous), yaitu komunikasi serial yang tidak memiliki clock bersama antara pengirim dan penerima, masingmasing dari pengirim maupun penerima memiliki clock sendiri. Yang dikirimkan dari pengirim ke penerima adalah data dengan baudrate tertentu yang ditetapkan sebelum komunikasi berlangsung. Setiap word atau byte disinkronkan dengan start bit, stop bit dan clock internal masing-masing pengirim atau penerima.
Gambar 2.8. Gelombang informasi untuk komunukasi serial. Gambar 2.8 memperlihatkan bentuk gelombang komunikasi serial dengan format 8N1, yaitu 8-bit data, tanpa parity, 1 stop bit. Pada keadaan idle atau menganggur, jalur RS-232 ditandai dengan mark state atau Logika HIGH. Pengiriman data diawali dengan start bit yang berlogika 0 atau LOW, berikutnya data dikirimkan bit demi bit mulai dari LSB (Least Significant Bit) atai bit ke-0. Pengiriman setiap byte diakhiri dengan stop bit yang berlogika HIGH. Gambar 2.8. memperlihatkan kondisi LOW setelah stop bit, ini adalah start bit yang menandakan data berikutnya akan dikirimkan. Jika tidak ada lagi data yang ingin dikirim, maka jalur transmisi ini akan dibiarkan dalam keadaan
24
HIGH. Ada yang disebut ‘Break Signal’, yaitu keadaan LOW yang lamanya cukup untuk mengirimkan 8-bit data. Jika pengirim menyebabkan jalur komunikasi dalam keadaan seperti ini, penerima akan menganggap ini adalah ‘break signal’ atau sinyal rusak. Data yang dikirimkan dengan cara seperti pada gambar 10.1 ini disebut data yang terbingkai (to be framed) oleh start dan stop bit. Jika stop bit dalam keadaan LOW, berarti telah terjadi framing error. Biasanya hal ini terjadi karena perbedaan kecepatan komunikasi antara pengirim dengan penerima. Di antara sarana penting yang ada pada Intel 8051 adalah UART atau dikenal dengan nama serial Port. Ini berarti kemudahan dalam akses jalur komunikasi serial, programmer cukup menulis dan membaca data dari register khusus bernama SBUF tanpa harus susah payah mengatur pengiriman data bit demi bit dengan baudrate tertentu. Sebelum komunikasi berlangsung, harus dilakukan dulu inisialisasi register-register tertentu pada SFR yang terkait dengan komunikasi serial termasuk penentuan baudrate. Saat proses pengiriman maupun penerimaan data sedang berlangsung, kosong dan penuhnya SBUF akan diberitakan melalui bit indikator TI dan RI. Pemantauan TI dan RI dapat dilakukan dengan atau tanpa melibatkan sistem interupsi. Melakukan setting mode komunikasi. Sebelum komunikasi dilakukan, programmer harus melakukan setting komunikasi serial pada 1 atau 2 register. Jika komunikasi dilakukan dengan cara sinkron (Synchronous Communication), register yang disetting cukup SCON, tetapi jika komunikasi dilakukan dengan cara asinkron (Asynchronous
25
Communication), register yang harus disetting bukan hanya SCON, tetapi juga TMOD, TH1 dan 1-bit pada register PCON. SCON (serial control) adalah Register Fungsi Khusus (Special Function Register) yang digunakan untuk menentukan tipe komunikasi yang diinginkan. Tabel 10.1. memperlihatkan bit yang ada dalam register SCON beserta fungsinya masing-masing. Tabel 2.2 Isi register SCON. Bit ke-
Nama bit
Address
Explanation of Function
7
SM0
9F
Serial port mode bit 0
6
SM1
9E
Serial port mode bit 1.
5
SM2
9D
Multiprocessor Communications Enable
4
REN
9C
Receiver Enable.
3
TB8
9B
Transmit bit 8. The 9th bit to transmit in mode 2 and 3.
2
RB8
9A
Receive bit 8. The 9th bit received in mode 2 and 3.
1
TI
99
Transmit Flag. Set when a byte has been completely transmitted.
0
RI
98
Receive Flag. Set when a byte has been completely received.
Sebagai tambahannya, tabel 2.2 berisi mode komunikasi serial yang sesuai dengan keadaan bit-bit SM0 dan SM1. Tabel 2.3 Mode komunikasi serial berdasarkan bit pada SM0 dan SM1 SM0
SM1
Serial Mode
Explanation
Baud Rate
0
0
0
8-bit Shift Register
Oscillator / 12
0
1
1
8-bit UART
Terkait dengan Timer 1
1
0
2
9-bit UART
Oscillator / 32 or / 64
1
1
3
9-bit UART
Terkait dengan Timer 1
26
Bit ke-7 sampai bit ke-4 pada SCON merupakan bit konfigurasi. Seperti tampak pada Tabel 2.12.2, setting bit SM0 dan bit SM1 memungkinkan kita memilih 1 dari 4 mode komunikasi. Mode 0 berarti komunikasi asinkron dengan kecepatan transfer 1/12 kali frekuensi osilator. Jika kita menggunakan osilator 12 MHZ, berarti kecepatan transfernya 1 Mbaud. Mode 1 adalah mode yang palign sering dipilih. Pada mode ini, komunikasi dilakukan secara asinkron dengan baudrate ditentukan berdasarkan setting pada Timer 1. Jika mode 1 ini dipilih, Timer 1 harus diset pada mode 8-bit autoreload. Pengisian register TH1 dan bit SMOD pada register PCON menentukan baudrate yang akan berlaku pada komunikasi serial tipe ini. Mode 2 dan 3 adalah mode komunikasi serial dengan bingkai atau frame berukuran 9-bit. Karena 1-byte data hanya terdiri dari 8-bit, bit kesembilan diambil dari bit TB8 atau RB8 pada register SCON. Bit TB8 adalah bit yang ditambahkan ketika dilakukan transmit atau pengiriman data, sedangkan bit RB8 ditambahkan ketika prosesor sedanga menerima atau receive data. Bit SM2 hanya digunakan untuk komunikasi multiprosesor. Biasanya, jika prosesor sedang berperan sebagai penerima data, saat SBUF penuh, bit RI akan berubah menjadi HIGH. Tetapi jika SM2 diset HIGH, maka perubahan RI menjadi HIGH ini bergantung pada bit ke-9 yang diterima, jika bit ke-9 ini HIGH, maka RI juga ikut menjadi HIGH. Meskipun SBUF telah penuh, jika bit ke-9 LOW, maka bit indikator RI tidak akan berubah menjadi HIGH. Hal seperti ini berguna pada aplikasi tertentu yang melibatkan beberapa prosesor untuk berkomunikasi antar mereka. Dengan kata lain setting SM2 bisa membuat prosesor bersangkutan menjadi tuli, tidak menghiraukan datangnya data pada
27
SBUF karena memang data tersebut bukan untuknya tetapi untuk prosesor lainnya yang ada pada jalur komunikasi serial yang sama. Bir REN atau Receive Enable diset jika kita ingin komunikasi berlangsung 2 arah, prosesor juga dapat menerima data selain dapat mengirim data melalui saluran serial. Jika bit ini diset LOW, maka prosesor menjadi tuli, sama sekali tidak dapat menerima data. Empat bit LSB pada register SCON merupakan bit-bit operasional. Bit TB8 dan bit RB8 terkait dengan komunikasi serial mode 2 dan 3 seperti telah dijelaskan sebelumnya. Sedangkan bit RI dan TI merupakan bit indikator yang menyatakan SBUF telah dalam keadaan penuh atau kosong. Jika prosesor mengirim data, data tsb cukup diletakkan di register SBUF, pengiriman bit demi bit dilakukan oleh internal USART. Saat SBUF kosong karena semua bit telah dikirimkan ke saluran serial TxD, maka bit indikator TI (transmit interrupt) akan berubah menjadi HIGH. Sedangkan bit indikator RI bekerja sebaliknya. Ketika prosesor sedang menerima data bit demi bit dari saluran serial RxD, bit indikator RI (receive interrupt) akan berubah menjadi HIGH saat SBUF telah dipenuhi 8-bit data. Perlu dicatat bahwa sebenarnya bit TI diset HIGH pada pertengahan pengiriman stop bit, sedangkan bit RI diset pada pertengahan penerimaan stop bit. Untuk komunikasi dengan standard RS-485 programmer tidak boleh melakukan disable saluran komunikasi terlalu cepat, ia harus menunggu paling tidak selama setengah periode stop bit setelah RI atau TI berubah menjadi HIGH, jika tidak, maka akan terjadi transmission error.
28
Setting untuk menentukan baudrate. Seperti tampak pada tabel 2.12.2, penentuan kondisi bit SM0 dan SM1 berakibat pada pilihan 1 dari 4 mode komunikasi serial. Mode 0 dan 2 menggunakan baudrate yang hanya bergantung pada frekuensi osilator. Pada mode 0, hanya satu macam baudrate yang diizinkan, yaitu 1 frekuensi kristal. 12
Jika kita menggunaka kristal 11.0592 Mhz, baudrate untuk mode 0 adalah 921600 baud. Untuk mode 2, disediakan 2 pilihan baudrate, yaitu 1 atau 1 32
kali
64
frekuensi kristal, bergantung pada kondisi bit SMOD pada register PCON. Jika SMOD diset HIGH, maka baudrate sama dengan 1 kali frekuensi kristal. Jika 32
frekuensi kristal 11.0592 Mhz dan SMOD diset LOW, maka baudrate untuk mode 2 adalah 172800 baud. Untuk mode 1 dan 3, penentuan baudrate harus melibatkan Timer 1. Timer 1 harus digunakan dengan mode 8-bit autoreload dan pengisian TH1 harus disesuaikan dengan baudrate yang diinginkan. Rumus untuk menentukan isi TH1 terkait dengan budrate yang diinginkan adalah sebagai berikut.
TH 1 = 256 −
f XTAL , jika bit SMOD pada register PCON diset LOW. 384.BAUD
TH 1 = 256 −
f XTAL , jika bit SMOD = HIGH. 192.BAUD
Misalnya, jika kita menggunakan kristal 11.0592 Mhz, untuk memperoleh baudrate 19200 baud, TH1 harus diisi dengan angka berikut ini, TH1 = 256 - ((f / 384) / Baud) TH1 = 256 - ((11059200 / 384) / 19200) TH1 = 256 - ((28,799) / 19200)
29
TH1 = 256 - 1.5 = 254.5 Tetapi karena TH1 harus diisi dengan bilangan integer, maka kita harus memilih pembulatan dari 254.5 menjadi 254 atau 255. Jika kita pilih TH1 = 254, maka baudrate yang akan kita peroleh adalah 14400 baud, sedangkan jika kita pilih TH1 = 255, maka baudratenya menjadi 28800 baud. Tentu saja ini menyulitkan kita. Untuk mengatasinya, kita dapat memanfaatkan bit SMOD pada register PCON. Jika SMOD diset HIGH, maka perhitungan TH1 menjadi seperti berikut ini, TH1 = 256 - ((f / 192) / Baud) TH1 = 256 - ((11059200 / 192) / 19200) TH1 = 256 - ((57699) / 19200) TH1 = 256 - 3 = 253 Karena yang diperoleh adalah bilangan integer, yaitu 253, maka baudrate yang kita peroleh akan sama dengan 19200 baud. Secara ringkas, untuk memperoleh baudrate 19200 baud, kita harus melakukan langkah-langkah berikut ini, 1. Pilih komunikasi serial mode 1 atau 3. 2. Pilih mode 2 atau 8-bit autoreload untuk Timer 1. 3. Isi register TH1 dengan bilangan 253. 4. Set bit SMOD pada register PCON menjadi HIGH. Mengirim dan menerima data melalui saluran serial. Secara ringkas, pengiriman data cukup dilakukan dengan mengisi register SBUF dengan data yang akan dikirimkan, byte selanjutnya dikirim ketika bit TI berubah menjadi HIGH. Sedangkan penerimaan ada cukup dilakukan dengan mengambil data dari SBUF setelah bit RI menjadi HIGH.
30
Berikut ini adalah contoh potongan program tanpa interupsi untuk mengirimkan 8-byte data dari RAM mulai alamat 30H melalui saluran serial TxD dengan kecepatan transfer 19200 baud. Frekuensi kristal yang digunakan harus 11.0592 MHz. $MOD51 DSEG ORG 30H Buffer: DS Loop:
10 DS
1
;pesan tempat 10-byte pada RAM mulai 30H ;sebagai counter pengulangan
CSEG ORG 0H LJMP START ORG 30H START: MOV SCON,#01010000B MOV TMOD,#00100001B MOV PCON,#10000000B MOV TH1,#253 MOV TL1,#253 SETB TR1 MOV R1,#buffer MOV Loop,#8 Ulang: CLR TI MOV SBUF,@R1 JNB TI,$ INC R1 DJNZ Loop,ulang
;copy data dari RAM internal ke SBUF
END Jika kita ingin mengambil 8-byte data dari saluran serial RxD kemudian meletakkannya di RAM mulai alamat 30H, maka potongan programnya sebagai berikut,
31
$MOD51
DSEG ORG 30H Buffer: DS Loop:
10 DS
1
;pesan tempat 10-byte pada RAM mulai 30H ;sebagai counter pengulangan
CSEG ORG 0H LJMP START ORG 30H START: MOV SCON,#01010000B MOV TMOD,#00100001B MOV PCON,#10000000B MOV TH1,#253 MOV TL1,#253 SETB TR1 MOV R1,#buffer MOV Loop,#8 Ulang: JNB RI,$ MOV @R1,SBUF CLR RI INC R1 DJNZ Loop,ulang
;copy data dari SBUF ke RAM internal
END
Menghubungkan pin TxD dan RxD dengan konektor DB9. Untuk melakukan komunikasi serial dengan standar RS-232, harus dilakukan penyesuaian level sinyal dari level TTL menjadi level RS-232 menggunakan IC tertentu, misalnya DS 275 atau MAX232. Gambar 10.2. di bawah ini merupakan contoh penggunaan IC MAX232 untuk menyesuaikan tegangan dari prosesor dengan tegangan standar RS-232 yang melalui konektor DB9. Pin TxD dari prosesor dihubungkan dengan pin T1IN pada MAX232, sedangkan pin RxD dari prosesor dihubungkan dengan pin R1OUT pada MAX232.
32
Gambar 2.9 Contoh penggunaan IC pengubah level sinyal. Gambar 2.9 memperlihatkan contoh sambungan prosesor AT89C2051 dengan konektor DB9. Karena prosesor terhubung juga dengan driver stepper motor, maka dapat dibuat program untuk memungkinkan pengendalian stepper tersebut melalui saluran serial. Informasi dapat berasal dari PC maupun alat lainnya seperti handphone.
Gambar 2.10 Contoh sambungan antara DB9 dengan prosesor AT89C2051.
33
Menghubungkan prosesor Intel 8051 dengan Personal Computer. Berikut ini adalah contoh potongan program yang menggunakan interupsi untuk komunikasi anta prosesor Intel 8051 dengan sebuah Personal Computer melalui konektor DB9. Gambar 10.4. memperlihatkan software yang digunakan untuk komunikasi serial pada PC, sedangkan gambar 10.5. adalah contoh setting format data dan baudrate yang diinginkan.
Gambar 2.11 Penggunaan program Hyper Terminal pada Windows XP.
Gambar 2.12 Penentuan konektor DB9 (kiri) dan baudrate (kanan)
34
Untuk menerima data dari PC, prosesor Intel 8051 harus diisi dengan program penerimaan data dari PC seperti tampak pada listing berikut ini, PENERIMAAN DATA DARI PC $MOD51 ORG
000H
LJMP
START
ORG
023H
;alamat awal program ;alamat awal ISR untuk Komunikasi Serial
LJMP SERIALKOM START:
MOV
SCON,#50H
MOV
TMOD,#0010000B
MOV
TL1,#0FDH
MOV
TH1,#0FDH
MOV
PCON,#00H
SETB
TR1
SETB
ES
SETB
EA
SJMP
$
SERIALKOM: CLR
;baud rate 9600 bps
RI
MOV
A,SBUF
MOV
P1,A
RETI END PENGIRIMAN DATA KE PC $MOD51 ORG
000H
LJMP
START
ORG
023H
;alamat awal program ;alamat awal ISR untuk Komunikasi Serial
LJMP SERIALKOM START:
CLR
ET1
MOV
SCON,#40H
MOV
TMOD,#0010000B
MOV
TL1,#0FDH
MOV
TH1,#0FDH
35
;baud rate 9600 bps
MOV
PCON,#80H
SETB
TR1
SETB
ES
SETB
EA
MOV
A,#’1’
CLR
TI
MOV
SBUF,A
SJMP
$
SERIALKOM: CLR
;kode ASCII untuk angka ‘1’
TI
MOV
SBUF,A
CJNE
A,#’9’,PLUS
MOV
A,#’1’
SJMP
EXIT
PLUS:
INC
A
EXIT:
RETI END
PENERIMAAN DAN PENGIRIMAN DATA. Program ini memungkinkan prosesor Intel 8051 menerima data dari PC, kemudian langsung mengembalikannya ke PC. $MOD51
ORG
000H
LJMP
START
;alamat awal program
ORG
023H
;alamat awal ISR untuk Komunikasi Serial
LJMP SERIALKOM START:
CLR
ET1
MOV
SCON,#50H
MOV
TMOD,#0010000B
MOV
TL1,#0FDH
MOV
TH1,#0FDH
MOV
PCON,#00H
SETB
TR1
SETB
ES
36
;baud rate 9600 bps
SETB
EA
SJMP
$
SERIALKOM: CLR
RI
MOV
A,SBUF
CLR
TI
MOV
SBUF,A
JNB
TI,$
CLR
TI
RETI END
37
BAB III PERANCANGAN ALAT
Dalam bab ini akan dibahas cara kerja setiap blok rangkaian dan cara kerja sistem secara keseluruhan. Pembahasan dilakukan mulai dari perencanaan perangkat keras sampai perencanaan perangkat lunak.
3.1 Blok Diagram
PC
Mikrokontroler
DAC
Ossiloskop
Gambar 3.1 Blok Diagram Sistem
Cara kerja dari skema blok diagram diatas adalah sebagai berikut : Bila program yang telah kita buat di dalam PC kita jalankan maka besaran hasil keluran sinyal dalam pengolahan komputer dalam bentuk digital. Data didalam mikroprosesor selalau berbentuk digital. Ini berbeda dari kenyataan dunia luar yang lazimnya mengenal data analog. Untuk mendapatkan data analog kita membutuhkan suatu converter digital ke analog (D/A), piranti ini melakukan konversi tegangan atau konversi arus digital menjadi suatu kata analog. Kemudian keluaran dari Konverter digital analog akan ditampilkan oleh Ossiloscope sesuai bentuk sinyal yantg kita inginkan. Dibawah ini adalah gambar generator sinyal terprogram.
38
Gambar 3.2 generator siyal
250 200 150 100 50 0 0
100
200
Gambar 3.3 sinyal sinus dan sinyal segitiga
Rumus untuk Sinyal Segitiga: fx = IF ( An < 32,4 × An + 128, IF ( An < 96,−4 × ( An − 64) + 128, IF ( An < 160,4 × ( An − 128) + 128, IF ( An < 224,−4 × ( An − 192) + 128,4 × ( An − 256) + 128)))) Rumus untuk Sinyal Sinus 0 :
fx = (128 + 128 × Sin( An ×
π 128
))
39
3.2 konverter Digital Analog
Pada pengendalian digital, besaran hasil pengolahan komputer dalam bentuk digital. Besaran ini harus di ubah menjadi besaran analog sesuai dengan kebutuhan mesin yang akan dikendalikan ( misalnya motor yang kecepatannya harus dikendalikan ). Untuk keperluan ini dibutuhkan converter digital ke analog. Pada umumnya, unsure konvereter D/A ini terdiri atas rangkaian resistor, yang mengubah setiap bit sinyal masukan menjadi arus yang sesuai. Jumlah masing-masing arus tersebut mengalir ke resistor yang mengubahnya menjadi tegangan yang proporsional. Konverter digital analog (DAC) yang paling banyak dipergunkan adalah jenis rangkaian tangga R-2R ( R-2R ladder network ). Disebut R-2R karena resistor yang dipergunakan hanya dua nilai yaitu senilai R dan dan dua kalinya. Disini hanya hanya diperlukan dua macam nilai hambatan, sehingga masalah jangkauan nilai hambatan dapat diatasi. Lebih lanjut, karena hambatanhamabatan berada pada serpih yang sama, mereka memiliki karakteristik yang hampir identik. Hal ini memperkecil persoalan toleransi. Dengan kata lain, dengan bertambahnya jumlah bit, rangkaian tangga terpadu dapat membagi arus secara jauh lebih teliti dari pada rangakaian yang diberi bobot biner. Rangkaian dasar dari DAC R-2R tersebut dapat dilihat pada gambar berikut di bawah ini.
⎛ 2R ⎛ ⎞ ⎛ 2R ⎛ ⎛ 2R ⎛ ⎞⎞⎞⎞⎞⎞ ⎛ 2R Vin = ⎜ x⎜ D3 + ⎜ x⎜⎜ D 2 + ⎜⎜ x⎜⎜ D1 + ⎜ xD0 ⎟ ⎟⎟ ⎟⎟ ⎟⎟ ⎟ ⎟ ⎟ ⎜ 4R ⎜ ⎜ 4R ⎟⎟⎟ 4R ⎝ 4R ⎠ ⎝ ⎠ ⎠ ⎝ ⎝ ⎠ ⎝ ⎠⎠⎠ ⎝ ⎝
40
Gambar 3.4 rangkaian dasar converter digital analog R-2R
3.3 Rangkaian Minimum Mikrokontroler AT89C51
Untuk
menjalankan
mikrokontroler
AT89C51
dibutuhkan
sebuah
rangkaian minimum agar mikrokontroler tersebut dapat bekerja dengan baik. Rangkaian minimum mikrokontroler terdiri dari rangkaian reset dan rangkaian osilator.
Gambar 3.5 Rangkaian Sistem Minimum Mikrokontroller AT89C51
41
Pada rangkaian sistem minimum mikrokontroller AT89C51 inilah yang akan mengontrol kinerja dari suatu sistem. Rangkaian I/O dari mikrokontroller mempunyai kontrol direksi yang tiap bitnya dapat dikonfigurasikan secara individual, maka dalam pengkonfigurasian I/O yang digunakan ada yang berupa operasi port ada pula yang dikonfigurasi tiap bit I/O. Berikut ini akan diberikan konfigurasi dari I/O mikrokontroller tiap bit yang ada pada masing-masing port yang terdapat pada mikrokontroller.
3.4 Downloader DT-51
DT-51 adalah alat pengembangan mikrokontroler keluarga MCS-51TM yang sederhana, handal, dan ekonomis. DT-51 berbentuk sistem minimum dengan komponen utamanya mikrokontroler AT89S51. DT-51 memungkinkan Anda bereksperimen sendiri mengembangkan aplikasi digital dengan mudah. Anda bebas berkreasi dengan menulis software (perangkat lunak) pada komputer, kemudian men-download ke board DT-51, dan menjalankannya. Bila software Anda telah selesai, maka DT-51 langsung dapat bekerja sendir i (stand-alone) pada sis tem yang ada tanpa penggantian / penambahan komponen. Dan yang lebih penting lagi DT-51 telah dilengkapi dengan debugger DT51D sehingga kesalahan software lebih mudah dilacak. Siapapun yang ingin menguasai mikrokontroler keluarga MCS-51 dengan cepat dan benar maka DT-51 dan debugger DT51D merupakan suatu keharusan. Satu hal lagi untuk membuat downloader bias bekerja yaitu peracang harus menyiapkan adaptor, tegangan yang dibutuhkan downloader DT-51 yaitu 9V AC,perancang bisa membuat dengan trafo 1A, dan menggunakan tegangan keluaran 9V AC dari trafo.
42
Untuk menggunakan downloader pada DT-51 langkah yang pertama yang dilakukan adalah copy seluruh data pada CD program ke folder baru c: (hardisk) Misalnya c:\ DT-51. Data yang berisikan pada CD program adalah data-data yang dibutuhkan pada proses download program ke Atmel seperti uniprog, Asm51 dan lainnya. Langkah selanjutnya Masukkan CD program ke CD-ROM, Bukalah DOS Prompt dan ubahlah drive ke dr ive CD-ROM, Ubahlah direktori ke direktori program DT-51: DT51MS (untuk DT-51 MinSys ver 3.3), DT51F (untuk DT-51 PetraFuz), kemidian kita Jalankan program instalasi dengan mengetik: install [source drive:] [destination drive:], misalkan: "install d: c:". Ikuti petunjuk yang ditampilkan pada layar monitor, Trafo 9V AC dihubungkan dengan konektor 9VAC pada board DT-51 lalu geser swich on, aktif atau tidaknya downloader ditandai oleh lampu led,apabila aktif (on) maka lampu led akan menyala, apabila tidak aktif (off) lampu led akan padam. Hubungkan kabel serial, konektor DB9 Male ke board DT-51 dan DB9 Female ke komputer (COM1 / COM2). Jumper reset RES SLCT berada pada posisi download [1-2]. Periksa sekali lagi apakah semua hubungan sudah betul, jika sudah hubungkan trafo dengan tegangan AC yang sesuai. Lampu merah indicator akan menyala.file-file yang ada pada CD program.
3.5 Program
Perangkat lunak atau lebih dikenal dengan software merupakan salah satu terperting dalam pembuatan Konverter Digital Analog, software yang digunakan untuk pembuatan Konverter Digital Analog adalah JFE, yang memiliki kemampuan untuk menggambungkan antara satu software dengan yang lainnya, sedangkan bahasa pemrograman yang digunakan adalah bahasa Assembler.
43
3.5.1 Program Debugger DT51D DT51D adalah program debugger / pencari kesalahan untuk board DT-51.
Dengan menggunakan DT51D Anda dapat dengan cepat dan mudah menemukan bug / kesalahan dalam program Anda. Kemampuan DT51D antara lain : 1. Step, yaitu menjalankan program Anda instruksi demi instruksi, dimana setiap kali selesai menjalankan satu instruksi seluruh isi register, flag dapat terlihat pada monitor PC. 2. Trace, hampir sama dengan Step hanya Trace tidak masuk instruksi demiinstruksi dalam procedure, sehingga Anda dapat melakukan step dengan lebih cepat. 3. Goto
Cursor,
yaitu
menjalankan
program
sampai
pada
posisi
Andameletakkan cursor. 4. Bahkan Anda dapat menjalankan program Anda secara keseluruhan dariDT51D dengan fasilitas Run. 5. Memory Dump, dimana Anda dapat memonitor isi memori setiap kalisatu instruksi dijalankan, bahkan Anda dapat menentukan sendiri range memori yang akan Anda monitor. 6. Watches, dimana Anda dapat memonitor variabel-variabel penting padaprogram Anda, dimana setiap watch akan ter-refresh isinya setiap kalimelaksanakan satu instruksi. 7. Multiple Breakpoint, di mana Anda dapat menentukan breakpoint dimana saja pada program Anda. 8. Modify, di mana Anda dapat dengan mudah memodifikasi isi register,flag, memori setiap kali Anda membutuhkannya. 9. On-line Help, yang memudahkan Anda dalam menggunakan DT51D.
44
10. Dengan
debugger
yang
berorientasi
windowsTM,
Anda
dapat
melakukanproses debug / pencarian kesalahan dengan mudah dan cepat.
3.5.2 Program Downloader DT51L
DT51L adalah program downloader untuk DT-51. Fungsi downloader adalah untuk mentransfer program assembly Anda secara serial dari komputer keboard DT-51 dan menginstruksikan board DT-51 untuk menjalankan program tersebut. Setelah Anda selesai membuat program assembly dan mengcompile-nya menjadi file berformat Intel Hex (file ekstension .HEX) Anda dapat mendownload-nya ke board DT-51 menggunakan DT51L dengan syntax sebagai berikut : Nama file yang akan Anda download ke board DT-51, dimana antara DT51L dan nama file harus dipisahkan dengan minimum 1 spasi. Filename dapat memuat path file (asalkanjumlah karakter dari path file + nama file tidak melebihi 50 karakter), file ekstension .hex boleh tidak dicantumkan. Jika nama file yang Anda maksudkan tidak ada, maka Anda akan menerima pesan kesalahan. Bila Anda tidak mencantumkan parameter sama sekali, maka DT51L akan mendownload file dengan aturan default yaitubaudrate dan serial port dicari secara otomatis, option fast download aktif, serta option verify tidak aktif. Penulisan parameter harus dipisahkan dengan minimum satu spasi, demikian juga antara nama file dan parameter yang pertama. Di bawah ini adalah jenis parameter yang dikenali oleh DT51L. Parameter baudrate, dimana xxxxx dapat dipilih antara 19200 : menggunakan baudrate 19200 bps 9600 : menggunakan baudrate 9600 bps 4800 : menggunakan baudrate 4800 bps 2400 : menggunakan baudrate 2400 bps Parameter port komunikasi serial, dimana x dapat dipilih
45
Antara : menggunakan COM1 (alamat 3F8H) menggunakan COM2 (alamat 2F8H) Disable fast download option parameter. Bila dicantumkan maka downloader akan mematikan option fast download. Default dari DT51L adalah mengaktifkan fast download option. Fast download option hanya dapat digunakan Untuk memori jenis Static (SRAM, 62CXXX type) dan EEPROM jenis 28CXXB, sedangkan untuk EEPROM jenis 28CXX Anda tidak dapat menggunakan option fast download. (catatan : semua board DT-51 MinSys Ver 3.3 menggunakan EEPROM 28C64B dari pabriknya). Enable verify option parameter. Bila dicantumkan downloader akan mengaktifkan option verify. Verify menjamin proses download data dari kesalahan / data corrupt, tetapi waktu download akan sedikit lebih lama. Parameter untuk menjalankan program selftest. Program akan memeriksa jenis memori yang dipakai (SRAM dan EEPROM 28CXXB akan dikenali sebagai 28C64B sedangkan yang lain dikenali sebagai 28C64), kemudian melakukan serangkaian prosedur uji pada board DT-51. Apabila parameter –s / -S ini dicantumkan Anda tidak perlu menuliskan nama file. Anda dapat menggunakan parameter ini pada saat per tama kal i mencoba DT-51. Parameter untuk menampilkan file help untuk DT51L, file help ini akan otomatis keluar bila terjadi kesalahan penulisan dalam syntax DT51L. Apabila parameter –h / -H / -? Ini dicantumkan, Anda tidak perlu menuliskan nama file. Untuk berlatih menggunakan program DT51L Anda dapat menjalankan DT51L dengan memakai file contoh
yang terdapat pada CD program yaitu
TESPORT.HEX, TESPPI.HEX, TESLCD.HEX, dan TESSER.HEX. Akan lebih nyaman bila Anda meng-install Doskey pada PC Anda sehingga Anda tidak perlu menuliskan perintah DT51L berulang-ulang.
46
3.6 Perencanaan Pembuatan Program
Program ditulis dalam bahasa Asm yang kemudia dikonversi dalam Format hex sebelum diisikan kedalam Mikrokontroller AT89C51. Flowchart
Mulai
Ambil Data dari PC
Kirim data
Tampilkan
Selesai
47
BAB IV PENGUJIAN ALAT
Setelah perangcangan alat telah dijelaskan pada bab sebelumnya, pada bab ini akan dijelaskan pengujian yang akan dilelaskan setelah alat yang dibuat selesai dirakit. Setelah semua komponen dipasang dengan baik,maka selanjutnya pemeriksaan penyolderan dan dari hasil pengujian ini dapat diketahui apakah alat tersebut sudah bekerja dengan baik atau tidak.
4.1 Jenis-jenis Pengujian Alat Pada bagian ini memberikan hasil pengamatan dalam melakukan suatu pengujian pada Konverter Digital Analog sehingga didapat kinerja alat tersebut. Pengujian yang dilakukan meliputi: 1. Pengukuran keluaran dari Konverter Digital Analog 2. Pengukuran keluaran pada port 1
3. Pengujian sinyal pada Osilloscope dan PC
4.2 Pengukuran Keluaran dari Konverter Digital Analog Pengukuran ini bertujuan untuk mengetahui dari konverter digital analog. Peralatan yang digunakan : •
Sumber tegangan AC 9 Volt
•
Downloader DT-51
•
Rangakaian DAC
48
Langkah-langkah pengukuran 1. Nyalakan sumber tegangan AC 9 Volt 2. Ukur keluran pada rangkaian Konverter Digital Analog setelah rangkaian tersambungkan pada rangkaian DT – 51. Data pengukuran keluaran DAC DAC Output
Output 8 Bit Mikrokontroller AT89C51 D7
D6
D5
D4
D3
D2
D1
D0
( Volt )
0
0
0
0
0
0
0
I
0,01
0
0
0
0
0
0
I
0
0,02
0
0
0
0
0
I
0
0
0,05
0
0
0
0
1
0
0
0
0,10
0
0
0
I
0
0
0
0
0,20
0
0
1
0
0
0
0
0
0,41
0
I
0
0
0
0
0
0
0,83
I
0
0
0
0
0
0
0
1,81
Tabel 4.1 Data pengukuran keluaran DAC
4.3 Pengujian sinyal pada Osilloscope Setelah pengukuran keluaran dari Konverter Digital Analog dilanjutkan lagi dengan pengukuran keluran pulsa dari port 1, port yang digunakan adalah port 1 set skala pada osiloscope 2 mV VOLT/ DIV dan A 2mS TIME/ DIV. Dan Sinyal yang di hasilkan berupa sinyal sinus, segitiga dan persegi. Karena dihasilkan secara digital, sinyal yang dihasilkan memiliki besaran yang cukup konsisten, baik simpangan maupun fasanya Sedikit cacat pada sinyal antara lain disebabkan oleh pembulatan dengan resolusi 5/256 volt, atau sinyal digital 8-bit yang mewakili sinyal analog berjangkauan 0-5 volt.
49
Gambar 4.1 Sinyal Sinus yang di hasilkan Osilloscope
Gambar 4.2 Sinyal Segitiga yang di hasilkan Osilloscope
Gambar 4.3 Sinyal Persegi yang di hasilkan Osilloscope
50
4.4 Pengujian sinyal pada PC Setelah Pengukuran sinyal pada oscilloscope maka kita dapat mengrtahui sinyal yang di hasilkan pada PC. Sinyal yang dihasilkan dapat kita ubah – ubah jenis sinyal dan frekuensi yang dihasilkan oleh generator sinyal. Pada saat frekuensi yang kita inginkan 10,20,50, dan 100 hanya sedikit perubahan disebabkan oleh timer yang sangat cepat sehingga perubahan frekuensinya tidak beruhah.
Gambar 4.4 Sinyal Sinus yang di tampilkan PC
Gambar 4.5 Sinyal Segitiga yang di tampillkan PC
51
Gambar 4.6 Sinyal Persegi yang di tampilkan PC
52
53
BAB V KESIMPULAN DAN SARAN
Pada bab ini akan dibahas mengenai hasil dan kelemahan dari alat yang telah dibuat. Setelah melakukan perencanaan, pembuatan dan implementasi sistem ”Penghasil Sinyal Terprogram”, kemudian dilakukan pengujian dan analisa maka dapat diambil kesimpulan dan saran-saran sebagai berikut:
5.1 Kesimpulan Dari hasil pengujian yang telah dilakukan, maka dapat diambil beberapa point penting sebagai kesimpulan dari pembuatan Penghasil Sinyal Terprogram, yaitu: 1. Alat yang dirancang dapat menghasilkan beragam bentuk dan frekuensi sinyal 2. Karena dihasilkan secara digital, sinyal yang dihasilkan memiliki besaran yang cukup konsisten, baik simpangan maupun fasanya 3. Sedikit cacat pada sinyal antara lain disebabkan oleh pembulatan dengan resolusi 5/256 volt, atau sinyal digital 8-bit yang mewakili sinyal analog berjangkauan 0-5 volt.
53
5.2 Saran Pada perencanaan, pembuatan dan pengujian sistem ”penghasil sinyal terprogram”, masih terdapat beberapa kelemahan, sehingga perlu diperbaiki untuk penyempurnaan. Saran untuk pengembangan lebih lanjut pada sistem penghasil sinyal terprogarm ini adalah 1. Dalam pembuatan alat penghasil sinyal terprogram masih banyak kekurangan dan belum sempurna. 2. Bahwa secara konsep alat penghasil sinyal terproram sudah bekerja dengan benar hanya saja masih banyak terdapat banyak kekurangan sehingga perlu dilakukan beberapa perbaikan sehingga alat penghasil sinyal terprogram dapat jauh lebih baik.
54
DAFTAR PUSTAKA
1. Malvino, Albert Paul, Elektronika Komputer Digital, Edisi Kedua, Erlangga, Jakarta, 1989. 2. Malvino, Albert Paul, Prinsip – prinsip Elektronika, edisi Ketiga, Jilid I, Penerbit Erlangga, Jakarta, 1992. 3. S, Wasito. Data IC Linier, TTL dan CMOS, Data Sheet Book 1, PT ELEX Media Komputindo Kelompok Gramedia, Jakarta.
55