Kamis, 02 Februari 2012
Membuat Jam Digital dan Running Text menggunakan AT89S52
Membuat sendiri Jam Digital ukuran besar dengan cara mudah dan sederhana
Jam Digital ukuran besar masih sangat menarik untuk dikerjakan dan masih sangat banyak yang berminat untuk memiliki Jam Digital ukuran besar. Foto berikut ini adalah salah satu tempat yang menggunakan Jam Digital yang dijelaskan dalam halaman ini.
Rangkaian dasar yang digunakan adalah rangkaian display running text dengan meletakkan posisi LED sehingga membentuk peraga 7 segment. perbedaannya hanya terletak pada power supply. Power supply untuk jam digital memerlukan tegangan 13.8 volt untuk dapat menyalakan semua LED yang dihubungkan secara seri untuk membentuk segment. Ada 4 IC 4094 digunakan untuk dapat menampilkan jam digital JJ:MM seperti terlihat pada gambar.
Kalau urutan gambar dan penjelasan berikut ini dikerjakan dengan baik, maka membuat jam digital ukuran besar tidaklah begitu sulit. Gambar disebelah adalah gambar pcb dan sejumlah LED yang terpasang secara seri, untuk dapat menyalakan 6 LED berwarna merah yang terpasang secara seri diperlukan tegangan sekitar 13.8 volt dc. Setiap segment terdiri dari dua baris LED yang masing masing ada 6 LED merah disambung secara seri.
Rangkaian dasar dari rangkaian display adalah rangkaian yang dipergunakan pada display matriks running text pada halaman lain. Perhatikan gambar rangkaian diatas, setiap LED yang berhubungan dengan output Q dari IC4094 pada rangkaian jam digital dihubungkan dengan 12 LED yang terdiri dari dua baris dengan masing masing 6 LED dihubungkan seri. Pada gambar diatas, terlihat Katoda dari LED dihubungan dengan Ground, tetapi pada rangkaian jam digital Katoda dari LED yang keenam dihubungkan dengan setiap output Q dari IC 4094 sementara Anodanya dihubungkan dengan power supply sebesar 13.8 volt,. Dengan demikian LED akan menyala jika logika pada Q diberi dengan nilai 0 (LOW).
Foto-foto berikut ini adalah salah satu tempat pemasangan JAM DIGITAL yang dijelaskan cara pembuatannya pada halaman ini.
Dengan menggunakan display 7 segment ukuran besar, tampilan akan menjadi lebih menarik, tetapi biaya menjadi agak lebih mahal dibanding jika hanya menggunakan LED saja.
Secara keseluruhan berikut driver dan power supply, akan kelihatan sbb:
Untuk keperluan komersil, bagian driver dan bagian power supply diletakkan dibelakang display seven segment biar cantik.
Bagian belakang sebelum dipasang kotak
Bagian belakang setelah dipasang kotak, dan trafo daya juga sudah dipasang
Bagian depan setelah dipasangi kotak, dan gambar berikut ini pada saat selesai
Dan sudah jadi, dan dipamer di ruang tamu, tinggal tunggu siapa yang mau pesan.
Berikutnya kita akan melihat contoh-contoh lain bentuk display 7 segment yang sederhana tetapi tampil cantik.
LED dipasang langsung tanpa ruang
LED disusun dalam ruang sehingga tampilan lebih menyerupai peraga 7S buatan pabrik
Tampilan dengan LED langsung tanpa ruang lebih baik dari pada LED yang disusun dalam ruang, tetapi masing-orang punya selera yang berbeda.
Jam digital dapat digabung dengan running text, sehingga display waktu ditampilkan dalam bentuk led matrix sbb:
sekalian bisa display kalender hari, tanggal, bulan, dan tahun.
Membuat sendiri Moving Text Display
atau Running Text dengan LED yang disusun dalam bentuk matrix,
Membuat sendiri display text bergerak dengan menggunakan IC shift register 4094, mudah murah dan bagus, foto-foto berikut ini menunjukkan bahwa running text dengan IC4094 dapat menyentuh pasar juga, sama halnya dengan running text mode scanning.
Rangkaian tambahan yang diperlukan hanya sytem minimum mikrokontroller dan rangkaian power supply, untuk membuat lebih interaktif diperlukan rangkaian konverter PS/2 keyboard sebagai alat untuk mengisi text kedalam memory running text yang telah dibuat, penjelasan berikut ini dapat dengan mudah dikerjakan......,
Rangkaian display sangat sederhana, yaitu hanya menggunakan IC4094 dan LED yang disambungkan langsung ke pin Q1 sampai Q7, dan seterusnya, perhatikan gambar rangkaiannya. Jam digital juga menggunakan rangkaian yang sama.
Foto-foto diatas menunjukkan gambar rangkain semasih diatas layar komputer, kemudian dicetak keatas pcb terlihat bagian tembaganya, dan pcb yang sudah dipasangi LED pada tempat-tempat yang bersesuaian, sehingga dengan memperhatikan foto-foto tersebut maka diharapkan setiap pembaca akan dengan mudah dapat membuat sendiri rangkaian bagian display running text yang diperlukan.
kalau mau dibuat panjang, maka bagian-bagian pendek diatas cukup disambung saja sampai batas yang diperlukan.
Foto diatas menunjukkan rangkaian display sudah dibuat sebegitu panjang dan tinggal dimasukkan kedalam kotak yang sudah disediakan, pada foto diatas IC4094 nya dipasang pada pcb yang terpisah dan diletakkan dilapisan dibawahnya agar lebar tampilan layar menjadi lebih simetris kelihatan.
Rangkaian lengkap dengan display pendek (1 block) untuk memudahkan penjelasan dan cara membuat program.
Berikut ini akan diperlihatkan foto rangkaian minimum dari moving text display juga program sederhana untuk membuat text bergerak pada display yang telah dijelaskan diatas tadi.
Gambar diatas menunjukkan kabel untuk mengendalikan display hanya ada 5, yaitu kabel untuk Vcc, kabel untuk GND, kabel untuk data, clock, dan latch
komponen lain adalah unit adaptor untuk memberikan daya dengan tegangan 5volt, dan rangkaian minimum mikrokontroller.
program berikut ini adalah program sederhana sekedar membuat tampilan di display.
para mahasiswa masing2 group memiliki satu unit tempat latihan membuat sendiri running text seperti pada gambar berikut ini:
Berikut ini adalah sambungan kabel antara 4094 pada rtx dengan trainer
Pin 2 di IC pertama 4094 dihubungkan dengan PORTC.0 warna kabel abu-abu terang, Pin 3 di IC4094 dihubungkan dengan PORTC.1 warna kabel abu-abu gelap, pin 15 di IC4094 dihubungkan dengan PORTC2 warna kabel biru. Selanjutnya kabel hitam adalah ground yang dihubungkan dengan kabel warna coklat pada trainer dan kabel violet adalah Vcc 5 volt DC yang dihubungkan dengan kabel merah pada trainer.
selanjutnya foto2 berikut ini adalah tampilan display pada saat dikirim ke display nilai-nilai 01, 04, 08, 10, 20, 40, dan 80, tidak semua foto ditampilkan tapi foto berikut ini sudah memberikan gambaran yang jelas.
Program yang dikirimkan membentuk posisi diatas adalah
for (idx = 0; idx < 20; idx++) shift_out(0x01);
PORTD = 0x01;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x02);
PORTD = 0x02;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x04);
PORTD = 0x04;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x08);
PORTD = 0x08;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x10);
PORTD = 0x10;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x20);
PORTD = 0x20;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x40);
PORTD = 0x40;
delay_ms(5000);
for (idx = 0; idx < 20; idx++) shift_out(0x80);
PORTD = 0x80;
delay_ms(5000);
dengan demikian kita sudah mengetahui nilai posisi setiap baris pada running text sehingga untuk membentuk huruf misalnya huruf r dan m dapat ditiru potongan program berikut ini
void r (void)
{
shift_out(0xff);
delay_ms(500);
shift_out(0x38);
delay_ms(500);
shift_out(0x34);
delay_ms(500);
shift_out(0xc3);
delay_ms(500);
shift_out(0x00);
delay_ms(500);
}
void m (void)
{
shift_out(0xff);
delay_ms(500);
shift_out(0x40);
delay_ms(500);
shift_out(0x80);
delay_ms(500);
shift_out(0x40);
delay_ms(500);
shift_out(0xff);
delay_ms(500);
shift_out(0x00);
delay_ms(500);
}
Dan setelah dijalankan akan kelihatan pada display seperti pada gambar berikut ini :
Dengan memanggil fungtion tersebut pada program utama sbb :
while (1)
{
// Place your code here
m();
r();
};
}
Selanjutnya tinggal kreasi huruf, dan manipulasi program sehingga hasilnya menjadi lebih baik.
gambar berikut ini adalah rangkaian penyambungan kabel pada display dan komponen pendukungnya.
setelah digabung dengan keyboard ps/2 adalah sbb:
DEFINISI DAN PEGERTIAN FUNGSI DAN KEGUNAAN MENGGUNAKAN KOMPONEN IC MIKROKONTROLLER AT89S52
Mikrokontroller
merupakan IC yang dapa diprogram dan diprogram ulang karena memiliki
RAM dan ROM tersendiri. Mikrokontroller dapat diaplikasikan dalam
bentuk “Simulasi Sistem Atap Otomatis Untuk Pelindung Benda
Terhadap Hujan Berbasis Mikrokontroler AT89S52”. Simulasi sistem
atap otomatis untuk pelindung benda terhadap hujan dalam makalah ini
menggunakan sebuah sensor cahaya yaitu LDR (Light Dependent
Resistance) yang dipasang untuk menentukan kondisi cahaya di luar
rumah dan sensor hujan untuk menentukan keadaan hujan di luar rumah .
Simulasi sistem atap otomatis untuk pelindung benda terhadap hujan
ini juga menggunakan IC mikrokontroller AT89S52 yang berfungsi
sebagai pusat pengendali. Keluaran dari simulasi untuk pelindung
benda terhadap hujan adalah atap otomatis . Simulasi sistem atap
otomatis untuk pelindung benda terhadap hujan ini bekerja berdasarkan
cahaya dan air hujan yang mengenai sensornya.
Mikrokontroler
AT89S52 merupakan sebuah Mikrokontroler 8 bit bertenaga rendah dengan
teknologi CMOS berkinerja tinggi yang dilengkapi dengan memori flash
yang dapat diprogram sebesar 8 Kbyte. Komponen ini dibuat dengan
teknologi memori Atmel yang nonvolatile dan berkapasitas tinggi serta
kompatibel dengan set intruksi dan kaki out standar industri 80CSI.
Flash onchip memungkinkan memori program dapat diprogram ulang dalam
system atau dengan pemprograman memori nonvolatile yang konvensinal.
Dengan menggunakan CPU 8 bit dengan flash yang diprogram dari sistem
dalam sebuah monolitik chip, Atmel AT89S52 adalah sebuah
Mikrokontroler yang sangat baik untuk menyelesaikan solusi yang
sangat fleksibel dan efektif dalam biaya, untuk banyak masalah
aplikasi serta untuk mengontrol modul tambahan. Dalam spesifikasinya
AT89S52 menyediakan fitur-fitur standar antara lain:
a.
Flash 8 Kbyte
b.
256 bytes RAM
c.
Saluran masukan/keluaran (I/O)
d.
3 buah 16 bit timer/counter
e.
Port serial full duplex
f.
Osilator on-chip dan sirkuit waktu
Mengenal Tentang AT89S52
Mikrokontroler
adalah mikroprosessor yang dirancang khusus untuk aplikasi kontrol,
dan dilengkapi dengan ROM, RAM dan fasilitas I/O pada satu chip.
AT89S52 adalah salah satu anggota dari keluarga MCS-51/52. AT89S52
dirancang oleh Atmel sesuai dengan instruksi standar dan susunan pin
80C5. Mikrokontroler 89S52 merupakan versi terbaru dibandingkan
mikrokontroler AT89C51 yang telah banyak digunakan saat ini.
Mikrokontroler AT89S52 ialah mikrokomputer CMOS 8 bit dengan 8Kbyte
Flash Programmable dan Erasable Read Only Memory (PEROM), yang
memungkinkan memori program untuk dapat diprogram kembali.
Mikrokontroler berteknologi memori non volatile kerapatan tingi dari
Atmel ini kompatibel dengan mikrokontroler standar industri MCS-51
baik pin kaki IC maupun set instruksinya serta harganya yang cukup
murah (sekitar 15rb – 20rb, penulis lagi beli sih 19.500). Oleh
karena itu, sangatlah tepat jika kita mempelajari mikrokontroler
jenis ini bagi pemula. AT89S52 mempunyai kelebihan yaitu mempunyai
flash memori sebesar 8Kbyte, RAM 256 byte serta 2 buah data pointer
16 bit.
Spesifikasi
dari AT89S52 :
- Sebuah CPU ( Central Processing Unit ) 8 Bit.
- Empat buah port I/O, yang masing masing terdiri dari 8 bit
- 8KBytes In system Programmable (ISP) flash memori dengan kemampuan 1000 kali baca/tulis tegangan kerja 4V-5.0V
- 256x8 bit RAM ( Random Acces Memory ) internal
- 32 Jalur I/O dapat diprogram
- 3 Buah 16 bit Timer/Counter (T0, T1, dan T2)
- 8 Sumber interrupt
- Sebuah port serial dengan full duplex UART (Universal Asynchronous Receiver Transmitter).
- Dual data pointer
- Mode pemrograman ISP yang fleksibel (Byte dan Page Mode)
- Bekerja dengan rentang 0 – 33MHz
- Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5 μs pada frekuensi clock 24 MHz. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 MHz, maka kecepatan pelaksanaan instruksi adalah 1 μs
Watchdog
timer
Fungsi
dari masing-masing pin AT89S52 adalah :
- Pin 1 sampai 8 (Port 1)
Merupakan port
pararel 8 bit dua arah ( bidirectional)
yang dapat digunakan untuk berbagai keperluan ( general
purpose).
- Pin 9
Merupakan pin reset,
reset aktif jika mendapat catuan tinggi. Jika pada pin ini diberi
input “1” (HIGH) selama minimal 2 machine cycle, maka sistem akan
di-reset dan register internal AT89S52 akan berisi nilai default
tertentu. Proses reset merupakan proses untuk mengembalikan sistem
kekondisi semula. Reset tidak mempengaruhi internal program memory.
Reset terjadi jika pin RST bernilai high selama minimal dua siklus
lalu kembali bernilai low. Power on reset merupakan proses reset yang
berlangsung secara otomatis pada saat sistem pertama kali diberi
suplai. Proses ini mempengaruhi semua register dan internal data
memory.
- Pin 10 sampai 17 (Port 3)
Adalah port pararel
8 bit dua arah yang memiliki fungsi sebagai berikut :
- P3.0 (10) : RXD (port serial penerima data)
- P3.1 (11) : TXD (port serial pengirim data)
- P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)
- P3.3 (13) : INT1 (input interupsi ekstrernal 1, a ktif low)
- P3.4 (14) : T0 (eksternal input timer / counter 0)
- P3.5 (15) : T1 (eksternal input timer / counter 1)
- P3.6 (16) : WR (Write, aktif low) Sinyal kontrol penulisan data dari port 0 ke memori data dan input-output eksternal.
- P3.7 (17) : RD (Read, aktif low) Sinyal kontrol pembacaan memori data input-output eksternal ke port 0.
- Pin 18
Sebagai XTAL 2,
keluaran osilator yang terhubung pada kristal. (XTAL2 berfungsi
sebagai keluaran dari rangkaian osilasi mikrokontroler).
- Pin 19
Sebagai XTAL 1,
masukan ke osilator berpenguatan tinggi, terhubung pada kristal.
(XTAL1 berfungsi sebagai masukan dari rangkaian osilasi
mikrokontroler).
- Pin 20
Sebagai Vss,
terhubung ke 0 atau ground pada rangkaian.
- Pin 21 sampai 28 (Port 2)
Merupakan
dual-purpose port (port pararel 8 bit dua arah). Pada desain minimum
digunakan sebagai port I/O (Input/Output). Sedangkan pada desain
lebih lanjut digunakan sebagai high byte dari address (alamat), dan
port ini mengirim byte alamat bila pengaksesan dilakukan pada memori
eksternal.
- Pin 29
Sebagai PSEN
(Program
Store Enable)
adalah sinyal yang digunakan untuk membaca, memindahkan program
memori eksternal (ROM / EPROM) ke mikrokontroler (aktif low).
PSEN adalah sinyal kontrol yang mengizinkan untuk mengakses program
(code) memori eksternal. Pin ini dihubungkan ke pin OE (Output
Enable) dari EPROM. Sinyal PSEN akan “0” (LOW) pada tahap fetch
(penjemputan) instruksi. PSEN akan selalu bernilai “1” (HIGH)
pada pembacaan program memori internal. PSEN terdapat pada pin 29.
- Pin 30
Sebagai ALE (Address
Latch Enable)
untuk menahan alamat bawah selama mengakses memori eksternal. Pin ini
juga berfungsi sebagai PROG (aktif low)
yang diaktifkan saat memprogram internal flash
memori
pada mikrokontroler (on
chip).
ALE digunakan untuk men-demultiplex address (alamat) dan data bus.
ketika menggunakan program memori eksternal, port 0 akan berfungsi
sebagai address (alamat) dan data bus. Pada setengah paruh pertama
memori cycle ALE akan bernilai HIGH sehingga mengizinkan penulisan
address (alamat) pada register eksternal. Dan pada setengah paruh
berikutnya akan bernilai HIGH)sehingga port 0 dapat digunakan sebagai
data bus.
- Pin 31
Sebagai EA (External
Accesss)
untuk memilih memori yang akan digunakan, memori program internal (EA
= Vcc) atau memori program eksternal (EA = Vss), juga berfungsi
sebagai Vpp (programming
supply voltage)
pada saat memprogram internal flash
memori
pada mikrokontroler. Jika EA diberi input HIGH, maka mikrokontroller
menjalankan program memori internal saja. Jika EA diberi input LOW,
maka AT89S52 menjalankan program memori eksternal (PSEN akan bernilai
LOW).
- Pin 32 sampai 39 (Port 0)
Merupakan port
pararel 8 bit dua arah. Berfungsi sebagai alamat bawah yang
dimultipleks den gan data untuk mengakses program dan data memori
eksternal. port 0 ini dapat digunakan sebagai port Input/Output (I/O)
- Pin 40
Sebagai Vcc,
terhubung ke +5 V sebagai catuan untuk mikrokontroler.
Memori:
a.Memori
Program
Pada EPROM 8 Kbyte,
jika EA (External
Access)
bernilai tinggi, maka program akan menempati alamat 0000 H sampai
0FFF H secara internal. Jika EA bernilai rendah maka program akan
menempati alamat 1000 H sampai FFFF H ke pr ogram eksternal.
Memori program
merupakan suatu ruang memori yang digunakan untuk menyimpan kode
program dan konstanta yang sifatnya tetap. Memori program hanya bisa
dibaca saja (Read Only Memori), dalam artian ketika sedang melakukan
eksekusi program memori hanya bersifat di baca saja namun tidak
dapat diubah isinya, sebagian memori program terdapat didalam chip
mikrokontroler (On-chip) dan sebagian lagi berada diluar (off-chip).
Mikrokontroler ATMEL AT89S52 mempunyai kapasitas memori program
on-chip sebesar 8 kB.
b.Memori
Data
RAM merupakan memori
data internal (on-chip). Untuk AT89S52 mempunyai memori sebesar
256 byte. Pada segment data ini dibagi menjadi tiga bagian,
dimulai dari alamat 0×00 sampai dengan 0xFh dikenal sebagai
register R0 sampai dengan R7 yang diorganisasikan menjadi 4
bank. Pemilihan bank yang dilakukan dengan memberikan kombinasi
logika pada register Program Status Word(PSW). Bagian berikutnya
adalah mulai alamat 0×20 sampai dengan 0x2f sebanyak 128 bit
merupakan lokasi memori yang dapat dimanipulasi perbit (bit
addressable) juga dikenal dengan segment bit (BDATA). Bagian
berikutnya adalah general purpose RAM mulai alamat 0×30 sampai
dengan 0x7fh.
Skema dan Keterangan PIN AT89S52
Mikrokontroler merupakan sistem komputer kecil yang biasa digunakan
untuk sistem pengendali atau pengontrol yang dapat diprogram sesuai
kebutuhan. Mikrokontroller memiliki 4KB Flash Programmable dan Erasable Read Only Memory (PEROM) didalamnya.
Mikrokontroler AT89S52 merupakan pengembangan dari mikrokontroler
MCS-51. Mikrokontroler ini biasa disebut juga dengan mikrokomputer CMOS
8 bit dengan 8 Kbyte yang dapat dIprogram sampai 1000 kali pemograman.
Selain itu AT89S52 juga mempunyai kapasitas RAM sebesar 256 bytes, 32
saluran I/O, Watchdog timer, dua pointer data, tiga buah timer/counter
16-bit, Programmable UART (Serial Port). Memori Flash digunakan untuk
menyimpan perintah (instruksi) berstandar MCS-51, sehingga memungkinkan
mikrokontroler ini bekerja sendiri tanpa diperlukan tambahan chip
lainnya (single chip operation), mode operasi keping tunggal yang tidak
memerlukan external memory dan memori flashnya mampu diprogram hingga
seribu kali. Hal lain yang menguntungkan adalah sistem pemogramanan
menjadi lebih sederhana dan tidak memerlukan rangkaian yang rumit.
Sebuah mikrokontroler dapat berfungsi/bekerja, apabila telah terisi
oleh program. Program terlebih dahulu dimasukan kedalam memori sesuai
dengan kebutuhan penggunaaan pengontrolan yang diperlukan dan yang
hendak dijalankan. Program yang dimasukkan kedalam mikrokontroler Atmel
89S52 adalah berupa file heksa (Hex File), dan program tersebut
berisikan instruksi atau perintah untuk menjalankan sistem kontrol.
Mikrokontroler merupakan single chip computer yang memiliki
kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang
berorientasi kontrol, Mikrokontroller berkembang dengan dua alasan
utama, yaitu kebutuhan pasar (market needed) dan perkembangan
teknologi baru. Dalam perkembangannya sampai saat ini, sudah banyak
produk mikrokontroller yang telah diproduksi oleh berbagai perusahaan
pembuat IC (Integrated Circuit) diantara salah satunya adalah
jenis mikrokontroller yang digunakan dalam perancangan alat ini yaitu
mikrokontroller seri 8052 yang dibuat oleh ATMEL, dengan kode produk
AT89S52. Secara fisik, mikrokontroler AT89S52 mempunyai 40 pin, 32 pin
diantaranya adalah pin untuk keperluan port masukan/keluaran. Satu port
paralel terdiri dari 8 pin, dengan demikian 32 pin tersebut membentuk 4
buah portparalel, yang masing-masing dikenal dengan Port 0, Port1, Port2
dan Port3. Dengan keistimewaan di atas perancangan dengan menggunakan
mikrokontroler AT89S52 menjadi lebih sederhana dan tidak memerlukan
komponen pendukung yang lebih banyak lagi.
2.1.2 Konfigurasi Pin AT89S52
Setiap pin (kaki) dari mikrkontroler AT89S51 mempunyai fungsi
masing-masing fungsi. Arsitektur hardware mikrokontroller AT89S52 dari
perspektif luar atau biasa disebut pin out digambarkan pada gambar 2.1 di bawah ini
Gambar 2. Konfigurasi Pin Mikrokontroler AT89S52
Berikut adalah penjelasan mengenai fungsi dari tiap-tiap pin (kaki) yang ada pada mikrokontroller AT89S52.
a. Port 0
Merupakan dual-purpose port (port yang memiliki dua kegunaan). Pada disain yang minimum (sederhana), port 0 digunakan sebagai port Input/Output (I/O).. Port 0 terdapat pada pin 32-39.
b. Port 1
Merupakan port yang hanya berfungsi sebagai port I/O (Input/Output). Port 1 terdapat pada pin 1-8.
c. Port 2
Merupakan dual-purpose port. Pada desain minimum digunakan sebagai port I/O (Input/Output). Sedangkan pada desain lebih lanjut digunakan sebagai high byte dari address (alamat). Port 2 terdapat pada pin 21-28.
d. Port 3
Merupakan dual-purpose port. Selain sebagai port I/O (Input/Output), port 3 juga mempunyai fungsi khusus. Fungsi khusus tersebut diperlihatkan
Tabel 2.1 Data Port 3 pin 10 -17
a. PSEN (Program Store Enable)
PSEN adalah sinyal kontrol yang mengizinkan untuk mengakses program (code) memori eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan “0” (LOW) pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai “1” (HIGH) pada pembacaan program memori internal. PSEN terdapat pada pin 29.
a. ALE (Address Latch Enable)
ALE digunakan untuk men-demultiplex address (alamat) dan data bus. ketika menggunakan program memori eksternal, port 0 akan berfungsi sebagai address (alamat) dan data bus. Pada setengah paruh pertama memori cycle ALE akan bernilai “1” (HIGH) sehingga mengizinkan penulisan address (alamat) pada register eksternal. Dan pada setengah paruh berikutnya akan bernilai “1” (HIGH) sehingga port 0 dapat digunakan sebagai data bus. ALE terdapat pada pin 30.
b. EA (External Access)
Jika EA diberi input “1” (HIGH), maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input “0” (LOW), maka AT89S52 menjalankan program memori eksternal (PSEN akan bernilai “0”). EA terdapat pada pin 31.
c. RST (Reset)
RST terdapat pada pin 9. Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka sistem akan di-reset dan register internal AT89S52 akan berisi nilai default tertentu. Proses
reset merupakan proses untuk mengembalikan sistem kekondisi semula.
Reset tidak mempengaruhi internal program memory. Reset terjadi jika pin
RST bernilai high selama minimal dua siklus lalu kembali bernilai low.
Power on reset merupakan proses reset yang berlangsung secara otomatis
pada saat sistem pertama kali diberi suplai. Proses ini mempengaruhi
semua register dan internal data memory. Untuk mendapatkan proses ini,
maka pin RST harus diberi tambahan rangkaian seperti pada gambar
berikut.
Gambar 2.2. Rangkaian reset AT89S52
- a. On-Chip oscillator
AT89S52 telah memiliki on-chip oscillator yang dapat bekerja jika drive menggunakan
kristal. Tambahan kapasitor diperlukan untuk menstabilkan sistem. Nilai
kristal yang biasa digunakan pada AT89S52 ini adalah 12 MHz. On-chip oscillator tidak hanya dapat di-drive dengan menggunakan kristal, tetapi juga dapat dengan menggunakan TTL Oscillator.
- b. XTAL1
XTAL1 berfungsi sebagai masukan dari rangkaian osilasi mikrokontroler. XTAL1 terdapat pada ipin 19
- c. XTAL2
XTAL2 berfungsi sebagai keluaran dari rangkaian osilasi mikrokontroler. XTAL2 terdapat pada pin 18
- d. VCC
VCC merupakan masukan sumber tegangan positif bagi mikrokontroler yang terdapat pada pin 40.
2.1.1 Arsitektur dan Blok Diagram Mikrokontroler AT89C51
Mikrokontroler AT89S52 dibangun berdasarkan arsitektur seperti
ditunjukkan gambar dibawah ini. Seluruh bagian yang digambar pada gambar
tersebut saling berhubungan melalui internal bus 8 bit menelusuri
bagian serpih. Bus tersebut kemudian dihubungkan ke luar melalui input
output port apabila memori atau expansi diperlukan.
Unit pengolah pusat (CPU) terdiri atas dua bagian, yaitu unit
pengendali control unit (CU), serta unit aritmatika dan logika (ALU).
Fungsi utama unit pengendali ini adalah mengambil, mengkode, dan
melaksanakan urutan intruksi sebuah program yang tersimpan dalam
memori, unit pengendali juga berfungsi untuk mengatur urutan operasi
seluruh sistem. Unit pengendali atau CPU juga menghasilkan dan mengatur
sinyal pengendali yang diperlukan untuk menyerempakkan operasi, juga
aliran intruksi program. Aliran informasi pada bus-bus data dan bus
alamat juga diatur oleh unit ini.
2.1.1 Memori Program
Memori program merupakan suatu ruang memori yang digunakan untuk
menyimpan kode program dan konstanta yang sifatnya tetap. Memori program
hanya bisa dibaca saja (Read Only Memori), dalam artian ketika
sedang melakukan eksekusi program memori hanya bersifat di baca saja
namun tidak dapat diubah isinya, sebagian memori program terdapat
didalam chip mikrokontroler (On-chip) dan sebagian lagi berada diluar (off-chip). Mikrokontroler ATMEL AT89S52 mempunyai kapasitas memori program on-chip sebesar 8 kB.
2.1.2 Memori Data
RAM merupakan memori data internal (on-chip). Untuk
AT89S52 mempunyai memori sebesar 256 byte. Pada segment data ini
dibagi menjadi tiga bagian, dimulai dari alamat 0×00 sampai dengan
0xFh dikenal sebagai register R0 sampai dengan R7 yang diorganisasikan menjadi 4 bank. Pemilihan bank yang dilakukan dengan memberikan kombinasi logika pada register Program Status Word(PSW).
Bagian berikutnya adalah mulai alamat 0×20 sampai dengan 0x2f
sebanyak 128 bit merupakan lokasi memori yang dapat dimanipulasi
perbit (bit addressable) juga dikenal dengan segment bit (BDATA). Bagian berikutnya adalah general purpose RAM mulai alamat 0×30 sampai dengan 0x7fh.
2.1.3 Interuksi
Terdapat beberapa kelompok fungsi pada instruksi keluarga MCS – 52, yaitu:
- 1. Instruksi Aritmatika
Kelompok intruksi ini melakukan operasi aritmatika seperti penjumlahan, pembagian, pengurangan.
Misalnya adalah: add, mul, subb, inc dan dec
Contohnya : mov a,#10h
Mov b,#05h
Mul ab
Mov a,#10h artinya salin data 10h ke a
Mov b,#05h artinya salin data 05h ke b
Mul ab artinya kalikan nilai akumulator dengan nilai register b
- 2. Instruksi Logika
Intruksi ini melakukan operasi logika seperti and, or, dan exor, clear
Misalnya adalah :anl, orl, xrl, clr
Contohnya : clr p3.5
Clr p3.5 artinya nolkan p3.5
- 3. Instruksi Transfer Data
Kelompok instruksi ini digunakan untuk memindahkan data antara :
- Register – register
- Memori – memori
- Register – memori
- Interface – register
- Interface – memori
Contoh:
MOV A, R1 : memindahkan isi register R1 ke accumulator
MOV A, @R2 : memindahkan isi memori yang alamatnya
ditunjukkan oleh register R2 ke accumulator.
Mikrokontroler AT89S52
Fitur Mikrokontroler AT89S52
Mikrokontroler AT89S52 merupakan salah satu
keluarga MCS-51 keluaran Atmel yang mempunyai 40 kaki, 32 kaki
diantaranya digunakan sebagai port pararel. Satu port pararel terdiri
dari 8 kaki dengan demikian 32 kaki membentuk 4 buah port pararel,
yang masing-masing dikenal dengan port 0, port 1, port 2, port 3.
Jenis mikrokontroler ini pada prinsipnya dapat digunakan untuk
mengolah data per bit ataupun data 8 bit secara bersamaan.
Sebuah mikrokontroler dapat berkerja bila dalam mikrokontroler
tersebut terdapat sebuah progam yang berisi instruksi-instruksi yang
akan digunakan untuk menjalankan system mikrokontroler tersebut. Pada
prinsipnya progam mikrokontroler dijalankan secara bertahap, jadi
dalam progam itu sendiri terdapat beberapa set instruksi dan tiap
instruksi itu dijalankan secara atau berurutan.
Beberapa spesifikasi yang dimiliki oleh mikrokontroler AT89S52
adalah sebagai berikut :
- Kompatibel dengan semua produk MCS-51
- 8K byte ISP flash memory
- 3 level progam memory lock
- 256 byte RAM internal
- Jalur 1/0 dua arah 32
- 3 buah timer/ counter 16-bit
- Programmable UART (serial port)
- Programmable watchdog timer
- Dual data pointer
- Frekuensi kerja 0 sampai 33 MHz
- Tegangan operasi 4,0 Volt sampai 5,5 Volt
Langganan:
Postingan (Atom)