Politeknik Manufaktur Negeri Bangka Belitung 1 Praktikum Mikrokontroler 1 (MKR 1) PENDAHULUAN Tujuan Umum: 1. Mahasiswa mengerti prosedur dan cara menggunakan software CodeVisionAVR berbasis bahasa pemrograman C dengan baik dan benar 2. Mahasiswa memahami arsitektur dan prinsip kerja akses digital I/O pada mikrokontroler AVR khususnya tipe ATMega8535 3. Mahasiswa bisa mengendalikan digital I/O pada mikrokontroler AVR khususnya tipe ATMega8535 dan teknik interfacingnya dengan aplikasi berupa: LED, switch, 7segment, dan LCD Teori Dasar 1. Arsitektur ATMega8535 AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving. Beberapa diantaranya mempunyai ADC (Analog to Digital Converter) dan PWM (Pulse Width Modulation) internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengizinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk praktikum adalah ATmega8535. ATmega8535 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock, ATmega8535 mempunyai throughput mendekati 1 MIPS per MHz. Beberapa fitur dari AVR ATmega8535 antara lain: Advanced RISC Architecture o 130 Powerful Instructions – Most Single Clock Cycle Execution o 32 x 8 General Purpose Working Registers o Fully Static Operation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Politeknik Manufaktur Negeri Bangka Belitung
1 Praktikum Mikrokontroler 1 (MKR 1)
PENDAHULUAN
Tujuan Umum:
1. Mahasiswa mengerti prosedur dan cara menggunakan software CodeVisionAVR
berbasis bahasa pemrograman C dengan baik dan benar
2. Mahasiswa memahami arsitektur dan prinsip kerja akses digital I/O pada
mikrokontroler AVR khususnya tipe ATMega8535
3. Mahasiswa bisa mengendalikan digital I/O pada mikrokontroler AVR khususnya tipe
ATMega8535 dan teknik interfacingnya dengan aplikasi berupa: LED, switch,
7segment, dan LCD
Teori Dasar
1. Arsitektur ATMega8535
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur
RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu
siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan
mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog
Timer, dan mode power saving. Beberapa diantaranya mempunyai ADC (Analog to Digital
Converter) dan PWM (Pulse Width Modulation) internal. AVR juga mempunyai In-System
Programmable Flash on-chip yang mengizinkan memori program untuk diprogram ulang
dalam sistem menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk praktikum
adalah ATmega8535.
ATmega8535 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur
RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock,
ATmega8535 mempunyai throughput mendekati 1 MIPS per MHz.
Beberapa fitur dari AVR ATmega8535 antara lain:
Advanced RISC Architecture
o 130 Powerful Instructions – Most Single Clock Cycle Execution
o 32 x 8 General Purpose Working Registers
o Fully Static Operation
Politeknik Manufaktur Negeri Bangka Belitung
2 Praktikum Mikrokontroler 1 (MKR 1)
o Up to 16 MIPS Throughput at 16 MHz
o On-chip 2-cycle Multiplier
Nonvolatile Program and Data Memories
o 8K Bytes of In-System Self-Programmable Flash
Endurance: 10,000 Write/Erase Cycles
o Optional Boot Code Section with Independent Lock Bits
In-System Programming by On-chip Boot Program
True Read-While-Write Operation
o 512 Bytes EEPROM
Endurance: 100,000 Write/Erase Cycles
o 512 Bytes Internal SRAM
o Programming Lock for Software Security
Peripheral Features
o Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
o One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode
o Real Time Counter with Separate Oscillator
o Four PWM Channels
o 8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels for TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP
Package Only
o Byte-oriented Two-wire Serial Interface
o Programmable Serial USART
o Master/Slave SPI Serial Interface
o Programmable Watchdog Timer with Separate On-chip Oscillator
o On-chip Analog Comparator
Special Microcontroller Features
o Power-on Reset and Programmable Brown-out Detection
o Internal Calibrated RC Oscillator
Politeknik Manufaktur Negeri Bangka Belitung
3 Praktikum Mikrokontroler 1 (MKR 1)
o External and Internal Interrupt Sources
o Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down,
o Standby and Extended Standby
I/O and Packages
o 32 Programmable I/O Lines
o 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF
Operating Voltages
o 2.7 - 5.5V for ATmega8535L
o 4.5 - 5.5V for ATmega8535
Speed Grades
o 0 - 8 MHz for ATmega8535L
o 0 - 16 MHz for ATmega8535
Gambar 1.1 Pin-pin ATMega8535 kemasan 40-pin
2. Akses I/O pada AVR
Terdapat tiga register yang dapat dipakai untuk mengakses port-port AVR yang
digunakan sebagai digital I/O, yaitu: PORTx, PINx, dan DDRx. Index x disesuaikan dengan
port yang akan dipakai (Atmega8535 mempunyai empat port yang diberi nama port-A, port-
B, port-C, dan port-D).
Politeknik Manufaktur Negeri Bangka Belitung
4 Praktikum Mikrokontroler 1 (MKR 1)
Register PORTx digunakan untuk mengeluarkan data ke pin. Register PINx digunakan
untuk membaca data dari pin. Register DDRx digunakan untuk mengatur arah aliran data
pada pin. Blok diagram lengkap dari arsitektur pin ATMega8535 sebagai digital I/O dapat
dilihat pada gambar 1.3.
Contoh untuk membuat port-D sebagai output dan mengeluarkan data bernilai 60
heksa dalam bahasa C menggunakan aplikasi Code Vision AVR.
DDRD=0xFF; //semua port-D menjadi port output
PORTD=0x60; //keluarkan data 60 heksa ke port-D
Contoh untuk membuat port-C sebagai port input dan membaca data dari port-C dalam
bahasa C menggunakan aplikasi Code Vision AVR.
DDRC=0x00; //semua port-C menjadi port input
i=PINC; //pindahkan isi pada port-C ke variabel i
Pada saat port digunakan sebagai input, instruksi PORTx dapat digunakan untuk
mengaktifkan resistor pull-up atau tidak. Contohnya sebagai berikut.
DDRC=0x00; //semua port-C menjadi port input
PORTC=0xFF ; //semua pin pada port-C diberi pull-up
i=PINC; //pindahkan isi pada port-C ke variabel i
DDRC=0x00; //semua port-C menjadi port input
PORTC=0x00 ; //semua pull-up pada port-C dimatikan
i=PINC; //pindahkan isi pada port-C ke variabel i
3. Alur Pemrograman
Untuk membuat program di dalam mikrokontroler AVR, kita bisa menggunakan
berbagai macam bahasa pemrograman, seperti: assembly, C, dan basic. Pada praktikum ini,
kita menggunakan bahasa pemrograman C melalui software CodeVisionAVR.
Politeknik Manufaktur Negeri Bangka Belitung
5 Praktikum Mikrokontroler 1 (MKR 1)
CodeVisionAVR adalah salah satu software pemrograman mikrokontroler AVR.
Fasilitas wizard yang disediakan adalah salah satu kelebihan yang dimiliki software ini
sehingga membantu pengguna untuk melakukan pemrograman.
Program yang dibuat ditulis menggunakan bahasa-C. Kemudian dikompilasi untuk
mendapatkan file.hex. Selanjutnya file.hex tersebut diisi ke dalam IC mikrokontroler dan
diujicoba melalui pengamatan indikator atau bisa juga dengan pengukuran.
Gambar 1.2 Alur pemrograman AVR menggunakan CodeVisionAVR
Gambar 1.3 Arsitektur pin sebagai digital I/O
Politeknik Manufaktur Negeri Bangka Belitung
6 Praktikum Mikrokontroler 1 (MKR 1)
PERCOBAAN 1
Aplikasi Port Sebagai Output Menggunakan LED
Tujuan:
Setelah melakukan praktikum ini diharapkan:
1. Mahasiswa bisa menggunakan software CodeVisionAVR berbasis bahasa
pemrograman C dengan prosedur yang benar
2. Mahasiswa bisa mengendalikan nyala LED sebagai port keluaran mikrokontroler
dengan teknik dan kombinasi yang diinginkan secara baik dan benar
Peralatan yang digunakan:
1. Modul mikrokontroler AVR
2. Komputer
Rangkaian percobaan
Gambar 1.4 Rangkaian sistem minimum mikrokontroler ATMega8535
Politeknik Manufaktur Negeri Bangka Belitung
7 Praktikum Mikrokontroler 1 (MKR 1)
Gambar 1.5 Rangkaian aplikasi LED
Prosedur Percobaan
1. Buka program CodeVisionAVR dengan menekan klik ganda icon pada dekstop
komputer.
2. Pilih File – New – Project - Ok.
3. Selanjutnya pilih Yes untuk menggunakan CodeWizardAVR.
4. Pilih chip ATMega8535 dan clock 8MHz, dengan mengikuti isi sesuai gambar 1.6.
5. Lalu setting port-A sebagai output dengan cara memilih Ports, lalu pada Port A ubah
In menjadi Out mulai dari Bit 0 sampai dengan Bit 7.
6. Jika selesai, pilih File – Generate, Save and Exit.
7. Arahkan direktori ke dalam folder yang anda buat sebelumnya, lalu ketik nama file
dengan Percobaan1. Tekan Save. Lakukan sampai tiga kali.
8. Ketikkan program yang diinginkan atau sesuai contoh pada daftar program
percobaan 1.
9. Lakukan compile dengan cara menekan gambar atau tombol F9. Jika tidak ada
error tekan OK. Bila ada error, maka periksa program yang anda ketik. Lalu ulangi
lagi.
Politeknik Manufaktur Negeri Bangka Belitung
8 Praktikum Mikrokontroler 1 (MKR 1)
Gambar 1.6 Wizard Chip Gambar 1.7 Wizard ports
10. Hubungkan kabel ISP downloader dari terminal USB komputer ke jalur downloader
pada modul praktikum. Hidupkan power supply pada board AVR.
11. Untuk mengisi program yang telah dibuat ke dalam chip, maka terlebih dahulu setting
programmer yang digunakan dengan cara pilih Settings – Programmer pada menu
bar. Selanjutnya muncul gambar seperti gambar 1.8. Pilih tipe programmer AVRProg
(AVR910) dengan baudrate 115200, untuk COM sesuaikan dengan device manager.
12. Pada menu bar, Project – Configure – After Make pilih Program the Chip
13. Pilih Project – Make atau Project – Build atau bisa juga dengan menekan shift + F9
untuk men-download program. Hubungkan konektor port-A dengan konektor LED.
Amati yang terjadi dan dianalisa!
14. Lakukan untuk semua contoh program percobaan. Lalu selesaikan tugas yang
diberikan dengan menunjukkan hasilnya kepada dosen yang mengampuh!
Politeknik Manufaktur Negeri Bangka Belitung
9 Praktikum Mikrokontroler 1 (MKR 1)
Gambar 1.8 Programmer settings
Daftar program percobaan 1:
1. Membuat LED menyala semua #include <mega8535.h>
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA=0xff;
};
}
2. Membuat LED menyala kedip #include <mega8535.h>
#include <delay.h>
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA=0xff;
delay_ms(200);
PORTA=0x00;
delay_ms(200);
};
}
3. Membuat LED menyala berjalan #include <mega8535.h>
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
Politeknik Manufaktur Negeri Bangka Belitung
10 Praktikum Mikrokontroler 1 (MKR 1)
{
PORTA=0b00000001
delay_ms(200);
PORTA=0b00000010;
delay_ms(200);
PORTA=0b00000100;
delay_ms(200);
PORTA=0b00001000;
delay_ms(200);
PORTA=0b00010000;
delay_ms(200);
PORTA=0b00100000;
delay_ms(200);
PORTA=0b01000000;
delay_ms(200);
PORTA=0b10000000;
delay_ms(200);
};
}
4. Membuat LED menyala berjalan (metode matematis) #include <mega8535.h>
#include <delay.h>
#include <math.h>
void main(void)
{
int i,a;
PORTA=0xff;
DDRA=0xff;
while (1)
{
for (i=0;i<=7;i++)
{a=pow(2,i);
PORTA=~a;
delay_ms(500);}
};
}
5. Membuat LED menyala berjalan (metode geser bit) #include <mega8535.h>
void delay(int n)
{
int i;
for(i=0;i<n;i++)
{ int b;
for(b=0;b<=150;i++);
}
}
void kiri()
{
unsigned char a=0x7f;
int i;
for(i=0;i<8;i++)
{
a=((a<<1)|(a>>7)); // instruksi geser bit
PORTA=a;
delay(200);
Politeknik Manufaktur Negeri Bangka Belitung
11 Praktikum Mikrokontroler 1 (MKR 1)
}
}
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
kiri();
};
}
6. Membuat LED menyala berjalan (metode lookup table) #include <mega8535.h>