Professional Documents
Culture Documents
Dosen Pembimbing :
Oleh:
Disetujui oleh
Tim Penguji Proyek Akhir: Dosen Pembimbing:
Mengetahui:
Ketua Jurusan Telekomunikasi
ii
ABSTRAK
iii
ABSTRACT
The restaurant service system in this modern era stills use the
manual system. In this Preface Of The Final Project Paper present using
of Microcontroller AT89S51 in designing and making of minimum
system for ordering menu on consumer desk. Microsoft Access used a
database and Visual Basic 6.0 functioned for the form of caller of data
from Microsoft Access by exploiting Visual Data Manager facility exist
in Visual Basic 6.0.
Input from the table about the codes of food will be show to the
LCD. This information from the table about the codes of food will be
show to the LCD. This information from the table will be sent with RS-
232 DB9 to PC Kitchen hereinafter transferred to PC cashier by using
same communication.
iv
KATA PENGANTAR
Penulis
v
UCAPAN TERIMA KASIH
vi
penulis berharap semoga Proyek Akhir ini dapat memberikan manfaat
dan tambahan ilmu bagi pembaca. Amin
Penulis
vii
DAFTAR ISI
JUDUL…………………………………………………………….. i
PENGESAHAN ………………………………..……………….... ii
ABSTRAK………………………………………………………… iii
ABSTRACT…...…………………………………………………... iv
KATA PENGANTAR..……………………………………………. v
UCAPAN TERIMA KASIH………………………………………. vi
DAFTAR ISI.…………………………………………………..….. viii
DAFTAR GAMBAR ……………………………………………... xi
DAFTAR TABEL ………………………………………………… xiii
BAB 1 PENDAHULUAN…..…………………………………… 1
1.1. LATAR BELAKANG……………...…………………. 1
1.2. PERUMUSAN MASALAH………..………………... 1
1.3. BATASAN MASALAH….………..………………… 1
1.4. METODOLOGI ………………………………………. 2
1.5. SISTEMATIKA PEMBAHASAN ……………….…… 3
1.6 TUJUAN DAN MANFAAT...………………………… 3
1.7 RELEVANSI ................................................................. 4
BAB 2 TEORI PENUNJANG…………………………….……... 5
2.1. Umum………………………......................................... 5
2.2 Mikrokontroller AT89S51 5
2.1.1 Struktur Memori …………………………………… 8
2.3 Komunikasi Data Serial ……………………………………... 9
2.3.1. Metode Komunikasi ................................................. 9
2.3.1.1 Mode Komunikasi Simplex ..................... 9
2.3.1.2 Mode Komunikasi Half Duplex .............. 10
2.3.1.3 Mode komunikasi Full-Duplex ................ 10
2.3.2 Format data komunikasi serial .................................. 10
2.3.2.1 Kecepatan mobilisasi data per bit ............ 11
2.3.2.2 Jumlah bit data per karakter ..................... 11
2.3.2.3 Parity bit .................................................. 11
2.3.3 Konfigurasi Port Serial ……………………………. 11
2.3.4 Komunikasi serial pada Mikrokontroller ………….. 13
2.3.5 Konektor Interface RS-232 ....................................... 14
2.3.6 IC serial MAX 232 .................................................... 15
2.3.7 Pengaksesan dengan menggunakan control
16
MSComm …………………………………………
viii
2.4 Pemrograman Dan Database VISUAL BASIC 6.0 ................. 16
2.4.1 Pendahuluan .............................................................. 16
2.4.2 Dasar Teori Visual Basic 6.0 .................................... 16
2.4.2.1 Pemakaian Komponen ............................. 17
2.4.2.1a Menu ........................................ 17
2.4.2.1b Toolbar Standart ...................... 18
2.4.2.1c Tool Box .................................. 19
2.4.2.1d Form ........................................ 20
2.4.2.1e Project Explorer ....................... 22
2.4.2.1f Propertise ................................ 22
2.4.2.2 Database ................................................... 23
2.4.2.2a Membuat Database .................. 24
2.4.2.2b Memodifikasi database ............ 27
2.4.2.2c Menambah index data ............. 28
2.4.2.2d Mengaitkan Data ke dalam
30
Form ........................................
2.5 Pemrograman Bahasa C ............................................................. 32
2.5.1 Pendahuluan .............................................................. 32
2.5.2 Alasan Penggunaan Bahasa C .................................. 33
2.5.3 Pengenalan Sintaks Bahasa C ................................... 33
2.5.3.1 Keyword #include .................................... 33
2.5.3.2 Keyword #define ..................................... 34
2.5.3.3 Keyword #if.............................................. 34
2.5.3.4 Keyword #ifdef ........................................ 34
2.5.3.5 Keyword #ifndef ..................................... 35
2.5.3.6 Keyword #endif ...................................... 35
2.5.3.7 Keyword #undef ...................................... 35
2.5.3.8 Keyword #else ......................................... 35
2.5.4 Perintah Perintah Dalam Bahasa C ........................... 35
2.5.4.1 Compiler .................................................. 35
2.5.4.2 Pernyataan ............................................... 36
2.5.4.3 Variabel ................................................... 36
2.5.4.4 Operator ................................................... 37
2.5.4.5 Percabangan ............................................. 37
2.5.4.6 Perulangan ............................................... 38
2.5.4.7 Fungsi untuk Input dan Output ................ 38
2.5.4.8 Pointer dan Array ..................................... 39
BAB 3 PERENCANAAN DAN PEMBUATAN ALAT …………. 41
3.1 Umum …………………………………………………………. 41
3.2 Perencanaan Sistem Kerja .......................................................... 41
ix
3.3 Perancangan Perangkat Keras ………………………………… 43
3.3.1Perancangan dan Pembuatan Antar Muka
44
(Interfaces) Dengan Mikrokontroller AT89S51 …..
3.3.2 Rangkaian Keypad ………………………………… 45
3.3.3 Rangkaian LCD …………………………………… 48
3.3.4 Pembuatan Perangkat Keras Downloader
51
Mikrokontroller AT89S51 ………………………..
3.3.5 Konektor RS 232 …………………………………... 52
3.4 Konversi Data …………………………………………………. 52
3.5 Perencanaan Database ………………………………………… 52
3.6 Perencanaan Program C pada Mikrokontroller ……………….. 56
BAB 4 PENGUJIAN DAN ANALISA ............................................ 59
4.1 Tujuan ......................................................................................... 59
4.2 Pengujian Database …………………………………………… 59
4.3 Proses Penulisan dan Kompile program ………………………. 60
4.4 Proses Download ke dalam Mikrokontroller ………………….. 62
4.5 Pengujian Perangkat Keras ……………………………………. 63
4.5.1 Pengujian Hubungan antara Keypad dengan LCD
63
dan PC Dapur …………………………………….
4.5.2 Keypad …………………………………………….. 66
4.5.3 Tampilan pada LCD ……………………………….. 66
4.5.4 Tampilan Pada PC Dapur ………………………….. 67
4.5.5 Pengujian Hubungan Minimum Sistem Dengan PC
67
(Serial) …………………………………………….
BAB 5 PENUTUP…………………………………………………. 71
5.1 Kesimpulan ……………………………………………………. 71
5.2 Saran …………………………………………………………... 71
DAFTAR PUSTAKA ……………………………………………... 73
LAMPIRAN
RIWAYAT HIDUP
x
DAFTAR GAMBAR
xi
Gambar 3.8 Rangkaian Downloader ISP Flash ………………….. 51
Gambar 3.9 Contoh Program yang dikembangkan ......................... 53
Gambar 3.10 Pembuatan index pada Visual Data Manager ........... 55
Gambar 4.1 Tampilan Form Database Pada PC Kasir …………... 59
Gambar 4.2 Tampilan Form Database Pada PC Dapur ………….. 60
Gambar 4.3 Contoh Tampilan Ride51 …………………………… 61
Gambar 4.4 ISP - Flash Programmer Version 3.0a ……………… 62
Gambar 4.5 Tampilan PC Dapur setelah menerima inputan dari 67
Mikrokontroller …………………………………….
Gambar 4.6 Tampilan pada hyperterminal yang bersamaan 69
dengan dinyalakannya rangkaian Minimum Sistem .
xii
DAFTAR TABEL
Tabel 2.1 Konfigurasi pin dan nama sinyal konektor serial ........... 12
Table 2.2 Untuk Tool Adodc pada gambar Gambar 2.25 ............... 31
Tabel 3.1 Properti tool Data pada Gambar 3.11………….............. 53
xiii
BAB 1
PENDAHULUAN
1
2
1.4 METODOLOGI
Untuk langkah langkah pembuatan proyek akhir ini langkah
langkahnya adalah sebagai berikut :
(a) Perancangan Sistem
Perancangan sistem berdasarkan pada petunjuk pengoperasian
(instruction manual) Mikrokontroller tersebut dan dikembangkan
dengan cara menghubungkan fungsi-fungsi Mikrokontroller yang
kemudian dihubungkan dengan PC-PC yang ada.
(b) Pembuatan Perangkat Keras (Hardware)
Hardware untuk Mikrokontroller AT89S51 sudah tersedia di toko
toko elektronik. Yang harus disediakan lainnya untuk tugas akir ini
ialah LCD yang berukuran 6X2 yang nantinya akan dihubungkan
dengan Mikrokontroller sebagai tampilan menu dan keypad 4X4
sebagai inputan.
(c) Perangkat Lunak (Software) pada Mikrokontroller
Pembuatan software pada TA ini dibagi menjadi beberapa bagian
yaitu pembuatan program untuk menampilkan tulisan di LCD.
Instruksi instruksi pada keypad dan program untuk mengoneksikan
antara Mikrokontroller dengan PC dapur yang nantinya akan
diteruska ke PC kasir.
(d) Pembuatan database
Sebagai media penyimpan data , maka diperlukan suatu database
yang nantinya akan dibuka melalui Mikrokontroller di bagian
pelanggan. Disini digunakan Visual Basic 6.0 sebagai database dan
database itu berisi tentang menu menu pesanan beserta harganya.
3
BAB I : Pendahuluan
Bab ini berisi tentang uraian latar belakang,
tujuan, permasalahan, batasan masalah,
metodologi dan sistematika laporan.
BAB II : Teori Penunjang
Bab ini berisi tentang teori – teori penunjang
yang dipergunakan dalam penyelesaian
proyek akhir ini.
BAB III : Perancangan Dan Implementasi
Perancangan perangkat lunak disini akan
dibahas masalah perancangan program
komunikasi data serial baik pada
Mikrokontroller maupun pada pada PC.
Sedangkan pada perancangan perangkat keras
akan dibahas tentang pembuatan alat yang
digunakan.
BAB IV : Analisa Dan Pengujian
Bab ini akan dibahas masalah pengujian
perangkat lunak dan perangkat keras serta
komunikasi data serial baik pada komputer
maupun di Mikrokontroller.
BAB V : Kesimpulan
Bab ini berisi tentang kesimpulan dari
pembahasan yang telah ada serta saran –
saran guna pengembangan proyek akhir lebih
lanjut.
1.7 RELEVANSI
Tugas akhir ini diharapkan bisa dijadikan bahan
pembelajaran untuk dapat mentransfer data antara PC 1 ke PC 2
dan suatu PC dengan sebuah Mikrokontroller. Serta dapat
digunakan sebagai bahan pembelajaran untuk mata kuliah
Mikrokontroller.
.
BAB 2
TEORI PENUNJANG
2.1 Umum
Pada bab ini akan diberikan teori dasar yang melandasi permasa-
lahan dan penyelesaiannya yang diangkat dalam proyek akhir ini. Teori
dasar yang diberikan meliputi: pembuatan database, yang memberikan
definisi dan klasifikasi tentang penyimpanan serta koneksi database
antara Visual Basic dan Microsoft access. Selanjutnya, diberikan tentang
teori komunikasi data serial, pararel, connector interface RS 232,
pengaksesan port serial pada Visual Basic serta komunikasi serial pada
Mikrokontroller AT89S51.
5
6
Pengirim Penerima
Pengirim Pengirim
Penerima Penerima
Pengirim Pengirim
Penerima Penerima
Nomor Nama
Direction Keterangan
Pin Sinyal
Data Carrier Detect / Received
1 DCD In
Line Sinyal Detect
2 RxD In Receive Data
3 TxD Out Transmit Data
4 DTR Out Data Terminal Ready
5 GND - Ground
6 DSR In Data Set Ready
7 RST Out Request to Send
8 CTS In Clear to Send
9 RI In Ring Indicator
Pada bab ini akan diberikan teori dasar yang melandasi permasa-
lahan dan penyelesaiannya yang diangkat dalam proyek akhir ini. Teori
dasar yang diberikan meliputi: terminologi antena, yang memberikan
definisi dan klasifikasi tentang antena yang telah berkembang sampai saat
ini. Selanjutnya, diberikan tentang pola radiasi dan faktor array, arti dan
perlunya pembentukan pola radiasi (beamforming), teori resiprositas
(reciprocity), teori tentang antena array untuk konfigurasi linier dan
planar.
Pada bagian lain, diberikan tentang algoritma genetika dan
aplikasi-nya untuk menyelesaian optimasi dalam suatu permasalahan.
9 pin 9pin
2RxD 3TxD
3TxD 2RxD
5GND 5GND
4DTR
6DSR
1DCD
7RTS
Mikrokontroller PC
8CTS
2.4.2.1a Menu
Menu merupakan sekumpulan perintah yang dipakai dalam MS
Visual Basic. Berikut merupakan contoh tampilan salah satu menu pada
MS Visual Basic.
Pointer Picture
Label Tex Box
Frame Commond Button
Check Box Option Button
Combo Box List Box
HScrollBar VScrollBar
OLE
2.4.2.1d Form
Tempat untuk meletakkan kontrol dan sebagai layar secara
visual
Cara menempatkan Control (Tool Box) ada 2 cara
1. Click salah satu Control dan drag pada form dengan posisi dan
ukuran tertentu.
2. Double Click salah satu Control maka akan tampil pada form.
Kemudian atur posisi dan ukurannya.
Contoh pemakaian Control pada form yaitu :
Label Frame
Tex Box
Check Box
Option
Button
Timer
File List
Box
Data
HScrollBar Option Button
Dir List Box
List Box
VScrollBar
Combo Box
Gambar 2.13 Tampilan Tool Box didalam Form Visual Basic 6.0
21
2.4.2.1f Propertise
Propertise digunakan untuk menentukan setting suatu objek.
Suatu objek biasanya mempunyai beberapa properti yang dapat diatur
23
2.4.2.2 Database
Biasanya, jika kita ingin membuat suatau program manajemen
database, kita memerlukan file database yang akan diproses. File database
ini dibuat satu kali saja dan tidak perlu langsung diisi recordnya (dibuat
struktur databasenya saja). Selanjutnya file database tersebut diproses
lewat program. Untuk membuat file database, anda dapat menggunakan
program Visual Data Manager (VisData) atau program lain, misalnya
program Microsoft Access.
Visual Data Manager adalah suatu program “add-ins”, yaitu
program terpisah yang “ditempelkan” dalam MS Visual Basic 6.0,
sehingga bisa dipakai sebagai bagian dari MS Visual Basic 6.0.Visual
Data Manager akan dibahas secara terbatas, terutama untuk membuat dan
mengedit struktur database.
Cara memanggil Visual Data manager adalah sebagai berikut :
1. Pilih menu Add-Ins pada menu utama MS Visual Basic 6.0
2. Pilih Visual Data Manager. Jika anda memanggil Visual
Data Manager untuk pertama kalinya, maka mungkin
MS-Visual Basic 6.0 akan meminta anda menambahkan
suatu setting. Untuk itu harus dapat memberi tahu MS
Visual Basic 6.0 letak file yang akan di update, yaitu
biasanya file bernama Sistem yang terletak pada direktori
C:\WINDOWS\SISTEM.
24
Beli akan terurut berdasar kode barang dan di antara kode barang yang
sama, akan terurut berdasar tanggal faktur.
Tentukan pilihan Primary, Uniqe dan IgnoreNulls. Pilihan
Primary dipilih jika index yang sekarang adalah index primary, yaitu
index yang memuat satu atau lebih field dan bersifat unik (tidak ada yang
sama dalam satu tabel). Kunci primary ini biasa digunakan sebagai
pengenal suatu record jika tabel yang bersangkutan dihubungkan dengan
tabel lain. Ingat, dalam satu tabel hanya boleh ada satu primary key.
Pilihan Uniqe dipilih jika ingin index bersifat unik dan pilihan IgnorNulls
jika field yang kosong diabaikan. Kemudian klik OK. Bila ingin
menambahkan index lain, maka proses selanjutnya adalah sama dengan
proses pembuatan index yang pertama dan hanya boleh ada satu primary
dalam satu table.
Untuk menambah tabel data dalam satu file data base, proses
yang digunakan adalah sama saat pembuatan tabel yang pertama.
Bedanya hanyalah tidak perlu membuat file databasenya, tetapi cukup
membuka file database yang diinginkan, kemudian tinggal ditambahkan
tabel data yang baru. Berikut merupakan contoh gambar suatu proses
untuk menambahkan table lain didalam file database.
Properti Setting
Name dbBeli
Caption Data Barang
EOFAction 2-adDoAdNew
#define TEST 2
#if (TEST > 0)
...
baris source code;
#endif
#define TEST 0
#if (TEST > 0)
...
baris source code1;
#else
...
baris source code2;
#endif Pada potongan program diatas, baris source code2;
akan diolah sebab ekspresi TEST > 0 adalah salah.
2.5.4.2 Pernyataan
Dalam bahasa C adalah sebuah baris program yang dapat
diproses oleh compiler. Pernyataan diakhiri dengan tanda ; (titik-koma).
Setiap pernyataan dapat berisi beberapa ekspresi, operator maupun
operand. Contoh: return;
Sekelompok pernyataan yang disatukan dalam sebuah kurung
kurawal (kadang di sebut sebagai block of statement atau blok
pernyataan ) juga diperlakukan seperti sebuah pernyataan biasa, hal ini
terutama berguna saat anda akan mengatur eksekusi sekelompok
pernyataan dalam sebuah percabangan seperti contoh di bawah ini:
if (a > b)
{
pernyataan 1;
pernyataan 2;
pernyataan 3;
} jika ekspresi didalam kurung sesudah if ( ekspresi a > b)
bernilai benar maka seluruh pernyataan di dalam kurung kurawal akan
dieksekusi. Sebenarnya keyword if hanya dapat mengeksekusi satu
pernyataan sesudah ekspresi yang diuji olehnya ( pada contoh di atas
ekspresi a > b), namun dengan adanya kurung kurawal, pernyataan 1 s/d
pernyataan 3 seolah-olah dianggap satu pernyataan saja oleh compiler
yang kita gunakan.
2.5.4.3 Variabel
Adalah sebuah simbol yang mewakili sebuah alamat di memory
yang nilainya dapat dimanipulasi melalui nama tersebut dan mempunyai
ukuran tertentu. Ukuran ini disebut tipe data. Tipe data yang berbeda
kemungkinan mempunyai ukuran yang berbeda. Sintaks untuk
mendeklarasikan (menyatakan pertama kali adanya sebuah variabel)
adalah:
tipe-data NamaVariabel
Contoh: int variabel1;
Berikut ini adalah tipe data dan ukurannya.
Tipe data Ukuran (byte) Contoh
bool 1 bool a = true ; bool b = false
int, unsigned int 4 int a = -255 ; unsigned int b = 10
37
Variabel bertipe bool hanya mempunyai dua nilai yaitu true atau
false, jadi anda hanya dapat mengisinya dengan nilai ini.
2.5.4.4 Operator
Operator adalah karakter atau kumpulan karakter yang
digunakan untuk memanipulasi variabel. Karakter atau kumpulan
karakter ini dikenali secara spesifik oleh compiler sehingga variabel yang
diubah-ubah nilainya(operand) akan dikenai operasi sesuai dengan
definisi operasi yang dimiliki oleh operator tadi.
2.5.4.5 Percabangan
Percabangan (Control Flow) adalah teknik yang digunakan
untuk mengalihkan eksekusi program saat suatu ekspresi yang diuji
bernilai benar atau salah. Pertama, akan dibahas percabangan dengan if,
else if, dan else. Bentuk percabangan ini adalah yang paling sederhana.
Format penggunaannya adalah:
if (ekspresi1)
...
sourcecode1;
else if (ekspresi2)
...
sourcecode2;
else
...
sourcecode3;
Pada sourcecode ini, pertama-tama, if akan mengecek ekspresi1 ,
jika benar maka sourcecode1; akan dieksekusi, jika tidak, maka eksekusi
program berpindah ke else if (ekspresi2), else if akan mengecek ekspresi2,
jika ekspresi2 benar maka sourcecode2 akan dieksekusi, jika salah maka
eksekusi program berpindah ke sourcecode3. Pada format di atas, else if
38
sebenarnya opsional (boleh ada boleh juga tidak), jika anda hanya
memiliki dua alternatif "jawaban" maka bagian else if tidak perlu
digunakan.
2.5.4.6 Perulangan
Perulangan adalah teknik pemrograman yang digunakan untuk
mengatasi pernyataan program yang harus dikerjakan secara
berulang-ulang. Perulangan dalam C dapat diimplementasikan dengan
beberapa keyword, yaitu for, do .. while , while . Ketiga keyword ini lah
yang paling sering digunakan. Perulangan menggunakan for mempunyai
format sebagai berikut.
for( ekspresi1 ; ekspresi2 ;ekspresi3 )
{
...
source_code_ulang;
}
pada source code di atas ekspresi1 adalah ekspresi yang akan
dievaluasi pertama kali , kemudian ekspresi2 dievaluasi, jika nilainya
benar maka source_code_ulang; dieksekusi, setelah itu ekspresi3 akan
dieksekusi, kemudian jalannya program kembali lagi ke pernyataan for
dan ekspresi2 kembali dievaluasi (ekspresi1 tidak lagi dieksekusi), jika
benar maka source_code_ulang; dieksekusi, setelah itu ekspresi3 akan
dieksekusi, kemudian jalannya program kembali lagi ke pernyataan for ,
hal ini dilakukan berulang-ulang selama ekspresi2 masih bernilai benar.
3.1 Umum
Pada pengerjaan proyek akhir ini, dibagi menjadi 2 bagian yaitu
bagian Mikrokontroller yang meliputi software / hardware dan bagian
data base yang ada pada 2 PC dapur-kasir. Sebelum membahas tentang
perencanaan dan pembuatan, maka harus ada perencanaan yang matang
agar sistem dapat direalisasikan dengan baik sesuai target. Oleh karena
itu perlu kita perhatikan juga hardware yang hendak dikontrol.
41
42
RS 232
PC dapur
RS 232
PC kasir printer
Start
Input/ Kirim
Data
Terima database
Di Komp Dapur
Kirim Data
Buka Database /
Olah Database di Simpan Database Print Data
Komptr / Reset
Kasir
START
Cek semua
tombol
N
Ada tombol
diekan ?
Y
Cek kolom
N
Kolom tombol
ditemukan ?
Y
Cek baris
N
Baris tombol
ditemukan ?
Y
Data kolom dan baris
diolah menadi tombol yang
ditekan
return
1 2 3 -
Send
4 5 6
Up
7 8 9
Start
Inisialisasi
Tampilkan pesan
pesan inforamasi
Return
maka data data yang dapat ditampilkan akan terlihat di LCD selama
eksekusi.
1 uF/16 V
1 uF/16 V
IC MAX 232
IC AT89S51
DB 9
(ke akhir). Sedangkan jika yang digunakan adalah “>” atau “>=”, maka
pencarian dilakukan dari akhir file dengan arah mundur (ke awal).
Pernyataan kunci1, kunci2, dan seterusnya adalah suatu nilai
yang dicari. Perhatikan bahwa pencarian index dapat menggunakan
beberapa kunci yang berurutan sesuai dengan kunci indexnya. Sebagai
contoh, jika data mempunyai index dengan kunci pertama nomor kode
dan kunci ke dua adalah nama makanan , maka bisa memberikan
perintah pencarian seperti berikut :
Properti Setting
Name dbBeli
Caption Database Beli
Connect Acces
DatabaseName Database yang dipakai
54
misal D:\ta\beli.mdb
RecordsetType 0-Table (karena properti
0-Table (karena properti
Index dan metode Seek
hanya bisa dipakai pada
setting ini)
RecordSource Barang
If dbPembelian.Recordset.NoMatch Then
x = MsgBox("Data tak ditemukan ! ",
vbOKOnly, "Pencarian nama barang")
End If
yang terdapat dalam Visual Basic 6.0. Fasilitas ini dinamakan Visual
Data Manager.
Database yang ada di komputer dapur dan kasir tidak jauh
berbeda. Sistem utama yang dipakai ialah sama, yaitu pemanggilan
database yang berisi kode, nama, dan harga. Pemanggilan database ini
mengacu pada pemanggilan Index barang. Dimana sebelumnya pada
tabel di dalam Visual Data Manager ditambahkan index yang diberi
nama koderbg sebagai acuan dalam pemanggilan database yang lain.
Berikut gambar proses pembuatan index pada database Visual Data
Manager
Sistem utama yang ada pada PC kasir ialah sama. Namun, ada
beberapa fitur yang ditambahkan disini antara lain :
1. Tombol Simpan yang befungsi menyimpan data
pembelian sesudah pembeli memesan menu menu
2. Tombol Print yang berfungsi mencetak nota pembelian.
3. Tombol Lihat database yang berfungsi melihat daftar
pembelian yang tersimpan setelah tombol simpan
ditekan dengan masuk ke form yang ke dua
4. Tombol Total yang berfungsi menjumlah semua
pembelian oleh pelanggan.
56
4.1 Tujuan
Dalam proyek akhir ini dilakukan dua macam pengujian, yaitu
pengujian database dan perangkat keras.. Tujuan dari pengujian ini
adalah untuk mengetahui kinerja yang berupa kehandalan dan ketepatan
eksekusi antara program dengan modul yang telah dibuat. Sehingga akan
diperoleh kesimpulan apakah program yang dibuat dapat mengontrol
sistem yang ada.
59
60
Setelah itu klik tombol cari maka semua data akan membuka. Kolom
banyak sebagai variable tinggal menyesuaikan berapa harga yang tertera
pada kolom harga dan menjumlahkannya di kolom jumlah dengan
memberikan program hitung didalamnya.
Fungsi fungsi tombol lain yang ada di tampilan PC kasir diatas
ialah sebagai berikut :
♠ Tombol Total berfungsi sebagai menotal harga keseluruhan
pesanan.
♠ Tombol Print berfungsi mencetak nota pembelian
♠ Tombol Simpan berfungsi menyimpan data pembelian setiap kali
terjadi pembelian.
♠ Tombol End untuk menutup program
Database yang ada di PC dapur sistemnya sama dengan yang
ada di kasir, namun perbedaanya tidak sekompleks yang ada di kasir.
Berikut tampilan database yang ada di PC dapur.
4. Klik OK
5. Pilih menu File > New > C Files
6. Tulis listing program pada kotak dialog yang muncul
setelah proses no 5 di atas.
7. Setelah penulisan listing program pilih menu File > Save,
maka file yang disimpan tersebut akan berekstensi dot C
( .C )
8. Karena untuk dapat didownload ke Mikrokontroller harus
berekstensi .HEX maka harus diubah dulu dengan
mengkompile program.
9. Pada kota dialog Project, klik kanan pada nama project
yang dibuat dan pilih Add node Source /Aplication. Hal ini
dilakukan untuk memasukkan file dot C kedalam project .
Cari file yang tadi dibuat dan pilih Open.
10. Setelah itu pilih menu Project > Build All atau klik pada
ikon yang sudah tertera pada toolbar.
11. Sekarang file dot HEX dan siap untuk didownload ke
mikrokontroller.
Berikut merupakan contoh tampilan dari Ride51 yang
membuka salah satu contoh program.
#include<reg51.h>
void keypad();
sbit c4=P1^0;
sbit c3=P1^1;
sbit c2=P1^2;
sbit c1=P1^3;
sbit r4=P1^4;
sbit r3=P1^5;
sbit r2=P1^6;
sbit r1=P1^7;
sbit rs=P3^4;
sbit e=P3^5;
char fkey,tombol;
void main()
{
TMOD=0x20;//Timer1,mode2
64
SCON=0x52;
TH1=0xf4;
TR1=1;//meangktifkan timer;
ES=1;//mengaktifkan interupsi port serial
EA=1; //mengaktifkan
ins(2);
ins(0x3f);
ins(6);
ins(1);
ins(0x0C);
while(1)
{ keypad();
ins(0x80);
printf(tombol);
kirim(tombol);
void keypad()
{ fkey=0;
P1=0xff;
c1=0;
if(r1==0)
{fkey=1;tombol='1';}
if(r2==0)
{fkey=1;tombol='4';}
if(r3==0)
{fkey=1;tombol='7';}
if(r4==0)
{fkey=1;tombol='*';}//cancel
P1=0xff;
c2=0;
if(r1==0)
{fkey=1;tombol='2';}
if(r2==0)
{fkey=1;tombol='5';}
if(r3==0)
{fkey=1;tombol='8';}
if(r4==0)
{fkey=1;tombol='0';}
P1=0xff;
c3=0;
if(r1==0)
{fkey=1;tombol='3';}
65
if(r2==0)
{fkey=1;tombol='6';}
if(r3==0)
{fkey=1;tombol='9';}
if(r4==0)
{fkey=1;tombol='#';} //enter
P1=0xff;
c4=0;
if(r1==0)
{fkey=1;tombol=' ';}
if(r2==0)
{fkey=1;tombol='$';}//ok
if(r3==0)
{fkey=1;tombol='<';}//up
if(r4==0)
{fkey=1;tombol='>';}//down
if(fkey==1)
delay(20000);
}
4.5.2 Keypad
Pada bagian ini akan dibahas fungsi fungsi dari tombol tombol
yang ada pada keypad.
■ Tombol ENT berfungsi untuk menyimpan data
sementara pada AT89S51 sebelum dikirim ke
computer dapur.
■ Tombol angka 0 sampai 9 berfungsi menampilkan data
data berupa angka yang akan dikirim ke PC dapur.
■ Tombol Up dan Down berfungsi untuk berpindah baris
■ Tombol CAN berfungsi untuk mengedit data yang sudah
dimasukkan ke memori sementara atau yang data yang
diinputkan dengan penekanan tombol ENT.
■ Tombol SEND berfungsi untuk mengirimkan data yang
sudah disiapkan memori sementara ke PC yang ada di
dapur.
void main()
{
TMOD=0x20;//Timer1,mode2
SCON=0x52;
TH1=0xf4;
TR1=1;//meangktifkan timer;
ES=1;//mengaktifkan interupsi port serial
EA=1; //mengaktifkan
while(1)
kirim('a');
}
5.1 Kesimpulan
Dari Pengujian Perangkat lunak dan perangkat keras yang telah
dilakukan pada pembuatan sistem layanan pada restoran ini diperoleh
kesimpulan yaitu :
1. Rangkaian Mikrokontroller AT89S51 digunakan sebagai media
penghubung antar module seperti keypad dan LCD.
Mikrokontroller AT89S51 juga digunakan sebagai pengendali,
karena disinilah tempat program di download untuk mengatur
seluruh proses baik yang ada di rangkaian itu sendiri maupun
pada PC.
2. Untuk menguji komunikasi serial antara PC dengan
Mikrokontroller maka digunakan tampilan pada hyperterminal.
3. Interval pada propertise Timer yang merupakan fasilitas dari VB
dapat menentukan kecepatan pengiriman data dari
Mikrokontroller ke PC. Jadi semakin kecil interval, maka
kecepatan pengiriman data akan semakin cepat.
5. Penggunaan MSCom pada tiap komputer bergantung pada
kebutuhan port yang akan digunakan. Karena pada PC dapur
menggunakan 2 port, maka MSCom yang digunakan sebanyak 2.
Sedangkan pada PC kasir cukup 1 buah karena hanya memakai 1
port.
6. Proses yang ada di database merupakan aplikasi dari fungsi
pemanggilan data dengan menggunakan index, sedangkan untuk
PC yang ada di PC kasir ditambah dengan program record data,
print data, dan program billing.
7. Untuk men-sinkronkan komunikasi antar Mikrokontroller dan PC
Baudrate. Baudrate yang digunakan pada komunikasi disini
adalah 2400 Kbps.
8. Pengiriman data ke PC dilakukan secara serial, yaitu satu per
satu. Karena pengaruh dari kecepatan pengiriman data, maka data
yang tampil pada PC terlihat seperti bersamaan.
71
72
5.2 Saran
Untuk penyempurnaan lebih lanjut maka beberapa saran perlu
ditambahkan antara lain :
1. Untuk pengoperasian sistem ini masih digunakan jasa
manusia pada pangantaran pesanan. Hal ini dapat
disempurnakan dengan sebuah robot pengantar makanan.
2. Sistem pemesan menu ini masih terbatas pada rumah
makan yang berskala besar. Dimana biasanya hanya ada
sepuluh meja. Jadi untuk pelanggannya pun sangat sedikit.
3. Sistem ini dapat juga digunakan pada rumah makan yang
menyediakan fasilitas drive thru . Pemesanan dengan
sistem ini dilakukan dengan masih mengendarai atau
berada di dalam mobil. Jadi, pelanggan tersebut mengakses
keypad yang dirancang sedemikan rupa dengan LCD dan
mikro tersebut untuk kemudian dapat mengambilnya pada
bagian pengambilan pesanan yang berlainan tempat.
DAFTAR PUSTAKA
[1] Retna Prsetia, Catur Edi Widodo, Teori dan Praktek Interfacing
Port Pararel dan Port Serial Komputer dengan Visual Basic 6.0,
ANDI Yogyakarta, 2004.
[2] M.Agus J. Alam, Manajemen Database dengan Microsoft Visual
Basic Versi 6.0, ELEX MEDIA - JAKARTA, 2003.
[3] Julia Case Bradley, Anita C. Millspaugh, Programming in Visual
Basic 6.0, McGraw – HILL INTERNATIONAL EDITIONS, 1999
[4] Atmel, 8-bit Microcontroller with 4K Bytes
In System Programmable Flash.
[5] Henri S.V. Simanjuntak, Dasar – dasar
Mikroprosesor.
[6] Paulus Andi Nalwan, Panduan praktis teknik
antarmuka dan pemrograman mikrokontroler
AT89C51.
73
LAMPIRAN
Listing Program VB
mkode3 = txtcari3.Text
mkode4 = txtcari4.Text
If dbbeli.Recordset.NoMatch Then
txtcari.Text = ""
End If
If dbbeli4.Recordset.NoMatch Then
txtcari4.Text = ""
End If
If dbbeli.Recordset.NoMatch Then
If dbbeli2.Recordset.NoMatch Then
End If
If dbbeli3.Recordset.NoMatch Then
End If
If dbbeli4.Recordset.NoMatch Then
End If
End Sub
Private Sub cmdend_Click()
End
End Sub
txtcari2.Text = ""
txtcari4.Text = ""
txthitung.Text = Val(txthitung.Text) + 1
End Sub
End If
End Sub
Listing Program C
#include<reg51.h>
void main()
{
koljum1=-1;
baris=1;
kj=0;
while(1)
{ keypad();
menu();
if(fkey==
{ kj=0;
baris--;
if(baris==0)
baris=4;
else
{ baris++;
if(baris==5)
baris=1;
kj=0;
}
}
if(tombol=='$')
{ kirim('a');
kirim_kar(kode3);
bersih=0;
while(kode1[bersih]!=0)
{ kode1[bersih]=0;
bersih++;
}
bersih=0;
while(kode3[bersih]!=0)
{ kode3[bersih]=0;
}
bersih=0;
while(jml1[bersih]!=0)
{ jml1[bersih]=0;
bersih++;
}
bersih=0;
while(jml2[bersih]!=0)
{ jml2[bersih]=0;
bersih++;
}
bersih=0;
while(jml4[bersih]!=0)
koljum1=-1;
koljum2=-1;
koljum3=-1;
koljum4=-1;
void keypad()
{ fkey=0;
if(r1==0)
if(r3==0)
{fkey=1;tombol='9';}
if(r4==0)
{fkey=1;tombol='#';} //enter
if(r1==0)
{fkey=1;tombol=' ';}
if(r2==0)
if(fkey==1)
delay(20000);
{int x;
x=0;
while(kar1[x]!=0)
{ kirim(kar1[x]);
x++;
}
}
e=1;
delay(50);
}
e=1;
P2=gf;
delay(50);
e=0;
x++;
}
}
{ gambar(" ",0xc0);
gambar("3.",0xc0);
gambar(kode3,0xc2);
if(kj==0)
printf('_');
gambar(jml3,0xca);
if(baris==4)
{ if(kj==0)
{ kolkod4++;
kode4[kolkod4]=tombol;
}
}
if(baris==2)
{ if(kj==0)
{ if(kolkod2<0)
goto xx;
kode2[kolkod2]=0;
kolkod2--;
}
else
{ if(koljum2<0)
goto xx;
jml2[koljum2]=0;
koljum2--;
}
}
4X4 P1.4 (Pin 7 PORT 1) R1 (J3)
Keypad Module P1.5 (Pin 8 PORT 1) R2 (J3)
P1.6 (Pin 9 PORT 1) R3 (J3)
P1.7 (Pin 10 PORT 1) R4 (J3)
4 x 4 Keypad Module merupakan suatu modul keypad
berukuran 4 kolom x 4 baris. Modul ini dapat difungsikan sebagai
input dalam aplikasi seperti pengaman digital, datalogger, absensi, DT-51™ Minimum System v3.0 DT-I/O 4x4
pengendali kecepatan motor, robotik, dan sebagainya. dan PetraFuz Keypad Module
VCC (Pin 1 Port CONTROL) VCC (J5)
Spesifikasi Hardware PC.0 (Pin 1 PORT C & PORT 1) C1 (J3)
PC.1 (Pin 2 PORT C & PORT 1) C2 (J3)
1. Memiliki 16 tombol (fungsi tombol tergantung aplikasi).
2. Memiliki konfigurasi 4 baris (input scanning) dan 4 kolom (output PC.2 (Pin 3 PORT C & PORT 1) C3 (J3)
scanning).
3. Kompatibel penuh dengan DT-51™ Low Cost Series dan DT- PC.3 (Pin 4 PORT C & PORT 1) C4 (J3)
AVR Low Cost Series. Mendukung DT-51™ Minimum System PC.4 (Pin 5 PORT C & PORT 1) R1 (J3)
(MinSys) ver 3.0, DT-51™ PetraFuz, DT-BASIC Series, dan lain-
lain. PC.5 (Pin 6 PORT C & PORT 1) R2 (J3)
PC.6 (Pin 7 PORT C & PORT 1) R3 (J3)
Tata Letak
PC.7 (Pin 8 PORT C & PORT 1) R4 (J3)
Contoh Program
ORG 0100H
ANL TMOD,#00101111B
NC = tidak terhubung MOV TH1,#0FDH
ke mana-mana MOV TL1,#0FDH
Cx = kolom ke-x MOV SCON,#01010000B
Rx = baris ke-x MOV PCON,#10000000B
Contoh Koneksi SETB TR1
RET
Pada dasarnya pin Cx dan Rx pada J3 bebas dihubungkan ke
pin input/output manapun pada mikrokontroler. Koneksi berikut Start: MOV P1,#0FFH
ini hanya contoh dan tidak mutlak. MOV SP,#40H
LCALL InitSerial
DT-51™ Low Cost Series DT-I/O 4x4
dan DT-AVR Low Cost Series Keypad Module ChkB1: SETB P1.7
VCC (Pin 2 PORT1) atau +5VDC VCC (J3) CLR P1.4
ChkB1K1: JB P1.0,ChkB1K2
P1.0 (Pin 3 PORT1) C1 (J3) MOV A,#'1'
P1.1 (Pin 4 PORT1) C2 (J3) LCALL LDelay
P1.2 (Pin 5 PORT1) C3 (J3) LCALL LDelay
P1.3 (Pin 6 PORT1) C4 (J3)
LCALL TxByte LCALL LDelay
ChkB1K2: JB P1.1,ChkB1K3 LCALL LDelay
MOV A,#'2' LCALL TxByte
LCALL LDelay ChkB3K3: JB P1.2,ChkB3K4
LCALL LDelay MOV A,#'9'
LCALL TxByte LCALL LDelay
ChkB1K3: JB P1.2,ChkB1K4 LCALL LDelay
MOV A,#'3' LCALL TxByte
LCALL LDelay ChkB3K4: JB P1.3,ChkB4
LCALL LDelay MOV A,#'C'
LCALL TxByte LCALL LDelay
ChkB1K4: JB P1.3,ChkB2 LCALL LDelay
MOV A,#'A' LCALL TxByte
LCALL LDelay
LCALL LDelay ChkB4: SETB P1.6
LCALL TxByte CLR P1.7
ChkB4K1: JB P1.0,ChkB4K2
ChkB2: SETB P1.4 MOV A,#'*'
CLR P1.5 LCALL LDelay
ChkB2K1: JB P1.0,ChkB2K2 LCALL LDelay
MOV A,#'4' LCALL TxByte
LCALL LDelay ChkB4K2: JB P1.1,ChkB4K3
LCALL LDelay MOV A,#'0'
LCALL TxByte LCALL LDelay
ChkB2K2: JB P1.1,ChkB2K3 LCALL LDelay
MOV A,#'5' LCALL TxByte
LCALL LDelay ChkB4K3: JB P1.2,ChkB4K4
LCALL LDelay MOV A,#'#'
LCALL TxByte LCALL LDelay
ChkB2K3: JB P1.2,ChkB2K4 LCALL LDelay
MOV A,#'6' LCALL TxByte
LCALL LDelay ChkB4K4: JB P1.3,LoopChk
LCALL LDelay MOV A,#'D'
LCALL TxByte LCALL LDelay
ChkB2K4: JB P1.3,ChkB3 LCALL LDelay
MOV A,#'B' LCALL TxByte
LCALL LDelay
LCALL LDelay LoopChk: AJMP ChkB1
LCALL TxByte
AJMP $
ChkB3: SETB P1.5 END
CLR P1.6
ChkB3K1: JB P1.0,ChkB3K2
MOV A,#'7' Terima Kasih atas kepercayaan Anda menggunakan produk
LCALL LDelay kami, bila ada kesulitan, pertanyaan atau saran mengenai produk
LCALL LDelay ini silahkan menghubungi technical support kami :
LCALL TxByte
ChkB3K2: JB P1.1,ChkB3K3 support@innovativeelectronics.com
MOV A,#'8'
VCC
J5
1
Keypad Rubber 4X4
VCC
1
2
3
4
5
6
7
8
47K
47K
47K
47K
47K
47K
R1
47K
47K
J1
R2
R3
R4
R5
R6
R7
R8
C1
C2
C3
C4
VCC
Header 5x2
2
4
6
8
10
J3
1
3
5
7
9
IN4148
IN4148
IN4148
IN4148
D1
D2
D3
D4
CR1
CR2
CR3
CR4
C1
C3
R1
R3
R1
R2
R3
R4
"
!
#
! "#
$%&!%
'()
*
++
,%-.
&*
&,
* .
/0
12
*)++*34+2+2456++**7!++228
9
:
,;1<,;252. 8
3 $
9!
+= #
+<,+
#
+<*+
=#
>$ ;
- ;
*2. 4/
"
+,,4+,+5##8
'!.
+*+4+,,5##8
,:"
3,4' ,5##8
*:!.
*,4,+,5##8
1?.
2.
. @
# %%
&'# (
,
'-#!
.#'+/!'!
A#
#@ - - ; 7 >#
!
( ( (
+ 1+
(
/2%( ( + +
= #
>
+ <,+
2
#
>
+ <*+
0## '
*0 .
A#
#@ -
- ; 7
(
( (
(
( '1 (
5/2%8
(
B. +1( ( <+ (
A (C,+
( (
/
+ +( (
(C,+
A
, #)
5/8 ( (
C,+
A +'+ #)
5/2%8
A
9* #)
5/0%8 ( C'
*A$
!
#@ /%
( +(
( ,+( !
% $ /25<8
( + ( !
% $/258
' > B&/ 5B
/
A8
, >&? B&/
* 0 B&/ & @
1 + B&/ @+
9 B&/ @
3 B&/ @
+ B&/ @
' B&/ @'
, B&/ @,
* B&/ @*
' 1 B&/ @1
! ) '( !
% $/05<8
6 +( !
% $/058
6.3 Interface Timing Chart
AC Characteristics(V =4.5V~5.5V,Ta=-30~+85 7
0RGH &KDUDFWHULVWLF 6\PERO 0LQï 7\Sï 0D[ï 8QLW
(ý&\FOHý7LPH WF èíí ð ð
(ý5LVHýîý)DOOý7LPH W5ñW) ð ð ëí
(ý3XOVHý:LGWKýõ+LJKñý/RZô WZ ëêí ð ð
:ULWHý0RGH 5î:ýDQGý56ý6HWXSý7LPH WVXì éí ð ð QV
õ5HIHUýWRý)LJðçô
5î:ýDQGý56ý+ROGý7LPH W+ì ìí ð ð
'DWDý6HWXSý7LPH WVXë åí ð ð
'DWDý+ROGý7LPH W+ë ìí ð ð
(ý&\FOHý7LPH WF èíí ð ð
(ý5LVHýîý)DOOý7LPH W5ñW) ð ð ëí
(ý3XOVHý:LGWKýõ+LJKñý/RZô WZ ëêí ð ð
5HDGý0RGH 5î:ýDQGý56ý6HWXSý7LPH WVX éí ð ð QV
õ5HIHUýWRý)LJðæô
5î:ýDQGý56ý+ROGý7LPH W+ ìí ð ð
'DWDý2XWSXWý'HOD\ý7LPH W' ð ð ìëí
'DWDý+ROGý7LPH W'+ è ð ð
56 9 , +ì
9 , /ì
W68ì W Kì
5î: 9 , /ì
9 , /ì
WZ W Kì
WI
9 , +ì 9 , +ì
( 9 , /ì 9 , /ì 9 , /ì
WU W 68ë W Kë
9 , +ì 9 , +ì
'%ía'%æ
9 , /ì
9DOLG 'DWD
9 , /ì
W&
)LJXUHýçýïýý:ULWHý0RGHý7LPLQJý'LDJUDP
56 9 , +ì
9 , /ì
W 68 WK
9 , +ì 9 , +ì
5î:
WZ WK
WI
9 , +ì 9 , +ì
( 9 , /ì 9 , /ì 9 , /ì
WU W' W' +
9 , +ì 9 , +ì
'%ía'%æ
9 , /ì
9DOLG 'DWD
9 , /ì
W&
)LJXUHýæýïýý5HDGý0RGHý7LPLQJý'LDJUDP
+(>1
ýý,QVWUXFWLRQý7DEOH
,QVWUXFWLRQý&RGH ([HFXWLRQý
,QVWUXFWLRQ 'HVFULSWLRQ WLPHýõIRVF ý
56 5î: '%æ '%ç '%è '%é '%ê '%ë '%ì '%í ëæíýN+]ô
&OHDU
ý:ULWHý¦ëí+§ýWRý''5$0ýDQGýVHWý
í í í í í í í í í ì ìïèêýPVý
'LVSOD\ ý''5$0ýDGGUHVVýWRý¦íí+§ýIURPý$&
ý6HWý''5$0ýDGGUHVVýWRý¦íí+§ý
ýIURPý$&ýDQGýUHWXUQýFXUVRUýWRýLWV
5HWXUQý
í í í í í í í í ì ð ýRULJLQDOýSRVLWLRQýLIýVKLIWHGïý ìïèêýPV
+RPH
ý7KHýFRQWHQWVýRIý''5$0ýDUHýQRWý
ýFKDQJHGï
(QWU\ý0RGHý ý$VVLJQýFXUVRUýPRYLQJýGLUHFWLRQý
6HWý í í í í í í í ì ,î' 6+ êäýPV
ýDQGýHQDEOHýWKHýVKLIWýRIýHQWLUHýGLVSOD\ïý
ý6HWýGLVSOD\õ'ôñýFXUVRUõ&ôñý
'LVSOD\ý21î êäýPV
í í í í í í ì ' & % ýDQGýEOLQNLQJýRIýFXUVRUõ%ôýRQîRIIý
2))ý&RQWURO
ýFRQWUROýELWï
&XUVRUýRU ý6HWýFXUVRUýPRYLQJýDQGýGLVSOD\ý
êäýPV
ý'LVSOD\ý í í í í í ì 6î& 5î/ ð ð ýVKLIWýFRQWUROýELWñýDQGýWKHýGLUHFWLRQñý
6KLIW ýZLWKRXWýFKDQJLQJýRIý''5$0ýGDWDïý
ý6HWýLQWHUIDFHýGDWDýOHQJWKýõ'/ãý
ýåðELWîéðELWôñýQXPEHUVýRIýGLVSOD\ýOLQH êäýPV
)XQFWLRQý6HW
í í í í ì '/ 1 ) ð ðý
ýõ1ãýëðOLQHîìðOLQHôýDQGñýGLVSOD\
ýIRQWýW\SHýõ)ãèuììGRWVîèuåýGRWVô
6HWý&*5$0ý ý6HWý&*5$0ýDGGUHVVýLQýDGGUHVVý
í í í ì $&è $&é $&ê $&ë $&ì $&í êäýPV
$GGUHVV ýFRXQWHUï
6HWý''5$0ý ý6HWý''5$0ýDGGUHVVýLQýDGGUHVVý êäýPV
í í ì $&ç $&è $&é $&ê $&ë $&ì $&í
$GGUHVV ýFRXQWHUï
ý:KHWKHUýGXULQJýLQWHUQDOýRSHUDWLRQ
5HDGý%XV\ý
ýRUýQRWýFDQýEHýNQRZQýE\ýUHDGLQJý%)ïý
)ODJýDQGý
í ì %) $&ç $&è $&é $&ê $&ë $&ì $&í íýPV
ý7KHýFRQWHQWVýRIýDGGUHVVýFRXQWHU
$GGUHVV
ýFDQýDOVRýEHýUHDGï
:ULWHý'DWDýWRý ý:ULWHýGDWDýLQWRýLQWHUQDOý5$0ý
ì í 'æ 'ç 'è 'é 'ê 'ë 'ì 'í éêýPV
5$0 ýõ''5$0î&*5$0ôï
5HDGý'DWDý ý5HDGýGDWDýIURPýLQWHUQDOý5$0ý
ì ì 'æ 'ç 'è 'é 'ê 'ë 'ì 'í éêýPV
IURPý5$0 ýõ''5$0î&*5$0ôï
ýýýýýýýýýýýýóý¦ð¦ãýGRQ©WýFDUH
127(ãý:KHQýDQý038ýSURJUDPýZLWKýFKHFNLQJýWKHý%XV\ý)ODJõ'%æôýLVýPDGHñýLWýPXVWýEHýQHFHVVDU\ýìîë)RVFýLV
ýýýýýýýýýýýýýQHFHVVDU\ýIRUýH[HFXWLQJýWKHýQH[WýLQVWUXFWLRQýE\ýWKHýIDOOLQJýHGJHýRIýWKHýö(öýVLJQDOýDIWHUýWKHý%XV\ý)ODJýõ'%æôý
ýýýýýýýýýýýýýJRHVýWRý¦/RZ§ïý
)+0- ;:,6D**))?**7
)+0- ;:,6D**))?**7
1#
1= 2. C,
A#
#@ 2 -
- ; 7
C+ , +
() 2≥2
C+ + +
C+
2 > 2 '+
C+
,+
> C+
#
# C+
,+
$$
1$$= 2.
1$$()
# #
1$$2 >
- 2
8)#@#
, F 8: #$G
*'B"
1 $$>#
2##
92$> @
C,
A# 2$
B.# 0
... *+
# $ # 3*B
/# 0
. +
# $ # 3*B
0
.
B.# 5% 8
,+
= ..# .
3*B
#$ #
0
.
/# +
'
= 3*B
# $ #
0
... '+
B.#
, # ...#
3+H>B
&B#
$ # 3*B
0
.
..#
# + , *+ , + &*+
*
2
+# ,# +# ,# +
+B"D,+B"E
(@ 0
.
1 ,+#&E
5 8 %@
'+#
B $ %E
. 0
..
9 ++#&E
5 8
#
0
.
)#. '+!
3 #.
! *B
@
9: I#2
√ √ √ √ √ √ √ √ √ =$.@ $
$
=
√ √ √ √ √ √ √ =$. $
2.
345*67**
$8' 5*
+'#
+B !
+ .
# $ @K #.
.@
$# .. E
+A$.
# .G
@
E@
#.E$.@ #
.
.E#
.$$
+
;%$.
$ . K
.#
.%
+'. "%.
$ $./2#$
.B . " $
+,A$.
$ # E@ ..$
. $
.A$#
E#.
.$.$%
A
.
0.
.
% . . . # @% #
# . "
0
E.$
?
6
)# %
+* # #@./2-
+1A$.$$E
.
+9%$.#@
E@ $
# ##%#
.@
.. ./2-
@G$ #@
E. E#@
. # $
E
#@
.
./2- . $#.
$
.$$.%$#
#
@
+
+?../2#E %;.
..$$ #
+./2#.@. #
A$ . /2 # @ $ #E . ##
#
+ '+
> %
.#
9+H
+ ./2#.@.#. E
. #$
+ . /2 # . @ $ % .
E . % ;% E E #
.
/
A# $ $
/ #
!%
#
/-
A# $
$
. #
- ;
5% 4L+## +## 4 +##
8
- ;
4C5 <@8&
58
- ;
5% ++## ++,##
8 L++##
@ +,##
/-
A# $
$58
A# 2 2
- ;$
; +## +## ; +##
;C5 <@8&
- ;
$
- ;$
+## +## +##
$ M+
#
$#
- ;$
+9? ?
C# % $.
?C# % $.
SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004
description/ordering information
The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply TIA/EIA-232-F
voltage levels from a single 5-V supply. Each receiver converts TIA/EIA-232-F inputs to 5-V TTL/CMOS levels.
These receivers have a typical threshold of 1.3 V, a typical hysteresis of 0.5 V, and can accept ±30-V inputs.
Each driver converts TTL/CMOS input levels into TIA/EIA-232-F levels. The driver, receiver, and
voltage-generator functions are available as cells in the Texas Instruments LinASIC library.
ORDERING INFORMATION
ORDERABLE TOP-SIDE
TA PACKAGE†
PART NUMBER MARKING
PDIP (N) Tube of 25 MAX232N MAX232N
Tube of 40 MAX232D
SOIC (D) MAX232
Reel of 2500 MAX232DR
0°C to 70°C
Tube of 40 MAX232DW
SOIC (DW) MAX232
Reel of 2000 MAX232DWR
SOP (NS) Reel of 2000 MAX232NSR MAX232
PDIP (N) Tube of 25 MAX232IN MAX232IN
Tube of 40 MAX232ID
SOIC (D) MAX232I
−40°C
−40 C to 85
85°C
C Reel of 2500 MAX232IDR
Tube of 40 MAX232IDW
SOIC (DW) MAX232I
Reel of 2000 MAX232IDWR
† Package drawings, standard packing quantities, thermal data, symbolization, and PCB design
guidelines are available at www.ti.com/sc/package.
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of
Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
Function Tables
EACH DRIVER
INPUT OUTPUT
TIN TOUT
L H
H L
H = high level, L = low
level
EACH RECEIVER
INPUT OUTPUT
RIN ROUT
L H
H L
H = high level, L = low
level
10 7
T2IN T2OUT
12 13
R1OUT R1IN
9 8
R2OUT R2IN
absolute maximum ratings over operating free-air temperature range (unless otherwise noted)†
Input supply voltage range, VCC (see Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to 6 V
Positive output supply voltage range, VS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCC − 0.3 V to 15 V
Negative output supply voltage range, VS− . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to −15 V
Input voltage range, VI: Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to VCC + 0.3 V
Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ±30 V
Output voltage range, VO: T1OUT, T2OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VS− − 0.3 V to VS+ + 0.3 V
R1OUT, R2OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to VCC + 0.3 V
Short-circuit duration: T1OUT, T2OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unlimited
Package thermal impedance, θJA (see Notes 2 and 3): D package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73°C/W
DW package . . . . . . . . . . . . . . . . . . . . . . . . . . 57°C/W
N package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67°C/W
NS package . . . . . . . . . . . . . . . . . . . . . . . . . . . 64°C/W
Operating virtual junction temperature, TJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150°C
Storage temperature range, Tstg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −65°C to 150°C
† Stresses beyond those listed under “absolute maximum ratings” may cause permanent damage to the device. These are stress ratings only, and
functional operation of the device at these or any other conditions beyond those indicated under “recommended operating conditions” is not
implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
NOTES: 1. All voltages are with respect to network GND.
2. Maximum power dissipation is a function of TJ(max), θJA, and TA. The maximum allowable power dissipation at any allowable
ambient temperature is PD = (TJ(max) − TA)/θJA. Operating at the absolute maximum TJ of 150°C can affect reliability.
3. The package thermal impedance is calculated in accordance with JESD 51-7.
electrical characteristics over recommended ranges of supply voltage and operating free-air
temperature (unless otherwise noted) (see Note 4 and Figure 4)
PARAMETER TEST CONDITIONS MIN TYP‡ MAX UNIT
VCC = 5.5 V, All outputs open,
ICC Supply current 8 10 mA
TA = 25°C
‡ All typical values are at VCC = 5 V and TA = 25°C.
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.
DRIVER SECTION
electrical characteristics over recommended ranges of supply voltage and operating free-air
temperature range (see Note 4)
PARAMETER TEST CONDITIONS MIN TYP† MAX UNIT
VOH High-level output voltage T1OUT, T2OUT RL = 3 kΩ to GND 5 7 V
VOL Low-level output voltage‡ T1OUT, T2OUT RL = 3 kΩ to GND −7 −5 V
ro Output resistance T1OUT, T2OUT VS+ = VS− = 0, VO = ±2 V 300 Ω
IOS§ Short-circuit output current T1OUT, T2OUT VCC = 5.5 V, VO = 0 ±10 mA
IIS Short-circuit input current T1IN, T2IN VI = 0 200 µA
† All typical values are at VCC = 5 V, TA = 25°C.
‡ The algebraic convention, in which the least-positive (most negative) value is designated minimum, is used in this data sheet for logic voltage
levels only.
§ Not more than one output should be shorted at a time.
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.
RECEIVER SECTION
electrical characteristics over recommended ranges of supply voltage and operating free-air
temperature range (see Note 4)
PARAMETER TEST CONDITIONS MIN TYP† MAX UNIT
VOH High-level output voltage R1OUT, R2OUT IOH = −1 mA 3.5 V
VOL Low-level output voltage‡ R1OUT, R2OUT IOL = 3.2 mA 0.4 V
Receiver positive-going input
VIT+ R1IN, R2IN VCC = 5 V, TA = 25°C 1.7 2.4 V
threshold voltage
Receiver negative-going input
VIT− R1IN, R2IN VCC = 5 V, TA = 25°C 0.8 1.2 V
threshold voltage
Vhys Input hysteresis voltage R1IN, R2IN VCC = 5 V 0.2 0.5 1 V
ri Receiver input resistance R1IN, R2IN VCC = 5, TA = 25°C 3 5 7 kΩ
† All typical values are at VCC = 5 V, TA = 25°C.
‡ The algebraic convention, in which the least-positive (most negative) value is designated minimum, is used in this data sheet for logic voltage
levels only.
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.
R1OUT RL = 1.3 kΩ
R1IN
or
or
Pulse R2OUT See Note C
R2IN
Generator
(see Note A)
CL = 50 pF
(see Note B)
TEST CIRCUIT
≤10 ns ≤10 ns
3V
90% 90%
Input 50% 50%
10% 10%
0V
500 ns
tPLH
tPHL
VOH
Output 1.5 V 1.5 V
VOL
WAVEFORMS
NOTES: A. The pulse generator has the following characteristics: ZO = 50 Ω, duty cycle ≤ 50%.
B. CL includes probe and jig capacitance.
C. All diodes are 1N3064 or equivalent.
Figure 1. Receiver Test Circuit and Waveforms for tPHL and tPLH Measurements
TEST CIRCUIT
≤10 ns ≤10 ns
3V
90% 90%
Input 50% 50%
10% 10%
0V
5 µs
tPLH
tPHL
90% VOH
90%
Output
10% 10%
VOL
tTHL tTLH
0.8 (V –V ) 0.8 (V –V )
OH OL OL OH
SR + or
t t
TLH THL
WAVEFORMS
NOTES: A. The pulse generator has the following characteristics: ZO = 50 Ω, duty cycle ≤ 50%.
B. CL includes probe and jig capacitance.
Figure 2. Driver Test Circuit and Waveforms for tPHL and tPLH Measurements (5-µs Input)
Pulse
Generator EIA-232 Output
(see Note A)
3 kΩ CL = 2.5 nF
TEST CIRCUIT
≤10 ns ≤10 ns
Input
90% 90%
10% 1.5 V 1.5 V 10%
20 µs
tTLH
tTHL
VOH
3V 3V
Output
−3 V −3 V
VOL
6V
SR +
t or t
THL TLH
WAVEFORMS
NOTE A: The pulse generator has the following characteristics: ZO = 50 Ω, duty cycle ≤ 50%.
Figure 3. Test Circuit and Waveforms for tTHL and tTLH Measurements (20-µs Input)
APPLICATION INFORMATION
5V
+
CBYPASS = 1 µF
−
16
C3† 1 µF
VCC
1 2
C1+ 8.5 V
C1 1 µF 3 VS+
C1−
4 6
VS− −8.5 V
C2+
C2 1 µF 5 C4 1 µF
C2− +
11 14
EIA-232 Output
From CMOS or TTL
10 7
EIA-232 Output
12 13
EIA-232 Input
To CMOS or TTL
9 8
EIA-232 Input
0V
15
GND
† C3 can be connected to VCC or GND.
NOTES: A. Resistor values shown are nominal.
B. Nonpolarized ceramic capacitors are acceptable. If polarized tantalum or electrolytic capacitors are used, they should be
connected as shown.
PINS **
14 16 18 20
DIM
1 8
0.070 (1,78)
D
0.045 (1,14)
Seating Plane
0.020 (0,51)
0.050 (1,27) 0.010 (0,25)
0.014 (0,35)
8 5
Gage Plane
1 4 0.010 (0,25)
A 0°– 8°
0.044 (1,12)
0.016 (0,40)
Seating Plane
0.010 (0,25)
0.069 (1,75) MAX 0.004 (0,10)
0.004 (0,10)
PINS **
8 14 16
DIM
4040047/E 09/01
0.020 (0,51)
0.050 (1,27) 0.010 (0,25)
0.014 (0,35)
16 9
0.419 (10,65)
0.400 (10,15)
0.299 (7,59) 0.010 (0,25) NOM
0.291 (7,39)
Gage Plane
0.010 (0,25)
1 8
0°– 8° 0.050 (1,27)
A 0.016 (0,40)
Seating Plane
0.012 (0,30)
0.104 (2,65) MAX 0.004 (0,10)
0.004 (0,10)
PINS **
16 18 20 24 28
DIM
4040000/E 08/01
Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,
enhancements, improvements, and other changes to its products and services at any time and to discontinue
any product or service without notice. Customers should obtain the latest relevant information before placing
orders and should verify that such information is current and complete. All products are sold subject to TI’s terms
and conditions of sale supplied at the time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale in
accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI
deems necessary to support this warranty. Except where mandated by government requirements, testing of all
parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible for
their products and applications using TI components. To minimize the risks associated with customer products
and applications, customers should provide adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right,
copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process
in which TI products or services are used. Information published by TI regarding third-party products or services
does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.
Use of such information may require a license from a third party under the patents or other intellectual property
of the third party, or a license from TI under the patents or other intellectual property of TI.
Reproduction of information in TI data books or data sheets is permissible only if reproduction is without
alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction
of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for
such altered documentation.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that
product or service voids all express and any implied warranties for the associated TI product or service and
is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.
Following are URLs where you can obtain information on other Texas Instruments products and application
solutions:
Products Applications
Amplifiers amplifier.ti.com Audio www.ti.com/audio
Data Converters dataconverter.ti.com Automotive www.ti.com/automotive
DSP dsp.ti.com Broadband www.ti.com/broadband
Interface interface.ti.com Digital Control www.ti.com/digitalcontrol
Logic logic.ti.com Military www.ti.com/military
Power Mgmt power.ti.com Optical Networking www.ti.com/opticalnetwork
Microcontrollers microcontroller.ti.com Security www.ti.com/security
Telephony www.ti.com/telephony
Video & Imaging www.ti.com/video
Wireless www.ti.com/wireless