Anda di halaman 1dari 41

BAB II LANDASAN TEORI

2.1.

Mikrokontroler AT89S51 Dalam tugas akhir ini digunakan mikrokontroler AT89S51. AT89S51 adalah mikrokontroler dengan 4 Kbyte Flash Memory. Mikrokontroler AT89S51 merupakan mikrokontroler yang sesuai dengan keluarga mikrokontroler standar industri MCS-51. Dimana MCS-51 adalah keluarga IC mikrokontroler yang dikembangkan, dibuat dan dipasarkan oleh perusahaan Intel. Adapun fasilitas yang dimiliki oleh mikrokontroler MCS-51 ini adalah : 1.Memiliki 4 Kbyte memori program ( ROM ) 2.128 byte RAM. 3.4 buah port I/O 8 bit. 4.Memiliki serial interface. 5.64 Kbyte ruang memory eksternal. 6.Beroperasi pada tegangan antara 4 Vdc 5 Vdc. Mikrokontroler AT89S51 hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang bisa disimpan). Semua produk mikrokontroler AT89S51 dari Atmel memiliki ruang alamat memori data dan program yang terpisah. Pada gambar 2.1. merupakan diagram blok AT89S51

Gambar 2.1. Diagram blok AT89S51 Register adalah penampung data sementara yang terletak didalam CPU. Pada bagian-bagian diagram blok yang memiliki AT89S51, diantaranya berfungsi sebagai berikut : 1. Akumulator Akumulator merupakan register serbaguna. Hampir semua operasi aritmatik dan operasi logika selalu menggunakan akumulator. Untuk proses pengambilan dan pengiriman data ke memori eksternal juga menggunakan akumulator.

Regiter B Register B digunakan pada operasi perkalian dan pembagian. Pada instruksi-instruksi yang lain berfungsi seperti register umumnya. Program Status Word (PSW) Program Status Word (PSW) berisi bit-bit status yang berkaitan dengan kondisi Central Processing Unit (CPU) pada saat pengeksekusian instruksi.

Gambar 2.2 Program Status Word (PSW) Status yang tersimpan pada Program Status Word (PSW) terdiri atas : a. Bit Carry Flag (CF) Carry Flag terletak pada alamat D7H mempunyai fungsi sebagai pendeteksi mengandung carry (lebih) pada operasi penjumlahan atau mengandung terjadi proses borrow (kurang) pada operasi pengurangan. Apabila operasi ini mengandung carry, bit ini akan diset agar bernilai satu, sedangkan jika mengandung borrow, bit ini akan diset agar bernilai nol. b. Bit Auxiliary Carry (AC) Bit ini menunjukan adanya carry pada saat operasi aritmatika dari bit ketiga hingga bit keempat. c. Bit Flag 0 (F0) Flag 0 digunakan untuk tujuan umum bergantung pada kebutuhan pemakai. d. Bit Register Select (RS) Register Bank Select Bits (RS0 dan RS1) atau Bit Pemilih Register Bank digunakan untuk menentukan lokasi dari register R0 sampai R7 pada

memori. RS0 dan RS1 selalu bernilai nol setiap kali sistem di reset sehingga lokasi R0 sampai R7 akan berada di alamat 00H sampai 07H. 4. Stack Pointer (SP) Stack Pointer terdiri dari 8 bit. Alamat SP ditambah atau dinaikkan sebelum data disimpan pada eksekusi instruksi PUSH dan CALL. SP dapat diletakkan pada alamat manapun di on-chip RAM. 5. Data Pointer (DPTR) DPTR terdiri dari high byte (DPH) dan low byte (DPL). Fungsi utamanya adalah sebagai tempat alamat 16 bit. 6. Timer Register Pasangan register (TH0 & TL0), (TH1 & TL1), serta (TH2 & TL2) adalah register 16 bit untuk proses perhitungan timer 0, 1, dan 2. AT89S51 mempunyai dua buah register timer 16 bit : timer 0 dan timer 1. Keduanya dapat beroperasi sebagai timer. Pada fungsi 'timer', isi register ditambah satu setiap siklus mesin, seperti menghitung siklus mesin. Karena satu siklus mesin terdiri dari 12 periode osilator, maka kecepatannya i = 1/12 frekuensi osilator. Untuk mengenali transisi 1 ke 0 ini dibutuhkan 2 siklus mesin (24 periode osilator), maka input maksimum ialah 1/24 frekuensi osilator. 7. Register Control SFR IP, IE, TMOD, TCON, T2CON, SCON, dan PCON berisi bit kontrol dan status untuk sistem interupt, timer / counter, dan port serial. 8. Serial data Buffer (SBUF) Serial Data Buffer sebenarnya merupakan dua register terpisah, yaitu transmit buffer dan receive buffer. Saat data dipindahkan ke SBUF, SBUF berfungsi sebagai transmit buffer yang digunakan sebagai media penyimpanan data yang akan dikirimkan secara serial. Ketika data diambil dari SBUF, SBUF menjadi receive buffer. 9. Special Function Register (SFR) Special function register merupakan bagian dari internal data memory yang berada pada lokasi 128 byte pada 80H - FFH. Special function register adalah register-register yang digunakan untuk proses internal dari CPU itu sendiri. Semua register kecuali Program Counter (PC) terletak di Special function register, register-register ini hanya dapat diakses dengan pengalamatan langsung (Direct Addressing).

Tabel 2.1. Special function register Simbol * ACC *B * PSW SP DPTR DPL DPH * P0 * P1 * P2 * P3 * IP * IE TMOD TCON THO TL0 TH1 TL1 * SCON SBUF PCON Nama Accumulator B Register Program Status Word Stack Pointer Data Pointer 2 Bytes Low Byte High Byte Port 0 Port 1 Port 2 Port 3 Interupt Priority Control Interupt Enable Control Timer / Counter Mode Control Timer / Counter Control Timer / Counter 0 High Byte Timer / Counter 0 Low Byte Timer / Counter 1 High Byte Timer / Counter 1 Low Byte Serial Control Serial Data Buffer Power Control Lokasi Memori 0E0H 0F0H 0D0H 81H 82H 83H 80H 90H 0A0H 0B0H 0B8H 0A8H 89H 88H 8CH 8AH 8DH 8BH 98H 99H B7H

Special function register yang ditandai dengan tanda * dapat dialamati secara bit maupun byte. Gambar 2.3. merupakan struktur memori AT89S51, dimana memori pada mikrokontroler keluarga MCS-51 dibagi menjadi dua bagian, yaitu : a. Program memori Mikrokontroler AT89S51 mempunyai 4 Kbyte internal program memori. Untuk memakai internal program memori, maka pin EA harus diberi level logic high, untuk mengakses eksternal program memori maka bit EA diberi logic low. b. Data memory

Mikrokontroler AT89S51 mempunyai dua bagian data memori yaitu internal data memory dan eksternal data memori. Eksternal data mempunyai fungsi yang hampir sama dengan program memori, namun pada eksternal memori dapat dilakukan proses pembacaan dan penulisan data.
M EM O R I PR O G R A M (H A N Y A B A C A )

M EM O R I D A TA (B A C A / T U L IS ) FFFFh :

FFFFh :

EK STER N A L EK STER N A L

IN T E R N A L FFh :

EA = 0 EK STER N A L

EA =1 IN T E R N A L

0000

00

0000

PSEN

R D

R W

Gambar 2.3. Struktur memori AT89S51 Program memory dan data memory terpisah secara logika, dengan membedakan sinyal yang mengaktifkannya Untuk mengakses program memory digunakan sinyal PSEN, sedangkan untuk data memory digunakan sinyal RD dan WR. Dimana pemisahan memori program dan memori data tersebut membolehkan memori data diakses dengan alamat 8-bit, sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi oleh CPU 8-bit, yang mengakibatkan memori program hanya bisa dibaca, sedangkan memori data dapat dibaca dan ditulis. Terdapat memori program yang bisa diakses langsung hingga 64K byte. Gambar 2.4. konfigurasi pin AT89S51 yang mempunyai 40 pin, 32 pin diantaranya adalah pin untuk keperluan port paralel. Satu port paralel terdiri dari 8 pin, dengan demikian 32 pin tersebut membentuk 4 buah port paralel, yang masing-masing pin dari port paralel mulai dari 0 sampai 7, pin pertama port 0 disebut sebagai P0.0 dan jalur terakhir untuk port 3 adalah P3.7.

AT89S51 merupakan mikrokontroler produksi Atmel yang sama dengan MCS-51. Konfigurasi pinnya adalah :

P 1 .0 P 1 .1 P 1 .2 P 1 .3 P 1 .4 P 1 .5 P 1 .6 P 1 .7 RST (R X D ) (T X D ) (IN T 0 ) (IN T 1 ) (T O ) (T 1 ) (W R ) (R D ) P 3 .0 P 3 .1 P 3 .2 P 3 .3 P 3 .4 P 3 .5 P 3 .6 P 3 .7

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

VCC P 0 .0 P 0 .1 P 0 .2 P 0 .3 P 0 .4 P 0 .5 P 0 .6 P 0 .7 EA / V PP A L E /P R O G PSEN P 2 .7 P 2 .6 P 2 .5 P 2 .4 P 2 .3 P 2 .2 P 2 .1 P 2 .0 (A 1 5 ) (A 1 4) (A 1 3 ) (A 1 2 ) (A 1 1 ) (A 1 0 ) (A 9 ) (A 8 ) (A D 0 ) (A D 1 ) (A D 2 ) (A D 3 ) (A D 4 ) (A D 5 ) (A D 6 ) (A D 7 )

XTA L2 XTA L1 GND

Gambar 2.4. Konfigurasi pin AT89S51 Fungsi dari masing-masing kaki (pin) adalah : 1. 2. 3. VCC GND RST RST berada pada pin 9. Reset akan aktif dengan memberikan masukan high selama 2 siklus mesin osilator bekerja akan mereset mikrokontroler yang bersangkutan. 4. ALE/PROG ALE/PROG berada pada pin 30. ALE (Address Latch Enable) akan menghasilkan pulsa-pulsa (aktif) pada saat mengakses memori eksternal. ALE 10 Vcc berada pada pin 40 yang berfungsi untuk Power Supply. GND berada pada pin 20 berfungsi sebagai ground atau pertahanan.

(Address Enable Eksternal) berfungsi untuk me-latch low byte address pada saat mengakses memori internal selain itu ALE (Address Enable Eksternal) berfungsi sebagai masukan pulsa program atau PROG selama pemograman flash. 5.PSEN PSEN (Program Store Enable) berada pada pin 29 yang berfungsi sebagai sinyal baca untuk memori program eksternal. Saat mikrokontroler menjalankan program dari memori eksternal, PSEN (Program Store Enable) akan diaktifkan dua kali siklus mesin. 6.EA/Vpp EA/Vpp berada pada pin 31 yang harus selalu berhubungan dengan ground, jika mikrokontroler akan mengekseskusi program dari memori eksternal lokasi 0000h hingga FFFFh. Selain dari itu, EA harus dihubungkan ke Vcc agar mikrokontroler mengakses program secara internal. Pin ini juga berfungsi menerima tegangan 12 Vdc (Vpp). 7. XTAL Semua mikrokontroler MCS-51 Atmel memiliki osilator on-chip, yang dapat digunakan sebagai sumber detak (clock). Menggunakan sebuah kristal diantara kaki-kaki XTAL1 dan XTAL2 pada mikrokontroler dan kapasitornya di hubungkan ke ground, XTAL1 dan XTAL2 berada pada pin 19 dan 18 dan C1 = 30 pF, C2 = 10 pF. Pada gambar 2.5 rangkaian Kristal pada AT89S51.

Gambar 2.5. Rangkaian Kristal pada AT89S51 Sedangkan spesifikasi dari masing-masing port adalah : 1. Port 0

11

Port 0 berfungsi sebagai I/O. Sebagai port keluaran, masing-masing kaki dapat menyerap arus (sink) delapan masukan TTL (sekitar 3,8 mA). Pada saat 1 dituliskan ke kaki-kaki port ini, maka kaki-kaki port 0 dapat digunakan sebagai masukan-masukan berimpedansi tinggi. Port 0 juga dapat dikonfigurasikan sebagai bus alamat atau data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. maka digunakan pada port 0 memiliki pull up internal. Selain itu Port 0 menerima kode-kode yang dikirimkan kepadanya selama proses pemograman dan mengeluarkan kode-kode selama proses verifikasi program yang telah tersimpan dalam flash. Dalam hal ini dibutuhkan pull up eksternal selama proses vertifikasi program. 2. Port 1 Port 1 berfungsi sebagai I/O dwi arah yang dilengkapi dengan pull up internal. Penyangga keluran Port 1 mampu memberikan /menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika 1 dituliskan ke kaki-kaki Port 1, maka masing-masing kaki akan di-pulled high dengan pull up internal sehingga dapat digunakan sebagai masukan. Sebagai masukan, jika kaki-kaki Port 1 dihubungkan ke ground (di-pulled low), maka masing-masing kaki akan memberikan arus karena di-pulled high secara internal. Port 1 juga menerima alamat low byte selama pemograman dan vertifikasi flash. 3. Port 2 Port 2 berfungsi sebagai I/O dwi arah dengan dilengkapi pull up internal. Penyangga keluaran Port 2 mampu memberikan atau menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika 1 dituliskan ke kaki-kaki Port 2, maka masing-masing kaki akan di-pulled high dengan pull up internal sehingga dapat digunakan sebagai masukan. Sebagai masukan, jika kaki-kaki Port 2 dihubungkan ke ground (di-pulled low), maka masing-masing kaki akan memberikan arus karena di-pulled high secara internal. Port 2 akan memberikan byte alamat bagian tinggi selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 16-bit (misalnya:MOVX @DPTR). Dalam aplikasi ini, jika ingin mengirimkan 1, maka digunakan pull up internal yang sudah disediakan. Selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 8-bit (misalnya:MOVX 12

@Ri), Port 2 akan mengirimkan isi dari Special function register (SFR) P2. Port 2 juga menerima alamat bagian tinggi selama pemrograman dari verifikasi flash. 4. Port 3 Port 3 berfungsi sebagai I/O dwi arah dengan dilengkapi pull up internal. Selain untuk port paralel, Port 3 juga dipakai untuk berbagai macam keperluan sarana yang khusus seperti pewaktu (timer), pencacah (counter) dan interupsi. Penyangga keluaran Port 3 mampu memberikan atau menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika 1 dituliskan ke kaki-kaki Port 3, maka masing-masing kaki akan di-pulled high dengan pull up internal sehingga dapat digunakan sebagai masukan. Sebagai masukan, jika kaki-kaki Port 3 dihubungkan ke ground (di-pulled low), maka masing-masing kaki akan memberikan arus karena di-pulled high secara internal. Port 3 sebagaimana Port 1 memiliki fungsi-fungsi alternatif antara lain menerima sinyal-sinyal kontrol (P3.6 dan P3.7), bersama-sama dengan Port 2 (P2.6 dan P2.7) selama pemograman vertifikasi flash. 2.2 Bahasa Assembly Sebagaimana dinyatakan dalam bab I, mikrokontroler dapat mengontrol alat apabila telah diprogram oleh bahasa assembly. Bahasa assembly adalah sebuah program yang terdiri dari instruksi-instruksi yang menggantikan kodekode biner dari bahasa mesin dengan mnemonik yang mudah diingat. Misalnya sebuah instruksi penambahan dalam bahasa mesin dengan kode 10110011 yang dalam bahasa assembly dapat dibuat dalam instruksi mnemonik ADD, sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam setiap instruksi membutuhkan suatu operand baik berupa data langsung maupun suatu lokasi memori yang menyimpan data yang bersangkutan. Bahasa assembly sering juga disebut kode sumber atau kode simbolik yang tidak dapat dijalankan oleh prosesor, sedangkan assembler adalah suatu program yang dapat menerjemahkan program bahasa assembly ke program bahasa mesin. bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Program bahasa mesin sering disebut sebagai kode objek. Baris-baris program yang mengandung instruksi mesin atau pengarah assmbler harus mengikuti aturan program assembler ASM51. Masing-masing 13

baris atas beberapa field yang dipisahkan dengan spasi atau tabulasi adalah bagian label, bagian mnemonic, bagian operand yang bisa lebih dari satu bagian komentar dan diakhiri dengan END. 1. Label Label merupakan suatu simbol yang didefinisikan sendiri oleh pembuat program untuk menandai lokasi memori pada area program. Simbol dan label adalah dua hal yang berbeda. Simbol tidak menggunakan titik dua, sedangkan label harus diakhiri dengan titik dua. Contoh : PAR EQU 500 ; PAR Menunjukan suatu simbol ; dari nilai 500 MULAI: MOV A, #0FFh ; pada label; Mulai nilai 0FFh ; dipindahkan ke Akumulator Dalam satu baris hanya ada satu label, pada umumnya Assembler membatasi jumlah karakter yang bisa digunakan hingga 31 karakter. 2. Mnenonik Mnemonic instruksi atau pengarah Assembler dimasukan dalam Mnemonic field yang mengikuti label mnemonic. Mnemonic instruksi misalnya ADD, MOV, INC dan lain-lain.Sedangkan pengarah Assembler misalnya ORG, EQU, DB dan lain-lain. 3. Operand Operand ditulis setelah mnemonic, bisa berupa alamat atau data yang digunakan instruksi yang bersangkutan. Contoh : MOV LAGI: JNB 4. Komentar Komentar harus diawali dengan titik koma. Sub rutin dari bagian besar program yang mengerjakan suatu operasi biasanya diawali dengan blok komentar yang menjelaskan fungsi sub rutin atau bagian besar program tersebut. 14 LAGI ; LAGI adalah operand A, #20h ; A dan #20h adalah operand

5. End Petunjuk END merupakan kode perintah terakhir yang menunjukan batas akhir dari proses Assembly. Instruksi yang sering digunakan dalam pembuatan program yaitu : 1. Instruksi Aritmatik Instruksi aritmatik selalu melibatkan akumulator dan ada juga beberapa instruksi yang melibatkan register lain. Berikut ini contoh instruksiinstruksi arimatika yaitu: Tabel 2.2. Instruksi-instruksi aritmatik Instruksi ADD A,Rn ADD A, direct ADD A, #data ADD A, @Rn ADDC A, #data SUBB A, Rn INC A DEC A MUL AB DIV AB Keterangan Menambah isi register Rn dengan isi akumulator lalu disimpan di akumulator Menambah isi direct dengan akumulator, hasilnya disimpan di akumulator Menambahkan immediate data ke akumulator Menambahkan isi dari alamat yang ditunjuk Rn dengan akumulator Menambahkan immediate data ke akumulator dengan carry Kurangkan isi register Rn dari akumulator Tambah isi akumulator dengan 1 Kurangkan isi akumulator denga 1 Kalikan isi A dengan isi B, low-byte disimpan pada akumulator, dan high byte pada B Bagi isi A dengan isi B. Akumulator menerima hasil integer pembagian dan B menerima integer sisanya. Instruksi Logika Contoh ADD A,R1 ADD A, 30H ADD A, #20H ADD A, @R1 ADDC A, #20H SUBB A, R1 INC A DEC A MUL AB DIV AB

2.

Instruksi Logika ini dipakai untuk melakukan operasi logika, yaitu operasi AND (instruksi ANL), operasi OR (instruksi ORL), operasi Exclusive-OR (instruksi XRL), operasi clear (instruksi CLR), instruksi komplemen (instruksi CPL), operasi penggeseran kanan atau kiri (instruksi RR, RRC, RL dan RLC) serta operasi penukaran data (instruksi SWAP). Data yang dipakai dalam operasi ini biasanya berupa data yang berada dalam akumulator atau data yang berada dalam memori data. 3. Instruksi Pemindahan Data

15

Instruksi instruksi pemindahan data adalah : Tabel 2.3. Instruksi instruksi perpindahan data. Instuksi MOV A, Rn MOV A,direct MOV A , #data MOV A, @Rn Keterangan Memindahkan isi register Rn ke akumulator Memindahkan isi direct byte ke akumulator Mengisi akumulator dengan nilai data Mengisi akumulator dengan isi dari alamat yang ditunjuk oleh Rn Contoh MOV A, R0 MOV A, 30h MOV A,#20h MOV A, @R0

2.2.1 Mode Mode Pengalamatan 1. Mode Pengalamatan Langsung Dalam pengalamat langsung nilai yang akan disimpan dalam suatu memori diperoleh secara langsung dengan mengambil dari lokasi memori yang lain. Contoh : MOV A,30H 2. ; isi akumulator dengan bilangan 30 heksadesimal suatu Mode Pengalamatan Tak Langsung Dalam pengalamatan tak langsung, instruksi menentukan register yang digunakan untuk menyimpan alamat operan. Contoh : ADD A,R DEC @R1 3. ; tambahkan isi RAM yang lokasinya ditunjukan oleh ; register R1 ke akumulator. ; kurangi satu isi RAM yang alamatnya ditunjukan ; oleh register R1. Mode Pengalamatan Segera Contoh : MOV A,#20H ; isi akumulator dengan bilangan 20 heksadesimal Cara ini menggunakan konstanta.

Data konstanta merupakan data yang menyatu dengan instruksi, contoh intruksi diatas mempunyai arti bahwa data konstantanya, yaitu 20H, (sebagai data konstanta harus diawali dengan # dan tanda H untuk menyatakn format bialngan heksadesimal) disalin ke Akumulator (A). 4. Mode Pengalamatan Data 16

Pengalamatan data terjadi pada sebuah perintah ketika nilai operasi merupakan alamat data yang akan diisi atau yang akan dipindahkan. Contoh : MOV P1,A 5. ; isi P1 dari nilai akumulator. Mode Pengalamatan Bit Pengalamatan bit adalah penunjukkan menggunakan simbol titik (.) yang menunjuk alamat lokasi bit, baik dalam RAM internal atau perangkat keras. Contoh : SETB P1.7 2.3 Sensor Suhu LM35DZ LM35DZ adalah IC yang khusus digunakan untuk sensor suhu. LM35DZ tidak memerlukan kalibrasi eksternal ataupun timing khusus, dengan rentang pengukuran antara 0 sampai dengan 100 oC. Sensor ini mempunyai karakteristik yang linear yaitu pada 10 mVdc/oC. Pada saat suhu 0oC, output sensor LM35DZ mengeluarkan tegangan 0 Vdc. Setiap kenaikan 1oC, output sensor LM35DZ akan naik sebesar 10 mVdc, sensor LM35DZ membutuhkan tegangan power supply sebesar 4 - 20 Vdc. DT-51 I2C ADDA mempunyai tegangan referensi 2,5 Vdc untuk 8 bit data, jadi setiap kenaikan satu bit adalah 2,5 Vdc / 256 = 9,77 mVdc, oleh karna itu tegangan referensi ini harus dikalibrasi terlebih dahulu dengan cara memutar variabel resistor (VR1) pada DT-51 I2C ADDA menjadi 2,56 Vdc. Dari perhitungan 2,56 Vdc / 256 = 10 mVdc maka kenaikan per bit =10 mVdc. Contoh : untuk suhu 30 derajat celcius maka tegangan = 0,3 Vdc dan data yang dibaca dari DT-51 I2C ADDA adalah bilangan binary dari 30 = 00011110b. ; set bit port 1.7 high ( pot 1.7 diberi nilai logika 1)

Gambar IC LM35DZ dengan kemasan plastik tampak bawah terdapat pada gambar 2.6a tipe aplikasi LM35DZ pada gambar 2.6b Untuk melihat susunan kaki IC LM35DZ pada gambar 2.7.

17

(a) IC LM35DZ tampak bawah

(b)

Tipe aplikasi LM35DZ

Gambar 2.6 Sensor suhu IC LM35DZ

Gambar 2.7 Susunan Kaki LM35DZ Pin Vout dihubungkan dengan Analog Input 0 (AIN 0) DT-51 I2C ADDA, +Vs dihubungkan dengan +5Vdc, dan GND dihubungkan dengan GND. 2.4 DT-51 Sistem Minimum Versi 3.3 DT-51 adalah alat pengembangan mikrokontroler keluarga MCS-51 yang sederhana. DT-51 berbentuk sistem minimum dengan komponen utamanya mikrokontroler AT89S51. Pada gambar 2.8 merupakan tata letak DT-51 sistem minimum.Untuk diagram blok DT-51 Sistem Minimum versi 3.3 pada gambar 2.9 dan pada gambar 2.10 menjelaskan detail urutan masing-masing konektor ekspansi.

2.4.1 Spesifikasi DT-51 Sistem Minimum versi 3.3. Spesifikasi DT-51 Sistem Minimum versi 3.3 sebagai berikut : Berbasis mikrokontroler AT89S51 yang berstandar industri. Serial port interface standar RS-232 untuk komunikasi antara

komputer dengan board DT-51.

18

8 Kbytes non-volatile memory (EEPROM) untuk menyimpan 34 port input output (I/O) dengan kapasitas 8 bit tiap portnya. Port Liquid Crystal Display (LCD) untuk keperluan tampilan

program dan data.

karakter. 2.4.2 Tata Letak DT-51 Sistem Minimum versi 3.3

Gambar 2.8. Tata letak DT-51 Sistem Minimum versi 3.3 1. Tegangan yang digunakan adalah DC, posisi kaki positif dan negatif penyearah (bridge). 2. Konektor DB-9 Female yang bertandakan SERIAL PORT dihubungkan dengan COM1 atau COM2 komputer melalui kabel serial. DT-51 sistem minimum ver 3.3 memiliki kabel serial dengan hubungan cross (pin 2 dihubungkan dengan pin 3 ujung yang lain dan sebaliknya). 3. Port yang bertandakan DATA & CS digunakan untuk ekspansi peripheral atau memory. AD0 hingga AD7 dihubungkan ke bagian Data pada peripheral yang berfungsi sebagai jalur input atau output antara AT89S51 dengan peripheral tersebut. CS dihubungkan dengan pin yang berfungsi sebagai Chip Enable pada peripheral. Masing-masing CS dapat dihubungkan dengan peripheral dengan boleh

berkebalikan karena pada DT-51 sistem minimum telah terdapat rangkaian dioda

19

kapasitas hingga 8 Kbytes. CS1 telah dihubungkan ke PPI 8255 dan CS2 telah dihubungkan ke EEPROM AT28C64. CS0 memang tidak dihubungkan dengan peripheral apapun juga namun alamat 0000h 0FFFh telah digunakan untuk kernel pada AT89S51. 4. Port yang bertandakan ADDRESS juga digunakan untuk ekspansi peripheral. A0 hingga A15 dihubungkan ke bagian Address pada peripheral. Beberapa peripheral mungkin tidak membutuhkan semua pin address, misalnya PPI 8255 yang hanya membutuhkan A0 dan A1 atau EEPROM 28C64 yang hanya membutuhkan A0 hingga A12. Port yang bertandakan CONTROL berfungsi sebagai input untuk external interrupt dan counter. Pada port tersebut juga terdapat jalur kontrol WR, RD, MRD, dan RST yang digunakan untuk ekspansi peripheral. WR dihubungkan dengan pin yang berfungsi sebagai Write atau Write Enable pada peripheral. RD dihubungkan dengan pin yang berfungsi sebagai Read atau Output Enable pada peripheral. MRD dihubungkan dengan pin yang berfungsi sebagai Read atau Output Enable pada peripheral yang berfungsi sebagai program memory sekaligus sebagai data memory. RST dihubungkan dengan pin yang berfungsi sebagai Reset pada peripheral. Pada port ini juga terdapat VCC (5VDC) dan GND (ground) yang dapat digunakan sebagai sumber tegangan untuk rangkaian tambahan yang akan dihubungkan ke DT-51 sistem minimum versi 3.3. 5. Port yang bertandakan PORTA & PORTB berasal dari PPI 8255 yang berfungsi sebagai jalur input atau output data. Sebelum menggunakan port tersebut, harus ada proses inisialisasi PPI untuk menentukan apakah port tersebut berfungsi sebagai input atau output. Sebagai contoh, port ini dapat dihubungkan dengan rangkaian saklar (sebagai input) atau LED (sebagai output). 6. Port yang bertandakan PORTC & PORT1 sebagian berasal dari PPI 8255 (Port C) dan sebagian berasal dari AT89S51 (Port 1). Kedua port ini juga berfungsi sebagai jalur input atau output data. Sebelum menggunakan port C, harus ada proses inisialisasi PPI untuk menentukan apakah port ini berfungsi sebagai input atau output. Penggunaan port 1 tidak perlu inisialisasi. Namun jika port 1 ingin digunakan sebagai input, umumnya semua pin diberi nilai awal 1 saklar (sebagai input) atau LED (sebagai output). (P1 bernilai 0FFh). Sebagai contoh, port ini dapat dihubungkan dengan rangkaian

20

7. Port yang bertandakan LCD berfungsi sebagai jalur input atau output data modul LCD. Back light bersifat opsional. LCD tanpa back light pun dapat digunakan asalkan kompatibel. Penggunaan LCD berhubungan erat dengan VR Pengatur Kecerahan LCD yang berada di dekat jumper RES SLCT. Jika VR diputar searah jarum jam, LCD akan makin cerah (warna hitam semakin pudar). Sebaliknya, jika VR diputar berlawanan arah jarum jam, LCD akan makin gelap (warna hitam semakin pekat). 8. Jumper yang bertanda RES SLCT berfungsi untuk menentukan mode operasi DT-51 MinSys. Posisi pin 1 dan 2 terhubung adalah untuk mode download sedangkan posisi pin 2 dan 3 terhubung adalah untuk mode stand alone. Pada mode stand alone, program tidak akan dapat di-download ke DT-51 sistem minimum versi 3.3. Pada blok diagram DT-51 Sistem Minimum versi 3.3 memiliki bagian bagian yang terdiri dari : a. Mikrokontroler AT89S51 1. CPU 8 bit yang dioptimasi untuk aplikasi kontrol. 2. 4 Kbytes Flash Programmable and Erasable Read Only Memory (PEROM). 3. 128 bytes Internal RAM. 4. Serial Port yang dapat diprogram. 5. 32 jalur input output yang dapat diprogram.

Port 1

LCD

Mikrokontrolel AT89S51

Demux

Memori Eksternal

Data Bus

TTL RS 232 Converter

Address Decoder
Port A

Programmable Peripheral Interface


Port B Port C

21

Address Bus

Serial Communication

Gambar 2.9. Blok diagram DT-51 Sistem Minimum versi 3.3 Detail urutan masing-masing konektor ekspansi sebagai berikut :

Gambar 2.10. Urutan masing-masing konektor ekspansi.

b.

Demux (Demultiplekser)

22

Sistem multipleks ini sering dijumpai pula pada arsitektur mikrokontroler lain dengan tujuan untuk menghemat jumlah pin sehingga bentuk fisik mikrokontroler menjadi lebih kecil. Untuk itu diperlukan demultiplekser yang akan memisahkan jalur data dan jalur alamat bagian bawah. Jalur alamat bagian bawah bersama-sama dengan jalur alamat bagian atas (high order address byte) membentuk jalur alamat 16 bit (address bus), sehingga mampu mengalamati memori sampai kapasitas 64K bytes. c. Address Decoder Sistem berbasis mikroprosesor atau mikrokontroler pada umumnya mempunyai lebih dari satu device atau peripheral seperti memori, input dan output, Analog to Digital Converter (ADC), dan lain-lain. Masingmasing device ini perlu diberi alamat. Demikian pula dengan mikrokontroler, supaya dapat mengakses suatu device maka mikrokontroler tersebut harus mengetahui alamat device yang akan diakses. Address decoder akan memberikan alamat untuk tiap device. Pada DT-51 Sistem Minimum versi 3.3, address decoder memberikan alamat pada memori eksternal dan Programmable Peripheral Interface (PPI) serta menyiapkan beberapa alamat lagi untuk device-device lain bila ditambahkan. d. Memori Eksternal Selain PEROM dan internal RAM yang terdapat pada AT89S51, DT-51 Sistem Minimum versi 3.3 juga mempunyai memori eksternal berjenis EEPROM (Electrically Erasable Programmable Read Only Memory) dengan kapasitas 8 Kbytes untuk menyimpan 'user program' yang didownload dari PC atau data. Sesuai dengan namanya maka EEPROM dapat ditulis dan dihapus secara elektrik, mirip seperti RAM namun bersifat non volatile sehingga data yang tersimpan dalam EEPROM tidak hilang meskipun catu daya dimatikan.

23

Berikut tabel 2.4 ini yang merupakan perbandingan memori dari keluarga Atmel : Tabel 2.4. Perbandingan memori dari keluarga Atmel.
Nama Memori Program Memori Data Teknologi

AT89C1051 AT89C2051 AT89C51 AT89C52 AT89S51 AT89C55 AT89S252 AT89S53

1 Kb 2 Kb 4 Kb 8 Kb 4 Kb 20 Kb 8 Kb 12 Kb

64 RAM 128 RAM 128 RAM 256 RAM 128 RAM 256 RAM 256 RAM 256 RAM

CMOS CMOS CMOS CMOS CMOS CMOS CMOS CMOS

e. (PPI)

Programmable Peripheral Interface PPI berfungsi sebagai I/O Expander yang dapat diprogram. PPI

yang digunakan mempunyai 24 bit jalur input output yang dapat dihubungkan dengan peralatan atau device lain. 24 bit I/O ini dibagi menjadi 3 port yaitu Port A, Port B, dan Port C. TTL - RS 232 Converter DT-51 Sistem Minimum versi 3.3 berkomunikasi dengan PC secara serial. Proses download dan debugging dilakukan melalui serial port. AT89S51 mempunyai sebuah serial port dengan level standar TTL. Supaya bisa berkomunikasi dengan serial port PC (COM1/COM2) yang mempunyai level standar RS-232, maka diperlukan konverter Level TTL ke RS-232. f. LCD Port LCD (Liquid Crystal Display) Port ini disiapkan untuk men-drive LCD melalui Port 1 mikrokontroler AT89S51. Rutin untuk keperluan LCD sudah tersedia pada PEROM AT89S51 sehingga user tinggal memakainya. g. Data, Address, dan Control Bus DT-51 Sistem Minimum mempunyai data bus dengan lebar 8 bit, serta address bus 16 bit. Sedangkan control bus yang digambarkan pada blok diagram DT-51 Sistem Minimum versi 3.3 terdiri dari beberapa sinyal kontrol, antara lain : RD, WR, PSEN, ALE, serta chip select yang

24

dihasilkan oleh address decoder. DT-51 Sistem Minimum versi 3.3 dapat bekerja dalam dua mode yaitu download dan stand alone. Pada mode download, user dapat mendownload program dari PC ke DT-51 Sistem Minimum versi 3.3 dengan program download DT51L. Setelah proses download selesai, user program otomatis langsung bekerja. Sedangkan mode stand alone digunakan apabila program sudah sempurna (tidak terdapat kesalahan). Pada mode ini program yang terakhir di-download otomatis berjalan sendiri saat catu daya dihidupkan. 2.4.3 Menggunakan Built-In Routine DT-51 Sistem Minimum Ver 3.3 Pada kernel DT-51 Sistem Minimum versi 3.3 telah terdapat 2 kelompok built-in routine yaitu EEPROM dan LCD. Sebelum menggunakan rutin-rutin ini, lokasi rutin ini harus didefinisikan di awal program. A. 1. Write Contoh: MOV MOV LCALL A, #0AFH DPTR, #05FH WRITE ; pindahkan nilai AF heksadesimal ; ke Akumulator : pindahkan nilai 50 heksadesimal ; ke DPTR ; panggil isi intruksi pada WRITE EEPROM Hanya ada satu routine yaitu :

Contoh di atas akan menuliskan nilai AFh ke dalam EEPROM alamat 5F00h. B. LCD Built-in routine LCD ini berkaitan dengan adanya port LCD pada board DT51. Dengan adanya routine ini pemakaian LCD dapat dilakukan dengan cepat dan mudah. Yang perlu diingat dalam menggunakan LCD adalah port P1.2 telah digunakan sebagai LCD select sehingga tidak boleh dipakai lagi oleh user. Routine ini kompatibel dengan Modul LCD yang memakai LCD Driver HD44780 atau sejenisnya, salah satunya LCD 16 x 2. Ada 8 routine yaitu : 1. CBF Contoh: LCALL CBF ; panggil isi intruksi pada label ; CBF

25

AJMP

LCDREADY ; lompat ke label LCDREADY

Contoh di atas akan memeriksa Busy Flag LCD. Jika LCD tidak busy, program akan diteruskan ke baris berikutnya yaitu (dimisalkan) AJMP LCDREADY. Jika InitLCD dan rutin lain digunakan, rutin ini tidak perlu dipanggil. 2. InitLCD Contoh: LCALL INITLCD ; panggil isi intruksi pada label ; INITLCD Contoh di atas akan melakukan proses inisialisasi LCD untuk mempersiapkan LCD sebelum digunakan. Jika ingin menggunakan rutin LCD yang lain, rutin ini harus dipanggil terlebih dahulu. 3. CommandLCD Contoh: MOV A, #01H ; pindahkan nilai 01 heksadesimal ; ke Akumulator LCALL COMMANDLCD ; panggil isi intruksi pada label ; COMMANDLCD Contoh di atas akan menghapus semua tampilan LCD. Hal ini dikarenakan nilai 01h yang dimasukkan ke accumulator adalah nilai Command Word untuk Display Clear. Cara yang lebih mudah adalah dengan memeberi nama pada nilai 01h agar mudah digunakan. Contohnya: DisplayClear MOV A, #DisplayClear EQU 01H ; nilai constanta DisplayClear 01 ; hekesadesimal ; baris program berikutnya ; baris program berikutnya ; pindahkan isi nilai DisplayClear ; ke Akumulator LCALL COMMANDLCD ; panggil isi intruksi pada label ; COMMANDLCD 4. WriteLCD Contoh: MOV LCALL A, #41H ; pindahkan nilai 41 heksadesimal ; ke Akumulator WRITELCD ; panggil isi intruksi pada label ; WRITELCD Contoh di atas akan menuliskan (bukan berarti menampilkan) nilai 41h (kode ASCII huruf A) ke LCD. Jika alamat yang dipilih sebelumnya adalah alamat 26

Display Data Random Access Memory (DDRAM adalah alamat karakter pada layar LCD), maka pada LCD akan tampil huruf A. Jika alamat yang dipilih sebelumnya adalah alamat Character Generator Random Access Memory (CGRAM adalah alamat pada memori karakter LCD), maka pada layar LCD tidak akan tampil apa-apa karena nilai tersebut masuk ke dalam CGRAM. 5. ReadLCD Contoh: LCALL READLCD ; panggil isi intruksi pada label ; READLCD Contoh di atas akan membaca nilai yang terdapat pada alamat yang ditunjuk. Jika alamat yang dipilih sebelumnya adalah alamat DDRAM (alamat karakter pada layar LCD), maka karakter yang ditunjuk oleh alamat tersebut akan dibaca dan (kode ASCII-nya) dimasukkan ke accumulator. Jika alamat yang dipilih sebelumnya adalah alamat CGRAM (alamat pada memori karakter LCD), maka nilai pada alamat tersebut akan dibaca dan dimasukkan ke accumulator. 6. ReadAddrLCD Contoh: LCALL READADDRLCD ; panggil isi intruksi pada label ; READADDRLCD Contoh di atas akan membaca lokasi alamat yang ditunjuk. Jika alamat yang dipilih sebelumnya adalah alamat DDRAM (alamat karakter pada layar LCD), maka lokasi alamat yang ditunjuk tersebut akan dibaca dan dimasukkan ke accumulator. Jika alamat yang dipilih sebelumnya adalah alamat CGRAM (alamat pada memori karakter LCD), maka lokasi alamat tersebut akan dibaca dan dimasukkan ke accumulator. 7. SetDDRAM Contoh: MOV A, #40H ; pindahkan nilai 40 heksadesimal ; ke Akumulator LCALL SETDDRAM ; panggil isi intruksi pada label ; SETDDRAM Contoh di atas akan memindah (menunjuk) alamat DDRAM ke lokasi 40h (karakter pertama baris LCD kedua). 8. SetCGRAM Contoh: MOV A, #08H ; pindahkan nilai 80 heksadesimal ; ke Akumulator

27

LCALL SETCGRAM; panggil isi intruksi pada label ; SETCGRAM Contoh di atas akan memindah (menunjuk) alamat CGRAM ke lokasi 08h (baris pertama karakter CGRAM kedua). 2.4.4 Perangkat Lunak DT-51 Sistem Minimum Versi 3.3 Cd program DT-51 sistem minimum versi 3.3 berisi file-file berikut : 1. 2. 3. DT51L.EXE : program downloader untuk DT51. DT51D.EXE : program debugger untuk DT51. TESPORT.EXE : program uji port 1, program ini akan

mengeluarkan sinyal kotak pada P10-P17 (diperlukan osiloskop untuk melihatnya). 4. TESPPI.EXE : program uji port PPI, program ini akan mengeluarkan sinyal kotak pada Port A, Port B, dan Port C PPI (diperlukan osiloskop untuk melihatnya). 5. TSCOM1.EXE (COM1) / TSCOM2.EXE (COM2) : program uji port serial, PC mengirimkan data 0-255 ke board DT-51 Sistem Minimum versi 3.3 dan board DT-51 Sistem Minimum versi 3.3 akan mengirimkan kembali data tersebut untuk ditampilkan ke layar monitor oleh PC. 6. TESRAM1.EXE (COM1) / TESRAM2.EXE (COM2) : program uji EEPROM, bila berhasil maka pada layar monitor akan tampil pesan EEPROM Tes Looping Succeded. 7. 8. 9. TESLCD.EXE : program uji LCD, program ini akan menghasilkan TESPORT.ASM, TESPPI.ASM, TESLCD.ASM, TESSER.ASM CABLE.TXT berisi koneksi kabel serial DT-51 Sistem Minimum tulisan Innovative Electronics pada LCD. merupakan source code untuk masing-masing program. versi 3.3. 2.4.5 Penggunaan DT-51 Sistem Minimum versi 3.3 Windows Downloader Pada gambar 2.11 merupakan program DT-51 Sistem Minimum versi 3.3 Windows Downloader yang berguna untuk mengisi Flash PEROM yang ada di dalam chip AT89S51 dengan program berformat Hex yang telah dibuat.

28

Gambar 2.11. Program DT-51 Sistem Minimum versi 3.3 Windows Downloader 1. a. b. c. d. 2. Menu File : Open & Download (F9) : untuk membuka file Hex dan menRe-download (Ctrl+F9) : untuk men-download ulang file yang terakhir Option : Testing : untuk melakukan testing sesuai Testing Option Exit : keluar dari program. Toolbar : Open & Download (F9) = untuk membuka file Hex dan men- download file tersebut : Re-download (Ctrl+F9) = untuk men-download ulang file yang terakhir dibuka : Testing = untuk melakukan testing sesuai Testing Option 3. a. digunakan b. yang digunakan. Baudrate Option : untuk memilih kecepatan baud rate COM & Baud Rate COM Option : untuk memilih Serial port yang download file tersebut. dibuka.

29

4.

Auto Detect

Jika dicentang, maka COM port dan Baudrate akan dipilih secara otomatis, Jika tidak dicentang, maka COM port dan Baudrate ditentukan oleh COM Option dan Baudrate Option. 5. USB Converter (membutuhkan kernel DT-51 MinSys/PetraFuz baru) Jika menggunakan USB to Serial RS-232 Converter, maka kotak ini dicentang. Jika langsung menggunakan COM port, maka kotak ini tidak dicentang. 6. 7. Testing Option Download Algorithm Berisi pilihan prosedur testing. Berisi pilihan metode download. 2.5 DT-51 I2C ADDA DT51 I2C ADDA merupakan Analog Input Output add-on board untuk AT89S51 Development Tools DT-51 Sistem Minimum versi 3.3 menggunakan I2C-bus. DT51 I2C ADDA digunakan untuk mengubah sinyal analog seperti tegangan atau arus ke data biner dan sebaliknya. Pada gambar 2.11 menunjukan tata letak DT51 I2C ADDA. 2.5.1 Spesifikasi DT-51 I2C ADDA Untuk spesifikasi DT-51 I2C ADDA sebagai berikut : 1. 2. 3. Kompatibel penuh dengan AT89S51 Development Tools DT-51 Hanya perlu 2 jalur kabel untuk interface dengan mikroprosesor Empat channel 8 bit Analog Input (Analog to Digital Converter/ Sistem Minimum versi 3.3. atau mikrokontroler lain. ADC) yang dapat diprogram sebagai single-ended atau differential inputs. Input range : 0 2,5 volt (single ended), 1,25V (differential) 4. Satu channel 8 bit Analog Output (Digital to Analog Converter/ DAC) Input Serial I2C-bus, Output range : 0 2,5 volt.

30

5.

Setiap board DT-51 I2C ADDA dilengkapi jumper untuk setting

alamat, sehingga dapat diekspansi sampai 8 board tanpa tambahan perangkat keras. 2.5.2 Tata Letak DT-51 I2C ADDA

Gambar 2.12 Tata letak DT-51 I2C ADDA versi 2.0 DT-51 I2C ADDA ver 2.0 didisain sebagai add-on board DT-51 Sistem Minimum versi 3.3, tetapi tidak menutup kemungkinan untuk dihubungkan dengan sistem mikroprosesor / mikrokontroler yang lain. Catu daya 5 Vdc dihubungkan dengan konektor JP2 dan polaritasnya jangan sampai terbalik, karena dapat mengakibatkan kerusakan. DT-51 I2C ADDA dapat diekspansi sampai 8 board. Untuk setiap alamat board DT51 I2C ADDA ditentukan oleh setting jumper J1, J2 dan J3. Tabel 2.5 Seting jumper J1, J2 dan J3.

Jumper J4 dan J5 digunakan untuk resistor pull up SDA (I2C bus data input / output) dan SCL (I2C bus clock input). Apabila lebih dari satu board DT-51 I2C

31

ADDA dihubungkan pada I2C bus maka jumper J4 dan J5 salah satu board saja yang perlu dipasang.

Keterangan Masing Masing Konektor Sebagai Berikut ; Tabel 2.6. Detail urutan masing-masing konektor ekspansi DT-51 I2C ADDA.

Beberapa hal yang perlu diperhatikan apabila menggunakan lebih dari satu board DT-51 I2C ADDA : 1. Setiap board harus mempunyai alamat yang berbeda, ditentukan oleh jumper J1, J2, dan J3 2. Jumper J4 dan J5 pada salah satu board saja yang dipasang. Analog Input DT-51 I2C ADDA dapat dikonfigurasi sebagai single-ended input atau differential input dengan beberapa cara seperti ditunjukkan pada gambar 2.13.

32

Gambar 2.13 Konfigurasi Analog Input Persamaan konversi ADC untuk kode output N (biner) 1. Single-ended input (2.1) VAIN = tegangan input ADC (channel 0-3) 2. Differential input (2.2)

3. VAOUT

Persamaan konversi DAC untuk tegangan output analog

(2.3)

Code = 0 255 (ditempatkan di Register B dalam kode biner). VR1 dapat digunakan untuk mengatur tegangan referensi VREF yang merupakan salah satu parameter dari range input atau output. 2.5.3 Driver Dan Rutin DT-51 I2C ADDA ver 2.0 dilengkapi dengan modul ADDA.ASM yang akan mempermudah user dalam pemrograman. ADDA.ASM menggunakan resource dari mikrokontroler 89S51 sebagai berikut : 1. 2. 3. Bit addressable dengan alamat 08H-0EH Internal RAM dengan alamat 30H 38H P1.6 dan P1.7

33

Modul ini memiliki tiga rutin penting sebagai berikut : 1. InitADDA Fungsi : Untuk menginisialisasi board DT-51 I2C ADDA ver 2.0 Input : Variabel Mode, variabel Channel, flag AutoInc, flag OutputEnb, dan accumulator A Output : Variabel ADDACB dan flag InitDone Keterangan : Rutin ini harus dijalankan / dipanggil terlebih dahulu sebelum menggunakan rutin-rutin yang lain. a. Variabel Mode (0-3) Untuk memilih 1 dari 4 mode analog input yang ada (bagian 2.6) yaitu : Mode 0 : 4 channel single ended input Mode 1 : 3 channel differential input Mode 2 : 2 channel single ended input dan 1 channel differential input Mode 3 : 2 channel differential input Apabila variabel mode diisi dengan angka lebih dari 3 maka rutin InitADDA akan mengindikasikan adanya kesalahan dengan me-reset flag InitDone (InitDone = 0). b. Variabel Channel (0-3) Untuk memilih satu dari maksimum input channel yang ada sesuai dengan mode analog input yang dipilih, apabila variable channel diisi dengan angka lebih besar dari maksimum channel yang diperbolehkan maka secara otomatis rutin InitADDA mengisi variabel channel dengan channel yang tertinggi, misalnya Mode=2, Channel=3 setelah dijalankan rutin InitADDA channel=2. c. Flag AutoInc (1/0) Jika AutoInc=1 maka setiap kali dijalankan rutin ReadADC, semua analog input yang ada dibaca dan disimpan di variabel Chx yang sesuai, jika AutoInc=0 maka rutin ReadADC hanya membaca satu analog input sesuai dengan isi variabel channel dan menyimpannya pada variabel Chx yang sesuai.

34

d.

Flag OutputEnb (1/0)

Jika OuputEnb=1 maka hasil konversi DAC dikeluarkan pada pin AOUT, jika OutputEnb=0 maka hasil konversi DAC tidak dioutputkan pada pin AOUT. Flag ini otomatis bernilai 1 jika rutin WriteDAC dijalankan dan / atau jika flag AutoInc bernilai 1. e. Register accumulator A (0-7) Untuk memilih satu dari 8 alamat board DT-51 I2C ADDA ver 2.0 yang ada (harus sesuai dengan susunan jumper address pada board). f. Variabel ADDACB Akan berisi control byte dari PCF8591 jika rutin InitADDA sukses dijalankan sebaliknya jika gagal maka isi ADDACB tetap tidak berubah seperti sebelum InitADDA dijalankan. g. Flag InitDone (1/0) Akan bernilai 1 jika rutin InitADDA sukses dan bernilai 0 jika gagal, dianjurkan agar user memeriksa flag ini setelah menjalankan / memanggil rutin InitADDA sebelum menjalankan rutin-rutin yang lain. 2. READ ADCEReadADC

Fungsi : Membaca dan menyimpan hasil konversi ADC Input : Accumulator A Output : Variabel Ch0-Ch3 Keterangan : mengunakan rutin ini untuk mendapatkan hasil digital dari ADC, daripada menggunakan langsung rutin-rutin I2C (MRx, MTx, StopCon, dsb). Jika flag AutoInc set maka rutin ini akan membaca dan menyimpan hasil konversi ADC pada setiap analog input yang ada, sebaliknya akan membaca dan menyimpan hasil konversi pada analog input yang dipilih (sesuai isi variabel channel). a.Register accumulator A (0-7) untuk memilih satu dari 8 alamat board DT51 I2C ADDA ver 2.0 yang ada. b.Ch0 adalah variabel tempat disimpannya hasil konversi ADC pada analog input 0. c.Ch1 adalah variabel tempat disimpannya hasil konversi ADC pada analog input 1. d.Ch2 adalah variabel tempat disimpannya hasil konversi ADC pada analog 35

input 2. e.Ch3 adalah variabel tempat disimpannya hasil konversi ADC pada analog input 3. 3. WriteDACWriteDAC Fungsi : Mengirim data digital ke DAC dan mengoutputkan pada pin AOUT Input : Accumulator A dan register B Output : Flag OuputEnb Keterangan : Gunakan rutin ini untuk mengkonversi data digital menjadi analog, daripada menggunakan langsung rutin-rutin I2C (MRx, MTx, StopCon, dsb). a.Register accumulator A (0-7) untuk memilih satu dari 8 alamat board DT51 I2C ADDA ver 2.0 yang ada (harus sesuai dengan susunan jumper address pada board). b.Register B diisi dengan data digital yang akan dikonversi menjadi tegangan analog pada pin AOUT. c.Flag OutputEnb (1/0) akan bernilai 1 setelah rutin ini dijalankan. 2.6 Motor DC Pada prinsipnya motor DC memiliki dua bagian besar : 1. Bagian yang tetap atau stasioner disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektromagnet) atau pun dari medan magnet permanent. 2. Bagian yang berputar disebut rotor. Rotor ini berupa sebuah koil dimana arus listrik dapat mengalir. Jenis motor dibedakan berdasarkan pengaturan listrik dan konstruksi fisiknya, yaitu motor standar, motor bell dan motor disc. Dalam hal kelistrikan, perbedaan motor DC adalah pada medan magnetnya yang dihasilkan didalam stator. 2.7 Liquid Crystal Display (LCD) LCD yang digunakan merupakan LCD tipe karakter karena LCD ini dapat menampilkan data berupa karakter. Keuntungan yang dapat diperoleh dengan menggunakan LCD adalah :

36

1. Dapat menampilkan karakter ASCII, sehingga memudahkan untuk membuat program tampilannya. 2. Mudah dihubungkan dengan port I/O karena hanya menggunakan 8 bit data dan 3 bit control. LCD yang digunakan dalam tugas akhir ini merupakan tipe karakter 16x2 baris, dan dapat menampilkan 16 karakter perbaris dan mempunyai 2 baris.

Gambar 2.14. LCD 16x2

LCD yang didukung adalah LCD yang kompatibel dengan LCD Controller HD44780 dengan konfigurasi urutan kaki terdapat pada tabel 2.7. Tabel 2.7. Alokasi Pin LCD 16x2

37

Pada LCD terdapat VCC (5V) dan GND (ground) yang dapat dihubungkan ke sumber tegangan sebagai rangkaian tambahan yang akan dihubungkan ke DT-51 Sistem Minimum versi 3.3. Pada LCD pin 7 pin 14 merupakan jalur data.

2.8

Pengeringan 2.8.1 Klasifikasi Pengeringan Pengeringan pada dasarnya adalah proses pemindahan atau pengeluaran kadar air bahan hingga mencapai kadar tertentu agar kecepatan kerusakan bahan dapat diperlambat. Pengeringan dapat dilakukan dengan penjemuran yang memanfaatkan sinar matahari atau dengan cara buatan. Pengeringan buatan disamping untuk mengatasi pengaruh cuaca, kelembaban nisbi yang tinggi sepanjang tahun juga dimaksudkan untuk meningkatkan mutu hasil pengeringan. Berdasarkan prosesnya dikenal dua macam pengeringan, yaitu : 1. Pengeringan Alami Pengeringan alami adalah pengeringan yang dilakukan dengan memanfaatkan sinar matahari. Pengeringan di tingkat petani Indonesia sebagian besar dilakukan dengan bantuan sinar matahar dan diletakkan diatas lantai yang terbuat dari semen. 2. Pengeringan Buatan Pengeringan buatan adalah pengeringan dengan menggunakan udara yang dipanaskan. Udara yang dipanaskan tersebut dialirkan ke bahan yang akan dikeringkan dengan menggunakan alat penghembus. Didalam tugas akhir ini menggunakan motor DC sebagai alat kipas penghembus. Pengering dengan menggunakan alat mekanis ( pengering buatan ) yang mengunakan tambahan panas memberikan beberapa keuntungan diantaranya tidak tergantung cuaca, kapasitas pengeringan dapat dipilih sesuai dengan yang diperlukan, tidak memerlukan tempat yang luas, serta kondisi pengeringan dapat dikontrol. Pengeringan buatan ini memerlukan energi untuk memanaskan alat pengering, mengimbangi radiasi panas yang keluar dari alat, memanaskan bahan, menguapkan air gabah serta menggerakan. Alat pengering buatan pada umumnya terdiri dari tenaga penggerak dan kipas, unit pemanas ( kawat nikelin ) serta alat-alat kontrol. Sebagai sumber tenaga untuk mengalirkan

38

udara penggerak dapat digunakan motor bakar atau motor listrik. Untuk alat pengering dengan unit pemanas, beberapa macam sumber energi panas yang biasanya dipakai adalah gas, minyak bumi, batu bara atau elemen listrik 2.8.2 Proses Pengeringan Didalam gabah terdapat kadar air bebas dan terikat. kadar air bebas terdapat dipermukaan gabah, diantara sel-sel pori-pori, kadar air ini mudah teruapkan pada pengeringan. Untuk gambar gabah dapat dilihat pada gambar 2.15.

Gambar 2.15. Macam - macam jenis gabah Pengeringan merupakan langkah penting dalam penggilingan beras. Pada dasarnya dengan proses pengeringan, gabah tidak akan mudah menjadi rusak, menghentikan kegiatan mikro organisme tertentu dan memudahkan pengolahan lebih lanjut. Dalam proses pengeringan gabah, penurunan kadar air yang terlalu cepat, suhu pengeringan yang terlalu tinggi, pengeringan yang dimulai dengan panas mendadak, panas yang tidak kontinyu, kadar air gabah yang naik turun, menyebabkan kadar beras pecah tinggi bila digiling. Keuntungan dan kerugian penjemuran dibandingkan dengan pengeringan menggunakan alat adalah sebagai berikut : a. Penjemuran sangat tergantung pada cuaca, contohnya kalau turun hujan terpaksa pengeringan dihentikan. Demikian pula suhu, kelembaban udara dan kecepatan udara tidak dapat diatur, sehingga kecepatan pengeringan tidak seragam. 39

b. Mutu gabah kering hasil penjemuran umumnya lebih rendah dari pada hasil pengeringan menggunakan alat. Hal ini disebabkan karena waktu pengeringan yang lama, keadaan pengeringan tidak dapat dijaga dan diawasi sehingga kemungkinan-kemungkinan terjadinya kerusakan selama penjemuran sangat besar. c. Keuntungan proses penjemuran adalah biayanya rendah karena memerlukan biaya dan alat-alat yang lebih murah. Pada saat proses pengeringan terjadi, perpindahan massa air dari gabah ke udara dalam bentuk uap air pada permukaan gabah. Dengan pengeringan diharapkan kadar air gabah basah akan turun sedemikian hingga mencapai kadar air sekitar 12 % 16%, pada kadar ini gabah telah cukup siap untuk pengolahan lebih lanjut (penggilingan) ataupun telah cukup aman dalam penyimpanan. Alat pengering tipe Batch Dryer terdiri dari beberapa komponen, yaitu : 1. Bak pengering yang lantainya berlubang-lubang serta memisahkan bak pengering dengan ruang tempat penyebaran udara panas ( plenum chamber ). 2. Kipas, digunakan untuk mendorong udara pengering dari sumbernya ke Plenum Chamber dan melewati tumpukan gabah diatasnya. 3. Unit pemanas, digunakan untuk memanaskan udara pengering agar kelembaban nisbi udara pengering tersebut menjadi turun, sedangkan suhunya naik. Pada alat pengering tipe batch dryer, udara pengering bergerak dari bawah ke atas melalui gabah dan melepaskan sebagian panasnya untuk menghasilkan proses penguapan. Dengan demikian udara pengering makin ke atas semakin turun suhunya. Secara umum bahan dapat dibagi dua yaitu : bahan yang dapat mengeluarkan semua air yang dikandungnya seperti tekstil, dan bahan yang tidak dapat mengeluarkan semua air yang dikandungnya seperti biji-bijian. Bahan yang dapat mengeluarkan semua air yang dikandungnya dinamakan bahan tak higroskopik, sedangkan bahan yang masih menyimpan sebagian air yang dikandungnya dinamakan bahan higroskopik.

40

Bahan tak higroskopik dikeringkan sampai semua air yang dikandungnya keluar. Seandainya bahan tersebut masih mengandung uap air, kemungkinan bahan tersebut rusak disebabkan terjadinya proses kimia atau biologi. Misalnya, kain basah atau lembab yang disimpan lama mungkin akan tumbuh jamur yang disebabkan faktor biologi atau mungkin pula mudah lapuk. Bahan higroskopik perlu menyimpan sebagian air yang dikandungnya, karena air tersebut akan bertindak sebagai agen pengikat sehingga sel-sel di dalam bahan tersebut tidak pecah. Bahan higroskopik kebanyakan merupakan bahan hasil pertanian, seperti jenis biji-bijian padi, coklat, kopi, dan lada; jenis daun seperti tembakau dan jenis buah seperti mangga dan pisang; atau jenis ikan, udang, dan cumi-cumi kering. Di samping mengikat sel-selnya, kandungan air juga memberi rasa sedap apabila bahan tersebut dimakan. Oleh karena itu, kandungan air ini perlu ditetapkan pada kadar tertentu agar mutu bahan tersebut dapat ditetapkan. Misalnya, kadar air dalam padi yang sesuai untuk disimpan adalah 12 sampai 14%. Kandungan air yang berlebih akan menyebabkan padi menjadi kemerahan setelah dua atau tiga bulan penyimpanan, sedangkan kandungan air yang kurang akan menyebabkan padi tersebut menjadi beras patah setelah digiling. Apabila kandungan air terlalu rendah sering bahan-bahan tersebut menyerap uap air disekitarnya, hal ini menyia-nyiakan proses pengeringan yang dilakukan. 2.9 Psikometrik Psikometrik adalah ilmu yang mempelajari sifat-sifat termodinamika dari udara basah. Komposisi dari udara kering berbeda-beda tergantung dari letak geografis dan perubahan waktu ke waktu. Sekaran ini diagram psikometrik menggunakan dua koordinat utama, yaitu : 1. Diagram h w. Pada diagram ini, entalphi menunjukkan energi, dan perbandingan kelembaban, menunjukkan massa, yaitu pada koordinat utama. Diagram psikometrik ini dipublikasi oleh ASHRAE dan Charted Institution of Building Service (CIBSE). 2. Diagram T w. Pada diagram ini, temperatur dan perbandingan kelembaban sebagai koordinat utamanya. Diagram psikometrik ini dipublikasi oleh Carrier Corporation, Train Company). 41

Gambar 2.16. Diagram psikometrik (ASHRAE) Pada gambar 2.16 diagram psikometrik dapat dijelaskan, bahwa : 1. Sifat-sifat termodinamika dibuat pada tekanan atmosfir. Standar tekanan atmosfir adalah 29,29 in.Hg diatas permukaan laut. Kedua bentuk diagram tersebut pada batas temperatur normal. 2. 3. 4. Garis entalphi (h) miring kebawah dari sisi sebelah kanan dengan batas nilai sebesar 12 54 Btu/lb. Garis perbandingan kelembaban (w) adalah mendatar (horizontal). Nilai batas dari 0 0,28 lb/lb. Garis kelembaban relatif () berbentuk kurva dari 10 90 %, dan kurva jenuh. Kurva jenuh adalah sebuah kurva tempat titik keadaan udara basah jenuh, yaitu berada pada posisi 100%. Dari kurva jenuh, temperatur, termodinamika temperatur bola basah atau temperatur basah (WBT) dan Dry Bulb Temperature (DBT) memiliki nilai yang sama. 5. Garis termodinamika bola basah atau temperatur basah (WBT) bertemu dengan garis temperatur pada kurva jenuh. Garis temodinamika bola basah lebih miring dari garis entalpi. 6. Garis volume spesifik (v) jauh lebih miring dari garis entalphi dan termodinamika bola basah, nilai batas volume spesifik. Menentukan kualitas suatu udara dalam proses pengeringan dapat dilakukan dengan menggunakan psikrometri chart. Sebagai contoh, udara pada

42

hari tertentu memberikan bacaan suhu termometer kering 25C dan temperatur basah 20C. Dengan menggunakan diagram psikometrik seperti ditunjukkan gambar 2.17. dapat ditarik garis untuk kedua harga bacaan temperatur, persilangan antara garis suhu temperatur basah dengan suhu temperatur kering menunjukkan udara tersebut mempunyai kelembaban relatif 63%. Kadar kelembabannya adalah 0,01255 kg uap air per kg udara kering. Tekanan parsial yang bersesuaian pada keadaan ini adalah 2,10 kPa.

Gambar 2.17. Sketsa diagram psikometrik (CIBSE). Oleh karena kelembaban relatif udara adalah 63%, udara masih mampu menguapkan permukaan basah, sehingga kelembabannya menjadi 100%. Di samping kualitas udara, proses penguapan air dari permukaan basah juga memerlukan kuantitas lain, yaitu panas karena panas (tenaga) yang dapat menguapkan air. Panas ini diperoleh dari udara yang menjadi medium pengering. Oleh karena itu dapat dilakukan dengan dua tinjauan yaitu : 1. Jika tidak ada penambahan panas dari luar, udara yang dialirkan ke permukaan basah akan menguapkan air pada permukaan basah tersebut, bergantung pada jumlah panas yang dimilikinya. Dengan demikian udara akan menambah kelembaban relatif udara dari 63% hingga maksimum 100%. Pada 43

diagram psikometrik (CIBSE), proses ini berlangsung di sepanjang garis AB, yaitu garis suhu temperatur lembab 20C. Berdasarkan diagram psikometrik (CIBSE) ini, kadar kelembaban akhir yang dicapai dalam proses tersebut adalah 0,01466. Maka uap air yang diuapkan oleh udara adalah 0,01466 0,01255 = 0,0021 kg uap air per kg udara kering. 2. Seandainya udara dipanaskan hingga suhu 40C, maka kandungan uap air di dalam udara itu masih sama, akan tetapi berdasarkan diagram psikometrik (CIBSE) temyata kelembaban relatif udara berkurang dari 63% menjadi 27,5%, dan kadar kelembabannya masih 0,01255. Jika dalam proses pengeringan tersebut udara disejukkan secara adiabatik, garis suhu termometer basah 24,5C hingga ke titik embun (disepanjang garis CD dalam gambar 2.17). Kadar kelembaban akhir adalah 0,01942. Air dari permukaan basah yang dapat diuapkan oleh udara panas adalah 0,01942 - 0,01255 = 0,00687 kg uap air/kg udara kering, yaitu tiga kali lebih besar dari yang dapat dikeringkan oleh udara tanpa dipanaskan. Secara praktisnya langkah di atas mungkin tidak dipatuhi sepenuhnya, yaitu garis tidak mencapai titik embun setepatnya, karena proses adiabatik merupakan proses yang amat langka. Faktor yang menyebabkan analisis contoh di atas tidak tepat adalah psikrometri chart standar yang diberikan, yang dilukis berdasarkan nilai tekanan udara standar yaitu diambil pada tekanan atmosfir standar 101,325 kPa,

44

Anda mungkin juga menyukai