com
Pengertian Mikrokontroler
Mikrokontroler adalah salah satu dari bagian dasar suatu sistem komputer. Meskipun
mempunyai bentuk yang jauh lebih kecil dari pada suatu komputer pribadi,
komputer akan menghasilkan output spesifik berdasarkan input yang diterima dan
Pada tahun 1970 mikroposesor (‘computer on a chip’) intel 4004 pertama diproduksi
karena hanya ditujukan untuk komunitas teknik. Mikroprosesor adalah cpu computer,
• Clock Generator
intruksi yang di berikan kepadanya. Artinya,bagian terpenting dan utama suatu sistem
terkkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programer.
Program ini menginstrusikan komputer untuk melakukan jalinan yang panjang dari
aksi-aksi sederhan untuk melakukan tugas yang lebih kompleks yang diinginkan oleh
pudyastowo@gmail.com
programer.
terprogram dan dioptimalkan untuk instruksi bit dan byte, sementara computer PC
elemennya dikemas dalam satu chip IC, sehingga sering juga di sebut dengan single
oleh ATMEL sepeti AT89C51, AT89S52 dengan kapasitas memori program internal
sebesar 8kByte dan 3buah timer AT98cX051 jumlah port 2 dan sebagainya.
pudyastowo@gmail.com
Kontruksi Mikrokontroler
Pin-pin Mikrokontroler
VCC
GND
Port0
terbuka masukan dua arah (open drain bi directional I/O port). Jika port 0
impedansi tinggi.
sebagai
1. Multipleks antara byte alamat rendah (A0 s/d A7) dan data (D0 s/d 07) pada
program internal atau onchip)dan keluaran saat verifikasi. Resistor pullup dibutuhkan
selama verivikasi.
Port1
yang bersifat dua arah. Port 1 sudah di pasang resitor pullup secara internal. Jika
logika satu di tuliskan pada port 1 maka keluaran akan berlogika 1 dan dapat di
• Khusus untuk AT89C52 port P1.0 dan P1.1 mempunyai fungsi lain
yaitu
Pin Fungsi
pudyastowo@gmail.com
2)keluaran clock.
P1.1 T2EX (Timer/counter 2 reloed trigger dan kendali arah)
Tabel Fungsi dari mikrokontroler AT89C52 di port P1.0 dan P1.1
• Port P1.0 dan P1.1 membutuhkan resistor pull-up dan mempunyai fungsi
lain yaitu :
Pin Fungsi
P1.0 Masukan positif (AND) untuk komparator analog
P1.1 Masukan negatif (AN1) untuk komparator analog
Tabel Fungsi dari mikkrokontroler AT89Cx051 di port P1.0 dan P1.1
Port 2 sama dengan port 1 yautu masukan/keluaran 8 bit dengan nam masing-
masing P1.0-P1.7 yang bersifat dua arah. Port 2 sudah di pasang resistor pullup
secara internal. Jika logika 1 di tuliskan pada port 2 maka keluaran akan
• Sebagai byte alamat tinggi pada saat menjalankan program dan memori
program eksternal dan mengakses data data pada memori dat eksternal dengan
mengunakan pengalamatan 8 bit (intrksi MOX @RI)maka port 2 berisi SFR P2.
• Sebagai bit alamat atas (AB s/d A12 untuk AT89C51 dan AB s/d A13 untuk
pudyastowo@gmail.com
AT89C52) dan kendali saat pemprograman memori flas internal dan verivikasi.
Port3
Port 3 sama denga port 1 dan port 2 yaitu masukan/keluaran 8 bit dengan nama
Yang bersifat dua arah. Port 3 sudah di pasang resistor pullup secara internal.
Jika logika 1 dituliskan pada port 3 maka keluaran akan berlogika 1 dan dapat
051
P3.0 RXD (port masukan serial) Ada Ada
P3.1 TXD (port keluaran serial) Ada Ada
P3.2 INT0 (interupsi eksternal 0, aktif rendah) Ada Ada
P3.3 INT1 (interupsi internel 1, aktif rendah) Ada Ada
P3.4 T0 (masukan eksternal timer 0) Ada Ada
P3.5 T1 (masukan eksternal timer 1) Ada Ada
P3.6 WR (signal tulis untuk memori eksternal, Ada Tidak ada
aktif rendah)
pudyastowo@gmail.com
aktif rendah)
Tabel Fungsi khusus mikrokontroler AT89C51/52 di port 3
Fungsi lain adalah sebagai masukan signal signal kendali pada saat pemprograman
memori flash dan ferivikasi. Khusus pada AT89Cx051 P3.6 tidak ada pin yang keluar
dari IC karena digunakan secara internal untuk membaca keluaran komparator analog.
RST
Berfungsi sebagai masukan reset. Jika RST diberi logika tinggi dalam waktu 2 siklus
mesin maka mikrokontroler akan di rest. Pada AT89CX051 pin RST juga di gunakan
sebagai masukan tegangan pemprograman (VPP) pada saat tegangan memori flash
internal.
Signal Address Latch Enable (ALE) dugunakan untuk mengaktifkan IC latc agar data
alamat rendah di simpan. ALE aktif ketika mengakses program eksternal. Pin ini juga
PSEN adalah keluaran signal strobe untuk membaca kode program. Ketika
EA harus dihubungkan dengan ground ika semua program diakses dari memori
program ekstrenal yang dimulai dari alamat 0x0000 s/d 0xFFFF. Jika program yang
akan dieksekusi berasal dari memori program internal dan eksternal maka EA
XTAL-1
XTAL-2
Struktur Memori
AT89S52 memiliki struktur memori program dan memori data terpisah yang
memori data internal dialamati oleh (Random Acces Memory) RAM Address
(RAM) internal dan memori program internal (Flash PEROM) memiliki alamat
awal yang sama (alamat $00H), namun secara fisik kedua memori
Only Memory) , yaitu ROM yang dapat ditulis ulang atau dihapus. Flash
/Vpp) diberi logika ‘1’. Dengan kapasitas memori program internal sebesar 8
Kbyte , maka memori program internal memiliki alamat 0000h hingga 0FFFh. Bila
dikehendaki penggunaan memori eksternal dengan alamat yang sama, maka pin
eksternal. Bila PSEN berlogika ‘0’ maka memori program eksternal aktif,
sedangkan bila PSEN berlogika ‘1’ maka memori data eksternal yang aktif.
kapasitas 256 Byte. RAM internal AT89S51 terdiri dari dua bagian yaitu 128 Byte
bagian bawah dan 128 Byte bagian atas. Memori program dan memori data
segmen memori yang dapat dialamati secara per bit (Bit Addressable
Segment), dan area memori data yang dapat digunakan untuk berbagai
Pembagian memori data internal ditunjukkan pada gambar (a), dan memori
(a) (b)
SFR merupakan register khusus yang digunakan sebagai kendali, buffer atau fungsi
khusus lainya. SFR dipetakan mulai alamat 0x80 s/d 0xFF. Tidak seluruh ruang
0F8H 0FFH
B
0F0H 0F7H
00000000
0E8H 0EFH
ACC
0E0H 0E7H
00000000
0D8H 0DFH
PSW
0D0H 0D7H
00000000
T2CON # T2MOD # RCAP2L # RCPA2H # TL2 # TH2 #
0C8H 0CFH
00000000 xxxxxx00 00000000 00000000 00000000 00000000
0C0H 0C7H
pudyastowo@gmail.com
IP
0B8H 0BFH
XX000000
P3
0B0H 0B7H
11111111
IE
0A8H 0AFH
0X000000
P2 AUXR1 WDTRST
0A0H 0A7H
11111111 XXXXXXX0 XXXXXXXX
SCON SBUF
098H 09FH
00000000 XXXXXXXX
P1
090H 097H
11111111
TCON TMOD TL0 TL1 TH0 TH1 AUXR
088H 08FH
00000000 00000000 00000000 00000000 00000000 00000000 XXX00XX0
P0 SP DP0L DP0H DP1L DP1H PCON
080H 087H
11111111 00000111 00000000 00000000 00000000 00000000 0XXX0000
Kegunaan dan pemakaian register-register dasar tersebut antara lain sebagai berikut:
a. Program Counter
berikutnya yang akan diambil (fetch) sebagai instruksi untuk dikerjakan (execute).
Saat setelah reset PC bernilai 0000h. Hal ini berarti MCS51 akan segera
bersangkutan. Ada instruksi yang hanya 1 byte, ada instruksi yang sampai 4 byte.
b. Akumulator (ACC)
pudyastowo@gmail.com
untuk menampung (accumulate) hasil dari hampir semua operasi aritmatik dan
operasi logika, serta digunakan pada proses pengambilan dan pengiriman data ke
memori eksternal.
c. Port
AT89S52 memiliki empat buah Port yaitu Port 0, Port 1, Port 2 dan Port 3 yang
Stack Pointer merupakan sebuah register 8 bit yang dipakai untuk menyimpan
alamat dari sebuah data. Isi register ini menunjukkan dimana data selanjutnya
Flag Auxiliary Carry (AC) akan berlogika ‘1’ (set) bila terjadi limpahan dari bit
Flag 0 (F0) digunakan untuk tujuan umum yang disediakan untuk kebutuhan
pengguna.
Bit pemilih register Bank (RS1 dan RS0) digunakan untuk menentukan lokasi
Register Bank (R0 hingga R7) yang akan digunakan pada memori.
Flag Overflow (OV) akan berlogika ‘1’ (set) apabila pada operasi aritmetik
menghasilkan bilangan yang lebih besar dari 128 atau lebih kecil dari -128.
Bit Paritas (P) akan berlogika ‘1’ (set) apabila bit berlogika ‘1’ dalam akumulator
berjumlah ganjil, dan bit paritas (P) akan berlogika ‘0’ (clear) bila bit berlogika
f. Register B
Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL) masing-masing
ini digabungkan menjadi satu register 16 bit yang dinamakan sebagai Data
Pointer Register (DPTR). Register ini biasa dipakai untuk mengakses kode atau
h. Register Timer
AT89S52 memiliki tiga buah 16 bit Timer/Counter, yaitu Timer 0,Timer dan
Timer2. Timer 0 terletak di alamat 8AH untuk TL0, dan di alamat 8CH untuk
pudyastowo@gmail.com
TH0. Timer 1 terletak di alamat 8BH untuk TL1, dan di alamat 8DH untuk
i. Register TMOD
Untuk mengatur mode kerja Timer 0 dan Timer 1, digunakan register TMOD yang
terletak di alamat 89H. Timer bisa diatur menjadi mode Timer 16 bit, Timer 13
bit, Timer 8 bit yang bisa isi ulang secara otomatis, atau 2 buah Timer 8 bit yang
terpisah. Selain itu, dapat juga diatur agar proses proses pencacahan timer bisa
dikendalikan lewat sinyal dari luar IC AT89S51, atau timer dipakai untuk
j. Register TCON
AT89S52 memiliki sebuah port komunikasi serial yang telah terintegrasi di dalam
keping IC mikrokontroler (on chip serial port) yang dapat digunakan untuk
berkomunikasi dengan peralatan lain yang juga menggunakan serial port seperi
l. Register SBUF
Register Port Serial terletak di alamat 99H dengan nama SBUF (Serial Buffer).
m. Register SCON
pudyastowo@gmail.com
Untuk mengatur mode komunikasi serial, dapat dilakukan dengan mengubah isi
n. Register Interupsi
AT89S52 memiliki lima buah interupsi dengan dua tingkat prioritas interupsi.
Interupsi akan selalu nonaktif setiap kali sistem AT89S52 reset. Register-register
Enable Register, IE) dan register prioritas interupsi (Interrupt Priority Register,
IP). IE terletak di alamat A8H, dan berfungsi untuk mengatur keaktifan tiap-tiap
interupsi
Sistem Interupsi
interupsi mulai dari alamat tersebut. Bila rutin pelayanan interupsi selesai
utama yang ditinggalkan. Instruksi RETI (return from interupt routine) harus
digunakan untuk kembali dari layanan rutin interupsi. Instruksi ini digunakan
(Eksternal interupt) yang berasal dari pin INT0 dan INT1 interupsi timer (Timer
Interupt) yang berasal dari Timer 0 maupun Timer 1, dan yang terakhir adalah
interupsi port serial (Serial Port Interupt) yang berasal dari bagian penerima dan
Alamat awal layanan rutin interupsi dari setiap sumber interupsi ditunjukkan pada
Tabel berikut.
Ada dua buah register yang mengontrol interupsi, yaitu IE (Interupt Enable)
yaitu apabila ada dua atau lebih interupsi secara bersamaan. Jika register IP tidak
pudyastowo@gmail.com
Optocoupler
langsung dengan sumber tegagan. Keluaran sumber cahaya akan berbanding lurus
denag tegangan masukan pada dioda cahaya. Dioda cahaya sebagai masukan biasa
terdiri atas sutu/beberapa buah dioda untuk menambah intensitas cahya, demikian
pula dengan jenis cahaya yang di pakai, bisa cahaya infra merah atau cahay tampak
mata.
5 1 5 1 5
4
2 4 2
4
(C)
(a) (b)
yang digunakan sebagai kendali I/O untuk peralatan yang beroprasi dengan
teganggan rendah maupun teganggan tinggi, sehingga tidak terjadi kerusakan antara
Seven Segment
Sevet Segmen merupakan peraga angka yang dapat memperagakan angka dari 0
sampai 9. Seven Segment ini dibentuk oleh 7 buah segmen yang tersusun sedemikian
rupa sehingga jika ada beberapa segmen tertentu yang aktif maka akan membentuk
sebuah angka. Penampil 7 segment yang digunakan adalah common anoda. Data yang
digunakan untuk menghasilkan angka atau huruf tertentu didapatkan dengan cara
seperti pada tabel.. jika A, B dan C hidup maka yang akan di tampilkan angka 7 dan
seterusnya.
.dt
Gambar Seven Segment
pudyastowo@gmail.com
Jika saklar di a ditutup, maka arus mengalir dari Ground melalui tahanan
pembatas hingga LED segmen-a dan keluar melalui hubungan anoda biasa ke catu
daya. Dengan demikian hanya segmen a saja yang menyala. Jika kita ingin
sehingga pada rangkaian akan menyala decimal 8. Dalam hal ini tegangan ground
Sevent segment disini di gunakan sebagai pewaktu untuk setiap pergantian iklan
dan kita dapat mengatur waktunya sesuai dengan keinginan kita.. Dalam alat ini
di pasang dua buah sevent segment..7 segment adalah komponen elektronika yang
berfungsi menmpilkan data dalam bentuk 7 buah led yang disususn membentuk
display. 7 Segment ada yang betipe common anoda (CA) atau common cathoda
seperti 74HC164, yang mampu mengeluarkan data QA-QG sebagai sumber input
resistor yang men-drive 7 segment terebut harus diberi logika 0. Sementara itu,
kedelapan segment dari semua sevent segment di-parelkan dan dihubungkan juga
0 1 0 0 0 0 0 0 0x40 0 nyala
0 1 1 1 1 0 0 1 0x79 1 nyala
0 0 1 0 0 1 0 0 0x24 2 nyala
pudyastowo@gmail.com
0 0 1 1 0 0 0 0 0x30 3 nyala
0 0 0 1 1 0 0 1 0x19 4 nyala
0 0 0 1 0 0 1 0 0x12 5 nyala
0 0 0 0 0 0 1 0 0x02 6 nyala
0 1 1 1 1 0 0 0 0x78 7 nyala
0 0 0 0 0 0 0 0 0x00 8 nyala
0 0 0 1 0 0 0 0 0x10 9 nyala
Motor Steper
Motor stepper adalah salah satu jenis motor elektromagnetik yang dapat mengubah
masukan berupa sinyal digital menjadi keluaran yang berupa putaran. Berbeda
dengan motor DC biasa, yang berputar secara tetap selama mendapat energi listrik.
Pada motor stepper bergerak langkah demi langkah sesuai urutan pulsa digital yang
diberikan. Setiap perubahan yang tepat dari urutan kombinasi pulsa digital akan
Pada umumnya motor stepper hanya mempunyai kumparan pada statornya sedangkan
pada bagian rotornya merupakan permanen magnet. Dengan model rotor seperti ini
maka motor stepper dapat diatur posisinya pada posisi tertentu dan atau berputar
Kecepatan motor stepper pada dasarnya ditentukan oleh kecepatan pemberian data
pada statornya. Semakin cepat data yang diberikan maka motor stepper akan semakin
cepat pula berputarnya. Pada kebanyakan motor stepper kecepatannya dapat diatur
dalam daerah frekuensi audio dan menghasilkan putaran yang cukup cepat.
pudyastowo@gmail.com
Pada dasarnya motor stepper terdiri atas sebuah rotor yang dikelilingi stator. Rotor ini
stator dialiri arus listrik, maka terjadilah medan listrik. Karena kutub medan rotor dan
kutub medan listrik pada stator sama, terjadilah gaya saling tolak menolak antar kutub
Motor stepper dibedakan menjadi dua macam berdasarkan magnet yang digunakan,
yaitu tipe permanen magnet dan tipe variabel reluktansi. Pada umumnya motor
stepper yang digunakan saat ini adalah motor stepper yang mempunyai variabel
reluktansi. Cara yang paling mudah untuk membedakan antara tipe motor stepper
diatas adalah dengan cara memutar motor dengan dengan tangan ketika tidak
Pada motor stepper yang mempunyai permanen magnet maka ketika diputar dengan
tangan akan terasa lebih tersendat karena adanya gaya yang ditimbulkan oleh
maka ketika diputar akan terasa lebih halus karena sisa reluktansinya cukup kecil.
Pada motor yang mempunyai variabel reluktansi maka semua lilitan pada ujungnya
dijadikan satu pada sebuah pin common. Untuk dapat menggerakan motor ini maka
Gambar berikut merupakan struktur dari gambar motor stepper dengan variabel
reluktansi dimana tiap stepnya adalah 300 mempunyai 4 buah kutub pada rotor dan 6
Jika lilitan 1 dilewati mole arus, lilitan 2 dan 3 akan mati maka kumparan 1 akan
menghasilkan gaya tolakan kepada rotor dan rotor akan berputar sejauh 300 searah
jarum jam.
Jika kondisi seperti ini berulang terus menerus secara berurutan maka lilitan 2
dilewati arus kemudian lilitan 3 maka motor akan berputar secara terus menerus.
Kondisi on pada data diatas diartikan bahwa lilitan yang bersangkutan dilewati
arus sehingga menghasilkan gaya tolak pada rotor. Sedangkan kondisi off
Permanen Magnet
Motor stepper dengan tipe unipolar adalah motor stepper yang memiliki lilitan
pada gambar.
Motor ini mempunyai step tiap300 dan mempunyai dua buah lilitan yang
Dengan konstruksi seperti ini jika dibutuhkan kepresisian dari motor stepper
yang lebih tinggi dibutuhkan pula kutub-kutub pada stator dan rotor yang
semakin banyak pula. Pada gambar motor tersebut akan bergerak setiap step
pudyastowo@gmail.com
sebesar 300 dengan 4 bit urutan data (terdapat dua buah lilitan dengan tap,
Ketika arus mengalir melalui tap tengah pada lilitan pertama akan
menyebabkan kutub pada stator bagian atas menjadi kutub utara sedangkan
kutub stator bagian bawah menjadi kutub selatan. Kondisi ini akan
Ketika arus yang mengalir melalui lilitan 1 dihentikan dan lilitan 2 diberi arus
maka rotor akan bergerak lagi menuju kutub-kutub ini. Sampai disini rotor
Urutan data pemberian pulsa untuk motor stepper dengan tipe unipolar
Untuk meningkatkan torsi yang tidak terlalu besar maka dapat diberikan
urutan penberian dimana terdapat dua buah lilitan yang diberi arus pada satu
waktu yang sama. Dengan pemberian urutan data seperti ini akan
menghasilkan torsi yang lebih besar dan tentunya membutuhkan daya yang
lebih besar.
Motor dengan tipe bipolar ini mempunyai konstruksi yang hampir sama
dengan konstruksi motor stepper tipe unipolar namun tidak terdapat tap pada
sedikit lebih rumit untuk mengatur agar motor ini dapat berputar dua arah.
yang sering dikenal sebagai H Bridge. Rangkaian ini akan mengontrol tiap-
lilitan. Untuk mengontrol agar motor ini dapat berputar 1 step maka perlu
dengan fungsi utama yaitu perintah sensor dalam mendeteksi warna putih dan hitam.
Alat ini bekerja dengan sistem mengulumg iklan dari atas ke bawah dan sebaliknya
dari bawah ke atas. Jadi kita dapat mengisi jumlah iklan sesuai dengan keinginan kita.
aplikasi perpaduan antara sistem kendali dalam bentuk perangkat keras maupun
perangkat lunak, sehingga perlu dipersiapkan beberapa hal yang mendukung jalannya
penelitian.
Metode penulisan Tugas Akhir ini menggunakan teknik studi pustaka dan percobaan
dan yang sesuai dengan materi Tugas Akhir ini, sedangkan percobaan laboratorium
dilakukan untuk menguji cara kerja yang sebenarnya alat yang akan dibuat dan
Driver Sen
Mikrokontroler sensor Layar Reklame
AT89S52 sor
Perencanaan rangkaian
sebagai pengepas posisi iklan. Dimana sensor ini di pasang di dekat reklame dan di
setiap sudut reklame di kasih tanda warna hitam agar sensor dapat mendeteksi iklan
dan iklan akan berhenti. Masing-masing sensor dipasang sedemikian rupa sehingga
sebgai penggeraknya.
pudyastowo@gmail.com
Komparator adalah pembanding. Prinsip kerja dari komparator adalah Output akan
mengeluarkan logic 1 saat tegangan input lebih besar dari pada tegangan referensi
dan output akan mengeluarkan logic 0 saat tegangan input lebih kecil dari pada
tegangan referensi.
Atau Jika tegangan referensi lebih kecil dari masukannya maka keluarannya
mendekati +VCC, tetapi apabila tegangan referensi lebih besar dari masukannya maka
tegangan keluarannya mendekati –VEE. Hal ini terjadi bila tegangan referensi
Kompaator sebagai pengubah media sinyal dalam pengertian bahwa sinyal yang
diubah merupakan bentuk analog ke digital. Sinyal analog dapat diketahui apabila
Rangkaian kendali
motor steper pada sleading reklame. Mikrokontroller mempunyai empat port 0, port
1, port 2, port 3, yang memiliki resistor pull up jika di gunakan sebagai masukan. Pin
pada port 0, port 1, port 2, port 3 akan berada pada posisi HIGH jika dalam keadaan
terbuka akan menjadi sumber arus jika dihubungkan dengan piranti eksternal ke
ground. Port 0 tidak memilki pull up dan akan mempunyai impedansi yang tinggi jika
Driver motor
12VD C
1N4002
1N4002
4K7 4K7
BD 139 BD 139
2N 3055 2N 3055
D 0 4 1 C
2 L1
D 1 3
D 2 2 3 L2
D 3 1 4 L3
5
L4
1N4002
1N4002
4K7 4K7
BD 139 BD 139
2N 3055 2N 3055
Driver motor ini merupakan driver motor yang mampu mengerakan motor secara
bolak balik dimana mengunakan transistor jenis BD139 dan 2N3055. Driver motor
disini mengunakan catu daya sendiri. Masukan dari driver motor ini adalah dari pin-
pin IC komparator LM339. Pada driver motor disini juga mengunakan resistor 4K7
dan dioda 1N4002. Motor yang digunkan dalam alat ini motor steper yang
mempunysi tegangan sebesar 12 volt. Dimana driver motor yang satu dengan yang
Rangkaian keseluruhan
2 2 0 V A C 25 2 2 0 0 u F /2 5 V
T R A F O 5 A
Rangkaian catu daya ini akan berfungsi untuk menyediakan tegangan catu yang
nantinya dipakai untuk beban motor. Dimana tegangan motor yang digunakan sebesar
12 volt. Catu daya Catu daya ini dengan keluaran 12 volt prinsipnya adalah keluaran
pudyastowo@gmail.com
GN
1 I O
D
5
2
5VD
220 2200uF/31N40
1
Catu daya +5 volt digunakan untuk suplai daya penggerak tampilan sevent segment
sekaligus sebagai suplai daya pada Mikrokontroler. Keluaran +5 volt diatur oleh IC
regulator LM7805 yang sebelumnya telah dilakukan filter dengan dua kapasitor
Timer
Cek Tidak
iklan
I
Ya
Putar atas
Timer
Cek
iklan
terakhir
Tidak
Ya
Putar bawah
Timer
Cek iklan
I Tidak
ya
Pada saat kondisi ON maka timer akan berjalan dan akan mulai menghitung waktu
yang telah diset. Setelah timer selesai maka relame akan berjalan dan mengecek
apakah itu iklan I kalau ya motor akan berputar ke atas dan timer akan berjalan, kalau
tidak maka akan mengecek apakah itu iklan terakhir seandainya tidak juga maka
motor akan berputar ke atas tapi seandainya tadi iklan terakhir maka akan berputar ke
bawah. Jika sensor 3 off maka timer akan mulai berjalan setelah timer menunjukan 00
maka reklame berjalan dan akan mengecek kembali apakah itu iklan I kalau ya motor
akan berputar ke atas lagi kalau tidak motor akan berputar ke bawah dan seterusnya.
Perencanaan software
AT89S52 adalah menggunakan syn Text Editor. Program ini bekerja dibawah sistem
pemograman pada chip yang sudah selesai dapat langsung ditampilkan pada monitor
dan apabila terjadi kesalahan pemograman atau ingin mengganti isi program suatu
chip tidak perlu melepas chip. Sedangkan kelemahan utamanya bahasa pemograman
Program sensor
else if(P2==0xf2) //apakah ini iklan tengahan?
{
if(arah==1)
{
while(P2_1==1) //masih si atas tanda
{
put_mot_atas();
}
while(P2_1==0) //masuk ke garis hitam
{
put_mot_atas();
}
}
else if(arah==0)
{
while(P2_1==1)
{
put_mot_bawah();
}
while(P2_1==0)
{
put_mot_bawah();
}
}
else{}
}
{
while(P2_1==1) //putih =1 hitam=0
{
put_mot_bawah();
}
while(P2_1==0)
{
put_mot_bawah();
}
arah = 0;
if (status)
return d7seg_dt_on[c];
else
return d7seg_dt_off[c];
}
dig1=angka/600;
angka%=600;
dig2=angka/60;
angka%=60;
dig3=angka/10;
angka%=10;
dig4=angka%10;
for(i=0;i<50;i++)
{
P1=bin7seg(dig1,0);
P3=0x10;
tunda(5);
P1=bin7seg(dig2,0);
P3=0x08;
tunda(5);
P1=bin7seg(dig3,0);
P3=0x02;
tunda(5);
P1=bin7seg(dig4,0);
P3=0x01;
tunda(5);
}
pudyastowo@gmail.com
P0=0x20;
tunda(5);
P0=0x30;
tunda(5);
P0=0x10;
tunda(5);
P0=0x90;
tunda(5);
}
void put_mot_bawah()
{
P0=0x08;
tunda(5);
P0=0x0c;
tunda(5);
P0=0x04;
pudyastowo@gmail.com
tunda(5);
P0=0x06;
tunda(5);
P0=0x02;
tunda(5);
P0=0x03;
tunda(5);
P0=0x01;
tunda(5);
P0=0x09;
tunda(5);
}
pudyastowo@gmail.com
#include<at89x52.h>
void tunda1ms();
void tunda(unsigned int n);
void display(unsigned int angka);
void put_mot_atas();
void put_mot_bawah();
char arah;
void main()
{
unsigned int i;
arah = 1;
while(1)
{
P0=0x00;
for(i=10;i>0;i--) //maksimal i=5940 !!! ingat
{
P0=0x00;
display(i);
while(P2_7==0)
{
put_mot_atas();
}
while(P2_6==0)
{
put_mot_bawah();
pudyastowo@gmail.com
}
}
display(i);
}
else if(arah==0)
{
while(P2_1==1)
{
put_mot_bawah();
}
while(P2_1==0)
{
put_mot_bawah();
}
}
else{}
}
while(P2_1==0)
{
put_mot_atas();
}
}
}
}
if (status)
return d7seg_dt_on[c];
else
return d7seg_dt_off[c];
}
dig1=angka/600;
angka%=600;
dig2=angka/60;
angka%=60;
pudyastowo@gmail.com
dig3=angka/10;
angka%=10;
dig4=angka%10;
for(i=0;i<50;i++)
{
P1=bin7seg(dig1,0);
P3=0x10;
tunda(5);
P1=bin7seg(dig2,0);
P3=0x08;
tunda(5);
P1=bin7seg(dig3,0);
P3=0x02;
tunda(5);
P1=bin7seg(dig4,0);
P3=0x01;
tunda(5);
}
}
void put_mot_atas()
{
P0=0x80;
tunda(5);
P0=0xc0;
pudyastowo@gmail.com
tunda(5);
P0=0x40;
tunda(5);
P0=0x60;
tunda(5);
P0=0x20;
tunda(5);
P0=0x30;
tunda(5);
P0=0x10;
tunda(5);
P0=0x90;
tunda(5);
}
void put_mot_bawah()
{
P0=0x08;
tunda(5);
P0=0x0c;
tunda(5);
P0=0x04;
tunda(5);
P0=0x06;
tunda(5);
P0=0x02;
tunda(5);
pudyastowo@gmail.com
P0=0x03;
tunda(5);
P0=0x01;
tunda(5);
P0=0x09;
tunda(5);
}
void tunda1ms()
{
unsigned int i;
for(i=0;i<100;i++);
}