PIC Basic Project

Sistem Mikrokontroler

 

Sejarah: “buat yang CINTA sejarah monggo dipun waos”…

Pada tahun 1969, Bob Noyce dan Gordon Moore mendirikan Intel Corporation membuat chip memori untuk mainframe industry computer. Pada tahun 1971, chip mikroprosesor 4040 yang pertama dibuat oleh Intel untuk konsorsium dua perusahaan Jepang. Chip-chip ini pada dasarnya didesain untuk mesin penghitung bernama Busicom, yaitu kalkulator portable pertama. Ini merupakan kalkulator sederhana yang hanya bias menambah dan mengurangi angka, 4 bit (satu nibble) pada suatu waktu. Chip 4040 meraih kesuksesan yang kemudian diikuti oleh mikroprosesor 8 bit 8008 oleh Intel. Ini adalah mikroprosesor sederhana dengan sumber yang terbatas, sedikit mengimplementasikan mekanisme interrupt dan alamat multipleks serta data busses. Mikroprosesor 8 bit pertama yang benar-benar bertenaga muncul di awal tahun 1974 sebagai chip 8080 Intel. Mikroprosesor ini memeiliki alamat dan data busses terpisah  dengan 64 K byte space alamat yang sangat terkenal di standar 1975. Mikroprosesor 8080 mikroprosesor pertama yang dipakai di rumah-rumah untuk computer personal yang bernama Altair. 8080 merupakan mikroprosesor yang meraih kesuksesan besar tapi dengan segera perusahaan lain mulai memproduksi chip mikroprosesor. Motorola mengenalkan chip 6800 8 bit  yang memiliki desain arsitektur berbeda dengan 8080 tapi juga sangat terkenal. Pada tahun 1976, Zilog mengenalkan mikroprosesor Z80 yang lebih canggih dari 8080. Pengaturan perintah pada mikroprosesor Z80 lebih kompatibel dengan 8080 dan ini membuat Z80 menjadi mikroprosesor paling sukses pada saat itu. Z80 digunakan pada berbagai aplikasi yang didasari mikroprosesor, termasuk computer rumah dan game konsol. Pada tahun 1976, Motorola menciptakan chip mikroprosesor bernama 6801 yang menggantikan chip 6800 dan beberapa chip yang dibutuhkan untuk membuat sebuah system computer yang lengkap. Ini merupakan langkah yang besar dalam evolusi mikrokontroler, dimana pada dasarnya computer hanya terdiri dari satu chip. Pada beberapa tahun berikutnya, kita melihat banyak chip-chip mikrokontroler yang lain di pasaran, seperti Intel 8048, 8049, 8051, Motorola 6809, Atmel 89C51, dll.

Istilah mikrokomputer digunakan untuk mendeskripsikan suatu system yang minimal terdapat sebuah mikroprosesor, program memori, data memori, dan input-output (I/O) .

Beberapa system mikrokomputer  memasukkan komponen tambahan, seperti timer, counter, converter dari analog ke digital, dll. Jadi, system mikrokomputer dapat berupa apapun, mulai dari computer besar dengan hard disk, floppy disk, dan printer, hingga hanya satu chip pengontrol saja.

Sistem Mikrokontroler

Sebuah mikrokontroler merupakan sebuah chip computer. Mikro menjelaskan bahwa piranti ini kecil, dan kontroler menjelaskan bahwa piranti ini dapat digunakan pada aplikasi control. Istilah lain yang digunakan untuk mikrokontroler adalah embedded controller, karena kebanyakan mikrokontroler dibuat untuk piranti yang dikontrolnya.

Sebuah mikroprosesor berbeda dari mikrokontroler di banyak hal. Perbedaan utama adalah bahwa mikroprosesor membutuhkan beberapa komponen lain untuk menjalankannya, seperti program memori dan data memori, piranti I/O, dan sirkuit pulsa eksternal. Di sisi lain, mikrokontroler memiliki semua chip pendukung yang bekerja sama di dalam satu chip. Semua mikrokontroler beroperasi pada suatu pengaturan perintah (atau program dari pengguna) yang disimpan dalam memori. Sebuah mikrokontroler menangkap perintah dari program memori satu per satu, menguraikam kode dari perintah-perintah itu, kemudian memunculkan operasi yang dibutuhkan.

Mikrokontroler telah diprogram menggunakan bahasa assembly dari piranti target. Walaupun bahasa assembly itu cepat, namun memiliki beberapa kelemahan. Sebuah program assembly terdiri dari mnemonic dan sangat sulit untuk mempelajari dan mengolah  program yang ditulis dengan menggunakan bahasa assembly. Selain itu, mikrokontroler dibuat oleh berbagai perusahaan berbeda sehingga memiliki bahasa assembly yang berbeda pula, dan pengguna harus mempelajari bahasa yang baru setiap kali mikrokontroler baru digunakan. Mikrokontroler dapat juga deprogram menggunakan bahasa tingkat tinggi, seperti BASIC, PASCAL, dan C. Bahasa tingkat tinggi memiliki keunggulan yaitu lebih mudah dipelajari daripada bahasa assembly.  Program yang sangat luas dan kompleks juga dapat dengan mudah dikembangkan menggunakan bahasa tingkat tinggi.

Pada umumnya, sebuah chip merupakan satu-satunya kebutuhan untuk menjalankan system mikrokontroler. Pada aplikasi praktisnya, komponen-komponen tambahan mungkin dibutuhkan untuk memungkinkan sebuah mikrokomputer untuk beradaptasi dengan lingkungannya. Dengan adanya keluarga PIC dari mikrokontroler, waktu pengembangan dari proyek elektronik telah berkurang beberapa jam. Mengembangkan sebuah proyek PIC berdasarkan mikrokontroler hanya membutuhkan tidak lebih dari 5-6 langkah.

  1. Ketik program ke dalam PIC
  2. Compile programnya
  3. Jika diinginkan, program bias disimulasikan di PC
  4. Masukkan program ke program memori PIC
  5. Desain dan rancang hardwarenya
  6. Uji proyeknya

Pada dasarnya, sebuah mikrokomputer mengeksekusi program pengguna yang dimuat dalam program memorinya. Di bawah control dari program data ini diterima dari piranti eksternal (input), dimanipulasi dan kemudian dikirim ke piranti eksternal (output). Contohnya, pada system control temperature oven yang berdasarkan mikrokontroler, suhu dibaca oleh mikrokomputer menggunakan sensor temperature. Kemudian mikrokomputer menjalankan pemanas atau kipas untuk mengendalikan dan menjaga temperature pada suatu nilai yang ditentukan.

Mikrokontroler merupakan alat yang berkekuatan tinggi yang memungkinkan desainer untuk menciptakan manipulasi data I/O yang rumit melalui program control. Mikrokontroler diklasifikasikan berdasarkan jumlah bit yang diprosesnya/ mikrokontroler 8 bit adalah yang paling terkenal dan digunakan di banyak aplikasi yang berdasarkan mikrokontroler; mikrokontroler 16 dan 32 bit adalah yang paling kuat, tapi biasanya lebih mahal dan tidak dibutuhkan pada berbagai bentuk aplikasi berukuran kecil hingga sedang, dimana pada umumnya menggunakan mikrokontroler.

Desain mikrokontroler  paling sederhana terdiri dari sebuah mikroprosesor, memori, dan I/O. mikroprosesor terdiri dari CPU dan CU. CPU adalah otak dari mikrokontroler dan inilah letak dari semua operasi aritmatik dan logic ditampilkan. CU mengendalikan operasi internal dari mikroprosesor dan mengirim sinyal control keluar ke bagian lain dari mikrokontroler untuk melaksanakan instruksi.

Memori adalah bagian yang penting dari suatu system mikrokontroler. Tergantung pada jenis yang digunakan, kita dapat mengklasifikasikan memori dalam dua kelompok: program memori dan data memori. Program memori menyimpan program yang ditulis oleh programmer dan memori ini biasanya non-volatile, atau data tidak akan hilang setelah daya dihilangkan. Data memori adalah tempat dimana data sementara yang digunakan di program, disimpan dan memori ini biasanya volatile, atau data akan hilang jika daya dihilangkan.

RAM

RAM berarti Random Access Memory. RAM adalah memori yang bermanfaat secara umum yang biasanya menyimpan data pengguna yang digunakan di program. RAM bersifat volatile. Hampir semua mikrokontroler memiliki jumlah RAM internal yang sama. 256 bytes adalah jumlah yang umum, walaupun beberapa mikrokontroler memiliki lebih atau kurang dari angka tersebut. Pada umumnya, memungkinkan untuk memperbesar memori dengan menambah chip memori eksternal.

ROM

ROM adalah memory yang hanya bisa membaca. Tipe memory ini biasanya menahan program atau data user yang tetap. Memory ROM di program di pabrik selama proses pembuatan dan kontennya yang tidak bisa diubah oleh pengguna. Memory ROM hanya berguna jika kita mengembangkan sebuah program dan menginginkan untuk menduplikasikannya beribu-ribu kali.

EPROM

Eprom adalah memory ROM yang dapat diubah-ubah secara terprogram. Ini mirip dengan ROM tetapi eprom dapat diprogram menggunakan sebuah alat pemrograman yang tepat. Memory Eprom memiliki sebuah jendela kaca kecil yang terletak diatas chip, dimana data dapat dihapus dibawah sinar ultraviolet. Banyak versi perkembangan dari Microcontroller itu dibuat menggunakan memory eprom dimana program yang dibuat dapat disimpan. Memori-memori itu dapat dihapus dan deprogram ulang kembali sampai pengguna puas dengan programnya. Beberapa versi dari Eprom yang dikenal adalah OTP (satu kali program) maksudnya dapat deprogram menggunakan sebuah alat pemrograman yang tepat tetapi memorynya tidak bisa dihapus.

EEPROM

EEPROM adalah ROM yang dapat dihapus secara terprogram menggunakan energy listrik yang merupakan sebuah memory yang tidak bisa dihapus dengan mudah. Memory-memory itu dapat dihapus dan juga deprogram dibawah control program. BIasanya EEPROM digunakan untuk menyimpan informasi konfigurasi, nilai maksimum dan minimum, mengindetifikasikan data, dsb. Beberapa Microcontroller telah tertanam memory EEPROM didalamnya ( Contohnya: PIC 16F84 yang memiliki sebuah EEPROM dengan ukuran 64 Byte dimana setiap Byte nya dapat deprogram dan dihapus secara langsung dengan bantuan software. Memory EEPROM biasanya sangat lambat dalam mentransfer data.

FLASH EEPROM

Flash EPROM adalah termasuk memory yang tidak mudah hilang dan sangat cepat dalam memprogram untuk menghapus dan menyimpan data.

Fitur-Fitur Microcontroller

Microcontroller yang berasal dari pabrikan yang berbeda-beda memiliki arsitektur dan kemampuan yang berbeda-beda pula. Beberapa mungkin cocok untuk sebuah aplikasi tertentu ketika microcontroller yang lain secara total tidak cocok untuk aplikasi yang sama. Fitur Hard Ware dari microcontroller secara umum digambarkan dalam bagian dibawah ini.

Tegangan Sumber

Kebanyakan microcontroller beroperasi pada tegangan standart sebesar 5V beberapa microcontroller dapat beroperasi pada tegangan 2,7V dan beberapa lagi akan mentoleransi tegangan 6V tanpa ada masalah.

Sebuah sikuit pengatur tegangan biasanya digunakan untuk mendapatkan tegangan power supply yang dibutuhkan ketika alat tersebut dioperasikan dari sebuah adaptor utama atau batre. Contohnya sebuah regulator 5V dibutuhkan jika microcontroller dioperasikan dari sebuah catu daya 5V menggunakan sebuah batre 9V.

Clock (Pulsa)

Semua microcontroller membutuhkan sebuah Clock Pulsa untuk beroperasi. Clock Pulsa biasanya disediakan oleh sebuah alat pewaktuan eksternal yang terhubung pada microcontroller. Kebanyakan microcontroller akan menghasilkan sinyal clock pulsa ketika sebuah Kristal dan 2 kapasitor kecil dihubungkan. Beberapa microcontroller akan beroperasi dengan menggunakan resonators atau pasangan kapasitor-resistor eksternal. Beberapa microcontroller lainnya telah tertanam sirkuit pewaktuan dan tidak membutuhkan komponen pewaktuan eksternal lagi.

Sebuah instruksi dieksekusi dengan menarik mengambil dari memori dan decoding itu. Ini biasanya memerlukan beberapa siklus clock dan dikenal sebagai siklus instruksi. Dalam mikrokontroler PIC siklus instruksi mengambil empat – periode jam. Jadi, mikrokontroler sebenarnya beroperasi pada clock rate yang merupakan seperempat dari frekuensi osilator yang sebenarnya.

Timer

Timer adalah bagian yang penting dari beberapa mikrokontroller. Timer pada dasarnya adalah sebuah counter yang dimotori dari pulsa clock eksternal atau dari osilator internal dari sebuah mikrokontroller. Sebuah timer bisa berukuran 8 Bit atau 16 Bit data bisa dimuat ke timer dibawah kontrol program dan timer bisa dihendtikan dan dinyalakan dengan kontrol program. Kebanyakan timer dapat dikonvigurasi untuk menghasilkan sebuah intrupsi ketika timer tersebut mencapai sebuah hitungan tertentu (biasanya timer dalam keadaan over flow).

Beberapa mikrokontroler menawarkan fasilitas untuk menangkap dan membandingkan dimana sebuah timer dimana sebuah nilai timer dapat dibaca ketika sebuah kejadian eksternal atau nilai timer dapat dibandingkan menjadi sebuah nilai yang ditentukan dan sebuah instruksi dapat dihasilkan ketika nilai ini didapat.

Watchdog

Kebanyakan mikrokontroller memiliki minimal satu fasilitas pengaman watchdog. Pengaman ini pada dasarnya adalah sebuah timer yang dibangkitkan oleh pengguna program dan sebuah preset terjadi jika program gagal untuk membangkitkan watchdog. Sebuah timer pengaman digunakan untuk mendeteksi sebuah masalah pada system seperti program yang berulang terus menerus. Sebuah watchdog adalah fitur pengaman yang mencegah program software untuk berpindah pindah dan berfungsi untuk menghentikan mikrokontroller dari mengeksekusi kode – kode yang tidak diinginkan. Fasilitas watchdog biasanya digunakan  pada system secara real time dimana hal tersebut dibutuhkan secara teratur untuk mengecek penghentian yang sukses dari satu atau lebih aktivitas.

Input Reset

Sebuah reset input digunakan untuk mereset sebuah mikrokontroler. Sebuah tindakan reset eksternal biasanya dicapai dengan menghubuingkan sebuah saklar tombol untuk mereset input seperti mikrokontroller tersebut dapat direset ketika tombol saklar ditekan.

Interupsi

Interupsi adalah konsep yang sangat penting dalam mikrokontroler. Sebuah interupsi menyebabkan mikrokontroler untuk merespon kepada eksternal dan internal kejadian dengan sangat cepat. Ketika sebuah interupsi menyebabkan mikrokontroller meninggalkan urutan normalnya dari eksekusi programnya dan melompat ke sebuah bagian khusu dari program, hal itu dikenal sebagai sebuah pelayanan servis yang rutin (ISR). Program yang terdapat di ISR dieksekusi dan setelah kembali dari ISR program urutan normal program kembali dijalankan.

ISR mulai dari sebuah alamat yang tetap dari memory program. Alamat ini juga dikenla dengan interup alamat vektor . contohnya, pada PIC mikrokontroller 16f84 alamat ISR bermulai dari 4 dalam memory program. Beberapa mikrokontroler  dengan fitur multi interup memiliki  hanya satu alamat vektor interrupt ketika beberapa mikrokontroller lainnya memiliki alamat vektor interrupt yang unik 1 untuk setiap sumber interrupt.

Brown Out Detector

Brown Out Detector juga merupakan hal yang umum ada pada beberapa mikrokontroller yang dapat mereset mikrokontroller apabila tegangan supply jatuh dibawah nilai nominal dari tegangan.

Pengubah analog ke digital

Sebuah pengubah analog ke digital digunakan untuk mengubah sebuah sinyal analog seperti sebuah tegangan menjadi sebuah bentuk digital sehingga dapat dibaca oleh mikrokontroller. Beberapa mikrokontroller memiliki A/D  converter yang tertanam didalamnya. A / D proses konversi harus dimulai oleh program pengguna dan mungkin diperlukan beberapa ratusan mikrodetik untuk konversi untuk menyelesaikan. A / D converter biasanya menghasilkan interrupt ketika konversi telah selesai utamanya program pengguna dapat membaca data yang diubah dengan cepat.A / D converter ini sangat berguna dalam aplikasi kontrol dan pemantauan sejak sensor paling (misalnya sensor suhu, sensor tekanan, sensor gaya, dll) menghasilkan tegangan output analog.

I/O Serial

Komunikasi serial (juga disebut komunikasi RS232) memungkinkan mikrokontroler yang akan terhubung ke mikrokontroler lain atau ke PC menggunakan kabel serial. Beberapa mikrokontroler memiliki built-in hardware yang disebut USART (Universal Synchronous Asynchronous Receiver-Transmitter-) untuk melaksanakan communicationinterface serial. Tingkat baud dan format data yang biasanya dapat dipilih oleh user program. Jika ada serial I / O hardware tidak diberikan, mudah untuk mengembangkan softwate untuk mengimplementasikan komunikasi data serial menggunakan I / O pin mikrokontroler. Kita akan lihat dalam Bab 4 cara menggunakan PicBasic dan pernyataan PicBasic Pro untuk mengirim dan menerima data serial dari pin dari mikrokontroler PIC.

Beberapa mikrokontroler menggabungkan SPI (serial Peripheral Interface) atau I2C (Inter Memadukan Connect) antarmuka hardware bus. Hal ini memungkinkan mikrokontroler untuk antarmuka ke perangkat lain yang kompatibel dengan mudah.

EEPROM data memori

EEPROM tipe memori data juga sangat umum di banyak mikrokontroler. Keuntungan dari sebuah memori EEPROM adalah bahwa programmer dapat menyimpan data non-volatile sedemikian memori, dan juga dapat mengubah data ini bila diperlukan. Misalnya, dalam aplikasi pemantauan suhu maksimum dan bacaan temperatur minimum dapat disimpan dalam memori EEPROM. Kemudian, jika power supply akan dihapus karena alasan apapun, nilai-nilai pembacaan terbaru masih akan tersedia dalam memori EEPROM.

LCD driver

driver LCD memungkinkan microcontoller untuk dihubungkan ke layar LCD extenal langsung. Driver ini tidak umum karena sebagian besar fungsi yang disediakan oleh mereka dapat diimplementasikan dalam perangkat lunak.

Komparator Analog

Komparator analog digunakan ketika dibutuhkan untuk membandingkan 2 tegangan analog meskipun sirkuit tersebut diimplemantasikan dalam PIC mikrokontroller yang tergolong mahal hal tersebut adalah suatu yang tidak umum didapat pada mikrokontroller lainnya.

Clock Pulsa Real Time

Clock pulsa real time membuat sebuah mikrokontroller memiliki informasi tanggal dan waktu yang absolute dan  menghitung secara terus menerus.

Mode Sleep

Beberapa mikrokontroller menawarkan fasilitas mode sleep dimana ketika mode ini dijalankan membuat mikrokontroller dalam keadaan berhenti oscillator internalnya dan konsumsi daya dikurangi pada sebuah tingkat yang sangat rendah.

Power On Reset

Beberapa mikrokontroller memiliki sirkuit power on reset yang tertanam didalamnya yang menjaga mikrokontroller dalam keadaan reset sampai semua sirkit internal di inisialisasi.

Operasi Daya yang rendah

Operasi daya rendah secara khusus penting dalam aplikasi portable dimana mikrokontroller dioperasikan menggunakan batre.

Arus yang tenggelam

Ini hal yang penting apabila mikrokontroller dihubungkan ke sbuah alat eksternal yang mungkin memiliki arus yang besar untuk mengoperasikannya. PIC mikrokontroller mendapatkan sumber arus sebesar 25 mA dari arus tiap keluaran port dari pin. Arus ini biasanya mencukupi untuk menyalakan lampu LED , lampu kecil, buzzer,  relay yang kecil, dll. Kemampuan arut  dapat ditingkatkan dengan menghubungkan transistor eksternal dengan mengganti sirkuit atau relay menjadi port keluaran.

MODEL RANCANGAN MIKROKONTROLER

Ada dua jenis model rancangan yang digunakan dalam mikrokontroler yaitu , model rancangan von Neumann dan harvard. Von neumann digunakan pada persentase mikrokontroler yang besar dan di sini semua instruksi dan data ruang memori terletak pada tempat yang sama sedangkan arsitektur harvard digunakan oleh mikrokontroler PIC, kode dan data berada di tempat terpisah dan ini memungkinkan kode dan data yang akan diambil secara bersamaan, mengakibatkan peningkatan performa.

RISC and CISC

Pengurangan  pada instruksi komputer dan  instruksi kompleks komputer mengacu pada instruksi set mikrokontroler. mikrokontroler PIC adalah perangkat berbasis RISC dan mereka tidak lebih dari 35 instruksi.dalam  mikrokontroler CISC baik data dan instruksi 8-bit mikrokontroler .CISC biasanya memiliki lebih dari 200 instruksi, data dan kode berada di tempat yang sama dan tidak dapat diambil secara bersamaan.

BAB 2

Jenis Mikrokontroler PIC

RISC dimodifikasi  oleh Harvard  dengan arsitektur dua tempat, menyediakan cepat dan desain fleksibel dengan sebuah jalur migrasi mudah dari hanya 6 pin ke 80 pin, dan dari 384 byte untuk 128 kbytes dari program mikrokontroler memory.

PIC yang tersedia dengan spesifikasi yang berbeda banyak tergantung pada :

1.jenis memory :flash, OTP,ROM.

2.input-output :4-18 pins,20-28 pins,32-44 pins.

3.ukuran memori:0.5-1 K,2-4 K,8-16 K

4.fitur khusus :CAN,USB,LCD

semua pic microcontrollers menawarkan fitur berikut :

1. instruksi RISC set dengan hanya segelintir petunjuk untuk belajar

2. digital I / O port

3. pada timer chip dengan 8-bit prescaler

4. sumber power-on reset timer

5. pengawas modus hemat daya

6. tinggi dan membenamkan arus

7. langsung, tidak langsung, dan mode pengalamatan relatif

8. jam antarmuka eksternal

9. data ram memori

Perangkat yang sama menawarkan fitur-fitur tambahan berikut:

1. saluran input analog

2. analog tambahan pembanding timer sirkuit

3. eeprom data memori

Simak

Baca secara fonetik

Titik penting untuk diingat adalah bahwa mungkin ada banyak model yang statisfy semua persyaratan di atas. Anda harus selalu berusaha untuk menemukan model yang statifies persyaratan minimum Anda dan satu yang tidak menawarkan dari Anda mungkin perlu. misalnya, jika Anda membutuhkan mikrokontroler, satu dengan 8 dan yang lainnya dengan 16I / O pin, Anda harus memilih satu dengan 8 I / O pin.

Meskipun ada beberapa ratus model mikrokontroler, keluarga bisa pecah ke dalam tiga kelompok utama, yaitu

1. 12-bit instruksi kata

2.14-bit instruksi kata

3.16-bit instruksi kata

 Semua tiga kelompok saham RISC model rancangan dan set instruksi yang sama, dengan tambahan beberapa instruksi yang tersedia untuk 14-bit, dan banyak lagi instruksi yang tersedia untuk model 16-bit. Instruksi menempati hanya satu kata dalam memori. instruksi dan data ditransfer pada tempat yang terpisah, sehingga kinerja sistem secara keseluruhan meningkat.

 Petunjuk 12 byte

             PIC 12C508: PIC ini berharga murah, 8-pin piranti dengan 512 x 12 EPROM memori program, dan 25 byte RAM data memori. Piranti dapat dioperasikan dengan masukan sinyal pulsa diatas 4 MHz dan terdiri dari 33 instruksi. Piranti ini memiliki 6 I/O port, 8-bit timer, watchdog timer, dan inernal kapasitor oscillator 4 MHz. salah satu kerugian dari mikrokontroler ini adalah pada memori EPROM dan tidak dapat menghapus maupun memrogaram ulang data program standar.

             PIC 16C5X: PIC ini merupakan salah satu awal PIC mikrokontroler . PIC ini memiliki piranti 18-pin dengan 384 x 12 EPROM memori program, 25-bit RAM data memori 12 I/O port , timer, dan sebuah watchdog. Beberapa kelompok dari jenis ini adalah PIC 16C56 dengan bentuk yang sama tetapi lebih banyak program memorinya (1024 x  12).  PIC 16C58A memiliki program memori (2048 x 12)  dan juga data memori (73-bit RAM).

Petunjuk 14-bit

            PIC memiliki banyak model mikrokontroler. Piranti ini didukung oleh PIC Basic dan PIC basic pro compiler. Kebanyakan piranti ini dapat dioperasikan dengan sinyal pulsa diatas 20MHz. pengaturan intruksi terdiri dari 35  intruksi. Piranti tersebut  menawarkan fitur internal dan eksternal sumber interrupt

PIC 16C554

            Mikrokontroler ini memiliki bentuk yang kecil dibanding PIC 16C54 tetapi memiliki intruksi 14-bit lebih besar, dia memiliki program memori (512 x 14) dan data memori 80-bit RAM. Terdapat 13 I/O dimana setiap pin dapat sumber atau 25mA arus rendah. Sebagai tambahan, fitur timer dan watchdog.

PIC 16F84

            Ini merupakan salah satu mikrokontroler yang sangat popular karena PIC ini memiliki waktu yang panjang dengan piranti 18-pin dan memiliki 1024 x 24 kecepatan program memori, 36 data RAM, 64 bit data memori yang tidak bisa hilang pada EEPROM jika daya dimatikan, 13 I/O pin,sebuah timer , sebuah watchdog , internal dan eksternal sumber interrupt. Timer berukuran 8-bit tapi dapat diprogram dengan membangun internal interrupts untuk tujuan waktu tertentu. PIC 16F84 dapat dioperasikan dengan Kristal atau resonator untuk actual waktu. Sebuah resistor-kapasitor dapat juga dapat digunakan sebagai piranti waktu untuk aplikasi ketika waktu tidak digunakan.

PIC 16F877

            Mikrokontroler ini memiliki piranti 40-pin dan salah satu mikrokontroler yang popular karena memiliki aplikasi yang lengkap. PIC ini menawarkan piranti 8192 x 14 kecepatan program memori, 368-bit RAM, 256-bit non-volatile EEPROM memori, 33 I/O pin, 8 multiplexed A/D dengan diubah menjadi 10-bit, PWM generator 3 timer penangkap analog dan pembanding sirkuit.

PIC 16F627

            PIC ini memiliki 18-pin dengan 1024 x 14 kecepatan program memori dengan piranti 224-bit RAM, 128-bit non-volatile memori EEPROM, 16 I/O pin, 2 bit timer, 1 timer 16-bit, sebuah watchdog, dan perbandingan sirkuit. Mikrokontroler ini sama dengan PIC 16F84 tetapi banyak memiliki I/O pin, dan lebih banyak program memori dan sedikit program RAM.dan selain itu, PIC 16F627 ini sangat cocok untuk aplikasi dengan membutuhkan lebih banyak timer.

PIC 16F676

            Mikrokontroler ini memiliki 14-pin sehingga dia sangat popular. PIC ini menawarkan 1024 x 14 kecepatan program memori, 64-bit RAM, 12 I/O pin, 128 bit di EEPROM, 8 multiplexed A/D converter, masing-masing 10-bit resolusi, 1 timer 8-bit, dan 1 timer 16-bit dan sebuah watchdog.

 PIC 16F73

            Mikrokontroler ini memiliki kekuatan 28-pin dengan 4096 x 14 kecepatan program memori, 192 bit RAM ,22 I/O pin,5 miltiplexed 8-bit A/D converters,2 timer 8-bit,1 timer 16-bit,watchdog,USART,dan C bus compatibility,piranti ini dikombinasikan A/D converter,digital I/O,dan serial I/O  dengan kapasitas 28-pin ukuran sedang.

Petunjuk 16-bit

                16-bit mikrokontroler adalah yang terbaik dari PIC mikrokontroler. Mikrokonteroler ini tidak dapat digunakan dengan menggunakan PicBasic  compiler, tetapi untuk sementara dapat menggunakan PicBAsic Pro untuk memprogramnya. Kebanyakan dari jenis ini dapat dioperasikan dengan sinyal pulsa diatas 40 MHz, mempunyai 33 I/O pin, dan 3 timer. PIC ini mempunyai 23 sampai 35 petunjuk di daftarnya ditemukan 14-bit mikrokontroler

Tabel dibawah ini menunjukan beberapa device dari jenis PIC ini.

mikrokontroler Program memori Data RAM Max speed (MHZ) I/O Ports A/D converter
17C43 4096 x 16 454 33 33
17C752 8192 x 16 678 33 50 12
18C242 8192 x 16 512 40 23 5
18C252 16384 x 16 1536 40 23 5
18C452 16384 x 16 1536 40 34 8

 

Semua memori dari PIC mikrokontroler adalah internal dan selalu tidak terlalu mudah untuk memperbanyak di memori eksternalnya. Tidak ada perangkat keras maupun lunak (software) spesial yang digunakan untuk memperpanjang program memori ataupun data memori.  Program memori cukup untuk projek kecil maupun sedang. Tetapi data memori umumnya tidak cukup untuk projek besar.

 Bagian Dalam PIC mikrokontroler

                Meskipun ada beberapa model dari jenis mikrokontroler ini, mereka membagi beberapa common. Seperti program memori, I/O ports, dan timer. Bebrapa device mempunyai tambahan fungsi seperti  A/D converter, USART dan yang lainnya.

                Program memori (flash)

                Program memori terdapat di PicBasic atau PicBasic Pro. Pada mikroprosesor dan mikrokontroler sebelumnya, program memori berupa EPROM yang berarti bahwa program memori harus dihapus menggunakan sinar UV sebelum dapat diprogram kembali. Kebanyakan PIC mikrokontroler akhir-akhir ini berdasar teknologi flash dimana chip memori  dapat dihapus dan diprogram ulang menggunakan piranti pemrogram. Kebanyakan PIC mikrokontroler dapat juga diprogram tanpa menghapus program sebelumnya dari sirkuit. Proses ini (disebut in-circuit serial programming, or ISP) meningkatkan kecepatan siklus pengembangan dan mengurangi biaya-biaya pengembangan. Walaupun program memori utamanya digunakan untuk menyimpan sebuah program, tak ada alasan kenapa program memori tidak bisa digunakan untuk menyimpan data konstan yang digunakan pada program.

PIC mikrokontroler dapat memiliki program memori dari 0.5 hingga lebih dari 16 K. Sebuah program PicBasic bisa memiliki beberapa halaman kode dan masih muat dalam program memori 1 K. PIC dikenal sebagai mokrokontroler 8-bit. Sebenarnya hal ini benar selama kapasitas data memori terfokus, yaitu sebesar 8-bit. Mikrochip menyebut 14-bit sebagai satu word, walaupun sebenarnya satu word adalah 16-bit.

Walaupun ukuran program memori dapat lebih besar dari 2 K, penyusun PicBasic hanya dapat bekerja dengan 2 K yang pertama, dimana dapat menjadi faktor batas pada proyek-proyek yang besar. Penyusun PicBasic Pro dapat menggunakan semua ruang program memori yang tersedia.

Ketika diberikan daya ke mikrokontroler atau ketika input MCLR diturunkan ke logika 0, proses eksekusi dimulai dari Reset vector, yang merupakan kata pertama dalam program memori. Jadi, instruksi pertama yang tereksekusi setelah reset adalah instruksi yang terletak pada alamat 0 dari program memori. Ketika program tersebut ditulis dalam bahasa assembly, pemrogram harus menggunakan instruksi khusus (disebut ORG) sehingga instruksi pertama yang tereksekusi dimuat ke alamat 0 dari program memori.

Data Memori (RAM)

Data memori digunakan untuk menyimpan semua variabel program. Ini adalah RAM yang berarti bahwa data akan hilang ketika daya dihilangkan. Kapasitas data memori adalah 8-bit, inilah alasan kenapa PIC mikrokontroler disebut mikrokontroler 8-bit.

Data memori pada PIC mikrokontroler terdiri dari 2, 4, atau lebih banyak tempat penyimpanan . Tempat penyimpanan yang dibutuhkan data memori dapat dipilih melalui kontrol program.

Register File Map dan Special Function Registers

Register File Map (RFM) adalah rancangan dari semua register yang tersedia dalam mikrokontroler dan sangat berguna saat memprogram suatu piranti, khususnya ketika menggunakan bahasa assembly. RFM dibagi menjadi 2 bagian : Special Function Registers (SFR) dan General Purpose Registers (GPR).

SFR adalah kumpulan dari register yang digunakan oleh mikrokontroler untuk mengendalikan operasi internal dari sebuah piranti. Tergantung dari kompleksitas piranti, nomor registrasi pada SFR beragam. Penting bagi programer untuk mengerti fungsi dari register SFR karena mereka akan menggunakan bahasa assembly dan bahasa tingkat tinggi.

(-) halaman 23-26

Untuk contoh diatas instruksi PIC basic yang dibutuhkan yaitu:

POKE $86,3

PEEK $06,CNT

TIMER REGISTER

Berdasarkan model yang digunakan beberapa mikrokontroller PIC hanya memiliki satu timer dan lainnya ada yang memiliki sampai 3 timer dibagian ini kita akan melihat pada PIC 16F84 yang hanya memiliki satu timer.

Timer pada PIC 16F84 adalah register 8 Bit (disebut TMR0) yang dapat digunakan sebagai timer atau counter. Ketika digunakan sebagai counter, kenaikan register tiap waktu dari clock pulsa digunakan untuk pin T0CK1 dari mikrokontroler. Ketika digunakan sebagai timer, kenaikan register pada tingkat yang ditentukan oleh frekuensi clock system dan prescaler dipilih oleh register OPTION_REG. tingkat prescaler bervariasi dari 1:2 sampai 1:256. Contohnya ketika menggunakan clock 4 MHZ , siklus intruksi dasar adalah 1 µs. jika kita pilih sebuah tingkat prescaler 1:16, counter akan naik setiap 16 µs.

Sebuah interupsi timer dihasilkan ketika timer overflow dari 255 sampai 0. Interup ini dapat diaktifkan dan dinonaktifkan dengan program kita. Contohnya jika kita membutuhkan untuk menghasilkan interup pada selang 200 µs menggunakan sebuah clok 4 MHZ , kita dapat memilih nilai prescaler dari 1:4 dan mengaktifkan interupsi timer. Tingkat clock timer kemudian menjadi 4 µs.

Oscillator timer watchdog bersifat independent dari clock CPU dan waktu keluarnya adalah 18 ms. Untuk mencegah sebuah kondisi time-out, watchdog tersebut harus direset secara periodic melalui software. Apabila timer watchdog tidak direset sebelum keluar time –out, mikroprosesor akan dipaksa melompat ke alamat reset.

TMR0 dan WATCHDOG

TMR0 dan WATCHDOG ditemukan disemua PIC mikrokontroller gambar 2.10 menunjukkan diagram fungsi dari sirkuit TMR0 dan WATCHDOG sumber input untuk TMR0 dipilih oleh Bit T0CS dari OPTION_REG dan hal itu dapat berupa dari fosc  Oscillator mikrokontroller yang dibagi dengan 4 atau dapat berupa sebuah clock eksternal yang dipakai pada RA4/T0CK1. Disini kita hanya melihat pada kegunaan Oscillator Internal apabila sebuah Kristal 4 MHz digunakan maka frekuensi Oscillator fosc /4 = 1 Mhz yang sesuai dengan periode T=10-6 s. Kemudian TMR0 dipilih sebagai sumber untuk prescaler dengan mengosongkan Bit PSA dari OPTION_REG. Nilai prescaler yang dibutuhkan dipilih oleh Bit PS0 ke Bit PS2 sebagaimana yang ditunjukkan pada gambar 2.8. Bit PSA kemudian dikosongkan menjadi 0 untuk memilih sebuah prescaler untuk timer. Semua Bit dikonfigurasikan sekarang dan TMR0 Register naik setiap kali sebuah pulsa digunakan oleh oscillator internal. Register TMR0 lebarnya 8 Bit dan dapat mengkitung sampai 255 kemudian menimbulkan sebuah kondisi yang overflow dan meneruskan perhitungan dari 0 ketika TMR0 berubah dari 255 ke 0, akan menghasilkan sebuah interupsi timer jika interupsi timer dan interup global tersebut aktif dengan memuat sebuah nilai kedalam register TMR0 kita dapat mengontrol perhitungan sampai sebuah overflow terjadi. Berikut adalah rumus dari waktu overflow :

Waktu Overflow = 4 x Tosc x prescaler x (256-TMR0)

Dimana waktu overflow satuannya adalah µs

Tosc  adalah periode oscillator yang satuannya µs

Prescaler adalah nilai prescaler yang dipilih menggunakan OPTION_REG

TMR0 adalah nilai yang dimasukkan kedalam register TMR0

Contohnya anggaplah bawa kita menggunakan sebuah Kristal 4 MHz dan prescaler yang dipilih adalah 1 : 8 dengan menyeting Bit PS2:PS0 ke “010”. Juga anggaplah bahwa nilai yang dibuat kedalam timer register TMR0 adalah decimal 100. Waktu overflow kemudian adalah :

4Mhz clock memiliki periode, T = 1 / f = 0,25 µs

Dengan menggunakan formula diatas maka :

Waktu overflow = 4×0,25x8x(256-100)=1248 µs

Kemudian timer akan mengalami overflow setelah 1,248 µs dan sebuah intrup timer akan dihasilakan jika interup timer dan interup global aktif. Apa yang kita butuhkan secara normal adalah untuk mengetahui berapa nilai untuk memuat kedalam register TMR0 untuk waktu yang diperlukan oleh overflow. Ini dapat kita hitung dengan memodifikasi persamaan 2.1 menjadi :

TMR0=256-(waktu overflow) / (4 x Tosc x prescaler)

Tabel 2.5 memberikan nilai yang arus dimuat kedalam register TMR0 untuk waktu overflow yang berbeda-beda. Pada tabel ini sebuah Kristal 4MHz dianggap dan tabel memberikan sebagai sebuah nilai prescaler yang diubah dari  2 ke 256.

TMR1

Meskipun TMR1 adalah timer dasar yang ditemukan hampir disemua PIC mikrokontroller, beberapa alat memiliki beberapa timer contohnya TMR0, TMR1 dan TMR2. Timer tambahan memberikan fungsi tambahan bagi mikrokontroller pada bagian ini operasi dari TMR1 akan dijelaskan secara detail.

TMR1 adalah timer 16Bit yang terdiri dari 2 Register 8 Bit TMR1H dan TMR1L. sebagai mana yang ditunjukkan pada gambar 2.11 sebuah prescaler digunakan dengan TMR1 dan nilai prescaler yang tersedia hanya 1,2,4 dan 8.

Register T1C0N mengontrol operasi dari TMR1 definisi Bit dari register ini ditunjukkan pada gambar 2.12. TMR1 dapat beroperasi pada timer atau juga pada counter yang dipilih dengan Bit pada TMR1CS dari T1C0N. Ketika beroperasi pada mode timer, TMR1 naik setiap frekuensi oscillator atau fosc / 4. TMR1 dapat diaktifkan atau dinon aktifkan dengan menyeting atau menghapus kontrol bit dari TMR10N. TMR1 dapat menghitung dari 0 sampai 65535 dan menghasilkan sebuah overflow ketika berubah dari 65535 ke 0 sebuah interup timer dihasilkan jika interup timer satu mengaktifkan Bit TMR1E.

Bagian kedua dari ADCON0 terdiri dari 3 bit CHS2, CHS1, dan CHS0. Bagian ketiga dari ADCON0 adalah bit GO/DONE. Bit ini memiliki dua fungsi: yang pertama, dengan mengatur bit, maka akan memulai percakapan A/D. Kedua, bit dibersihkan ketika percakapan selesai dan bit ini dapat dicek untuk melihat apakah percakapan telah selesai atau belum.

Bagian keempat dari ADCON0 adalah bit ADON yang mengatur nyala konverter A/D pada sirkuit. ADRESH dan ADRESL adalah hasil register konverter A/D. ADRESL adalah byte rendah dan ADRESH ada 2 bit di atasnya.

ADCON1 adalah register kontrol A/D yang kedua. Register ini mengendalikan format dari data yang diubah dan mode dari input PORTA.

Sirkuit Osilator

Sirkuit osilator digunakan untuk menyediakan mikrokontroler dengan pulsa. Pulsa dibutuhkan untuk mengeksekusi program pada mikrokontroler.

PIC mikrokontroler memiliki sirkuit osilator dan osilator ini dapat berjalan pada salah satu dari 5 mode di bawah ini :

  • LP – Lower power crystal
  • XT – Crystal/resonator
  • HS – High-speed crystal/resonator
  • RC resistor – capacitor
  • Tidak ada komponen eksternal (hanya beberapa PIC mikrokontroler)

Pada mode LP, XT, atau HS, osilator eksternal dapat dihubungkan ke input OSC1. Osilator eksternal dapat berupa osilator berbahan dasar kristal, atau gerbang logika sederhana dapat digunakan untuk mendesain sirkuit osilator.

Operasi Kristal

Pada mode operasi ini, sebuah kristal eksternal dan dua buah kapasitor dihubungkan dengan input OSC1 dan OSC2 pada mikrokontroler 

 

 

 

 

 

 

 

 

Daftar Pustaka:

Ibrahim, Dogan.2007.PIC BasicPro Projects.NewNews.Burlington:USA.

Penampakan Buku:

Bukune

Comments
4 Responses to “PIC Basic Project”
  1. Arif Indriyanto says:

    Thx infonya. Lagi nyari info ttg watchdog, bisa jadi referensi tambahan

  2. ibnu khaerudin says:

    Cie cie mba lin😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

  • Trying To Be Consisten

    Let's make your self consistance in over view, and carefuly in manage emotion..:))

  • Thank You

    I just wanna say thank to every people surround of me who gave me many new knowledge that build my mature...^-^
  • Sorry ….

    I am sorry for every mistake I made in every time I passed away...
  • Please Help Me…

    I am a beginer in a writing a blog need too many your help as a reader by leave your comments here. Your comments will be an equipment to build my knowledge.
%d bloggers like this: