Showing posts with label home. Show all posts
Showing posts with label home. Show all posts

MIKROKONTROLER

BELAJAR SENDIRI MIKROKONTROLER LENGKAP (Volume 1)



BAB KONSEP DASAR MIKROKONTROLER
1.         Umum.   Dengan  memahami bagian-bagian utama dan fungsi bagian-bagian utama dari mikrokontroler secara umum untuk keluarga tertentu merupakan pedoman pemahaman  konsep dasar bagaimana prinsip kerja suatu mikrokontroler.
2.         Deskripsi Mikrokontroler.  Pemahaman konsep dasar dari mikrokontroler ditunjukkan pada Gambar 2.1 Diagram blok mikrokontroler umum.
Gambar 2.1 Diagram blok mikrokontroler umum
Masing-masing bagian tersebut saling dihubungkan melalui internal bus, umumnya terdiri dari 3 bus yaitu address bus, data bus dan control bus.
Masing-masing bagian memiliki fungsi-fungsi :
            a.         Register.        Register adalah suatu tempat penyimpanan (variabel)            bilangan bulat 8 atau 16 bit. Pada umumnya register jumlahnya banyak,         masing-masing ada yang memiliki fungsi khusus dan ada pula yang memiliki        kegunaan umum. Register yang memiliki fungsi khusus misalnya adalah    register timer yang berisi data penghitungan pulsa untuk timer, atau register           pengatur mode operasi counter (pencacah pulsa). Sedangkan register yang             bersifat umum digunakan untuk menyimpan data sementara yang diperlukan untuk proses penghitungan dan proses operasi mikrokontroler. Register dengan kegunaan umum dibutuhkan mengingat pada saat yang bersamaan     mikrokontroler hanya mampu melakukan operasi aritmatika atau logika hanya       pada satu atau dua operand saja. Sehingga untuk operasi-operasi yang          melibatkan banyak variabel harus dimanipulasi dengan menggunakan          variabel-variabel register umum.
            b.         Accumulator. Merupakan salah satu register khusus yang berfungsi          sebagai operand umum proses aritmetika dan logika.
            c.         Program Counter.    Merupakan salah satu register khusus yang         berfungsi sebagai pencacah/penghitung eksekusi program mikrokontroler.
            d.         ALU (Arithmetic and Logic Unit).        ALU memiliki kemampuan mengerjakan proses-proses aritmatika (penjumlahan, pengurangan, perkalian,      pembagian)   dan  operasi logika (misalnya AND, OR, XOR, NOT) terhadap    bilangan bulat 8 atau 16 bit.
            d.         Clock Circuits.          Mikrokontroler adalah rangkaian logika sekuensial, dimana proses kerjanya berjalan melalui sinkronisasi clock.  Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh bagian            rangkaian.
            e.         Internal   ROM  (Read Only Memory).   Merupakan  memori penyimpan      data yang isinya tidak dapat diubah atau dihapus (hanya dapat             dibaca). ROM            biasanya diisi dengan program untuk menjalankan         mikrokontroler segera         setelah power dinyalakan, dan berisi data-data konstanta yang diperlukan oleh         program. Isi ROM tidak dapat hilang walaupun power dimatikan.
            f.          Internal    RAM    (Random Access Memory).    Merupakan  memori penyimpan data yang isinya dapat diubah atau dihapus. RAM biasanya berisi data-data variabel dan register. Data yang tersimpan pada          RAM bersifat hilang jika catu daya yang terhubung padanya dimatikan.
            g.         Stack Pointer. Stack adalah bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data secara khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan metode acak. Karena data yang masuk ke         dalam stack pada urutan yang terakhir adalah data yang pertama kali dibaca   kembali. Stack Pointer berisi offset dimana posisi data stack yang terakhir           masuk (atau yang pertama kali dapat diambil).
            h.         I/O  (input/output) Ports.       Merupakan sarana yang dipergunakan oleh     mikrokontroler untuk mengakses peralatan-peralatan lain di luar dirinya, berupa pin-pin yang dapat berfungsi untuk mengeluarkan data digital ataupun menginputkan data.
            i.          Interrupt circuits.       Adalah rangkaian yang memiliki fungsi untuk mengendalikan sinyal-sinyal interupsi baik internal maupun eksternal. Adanya        sinyal interupsi akan menghentikan eksekusi normal program mikrokontroler            untuk selanjutnya menjalankan sub-program untuk melayani interupsi tersebut.
            Diagram blok tersebut tidaklah selalu sama untuk setiap jenis mikrokontroler.       Beberapa mikrokontroler menyertakan rangkaian ADC (Analog to Digital         Converter) di dalamnya, ada pula yang menyertakan port I/O serial di             samping port I/O paralel yang sudah ada.
3.         Cara Kerja Mikrokontroler.      Prinsip kerja  mikrokontroler adalah  :
a.         Berdasarkan nilai yang berada pada register Program Counter, mikrokontroler mengambil data pada ROM dengan address sebagaimana nilai    yang tertera pada Program Counter. Selanjutnya Program Counter ditambah             nilainya dengan 1 (increment) secara otomatis.  Data yang diambil tersebut            adalah urutan instruksi program pengendali mikrokontroler yang sebelumnya    telah dibuat oleh pemakai. 
b.         Instruksi tersebut diolah dan dijalankan. Proses pengerjaan bergantung   pada jenis instruksi: bisa membaca, mengubah nilai-nilai pada register, RAM,             isi port atau melakukan pembacaan dan dilanjutkan dengan pengubahan data. 
c.         Program Counter telah berubah nilainya (baik karena penambahan           otomatis sebagaimana pada langkah 1 di atas atau karena pengubahan pada         langkah b. Selanjutnya yang dilakukan mikrokontroler adalah mengulang       kembali siklus ini pada langkah 1. Demikian seterusnya hingga power        dimatikan.
            Dari pengertian di atas dapat disimpulkan bahwa pada dasarnya unjuk kerja mikrokontroler sangatlah bergantung pada urutan instruksi yang dijalankannya, yaitu program yang ditulis di ROM.
            Dengan membuat program yang bermacam-macam, maka tentunya mikrokontroler dapat mengerjakan proses yang bermacam-macam pula. Fasilitas-fasilitas yang ada misalnya timer/counter, port I/O, serial port, Analog to Digital Converter (ADC) dapat dimanfaatkan oleh program untuk menghasilkan proses yang diinginkan.  Misalnya saja ADC dipergunakan oleh sebuah mikrokontroler pengendali alat ukur digital untuk mengukur tegangan sinyal input. Kemudian hasil pembacaan ADC diolah untuk kemudian dikirimkan ke sebuah display yang terhubung pada port I/O, menampilkan hasil pembacaan yang telah diolah. Proses pengendalian ADC, pemberian sinyal-sinyal yang tepat pada display, kesemuanya dikerjakan secara berurutan pada program yang ditulis di ROM.
            Penulisan program mikrokontroler pada umumnya adalah menggunakan bahasa assembly untuk mikrokontroler yang bersangkutan (setiap mikrokontroler memiliki instruksi bahasa assembly yang berlainan). Kemudian dengan bantuan sebuah komputer, bahasa assembly tersebut diubah menjadi bahasa mesin mikrokontroler, dan disalin ke dalam ROM mikrokontroler.
            Pada buku ini akan dibahas mikrokontroler dari keluarga MCS-51, dengan beberapa contoh aplikasi sederhana. Selanjutnya dari pengertian yang didapat, diharapkan dapat dikembangkan sendiri aplikasi-aplikasi lain sebagaimana yang diinginkan.
BAB KELUARGA MIKROKONTROLER MCS-51
4.         Umum.           Keluarga mikrokontroler MCS-51 terdiri dari 8031, 8032, 8051, 8052, 8751, 8752, 8951 dan 8952. Masing-masing berbeda dalam konfigurasi internalnya. Perbedaan pokok adalah bahwa 8031 dan 8032 tidak memiliki internal ROM, 8751 dan 8752 jenis internal ROM-nya adalah EPROM (Erasable & Programmable ROM) sedangkan 8951 dan 8952 jenis internal ROM-nya adalah PEROM (Flash Programmable and Erasable ROM).
Keluarga mikrokontroler MCS-51 memiliki konfigurasi dasar sebagai berikut :
            a.         Parallel I/O Port 8 bit  (P0-P3)
            b.         Serial Full-Duplex Asynchronous  I/O  Port 
            c.         Internal Random Access Memory (RAM) sejumlah 128 byte (8051, 8031, 8751) atau 256 byte (8052, 8032, 8752)
            d.         Internal Read Only Memory (ROM) sejumlah 4 kilobyte (8051, 8751)  atau 8 kilobyte (8052, 8752)
            e.         Programmable Timer/Counter sejumlah 2 (8051, 8031, 8751) atau 3 (8052, 8032,   8752)
            f.          System  Interrupt  dengan 2  sumber  interrupt  eksternal  dan  4  sumber interrupt  internal
            Dengan fasilitas yang cukup lengkap semacam itu, maka dimungkinkan penggunaan mikrokontroler ini dalam konfigurasi single chip, dimana  hanya dibutuhkan satu chip  untuk menjalankan seluruh sistem rangkaian.
Tabel 3.1 Keluarga MCS-51
Device
Internal memory Program
Internal Memory data
Timers/Event Counters
Interrupts
8052AH
8KX8 RAM
256X8 RAM
3 X 16 BIT
6
8051AH
4KX8 ROM
128X8 RAM
2 X 16 BIT
5
8051
4KX8 ROM
128X8 RAM
2 X 16 BIT
5
8032AH
None
256X8 RAM
3 X 16 BIT
6
8031AH
None
128X8 RAM
2 X 16 BIT
5
8031
None
128X8 RAM
2 X 16 BIT
5
8751H
4KX8 EPROM
128X8 RAM
2 X 16 BIT
5
8751H-12
4KX8 EPROM
128X8 RAM
2 X 16 BIT
5
8751H-88
4KX8 EPROM
128X8 RAM
2 X 16 BIT
5
AT89C51
4KX8 PEROM
128X8 RAM
2 X 16 BIT
5
5.         Arsitektur  MCS-51.
a.         Diagram blok MCS-51.      Diagram blok arsitektur MCS-51 dapat    dilihat             pada gambar 2.1. Pada  diagram blok tersebut dapat disimpulkan bahwa            untuk aplikasi yang tidak membutuhkan adanya RAM dan/atau ROM         dengan skala            besar, maka MCS-51 telah dapat dipergunakan dalam konfigurasi single chip. Fasilitas Parallel Port yang dimiliki dapat             dipergunakan untuk mengendalikan peralatan eksternal atau menginputkan      data yang diperlukan.    Port serial dapat dipergunakan untuk mengakses sistem komunikasi data dengan dunia luar, misalnya dengan komputer IBM PC,           atau peralatan lainnya baik langsung lewat kabel ataupun melalui modem dengan saluran telepon, radio, atau bahkan serat optik. Timer/counter yang             ada dapat dipergunakan untuk mencacah pulsa, menghitung lama pulsa, atau    sebagai pewaktu umum. Sedangkan sistem interrupt membuat MCS-51 dapat             dipakai pada aplikasi-aplikasi yang mendekati sistem dengan proses real-            time. Rangkaian clock internal yang dimiliki MCS-51 menjadikan cukup hanya ditambahkan sebuah kristal osilator dan dua buah kapasitor untuk    menghasilkan clock bagi seluruh sistem rangkaian. Untuk kebutuhan ROM          dan RAM yang besar, sistem MCS-         51 mengijinkan penggunaan RAM dan       ROM  masing-masing  sebesar  maksimal  64  Kilo  byte,  cukup besar             untuk aplikasi-aplikasi umum mikrokontroler.
 Gambar 3.1 Diagram blok MCS-51

            b.         Fungsi kaki-kaki (pin out) MCS-51.
            Pin Out MCS-51 dapat dilihat pada gambar di bawah ini :
Gambar 3.2 Pin-out 8031
            Fungsi kaki-kaki 8031 :
            VSS      :        dihubungkan dengan ground rangkaian
     VCC      :        dihubungkan dengan tegangan catu +5 V
            Port 0  :        merupakan Port I/O 8 bit dua-arah. Port ini digunakan sebagai multipleks bus alamat rendah dan bus data selama pengaksesan ke eksternal           memori. Setiap pin-nya dapat mengendalikan langsung    4    beban    TTL.   Port  0    juga   menerima   dan mengeluarkan code byte selama proses pemrograman dan verifikasi ROM/EPROM internal. 
   Port 1  :        merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte bergantung pemrogram. Port 1 juga menerima address rendah  selama proses pemrograman dan verifikasi ROM/EPROM internal. 
   Port 2  :        merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung.  Port ini digunakan sebagai  bus alamat tinggi   selama pengaksesan ke eksternal memori. Port 2 juga menerima address tinggi  selama proses pemrograman dan verifikasi ROM/EPROM internal.
   Port 3  :        merupakan Port I/O 8 bit dua-arah, yang dapat mengendalikan beban 4 TTL secara langsung. Setiap pin dapat diakses secara operasi tiap bit atau byte bergantung pemrogram. Masing-masing pin pada Port ini memiliki fungsi khusus sebagai berikut :
Tabel 3.1 Fungsi Pin-pin Port 3
Port Pin
Fungsi Alternatif
P3.0
RXD (serial input port)
P3.1
TXD (serial output port)
P3.2
-INT0 (external interrupt  0)
 P3.3.
-INT1 (external interrupt  1)
P3.4
T0 (timer/counter 0 external input)
P3.5
T1 (timer/counter 1 external input)
P3.6
-WR (external data memory write strobe)
P3.7
-RD (external data memory read strobe)
RST             :   merupakan input untuk RESET. 
ALE             :  Address Latch Enable, digunakan untuk memberikan sinyal latch pada alamat rendah pada multipleks bus adress dan data.
PSEN          :   merupakan sinyal read strobe untuk eksternal program memori. 
EA/VPP      :   merupakan input untuk mode program memori.jika dihubungkan ke ground , program memori  adalah eksternal, jika dihubungkan ke VCC, program memori adalah internal, jika dihubungkan ke VPP, diperlukan untuk proses pemrograman   ROM.

            XTAL1, XTAL2   :   merupakan input untuk kristal clock.


menghitung rata-rata dengan array dalam bahasa C

menghitung rata-rata dengan array dalam bahasa C

 kali ini saya akan membagikan apa yang saya dapat di AMIKOM, salah satunya membuat coding dalam bahasa C, anak informatika pasti tau dong apa itu koding, lansung saja ini kodenya.

 #include <stdio.h>
#include <math.h>
#define SIZE 20

int main(void) {
    int data[SIZE]; // tipe integer(bilangan bulat)
    int i,bnyk;     // tipe integer(bilangan bulat)
    float jmlh,rerata,sd; //tipe float (bilangan real)
  
    printf("masukkan banyaknya data[max 20]= "); // input dari keyboard
    scanf("%d", &bnyk); // menampilkan hasil input ke monitor
  
    for(i=0; i<bnyk; i++) { //struktur perulangan menggunakan for
    printf("data ke-%d=", i);
    scanf("%d", &data[i]);
    }
  
    jmlh=0;  // awal dari penjumlahan yang harus dideklarasikan
    for(i=0; i<bnyk; i++) {
    jmlh+=data[i]; //menjumlahkan setiap perulangan
    }
    rerata=jmlh/bnyk; // menghitung rata-rata
  
    printf("rerata adalah %.2f", rerata); //menampilkan hasil rata-rata

return 0;
}

klik ini
pengertian "FOR" pada struktur perulangan bahasa C

pengertian "FOR" pada struktur perulangan bahasa C

oke saya akan share pengertian "FOR"

struktur for digunakan untuk menghasilkan sejumlah perulangan yang telah di spesifikasi artinya ada batasan yang diketahui misalnya perulangan sebanyak 100 kali atau 200 kali. nah 200 inilah data yang dispesifikasi. untuk mencacah sudah berapa kali perulangan maka kita perlu sebuah peubah(variable) peubah ini nilainya selalu bertambah satu setiap perulangan. JIKA perulangan sudah mencapai spesifikasi maka perulangan akan berhenti

bentuk umum pernyataan FOR ada dua macam : menaik atau menurun

FOR menaik

for pencacah <-- nilai_awal to nilai akhir do
      pernyataan
end for

keterangan:
1. pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karekter. tipe riil tidak dapat digunakan sebagai pencacah.

2. pernyataan adalah satu atau lebih intruksi yang diulang.

3. nilai_awal harus lebih kecil atau sama dengan nilai_akhir. jika nilai awal lebih besar dari nilai akhir, maka badan perulangan tidak akan dimasukki atau bisa dikatakan berhenti

4. pada awalnya pencacah  didefinisikan dengan nilai_awal . nilai pencacah secara otomatis bertambah satu kali badan perulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir

5. jumlah perulangan yang terjadi adalah nilai_akhir - nilai_awal +1

sumber:ALGORITMA dan PEMROGRAMAN karanggan RENALDI MUNIR

klik amikom

CARA SETTING PATH JAVA PADA WINDOWS


Jika pada post sebelum ini t-hybrid mengulas tentang instalasi JDK pada windows, sekarang saat nya untuk setting path java agar perintah Java bisa dikenali oleh command prompt Windows, sebagai contoh kita akan menjalankan perintah compilasi sebuah source code java dengan perintah "javac" , buka command prompt pada windows anda tentunya Rekan-Rekan semua dah tahu cara membuka command prompt kan?? tentu sudah , tapi bagi yang belum tahu caranya , bisa dengan cara klik tombol Star --> All Program --> Command prompt , atau dengan menekan tombol Windows pada keyboard bersamaan dengan tombol R ( tmbl Windows + R ), maka akan muncul tampilan seperti dibawah ini:

setting path java di windows
setelah command prompt keluar kita bisa coba ketikkan sebuah perintah java , kita ketikkan perintah untuk mengcompile sebuah source java yaitu [ javac ]  kemudian tekan enter
setting path java di windows
 
maka dalam command prompt akan muncul  [ 'javac' is not recognized as an internal or external command , operable program or batch file. ]  , artinya perintah tersebut belum dikenali oleh windows.
SETTING PATH JAVA
Buka System propertise pada windows ,untuk win XP [ klik kanan my computer --> propertise] atau dengan shortcut [ tekan tombol windows + pause break ] sedangkan untuk win 7  [ klik kanan my computer --> propertise --> Advance System Setting]   , setelah sytem propertise muncul kemudian pilih [ advance --> environment variables] , dapat dilihat seperti gambar di bawah ini:
setting path java di windows
setelah anda meng klik [ environmen variable ] , maka akan muncul form environtment variable

setting path java di windows

buatlah path baru pada user variable [ klik tombol new ] kemudian isikan pada variable name [ JAVA_HOME ] , kemudian pada variables value direktori instalasi JDK , dalam contoh t-hybrid menginstal di direktori [ C:\Program Files\Java\jdk1.7.0_09 ] kemudian klik ok.

setting path java di windows

Lanjutkan dengan meng edit path pada system variables , pilih path pada list system variables kemudian [ klik edit ] , tambahkan di belakang variable value yang sudah ada dengan  ;,; dan direktori dimana bin terinstal [ ;,;C:\Program Files\Java\jdk1.7.0_09\bin] , PENTING !!! tanda [;,;] wajib dipakai . setelah selesai klik ok.
setting path java di windows

 sekarang coba lagi untuk mengetikkan perintah compilasi java sperti diawal
setting path java di windows

maka semua atribut - atribut java akan muncul, itu berarti windows anda mengenal perintah JAVA, dan Rekan- Rekan semua bisa memulai untuk mencoba membuat program java, bisa dimulai dengan membuat program yang sederhana untuk mengetesnya, bisa dicoba dengan HelloWord.java.