Rancang Bangun Jam Digital dengan Display Dot Matriks 16 Baris Berbasis Atmega 32

  

LANDASAN TEORI

Landasan teori sangat membantu untuk dapat memahami suatu system.

  Selain dari pada itu dapat juga dijadikan sebagai bahan acuan dalam merencanakan suatu system. Dengan pertimbangan hal-hal tersebut, maka landasan teori merupakan bagian yang harus dipahami untuk pembahasan selanjutnya.

2.1. Mikrokontroler

  Mikrokontroler merupakan suatu terobosan teknologi mikroprosesor dan mikrokomputer yang merupakan teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang sangat kecil. Lebih lanjut, mikrokontroler merupakan system computer yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda dengan PC (Personal Computer ) yang memiliki beragam fungsi.

  Tidak seperti sistem komputer yang mampu menangani berbagai macam program aplikasi, mikrokontroler hanya bisa digunakan untuk suatu aplikasi tertentu saja, perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM nya besar, artinya program- program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil, Sedangkan pada mikrokontroler, perbandingan ROM dan RAM –nya yang besar, artinya program kontrol disimpan dalm ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

  Mikrokontroler adalah satu keping IC dimana terdapat mikroprosesor dan memori program (ROM) serta memori serbaguna (RAM), bahkan ada beberapa jenis mikrokontroler yang memiliki fasilitas ADC, PPL, EEPROM dalam suatu kemasan. Penggunaan mikrokontroler dalam bidang kontrol sangat luas dan populer. Ada beberapa vendor yang membuat mikrokotroler diantaranya Intel, Microchip, Windbond, Atmel, Philips, Xemics dan lain-lain buatan Atmel.

  Mikrokontroler merupakan sebuah sistem komputer yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda dengan personal computer yang memiliki beragam fungsi. Mikrokontroler dapat dikelompokan dalam beberapa jenis, masing–masing mikrokontroler memiliki spesifikasi tersendiri namun cocok dalam pemrogramannya.

  Salah satu arsitektur mikrokontroler yang terdapat di pasaran adalah jenis AVR (Advanced Virtual RISC). Arsitektur mikrokontroler jenis AVR ini pertama kali dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian Institute of Technology yaitu Alf-Egil Bogen dan Vegard Wollan. Pemrograman mikrokontroler AVR dapat menggunakan low level language (assembly) dan high level language (C, Basic, Pascal, JAVA, dll) tergantung compiler yang digunakan. Pada pembahasan ini mikrokontroler yang digunakan adalah AVR ATmega32.

2.1.1. Mikrokontroler ATMega 32

  Mikrokontroller Atmega32 adalah mikrokontroler yang diproduksi oleh Atmel. mikrokontroler ini memiliki clock dan kerjanya tinggi sampai 16 MHz, ukuran flash memorinya cukup besar, kapasistas SRAM sebesar 2 KiloByte, Flash

  32 KiloByte dan 32 buah port input/output yang sangat memadai untuk berinteraksi dengan perangkat lainya. Sebuah mikrokontroler adalah sebuah komputer kecil di satu sirkuit terpadu yang berisi inti prosesor, memory dan . Input/Output

  ATmega32 tergolong Mikrokontroler jenis AVR yang memiliki arsitektur RISC (Reduced Instruction Set Computing) 8 bit, dimana semua instruksi dikemas dalam kode 16 bit dan sebagian besar instruksi dikemas berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32 register umum. Semua register tersebut lagsung terhubung dengan arithmetic Logic Unit (ALU) yang memugkinkan 2 register terpisah diproses dengan satu perintah tunggal dalam satu clock cycle. Hal ini meghasilkan kode yang efektif dalam kecepatan prosesnya 10 kali lebih cepat daripada mikrokontroler CISC biasa. Berikut ini adalah gambar mikrokotroler atmega 32:

Gambar 2.1 Mikrokontroler ATMega 32

   G Gambar 2.2

2 Konfigur rasi Pin AT Tmega32

2.1.2. Ko onfigurasi P Pin ATMeg ga32

  Se cara umum m konfigura asi dan fun ngsi pin A TMega32 d dapat dijel askan sebagai be erikut:

  1. Pin 1 sam mpai 8 (port

  B) merupak kan port par ralel 8 bit d dua arah (bid directional) ,yang dapat di gu unakan untu uk general p purpose dan n special fea ature.

  2. Pin 9 (rise et) jika terda apat minimu um pulse pa ada saat acti ive low.

  3. Pin 10 (V VCC) di hub bungkan ke Vcc (2,7-5, ,5 Volt).

  4. Pin 11 dan n 31 (GND di hubungk kan ke Vssat tau ground.

  5. Pin 12 (X

  XTAL 2) a adalah pin masukan ke rangkai an osilator r internal.se ebuah osilator kr ristal atau su umber osila ator luar dap pat di gunak kan.

  6. Pin 13 (X

  XTAL 1) ad dalah pin k keluaran ke e rangkaian osilator in nternal.pin i ini di pakai bila menggunak kan osilator r kristal.

  7. Pin 14 sampai 21 (port D) adalah 8 bit dua arah (bi-directional I/O) port dengan internal pull-up resistors di gunaka untuk general purpose dan special feature.

  8. Pin 22 sampai 29 (port C) adalah 8 bit dua arah (bi-directional I/O) port dengan internal pull-up resistors di gunaka untuk general purpose dan special feature.

  9. Pin 30 adalah Avcc pin penyuplai daya untuk port A dan A/D converter dan di hubungkan ke Vcc.jika ADC di gunakan maka pin ini di hubungkan ke Vcc.

  10. Pin 32 adalah A REF pin yang berfungsi sebagai referensi untuk pin analog jika A/D converter di gunakan.

  11. Pin 33 sampai 40 (port A) adalah 8 bit dua arah arah (bi-directional I/O) port dengan internal pull-up resistors di gunaka untuk general purpose.

  Penjelasan konfigurasi pin pada mikrokontroler AVR ATmega32 yang mempunyai fungsi khusus yaitu: a. pin 33 sampai 40 dapat di gunakan sebagai:

Tabel 2.1 Tabel Fungsi Khusus Port A

  PA0 Input ADC PA0 PA1 Input ADC PA1 PA2 Input ADC PA2 PA3 Input ADC PA3 PA4 Input ADC PA4 PA5 Input ADC PA5 PA6 Input ADC PA6 PA7 Input ADC PA7 b. pin 1 sampai 8 (port B) di gunakan sebagai :

Tabel 2.2 Tabel Fungsi Khusus Port B

  PB7 SCK (SPI Bus Serial Clock) PB6 MISO (SPI Bus Master Input /Slave Output) PB5 MOSI (SPI Bus Master Output /Slave Input) PB4 SS (SPI Slave Select Input) PB3 AIN1(Analog Comparator Negative Input),OC0(Timer/Counter0 Output Compare Match Output).

  PB2 AIN0 (Analog Comparator Positive Input),INT2(External Interrup 2 Input)

  PB1 TI (Timer/Counter 1 External Counter Input) PB0 T0 (Timer/Counter0 External Counter Input),XCK(USART External Clock Input/Output).

  c. pin 22 sampai 29 (port C) dapat di gunakan sebagai:

Tabel 2.3 Tabel Fungsi Khusus Port C

  PC7 TOSC2 (Timer Oscillator Pin 2) PC6 TOSC1 (Timer Oscillator Pin 1) PC5 TDI (JTAG Test Data In) PC4 TDO (JTAG Test Data Out) PC3 TMS (JTAG Test Mode Select) PC2 TCK (JTAG Test Clock) PC1 SDA (Two-Wire Serial Bus Data Input/Output Line) PC0 SCL (Two-Wire Serial Bus Clock Line) d. pin 14 sampai 21 (port D) dapat di gunakan sebagai:

Tabel 2.4 Tabel Fungsi Khusus Port D

  PD7 OC2 (Timer/Counter2 Output Compare Match Output) PD6

  ICPI (Timer/Couter1 Input Capture Pin) PD5 OC1A (Timer/Counter1 Output Compare A Match Output ) PD4 OC1B (Timer/Counter1 Output Compare A Match Output) PD3

  INT1 (External Interrupt 1 Input) PD2

  INT0 (External Interrupt 0 Input) PD1 TXD (USART Output pin) PD0 RXD (USART Input pin)

2.1.3. Fitur Mikrokontroler ATMega32

  Fitur-fitur yang dimiliki ATmega32 sebagai berikut:

  1. Frekuensi clock maksimum 16 MHz

  2. Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD

  3. Analog to Digital Converter 10 bit sebanyak 8 input, 4 chanel PWM

  4. Timer/Counter sebanyak 3 buah

  5. CPU 8 bit yang terdiri dari 32 register

  6. Watchdog Timer dengan osilator internal

  7. SRAM sebesar 2K Byte

  8. Memori Flash sebesar 32K Byte dengan kemampuan read while write

  9. Interrupt internal maupun eksternal

  10. Port komunikasi SPI

  11. EEPROM sebesar 512 byte yang dapat diprogram saat operasi

  12. Analog Comparator 13. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps.

2.1.4. Arsitektur AVR ATmega32

  Untuk meningkatkan kemampuan, mikrokontroler AVR ATmega32 menggunakan teknologi RISC(Reduced Instruction Set Computer) di mana set instruksi dikurangi lebarnya sehingga semua instruksi mempunyai panjang 16 bit dan sebagian besar instruksi dieksekusi dalam single clock,serta pengurangan kompleksitas pengalamatan.Mikrokontroler AVR menggunakan arsitektur harvard dengan memisahkan memori dan jalur bus untuk program dan data agar meningkatkan kemampuan karena dapat mengakses program memori dan data memori secara bersamaan.Mikrokontroler AVR memiliki fast accessregister file dengan 32 register x 8 bit.Dengan 32 register AVR dapat mengeksekusi beberapa instruksi sekali jalan (single cycle). 6 dari 32 register yang ada dapat di gunakan sebagai indirect address register pointer 16 bit untuk pengalamatan data space, yang memungkinkan penghitungan alamat yang efisien.

Gambar 2.3 Blok k Diagram Fungsional ATMega332

2.2. Dot Matriks

  Pada dasarnya DOT matriks adalah Display LED yg disusun sedemikian rupa sehingga untuk menghidupkan led ke (x,x) dibutuhkan kombinasi tegangan antara Pin baris & kolom

Gambar 2.4 PCB PIN Connection Kemudian untuk mempermudah kontrol dan menghemat pin diperlukan proses scanning ( biasanya kolom...) sedangkan pada baris diberikan bit sesuai huruf/karakter yang akan ditampilkan yang bersesuaian dengan posisi scanning.

  Scanning untuk kolom dimaksud memberikan "1" high ( untuk common katoda) atau"0" untuk common anoda , untuk kolom lainnya diberi nilai negasi dari kolom yg diberi nilai 1 tadi .....begitu selanjutnya untuk kolom berikutnya sampai kolom terakhir dari rangkaian led matrix..dan berulang dari depan lagi.

  Proses ini dilakukan sangat cepat sehingga melihatnya tetap sebagai suatu karakter yg diam. misalnya ingin menampilkan huruf A , secara umum digambarkan sebagai berikut:

    

000 000

  00

  00 000 00000

  0000000 00000 00000

     

  dari gambar diatas logikanya seperti ini :

  • saat kolom pertama ( scan kolom 1 = 1 / high/2.4 v) maka bit yg diberi pada baris berupa "1110000", sehingga jika ketemu 1 - 1 tidak ada arus mengalir, jadi LED mati, jika 1 ketemu 0 maka arus mengalir, led menyala
  • begitu juga untuk kolom kedua, ketika kolom kedua diberi tegangan maka pada baris bit yg diberikan adalah "1101011"
  • Dan seterusnya, ketika kolom nya mencapai ujung maka akan diulang ke kolom 1 lagi
  • Untuk melakukan scanning biasanya dilakukan dengan memanfaatkan shift register, atau paling sederhana dengan menggunakan IC 4017 yang di cascade menjadi led berjalan yang panjang .

2.3. RTC (Real Time Clock)

  RTC yang dimaksud disini adalah real time clock biasanya berupa IC yang mempunyai clock sumber sendiri dan internal battery untuk menyimpan data waktu dan tanggal. Sehingga jika system komputer / microcontroller mati waktu dan tanggal di dalam memori RTC tetap up to date.

  Salah satu RTC yang sudah popular dan mudah penggunaanya adalah DS1307, apalagi pada Codevision sudah tersedia fungsi-fungsi untuk mengambil data waktu dan tanggal untuk RTCDS1307 ini

Gambar 2.5 Konfigurasi Pin RTC DS1307

  Fitur-fitur DS1307:

   Real-time clock (RTC) menghitung detik, menit, jam, tanggal, bulan dan hari serta tahun valid sampai tahun 2100

   Ram 56-byte, non volatile untuk menyimpan data.

   2 jalur serial interface (I2C).

   Output gelombang kotak yang diprogram.

   Automatic power-fail detect and switch

   Konsumsi arus hanya 500nA pada batery internal.

   mode dg oscillator running.

   temperature range: -40°C sampai +85°C Untuk membaca data tangal dan waktu yang tersimpan di memori RTC Ds1307 dapat dilakukan melalu komunikasi serial I2C seperti tampak pada gambar berikut:

Gambar 2.6 Rangkaian DS1307 ke Mikrokontroler

  Cara pembacaan

  DS1307 beropersai sebagai slave pada bus I2C. Cara Access pertama mengirim sinyal START diikuti device address dan alamat sebuah register yang akan dibaca. Beberapa register dapat di baca sampai STOP condition dikirim.

Gambar 2.7 Address Map Ds1307

  Data waktu dan tanggal tersimpan dalam memori masing-masing 1 byte , mulai dari alamat 00H sampai 07H. Sisanya (08H ~ 3FHalamat RAM yang bias digunakan). Codevision sudah menyediakan fungsi-fungsi khusus untuk mengakses data DS1307 jadi kita tingga menggunakanya. Apalagi dengan fasilitas codewizard pemrograman RTC menjadi mudah.

2.4. CodeVisionAVR

  CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator.

  Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded).

  Khusus untuk library fungsi, disamping library standar (seperti fungsi- fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya.

  CodeVisionAVR 1.2.4.9 adalah suatu kompiler berbasis bahasa C, yang terintegrasi untuk memprogram dan sekaligus compiler aplikasi AVR (Alf and Vegard’s Risc processor) terhadap mikrokontroler dengan sistem berbasis window. CodeVisionAVR ini dapat mengimplematasikan hampir semua interuksi bahasa C yang sesuai dengan arsitektur AVR, bahkan terdapat beberapa keunggulan tambahan untuk memenuhi keunggulan spesifikasi dari CodeVisionAVR yaitu hasil kompilasi studio debugger dari ATMEL.

  Integrated Development Environtment (IDE) telah diadaptasikan pada chip AVR yaitu In-System Programmer software, memungkinkan programmer untuk mentransfer program ke chip mikrokontroler secara otomatis setelah proses assembly/kompilasi berhasil. In-System Programmer software didesign untuk bekerja dan dapat berjalan dengan perangkat lunak lain seperti AVR Dragon, AVRISP, Atmel STK500, dan lain sebagainya.

Gambar 2.8. Tampilan CodeVision AVR

  Contoh cara kerja sebelum melakukan pemograman di AVR, dimana contoh disini adalah contoh pengaturan program agar mikrokontroler dapat berkomunikasi dengan komputer:

  a. Memilih project baru dan melakukan penyetingan komponen yang digunakan pada board.

  b. Pengaturan IC/Chip, pada chip yang kita harus dilakukan adalah IC apa yang kita gunakan, dalam hal ini ATMEGA8535l dengan Clock 16 MHz. Clock ini harus di atur dengan ukuran 16 MHz, karena pada komponen oksilator yang digunakan sebesar 16 MHz.

  c. Pengaturan ADC, pada ADC ini ada beberapa pilihan yang harus dipilih. diantaranya ADC Enable di check list(v), Use 8 bit di check list(v), high speed di check list (v) dan Volt Ref dipilih ‘AVCC PIN’. AVCC PIN berguna sebagai referensi tegangan pada ADC untuk nilainya sebesar 5 volt.

  d. Pengaturan USART, usart ini yang nantinya menghubungkan rangkaian mikrokontroler dengan PC (komputer). Langkah-langkah yang dilakukan dengan adanya pilihan Receiver di check list(v) dan Transmitter di check list(v).

  Pengaturan receiver berfungsi apakah serial itu sebagai penerima data, sedangkan transmitter berfungsi serial bisa digunakan sebagai pengiriman data.

  Untuk lebih jelas tampilan pengaturan yang disediakan oleh AVR dapat dilihat pada gambar dibawah ini :

  

2.9 Gambar Form Pegaturan CodeVisionAVR

  Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan membentuk sebuah instruksi layaknya perintah program ke IC/Chip, adapula perintah program yang kita ketik sendiri.

  Selain itu, CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau CodeWizardAVR. Secara praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Secara teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya).

2.5. Bahasa C

  Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada diantara bahasa tingkat rendah dan tingkat tinggi. Bahasa tingkat rendah artinya bahasa yang berorientasi pada mesin dan bahasa tinggi berorientasi pada manusia. Bahasa tingkat rendah, misalnya bahasa assembler, bahasa ini ditulis dengan sandi yang dimengerti oleh mesin saja, oleh karena itu hanya digunakan bagi yang memprogram mikroprosesor. Bahasa tingkat rendah merupakan bahasa yang membutuhkan kecermatan yang teliti bagi pemrogram karena perintahnya harus rinci, ditambah lagi masing-masing pabrik mempunyai sandi perintah sendiri. Bahasa tinggi relatif mudah digunakan, karena ditulis dengan bahasa manusia sehingga mudah dimengerti dan tidak tergantung mesinnya. Bahasa tingkat tinggi biasanya digunakan pada komputer.

  Pencipta bahasa C adalah Brian W. Kernighan dan Denis M. Ritchi, sekitar tahun 1972. Penulisan program dalam bahasa C dilakukan dengan membagi dalam blok-blok, sehingga bahasa C disebut dengan bahasa terstruktur. Bahasa C dapat digunakan di berbagai mesin dengan mudah, mulai dari PC sampai dengan mainframe, dengan berbagai sistem operasi misalnya DOS, UNIX,

  VMS dan lain-lain.

2.5.1. Penulisan Program Bahasa C

  Program Bahasa C tidak mengenal aturan penulisan di kolom tertentu, jadi bisa dimulai dari kolom manapun. Namun demikian, untuk mempermudah pembacaan program dan untuk keperluan dokumentasi, sebaiknya penulisan bahasa C diatur sedemikian rupa sehingga mudah dibaca.

  Berikut contoh penulisan Program Bahasa C: #include <at89c51.h> main () { ……… ……… }

  Program dalam bahasa C selalu berbentuk fungsi seperti ditunjukkan dalam main (). Program yang dijalankan berada di dalam tubuh program yang dimulai dengan tanda kurung buka { dan diakhiri dengan tanda kurung tutup }. Semua yang tertulis di dalam tubuh program ini disebut dengan blok. Tanda () digunakan untuk mengapit argumen suatu fungsi. Argumen adalah suatu nilai yang akan digunakan dalam fungsi tersebut. Dalam fungsi main diatas tidak ada argumen, sehingga tak ada data dalam (). Dalam tubuh fungsi antara tanda { dan tanda } ada sejumlah pernyataan yang merupakan perintah yang harus dikerjakan oleh prosesor.

  Setiap pernyataan diakhiri dengan tanda titik koma ; Baris pertama #include <…> bukanlah pernyataan, sehingga tak diakhiri dengan tanda titik koma (;). Baris tersebut meminta kompiler untuk menyertakan file yang namanya ada di antara tanda <…> dalam proses kompilasi. File-file ini (ber-ekstensi .h) berisi deklarasi fungsi ataupun variable. File ini disebut header. File ini digunakan semacam perpustakaan bagi pernyataan yang ada di tubuh program.

2.6 Keypad

  Salah satu jenis perangkat antar muka yang umum dijumpai pada sistem embedded (atau sistem microcontroller) adalah Keypad matrik 4x4 atau 3x4.

  Walaupun penggunaannya sangat intensive, tetapi kenyataannya sangat jarang perangkat lunak pengembang yang menyediakan fungsi standar untuk pengaksesan keypad tersebut.

  Walaupun terlihat sepele, tetapi fungsi pengaksesan keypad ini justru menjadi faktor kunci kenyamanan pengguna sistem embedded yang kita rancang.

  Fungsi pengaksesan keypad disusun dengan bahasa C (compiler: CodeVisionAVR) untuk microcontroller AVR. Jika menggunakan microcontroller, compiler dan jenis keypad yang berbeda, maka fungsinya tinggal dimodifikasi sedikit. Interkoneksi keypad dan microcontroller juga dapat disesuaikan secara mudah.

2.7. Power Supply 5V

  Power Supply adalah pengubah arus (Adaptor) dari arus AC menjadi DC. Power supply bekerja pada 2 buah tegangan DC yaitu 5 Volt dan 12 Volt.

  Dan menyuplai tegangan listik ke alat elektronika. Dalam sebuah power supply, tegangan 12 Volt biasanya di tandai dengan kabel berwarna merah. Sedangkan tegangan 5 Volt ditandai dengan kabel berwarna hitam dan ground warna hitam.

  Dalam sistem pengubahan daya, terdapat empat jenis proses yang telah dikenal yaitu sistem pengubahan daya AC ke DC, DC ke DC, DC ke AC, dan AC ke AC. Masing masing sistem pengubahan memiliki aplikasi tersendiri, tetapi ada dua yang kita ketahui atau di kenal kemudian berkembang pesat dan luas yaitu sistem pengubahan AC ke DC (DC power supply)

  Power Supply adalah perangkat keras yang berfungsi untuk menyuplai tegangan langsung kekomponen dalam casing yang membutuhkan tegangan, misalnya motherboard, hardisk, kipas, dll. Input power supply berupa arus bolak- balik (AC) sehingga power supply harus mengubah tegangan AC (arus bolak- balik) menjadi DC (arus searah).