Belajar Mikrokontroler PIC16F877A

Mikrokontroler PIC16F877A merupakan salah satu mikrokontroler dari keluarga PIC micro yang popular digunakan sekarang ini, mulai dari pemula hingga para profesional. Hal tersebut karena PIC16F877A sangat praktis dan menggunakan teknologi FLASH memori sehingga dapat di program-hapus hingga seribu kali. Keunggulan mikrokontroler jenis RISC ini dibanding dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada kecepatan dan kompresi kodenya. Selain itu, PIC116F877A juga tergolong praktis dan ringkas karena memiliki kemasan 40 pin dengan 33 jalur I/O.





Fitur-fitur pada PIC16F877A



* RISC CPU yang mempunyai performance tinggi

* Hanya 35 jenis instruksi yang perlu dipelajari

* Semua instrujsi mempunyai siklus tunggal kecuali untuk instruksi percabangan.

* Kecepatan Instruksi: DC - 20 MHz clock input DC - 200 ns instruction cycle

* 8K x 14 words of FLASH Program Memory, 368 x 8 bytes of Data Memory (RAM) , 256 x 8 bytes of EEPROM Data Memory

* Pinout compatible dengan PIC16C73B/74B/76/77

* Interrupt (14 sumber interrupt)

* Delapan level hardware stack

* Direct, indirect dan relative addressing modes

* Power-on Reset (POR)

* Power-up Timer (PWRT) dan Oscillator Start-up Timer (OST)

* Watchdog Timer (WDT) dengan on-chip RC oscillator

* Programmable code protection

* Power saving SLEEP mode

* Selectable oscillator options

* Low power, high speed CMOS FLASH/EEPROM technology

* Fully static design

* In-Circuit Serial Programming (ICSP) hanya dengan dua pin

* Single 5V In-Circuit Serial Programming capability

* Processor read/write access to program memory

* Wide operating voltage range: 2.0V to 5.5V

* High Sink/Source Current: 25 mA

* Commercial, Industrial and Extended temperature ranges



Peripheral Features:



* Timer0: 8-bit timer/counter dengan 8-bit prescaler

* Timer1: 16-bit timer/counter dengan prescaler, dapat di-increment selama proses SLEEP dengan external crystal/clock

* Timer2: 8-bit timer/counter dengan 8-bit period register, prescaler dan postscaler

* Dua Capture, Compare, PWM modules (Capture is 16-bit, max. resolution is 12.5 ns , Compare is 16-bit, max. resolution is 200 ns , PWM max. resolution is 10-bit)

* 10-bit multi-channel Analog-to-Digital converter (ADC)

* Synchronous Serial Port (SSP) dengan SPI (Master mode) dan I2C (Master/Slave)

* Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) dengan 9-bit address detection

* Parallel Slave Port (PSP) 8-bits wide, dengan external RD, WR and CS controls (40/44-pin only)

* Brown-out detection circuitry untuk Brown-out Reset (BOR)



Deskripsi Pin-Pin PIC16F877A



Mikrokontroler PIC16F877A di produksi dalam kemasan 40 pin PDIP (Plastik Dual In Line Package) maupun 40 pin SO (Small Outline). Namun yang banyak terdapat dipasaran adalah kemasan PDIP. Pin-pin untuk I/O sebanyak 33 pin, yang terdiri atas 6 pada Port A, 8 pada Port B, 8 pada Port C, 8 pada Port D, 3 pada Port E. Ada pula beberapa Pin pada mikrokontroler yang memiliki fungsi ganda.



















Tulis sejarah mu sendiri

Pernah suatu ketika saya mendapat message dari komunitas jejaring sosial yang saya ikuti, yang bercerita tentang "seorang nenek pengumpul daun".

Pesan itu menceritakan dalam suatu masjid kota di daerah jawa, ada perempuan tua yang setelah menunaikan sholat ashar lalu pergi ke halaman masjid itu dan mulai mengumpulkan daun - daun kering yang berserakan di halaman masjid nan megah itu, kegiatan itu berlangsung terus menerus sampai ketika pengurus - pengurus masjid itu mengambil keputusan bahwa meraka lah yang akan membersihkan daun-daun kering yang berserakan itu sebelum sang nenek tiba di masjid.

Setibanya nenek tersebut dimasjid itu, ia langsung menunaikan sholat ashar dan setelah sholat ashar mulai lah sang nenek untuk membersihkan halaman masjid namun sesampainya di halaman masjid ia lihat seluruh halaman masjid tersebut sudah bersih. nenek tersebut lalu menangis, lalu salah satu ustad dimasjid itu bertanya kepada nenek " wahai nenek, kenapa anda menangis bukankah halaman ini sudah bersih dari daun - daun kering sehingga ini akan meringankan pekerjaanmu dan engkau bisa ber istirahat". sang nenek pun menjawab " pak kyai, saya ini orang yang bodoh, saya juga bukan orang yang kaya yang bisa menginfaqkan harta saya ke jalan Allah, ibadah saya juga pas-pasan dan belum tentu diterima oleh Gusti Alloh.. tapi sungguh ketika saya mengumpulkan daun yang berserakan di masjid ini, setiap saya mengambil satu daun saya bershalawat kepada kanjeng Nabi dan saya berharap daun - daun ini bisa menjadi saksi saya di pengalidan akhirat kelak. dan semoga kanjeng nabi mau memberi syafaat kepada saya..."

Akhirnya setelah membaca pesan itu saya berkesimpulan bahwa untuk melakukan kebaikan itu mudah. dan nenek tersebut sudah mencatatkan sendiri sejarahnya dengan amalan-amalan khasnya..Nenek tersebut bukan hanya meneladani sifat -sifat mulia Rasulullah tapi juga meneruskan keikhlasan- keikhlasan generasi sahabat dalam beramal.

Abu Bakar rela meninggalkan seluruh hartanya dan menemani Rasulullah hijrah dengan resiko bahaya yang luar biasa.
Hatim rela tidur dalam perut lapar asalkan para tamunya kenyang
Umar bin Khatab keliling kota mekah pada setiap malam hanya untuk memastikan bahwa rakyatnya tidur dalam keadaan kenyang.
Bilal rela ditimpa batu besar diatas padang pasir yang panas, hanya untuk mempertahankan satu kata.... "AHAD...AHAD".

Abu Thalhah menjadikan dirinya sebagai tameng pada saat perang Uhud untuk melindungi Rasulullah dari gempuran anak panah.


"Teladan teladan itu ibarat bintang - bintang, bahkan lebih terang"

Lakukanlah kebaikan dan tulis sejarahmu sendiri..


salam santun......

Komitmen Muslim Sejati

komitmen
Buku ini terbagi atas dua bagian. Bagian pertama memaparkan karakteristik yang harus dimiliki oleh seorang muslim, sehingga ia bisa benar-benar menjadi muslim. Bagian ini menjelaskan syarat-syarat yang harus dipenuhi oleh siapa saja yang menyatakan diri sebagai pemeluk Islam. Bagian pertama ini bertujuan menjawab semua pertanyaan dan menjelaskan apa tuntutan yang dikehendaki Islam dari setiap muslim agar pengakuannya sebagai muslim benar dan sunguh-sungguh. Adapun bagian kedua buku ini menjelaskan kewajiban memperjuangkan Islam dan berafiliasi kepada pergerakan Islam.
Download selengkapnya disini

Simulator Mikrokontroler PIC

Bagi yang pengen belajar mikrokontroler keluarga PICmikro keluaran microchip.inc
dapat menggunakan software realpic simulator untuk mensimulasikan script program yang telah anda buat sebelum di downloadkan ke mikrokontroler.
Silahkan di download
RealPicSimulator.zip

Sistem Minimum ATMEGA 8535

Pada artikel sebelumnya telah membahas tentang fitur - fitur yang ada pada mikrokontroler ATMEGA 8535, lalu pengenalan Basic Compiler [BASCOM] sebagai aplikasi untuk menuliskan perintah - perintah ke mikrokontroler dalam bahasa basic, maka kali ini akan dibahas bagaimana cara mengoperasikan mikrokontroler ATMEGA 8535 secara Hardware.

Untuk dapat menggunakan mikrokontroler maka diperlukan rangkaian minimum, agar mikrokontroler tersebut dapat digunakan, rangkaian minimum tersebut minimal mikrokontroler itu sendiri, ossilator [ jika ingin menggunakan osilator eksternal], catu daya.

Berikut gambar sistem minimum mikrokontroler ATMEGA 8535




Selamat Belajar.....
Salam Santun.....

Kontrol Program dalam BASCOM AVR

Untuk control program dalam BASCOM AVR sama seperti pada visual basic karena memang BASCOM dan VB kesemuanya memang berbasis bahasa basic. Berikut adalah beberapa control program yang sering digunakan dalam pemroraman dengan BASCOM AVR.



  1. IF ……THEN

Dengan menggunakan if…then kita dapat membuat program percabangan. Sintaks dalam penulisannya sebagai berikut:

IF THEN

.

.

END IF

Jika terdiri dari lebih dari satu kondisi maka sintaks penulisannya sebagai berikut:

IF THEN

ELSEIF THEN

.

.

ELSEIF THEN

ELSE

END IF

  1. SELECT….CASE

Fungsi select…case hampir sama fungsinya dengan if…then,karena sama-sama dapat digunakan sebagai percabangan. Namun pada select…case memiliki kelebihan yaitu kemudahan dalam penulisan program. Berikut sintaks penulisannya:

SELECT CASE variable

CASE :

CASE :

.

.

CASE :

CASE ELSE :

END SELECT

  1. DO…LOOP

Perintah do…loop digunakan untuk mrmbuat program perulangan, ibarat arus dalam satu loop tertutup yang selalu berputar terus menerus. Untuk membatasi perulangan dalam perintah do…loop dapat digunakan do…loop until. Berikut sintaks penulisannya.

DO

LOOP

Dan ketika kita ingin membatasi perulangannya maka sintaks penulisannya sebagai berikut:

DO

LOOP UNTIL

  1. FOR…NEXT

Sama seperti do…loop, perintah for…next digunakan untuk membuat perulangan. Namun pada perintah for…next nilai awal, akhir dan tingkat kenaikan dalam proses perulangannya bisa kita tentukan. Berikut sintaks penulisannya:

FOR variable = nilai_awal TO nilaiakhir [STEP value]

NEXT

  1. GOSUB

Dengan perintah GOSUB maka program akan melompat ke subrutin lalu menjalankan program dalam subrutin tersebut hingga return. Perintah return akan menggembalikan program tersebut pada titik sebelum program tersebut melompat ke subrutin. Berikut contoh pemakaiannya:

PortA =&HFF

GOSUB flipflop

END

Flipflop:

PortA =&HFF

Wait 1

PortA =&H00

Wait1

RETURN

  1. GOTO

Perintah goto hampir sama dengan perintah GOSUB namun pada perintah GOTO tidak memerlukan perintah return, sehingga programnya tidak akan kembali ke titik dimana perintah GOTO berada. Berikut sintaks penulisannya:

GOTO label

Label:

Selamat belajar…

Salam santun..

Dasar Pemrograman Mikrokontroler dengan BASCOM AVR

Seperti yang kita ketahui, mikrokontroler merupakan single chip computer yang dapat deprogram, lalu bagaimana caranya agar mikrkontroler dapat deprogram. Sekarang sudah banyak sekali compiler – compiler [penerjemah] untuk memprogram mikrokontroler jadi kita dapat menggunakan bahasa tingkat tinggi untuk memprogram mikrokontroler. Dan kali ini kita akan membahas pemrograman mikrokontroler dengan menggunakan bahasa Basic dengan menggunakan compiler BASCOM AVR [basic compiler] untuk keluarga AVR.

Type Data

Setiap variable dalam BASCOM AVR memiliki type data yang menunjukkan muatan atau besarnya memoriyang terpakai olehnya. Berikut tipe data pada BASCOM AVR

Tipe data

Ukuran [byte]

Range

Bit

1/8

-

Byte

1

0-225

Integer

2

-32.768 samapai 32.768

Word

2

0-65535

Long

4

-2147483648 sampai 2147483648

Single

4

-

String

- 254 byte

-

Variable

Dalam pemrograman variable berfungsi sebagai tempat penyimpanan data sementara. Berikut aturan –aturan penamamaan variable dalam Bascom AVR

  1. Nama variabelmaksimum 32 karakter
  2. Karakter bias berupa angka atau huruf
  3. Nama sebuah variable harus dimulai dengan huruf
  4. Nama variable tidak boleh menggunakan kata-kata yang sudah ada pada bascom baik sebagai perintah, pernyataan ataupun operator misalnya integer, and, or, dll

Alias

Alias digunakan untuk mempermudah programmer dalam memrogram. Karena alias dapat digunakan untukmenggati nama variable yang telah baku, seperti pin atau port pada mikrokontroler. Contoh penggunaan alias:

Lampu alias pinA.1

Array

Dengan menggunakan array kita bisa menggunakan sekumpulan data dengan nama dan tipe yang sama.untukemnggunakan variable array, kita harus mengunakan indeks berupa angka. Proses pendeklarasian array sama dengan proses pendeklarasian variable, perbedaanya hanya pada array kita juga mendeklarasikan jumlah elemennya. Berikut concoh pemakai array:

Dim lampu(10) as byte

Dim a as integer

For a = 1 to 10

b(a)=a

portA=b(a)

penjelasan:

program diatas adalah membuat array dengan nama lampu yang berisi 10 elemen kemudian diisikan ke nilai b , lalu elemen-elemen array tadi dikeluarkan ke portA.

Selamat belajar….

Salam santun..

Program Running Led dengan Bascom AVR

Program Running led adalah program sederhana yang mudah dibuat dan dimengerti. Dalam program running led kita menggunakan 8 buah led yang dihubungkan dengan secara parallel, seperti gambar dibawah ini

Gambar diatas belum termasuk system minimum mikrokontroler ATMEGA 8535, jadi silahkan dibuat system minimumnya terlebih dahulu. Dari gambar kita lihat led terhubung pada PORTA, dari PORTA.0 – PORTA.7. led dihubungkan secara parallel dengan masing-masing kutub katoda led semuanya terhubung ke ground. Artinya led akan hidup jika logika pada PORTA [high], rangkaian parallel led tersebut biasa disebut dengan common katoda.

Berikut Listing Programnya:

$regfile = “m8535.dat”
$crystal = 12000000

Dim x as byte

Do
PortA= 1
Waitms 100
For x = 1 to 8
Shift PortA, Left,1
Waitms 100
Next
Loop

Penjelasan Program

Dua baris pertama dalam program menunjukkan mikrokontroler yang kita gunakan dan crystal osilator yang kita pakai. PortA = 1 berarti logika pada PortA = 00000001 artinya hanya PortA.0 yang berlogika 1. For x = 1 to 8 berarti aka nada perulangan sebanyak 8 kali. Perintah shift PortA, Left, 1 digunakan untuk merotasi nilai bit pada portA sebanyak 1 kali kekiri.

Coba anda simulasikan Program ini menggunakan simulasi pada BASCOM AVR.


Selamat Mencoba…
Salam santun..