Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
BAB II TEORI DASAR DAN PENUNJANG
Dalam membuat dan menganalisa suatu alat, sebaiknya dikuasai teori-teori dasar yang menunjang / berhubungan dengan alat yang akan dibuat atau dianalisa tersebut. Berikut ini penulis akan membahas tentang prinsip-prinsip dasar dari beberapa teori maupun komponen yang berkaitan dengan rangkaian.
2.1.
Mikrokontroler. Mikrokontroler merupakan suatu komponen elektronik yang didalamnya
terdapat rangkaian mikroprocesor, memori (RAM/ROM) dan I/O, rangkaian tersebut terdapat dalam level chip atau biasa disebut single chip microcomputer. Pada mikrokontroler sudah terdapat komponen – komponen mikroprocesor dengan bus – bus internal yang saling berhubungan. Komponen – komponen tersebut adalah RAM, ROM, Timer, Komponen I/O Paralel dan Serial, dan Interrupt Kontroler. Adapun keunggulan dari mikrokontroler adalah adanya sistem intrrupt. Sebagai perangkat kontrol penyesuaian, mikrokontroler sering disebut juga untuk menaikan
respon semangat eksternal (intrrupt) diwaktu yang nyata. Perangkat
tersebut harus melakukan hubungan switching cepat, menunda satu proses ketika adanya respon eksekusi yang lain.
5
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
2.2.
Mikrokontroler AT89S51. AT89S51 merupakan prosesor 8-bit dengan low power supply dan
performansi tinggi yang terdiri dari CMOS dengan Flash Programmabel dan 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 meggunakan flash memori, program dapat diisi dan dihapus secara elektrik, yaitu dengan memberikan kondisi – kondisi tertentu (high / low) pada pin – pinnya sesuai dengan konfigurasi untuk memperogram atau menghapus. Cara ini lebih praktis dibandingkan dengan menggunakan EPROM yang penghapusan program atau datanya menggunakan sinar ultraviolet. AT89S51 memiliki memory internal yaitu 128 byte RAM dan 4 Kbytes ROM, sehingga untuk menyimpan program yang ukurannya tidak melebihi 4 Kbyte tidak diperlukan lagi ROM eksternal. Dari 32-pin saluran input / output yang tersedia, 24 di antaranya digunakan untuk input / output paralel dan 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. Fasilitas yang tersedia pada AT89S51 antara lain: a. 4 Kbytes Flash EEROM dengan kemampuan sampai 1000 kali tulis - hapus. 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.
6
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
f. Serial interface. g. Kompatibel dengan prosesor MCS-51 buatan Intel Corp. h. Operasi klok antara 1 sampai 24 MHz. Untuk lebih jelasnya dapat dilihat dari gambar 2.1 blok diagram mikrokontroler AT89S51 dibawah ini:
Gambar 2.1 Blok Diagram AT89S51
7
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
2.2.1. Fungsi – Fungsi Pin Mikrokontroler AT89S51. Susunan pin atau kaki – kaki mikrokontroler AT89S51 dapat dilihat pada gambar 2.2 dibawah ini:
Gambar 2.2 konfigurasi Pin Mikrokontroler AT89S51
Pin 1 sampai 8 Ini adalah port 1 yang merupakan saluran / bus I/O 8 bit dua arah, dengan internal pull-up yang dapat digunakan untuk berbagai keperluan. Pada port ini juga digunakan sebagai saluran alamat pada saat pemerograman dan verifikasi.
8
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Pin 9 Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ketinggi akan mereset mikrokontroler ini. Pin 10 sampai 17 Ini adalah port 3 merupakan saluran / bus I/O 8 bit dua arah dengan internal pull-up yang memiliki fungsi pengganti, bila fungsi pengganti tidak dipakai, maka dapat digunakan sebagai port paralel 8 bit serbaguna. Selain itu sebagian dari port 3 dapat berfungsi sebagai sinyal kontrol pada saat proses pemerograman dan verivikasi. Adapun fungsi penggantinya seperti pada tabel 2.1 dibawah ini: Tabel 2.1 Fungsi lain dari port 3 Port pin
Alternate Functions
P3.0
RXD (untuk menerima data port serial)
P3.1
TXD (serial output port)
P3.2
INT0 (eksternal intrrupt 0)
P3.3
INT1 (eksternal intrrup 1)
P3.4
T0 (timer 0 eksternal input)
P3.5
T1 ( timer 1 eksternal input)
P3.6
WR (eksternal data memory write strobe)
P3.7
RD (eksternal data memory read strobe)
Pin 18 sampai 19 Ini merupakan masukan ke penguat osilator berpenguat tinggi. Pada mikrokontroler ini memiliki seluruh rangkaian osilator yang diperlukan pada serpih yang sama (on chip) kecuali rangkaian kristal yang mengendalikan
9
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
frekuensi osilator. Karenanya pin 18 dan 19 sangat diperlukan untuk dihubungkan dengan kristal. Selain itu XTAL 1 dapat juga sebagai input untuk inverting osilator amplifier dan input kerangkaian internal clock sedangkan XTAL 2 merupakan out put dari inverting osilator amplifier. Pin 20 Merupakan ground sumber tegangan yang diberi simbol GND. Pin 21 sampai 28 Ini adalah port yang merupakan saluran / bus I/O 8 bit dua arah dengan internal pull-up, saat pengambilan data dari program memori eksternal atau selama mengakses data memori eksternal yang menggunakan alamat 16 bit (MOVX @ DPTR), port 2 berfungsi sebagai saluran / bus alamat tinggi (A8 – A15). Sedangkan pada saat mengakses ke data memori eksternal yang menggunakan alamat 8 bit (MOVX @ R1), port 2 mengeluarkan isi dari P2 pada Special Function Register. Pin 29 Program Store Enable (PSEN) merupakan sinyal pengontrol untuk mengakses program memori eksternal masuk kedalam bus selama proses pemberian / pengambilan instruksi (fetching). Pin 30 Adress Latch Enable (ALE) / PROG merupakan penahanan alamat memori eksternal. Pin ini juga sebagai pulsa / sinyal input pemrograman (PROG) selama proses pemrograman.
10
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Pin 31 External Access Enable (EA) merupakan sinyal kontrol untuk pembacaan memori perogram. Apabila diset rendah (L) maka mikrokontroler akan
melaksanakan seluruh intruksi dari memori program eksternal,
sedangkan apabila diset tinggi (H) maka mikrokontroler akan melaksanakan intruksi dari memori program internal ketika isi program kurang dari 4096. ini juga berfungsi sebagai tegangan pemerograman (Vpp = + 12V) selama proses pemrograman. Pin 32 sampai 39 Ini adalah port 0 yang merupakan saluran / bus I/O 8 bit open colector, dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pada saat proses pemrograman dan verifikasi port 0 digunakan sebagai saluran / bus data. External pull-ups diperlukan selama proses verifikasi.. Pin 40 Merupakan positif sumber tegangan yang diberi simbol Vcc.
2.2.2. Organisasi Memori. Mikrokontroler AT89S51 memiliki memory program yang terpisah dari memory data, ruang memory program memiliki kapasitas 4 Kbyte flash EEROM (address 000h sampai FFFH).
11
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Memori Program
Memori Data
FFFFH Eksternal
Eksternal FFFFH
0000
FFH EA=0 eksternal
EA=0
0000
internal
00
PSEN
RD RW Gambar 2.3 Organissi Memori
Gambar 2.3 memperlihatkan lokasi ROM internal. Lokasi ini dapat diakses jika pin EA = 1 atau diberi tegangan Vcc. Jika ukutan program melampaui 4 Kbyte, maka harus digunakan ROM eksternal yang alamatnya antara 0000h sampai FFFFh atau 64 Kbyte dan pin EA = 0 atau dihubungkan dengan ground. Jika dignakan EPROM eksternal, maka alamat memory program sama dengan alamat memory data, dengan kata lain 64 Kbyte dipakai bersama oleh program dan data. Seperti telah disebutkan diatas, AT89S51 dapat membedakan alamat memory hingga 64 Kbyte, pengaksesan data ke memory data eksternal dilakukan dengan menggunakan data pointer melalui instruksi “MOVX”. Di samping dapat mengakses RAM eksternal, mikrokontroler AT89S51 memiliki RAM internal yang pengaksesannya terpisah dengan RAM eksternal. RAM
12
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
internal berkapasitas 128 byte ditambah sejumlah SFR (Special Function Register). Gambar 2.2.2 kanan memperlihatkan RAM internal yang memiliki alamat antara 00H – FFH. Alamat 80H sampai FFH dipakai oleh 2 kelompok register yang berbeda, yaitu kelompok register yang harus diakses dengan alamat langsung (direct addressing) antara 80H sampai FFH dan kelompok register yang harus diakses dengan alamat tak langsung (indirect addressin) atau dengan menyebut nama registernya bukan nomornya, misal ACC, B, P0, P1, TMOD dan seterusnya. Alamat RAM antara 00H sampai 7FH dapat diakses secara langsung (dengan menyebutkan nomor registernya) maupun tak langsung (dengan menyebutkan nama registernya). RAM internal AT89S51 terbagi atas 3 (tiga) bagian yaitu: a. 32 byte atau 32 register yang terletak antara 00H sampi 1FH. Dikelompokan menjadi 4 register bank yang masing – masing terdiri dari 8 register dan 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. 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 dapat menggunakan alamat register antara 20H sampai 2FH, sedangkan pengalamatan bit dapat dilakukan dengan menuliskan titik setelah alamat registernya, misal 20H. untuk bit MSB pada register 20H.
13
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
c. Daerah register penggunaan umum terletak dibagian atas RAM internal, yaitu alamat 30H sampai FFH.
2.2.3. Register. Didalam setiap oprasinya mikrokontroler harus selalu menyertakan register sebagai salah satu operand atau tempat data yang akan dilibatkan dalam oprasi tersebut. Register adalah memory kecil berukuran 1 atau 2 byte, 8-bit atau 16-bit. Register akan menampung data sebelum diolah, register juga akan menampung data hasil olahan sementara sebelum dikembalikan atau dkirim ke BUS internal atau eksternal. Register – register yang ada di mikrokontroler AT89S51 adalah sebagai berikut:
Register A, disebut juga sebagai akumulator (SFR alamat E0h) yaitu tempat akumulasi proses olah data.
Register B, disebut juga Base Register (SFR alamat F0h). Register ini jarang dipakai karena hanya dipakai untuk oprasi perkalian dan pembagian saja.
Bit Overflow (OV). Bit ini menunjukan adanya kelebihan atau kekurangan bit pada oprasi penjumlahan atau pengurangan.
Bit Parity (P). Bit ini menunjukan paritas dari hasil oprasi, jika 1 maka hasil oprasinya adalah genap, dan jika 0 maka hasil oprasinya adalah ganjil.
14
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Power Control Register (PCON). Register PCON berfungsi sebagai pengontrol mode kerja dari pada CPU. Register PCON ini tidak dapat dialamati per bit.
Register Timer Mode (TMOD). Register yang berfungsi sebagai pengontrol pemilihan mode oprasi untuk timer / counter. Sedangkan untuk pengontrol kerja timer / counter adalah timer Control register (TCON).
Serial Control Register (SCON). Register yang berfungsi untuk mengontrol kerja port serial. Port serial pada mikrokontroler AT89S51 bersifat full duplex, yang berarti dapat mengirim dan menerima data secara bersamaan. Register penerima dan pengirim pada port serial diakses pada SBUF (serial buffer).
Program Counter (PC). Pencacah program merupakan sebuah register 16 bit yang selalu menunjukan lokasi memori dari instruksi yang akan diakses.
Stack Pointer (SP). Stack Pointer merupakan sebuah register 16 bit yang mempunyai fungsi khusus sebagai penunjuk alamat atau data yang berada paling atas pada oprasi penumpukan di RAM. Penunjuk penumpukan selalu berkurang dua setiap kali data didorong masuk kedalam lokasi penumpukan dan selalu bertambah dua setiap kali data ditarik ke luar dari lokasi penumpukan.
15
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Programme Status Word. Register ini berisi beberapa bit status yang mencerminkan keadaan mikrokontroler. Definisi dari bit – bit dalam PSW dijelaskan seperti berikut: Tabel 2.2 bit – bit PSW CY AC
F0
RS1 RS2 OV
-
P
Bit Carry Flag (CY). Bit carry (bit ke – 8) mempunyai dua fungsi yaitu: pertama, carry akan menunjukan apakah oprasi penjumlahan mengandung carry (sisa) atau pada oprasi pengurangan mengandung borrow (kurang). Apabila oprasi ini mengandung carry, maka bit ini akan diset satu, sedangkan jika mengandung borrow, maka bit ini akan diset nol. Kedua, carry dimanfaatkan sebagai bit ke delapan untuk oprasi pergeseran (shift) atau perputaran.
Bit Auxiliary Carry (AC). Bit ini meunjukan adanya carry (bawaan) dari bit ketiga menuju bit keempat pada oprasi aritmatika atau dari empat bit rendah keempat bit tinggi. Bit ini jarang digunakan dalam program, tetapi digunakan oleh mikrokontroler secara implisit pada oprasi aritmatika bilangan BCD.
16
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Bit Flag 0 (F0). Bit ini menunjukan apakah hasil oprasinya nol atau tidak. Apabila hasil oprasi adalah nol, maka bit ini diset 1, dan apabila hasil oprasinya adalah tidak nol maka bit ini akan diriset 0, bit ini juga digunakan pada perbandingan dua buah data. Bila kedua data sama maka akan diset 1 sedangkan jika kedua data tersebut berbeda maka akan di set 0.
Bit register select (RS). RS 0 dan RS 1 digunakan untuk memilih bank register. Delapan buah register ini merupakan register serbaguna. Lokasinya pada awal 32 byte RAM internal yang memiliki alamat dari 00H sampai 1FH. Register ini dapat diakses melalui simbol assembler (R0, R1, R2, R3, R4, R5, R6, dan R7). Pemilihan bank register dapat dilihat pada tabel 2.3 dibawah ini: Tabel 2.3 Pemilihan Bank Register RS1
RS2
Bank
Register
0
0
0
00H – 07H
0
1
1
08H – 0FH
1
0
2
10H – 17H
1
1
3
18H – 1FH
Register RS 0 dan RS 1 dapat digunakan untuk pengalamatan tak langsung pada internal RAM.
17
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Unit Aritmatik Logic. ALU (Aritmatik Logic Unit) berfungsi melaksanakan oprasi – oprasi aritmatik maupun logic, seperti penjumlahan, penguranan, oprasi OR, oprasi NAND dan sebagainya. Hasil oprasi tersebut selanjutnya disimpan kembali ke dalam accumulator. Oprasi yang terjadi pada ALU berhubungan erat dengan accumulator dan bit status pada regiter F / PSW.
Sumber Pencacah Pewaktu AT89S51. Mikrokontroler AT89S51 ini dilengkapi dengan sumber detak / osilator internal (on chip oscilator) yang dapat digunakan sebagai sumber clock bagi AT89S51. untuk menggunakan osilator internal diperlukan tambahan kristal atau resonator keramik antara pena XTAL 1 dan XTAL 2 dan sebuah kapasitor ke ground. Untuk kristalnya dapat digunakan frekuensi dari 3 sampai 24 MHz, sedangkan
untuk
kapasitornya
dapat
bernilai
33
pF.
Bila
menggunakan sumber clock eksternal maka CTAL 2 NC (No Connection) dan sumber dihubungkan XTAL 1.
Interupsi. Program yang sedang dijalankan oleh mikrokontroler AT89S51 dapat dihentikan untuk sementara dengan meminta interupsi, apabila AT89S51 mendapat perintah interupsi maka program counter (PC) akan diisi alamat dari vector interupsi, kemudian AT89S51 melaksanakan rutin pelayanan interupsi mulai dari alamat tersebut setelah selesai maka AT89S51 akan kembali ke pelaksanaan program
18
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
utama yang ditinggalkan. Mikrokontroler AT89S51 menyediakan 6 sumber interupsi yaitu 2 buah interupsi eksternal (INT 0 dan INT 1), 3 buah interupsi timer (timer 0, timer 1, dan timer 2), dan sebuah interupsi port serial. Selain itu juga sebuah non makskable interrupt yaitu reset yang tdak dapat dihalangi oleh perangkat lunak, setiap sumber interupsi dapat
diproram
secara
individual
(sendiri
–
sendiri)
baik
pengaktifannya maupun prioritasnya. Untuk mengaktifkan atau menon aktifkan interupsi dikontrol oleh register IE (interrupt enable), sedangkan untuk tingkat prioritasnya diatur oleh register IP (interrupt priority). Tabel 2.4 kapasitas memori mikrokontroler seri AT89xx
Type
RAM
Flash Memory
EEPROM
AT89C51/AT89S51
8 X 128 Byte
4 Kbyte
No
AT89C52/At89S52
8 X 256 Byte
8 Kbyte
No
AT89C55
8 X 256 Byte
20 Kbyte
No
AT89S53
8 X 256 Byte
12 Kbyte
No
AT89S8252
8 X 256 Byte
8 Kybte
2 Kbyte
Pada tabel 2.4 terdapat 3 macam memori yaitu: 1. Randim Acsess Memory (RAM) adalah data yang dapat dibaca dan disimpan jika mikrokontroler mendapat supply. 2. Flash Memory adalah tempat penyimpanan data program yang hanya dapat dibaca pada waktu mikrokontroler sedang aktif.
19
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
3. EEPROM adalah tempat penyimpanan data yang dapat dibaca dan tulis pada saat mikrokontroler sedang bekerja dan bersifat secara permanen (tidak akan hilang meskipun mikrokontroler tidak mendapat supply).
2.3. Liquid Crystal Display (LCD). Pada dasarnya LCD bekerja pada tegangan rendah biasanya 3 sampai 15 Vrms, frekuensi rendah 30 sampai 200 Hz sinyal AC, dan memakai arus listrik yang sangat kecil, LCD sering ditata sebagai tampilan 7-segment untuk menampilkan angka. Dibawah ini diperlihatkan gambar LCD:
Gambar 2.4 Liquid Crystal Display (LCD) 2.3.1. Akses LCD. Karena sistem mikrokontroler AT89S51 harus berinteraksi dengan manusia, seringkali sistem ini dilengkapi dengan display, display yang umum digunakan adalah LED (Light Emitting Diodes) 7-segment dan LCD (Liquid Crystal Display), meskipun murah, penggunaan LED (Light Emitting Diodes) 7-segment lebih sulit, selain hanya menampilkan angka desimal, jumlah bit output yang dibutuhkan juga cukup banyak, dan setiap digit memerlukan 4-bit tanpa pergiliran penyalaan, untuk menghidupkan 6-digit dibutuhkan 24-bit output, padahal AT89S51 hanya memiliki
20
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
32-bit input / output. Penghematan pin dapat dilakukan dengan cara menggilir penyalaan digit. Pada satu saat hanya satu digit saja yang dinyalakan dan lamanya satu putaran tidak lebih dari 40 ms, tetapi cara seperti ini merepotkan AT89S51. untuk urusan display saja AT89S51 harus sibuk terus menerus melakukan penyegaran display. Pilihan lainnya untuk display adalah penggunaan LCD, telah tersedia beragam ukuran LCD, mulai dari 2 baris kali 16 karakter sampai 4 baris kali 24 karakter, setiap karakter terdiri dari 5 x 8 atau 5 x 10 titik, sehingga yang ditampilkan bukan hanya angka desimal saja, tetapi juga huruf latin dan lambang lainya termasuk huruf kanji. Salah satu standar LCD yang dapat berkomunikasi dengan mikrokontroler adalah HD44780U. Standar LCD ini cukup populer digunakan untuk display
pada
beragam
sistem
mikrokontroler
termasuk
AT89S51.
untuk
berkomunikasi dengan modul LCD jenis ini, AT89S51 hanya membutuhkan 7 atau 11 pin input / output, berapun ukuran LCDnya.
2.3.2. Fungsi – Fungsi Pin LCD. Pada tabel 2.5 memperlihatkan fungsi – fungsi pin pada konektor antara LCD dengan mikrokontroler AT89S51. kolom pertama adalah nomor pin pada konektor tersebut, kolom kedua adalah simbol atau nama pin tersebut, kolom ketiga adalah fungsi dari pin tersebut. Dari 16 pin tersebut, 8-pin diantaranya digunakan untuk menerima dan mengirimkan data dari mikrokontroler ke LCD, yaitu pin DB0 sampai DB7. sedangkan 3-pin lainnya digunakan untuk kendali oprasi, pin RS digunakan oleh sistem prosesor untuk memberi tahu LCD, apakah informasi biner yang diletakan di
21
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
DB0 sampai DB7 merupakan instruksi atau data. Jika RS = LOW, berarti informasi biner tersebut adalah instruksi, tetapi jika RS = HIGH, berarti informasi tersebut adalah data. Pin R/W digunakan oleh sistem prosesor untuk memberi tahu LCD, apakah prosesor ingin mengirim (R/W = LOW) atau membaca (R/W = HIGH) data dari LCD. Pin E digunakan oleh sistem prosesor untuk memberi tahu LCD agar memulai memproses sinyal yang diberikan oleh prosesor, ditandai dengan peralihan kondisi pin E dari HIGH menjadi LOW. Khusus untuk pin DB7, selain untuk transfer informasi biner, pin ini juga dapat berfungsi untuk memberitahu sistem prosesor bahwa LCD masih sibuk belum siap menerima instruksi berikutnya. Tabel 2.5 Fungsi Konektor LCD PIN
Name
Function
1
Vss
Ground Voltage
2
Vcc
+5V
3
VEE
Contrast Voltage
4
RS
Register Select 0 = Intruction Register 0 = Data Register
5
R/W
Read / Write, to Chooses Write or Read mode 0 = Write mode 1 = Read mode
6
E
Enable 0 = Start to lacht data to LCD character 1 = disable
7
DB0
LSB
8
DBI
-
9
DB2
-
10
DB3
-
22
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
11
DB4
-
12
DB5
-
13
DB6
-
14
DB7
MSB
15
BPL
Back Plane Light
16
GND
Ground Voltage
Contoh : konfigurasi hardware Pada contoh berikut ini akan diperlihatkan contoh sambungan hardware antara mikrokontroler AT89S51 dengan modul LCD. Pada gambar 2.4 dibawah ini diperlihatkan contoh sambungan, terdapat 8-pin data dan 3pin kendali.
P3.7 P3.6 P3.5 AT89S51
E RS R/W LCD Module
P1.0 – P1.7
DB0 – DB7
Gambar 2.5 contoh koneksi antara AT89S51 dengan LCD
Untuk memudahkan penulisan program, pada bagian deklarasi program nama – nama pin prosesor yang dihubungkan dengan modul LCD disesuaikan dengan fungsinya, misalnya deklarasi sebagai berikut: DB0 EQU P1.0 DB1 EQU P1.1 DB2 EQU P1.2 DB3 EQU P1.3
23
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
DB4 EQU P1.4 DB5 EQU P1.5 DB6 EQU P1.6 DB7 EQU P1.7 EN EQU P3.7 RS
EQU P3.6
RW EQU P3.5
2.3.3. Pengiriman Data / Instruksi ke LCD. Informasi yang dikirimkan ke LCD dapat berupa data maupun instruksi. Jika prosesor ingin memberi tahu LCD bahwa informasi yang diletakannya di 8 pin data instruksi adalah instruksi, maka pin RS dibuat LOW, sedangkan jika pin RS ini dibuat HIGH, berarti informasi biner tersebut adalah instruksi, seperti dapat dilihat pada gambar 2.5. Setiap pengiriman 1-byte informasi dari prosesor ke modul LCD harus ditandai dengan peralihan kondisi pin E dari HIGH menjadi LOW. Segera setelah peralihan pin E ini, modul LCD akan memproses informasi biner tersebut, karena modul LCD memerlukan waktu tertentu untuk memproses kiriman data / instruksi dari prosesor, maka sebelum pengiriman informasi tersebut. Prosesor harus memastikan kesiapan modul LCD untuk menerima kiriman byte baru, kecuali saat pengiriman 4-byte pertama saat inisialisasi, keseiapan LCD menerima kiriman informasi biner dapat diketahui dengan pembacaan DB7. Untuk memberikan perintah pada LCD sangat mudah. Caranya dengan mengkopi perintah yang dimaksud ke akumulator kemudian memanggil subrutin
24
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
”tulis perintah LCD”. Begitu pula dengan memberikan data pada LCD, yaitu dengan mengkopi data ke akumulator kemudian memanggil subrutin ”tulis data LCD”. Contoh: MOV
A, #00000001B
; kosongkan display
CALL
TULIS_ PERINTAH_LCD
Sedangkan flowchart-nya adalah sebagai berikut:
KOPI XXXXXXXXB KE AKUMULATOR
KOPI XXXXXXXXB KE AKUMULAOTR
PANGGIL SUBRUTIN
PANGGIL SUBRUTIN
TULIS_DATA_LCD
TULIS_PERINTAH_LCD
RETRY
RETRY
Gambar 2.6 Flowchart LCD
25
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
Sedangkan subrutin tulis_perintah_lcd dan tulis_data_lcd adalah sebagai berikut:
TULIS_DATA_LCD: MOV
PIN_DATA_LCD,A
; Kopi data di A ke pin_data_lcd
SETB
PIN_RS
; menandakan bahwa ini data
CLR
PIN_RW
; menandakan pada mode write
NOP SETB
; tunda beberapa waktu PIN_E
; laksanakan
NOP
; tunda
NOP
; tunda
CLR
PIN_E
CALL
DLY10MS
; selesai
RET
; kembali lompat keinstruksi pemanggil
TULIS_PERINTAH_LCD: MOV
PIN_DATA_LCD,A
; Kopi data di A ke pin_data_lcd
SETB
PIN_RS
; menandakan bahwa ini data
CLR
PIN_RW
; menandakan pada mode write
NOP SETB
; tunda beberapa waktu PIN_E
; laksanakan
NOP
; tunda
NOP
; tunda
CLR
PIN_E
CALL
DLY10MS
; selesai
RET
; kembali lompat keinstruksi pemanggil
26
Universitas Mercu Buana
Implementasi Pada Sistem Komunikasi Scrambler Data Menggunakan Mikrokontroler AT89S51
2.4.
Tombol. Pada tombol dirancang terhubung dengan Pin IC dan ground. Artinya jika
tombol ditekan maka pin tersebut berkondisi LOW (Active Low). Sehingga flowchartnya adalah:
:
Tombol Pengirim Low?
Lompat ke subrutin Pengirim_ditekan
Tombol Data A Low?
Lompat ke subrutin Data A_ditekan
Tombol Data B Low?
Lompat ke subrutin Data B_ditekan
Gambar 2.7 Flowchart scan tombol
Sedangkan subrutinnya menjadi sebagai berikut: SCAN TOMBOL: JNB
TOMBOL_PENGIRIM_DITEKAN
JNB
TOMBOL_DATA A_DATA A_DITEKAN
JNB
TOMBOL_DATA B_DATA B_DITEKAN
RET
27
Universitas Mercu Buana