mini32 - standard format
TRANSCRIPT
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 2/275
PENDAHULUAN
Pada era sekarang ini mikroelektronika sangat berkembang pesat, IC dan prosesor-
prosesor mini sudah banyak dipasaran dan mudah untuk didapatkan. Hal ini yang
mengakibatkan mikrokontroler sangat murah karena hampir semua peralatan elektronika yang kita lihat sehari-hari menggunakan teknologi ini, seperti jam digital, pintu otomatis
yang ada di mall-mall, palang pintu parkir, lampu merah, counter down (angka yang ada
pada lampu merah) dan masih banyak yang lain.
Jika anda melihat benda atau alat yang seperti kami sebutkan diatas pasti anda
berfikir “bagaimana ya cara membuat alat seperti itu??, wah…pasti susah dan ribet banget!!!” memang sebenarnya untuk merancang sebuah system yang menggunakan
mikrokontroler membutuhkan dasar teori tentang mikrokontroler, pengetahuan elektronika
dan pemrograman yang sangat mendasar dan kompleks, dan itu bukan hal yang mudah dan
dapat anda pahami dalam waktu yang singkat.
Namun anda tidak perlu bingung harus memulai dari mana untuk belajar
mikrokontroler. dengan adanya kit ini segala kegundahan dan rasa takut anda pada
mikrontroler akan teratasi. Kit ini memang ditunjukkan untuk anda yang benar-benar
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 3/275
awam dalam hal mikroelektronika dan pemrograman. Disini anda akan mempraktekkan
secara langsung tanpa harus terlebih dahulu membaca dasar-dasar teori yang bisa membuat
anda semakin bingung. Dan anda bisa langsung melihat hasil kerja anda secara real tanpa
harus menggunakan simulasi dan “membayangkan” bagaimana hasilnya.
Dalam kit ini, selain anda belajar mikrokontroler dan pemroraman juga akanmenjelaskan bagaimana cara membuat PCB dengan standart pabrikan internasional dan
sekali lagi untuk membuat PCB dengan satndart pabrikan internasional tidaklah serumit
dan sesusah yang anda bayangkan. Dan sebenarnya sangat mudah dan tidak membutuhkan
waktu yang cukup lama, bahakan hanya membutuhkan waktu + 30 menit saja. Pembuatan
PCB ini akan dijelaskan pada bagian suplemen buku yang ada pada bab-bab terakhir.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 4/275
Berkenalan dengan Mini32
Mini 32 merupakan suatu development
board yang digunakan sebagai controller untuk
berbagai aplikasi interface, diantaranya
pngendalian LED, seven-segment, dot matrix,
LCD dsb. Kelebihan utama mini 32
development board ini adalah tidak
membutuhkan downloader/programmer untuk
mendownload program dari computer ke chip
Atmega 32, cukup dengan menggunakan kabel
USB mini B yang harganya jauh lebih murah
dibandingkan jika anda harus membeli sebuah
downloader.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 5/275
Sekilas Tentang Mini-32
Apa sih mikrokontroller yang digunakan dalam Mini 32 ini ?
Bagian ini akan menjawab dan menjelaskan tentang chip mikrokontroller yang
digunakan pada mini 32.
Mini 32 ini menggunakan
mikrokontroller ATMEL Atmega32
sebagai prosesor yang merupakan salah
satu jenis mikrokontroller keluaran AVR
yang menganut arsitektur RISC (ReduceInstruction Set Compute).
AVR memiliki keunggulan
dibandingkan mikrokontroler yang lain.
AVR memiliki kemampuan eksekusi
program yang sangat cepat karenasebagian besar instruksi hanya
dieksekusi dalam 1 siklus clock.
Selain itu mikrokontroller
ATMEL Atmega32 ini memiliki fitur
yang lengkap diantaranya ADC
internal, EEPROM internal,
Timer/Counter, Watchdog timer,
PWM, Port I/O, Komparator dll.
Dengan adanya fitur yang sangat
lengkap ini ATMEL Atmega32L dapat
didesain dan deprogram untuk
berbagai aplikasi elektronika.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 6/275
Berikut akan dijelaskan beberapa fitur yang ada pada ATMEL Atmega32 :
1. Merupakan mikrokontroler AVR 18 yang mempunyai kemampuan yang tinggi
dengan kebutuhan daya yang rendah.
2. Mempunyai 32 buah register.
3. fitur pheripheral
- Real time counter dengan osilator terpisah
- 4 buah chanel PWM
- Pemrograman serial USART
4. I.nput/Output
- mempunyai 32 pin I/O
- mempunyai 40 pin PDIP
5. hanya membutuhkan 2,7 – 5,5 V sebagai sumber tegangan/power.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 7/275
Bagaimana Development Board ini disusun.
Development board ini disusun bagi Anda yang ingin
belajar mikokontroller khususnya mikrokontroller Atmega32.
Development board ini disusun secara sistematis dan
interaktif, dimana Anda dapat belajar sekaligus
mempraktekkan secara langsung apa yang sedang Anda
pelajari. Development board ini dapat dengan mudah di pelajari
khusunya bagi Anda yang masih awam atau masih pemula
dalam hal mikrokontroller karena dalam paket development
board di sertakan modul/kit yang akan Anda pelajari disetiap
bab nya. Modul/Kit yang disertakan berupa aplikasi dasar
tentang materi-materi yang Anda pelajari, dan tentunya bisa
Anda kembangkan menjadi sebuah alat atau sistem sesuai
dengan kebutuhan Anda.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 8/275
Apa itu code vision
Code vision adalah sebuah aplikasi yangdigunakan untuk membantu dalampemrograman mikrokontroler yang bekerjadalam lingkungan pengembangan perangkatlunak yang terintegrasi (integrated developmentEnvironment/IDE), code vision dilengkapidengan source code editor, compiler, linker,
dan dapat memanggil AVR studio untukdebuggernya.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 9/275
Bahasa pemrograman code vision
Bahasa pemrograman yang digunakan pada code vision yaitu menggunakan bahasa
pemrograman low level language (assembly) dan high level language (C, Basic, Java, PHP
dsb). Namun dalam buku ini kita akan menggunakan bahasa pemrograman high level yaitu
C, karena selain mudah untuk dipahami struktur penulisannya juga lebih ringkas dibanding
menggunakan bahasa assembler.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 10/275
Installasi code vision
Langkah awal sebelum kita mencoba untuk menggunakan mini 32 Development
System yang telah kita dapat dan kita aplikasikan menggunakan LED,Seven-Segment,LCD
dsb terlebih dahulu kita harus menginstal codevision yang terdapat pada cd source, code
vision berfungsi sebagai editor serta compiler untuk mikrokontroler AVR seperti yang
digunakan pada development board kita yaitu atmega32L langkahnya sebagai berikut :
1. Masukkan CD kedalam CD drive
2. Buka windows explorer
3. Pilih CD/DVD Drive
4. Buka folder code vision,double klik file dengan nama CodeVision v2.03.4.exe
Setelah kita men-doble klik file tersebut maka proses installasipun akan berjalan, proses
installasi code vision sebagai berikut :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 11/275
Gambar 1.2
Kotak dialog continue setup
Klik next
Gambar 1.1
Memilih bahasa installasi
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 12/275
Gambar 1.4
Memilih letak Shortcuts
Gambar 1.3
Memilih letak Folder Installasi
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 13/275
Gambar 1.6
Proses extracting file sekaligus proses
installasi
Gambar 1.5
Informasi mengenai letak installasi,
klik install
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 14/275
Gambar 1.7
Proses installasi telah selesai
Klik finish
Restart komputer anda
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 17/275
LED (Light Emitting Diodes )
ight Emitting Diodes atau lebih sering disebut LED adalah komponen semikonduktor
yang mampu merubah energi listrik menjadi cahaya. Sekarang ini hampir semua alat
atau instrumen menggunakan LED sebagai salah satu komponennya. LED bentuknya kecil
dan harganya murah sehingga sangat sederhana untuk digunakan. LED bisa memancarkan
cahaya yang berbeda bergantung pada senyawa kimia di dalam komponen
semikonduktornya.
L
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 18/275
Keuntungan :
1. LED memancarkan cahaya
yang lebih terang per
wattnya daripada bola lampu
pijar.
2. Lebih mudah dan hemat
untuk menghasilkan
pancaran cahaya berwarna.3. Dapat menyala dengan
cepat.
Kerugian :
Tengangannya sangat sensitive.
LED harus diberikan tegangan yang
lebih rendah dari batas maksimumnya
dan dialirkan arus dibawah nilai
batasnya. Dapat juga dirangkai seridengan resistornya.
Si b l LED
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 19/275
Simbol LED
Simbol yang biasa digunakan sebagai simbol LED adalah simbol dioda standar tetapi
dengan sepasang anak panah keluar yang menunjukkan bahwa dioda tersebut
memancarkan cahaya.
Gambar 2.1 Simbol LED
Ada beberapa perbedaan kecil antara beberapa simbol standar LED, ada simbol yang
terkadang dihitamkan ada juga yang tidak dihitamkan. Sering juga ditemui simbol LED
dengan lingkaran yang mengelilinginya, terkadang lingkaran tersebut dihitamkan, terkadang
juga tidak.
M l Pi LED
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 20/275
Mengenal Pin LED
Beberapa orang terkadang masih bingung membedakan antara mana dioda dan mana
katoda dari sebuah LED.
Gambar 2.2 Pin LED
Seperti yang bisa dilihat, sisi katoda memiliki potongan datar pada fiber glassnya .
Dapat dilihat pula bahwa sisi katoda lebih kecil dibandingkan dengan anodanya, tapi jangan
tertipu pada syarat ini terutama pada LED bekas karena anda tidak tahu apakah kaki – kaki
LED tersebut pernah dipotong atai tidak . Kita tahu bahwa banyak sekali jenis LED yang
lain, lebih amannya lihat saja datasheet nya atau mudahnya silahkan uji sebelum disolder
Rangkaian Dasar LED
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 21/275
Rangkaian Dasar LED
Gambar 2.3 Rangkaian Led.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 23/275
Blinking LED/LED kedip.
Aplikasi dasar tentang led yang pertama yaitu Blink LED atau LED yang nyala secara
berkedip. Disini kita akan mempraktekkan bagaimana cara untuk menghidupkan LED
dengan variasi yaitu blink (berkedip). Sebelumnya kita harus membuat sebuah rangkaian led
sederhana. Alat dan bahan sebagai berikut :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 24/275
Alat dan Bahan :
1. Led 5mm sebanyak 5 buah. 6. Kabel IDE
2. Resistor 220 ohm sebanyak 5 buah. 7. Soket IDE
sebanyak 16 buah.
3. PCB 5x10 cm. 8. Black housing
sebanyak 16 buah.
4. Solder. 9. Konektor IDE
single 8 pin.
5. Tenol.
Setelah semua alat dan bahan terkumpul. Susun/rangkai led dan resistor pada PCB
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 25/275
Setelah semua alat dan bahan terkumpul. Susun/rangkai led dan resistor pada PCB
sesuai dengan gambar skematik datas. Berikut contoh rangkaian led yang sudah jadi :
Gambar 2.4 Tampak depan.
Selanjutnya kita akan menghubungkan rangkaian led yang telah kita buat sebelumnya ke
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 26/275
Se jut y t e g ubu g g ed y g te t bu t sebe u y e
mini 32 dengan menggunakan kabel.
Langkahnya sebagai berikut:
1. Hubungkan rangkaian LED dengan Port D pada mini 32.
2. Hubungkan mini 32 ke komputer dengan kabel USB mini B.
3. Buka code vision dan atur konfigurasi chip,clock serta Port keluarannya. Seperti
penjelasan dibawah ini :
Kita dapat menjalankan aplikasi ini melalui menu startall
programcodevisionCAVRCodeVision C compiler, atau juga dapat melalui desktop denganmendouble klik shortcut codevision.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 27/275
Gambar 2.5 berikut adalah tampilan awal codevision
Untuk memulai projek baru /new project kita pilih menu filenew maka akan muncul kotak
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 28/275
p j / p j p
dialog seperti dibawah ini :
Gambar 2.6membuat projek baru
Pilih project kemudian klik OK, kemudian akan muncul kotak dialog konfirmasi kita pilih
yes
Gambar 2.7 konfirmasi projek baru menggunakan codewizardAVR
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 29/275
Kemudian akan muncul kotak dialog konfigurasi mengenai chip serta pin yang akan kita
gunakan
Gambar 2.8 konfigurasi CHIP dan PORT
Pada menu chip, chip yang kita gunakan pada mini 32 adalah ATmega32 dengan nilai
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 30/275
clock 7.372000, kemudian kita setting port yang akan kita gunakan sebagai
output/keluaran yang kemudian disambungkan pada rangkaian LED, sebenarnya kita dapat
menggunakan salah satu dari keempat port diatas, namun pada kesematan kali ini kita
hanya akan menggunakan port D sebagai output dan kita sambungkan dengan rangkaian
LED. Maka kita setting port D sebagai output dengan memilih sub menu port D kemudian
klik “In” pada bit ke-0 sampai dengan bit ke-7,maka secara otomatis akan berubah menjadi
“out”
Gambar 2.9 langkah penyimpanan konfigurasi
Setelah kita setting chip, clock serta port yang kita gunakan, langkah selanjutnya
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 31/275
adalah menyimpan konfigurasi tersebut melalui filesave as, kemudian beri nama file, file
yang pertama bereksistensi .cwp, file .cwp kita beri nama “led_blink.cwp” .kemudian pilih
Generate,Save and Exit, seperti langkah sebelumnya kita beri nama file .c ini dengan nama
file “led_blink.c” dan file .prj dengan nama “led_blink.prj”
Gambar 2.10 kode program yang pertama kali
Kotak dialog diatas merupakan lembar kerja dimana kita akan menulis program.
Contoh Program
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 32/275
#include <mega32.h>
#include <delay.h>
void main(void) // fungsi utama
{ // Loop pembuka fungsi utama
PORTD=0xFF; // konfigurasi Port D aktif low
DDRD=0xFF; // konfigurasi port D sebagai output
while (1)
{ // Loop pembuka while
PORTD=0xFF; // led nyala semua
delay_ms(1000); // tunda satu detik
PORTD=0x00; // led mati semua
delay_ms(1000); // tunda satu detik
} // Loop pembuka while
} // Loop penutup fungsi utama
Program akan berulang terus menerus karena syarat whie (1), dan akan menghasilkan nilai benar, maka pernyataan yang ada didalam kalang while akan dijalankan berulang dan led
tampak hidup dan mati secara berulang-ulang(blink/kedip) .
Save file yang sudah anda ketik dengan memilih menu FileSave atau klik icon disket
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 33/275
pada tollbar. Pilih menu project kemudian pilih build all, kemudian akan muncul kotak
dialog sebagai berikut :
Gambar 2.11 compiller information
Kotak dalog tersebut berisi tentang semua informasi program yang telah kita buat sebelumnya, jika sudah muncul informasi no warning dan no errors berarti program yang telah kita buat siap untuk
didownload kedalam mini 32.
Led berjalan (shift)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 34/275
Pada praktik LED yang ke- 2 ini, kita akan mencoba menghidupkan led berjalan/geser
kanan. Seluruh proses installasi perangkat kerasny sama dengan praktik blink led, yang
membedakan hanyalah pada programnya saja
Berkut adalah script program led berjalan :
#include <mega32.h>
#include <delay.h>
int Lampu; //Deklarasi tipe data
void main(void) //Fungsi utama
{
DDRD=0xFF; // Pengaturan Pin Sebagai Output
Lampu=1; // Inisialisasi variable lampuwhile (1)
{
PORTD= ~Lampu; // Nilai Lampu = Port Output
Lampu = Lampu << 1 ; // Nilai Lampu digeser kekiri 1 bit
if (Lampu>128)
{Lampu=1;
}
delay_ms(500); // Waktu tunda
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 35/275
}
}
Setelah anda menulis program pada code vision kemudian simpan dengan nama
led_shift. Setelah dipastikan tidak ada error dan warning (bisa dilihat pada kotak dialog
information setelah program di build all), kemudian download program ke mini 32 dan lihat
hasilnya.
Binary counter
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 36/275
Pada praktik LED yang ke- 3 ini, kita akan mencoba menghidupkan led binary counter.
Seluruh proses installasi perangkat kerasnya sama dengan praktik led sebelumnya, yang
membedakan hanyalah pada programnya saja
Berkut adalah script program led berjalan :
#include <mega32.h>
#include <delay.h>
int Sign; // Deklarasi tipe data
void main(void) // Fungsi Utama
{Sign=0; //Inisialisasi nilai Sign=0
DDRD=0xFF; // Port D dikonfigurasikan sebagai output
PORTD= ~Sign; // Semua keluaran Port D akan sesuai/sama dengan
nilai Sign
delay_ms(1000); //Tunda 1 detik
while (1)
{Sign ++; // Nilai Sign akan bertambah 1
PORTD= ~Sign; // Semua keluaran Port D akan sesuai/sama dengan nilai Sign
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 37/275
delay_ms(1000); //Tunda 1 detik
if (Sign==255)
{
Sign=0; // Nilai Sign diubah kembali ke posisi nol
}}
}
Setelah anda menulis program pada code vision kemudian simpan dengan nama
led_bc. Setelah dipastikan tidak ada error dan warning ( bisa dilihat pada kotak dialog
information setelah program di build all), kemudian download program ke mini 32 dan lihat
hasilnya.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 39/275
Pengenalan Seven Segment.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 40/275
Seven Segment adalah suatu segmen - segmen yang digunakan menampilkan angka.
Seven segment ini tersusun atas 7 batang LED yang disusun membentuk angka 8 dengan
menggunakan huruf a-f yang disebut DOT MATRIKS. Setiap segmen ini terdiri dari 1 atau 2
Light Emitting Diode ( LED ).
Gambar 3.1 Skema seven segment.
Jenis- jenis Seven Segment
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 41/275
Common Anoda
Disini, semua anoda dari diode disatukan secara parallel dan semua itu
dihubungkan ke VCC dan kemudian LED dihubungkan melalui tahanan pembatas
arus keluar dari penggerak. Karena dihubungkan ke VCC, maka Common Anoda ini
berada pada kondisi Aktif High.
Common Katoda
Disini semua katoda disatukan secara parallel dan dihubungkan ke Ground.
Karena seluruh katoda dihubungkan ke Ground, maka Common Katoda ini berada
pada kondisi Aktif Low.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 42/275
Gambar 3.2 Seven Segment Common Anoda dan Common Katoda.
berikut adalah tampilan dari seven segment
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 43/275
Gambar 3.3 Tampilan seven segment.
setelah melihat hasil dari tampilan seven segment diatas pasti timbul pertanyaan,
bagaimana caranya supaya seven segment bisa menampilkan tampilan seperti yang ada
pada gambar diatas. Disini kita akan menjawab pertanyaan itu.
Di awal tadi kita sudah tahu apa sebenarnya seven segment itu, tiap-tiap segment
yang ada pada seven segment dibentuk oleh sebuah led dimana led tersebut akan menyala
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 44/275
yang ada pada seven segment dibentuk oleh sebuah led, dimana led tersebut akan menyala
jika diberi tegangan antara 3,5 sampai dengan 5 Volt. Untuk menampilkan sebuah angka
ataupun huruf pada penampil seven segment tentunya dibutuhkan beberapa led yang harus
menyala, misal untuk menampilkan angka 0, maka led yang harus menyala/ON adalah
A,B,C,D,E,F. Sedangkan led G dalam keadaan mati/OFF
Setelah membaca penjelasan mengenai pengenalan dasar seven segment diatas,
selanjutnya kita akan menggambar rangkaian dasar sevent segment yang nantinya akan
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 45/275
selanjutnya kita akan menggambar rangkaian dasar sevent segment yang nantinya akan
dibuat PCB serta modulnya dan setelah itu dihubungkan dengan mini 32 kemudian
diprogram.
Alat dan bahan :
1. Seven segment 1 buah. 6. Konektor IDE single 8 pin.
2. PCB 8x6 cm. 7. Tenol.
3. Resistor 220 Ohm 8 buah. 8. Solder.
4. Resistor 1 Kohm 1 buah.
5. Transistor C9012 1 buah.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 46/275
Gambar 3.4 Rangkaian Seven Segment.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 49/275
Menampilkan angka dari 0,1,2,3....dst
Contoh program uji segment
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 50/275
p g j g
#include<mega32.h>
#include<delay.h>
void main(void)
{
DDRC = 0b11111111;
While(1);
{
PORTC = 0b11111110;
}
}
Test segmen 1
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 51/275
#include<mega32.h>
#include<delay.h>
void main(void)
{
DDRC = 0xFF; //port C di fungsikan sebagai output
While(1);
{
PORTC = 0b11111101;
}
}
Test segmen 2
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 52/275
#include<mega32.h>
#include<delay.h>
void main(void)
{
DDRC = 0b11111111; //port C di fungsikan sebagai output
While(1);
{
PORTC = 0b11111011;
}
}
Test segmen 3
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 53/275
#include<mega32.h>
#include<delay.h>
void main(void)
{
DDRC = 0b11111111; //port C di fungsikan sebagai output
While(1);
{
PORTC = 0b11110111;
}
}
Contoh program counter up
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 54/275
#include<mega32.h>
#include<delay.h>
Unsigned char Angka; //variabel Angka dengan tipe data unsigned char
void main(void)
{
DDRC = 0b11111111;
Angka=0b11111001;
PORTC=Angka;
Delay_ms(1000);
Angka=0b10100100;
PORTC=Angka;
Delay_ms(1000);
Angka=0b11001111;
PORTC=Angka;
Delay_ms(1000);}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 55/275
Contoh program counter down
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 56/275
#include<mega32.h>
#include<delay.h>
Unsigned char Angka; //variabel Angka dengan tipe data unsigned char
void main(void)
{
DDRC = 0b11111111;
Angka=0b11001111;
PORTC=Angka;
Delay_ms(1000);
Angka=0b10100100;PORTC=Angka;
Delay_ms(1000);
Angka=0b11111001;
PORTC=Angka;
Delay_ms(1000);
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 58/275
Mungkin sebagian dari anda asing mendengar istilah dot matrik dan timbul
pertanyaan, apa sih dot matrix itu??. Dot matrix merupakan salah satu penampil yang pada
d t d i l d (d t) di b b t k b i d k l ( t i ) H i
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 59/275
dasarnya tersusun dari led (dot) yang disusun berbentuk baris dan kolom(matrix). Hampir
sama dengan seven segment dan hanya susunan led/segment yang berbeda.
sebenarnya ada beberapa jenis dot matrix, namun pada keempatan kali ini kita hanya
akan membahas dot matrix 8x8 dan 16x16. Dot matrix 8x8 artinya dot matrix yang
mempunyai dot sebanyak 8 baris medatar dan 8 baris menurun. Begitu juga untuk dot
matrix 16x16.
Dot matrix lebih fleksibel dibandingkan dengan penampil-penampil yang lain seperti
led dan seven segment, selain dapat menampilkan angka dan huruf dot matrix juga dapat
untuk menampilkan gambar dan karakter/emoticon. Tapi proses scaning/penampilan
tampilan agak sedikit susah. Jika pada seven segment, anda hanya perlu menghidupkan 8
buah led yang sudah tersusun, namun pada dot matrix anda harus menentukan tiap baris
dan kolomnya.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 60/275
Gambar 4.1 skema dot matrix.
Sebagai contoh jka anda ingin menampilkan angka 1 pada dot matrix 8x8 maka
susunan dot yang menyala sebagai berikut :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 61/275
BARIS
K
O
L
O
M
0 1 2 3 4 5 6 7
0 0 0 0 1 0 0 0 0
1 0 0 1 1 0 0 0 0
2 0 0 0 1 0 0 0 0
3 0 0 0 1 0 0 0 0
4 0 0 0 1 0 0 0 0
5 0 0 0 1 0 0 0 0
6 0 0 0 1 0 0 0 0
7 0 0 1 1 1 0 0 0
Setelah membaca sedikit pengenalan dan penjelasan mengenai dot matrix, kemudian
kita buat modul dot matrix sederhana yang nantinya akan kita hubungkan dengan mini 32
dan kita program
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 62/275
dan kita program.
Alat dan Bahan :
1. Dot Matrix 5x7 1 buah (warna terserah)
2. Konektor IDC 12 pin.
3. Soket IDC 12 buah.
4. Black housing 12 buah.
5. Kabel IDC.
6. PCB 5x5 cm.
7. Solder.
8. Tenol.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 64/275
Contoh program penulisan karakter pada dot matrix
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 65/275
#include <mega32.h>
#include<delay.h>
Void main(main)
{
DDRA=0xFF; //Port A di fungsikan sebagai output.
DDRC=0xFF; //Port C di fungsikan sebagai output.
While(1);
{
PORTA=0b11111110;
PORTC=0b11111111;
delay_ms(1);
PORTC=0b00000000;
delay_ms(10);
PORTA=0b11111101;
PORTC=0b11111111;
delay ms(1);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 66/275
delay_ms(1);
PORTC=0b0000100;
delay_ms(10);
PORTA=0b11111011;
PORTC=0b00000100;
delay_ms(1);
PORTC=0b00000000;
delay_ms(10);
PORTA=0b11110111;
PORTC=0b00000100;
delay_ms(1);
PORTC=0b00000000;
delay_ms(10);
PORTA=0b11101111;
PORTC=0b00000100;
delay_ms(1);
PORTC=0b00000000;
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 67/275
;
delay_ms(10);
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 69/275
Liquid Cristal Display (LCD)
Liquid Crystal Display (LCD)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 70/275
Gambar 4.1 LCD 16x2.
q y p y ( )
merupakan sebuah teknologi layar
digital yang menghasilkan citra pada
sebuah permukaan yang rata (flat)
dengan memberi sinar pada kristal cair
dan filter berwarna, yang mempunyai
struktur molekul polar, diapit antara
dua elektroda yang transparan. Bila
medan listrik diberikan, molekul
menyesuaikan posisinya pada medan,
membentuk susunan kristalin yang
mempolarisasi cahaya yang melaluinya.
LCD (Liquid Crystal Display)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 71/275
LCD (Liquid Crystal Display)
merupakan komponen display yang
dapat menampilkan karakter huruf,
angka, simbol yang dikemas dalam
16 karakter display sebanyak 2 baris.
Dalam penggunaannya LCD dapat
diprogram dengan 4 bit dan 8 bit
data, tergantung kebutuhannya.
Dalam pemogramannya, LCD
ditentukan dengan pengalamatan
pada karakter LCD.
LCD berfungsi menampilkan
suatu nilai hasil sensor, menampilkan
teks, atau menampilkan menu pada
aplikasi mikrokontroler. LCD ini
merupakan modul LCD dengan
tampilan 16 x 2 baris dengan
konsumsi daya rendah. Modul
tersebut dilengkapi dengan
mikrokontroler yang didesain khusus
untuk mengendalikan LCD.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 72/275
Gambar 4.2 LCD Grafik 128x64
Sedang modul graphics
LCD 128x64 ini hampir
sama dengan LCD kolom
16x2, hanya saja pada
LCD grafik ini sudah
dapat menampilakan
gambar/grafik dengan
dimensi 128x64.
Nokia 5510 LCD modul didasarkan pada PCD8544 48x48 piksel pengontrol LCD
matrix ini adalah LCD grafik dimana dapat menampilkan gambar, logo dan membuat game
sederhana. LCD ini menggunakan mikrokontroler Atmel 8-bit.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 73/275
Gb. LCD Nokia 5510
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 74/275
Pembuatan rangkaian sederhana LCD 2x16.
l d h
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 75/275
Alat dan Bahan :
1. Modul LCD 2x16 1 buah.
2. Konektor IDC single 20 pin.3. Soket IDC 40 buah.
4. Black housing 40 buah.
5. Kabel IDC.
6. PCB 10x5 cm.
7. Potensio meter 10 Kohm.
8. Solder.
9. Tenol.
Berikut adalah gambar desingnnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 76/275
Jika anda dalam pembuatan PCB menggunakan teknik sablon maupun UV berikut adalah
gambar filmnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 77/275
Berikut gambar contoh rangkaian sederhana LCD yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 78/275
Pembuatan Rangkaian Dasar LCD 128x64
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 79/275
Alat dan bahan :
1. Modul LCD 128x64
2. Konektor IDC single 20 pin.
3. Soket IDC 40 buah.
4. Black housing 40 buah.
5. Kabel IDC.
6. PCB 10x10cm.
7. Solder.
8. Tenol.
Berikut adalah gambar designnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 80/275
Jika dalam proses pembuatan PCB menggunakan teknik UV berikut filmnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 81/275
Berikut gambar contoh hasil pembuatan rangkaian LCD 128x64 yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 82/275
Pembuatan rangkaian sederhana LCD Nokia 5510.
Alat dan bahan :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 83/275
Alat dan bahan :
1. Modul LCD nokia 5510.
2. Konektor IDC single 8
pin.
3. Kabel IDC.
4. Soket IDC 16 buah.
5. Black housing 16 buah.
6. Kapasitor 1µf.7. Solder.
8. Tenol.
Berikut adalah gambar desingnnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 84/275
Jika dalam proses pembuatan PCB menggunakan teknik UV berikut ini filmnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 87/275
Contoh program menampilkan karakter pada LCD 2x16
#include <mega32.h>
#asm
equ lcd port=0x15 ;PORTC //Port C di fungsikan sebagai output ke LCD
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 88/275
.equ __lcd_port=0x15 ;PORTC //Port C di fungsikan sebagai output ke LCD.
#endasm
#include <lcd.h>
void main(void)
{
lcd_init(16);
lcd_gotoxy(0,0); //Kursor ditempatakan pada baris ke 0 dan kolom ke 0.
lcd_putsf("BELAJAR MINI 32!");
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 89/275
Contoh Program penulisan karakter pada LCD 128x64
//*Aplikasi Dasar Graphic LCD 128x64*//
Menampilkan Tulisan dan Character
#include <mega32.h>
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 90/275
#include <mega32.h>
#include <delay.h>
#include <stdlib.h>
#include <stdio.h>
#include <glcd_128x64.h>
void main(void)
{
delay_ms(1000);
init_lcd();
off(); // glcd
on(); // glcd
SetStartLine(0);
glcd_clear();
lcd_printf(30,1,"POWER ON");
delay_ms(50):
delay_ms(2000);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 91/275
WDTCR=0x0F; // watchdog
show(at[0],1);
delay_ms(2000);
glcd_clear();
while (1)
{
lcd_printf(4,2,"Graphics LCD");
delay_ms(2000);
glcd_clear();
lcd_printf2(4,5,"SELAMAT MENCOBA");
delay_ms(2000);
glcd_clear();
};
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 93/275
Contoh Penulisan Program Pada LCD Nokia 5510
Kode Program Sub Rutin LCD.C
#define SCK PORTA.0
#define SDI PORTA.1
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 94/275
#define D_C PORTA.2
#define SCE PORTA.3
#define RES PORTA.4
#define BL PORTA.5
#define LCD_X 84
#define LCD_Y 48
#define HIGH 1
#define LOW 0
#include <font5x7.c>
/*****************************************************/
void send_data_lcd(char byte)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 95/275
{
unsigned char i;
for (i=0;i<8;i++)
{
if (byte&0x80) SDI=1; else SDI=0;
byte<<=1;
SCK=1;
SCK=0;
}
}
/*****************************************************/
void write_command(char byte_command)
{
D_C=0;
SCE=0;
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 96/275
send_data_lcd(byte_command);
SCE=1;
}
/*****************************************************/
void write_data(unsigned char byte_data)
{
D_C=1;
SCE=0;
send_data_lcd(byte_data);
SCE=1;
}
/**********************************************************************************
***/
void send_lcd_data(flash unsigned char values[], unsigned int amount)
{
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 97/275
{
unsigned int counter;
for (counter=0; counter < amount;counter++)
{
write_data(values[counter]);
}
}
void goto_x_y(unsigned int x, unsigned int y)
{
write_command(0x40|(y&0x07)); // Y axis initialisation: 0100 0yyy
write_command(0x80|(x&0x7f)); // X axis initialisation: 1xxx xxxx
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 98/275
}
/*****************************************************/
void lcd_clear(void)
{
unsigned int ddram;
goto_x_y(0,0); // 84*6=504 clear LCD
for (ddram=504;ddram>0;ddram--)
{
write_data(0x00);
}}
void LCD_init(void)
{
DDRA=0b11111111; // Port A
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 99/275
D_C=0;
SCE=0;
RES=0; delay_ms(100); RES=1;
write_command(0x21); // set extins extended instruction
set
write_command(0x90); // (0xc2Vop v1: 0xc8 (for 3V)//
v2: 0xa0 (for 3V) // v3: 0xc2 (2v6-5v)
write_command(0x20); // horizontal mode from left to
right, X axe are incremented automatically ,
// 0x22 for vertical addressing
,back on normal instruction set too
write_command(0x0c); // mod control normal change
lcd_clear(); // reset DDRAM, otherwise the lcd
is blurred with random pixels
}
/**********************************************************************************
***/
void lcd_printf(unsigned char x, unsigned char y, flash unsigned char *Str,...)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 100/275
p ( g , g y, g ,
{
unsigned char n,w;
unsigned int yy;
goto_x_y(x,y);
for (n = 0;Str[n]!=0;n++)
{
yy=(*(Str+n)-32);
w=wide5x7[yy];
yy*=5;
send_lcd_data(&font5x7[yy],w);
write_data(0);
}
}
Kode Program Sub Rutin font5x7.C
/************************************************************************
*Driver for Graphic LCD Display
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 101/275
************************************************************************/
flash unsigned char font5x7[] = {
0x00, 0x00, 0x00, 0x00, 0x00, // (space)
0x5F, 0x00, 0x00, 0x00, 0x00, // !
0x07, 0x00, 0x07, 0x00, 0x00, // "
0x14, 0x7F, 0x14, 0x7F, 0x14, // #
0x24, 0x2A, 0x7F, 0x2A, 0x12, // $
0x23, 0x13, 0x08, 0x64, 0x62, // %
0x36, 0x49, 0x55, 0x22, 0x50, // &
0x05, 0x03, 0x00, 0x00, 0x00, // '
0x1C, 0x22, 0x41, 0x00, 0x00, // (
0x41, 0x22, 0x1C, 0x00, 0x00, // )
0x08, 0x2A, 0x1C, 0x2A, 0x08, // *
0x08, 0x08, 0x3E, 0x08, 0x08, // +
0x50, 0x30, 0x00, 0x00, 0x00, // ,
0x08, 0x08, 0x08, 0x08, 0x08, // -
0 30 0 30 0 00 0 00 0 00 //
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 102/275
0x30, 0x30, 0x00, 0x00, 0x00, // .
0x20, 0x10, 0x08, 0x04, 0x02, // /
0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
0x00, 0x42, 0x7F, 0x40, 0x00, // 1
0x42, 0x61, 0x51, 0x49, 0x46, // 2
0x21, 0x41, 0x45, 0x4B, 0x31, // 3
0x18, 0x14, 0x12, 0x7F, 0x10, // 4
0x27, 0x45, 0x45, 0x45, 0x39, // 5
0x3C, 0x4A, 0x49, 0x49, 0x30, // 6
0x01, 0x71, 0x09, 0x05, 0x03, // 7
0x36, 0x49, 0x49, 0x49, 0x36, // 8
0x06, 0x49, 0x49, 0x29, 0x1E, // 9
0x00, 0x36, 0x36, 0x00, 0x00, // :
0x56, 0x36, 0x00, 0x00, 0x00, // ;
0x08, 0x14, 0x22, 0x41, 0x00, // <
0x14, 0x14, 0x14, 0x14, 0x14, // =
0 41 0 22 0 14 0 08 0 00 // >
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 103/275
0x41, 0x22, 0x14, 0x08, 0x00, // >
0x02, 0x01, 0x51, 0x09, 0x06, // ?
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, // @ 0x32, 0x49, 0x79, 0x41, 0x3E,// @
0x7E, 0x11, 0x11, 0x11, 0x7E, // A
0x7F, 0x49, 0x49, 0x49, 0x36, // B
0x3E, 0x41, 0x41, 0x41, 0x22, // C
0x7F, 0x41, 0x41, 0x22, 0x1C, // D
0x7F, 0x49, 0x49, 0x49, 0x41, // E
0x7F, 0x09, 0x09, 0x01, 0x01, // F
0x3E, 0x41, 0x41, 0x51, 0x32, // G
0x7F, 0x08, 0x08, 0x08, 0x7F, // H
0x41, 0x7F, 0x41, 0x00, 0x00, // I
0x20, 0x40, 0x41, 0x3F, 0x01,// J
0x7F, 0x08, 0x14, 0x22, 0x41,// K
0x7F, 0x40, 0x40, 0x40, 0x40,// L
0x7F, 0x02, 0x04, 0x02, 0x7F,// M
0x7F 0x04 0x08 0x10 0x7F // N
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 104/275
0x7F, 0x04, 0x08, 0x10, 0x7F,// N
0x3E, 0x41, 0x41, 0x41, 0x3E,// O
0x7F, 0x09, 0x09, 0x09, 0x06,// P
0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
0x7F, 0x09, 0x19, 0x29, 0x46,// R
0x46, 0x49, 0x49, 0x49, 0x31,// S
0x01, 0x01, 0x7F, 0x01, 0x01,// T
0x3F, 0x40, 0x40, 0x40, 0x3F,// U
0x1F, 0x20, 0x40, 0x20, 0x1F,// V
0x7F, 0x20, 0x18, 0x20, 0x7F,// W
0x63, 0x14, 0x08, 0x14, 0x63,// X
0x03, 0x04, 0x78, 0x04, 0x03,// Y
0x61, 0x51, 0x49, 0x45, 0x43,// Z
0x7F, 0x41, 0x41, 0x00, 0x00, // [
0x02, 0x04, 0x08, 0x10, 0x20,// "\"
0x41, 0x41, 0x7F, 0x00, 0x00,// ]
0x04 0x02 0x01 0x02 0x04 // ^
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 105/275
0x04, 0x02, 0x01, 0x02, 0x04,//
0x40, 0x40, 0x40, 0x40, 0x40,// _
0x01, 0x02, 0x04, 0x00, 0x00, // `
0x20, 0x54, 0x54, 0x78, 0x00, // a
0x7F, 0x44, 0x44, 0x38, 0x00, // b
0x38, 0x44, 0x44, 0x44, 0x00, // c
0x38, 0x44, 0x44, 0x7F, 0x00, // d
0x38, 0x54, 0x54, 0x58, 0x00, // e
0x08, 0x7E, 0x09, 0x01, 0x00, // f
0x08, 0x54, 0x54, 0x3C, 0x00, // g
0x7F, 0x04, 0x04, 0x78, 0x00, // h
0x7D, 0x00, 0x00, 0x00, 0x00, // i
0x20, 0x40, 0x44, 0x3D, 0x00, // j
0x7F, 0x10, 0x28, 0x44, 0x00, // k
0x7F, 0x00, 0x00, 0x00, 0x00, // l
0x7C, 0x04, 0x18, 0x04, 0x78, // m
0x7C 0x04 0x04 0x78 0x00 // n
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 106/275
0x7C, 0x04, 0x04, 0x78, 0x00, // n
0x38, 0x44, 0x44, 0x38, 0x00, // o
0x7C, 0x14, 0x14, 0x08, 0x00, // p
0x08, 0x14, 0x14, 0x7C, 0x00, // q
0x7C, 0x08, 0x04, 0x04, 0x00, // r
0x48, 0x54, 0x54, 0x20, 0x00, // s
0x04, 0x3F, 0x44, 0x40, 0x00, // t
0x3C, 0x40, 0x40, 0x3C, 0x00, // u
0x1C, 0x20, 0x40, 0x20, 0x1C,// v
0x3C, 0x40, 0x30, 0x40, 0x3C, // w
0x44, 0x28, 0x10, 0x28, 0x44,// x
0x0C, 0x50, 0x50, 0x3C, 0x50, // y
0x64, 0x54, 0x4C, 0x00, 0x00, // z
0x08, 0x36, 0x41, 0x00, 0x00, // {
0x7F, 0x00, 0x00,0x00, 0x00, // |
0x41, 0x36, 0x08, 0x00, 0x00, // }
0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 107/275
0x08, 0x08, 0x2A, 0x1C, 0x08,// >
0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
};
flash unsigned char wide5x7[] = {
0x02,// (space)
0x01,// !
0x03,// "
0x05,// #
0x05,// $
0x05,// %
0x05,// &
0x02,// '
0x03,// (
0x03,// )
0x05,// *
0x05,// +
0x02,// ,
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 108/275
,// ,
0x05,// -
0x02,// .
0x05,// /
0x05,// 0
0x05,// 1
0x05,// 2
0x05,// 3
0x05,// 4
0x05,// 5
0x05,// 6
0x05,// 7
0x05,// 8
0x05,// 9
0x05,// :
0x02,// ;
0x04,// <
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 109/275
,
0x05,// =
0x04,// >
0x05,// ?
0x05,// @
0x05,// A
0x05,// B
0x05,// C
0x05,// D
0x05,// E
0x05,// F
0x05,// G
0x05,// H
0x03,// I
0x05,// J
0x05,// K
0x05,// L
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 110/275
0x05,// M
0x05,// N
0x05,// O
0x05,// P
0x05,// Q
0x05,// R
0x05,// S
0x05,// T
0x05,// U
0x05,// V
0x05,// W
0x05,// X
0x05,// Y
0x05,// Z
0x03,// [
0x05,// "\"
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 111/275
0x03,// ]
0x05,// ^
0x05,// _
0x03,// `
0x04,// a
0x04,// b
0x04,// c
0x04,// d
0x04,// e
0x04,// f
0x04,// g
0x04,// h
0x01,// i
0x04,// j
0x04,// k
0x01,// l
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 112/275
0x05,// m
0x04,// n
0x04,// o
0x04,// p
0x04,// q
0x04,// r
0x04,// s
0x04,// t
0x04,// u
0x05,// v
0x05,// w
0x05,// x
0x04,// y
0x03,// z
0x03,// {
0x01,// |
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 113/275
0x03,// }
0x05,// ->
0x05 // <-
};
Kode Program Main.C
#include <mega32.h>
#include <delay.h>
#include <stdlib.h>
#include <LCD5110.c>
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 114/275
void main(void)
{
delay_ms(1000); //Waktu tunda 1 detik.
LCD_init();
BL=0;
lcd_printf(4, 1, "Selamat Datang");
lcd_printf(4, 3, "Di MM UGM");
while (1)
{
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 116/275
Buzzer adalah Perangkat pemberi isyaratsuara (sirine), yang mana dapat berupa
mekanik maupun elektromekanik.Perangkat ini
didasarkan pada system elektromekanik yang
sama dengan bell listrik tanpa gong logam.
Buzzer ini sering digunakanpada perangkat alarm, pewaktu dan
pemberi informasi(penanda) kepada
pengguna saat melakukan input atau
ketikan pengguna mengeklik sebuah
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 117/275
Demikian pula, relay dapat dihubungkan keinterupsi yang berhubungan langsung dengan
arus, menghubungkan ke buzz.
Masukannya berupa tegangan. Ketika
buzzer dihubungkan ke suatu power supply
dan diberikan tegangan dan frekuensi yang
semakin tinggi maka menghasilkan bunyi yang
semakin keras.
mouse atau tombol. Aplikasi dasarlainnya sebagai pengeras suara pada
bel sekolah, jam weker, sirine
kebakaran dan lain-lain.
Untuk membuat rangkaian
sederhana buzzer anda bisa
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 118/275
Gambar 5.1 Rangkaian sederhana buzzer.
menggunakan PCB atau langsung
dengan menggunakan kabel IDC,
hala ini karena rangkaian buzzer
sangat sederhana bahan yang
dibutuhkan hanya buzzer,kabel
IDC,soket dan black housing
masing-masing 4 buah serta
sebuah resistor 220 ohm.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 121/275
Berikut adalah contoh kode program sederhana buzzer :
#include <mega32.h>
#include <stdio.h>
#include <delay.h>
void main (void)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 122/275
{
DDRC=0xff; //Port C di fungsikan sebagai output.
while (1)
{
PORTC=0; // ON
delay_ms(1); // Tunda 1 ms = Tunda 0,001 detik
PORTC=255; // OFF
delay_ms(1); // Tunda 1 ms = Tunda 0,001 detik
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 123/275
Pengenalan Tombol
Pada intinya tombol merupakan sebuah saklar pusbutton, Pushbutton merupakan
sebuah device untuk menghubungkan dan memutuskan rangkaian listrik antara 2 titik.
Penggunaan pushbutton dikehidupan sehari-hari hampir menyentuh semua bidang. Di
bidang komputer dengan keyboard dan mouse, dibidang otomotif dengan panel-panel
kontrolnya, bahkan diperalatan rumah tangga sekalipun seperti kontrol peralatan listrik juga
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 124/275
kontrolnya, bahkan diperalatan rumah tangga sekalipun seperti kontrol peralatan listrik juga
menggunakan push button.
Gambar 12. Aktif high Push Button
Aktif high pushbutton merupakan pushbutton yang memiliki karakteristik saat tidak
ada penekanan maka dalam keadaan terputus(off) sedangkan saat ditekan akan
tersambung(on).
Pada kesempatan kali ini kita akan mencoba mengaplikasikan tombol(pushbutoon,
keypad 3x4, keypad Nokia 6610) dengan mini 32.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 125/275
Pembuatan modul sederhana Push ON/push button.
Alat dan Bahan :
1. Push button 8 buah.
2. Konektor IDC single
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 126/275
g
10 buah.
3. Soket ICD 20 buah.
4. Black housing 20
buah
5. Kabel IDC.
6. PCB 7,5x5 cm.
7. Solder.
8. Tenol.
Berikut adalah gambar designnya:
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 127/275
Jika dalam pembuatan PCB anda menggunakan teknik sablon atau UV berikut gambar
filmnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 128/275
Berikut gambar contoh hasil jadi rangkaian sederhana push button :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 129/275
Pembuatan PCB untuk modul keypad 3x4 :
Alat dan bahan :
1. Konektor IDC single 4 pin.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 130/275
2. Soket IDC 8 buah.
3. Black housing 8 buah.
4. Kabel IDC.
5. PCB 10x10 cm.
6. Solder.
7. Tenol.
Berikut adalah gambar desingnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 131/275
Contoh gambar yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 132/275
Pembuatan PCB untuk modul keypad Nokia 6610:
Alat dan bahan :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 133/275
1. Konektor IDC single 4 pin.
2. PCB 10x10 cm.
3. Solder.
4. Tenol.
Contoh gambar yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 136/275
Untuk mengaplikasikan tombol push on akan dikombinasikan dengan rangkaian led.
Tombol push on di fungsikan sebagai input sedangkan rangkaian led di fungsikan sebagai
output. Contoh kode programnya sebagai berikut :
// Latihan Tombol
// Menekan Tombol dan Menyalakan Led
#include <mega32.h>
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 137/275
#include <delay.h>
Void TestTombol4(void);
void main(void)
{
DDRC=255; // Port Led = Output
PORTC=255;
DDRA=0b00000000; // Port Tombol = Input
PORTA=0b11111111;
while(1)
{
TestTombol4(); //pemanggil fungsi TestTombol.
}
}
void TestTombol4(void)
{
if (PINA.0==0) //Jika Pin A 0 nilainya sama dengan 0 maka akn menjalankan
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 138/275
pernyataan selanjutnya.
{
PORTC=0b11111110; // Port C 0 ON.
delay_ms(300); // Waktu tunda 30ms.
PORTC=0b01111111; // Port C 0 Off.
delay_ms(300); // Waktu tunda 30ms.
}
else // Jika Pin A 0 nilainya tidak sama dengan 0 maka akan menjalankan
pernyataan di bawah.
PORTC=0b11111111; //Port C Off.
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 139/275
Keypad 3x4 di kombinasikan dengan penampil LCD 16x2. Berikut adalah contoh kode
programnya :
#asm
.equ __lcd_port=0x15 // PORTC
#endasm
#include <mega32.h>
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 140/275
#include <delay.h>
#include <lcd.h>
void main(void)
{
DDRA=0b11110000;
while(1)
{
PORTA=0b11101111;
delay_ms(30);
if (PINA.0==0) { lcd_gotoxy(1,1); lcd_putsf ("1"); }
if (PINA.1==0) { lcd_gotoxy(1,1); lcd_putsf ("4"); }
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 141/275
if (PINA.2==0) { lcd_gotoxy(1,1); lcd_putsf ("7"); }
if (PINA.3==0) { lcd_gotoxy(1,1); lcd_putsf ("*"); }
PORTA=0b11011111;
delay_ms(30);
if (PINA.0==0) { lcd_gotoxy(1,1); lcd_putsf ("2"); }
if (PINA.1==0) { lcd_gotoxy(1,1); lcd_putsf ("5"); }
if (PINA.2==0) { lcd_gotoxy(1,1); lcd_putsf ("8"); }
if (PINA.3==0) { lcd_gotoxy(1,1); lcd_putsf("0"); }
PORTA=0b10111111;
delay_ms(30);
if (PINA.0==0) { lcd_gotoxy(1,1); lcd_putsf ("3"); }
if (PINA.1==0) { lcd_gotoxy(1,1); lcd_putsf ("6"); }
if (PINA.2==0) { lcd_gotoxy(1,1); lcd_putsf ("9"); }
if (PINA.3==0) { lcd_gotoxy(1,1); lcd_putsf ("#"); }
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 142/275
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 144/275
Motor atau motor listrik adalah perangkat elektro magnetis yang mengubah energi listrik menjadi energi mekanik, dimana energi mekanik itu berupa putaran dari rotor. Mekanisme kerja
motor secara umum adalah apabila sebuahk t b dil t kk t k t b t
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 145/275
motor secara umum adalah apabila sebuah kawat berarus diletakkan antara kutub magnet maka pada kawat itu akan bekerja gaya sehingga kawat bergerak.
Jenis dari motor listrik ini sendiri antara lain motor DC dan motor stepper.
Motor DC
Mesin yang berfungsi mengubah tenaga listrik DC menjadi tenaga mekanik dengantenaga gerak berupa putaran dari rotor. Komponen utama motor ini : kutub medan, dinamodan komutator.
utub medan Secara sederhada digambarkan bahwa interaksi dua kutub magnet
akan menyebabkan perputaran pada motor DC Motor DC memiliki kutub medan
K
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 146/275
akan menyebabkan perputaran pada motor DC. Motor DC memiliki kutub medan
yang stasioner dan dinamo yang menggerakan bearing pada ruang diantara
kutub medan. Motor DC sederhana memiliki dua kutub medan: kutub utara dan kutub
selatan. Garis magnetik energi membesar melintasi bukaan diantara kutub-kutub dari utara
ke selatan. Untuk motor yang lebih besar atau lebih komplek terdapat satu atau lebih
elektromagnet. Elektromagnet menerima listrik dari sumber daya dari luar sebagai penyedia
struktur medan.
K
inamo. Bila arus masuk menuju dinamo, maka arus ini akan menjadi
elektromagnet. Dinamo yang berbentuk silinder, dihubungkan ke as penggerak
untuk menggerakan beban. Untuk kasus motor DC yang kecil, dinamo berputar
dalam medan magnet yang dibentuk oleh kutub-kutub, sampai kutub utara dan
selatan magnet berganti lokasi. Jika hal ini terjadi, arusnya berbalik untuk merubah kutub-
kutub utara dan selatan dinamo.
D
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 147/275
ommutator. Komponen ini terutama ditemukan dalam motor DC. Kegunaannya
adalah untuk membalikan arah arus listrik dalam dinamo. Commutator juga
membantu dalam transmisi arus antara dinamo dan sumber daya.
Keuntungan utama motor DC adalah sebagai pengendali kecepatan, yang tidakmempengaruhi kualitas pasokan daya. Motor ini dapat dikendalikan dengan mengatur:
1. Tegangan dinamo – meningkatkan tegangan dinamo akan meningkatkan kecepatan
2. Arus medan – menurunkan arus medan akan meningkatkan kecepatan.
C
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 148/275
Gambar 8.1 motor DC
Motor Stepper
Motor Stepper adalah motor DC yang gerakannya bertahap (step per step ) dan memiliki
akurasi yang tinggi tergantung pada spesifikasinya. Setiap motor stepper mampu berputar
untuk setiap stepnya dalam satuan sudut (0.75, 0.9, 1.8), makin keil sudut per step-nya
maka gerakan per step-nya motor stepper tersebut makin presisi. Motor stepper banyak
digunakan untuk aplikasi-aplikasi yang biasanya cukup menggunakan torsi yang kecil,
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 149/275
d gu u tu p s p s y g b s y cu up e ggu to s y g ec ,
seperti untuk penggerak piringan disket atau piringan CD. Dalam hal kecepatan, kecepatan
motor stepper cukup cepat jika dibandingkan dengan motor DC.
Motor stepper merupakan motor DC yang tidak memiliki komutator. Pada umumnya
motor stepper hanya mempunyai kumparan pada statornya sedangkan pada bagian rotornya
merupakan magnet permanent. Dengan model motor seperti ini maka motor stepper dapat
diatur posisinya pada posisi tertentu dan/atau berputar ke arah yang diinginkan, searah
jarum jam atau sebaliknya.
Kecepatan motor stepper pada dasarnya ditentukan oleh kecepatan pemberian data pada
komutatornya. 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 akan menghasilkan putaran yang cukup cepat.
Variabel Reluktansi Motor
Pada motor stepper yang mempunyai variabel reluktansi maka terdapat 3 buah lilitan
yang pada ujungnya dijadikan satu pada sebuah pin common. Untuk dapat menggerakkan
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 150/275
y g p j g y j p p p gg
motor ini maka aktivasi tiap-tiap lilitan harus sesuai urutannya.
Gambar 8.2. merupakan gambar struktur dari motor dengan variabel reluktansi
dimana tiap stepnya adalah 30. Mempunyai 4 buah kutub pada rotor dan 6 buah kutub
pada statornya yang terletak saling berseberangan.
Gambar 8.2 Variabel Reluktance Motor
Jika lilitan 1 dilewati oleh arus, lilitan 2 mati dan lilitan 3 juga mati maka kumparan 1
akan menghasilkan gaya tolakan kepada rotor dan rotor akan berputar sejauh 30° searah
jarum jam sehingga kutub rotor dengan label Y sejajar dengan kutub dengan label 2.
Jika kondisi seperti ini berulang terus menerus secara berurutan, lilitan 2 dilewati
arus kemudian lilitan 3 maka motor akan berputar secara terus menerus. Maka agar dapat
berputar sebanyak 21 step maka perlu diberikan data dengan urutan seperti pada Gambar
8.3
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 151/275
Gambar 8.3 Urutan Lilitan Kumparan Pada Motor
‘1’ pada Gambar 8.3. diartikan bahwa lilitan yang bersangkutan dilewati arus sehingga
menghasilkan st="on"gaya tolak untuk rotor. Sedangkan ‘0’ diartikan lilitan dalam kondisi
off, tidak mendapatkan arus.
Unipolar Motor Stepper
Motor stepper dengan tipe unipolar adalah motor stepper yang mempunyai 2 buah
lilitan yang masing-masing lilitan ditengah-tengahnya diberikan sebuah tap seperti tampak
pada Gambar 8.4
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 152/275
Gambar 8.4 Unipolar Stepper Motor
Motor ini mempunyai step tiap 30° dan mempunyai dua buah liliatan yang
didistribusikan berseberangan 180° di antara kutub pada stator. Sedangkan pada rotonya
menggunakan magnet permanen yang berbentuk silinder dengan mempunyai 6 buah kutub,
3 kutub selatan dan 3 buah kutub utara. Sehingga dengan konstrusi seperti ini maka jika
dibutuhkan ke presisian dari motor stepper yang lebih tinggi dibutuhkan pula kutub-kutub
pada stator dan rotor yang semakin banyak pula. Pada Gambar 21, motor tersebut akan
bergerak setiap step sebesar 30° dengan 4 bit urutan data (terdapat dua buah lilitan dengan
tap, total lilitan menjadi 4 lilitan).
Ketelitian dari magnet permanen di rotor dapat sampai 1.8° untuk tiap stepnya. Ketika
arus mengalir melalui tap tengah pada lilitan pertama akan menyebabkan kutub pada stator
bagian atas menjadi kutub utara sedangkan kutub stator pada bagian bawah menjadi kutub
selatan. Kondisi akan menyebabkan rotor mendapat st="on"gaya tarik menuju kutub-kutub
ini. Dan ketika arus yang melalui lilitan 1 dihentikan dan lilitan 2 diberi arus maka rotor
akan mengerak lagi menuju kutub-kutub ini. Sampai di sini rotor sudah berputar sampai
30° atau 1 step.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 153/275
Gambar 8.5 Urutan Data Untuk Motor Stepper dengan Tipe Unipolar (torsi normal)
Gambar 8.6 Urutan Data Motor Stepper Tipe Unipolar (torsi besar)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 154/275
Untuk meningkatkan torsi yang tidak terlalu besar maka dapat digunakan urutan
pemberian data seperti pada gambar 8.6 Dimana terdapat dua buah lilitan yang di beri arus
pada suatu waktu. Dengan pemberian urutan data seperti ini akan menghasilkan torsi yang
lebih besar dan tentunya membutuhkan daya yang lebih besar.
Dengan urutan data baik pada Gambar 8.5 atau Gambar 8.6 akan menyebabkanmotor berputar sebanyak 24 step atau 4 putaran.
Bipolar Motor Stepper
Motor dengan tipe bipolar ini mempunyai konstruksi yang hampir sama dengan motor
stepper tipe unipolar namun tidak terdapat tap pada lilitannya, seperti tampak pada Gambar
8.7
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 155/275
Gambar 8.7 Bipolar Motor Stepper
Penggunaan motor dengan tipe bipolar ini membutuhkan rangkaian yang sedikit lebih
rumit untuk mengatur agar motor ini dapat berputar dalam dua arah. Biasanya untuk
menggerakkan motor stepper jenis ini membutuhkan sebuah driver motor yang sering
dikenal sebagai H Bridge . Rangkaian ini akan menontrol tiap-tiap lilitan secara independen
termasuk dengan polaritasnya untuk tiap-tiap lilitan.
Untuk mengontrol agar motor ini dapat berputar satu step maka perlu diberikan arus
untuk tiap-tiap lilitan dengan polaritas tertentu pula. Urutan datanya dapat dilihat pada
Gambar 8.8.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 156/275
Gambar 8.8 Urutan Data Motor Stepper tipe Bipolar
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 157/275
Rangkaian Dasar Driver Motor DC :
Alat dan bahan :
1. Konektor IDC single 5 pin.
2. PCB 5x5 cm.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 158/275
3. Resistor 4K7.
4. Transistor BD139.
5. Solder.
6. Tenol.
Berikut gambar desainnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 159/275
Contoh gambar yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 160/275
Rangkaian Dasar Driver Motor Stepper :
Alat dan bahan :
5. Konektor IDC single 10 pin.
6 PCB 5 5
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 161/275
6. PCB 5x5 cm.
7. IC ULN2003.
8. Solder.
9. Tenol.
Berikut Gambar desainnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 162/275
Contoh gambar yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 165/275
Berikut contoh kode program sederhana untuk memutar motor DC :
#include <mega32.h>
#include <delay.h>
unsigned char high, low, i, speed;
void main(void)
{
DDRC.0=1;
PORTC.0=0;
speed=10; //max 100 min 10 duty cycle
high=speed;
low=100-high;
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 166/275
low 100 high;
if (speed>100) { high=0; low=0; }
while(1)
{
for (i=0; i<high; i++)
{PORTC.0=1;
delay_ms(1);
}
for (i=0; i<low; i++)
{
PORTC.0=0;
delay_ms(1);
}
}}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 167/275
Berikut Contoh kode program motor stepper :
#include <mega32.h>
#include <delay.h>
void step_maju(void)
{
PORTB =0b00000001; // A
delay_ms(2);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 168/275
PORTB =0b00000010; // B
delay_ms(2);
PORTB =0b00000100; // ~A
delay_ms(2);
PORTB =0b00001000; // ~B
delay_ms(2);
}
void step_mundur(void)
{
PORTB =0b00001000; // A
delay_ms(2);
PORTB =0b00000100; // B
delay_ms(2);
PORTB =0b00000010; // ~A
delay ms(2);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 169/275
delay_ms(2);
PORTB =0b00000001; // ~B
delay_ms(2);
}
void main(void)
{
DDRB =0b00001111;
PORTB =0b00000000;
while(1)
{
// step maju();
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 170/275
// step_maju();
step_mundur();
delay_ms(100);
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 171/275
ensor adalah sesuatu yang digunakan untuk mendeteksi adanya perubahan
lingkungan fisik atau kimia. Variabel keluaran dari sensor yang diubah menjadibesaran listrik disebut Transduser. Gelombang ultrasonik adalah gelombang
dengan besar frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20 KHz. Seperti
telah disebutkan bahwa sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang
disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver . Sinyal
ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik. Ketika sinyal
mengenai benda penghalang, maka sinyal ini dipantulkan, dan diterima oleh receiver
S
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 172/275
ultrasonik. Sinyal yang diterima oleh rangkaian receiver dikirimkan ke rangkaian
mikrokontroler untuk selanjutnya diolah untuk menghitung jarak terhadap benda di
depannya (bidang pantul).
Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 173/275
pantulan gelombang suara dandigunakan untuk mendeteksikeberadaan suatu objek tertentudi depannya, frekuensi kerjanyapada daerah diatas gelombang
suara dari 40 KHz hingga 400KHz.
Prinsip kerja Sensor Ultrasonik
Sensor ultrasonik terdiri dari dari dua unit yaitu unit pemancar dan unit penerima.Struktur unit pemancar dan penerima sangatlah sederhana, sebuah kristal piezoelectric
dihubungkan dengan mekanik jangkar dan hanya dihubungkan dengan diafragma
penggetar. Tegangan bolak-balik yang memiliki frekuensi kerja 40 KHz – 400 KHz diberikan
pada plat logam. Struktur atom dari kristal piezoelectric akan berkontraksi (mengikat),
mengembang atau menyusut terhadap polaritas tegangan yang diberikan, dan ini disebut
dengan efek piezoelectric . Kontraksi yang terjadi diteruskan ke diafragma penggetar sehingga
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 174/275
terjadi gelombang ultrasonik yang dipancarkan ke udara (tempat sekitarnya), dan pantulan
gelombang ultrasonik akan terjadi bila ada objek tertentu, dan pantulan gelombang
ultrasonik akan diterima kembali oleh oleh unit sensor penerima. Selanjutnya unit sensor
penerima akan menyebabkan diafragma penggetar akan bergetar dan efek piezoelectric
menghasilkan sebuah tegangan bolak-balik dengan frekuensi yang sama.
Besar amplitudo sinyal elekrik yang dihasilkan unit sensor penerima tergantung dari
jauh dekatnya objek yang dideteksi serta kualitas dari sensor pemancar dan sensor
penerima. Proses sensing yuang dilakukan pada sensor ini menggunakan metode pantulan
untuk menghitung jarak antara sensor dengan obyek sasaran. Jarak antara sensor tersebut
dihitung dengan cara mengalikan setengah waktu yang digunakan oleh sinyal ultrasonik
dalam perjalanannya dari rangkaian Tx sampai diterima oleh rangkaian Rx, dengankecepatan rambat dari sinyal ultrasonik tersebut pada media rambat yang digunakannya,
yaitu udara.
Waktu di hitung ketika pemencar aktif dan sampai ada input dari rangkaian penerima
dan bila pada melebihi batas waktu tertentu rangkaian penerima tidak ada sinyal input
maka dianggap tidak ada halangan didepannya.
Prinsip kerja dari sensor ultrasonik dapat ditunjukkan dalam gambar dibawah ini :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 175/275
Gambar 9.1 Prinsip Kerja Sensor Ultrasonik
Prinsip kerja dari sensor ultrasonik adalah sebagai berikut :
1. Sinyal dipancarkan oleh pemancar ultrasonik. Sinyal tersebut berfrekuensi diatas20kHz, biasanya yang digunakan untuk mengukur jarak benda adalah 40kHz. Sinyal
tersebut di bangkitkan oleh rangkaian pemancar ultrasonik.
2. Sinyal yang dipancarkan tersebut kemudian akan merambat sebagai sinyal /
gelombang bunyi dengan kecepatan bunyi yang berkisar 340 m/s. Sinyal tersebut
kemudian akan dipantulkan dan akan diterima kembali oleh bagian penerima
Ultrasonik.
3 S l h i l b i di i l ik k di i l b k
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 176/275
3. Setelah sinyal tersebut sampai di penerima ultrasonik, kemudian sinyal tersebut akan
diproses untuk menghitung jaraknya. Jarak dihitung berdasarkan rumus :
S = 340.t/2
Dimana S adalah jarak antara sensor ultrasonik dengan bidang pantul, dan t adalah
selisih waktu antara pemancaran gelombang ultrasonik sampai diterima kembali oleh bagianpenerima ultrasonik.
Pemancar Ultrasonik (Transmitter )
Pemancar Ultrasonik ini berupa rangkaian yang memancarkan sinyal sinusoidal
berfrekuensi di atas 20 KHz menggunakan sebuah transducer transmitter ultrasonic
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 177/275
Gambar 9.2. Rangkaian Pemancar Gelombang Ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adlah sebagai berikut :a) Sinyal 40 kHz dibangkitkan melalui mikrokontroler.
b) Sinyal tersebut dilewatkan pada sebuah resistor sebesar 3kOhm untuk pengaman
ketika sinyal tersebut membias maju rangkaian dioda dan transistor.
c) Kemudian sinyal tersebut dimasukkan ke rangkaian penguat arus yang merupakan
kombinasi dari 2 buah dioda dan 2 buah transistor.
d) Ketika sinyal dari masukan berlogika tinggi (+5V) maka arus akan melewati dioda D1
(D1 on) kem dian ar s terseb t akan membias transistor T1 sehingga ar s ang
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 178/275
(D1 on), kemudian arus tersebut akan membias transistor T1, sehingga arus yang
akan mengalir pada kolektotr T1 akan besar sesuai dari penguatan dari transistor.
e) Ketika sinyal dari masukan berlogika tinggi (0V) maka arus akan melewati dioda D2
(D2 on), kemudian arus tersebut akan membias transistor T2, sehingga arus yang
akan mengalir pada kolektotr T2 akan besar sesuai dari penguatan dari transistor.
f) Resistor R4 dan R6 berfungsi untuk membagi tengangan menjadi 2,5 V. Sehingga
pemancar ultrasonik akan menerima tegangan bolak – balik dengan Vpeak-peak
adalah 5V (+2,5 V s.d -2,5 V).
Penerima Ultrasonik (Receiver )
Penerima Ultrasonik ini akan menerima sinyal ultrasonik yang dipancarkan oleh
pemancar ultrasonik dengan karakteristik frekuensi yang sesuai. Sinyal yang diterima
tersebut akan melalui proses filterisasi frekuensi dengan menggunakan rangkaian band pass
filter (penyaring pelewat pita), dengan nilai frekuensi yang dilewatkan telah ditentukan.
Kemudian sinyal keluarannya akan dikuatkan dan dilewatkan ke rangkaian komparator
(pembanding) dengan tegangan referensi ditentukan berdasarkan tegangan keluaran
penguat pada saat jarak antara sensor kendaraan mini dengan sekat/dinding pembatas
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 179/275
penguat pada saat jarak antara sensor kendaraan mini dengan sekat/dinding pembatas
mencapai jarak minimum untuk berbelok arah. Dapat dianggap keluaran komparator pada
kondisi ini adalah high (logika ‘1’) sedangkan jarak yang lebih jauh adalah low (logika’0’).
Logika-logika biner ini kemudian diteruskan ke rangkaian pengendali (mikrokontroler).
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 180/275
Gambar 9.3 Rangkaian Penerima Gelombang Ultrasonik.
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adalah sebagai
berikut :1. Pertama – tama sinyal yang diterima akan dikuatkan terlebih dahulu oleh rangkaian
transistor penguat Q2.
2. Kemudian sinyal tersebut akan di filter menggunakan High pass filter pada frekuensi >
40kHz oleh rangkaian transistor Q1.
3. Setelah sinyal tersebut dikuatkan dan di filter, kemudian sinyal tersebut akan
disearahkan oleh rangkaian dioda D1 dan D2.
4 Kemudian sinyal tersebut melalui rangkaian filter low pass filter pada frekuensi <
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 181/275
4. Kemudian sinyal tersebut melalui rangkaian filter low pass filter pada frekuensi <
40kHz melalui rangkaian filter C4 dan R4.
5. Setelah itu sinyal akan melalui komparator Op-Amp pada U3.
6. Jadi ketika ada sinyal ultrasonik yang masuk ke rangkaian, maka pada komparator
akan mengeluarkan logika rendah (0V) yang kemudian akan diproses olehmikrokontroler untuk menghitung jaraknya.
Rangkaian Dasar Sensor Ultrasonik
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 183/275
Aplikasi Pengukur Jarak
#include <mega32.h>#include <delay.h>
#include <stdlib.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x15 //port c
#endasm
unsigned char data, str_data[4];
// External Interrupt 2 service routine
i t t [EXT INT2] id t i t2 i ( id)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 184/275
interrupt [EXT_INT2] void ext_int2_isr(void)
{
data=TCNT0;
delay_ms(500);
itoa(data, str_data);
lcd_clear();
lcd_gotoxy(0, 0);
lcd_puts(str_data);
}
void main(void)
{
DDRB.0=1; //PORTB.0 pin TRIGER; PORTB.2 PIN ECHO INT2;DDRB.1=0;
PORTB=0x00;
// Timer/Counter 0 initialization
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 185/275
// INT1: Off
// INT2: On
// INT2 Mode: Falling Edge
GICR|=0x20;
MCUCR=0x00;
MCUCSR=0x00;
GIFR=0x20;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
lcd_init(16);
lcd_clear();
lcd_gotoxy(0, 0);
// clear the LCD
lcd_putchar(200);
// Global enable interrupts
#asm("sei")
while(1)
{
PORTB.0=1; delay_us(10);
PORTB.0=0;
TCNT0=0x00;delay_ms(36);
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 187/275
Remote control adalah sebuah alat elektronik yang digunakan untukmengoperasikan sebuah mesin dari jarak jauh. Pada umumnya, pengendali
jarak jauh digunakan untuk memberikan perintah dari kejauhan kepada
televisi atau barang-barang elektronik lainnya seperti sistem stereo dan
pemutar DVD. Remote control untuk perangkat-perangkat ini biasanya
berupa benda kecil nirkabel yang dipegang dalam tangan dengan sederetantombol untuk menyesuaikan berbagai setting, seperti misalnya saluran
televisi, nomor trek, dan volume suara. Malah, pada kebanyakan peranti
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 188/275
televisi, nomor trek, dan volume suara. Malah, pada kebanyakan peranti
modern dengan kontrol seperti ini, remote controlnya memiliki segala kontrol
fungsi sementara perangkat yang dikendalikan itu sendiri hanya mempunyai
sedikit kontrol utama yang mendasar. Kebanyakan remote berkomunikasi
dengan perangkatnya masing-masing melalui sinyal-sinyal infra merah dan
beberapa saja melalui sinyal radio. Remote control biasanya menggunakan
baterai AAA yang kecil atau AA sebagai catu dayanya.
Remote Transmitter adalah merupakan pemancar jarak jauh. Yang manasemua remote kontrol menggunakan transmisi sinyal infra merah yang
dimodulasi dengan sinyal carrier dengan frekuensi tertentu yaitu pada frekuensi30KHz sampai 40KHz. Sinyal yang dipancarkan oleh pengirim diterima olehpenerima infra merah dan kemudian didecode kan sebagai sebuah paket databiner. Pada transmisi infra merah terdapat dua terminologi yang sangat penting yaitu : ‘ space ’ yang menyatakan tidak ada sinyal carrier dan ‘ pulse ’ yang
menyatakan ada sinyal carrier.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 189/275
Remote Receiver adalah merupakan penerima jarak jauh. Dalam hal ini
sinar infra merah yang dipancarkan oleh pemancar infra merah tentunya
mempunyai aturan tertentu agar data yang dipancarkan dapat diterima dengan
baik di penerima. Oleh karena itu baik di pengirim infra merah maupun penerima
infra merah harus mempunyai aturan yang sama dalam mentransmisikan (bagian
pengirim) dan menerima sinyal tersebut kemudian mendekodekannya kembali
menjadi data biner (bagian penerima). Komponen yang dapat menerima infra
merah ini merupakan komponen yang peka cahaya yang dapat berupa dioda
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 190/275
(photodioda) atau transistor (phototransistor). Komponen ini akan merubah energi
cahaya, dalam hal ini energi cahaya infra merah, menjadi pulsa-pulsa sinyal
listrik. Komponen ini harus mampu mengumpulkan sinyal infra merah sebanyak
mungkin sehingga pulsapulsa sinyal listrik yang dihasilkan kualitasnya cukup
baik. Pada perangkat ini detektor cahaya yang digunakan adalah komponen
TSOP4838, dimana pada komponen ini sudah terdapat filter. Jadi detektor ini
akan bekerja dengan baik jika terdapat frekuensi 38KHz.
Berikut contoh rangkaian dasar sensor infra red
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 191/275
Berikut contoh desain PCB nya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 192/275
Berikut contoh gambar yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 193/275
Berikut contoh desainnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 194/275
Berikut contoh desain PCB nya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 195/275
Berikut contoh yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 197/275
#include <mega32.h>
#include <delay.h>
// Declare your global variables here
unsigned char value, i, j, tx=0, data=0;
void tx_ir(unsigned char send)
{
if (send==1)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 198/275
{
for (j=0; j<25; j++)
{
PORTB.0=0;
delay_us(13);
PORTB.0=1;
delay_us(13);
}
}
else
{
for (j=0; j<25; j++)
{
PORTB.0=0;
delay_us(13);
PORTB.0=0;
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 199/275
delay_us(13);
}
}
}
void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTB.0=0;
DDRB.0=1;
value=170;
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 200/275
while (1)
{
data=value;
tx_ir(1);
for (i=0;i<8;i++)
{
if (data&0x01) tx=1; else tx=0; //data 8 bit
data>>=1;
tx_ir(tx);
}
tx_ir(0);
PORTB.0=0;
value++;
delay_ms(1000);
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 202/275
Gelombang radio adalah satu bentuk dari radiasi elektromagnetik, dan terbentuk
ketika objek bermuatan listrik dimodulasi (dinaikkan frekuensinya) pada frekuensi yang
terdapat dalam frekuensi gelombang radio (RF) dalam suatu spektrum elektromagnetik, dan
radiasi elektromagnetiknya bergerak dengan cara osilasi elektrik maupun
magnetik.Gelombang elektromagnetik lainnya, yang memiliki frekuensi di atas gelombang
radio meliputi sinar gamma, sinar-X, inframerah, ultraviolet, dan cahaya terlihat.
Ketika gelombang radio dipancarkan melalui kabel, osilasi dari medan listrik dan magnetik
tersebut dinyatakan dalam bentuk arus bolak-balik dan voltase di dalam kabel. Hal ini
kemudian dapat diubah menjadi signal audio atau lainnya yang membawa informasi.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 203/275
Frekuensi adalah ukuran jumlah putaran ulang per peristiwa dalam selang waktu
yang diberikan. Untuk memperhitungkan frekuensi, seseorang menetapkan jarak waktu,
menghitung jumlah kejadian peristiwa, dan membagi hitungan ini dengan panjang jarakwaktu. Hasil perhitungan ini dinyatakan dalam satuan hertz (Hz) yaitu nama pakar fisika
Jerman Heinrich Rudolf Hertz yang menemukan fenomena ini pertama kali. Frekuensi
sebesar 1 Hz menyatakan peristiwa yang terjadi satu kali per detik.
Secara alternatif, seseorang bisa mengukur waktu antara dua buah kejadian/peristiwa (dan menyebutnya sebagai periode), lalu memperhitungkan frekuensi ( f ) sebagai
hasil kebalikan dari periode (T ), seperti nampak dari rumus di bawah ini :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 204/275
RFM12B
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 205/275
Berikut adalah sedikit penjelasan mengenai konfigurasi port nya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 207/275
Berikut contoh gambar desain PCBnya:
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 208/275
Berikut contoh gambar yang sudah jadi :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 211/275
Berikut contoh kode program komunikasi RF menggunakan modul RFM12B
Program pengirim data Terlebih dahulu buat source baru, save dengan nama Rx.c/**********************************************************************************
/* RFM12B INTERFACE */
#define SCK 3 // SPI clock
#define SDO 1 // SPI Data output (RFM12B side)
#define SDI 2 // SPI Data input (RFM12B side)
#define CS 4 // SPI SS (chip select)
#define NIRQ 2 // (PORTD)
/* IO CONTROL */
#define HI(x) PORTB |= (1<<(x))
#define LO(x) PORTB &= ~(1<<(x))
#define WAIT_NIRQ_LOW() while(PIND&(1<<NIRQ))
/**********************************************************************************
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 212/275
/**********************************************************************************
void portInit()
{
HI(CS);HI(SDI);
LO(SCK);
DDRB = (1<<CS) | (1<<SDI) | (1<<SCK);
}
/**********************************************************************************
unsigned int writeCmd(unsigned int cmd)
{
unsigned char i;
unsigned int recv;
recv = 0;
LO(SCK);
LO(CS);
for(i=0; i<16; i++)
{
if(cmd&0x8000)
HI(SDI);
elseLO(SDI);
HI(SCK);
recv<<=1;
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 213/275
if( PINB&(1<<SDO) )
{
recv|=0x0001;
}
LO(SCK);
cmd<<=1;
}
HI(CS);
return recv;
}
/**********************************************************************************
void rfInit()
{
writeCmd(0x80E7); // EL,EF,868band,12.0pFwriteCmd(0x8299); // er,!ebb,ET,ES,EX,!eb,!ew,DC (bug was
here)
writeCmd(0xA640); // freq select
writeCmd(0xC647); // 4.8kbps
writeCmd(0x94A0); // VDI,FAST,134kHz,0dBm,-103dBm
writeCmd(0xC2AC); // AL,!ml,DIG,DQD4
writeCmd(0xCA81); // FIFO8,SYNC,!ff,DR (FIFO level = 8)
writeCmd(0xCED4); // SYNC=2DD4;
writeCmd(0xC483); // @PWR,NO RSTRIC,!st,!fi,OE,ENwriteCmd(0x9850); // !mp,90kHz,MAX OUT
writeCmd(0xCC17); // !OB1,!OB0, LPX,!ddy,DDIT,BW0
writeCmd(0xE000); // NOT USED
writeCmd(0xC800); // NOT USED
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 214/275
writeCmd(0xC040); // 1.66MHz,2.2V
}
/**********************************************************************************
unsigned char rfRecv()
{
unsigned int data;
while(1)
{
data = writeCmd(0x0000);
if ( (data&0x8000) )
{
data = writeCmd(0xB000);
return (data&0x00FF);
}
}}
/**********************************************************************************
i
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 215/275
void FIFOReset()
{
writeCmd(0xCA81);
writeCmd(0xCA83);
}
Program utama main.c
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#include <RX.c>
unsigned char dataRF[25];
void main(void)
{
unsigned char i;
// USART Baud Rate: 115200
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 216/275
//
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x03;
delay_ms(2000);
putchar(200);
portInit();
rfInit();
FIFOReset();
putchar(255);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 217/275
while(1)
{
for (i=0; i<5; i++)
{
dataRF[i] = rfRecv(); // Saving to Array
}
FIFOReset();
for (i=0; i<5; i++)
{
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 218/275
putchar(dataRF[i]); // Send to UART
}
printf("\r\n");
}
}
Contoh kode program pengirim atau transmitter.
Buat source baru dan simpan dengan nama Tx.c
/*********************************************************************************/
#define SCK 3 // SPI clock
#define SDO 1 // SPI Data output (RFM12B side)
#define SDI 2 // SPI Data input (RFM12B side)
#define CS 4 // SPI SS (chip select)
#define NIRQ 2 // (PORTD)
/* IO CONTROL */
#define HI(x) PORTB |= (1<<(x))
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 219/275
#define LO(x) PORTB &= ~(1<<(x))
#define WAIT_NIRQ_LOW() while(PIND&(1<<NIRQ))
/*********************************************************************************/
void portInit()
{
HI(CS);
HI(SDI);
LO(SCK);
DDRB = (1<<CS) | (1<<SDI) | (1<<SCK);
DDRD.2=0;
PORTD.2=1;
}
/*********************************************************************************/
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 220/275
unsigned int writeCmd(unsigned int cmd)
{
unsigned char i;
unsigned int recv;
recv = 0;
LO(SCK);
LO(CS);
for(i=0; i<16; i++)
{
if(cmd&0x8000)
HI(SDI);
else
LO(SDI);
HI(SCK);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 221/275
recv<<=1;
if( PINB&(1<<SDO) )
{
recv|=0x0001;
}
LO(SCK);
cmd<<=1;
}
HI(CS);
return recv;
}
/*********************************************************************************/
void rfInit()
{
writeCmd(0x80E7); // EL,EF,868band,12.0pF
writeCmd(0x8239); // !er,!ebb,ET,ES,EX,!eb,!ew,DC
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 222/275
writeCmd(0xA640); // frequency select
writeCmd(0xC647); // 4.8kbps
writeCmd(0x94A0); // VDI,FAST,134kHz,0dBm,-103dBm
writeCmd(0xC2AC); // AL,!ml,DIG,DQD4
writeCmd(0xCA81); // FIFO8,SYNC,!ff,DR
writeCmd(0xCED4); // SYNC=2DD4
writeCmd(0xC483); // @PWR,NO RSTRIC,!st,!fi,OE,EN
writeCmd(0x9850); // !mp,90kHz,MAX OUT
writeCmd(0xCC17); // OB1, COB0, LPX, Iddy, CDDIT CBW0
writeCmd(0xE000); // NOT USED
writeCmd(0xC800); // NOT USED
writeCmd(0xC040); // 1.66MHz,2.2V
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 223/275
void rfSend(unsigned char data)
{
WAIT_NIRQ_LOW();
writeCmd(0xB800 + data);
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 224/275
Contoh kode program pada main.c
#include <mega32.h>
#include <delay.h>
#include <TX.c>
void main()
{
volatile unsigned int i;
// asm("cli");
delay_ms(2000);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 225/275
portInit();
rfInit();
while(1)
{
writeCmd(0x0000);
rfSend(0xAA); // PREAMBLE
rfSend(0xAA);
rfSend(0xAA);
rfSend(0x2D); // SYNC 0x2DD4
rfSend(0xD4);
for(i=0; i<5; i++) //send data 5 byte
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 226/275
{
rfSend(0x41+i);
}
rfSend(0xAA); // DUMMY BYTES
rfSend(0xAA);
rfSend(0xAA);
delay_ms(200);
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 228/275
RTC (real time clock) merupakan IC yang dapat menyimpan setting waktu. sebagai
contoh saat sebuah komputer di matikan selama 3 hari misalnya. maka saat kita ON kan
lagi waktu dalam komputer masih menunjukkan waktu saat itu, waktu tidak mengalami
kelambatan walaupun selama 3 hari tanpa sumber tegangan.
RTC merupakan IC yang dapat mempertahan setting waktu. Ada 2 macam tipe IC RTC
yaitu serial dan pararel. Untu schema di atas merupakan serial RTC. Agar waktunya sesuaistandar maka diperlukan xtal eksternal 32.768 kHz. Saat supply utama OFF IC akan dapat
suplly dari Baterai sehingga setting waktu tetap jalan. IC ini haruslah terkoneksi ke sebuah
mokrokontroler.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 229/275
Real Time Clock berhubungan dengan waktu mulai dari detik, menit, jam, hari, tanggal,
bulan dan tahun. Tetapi IC RTC ini juga bisa dipakai untuk menyimpan data di dalam
internal RAM RTC ini, di mana data tersebut tidak bisa hilang meskipun supply diputus, hal
ini karena di dalam IC RTC tersebut ada battery-nya yang selalu hidup untuk menjalankan
clock -nya jadi waktu (clock ) tetap berjalan meskipun supply dimatikan. IC RTC ini masih
mempunyai kelebihan bisa dipakai sebagai timer atau alarm . Untuk hitungan detik, menit,
jam, hari, tanggal, bulan dan tahun dengan tahun kabisat yang valid sampai 2100 karena
compensation valid up to 2100. Mode yang dipilih juga bisa 12 or 24 hour clock with AM dan
PM in 12 hour mode .
RTC 1307 menggunakan teknik I2C yaitu memakai 2 jalur untuk keperluan transfer
data secara seri, sedangkan SPI dan MicroWire memakai 3 jalur. Semua teknik mempunyai 1
jalur untuk Clock, I2C hanya punya satu jalur data 2 arah, sedangkan SPI dan MicroWire
mempunyai 2 jalur data satu arah, masing-masing untuk jalur data masuk dan jalur data
keluar.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 230/275
KONFIGURASI PIN
Untuk lebih jelas mengenai fungsi dan kegunaan dari IC ini terlebih dahulu akan dijelaskan
fungsi dari tiap-tiap pin pada IC keluarga DS1307, di mana diketahui bahwa IC DS1307
memiliki 8 pin atau kaki, seperti pada Gambar 12.1.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 231/275
Gambar 12.1 Pin-pin IC DS1307
Fungsi dari tiap pin RTC DS1307 antara lain :
1. X1, X2 Terhubung dengan kaki kristal 32768kHz
2. Vbat Terhubung dengan battery 3,3 volt
3. GND, Vcc Input tegangan Vcc adalah +5V.
4. SQW (Square Wave Output )Pin SQW dapat mengeluarkan sinyal salah satu dari 13
taps yang disediakan oleh 15 tingkat pembagi internal dari RTC.
5. SCL Pin SCL mengeluarkan sinyal clock. Pin ini harus diberi resistor Pull Up.
6. SDA Pin SCL mengeluarkan sinyal data
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 232/275
Pembuatan rankaian sederhana RTC DS1307
Alat dan bahan :
1. RTC DS1307 1 buah. 6. Soket IDC 10 buah. 11. Tenol.
2. Resistor 3 buah. 7. Black housing 10 buah.
3. Kapasitor 1 buah. 8. Kabel IDC.
4. Batteray. 9. PCB 5x4 cm.
5. Konektor IDC single 5 pin. 10. Solder.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 233/275
Rangkaian dasar RTC
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 234/275
Contoh rangkaian yang sudah jadi
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 237/275
Berikut adalah contoh kode program baca tulis data RTC
#asm
.equ __lcd_port=0x15 // PortC
.equ __i2c_port=0x1b // PortA
.equ __scl_bit=1
.equ __sda_bit=0
#endasm
#include <mega32.h>
#include <delay.h>
#include <stdlib.h>
#include <lcd.h>#include <ds1307.h>
#include <i2c.h>
unsigned char detik, menit, jam, str_detik[4], str_menit[4], str_jam[4];
unsigned char tanggal, bulan, tahun, str_tanggal[4], str_bulan[4], str_tahun[5];
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 238/275
void main(void)
{
lcd_init(16);
lcd_gotoxy(0, 0);
lcd_putsf("Latihan RTC");
i2c_init();
rtc_init(0,0,0);
rtc_set_time(0,0,0); // SET JAM
rtc_set_date(11,12,2011); // SET TANGGAL
delay_ms(1000);
while (1)
{
rtc_get_time(&jam,&menit,&detik); // Read Time
if(detik==0)
{
lcd_clear();
lcd_gotoxy(0, 0);lcd_putsf("Latihan RTC");
}
str_jam[0]=(jam/10)+48;
str_jam[1]=jam%10+48;
lcd_gotoxy(0, 1);
l d t ( t j )
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 239/275
lcd_puts(str_jam);
lcd_gotoxy(2,1);
lcd_puts(":");
str_menit[0]=(menit/10)+48;
str_menit[1]=menit%10+48;
lcd_gotoxy(3, 1);
lcd_puts(str_menit);
lcd_gotoxy(5,1);
lcd_puts(":");
str_detik[0]=(detik/10)+48;
str_detik[1]=detik%10+48;
lcd_gotoxy(6, 1);
lcd_puts(str_detik);
delay_ms(1000);
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 242/275
EPROM (Electrically Erasable Programmable Read-Only Memory, ditulis pula
dengan E2PROM) adalah sejenis chip memori tidak terhapus yang digunakan
dalam komputer dan peralatan elektronik lain untuk menyimpan sejumlah konfigurasi data
pada alat elektronik tersebut yang tetap harus terjaga meskipun sumber daya diputuskan,
seperti tabel kalibrasi atau kofigurasi perangkat.
Kelebihan utama dari EEPROM dibandingkan EPROM adalah ia dapat dihapus secara
elektris tanpa menggunakan cahaya ultraviolet sehingga prosesnya lebih cepat. Jika RAMtidak memiliki batasan dalam hal read-write memori, maka EEPROM sebaliknya. Beberapa
jenis EEPROM keluaran pertama hanya dapat dihapus dan ditulis ulang (erase-rewrite)
sebanyak 100 kali sedangkan model terbaru bisa sampai 100.000 kali.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 243/275
AT24C32
Serial EEPROM tipe 24xx adalah merupakan memori serial yang menggunakanteknologi I2C di mana dengan adanya penggunaan teknologi tersebut, hanya membutuhkan
jumlah I/O yang digunakan untuk meng-akses memori tersebut semakin sedikit. Hal ini
tentunya sangat bermanfaat bagi sebuah sistem yang memerlukan banyak I/O. Penggunaan
I/O yang semakin sedikit untuk mengakses memori, akan menyediakan lebih banyak I/O
yang dapat digunakan untuk keperluan lain. I2C adalah teknologi komunikasi serial yangditemukan oleh Philips pada tahun 1992 dan direvisi hingga versi 2.1 yang terbaru pada
tahun 2000. Teknologi ini hanya menggunakan 2 buah jalur I/O yaitu SDA dan SCL SDA
merupakan jalur data pada komunikasi I2C
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 244/275
SCL merupakan jalur clock di mana sinyal clock akan selalu muncul untuk setiap bit
dari pengiriman data. Komunikasi I2C diciptakan oleh Philips bukan hanya untuk Serial
EEPROM melainkan juga diperuntukkan bagi komponen-komponen lain yang mempunyaikemampuan untuk diakses secara I2C. Oleh karena itu, untuk membedakan antara Serial
EEPROM dengan komponen-komponen yang lain digunakan Slave Address yang
menunjukkan identitas dari komponen tersebut. Dalam hal ini Serial EEPROM mempunyai
kode 1010.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 245/275
Berikut table kapasitas EEPROM seri 24C32
Type Kapasitas
AT24C01 128 byte
AT24C02 256 byte
AT24C04 512 byte
AT24C08 1 Kbyte
AT24C16 2 Kbyte
AT24C32 4 Kbyte
AT24C64 8 Kbyte
AT24C128 16 Kbyte
AT24C256 32 Kb
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 246/275
AT24C256 32 Kbyte
AT24C512 64 Kbyte
Rangkaian dasar EEPROM menggunakan AT24C32
Alat dan bahan :
1. IC AT24C32 I buah.
2. Resistor 10K ohm 2 buah.
3. Konektor IDC single 4 pin.
4. Soket IDC 8 buah.
5. Black housing 8 buah.
6. Kabel IDC.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 247/275
7. PCB 5x4 cm.
8. Solder.
9. Tenol.
Berikut adalah gambar designnya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 248/275
Berikut contoh gambar desain PCB nya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 249/275
Berikut contoh rangkaian yang sudah jadi
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 252/275
Terlebih dahulu buat source baru dan simpan dengan nama I2Croutin.c, berikut adalahkode programnya :/* *******************************************************************************
write a byte to the EEPROM
************************************************************************* */
void eeprom_write(unsigned int address, unsigned char data)
{
unsigned char addrH=address/256;
unsigned char addrL=address%256;
i2c_start();
i2c_write(AT24C32_Bus_Addr);
i2c_write(addrH);i2c_write(addrL);
i2c_write(data);
i2c_stop();
delay_ms(10);
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 253/275
/* **************************************************************************
read a byte from the EEPROM
******************************************************************/
unsigned char eeprom_read(unsigned int address)
{unsigned char addrH=address/256;
unsigned char addrL=address%256;
unsigned char data;
i2c_start();
i2c_write(AT24C32_Bus_Addr);
i2c_write(addrH);
i2c_write(addrL);
i2c_start();
i2c_write(AT24C32_Bus_Addr | 1);
data=i2c_read(0);
i2c_stop();
return data;
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 254/275
}
Berikut contoh kode program pana main.c
/*****************************************************
Project : Test Memory AT24C32
Version : 1.0.0
Date : 09 mei 2010
Author : Uwiex
Company : Multi-Tech Aji Perkasa
Comments : Book Section
Chip type : ATmega32
Program type : Application
Clock frequency : 12.00000000 MHz
Memory model : Small
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 255/275
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 256/275
#include <mega32.h>
#include <stdio.h>
#include <Delay.h>
#include <string.h>
#include <lcd.h>
#include <i2c.h>
#include <I2C Routine.c>
void main(void)
{
delay_ms(500);
lcd_init(16);
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 257/275
lcd_clear(); // Inisialisasi LCD
lcd_gotoxy( 0,0); lcd_putsf("Mulai...."); // Menulis di Kolom
0 Baris 0
/*
eeprom_write(512,'A');
eeprom_write(513,'B');
eeprom_write(514,'C');
eeprom_write(515,'D');
*/
// DataAddr=0;
// for (Counter=0; Counter<strlenf(NoID); Counter++)
// eeprom_write(DataAddr+Counter,NoID[Counter]);
lcd_gotoxy( 0,1); lcd_putchar(eeprom_read(15));
while (1)
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 258/275
{
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 259/275
Dalam ilmu komputer dan ilmu telekomunikasi, komunikasi serial adalah proses dari
pengiriman data satu bit dalam satu waktu secara sekuensial melalui kanal komunikasi atau
bus pada komputer. Hal ini tentunya sangat kontras dengan komunikasi paralel, dimana
beberapa bit dikirimkan secara bersamaan pada sebuah jalur yang terdiri dari beberapa
kanal berkabel yang tersusun paralel. Komunikasi serial digunakan untuk semua
komunikasi long-haul dan kebanyakan jaringan komputer dimana biaya untuk kabel dan
kesulitan sinkronisasi membuat komunikasi paralel tidak praktis. Pada jarak yang lebih
dekat, bus serial pada komputer menjadi lebih umum digunakan karena kekurangan dari
bus paralel, misalnya ketidakcocokan clock dan densitas interkoneksi, mengalahkan
kelebihannya, yaitu tidak perlu ada proses serialisasi dan deserialisasi (serializer and
deserializer/SERDES). Teknologi yang berkembang untuk memastikan integritas sinyal dan
untuk mengirim dan menerima pada kecepatan per jalur yang cukup tinggi telah membuat
jalur-jalur serial menjadi kompetitif
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 260/275
jalur jalur serial menjadi kompetitif.
FTDI chip sendiri adalah sirkuit terpadu yang
merupakan komponen umum pada perangkat elektronik
menggunakan mikrokontroler. FTDI adalah spesialis dalam
mengkonversi peripheral warisan untuk Universal Serial
Bus (USB), menawarkan rute termudah ke USB migrasi
dengan menggabungkan USB-Serial (USB-RS232) dan USB-
FIFO silikon solusi dengan royalti siap-pergi mereka bebas USB driver. Populer FTDI USB
solusi konversi menawarkan mengurangi biaya pengembangan dan debug dan waktu yang
cepat ke pasar. Para FT232R dan FT245R adalah tambahan terbaru untuk jangkauan
tumbuh USB toUART dan USB untuk solusi FIFO konversi.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 261/275
tumbuh USB toUART dan USB untuk solusi FIFO konversi.
Rangkaian dasar FTDI FT232
Alat dan bahan :
1. Con USB 1 Pcs.
2. Kapasitor 1 Pcs.
3. FTDI FT232 1 Pcs.
4. Konektor IDC single 4 pin.
5. Pcb 5x3cm.
6. Solder.
7. Tenol.
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 262/275
Contoh gambar desain PCB nya :
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 263/275
Contoh rangkaian FTDI yang sudah jadi
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 266/275
Terlebih dahulu buat source baru, simpan dengan nama app USART.c
/*
===================================================================================
Inisialisasi USART Interrupt
Register UCSRA (USART Control and Status Register A):
Bit - Description
7 - RXC - USART Receive Complete
6 - TXC - USART Transmit Complete
5 - UDRE - USART Data Register Empty
4 - FE - Frame Error
3 - DOR - Data OverRun
2 - PE - Parity Error
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 267/275
2 PE Parity Error
1 - U2X - Double the USART Transmission Speed
0 - MPCM - Multi-Processor Communication Mode
Register UCSRB (USART Control and Status Register B):
Bit - Description
7 - RXCIE - RX Complete Interrupt Enable
6 - TXCIE - TX Complete Interrupt Enable
5 - UDREIE - USART Data Register Empty Interrupt Enable
4 - RXEN - Receiver Enable
3 - TXEN - Transmitter Enable
2 - UCSZ2 - Character Size
1 - RXB8 - Receive Data 8 bit
0 - TXB8 - Transmit Data 8 bit
Register UCSRC (USART Control and Status Register C):
Bit - Description
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 268/275
7 - URSEL - Register Select
6 - UMSEL - USART Mode Select
USSEL Description
0 - Asyncronous Operation
1 - Syncronous Operation
5-4 - UPM1:0 - Parity Mode
UPM1 UPM0 Description
0 0 Disable / No Parity
0 1 Reserved
1 0 Enable, Even Parity
1 1 Enable, Odd Parity
3 - USBS - Stop bit Select
USBS Description
0 - 1-bit
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 269/275
1 - 2-bit
2-1 - UCSZ1:0 - Character Size
UCSZ2 UCSZ2 UCSZ2 Description
0 0 0 5-bit
0 0 1 6-bit
0 1 0 7-bit
0 1 1 8-bit
1 0 0 Reserved
1 0 1 Reserved
1 1 0 Reserved
1 1 1 9-bit
0 - UCPOL - Clock Polarity
UCPOL Description
0 - Rising XCK Edge
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 270/275
1 - Falling XCK Edge
=================================================================================*/
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 271/275
UCSRB=0b10011000; // 0x98 With
Interrupt
UCSRC=0b10000110; // 0x86
}
}
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 272/275
Berikut contoh kode program pada main.c
unsigned char k;
#asm
.equ __lcd_port=0x15 // PortC
#endasm
#include <mega32.h>
#include <stdio.h>
#include <delay.h>
#include <lcd.h>
#include <app USART.c>
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 273/275
void main(void)
{
InitUSART(0);
lcd_init(16);
lcd_gotoxy(0, 0);
lcd_putsf("USB to Serial");
while (1)
{
// putchar('A'); // Send 'A' to USART
8/18/2019 Mini32 - Standard Format
http://slidepdf.com/reader/full/mini32-standard-format 274/275
puts("Selamat Mencoba"); // Send 'A' to USART
delay_ms(1000);
k=getchar(); // Waiting data
lcd_gotoxy(0, 1);
lcd_putchar(k);
}
}