Anda di halaman 1dari 52

Tugas Resmi

Mikrokontroller
Disusun Oleh:

Nama : Febriyanto
NIM : 121910201012
Kelas : C
Prod/Jur : S-1 Elektro
Dosen : Bambang Supeno, ST.MT


FAKULTAS TEKNIK
UNIVERSITAS JEMBER
2013
KATA PENGANTAR

Puji dan syukur kami panjatkan kehadirat Allah SWT yang telah
memberikan dan melimpahkan rezeki serta karunia-Nya sehingga penyusun dapat
menyelesaikan makalah tugas resmi MIKROKONTROLLER tanpa mengalami
hambatan.
Laporan ini disusun sebagai prasyarat telah menempuh mata kuliah
MIKROKONTROLLER semester ganjil.

Tidak lupa kami ucapkan terima kasih yang sebesar-besarnya kepada
semua pihak yang telah banyak membantu dalam penyusunan makalah ini.
Terutama ucapan ini kami sampaikan kepada semua pembina yang telah
membimbing kami selama melaksanakan pembelajaran, Serta semua pihak yang
telah membantu kami yang tidak dapat disebutkan satu persatunya.
Kami penyusun telah berusaha untuk memberikan yang terbaik, tetapi
kami sangat menyadari bahwa laporan ini tidak luput dari kesalahan dan masih
jauh dari kesempurnaan. Oleh karena itu, penyusun mengharapkan kepada para
pembaca untuk memberikan kritik dan saran yang bersifat membangun untuk
pembangunan dimasa yang akan datang.
Akhirnya kami berharap semoga makalah yang telah saya buat ini dapat
bermanfaat khususnya bagi kami penyusun dan umumnya bagi semua pembaca.


Jember, 29 Desember 2013

Penyusun


DAFTAR ISI

1. Kata Pengantar
2. Daftar Isi
3. Makalah
Tugas 1 Mikrokontroller dan Mikroprosesor
Tugas 2 Running Led
Tugas 3 Seven Segment
Tugas 4 Keypad
Tugas 5 Motor Stepper
4. Daftar Pustaka















Tugas 1
Mikrokontroller
Mikroprosesor dan Mikrokontroller
Disusun Oleh:

Nama : Febriyanto
NIM : 121910201012
Kelas : C
Prod/Jur : S-1 Elektro
Dosen : Bambang Supeno, ST.MT



FAKULTAS TEKNIK
UNIVERSITAS JEMBER
2013
1. Perbedaan Mikroprosesor dan Mikrokontroller

1.1. Mikroprosesor
Mikroprosesor merupakan perangkat keras yang tidak bisa bekerja
tanpa softwere dan mempunyai kemampuan untuk diprogram atau
program ulang. Misalnya lampu pengatur lalin yang menggunakan
mikroprosesor bisa diubah set waktunya dengan hanya mengubah
program, dan bukan rangkaian sirkuitnya.
1.2. MIKROKONTROLLER
Mikrokontroller merupakan mikroprosesor yang dikhususkan
untuk implementasi kendali. Misalnya untuk kendali motor berperan
sebagai PLC (Programmable Logic Controller), pengaturan pengapian
pada motor jenis injeksi, gerakan-gerakan pada robot, pengatur besaran,
suhu, tekanan, kelembaban, lampu lalin, kamera pengintai dan lain-lain.
Mikrokontroller adalah suatu kombinasi mikroprosesor, piranti I/O
(Input/Output) dan memori, yang terdiri atas ROM (Read Only Memory)
dan RAM (Random Access Memory), dalam bentuk keping tunggal
(single chip).
2. Kelebihan Dan Kekurangan Mikroprosesor Dan Mikrokontroller
Adapun kelebihan dan kekurangan mikroprosesor dan
mikrokontroller adalah sebagai berikut:
2.2. KELEBIHAN
1. Programmable.
2. Rangkaian lebih terintegrasi, kompak, sederhana dan lebih mudah
membuat PCB (Packet Circuit Block).
3. Pengembangan fleksibel.

2.3. KEKURANGAN
1. Kerusakan program menyebabkan sistem macet.
2. Tergantung pada softwere.
3. Lebih sensitif terhadap derau.
4. Cepat usang (obsolete).

3. Mikrokontroller ATmega8535
AT mega8535 adalah mikrokontroller 8 bit buatan ATMEL dengan
8 KByte System Programable Flash dengan teknologi memori tak
sumirna(nonvolatile), kepadatan tinggi, dan kompatibel dengan pin out
dan set instruksi standar industri MCS51 INTEL. Arsitektur yang
digunakan dengan RISC (Reduce Instruction set in singgle chip).
3.1. Karakteristik Mikrokontroller Atmega 8535 sebagai berikut :
Adapun Beberapa Karakteristik Mikrokontroller
ATmega8535 antara lain sebagai berikut :
1. Kompatibel dengan produk keluarga MCS51.
2. Dapat digunakannya bahasa C sebagai bahasa
pemrogramannya.
3. Programmable Flash Memory sebesar 8 K Byte.
4. Memiliki 512 Bytes EEPROM yang dapat diprogram.
5. Ketahanan (endurance) : 10.000 siklus tulis/hapus.
6. Jangkauan operasi : 4,5 5,5 Volt.
7. Fully Static Operation : 0 Hz 16 MHz untuk ATmega8535.
8. Dua level Program Memory Lock yaitu flash program dan
EEPROM data seccurity.
9. RAM Internal 128 X 8 bit.
10. Memiliki 32 jalur I/O yang dapat diprogram.
11. Satu pencacah 8 bit dengan separate prescaler.


3.2. Susunan Kaki Mikrokontroler ATmega8535
Bentuk kemasan dan susunan kaki-kaki mikrokontroler dari
ATmega8535 diperlihatkan seperti padaGambar berikut:


3.3. Fungsi dari kaki-kaki Mikrokontroler ATmega8535,antara lain:
1. VCC (kaki 40) dihubungkan ke Vcc.
2. GND (kaki 20) dihubungkan ke ground.
3. PortA (PA7..PA0) (kaki 32-39) merupakan port 8 bit dua arah
(bidirectional) I/O. Port ini berfungsi sebagai port data/alamat
I/O ketika menggunakan SRAM eksternal.
4. Port B (PB7..PB0) (kaki 1-8) merupakan port 8 bit dua arah
(bidirectional) I/O, untuk berbagai keperluan (multi purpose).
5. Port C (PC7..PC0) (kaki 21-28) adalah port 8 bit dua arah I/O,
dengan internal pull-up resistor. Port C ini juga berfungsi
sebagai port alamat ketika menggunakan SRAM eksternal.
6. Port D (PD7..PD0) (kaki 10-17) adalah port 8 bit dua arah I/O
dengan resistor pull-up internal. Port D juga dapat berfungsi
sebagai terminal khusus.
7. Reset (kaki 9) ketika kondisi rendah rendah yang lebih lama
dari 50 nS mikrokontroler akan reset walaupun detak tidak
berjalan.
8. XTAL1 (kaki 19) masukan bagi penguat osilator terbalik dan
masukan bagi rangkaian operasi detak internal.
9. XTAL2 (kaki 18) keluaran dari penguat osilator terbalik.
10. ICP (kaki 31) adalah masukan bagi masukan fungsi Capture
Timer/counter1.
11. OC1B (kaki 29) adalah kaki keluaran bagi fungsi Output
CompareB keluaran Timer/Counter1.
12. ALE (Address Latch Enable) (kaki 30) digunakan ketika
menggunakan SRAM eksternal. Kaki ini digunakan untuk
mengunci 8 bit alamat bawah pada saat siklus akses pertama,
dan berfungsi sebagai port data pada siklus akses kedua.
3.4. Blok Diagram dan Arsitektur ATmega8535
ATmega8535 mempunyai 32 general purpose register
(R0..R31) yang terhubung langsung dengan Arithmetic Logic
Unit (ALU), sehingga register dapat diakses dan dieksekusi hanya
dalam waktu satu siklus clock. ALU merupakan tempat
dilakukannya operasi fungsi aritmetik, logika dan operasi bit. R30
disebut juga sebagai Z-Register, yang digunakan sebagai register
penunjuk pada pengalamatan tak langsung. Didalam ALU terjadi
operasi aritmetik dan logika antar register, antara register dan
suatu konstanta, maupun operasi untuk register tunggal (single
register). Berikut arsitekturnya yang ditunjukkan blok diagram
pada gambar berikut:


3.5. Organisasi Memori
AVR menggunakan arsitektur Harvard, sehingga
memisahkan memori serta bus data dengan program. Program
ditempatkan Flash Memory, sedangkan memori data terdiri dari
32 buah register serbaguna, 64 register serbaguna, 512 bytes
internal SRAM dan 64 Kbytes SRAM eksternal yang dapat
ditambahkan Berdasarkan fungsinya terdapat 4 macam memori
pada ATmega8535.




3.6. Memori Program
ATmega8535 mempunyai kapasitas memori program
sebesar 8 Kbytes. Karena semua format instruksi berupa kata
(word), Format word yang biasa digunakan adalah 16 atau 32 bit.
Pada ATmega8535 ini format memori program yang digunakan
adalah 16 bit, sehingga format memori program yang digunakan
adalah 4Kx16bit. Memori Flash ini dirancang untuk dapat di
hapus dan tulis sebanyak seribu kali. Program Counter (PC)-nya
sepanjang 12 bit, sehingga mampu mengakses hingga 4096
alamat program memori. Memori program pada ATmega8535.
Setelah reset CPU memulai eksekusi dari lokasi 0000h. Setiap
interupsi mempunyai lokasi tetap dalam memori program.
Interupsi menyebabkan CPU melompat ke lokasi tersebut dimana
pada lokasi tersebut terdapat subrutin yang harus dilaksanakan.
Berikut merupakan gambar dari bagian bawah memori
program:





Tugas 2
Mikrokontroller
Running LED
Disusun Oleh:

Nama : Febriyanto
NIM : 121910201012
Kelas : C
Prod/Jur : S-1 Elektro
Dosen : Bambang Supeno, ST.MT



FAKULTAS TEKNIK
UNIVERSITAS JEMBER
2013

Program dari ruangkaian running LED diatas:
/*****************************************************
Chip type : Atmega8535
Program type : Application
AVR Core Clock frequency : 12,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
while (1)
FILE NAME:
BY:
DATE:
PAGE:
running led versi febriyanto.DSN
30/11/2013
<NONE>
A B C D E F G H J K
A B C D E F G H J K
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
E:\FCB\mari belajar yuk\data semester 3\microcontroller\tugas CD mikro\tugas 2 running led\running led versi febriyanto.DSN PATH:
1 of 1
REV: <NONE> TIME: 13:28:01
DESIGN TITLE: RUNNING LED
PC6/TOSC1
28
PC5
27
PC4
26
PC3
25
PC2
24
PC1/SDA
23
PC0/SCL
22
PC7/TOSC2
29
PA6/ADC6
34
PA5/ADC5
35
PA4/ADC4
36
PA3/ADC3
37
PA2/ADC2
38
PA1/ADC1
39
PA0/ADC0
40
PA7/ADC7
33
PB6/MISO
7
PB5/MOSI
6
PB4/SS
5
PB3/AIN1/OC0
4
PB2/AIN0/INT2
3
PB1/T1
2
PB0/T0/XCK
1
PB7/SCK
8
PD6/ICP1
20
PD5/OC1A
19
PD4/OC1B
18
PD3/INT1
17
PD2/INT0
16
PD1/TXD
15
PD0/RXD
14
PD7/OC2
21
RESET
9
XTAL1
13
XTAL2
12
AVCC
30
AREF
32
U1
ATMEGA8535
1B
1
2B
2
3B
3
4B
4
5B
5
6B
6
7B
7
8B
8
1C
18
2C
17
3C
16
4C
15
5C
14
6C
13
7C
12
8C
11
COM
10
U2
ULN2803
R2 330R
VCC
R3 330R
R4 330R
R5 330R
R6 330R
R7 330R
R8 330R
R9 330R
D9
LED
D13
LED
VCC
RUNNING LED
Rangkaian ini menggunakan mikrokontroler
ATMEGA8535 untuk mengontrol 8 LED.
LEDyang dihubungkan pada PortC
akan menyala secara bergantian dalam
interval waktu tertentu. LEDakan menyala
bila diberi logika "1".
1B
1
2B
2
3B
3
4B
4
5B
5
6B
6
7B
7
8B
8
1C
18
2C
17
3C
16
4C
15
5C
14
6C
13
7C
12
8C
11
COM
10
U3
ULN2803
R17 330R
VCC
R15 330R
R16 330R
R14 330R
R13 330R
R12 330R
R11 330R
R10 330R
D1
LED
D5
LED
VCC
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D6
LED-YELLOW
D7
LED-GREEN
D8
LED-GREEN
D10
LED-GREEN
D11
LED-GREEN
D12
LED-BLUE
D14
LED-BLUE
D15
LED-BLUE
D16
LED-BLUE
{
PORTC=0b00010001;
delay_ms(606);
PORTC=0b00100010;
delay_ms(605);
PORTC=0b01000100;
delay_ms(604);
PORTC=0b10001000;
delay_ms(603);
PORTC=0b00010001;
delay_ms(602);
PORTC=0b00100010;
delay_ms(601);
PORTC=0b01000100;
delay_ms(600);
PORTC=0b10001000;
delay_ms(599);

}
}



Tugas 3
Mikrokontroller
Seven Segment
Disusun Oleh:

Nama : Febriyanto
NIM : 121910201012
Kelas : C
Prod/Jur : S-1 Elektro
Dosen : Bambang Supeno, ST.MT



FAKULTAS TEKNIK
UNIVERSITAS JEMBER
2013
1. Sekilas Seputar Seven Segment

Seven-segment, biasanya dikenal sebagai suatu seven-segment
indikator, adalah suatu format dari alat tampilan yang suatu alternative ke
dot-matrix tampilan yang semakin kompleks. Seven-Segment adalah
biasanya digunakan di dalam elektronika sebagai metoda dari
mempertunjukkan umpan balik klasifikasi sistim decimal dengan operasi
yang internal tentang alat. 7 segmen diatur sebagai segiempat panjang dari
dua segmen yang vertikal pada [atas] masing-masing sisi dengan satu
segmen yang horizontal di bagian atas dan alast. Apalagi, segmen yang
ketujuh membagi dua bgian segiempat panjang secara horizontal.
Berikut gambar rangkaian dari seven segment menggunakan
proteus 7.10 dan codevision AVR sebagai pemrogramannya:


Program dari rangkaian seven segment diatas:
/*****************************************************
Chip type : ATmega8535
Program type : Application
PC6/TOSC1
28
PC5
27
PC4
26
PC3
25
PC2
24
PC1/SDA
23
PC0/SCL
22
PC7/TOSC2
29
PA6/ADC6
34
PA5/ADC5
35
PA4/ADC4
36
PA3/ADC3
37
PA2/ADC2
38
PA1/ADC1
39
PA0/ADC0
40
PA7/ADC7
33
PB6/MISO
7
PB5/MOSI
6
PB4/SS
5
PB3/AIN1/OC0
4
PB2/AIN0/INT2
3
PB1/T1
2
PB0/T0/XCK
1
PB7/SCK
8
PD6/ICP1
20
PD5/OC1A
19
PD4/OC1B
18
PD3/INT1
17
PD2/INT0
16
PD1/TXD
15
PD0/RXD
14
PD7/OC2
21
RESET
9
XTAL1
13
XTAL2
12
AVCC
30
AREF
32
U1
ATMEGA8535
OFF ON
1
2
3
4
5
6
7
8
9
DSW1
DIPSWC_8
2
3
4
5
6
7
8
9
1
RP1
330
1B
1
2B
2
3B
3
4B
4
5B
5
6B
6
7B
7
8B
8
1C
18
2C
17
3C
16
4C
15
5C
14
6C
13
7C
12
8C
11
COM
10
U2
ULN2803
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-BLUE
D2
LED-BLUE
D3
LED-BLUE
D4
LED-BLUE
D5
LED-BLUE
D6
LED-BLUE
D7
LED-BLUE
D8
LED-BLUE
X1
CRYSTAL
C1
22pF
C2
22pF
R9
10k
C3
10uF
c
b
a
12345 cba
1
2
3
4
5
AVR Core Clock frequency: 4.000000 MHz
Memory model : Small
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
unsigned int satuan, puluhan, ratusan;
unsignedcharbil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x
6f},nama[5]={0x71,0x79,0x7c,0x50,0x30};
void main(void)
while (1)
{
PORTC=PINB;
satuan=PINB%10;
puluhan=(PINB/10)%10;
ratusan=(PINB/100)%10;
PORTD=0b11111110;
PORTA=bil[satuan];
delay_ms(1);
PORTD=0B11111101;
PORTA=bil[puluhan];
delay_ms(1);
PORTD=0b11111011;
PORTA=bil[ratusan];
delay_ms(1);
PORTD=0B11110111;
PORTA=nama[0];
delay_ms(1);
PORTD=0B11101111;
PORTA=nama[1];
delay_ms(1);
PORTD=0B11011111;
PORTA=nama[2];
delay_ms(1);
PORTD=0B10111111;
PORTA=nama[3];
delay_ms(1);
PORTD=0B01111111;
PORTA=nama[4];
delay_ms(1);
}
}


Tugas 4
Mikrokontroller
Keypad
Disusun Oleh:

Nama : Febriyanto
NIM : 121910201012
Kelas : C
Prod/Jur : S-1 Elektro
Dosen : Bambang Supeno, ST.MT



FAKULTAS TEKNIK
UNIVERSITAS JEMBER
2013
Keypad dengan Teknik DTMF
1. Definisi DTMF (Dual Tone Multi Frekuency)
DTMF (Dual Tone Multi Frekuency) adalah teknik mengirimkan
angka-angka nomor telephon yang dikodekan dengan 2 nada yang dipilih
dari 8 buah frekuensi yang telah ditentukan. Delapan frekuensi tersebut
adalah 697 hz, 770 hz, 852 hz, 941 hz, 1209 hz, 1336 hz, 1477 hz dan
1633 hz. Sebagai contoh jika tombol 1 maka angka 1 dikodekan dengan
697 hz dan 1209 hz, dan angka 9 dikodekan dengan 852 hz dan 1477 hz.
Teknik dtmf mungkin memliki banyak keunggulan dibanding dengan cara
memutar piringan angka,tapi secara teknis lebih sulit diselesaikan
decoding sinyalnya. Dimana alat pengirim kode dtmf merupakan 8
rangkaian oscilator yang masing-masing membangkitkan frekuensi unik.
Multiple frequency adalah suatu teknik dari proses signaling dimana
menggunakan campuran dari dua buah sinyal (sine wave sound). Pada
awalnya metode ini dikembangkan oleh bell system and CCITT. Dimana
penggunaannya diperuntukan sebagai penentu tujuan antar publik
switching pada sistem telepon jarak jauh. Ternyata dengan metode ini
dapat menambah kecepatan dan efisiensi layanan telepon saat itu.teknologi
dtmf atau yang dikenal dengan touch-tone pertama kali dipergunakan
secara komersil oleh at&t sebuah perusahan telekomunikasi di amerika
pada 5 juli 1960. Yang dituangkan dalam publikasinya pada buletin
no.105 at&t berjudul a method for pushbutton signaling from
customerstation using the voice transmission path. Kemudian
perkembangan selanjutnya banyak vendorain menggunakan teknologi ini
dalam aplikasi telepon mereka. Dikarenakan kekhawatiran akan adanyan
interferensi sinyal antar pengguna telepon yang menggunakan konsep
multiple frequency, maka di buatlah berbagai aturan dan protokol untuk
itu seperti : mf/r1,r2,ccs4,ccs5,ss7, hingga terakhir disepakati itu-t q.23.
Jadi dapat kita ketahui bahwa keypad merupakan suatu tombol perintah
hasil representasi dari pemanfaatan frekuensi pada teknologi DTMF
dimana menjumlahkan frekuensi tinggi dengan frekuensi rendah
berdasarkan kode-kode tertentu.
2. DTMF (Dual Tone Multiple Frequency Signal)
2.1 Cara Kerja
Setelah beralih ke teknologi digital , proses dialing nomor telepon
tidak lagi dengan memutar piringan angka, namun dengan cara menekan
tombol-tombol angka. Diilustrasikan sebagai berikut, ketika kita
menekan tombol pada keypad telepon, sebuah hubungan terjadi karena
gabungan atau penjumlahan dua buah sinyal suara pada saat bersamaan.
Penjumlahan sinyal frekuensi tersebut disebut dual tone multiple
frequency. Dimana sinyal ini identik dan unik.DTMF sinyal adalah
penjumlahan dua buah sinyal audio frekwensi yang berbeda, dimana
dapat direpresentasikan sebagai persamaan aljabar :

Dimana setiap grup frekuensi terdiri dari empat frekuensi , empat
frekuensi tinggi dan empat frekuensi rendah. Sedangkan a dan b
merepresentasikan nilai amplitudo dari masing-masing frekuensi.
Dimana setiap tombol yang ditekan merupakan hasil dari penjumlahan
satu frekuensi tinggi dan satu frekuensi rendah yang menghasilkan
sebuah sinyal dtmf yang merupakan representasi dari tombol tersebut.

Sebagai ilustrasi ketika user menekan tombol nomor telepon
pada keypad pesawat teleponmaka setiap tombol tersebut akan
menghasilkan sinyal dtmf dari penjumlahan dua buah frekwensi yang
merepresentasikan masing-masing tombol. Misalnya user menekan
tombol 5 pada keypad, maka terjadi penjumlahan sinyal suara dari
frekuensi tinggi (1336hz) dan frekuensi rendah (770hz). Maka akan
terjadi penjumlahan sinyal frekuwnsi dengan persamaan :

Kemudian sinyal dtmf tersebut mengalir melewati kabel dan
menuju kepada server telepon, kemudian server mengidentifikasi sinyal
tersebut dan melihat nomor tujuan lalu membangun hubungan
komunikasi dengan user penerima.kemudian masing-masing dapat saling
berkomunikasi. Sedangkan besarnya amplitudo pada sinyal dtmf yang
merupakan hasil penjumlahan dua buah frekwensi tersebut berkisar
antara :

Dimana biasanya pada suatu grafik frekwensi, garis y disebut
amplitudo dengan besaran v (voltase) dan garis y merepresentasikan
waktu (t).teknik dtmf mempunyai banyak keuntungan dibanding dengan
memutar piringan angka, tetapi secara teknis lebih sulit. Alat pengirim
kode dtmf merupakan 8 rangkaian oscilator yang masing-masing
membangkitkan frekuensi diatas, ditambah dengan rangkaian pencampur
frekuensi untuk mengirimkan 2 nada yang terpilih. Sedangkan penerima
kode lebih rumit lagi, dibentuk dari 8 filter yang tidak sederhana dan
rangkaian tambahan lainnya.
2.2 Rangkaian Pembuat DTMF
2.2.1. DTMF signal generation
Untuk membuat sistem kerja dtmf untuk kontrol
sistem pada telepon biasanya digunakan ic (um-91214,um-
91214b,dll). Dimana ic ini dapat merepresentasikan setiap
frekuensi pada tombol, dikarenakan ic tersebut mampu
memuat representasi array empat baris dan tiga kolom, sama
seperti keypad telepon.

Dapat dilihat pada gambar rangkaian tersebut, sisi
inputan pada ic um-91214 ada pada pin 12-14 menghasilkan
frekuensi tinggi pada grup kolom, sedangkan pin 15-18
menghasilkan frekuensi rendah pada grup baris. Sedangkan
untuk output ada pada pin 7, sebagai tempat keluar sinyal
dtmf hasil penjumlahan frekuensi, yang nantinya akan
dikirim kepada sistem kontrol server melalui kabel.untuk
menghasilkan sinyal yang hasilnya tepat, maka diperlukan
beberapa komponen dan properti tambahan pada rangkaian,
yaitu berupa crystal oscillator 3,58 mhz yang dihubungkan
pada pin 3 dan 4 sehingga dapat menjadi bagian dari
oscillator internal. Sedangkan untuk sumber daya ic ini
membutuhkan tegangan sebesar 3 v. Dimana biasanya
disupply dari sebuah zener diode berkapasitas 3,2 v. Diode
ini berfungi sebagai penstabil tegangan pada rangkaian.
2.2.2 DTMF decoder
Pada sisi penerima telepon, sistem rangkaian dtmf
akan menganalisa nilai dari sinyal dtmf yang masuk.
Rangkaian decoder ini intinya ada pada ic mt-8870/ ic kt-
3170 / ic mt-8888, dengan cara kerja sebagai penerjemah
sinyal yang datang dari kabel telepon menjadi sebuah nilai
bcd (binary code-decimal). Prinsip kerjanya adalah
memisahkan sinyal dtmf atas frekuensi rendah dan frekuensi
tinggi, kemudian masing-masing sinyal tersebut diproses
secara terpisah dengan membandingkan frekuensi masukan
dengan clock referensi yang ada pada rangkaian ic. Pokok
permasalahan yang perlu diperhatikan adalah toleransi
kecacatan sinyal karena noise atau gangguan lain yang
mengakibatkan kesalahan pembacaan sinyal.pada ic mt-8870
menggunakan crystal oscillator dengan frkwensi 3,85 mhz. Ic
ini menggunakan prinsip kerja bandpass filter. Hal ini
dikarenakan fungsinya yang dapat melewatkan sinyal yang
frekwensinya berada pada batas yang ditentukan. Sehingga
dapat dipisahkan mana sinyal dengan frekwensi rendah, dan
mana sinyal dengan frekwensi tinggi. Sedangkan pada bagian
decodernya mampu mendeteksi dan merubah semua
pasangan frekwensi sinyal dtmf menjadi 4-bit code.
Kemudian dapat menentukan frekuensi dari batas suara yang
ada dan memeriksa dengan frekwensi dtmf standar.untuk
komponen eksternal yang dibutuhkan diantaranya adalah
crystal oscillator 3,58 mhz, timing resistor, dan timing
capasitor.

Kelompok frekwensi rendah dan tinggi dipisahkan
dengan memasukan sinyal dtmf kedalam input dari dua
6thorders switched capacitor bandpass filter dengan batasan
nilai yang sesuai dengan nilai grup sinyal frekwensi. Filter
ini juga menyertakan bentuk frekuensi 350 hz dan 440 hz
untuk penolakan call tone bila terjadi kesalahan. Kemudian
masing-masing keluaran dari filter dimasukan kepada switch
order tunggal pada bagian kapasitor filter, untuk
memperlancar sinyal masukan sebelum dipartisi. Caranya
dengan membandingkan sinyal dengan high-gain comparator
dengan hysteresis untuk mencegah adanya sinyal-sinyal
yang tidak diinginkan atau noise.kemudian ketika detector
mengenali adanya sinyal yang sesuai dengan standar,maka
detector akan menaikan early steering flag (est). Namun jika
detector tidak megenali adanya sinyal yang sesuai maka est
akan turun. Proses mengenali sinyal yang sesuai yaitu dengan
memeriksa delay dari sinyal yang masuk ke decoder pada
eksernal rc time (resistor and capacitor time). Jika delaynya
sebentar atau sedikit, maka akan menaikan est dan berlaku
sebaliknya jika delaynya lama maka akan menurunkan est.
Hal ini berdampak pada proses pengkodean pada rangkaian.
Jika est naik maka control output akan merepresentasikan
sebagai nilai logika tinngi (1) dan sebaliknya jika est turun
maka control output akan merepresentasikan nilai logika (0).
Kemudian rangkaian 4-bit tersebut direpresentasikan sebagai
nilai pada tombol keypad.

Berikut adalah salah satu contoh rangkaian dtmf
decoder yang biasa digunakan.

Pada rangkaian penerima dtmf yang dibangun dengan
at89c2051 dan mt8870 ini terlihat bahwa at89c2051
dilengkapi xtal y2 (12 mhz) ditambah kapasitor c3 dan c4
membentuk rangkaian oscilator, dilengkapi pula dengan
rangkaian reset yang dibentuk dengan c5 dan r4, kedua
rangkaian ini merupakan rangkaian baku at89c2051.mt8870
dilengkapi dengan xtal y1 (3.579545 mhz), c2 dan r3 dipakai
untuk menentukan waktu minimal untuk mengenali nada
dtmf yang diterima, rangkaian penguat sinyal dtmf dibentuk
dengan r1, c1 dan r2. Nilai-nilai komponen ini langsung
diambil dari lembaran data (data sheet) mt8870 yang sudah
disesuaikan dengan karakteristik sinyal dtmf pada umumnya.
Std (delayed steering - kaki 15 mt8870) merupakan output
yang menandakan mt8870 mempunyai data dtmf baru yang
bisa diambil. Saat tidak ada nada dtmf kaki std=0, jika
sinyal yang masuk mt8870 mengandung nada dtmf dan
nada itu lamanya melebihi konstanta waktu yang ditentukan
oleh c2 dan r3, std akan menjadi 1 memberitahu
at89c2051 bahwa ada data di d0..d3 (kaki 11 sampai dengan
14 mt8870) yang bisa di ambil. Sinyal std akan tetap bertahan
=1 manakala nada dtmf masih ada. Dalam gambar, std
dipantau lewat kaki p1.7 at89c2051.toe (tristate ouput enable
- kaki 10 mt8870) merupakan input untuk mengatur data di
d0..d3, jika toe=0 rangkaian output d0..d3d0..d3 tidak
digabungkan dengan jalur data peralatan lainnya, kaki toe
bisa saja dihubungkan ke 1. Akan mengambang (high
impedance state) sehingga data tidak bisa diambil. Jika dalam
gambar, toe di kendalikan dengan kaki p1.6at89c.

Gambar tabel representasi sinyal dtmf ke biner 4-bit

2.3 Aplikasi DTMF
2.3.1 DTMF Pada Pesawat Telepon
Pada tahun 1940-1n bell laboratories berhasil
mengembangkan sistem pensinyalan touch tone dialing
dengan membangkitkan nada sebagai pengganti sistem
pendialan pulsa pada pesawat telepon model lama yang
menggunakan cakram. Teknik dan prinsip kerja sama seperti
penjelasan diatas. Dimana masing-masing tombol pada
keypad di representasikan sebagai spenjumlahan dua buah
sinyal frekuensi.

2.3.2 Pengolahan Data Keluaran DTMF Decoder
Untuk mengendalikan peralatan listrik
memanfaatkan prinsip kerja dari dtmf untuk mengendalikan
peralatan listrik yang ada di rumah. Dengan tambahan
aplikasi sms, maka handphone yang ditambahi dengan ic
dtmf decoder mampu mengendalikan sistem perangkat
listrik di rumah. Sehingga memungkinkan pengguna
mengendalikan alat listrik dimana saja dan kapan saja.
Proses kerja secara garis besar adalah ketika program
dijalankan user, maka program mulai melakukan proses
pembacaan nilai dtmf. Selanjutnya nilai dtmf tersebut
dibandinkan dengan nilai referensi yang ada pada sistem.
Setelah nilainya sesuai maka dimulai proses pengendalian
peralatan listrik sesuai dengan nilai dtmf yang
direpresentasikan oleh peralatan tersebut. Misalnya nilai 1
untuk mematikan lampu dan sebagainya. Pegembangan
teknologi dtmf sangat luas, dan banyak digunakan sebagai
bagian dari fungsi kontrol suatu sistem dalam kehidupan
sehari-hari.
2.4 Regulasi Tentang DTMF
a) Pengaturan mengenai sistem dan spesifikasi dari dtmf sudah
dibuat dalam itu-telecommunication recomendation series q-23,
yang kemudian di ratifikasi oleh depkominfo melalui dirjen postel
dalam suatu peraturan sebagai berikut.
b) Pengkodean sinyal register dtmf untuk pelanggan analog :
pemakaian dtmf sebagai sinyal register untuk pelanggan analog
diatur dalam itu-telecomunication recommendation series q-23.



Sedangkan standar Dial DTMF adalah saat dimana nada
selama tombol telepon ditekan, tak perduli berapa lamanya, nada
dikodekan sebagai satu digit. Pengiriman digit dalam durasi yang
pendek 100 ms dapat juga dilakukan, tapi tidak oleh tangan
manusia karena hal tersebut tidak mungkin, dan hanya dilakukan
dengan cara otomatis.

2.6 DTMF In Labview

Pada labview aplikasi DTMF masuk kedalam pokok bahasan dari
dsp(digital signal processing). Pada labview, dtmf di representasikan
dengan algoritma goertzel. Dimana algoritma ini diasumsikan lebih
efisien dari fft (fast fouier transform) algorithm dalam implementasi
dtmf berdasarkan jumlah opersai pembentuknya, kecepatan eksekusi
dan alokasi memori. Namun tidak seperti fft algorithm, goertzel tidak
mengijinkan adanya inputan dari seluruh data. Jadi hanya
mengeksekusi data-data yang ditentukan saja. Oleh karenanya
algoritma goertzel digunakan pada aplikasi dtmf yang mana memiliki
nilai frekuensi yang tetap. Algoritma goertzel pertama kali
dipublikasikan oleh dr.gerald goertzel pada tahun 1985.perasamaan
dari algoritma goertzel filter adalah sebagai berikut :

Fs adalah nilai frekuensi yang diambil, sedangkan adalah
frekuensi sampling.
Pada algoritma goertzel yang digunakan sebagai filter pada dtmf
Detection adalah magnitude square output :


Dimana nilai koefisien dari dipilih dari nilai sinyal
frekuensi dtmf sebagai berikut :



Penjelasan dari flowchart :
1. ketika sinyal suara dtmf diterima oleh device, maka terdapat
dua buah nilai frekuensi komponen yaitu 679, 770, 852, 941,
1209,1336, 1447 hz.
2. gunakan algoritma goertzel untuk mencari nilai rkrusif dari
sunyaltersebut. Yang mana berkorespodensi dengan nilai
frekuensi standar.
3. kemudian hitung nilai dari frekuensi index-nya (k) yang
berdasarkan kepada nilai dari frekuensi sampling(fs) dan
ukuran data (n). Dimana nilai dari fs= 8000hz dan n=205.
4. kemudian nilai yang didapat dibandingkan dengan nilai
treshold yang ada pada decoder. Dimana nilai treshold
merupakan penjumlahan dari seluruh spectral frequency dari
tujuh frekwensi dtmf dibagi 4. Dimana nilai treshold yang
ideal adalah dari nilai individual spectral.
5. jika nilai spectral frequeny lebih besar dari nilai tresholdnya
maka pada output operation akan bernilai logic 1 dan selain itu
bernilai logic 0.








3. Penutup
3.1 Kesimpulan

Teknologi dtmf merupakan aplikasi yang memanfaatkan
penjumlahan frekuensi untuk dapat merepresentasikan suatu
tombol (pada keypad). Dengan adanya DTMF proses signaling
pada telepon switching menjadi lebih cepat dan efisien daripada
dengan metode rotary dial. Selain itu dtmf ternyata dapat
dimanfaatkan dalam berbagai aplikasi yang melibatkan sistem
kontrol dengan bantuan alat lain misalnya mikrokontroler.




















Berikut gambar rangkaian dari seven segment menggunakan
proteus 7.10 dan codevision AVR sebagai pemrogramannya:


*****************************************************
Chip type : ATmega8535
Program type : Application
AVR Core Clock frequency : 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
// Alphanumeric LCD functions
#include <alcd.h>
#include <stdio.h>
PC6/TOSC1
28
PC5
27
PC4
26
PC3
25
PC2
24
PC1/SDA
23
PC0/SCL
22
PC7/TOSC2
29
PA6/ADC6
34
PA5/ADC5
35
PA4/ADC4
36
PA3/ADC3
37
PA2/ADC2
38
PA1/ADC1
39
PA0/ADC0
40
PA7/ADC7
33
PB6/MISO
7
PB5/MOSI
6
PB4/SS
5
PB3/AIN1/OC0
4
PB2/AIN0/INT2
3
PB1/T1
2
PB0/T0/XCK
1
PB7/SCK
8
PD6/ICP1
20
PD5/OC1A
19
PD4/OC1B
18
PD3/INT1
17
PD2/INT0
16
PD1/TXD
15
PD0/RXD
14
PD7/OC2
21
RESET
9
XTAL1
13
XTAL2
12
AVCC
30
AREF
32
U2
ATMEGA8535
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
XTAL1
XTAL2
RESET
1 2 3
4 5 6
7 8 9
0 #
123
A
B
C
D
P
A
2
P
A
1
P
A
0
PA3
PA4
PA5
PA6
D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
P
D
7
P
D
6
P
D
5
P
D
4
P
D
2
P
D
1
P
D
0
X1
CRYSTAL
C1
22pF
C2
22pF
XTAL1
XTAL2
+
8
8
.
8 1B
1
1C
16
2B
2
2C
15
3B
3
3C
14
4B
4
4C
13
5B
5
5C
12
6B
6
6C
11
7B
7
7C
10
COM
9
U1
ULN2003A
PC0
PC1
PC3
PC2
// Declare your global variables here
unsigned char buf[33], pencet, kecepatan[11]={100, 90, 80, 70, 60,
50, 40, 30, 20, 10, 0};
int temp, mode = 0;
int kecepatanku = 5;
char anu;
void kepet (void){
DDRA = 0b00000111;
PORTA = 0b11111110;
switch(PINA)
{
case 0b11110110: pencet='1'; delay_ms(100);break;
case 0b11101110: pencet='4'; delay_ms(100);break;
case 0b11011110: pencet='7'; delay_ms(100);break;
case 0b10111110: pencet='*'; delay_ms(100);break;
}

//delay_ms(100);
DDRA = 0b00000111;
PORTA = 0b11111101;
switch(PINA){
case 0b11110101: pencet='2'; delay_ms(100);break;
case 0b11101101: pencet='5'; delay_ms(100);break;
case 0b11011101: pencet='8'; delay_ms(100);break;
case 0b10111101: pencet='0'; delay_ms(100);break;
}
//delay_ms(100);
DDRA = 0b00000111;
PORTA = 0b11111011;

switch(PINA){
case 0b11110011: pencet='3'; delay_ms(100);break;
case 0b11101011: pencet='6'; delay_ms(100);break;
case 0b11011011: pencet='9'; delay_ms(100);break;
case 0b10111011: pencet='#'; delay_ms(100);break;
}
//delay_ms(100);
}
void main(void)
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Demo keypad dan");
lcd_gotoxy(0,1);
lcd_putsf("stepper oleh");
delay_ms(100);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Awang Karisma");
lcd_gotoxy(4,1);
lcd_putsf("121910201069");
delay_ms(100);
while (1)
{
// Place your code here
kepet();
while(mode!='4' && mode!='6'){
kepet();
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Arah stepper:");
lcd_gotoxy(0,1);
sprintf(buf, "(4:%c, 6:%c) : %c", 0b01111111,0b01111110,
pencet);
lcd_puts(buf);
if(pencet=='5'){mode=temp;}
else {temp=pencet;};
}
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buf, "Speed: %i Arah:%c", kecepatanku, anu);
lcd_puts(buf);
lcd_gotoxy(0,1);
sprintf(buf, "Nilai: %c", pencet);
lcd_puts(buf);
if(mode=='4'){
anu = 0b01111111;
PORTC=1; delay_ms(kecepatan[kecepatanku]);
PORTC=2; delay_ms(kecepatan[kecepatanku]);
PORTC=4; delay_ms(kecepatan[kecepatanku]);
PORTC=8; delay_ms(kecepatan[kecepatanku]);
}
if(mode=='6'){
anu = 0b01111110;
PORTC=8; delay_ms(kecepatan[kecepatanku]);
PORTC=4; delay_ms(kecepatan[kecepatanku]);
PORTC=2; delay_ms(kecepatan[kecepatanku]);
PORTC=1; delay_ms(kecepatan[kecepatanku]);
}
if(pencet=='4' || pencet=='6'){mode=pencet;}
else if(pencet=='2'){kecepatanku++;}
else if(pencet=='8'){kecepatanku--;}
pencet = 0;
//lcd_clear();
}
}
















Tugas 5
Mikrokontroller
Motor Stepper
Disusun Oleh:

Nama : Febriyanto
NIM : 121910201012
Kelas : C
Prod/Jur : S-1 Elektro
Dosen : Bambang Supeno, ST.MT



FAKULTAS TEKNIK
UNIVERSITAS JEMBER
2013
Prinsip Kerja dan Pengendalian Motor Stepper
1. Prinsip Kerja Motor Stepper
Meskipun pada saat ini terdapat berbagai jenis motor stepper di
pasaran, namun pada dasarnya mereka memiliki prinsip kerja yang sama.
Seperti halnya pada motor induksi, motor stepper memiliki bagian-bagian
utama berupa stator magnet permanen, dan lilitan kawat pada rotor. Hal
yang membedakan motor stepper dari motor induksi biasa adalah motor
stepper memiliki beberapa lilitan pada rotor, yang jumlahnya ditunjukkan
oleh jumlah bit motor stepper tersebut dan juga menunjukkan besar derajat
pada setiap langkah putaran. Pada motor stepper empat bit terdapat empat
lilitan yang menentukan gerakan rotor. Dengan bantuan gambar di bawah
ini,akan dijelaskan prinsip kerja dari motor stepper.

Jika suatu lilitan induktor dengan arah tertentu dialiri arus listrik
searah, akan timbul medan magnet berkutub utara-selatan pada ujung-
ujung inti besinya. Medan magnet pada keempat lilitan stator motor
stepper SA, SB, SC, dan SD, dapat diaktifkan masing-masing. Pengaktifan
medan magnet pada satu lilitan stator akan menarik ujung rotor R untuk
mensejajarkan dirinya dengan stator penarik. Dimisalkan gambar di atas
menunjukkan kondisi awal suatu motor stepper, dimana salah satu ujung
rotor R sedang sejajar dengan lilitan stator SA. Jika dalam keadaan
tersebut aktivitas pemberian arus dipindahkan ke lilitan SB, maka ujung
rotor R yang terdekat dengan SB akan segera mensejajarkan diri dengan
SB. Berarti, rotor akan berputar searah jarum jam sejauh 18. Sebaliknya,
jika dari kondisi awal lilitan pada stator SD yang diaktifkan,maka rotor
akan berputar berlawanan dengan arah jarum jam sejauh 18, hingga ujung
rotor yangterdekat menjadi sejajar dengan SD.
Jadi, untuk memutar rotor sejauh 360 searah jarum
jam,diperlukan 20 langkah aktivasi (360= 20 x 18), yaitu SB, SC, SD,
SA, SB, ... dst. Dari uraian di atas, dapat disimpulkan bahwa jika lilitan
stator diaktifkan satu persatu secara bergiliran, maka stator akan berputar
sejauh 18 langkah. Namun, besarnya sudut putar ini bisa diperkecil lagi
dengan menambahkan kombinasi berupa aktivasi dua lilitan stator.
Sebagai contoh, dari kondisi awal pada gambar di atas, jika lilitan stator
SAdan SBdiaktifkan, maka rotor akan bergerak searah jarum jam sebesar
9 (half step). Jika keadaan terakhir dilanjutkan lagi dengan mengaktifkan
lilitan stator SB, maka putaran akan berlanjut sejauh 9 lagi. Putaran
sebesar 9 berikutnya, dapat dilakukan dengan mengaktifkan lilitan stator
SBdan SC, dan demikian seterusnya. Cara ini dapat dilakukan untuk
memperhalus sudut putar motor stepper. Disamping cara tersebut,
penghalusan putaran dapat juga dilakukan dengan menggunakan roda gigi
atau roda bertali, yang dapat memperkecil derajat putar dalam setiap
langkahnya.
2. Prinsip Pengendalian Motor Stepper
Pada gambar dan tabel berikut ini dapat dilihat prinsip
pengendalian motor stepper. Jika seluruh saklar dalam keadaan terbuka
(OFF alias berkondisi 0), maka motor berada dalam keadaan diam. Jika
saklar ditutup dan dibuka secara bergiliran sebagai berikut, TA, TB, TC,
TD, maka motor akan bergerak sejauh 4 langkah (4 x 18) searah jarum
jam. Sebaliknya, motor akan bergerak sejauh 4
langkah berlawanan dengan arah jarum jam, jika saklar ditutup dan dibuka
menurut urutan TD,TC, TB, TA.

CW : Clock Wise (Searah jarum Jam)
CCW : Counter Clock Wise (Berlawanan dengan arah jarum jam)
Agar bisa dikendalikan secara elektronis (termasuk pengendalian melalui
komputer), posisi saklar dapat diganti dengan rangkaian yang terdiri atas
transistor, dioda, dan resistor, seperti pada gambar:

Pada rangkaian di atas, transistor digunakan sebagai saklar. Jika
satu transistor mendapatkan arus bias pada basisnya (yang telah diperkecil
oleh resistor 10 k), transistor langsung memasuki kondisi saturasi,
sehingga timbul kesan seolah-olah kaki kolektor dan emitor terkontak
langsung. Hal ini menyebabkan arus dari VCC dapat mengalir melalui
lilitan menuju ground. Arus bias pada jalur IN di sini bisa berasal
,misalnya, dari port paralel suatu komputer. Sebaliknya, jika transistor
tidak mendapat bias, hubungan antara kaki kolektor dan emitor akan
terputus, sehingga arus tidak bisa mengalir melalui lilitan menuju
ground.
Umumnya motor stepper membutuhkan daya yang cukup besar.
Untuk mengendalikan motor stepper dengan spesifikasi arus 1,2 A dan
tegangan 5 V / fasa dapat digunakan transistor bertipe BD 677, yang
merupakan transistor Darlingtonbertipe NPN yang dikemas dalam satu
transistor. Penggunaan transistor Darlington ini dimaksudkan agar
pasokan daya dan switching dapat berlangsung dengan cepat. Dalam
rangkaian diatas, dioda berfungsi untuk membuang energi dalam bentuk
medan listrikyang timbul pada lilitan ketika tidak aktif (mati / OFF),
sehingga kerusakan transistor dapat dicegah. Untuk rangkaian di atas,
dapat digunakan dioda bertipe IN4002.

Berikut rangkaian motor stepper menggunakan proteus 7.10 dan
pemrogramannya menggunakan codevision AVR:

Program dari rangkaian motor stepper diatas:
/*****************************************************
Chip type :ATmega8535
Program type :Application
AVR Core Clock frequency : 12,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
PC6/TOSC1
28
PC5
27
PC4
26
PC3
25
PC2
24
PC1/SDA
23
PC0/SCL
22
PC7/TOSC2
29
PA6/ADC6
34
PA5/ADC5
35
PA4/ADC4
36
PA3/ADC3
37
PA2/ADC2
38
PA1/ADC1
39
PA0/ADC0
40
PA7/ADC7
33
PB6/MISO
7
PB5/MOSI
6
PB4/SS
5
PB3/AIN1/OC0
4
PB2/AIN0/INT2
3
PB1/T1
2
PB0/T0/XCK
1
PB7/SCK
8
PD6/ICP1
20
PD5/OC1A
19
PD4/OC1B
18
PD3/INT1
17
PD2/INT0
16
PD1/TXD
15
PD0/RXD
14
PD7/OC2
21
RESET
9
XTAL1
13
XTAL2
12
AVCC
30
AREF
32
U1
ATMEGA8535
1 2 3
4 5 6
7 8 9
0 #
123
A
B
C
D
a
b
c
d
xyz
x
d
c
b
a
z
y
+88.8
CRYSTAL
CRYSTAL
C1
1nF
C2
1nF
R1
10k
C3
1nF
1B
1
1C
16
2B
2
2C
15
3B
3
3C
14
4B
4
4C
13
5B
5
5C
12
6B
6
6C
11
7B
7
7C
10
COM
9
U2
ULN2001A
D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
*****************************************************/
#include <mega8535.h>
#include <delay.h>
// Alphanumeric LCD functions
#include <alcd.h>
// Declare your global variables here
int key, a=20;
void keypad()
{
PORTA=0b11111110;
if(PINA.4==0){key=4;}
PORTA=0b11111101;
if(PINA.3==0){a-=2;}
if(PINA.4==0){key=5;}
if(PINA.5==0){a+=2;}
if(PINA.6==0){key=0;}
PORTA=0b11111011;
if(PINA.4==0){key=6;}
}
void main(void)
{
DDRA=0x07;
DDRB=0x00;
DDRC=0xFF;
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0
// RD - PORTB Bit 1
// EN - PORTB Bit 2
// D4 - PORTB Bit 4
// D5 - PORTB Bit 5
// D6 - PORTB Bit 6
// D7 - PORTB Bit 7
// Characters/line: 16
lcd_init (16);
while (1)
{
keypad();
while(key!=5)
{
lcd_gotoxy(0,0);
lcd_puts("STEPPER MATI");
keypad();
if(key==5){lcd_clear();break;}
}
while(1)
{
lcd_gotoxy(0,0);
lcd_puts("STEPPER HIDUP");
keypad();
while(key==4)
{
PORTC=1;
delay_ms(a);
keypad();
PORTC=2;
delay_ms(a);
keypad();
PORTC=4;
delay_ms(a);
keypad();
PORTC=8;
delay_ms(a);
keypad();
lcd_gotoxy(0,1);
lcd_puts("PUTAR KIRI ");
if(key==6||key==0){break;}
}
while(key==6)
{
PORTC=8;
delay_ms(a);
keypad();
PORTC=4;
delay_ms(a);
keypad();
PORTC=2;
delay_ms(a);
keypad();
PORTC=1;
delay_ms(a);
keypad();
lcd_gotoxy(0,1);
lcd_puts("PUTAR KANAN");
if(key==4||key==0){break;}
}
if(key==0){break;}
}
key=0;
}
}


\-










DAFTAR PUSTAKA
Kaur, jasleen m.eng. design and development of a voice based machine
control at remote location . Departement of electrical &instrumentation
engineering. Thapar institute of engineering. India.2006
Loker,r. David and erie,state penn. dtmf encoder and decoder using
labview. The behrend college.2002
Tim teknik elektro. rancang bangun sistem pengendali peralatan listrik
melalui media telepon berbasis mekrkontroler at89c51. Universitas
nasional. Jakarta.
Kehtarnavaz,nasser. digital signal processing system design : labview-
based hybrid programing. Unversity of texas, usa.2008
Http://wikipedia.com/dual-tone-multi-frequency : diakses pada hari minggu
2 januari 2011.
Http://tutorialelektonika.com/dual-tone-multiple-frequency : diakses pada
hari minggu, 2 januari 2011.
Peraturan direktur jenderal pos dan telekomunikasi. Nomor : 19/ dirjen/
2006 tentang : persyaratan teknis alat dan perangkat telekomunikasi
interactive voice respone (ivr) pendukung penyelenggaraan jasa nilai
tambah teleponi.