1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

MODUL TRAINING MICROCONTROLLER BASIC ATMEGA16

38 168 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 0,91 MB

Nội dung

MODUL TRAINING MICROCONTROLLER BASIC ATMEGA16 Tim Trainer Mikrokontroler 2011 MODUL TRAINING MIKROKONTROLLER 201 DAFTAR ISI BAB INTRODUCTION BAB INPUT/OUTPUT & ADC BAB TIMER/COUNTER 21 BAB PWM 27 BAB LCD 31 Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 BAB I INTRODUCTION 1.1 Sistem Komputer Pada level yang paling sederhana, komputer adalah mesin yang didesain untuk mengolah, menyimpan, dan mendapatkan kembali sebuah data Data/informasi yang menjadi bagian operasi dari sebuah komputer adalah berupa angka Semua operasi yang bisa dilakukan komputer seperti: web browsing, printing, dan image processing tidak lebih merupakan kegiatan menahan, memindahkan dan mengubah/memanipulasi angka angka Sistem komputer dibagi menjadi dua kategori, yaitu: a) Desktop komputer, mesin yang sering kita sebut sebagai “komputer”, komputer yang ada di pikiran kita Desktop komputer bisa menjalankan beragam program dengan sistem yang diatur oleh suatu operating sistem (OS) seperti: Windows dan Linux Dengan menjalankan aplikasi program yang berbeda, fungsi dari desktop b) komputer juga berubah Embedded komputer, komputer yang terintegrasi dengan sistem lain (ex: mekanika) dan digunakan untuk suatu fungsi tertentu Seperti: microwave oven, DVD player, mainan, handphone dll Embedded komputer pada umumnya didesain untuk satu aplikasi saja Sistem komputer disusun dari banyak komponen, seperti: processor, memory, input/output peripheral dll Berikut adalah gambar skema sistem komputer sederhana Gambar 1.1: Sistem komputer sederhana Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 a) PROCESSOR Processor/CPU (Central Processing Unit) adalah komponen dari suatu sistem komputer yang melakukan proses manipulasi dan pengolahan (eksekusi) data berdasarkan urutan instruksi dari memory Instruksi yang dijalankan oleh processor disebut dengan opcodes atau machine-code Opcodes merupakan bahasa mesin berupa angka-angka yang kadang sulit dimengerti oleh pengguna, untuk itu dibangun instruksi operasi processor dalam bahasa assembly yang disebut dengan mnemonic Urutan dari kumpulan instruksi sebuah processor disebut dengan program Program yang dijalankan processor bisa diubah sesuai dengan kebutuhan aplikasi, sehingga komputer bersifat programmable b) MEMORY Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan data dan instruksi (program) yang dijalankan oleh processor Ada beberapa jenis memory yang biasa digunakan oleh suatu sistem komputer, 1) RAM (Random Acces Memory), RAM adalah “Working Memory” pada sistem komputer, dimana CPU dapat menuliskan data untuk disimpan sementara RAM bersifat ”volatile”, yang berarti datanya akan hilang apabila catu daya dimatikan 2) ROM (Read Only Memory), bersifat “non volatile”, yang berarti data tidak akan hilang meskipun catu daya dimatikan Tujuan utama dari ROM adalah menyimpan kode/data yang dibutuhkan pada saat start up c) PERANGKAT INPUT/OUTPUT Perangkat input/output atau peripheral i/o digunakan oleh processor untuk berkomunikasi dengan dunia luar Contoh pemakaian perangkat i/o adalah serial komunikasi pada keyboard, dan parallel komunikasi pada printer Perangkat i/o merupakan piranti pengkondisi sinyal sebelum dapat diolah oleh processor atau setelah diolah processor sehingga dapat dikeluarkan berupa output Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 data digital Ada cara input/output untuk berkomunikasi dengan processor,: 1) Programmed i/o, processor mengirim dan menerima data pada i/o sesuai instruksi 2) Interrupt-driven i/o, sinyal dari luar mengatur eksekusi instruksi processor Sinyal luar akan menghentikan eksekusi program yang dijalankan saat itu, dan menjalankan fungsi program interrupt 3) Direct Memory Acces (DMA), memungkinkan transfer data langsung antara peripheral i/o dan memory tanpa keterlibatan processor Biasanya digunakan pada sistem yang membutuhkan 1.2 transfer data cepat Mikrokontroller Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi (program) yang dibuat oleh programmer Mikrokontroller merupakan contoh suatu sistem komputer sederhana yang masuk dalam kategori embedded komputer Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponen seperti: processor, memory, clock dll Gambar 1.2: contoh beberapa bentuk mikrokontroller ATMEL Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi sinyal output berdasarkan suatu fungsi kontrol agar bisa Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 dimanfaatkan sesuai kebutuhan Sasaran dari pelatihan ini adalah peserta mampu menggunakan mikrokontroller untuk membangun 1.3 sendiri suatu sistem otomasi atau embedded system ATMEL AVR ATMEGA16 Sebelum belajar lebih dalam tentang aplikasi mikrokontroller, ada baiknya kita bicarakan dulu tentang mikrokontroller yang kita gunakan Pada pelatihan ini dipilih mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut: a) ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga yang relatif murah b) Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS (Million Instruction per Second), yang berarti hanya dibutuhkan clock untuk eksekusi instruksi c) Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi d) Ketersediaan kompiler C (CV AVR) yang memudahkan user memprogram menggunakan bahasa C Dari kemampuan dan fasilitas yang dimiliki, AVR RISC cocok dipilih sebagai mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem Oleh karena itu, dalam pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan yaitu ATMEGA 16 Chip AVR ATMEGA16 memiliki 40 pin kaki, berikut skema kaki ATMEGA16 Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 Gambar 1.3: skema mikrokontroller AVR RISC ATMEGA16 ATMEGA16 memiliki buah port input/output bit, yaitu PORT A, PORT B, PORT C, dan PORT D Selain sebagai input/output masing masing port juga memiliki fungsi yang lain Misalny PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter).Fungsifungsi yang lain dapat dilihat pada datasheet ATMEGA16 1.4 Pemrograman ATMEL AVR Ada cara untuk memprogram mikrokontroller ini, menggunakan software AVR assembler yang berbasis pada bahasa assembly, dan menggunakan software CV AVR (Code Vision AVR) yang berbasis pada bahasa C Pada pelatihan ini akan digunakan cara yang kedua dengan pertimbangan kemudahan pembuatan program dari algoritma yang telah dibangun Pelatihan ini tidak menitikberatkan penggunaan bahasa C pada CV AVR, tapi lebih pada cara dan aplikasi dari mikrokontroller Untuk itu peserta diharapkan membaca sendiri petunjuk pemakaian software ini Berikut tampilan utama CVAVR Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 Gambar 1.4: tampilan utama CV AVR Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 BAB INPUT/OUTPUT & ADC 2.1 Input/Output Fasilitas input/output merupakan fungsi mikrokontroller untuk dapat menerima sinyal masukan (input) dan memberikan sinyal keluaran (output) Sinyal input maupun sinyal output adalah berupa data digital (high, mewakili tegangan volt) dan (low, mewakili tegangan volt) Mikrokontroller ATMEGA16 memiliki buah PORT bit bidirectional yang dapat difungsikan sebagai PORT input maupun PORT output yaitu PORTA, PORTB , PORTC, dan PORT D Register digunakan untuk mengatur fungsi dari pin-pin pada tiap port Register dapat dianalogikan sebagai kumpulan switch on/off yang digunakan untuk mengaktifkan fungsi apa yang akan dipakai dari port mikrokontroller Pada setiap port pin terdapat buah register bit: DDRxn, PORTxn, dan PINxn Register DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan Jika DDRxn diberikan nilai (high), maka pin digunakan sebagai output Jika DDRxn diberikan nilai (low), maka pin difungsikan sebagai input Register PORTxn digunakan untuk mengaktifkan pull-up resistor (pada saat pin difungsikan sebagai input), dan memberikan nilai keluaran pin high/low (pada saat difungsikan sebagai output) PINxn merupakan register yang berfungsi untuk mengetahui keadaan tiap-tiap pin pada mikrokontroller Perangkat keras yang dibutuhkan untuk mendemonstrasikan aplikasi input/output adalah sebagai berikut: a) Led Array (output indicator) Gambar 1.5: skema led output indicator b) Push-button array (input signal) Aplikasi Praktik Berikut adalah beberapa aplikasi praktik yang nantinya dapat lebih menjelaskan fungsi dan fasilitas input/output Peserta diharapkan mengikuti petunjuk langkah demi langkah Project 1: Output Page | WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA 201 MODUL TRAINING MIKROKONTROLLER ● Setting Hardware a) Hubungkan PORTC dengan led array b) Hubungkan SPI port pada universal board dengan port USB Laptop menggunakan downloader/ USB ASP ● Programming a) Buka CV AVR., pilih File->New->Project b) Klik YES ketika terdapat option untuk meggunakan codeWizardAVR c) Pilih chip yang akan digunakan ATMEGA16 dengan harga clock 12 Mhz d) Klik tab Ports, pilih tab Port C seperti pada gambar, ubah setting bit – bit sebagai out Hasil setting ini berpengaruh pada nilai register DDRxn, dan PORTxn e) Setting selesai, untuk mengenerate program pilih File >> Generate, f) g) h) i) Save, and Exit Buat direktori dengan nama io1 Save file CV AVR dengan nama io1.cwp pada direktori io1 Save file C dengan nama io1.c pada direktori io1 Save file project dengan nama io1.prj pada direktori io1 Listing Program Page | 10 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 PROJECT Dengan menggunakan cara dan ketentuan yang sama gunakan timer untuk membuat LED berkedip tiap detik Nb Perhitungan Timer T(timer1 interupt) = (1/clock value)*(65536 – Timer value) COUNTER PROJECT • Setting hardware Hubungkan PORTC universal board dengan port OUTPUT pada input/output board (led array) Hubungkan SPI port pada universal board dengan port USB menggunakan downloader Pada project ini kita akan belajar prinsip kerja counter dengan menggunakan input dari luar Hubungkan PORTB.0/T0 dengan pushbutton Seting pada CVAVR sesuai dengan gambar dan gunakan PORTC sebagai output Anda bisa memilih penambahan nilai akan dieksekusi pada saat tepi naik atau tepi turun Tambahkan program berikut pada fungsi interrupt [TIM0_OVF] Fungsi ini akan dieksekusi ketika tombol T0 ditekan Ketika T0 ditekan nilai TCNT0 akan bertambah, karena nilai TCNT0 awal adalah FEh Page | 24 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 maka ketika ditambah satu akan terjadi overflow dan interupsi akan terjadi Gunakan PORTC sebagai output dan tuliskan program berikut pada fungsi utama Program ini berfungsi mengeluarkan nilai variabel data ke PORTC Program dan jalankan pada KIT Page | 25 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 PROJECT Buatlah program dimana nilai dari PORTC akan bertambah jika tombol T1 ditekan sebanyak lima kali! Gunakan Timer1 sebagai counter Page | 26 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 BAB PWM (Pulse Width Modulation) PWM (Pulse Width Modulation) adalah teknik mendapatkan efek sinyal analog dari sebuah sinyal digital yang terputus-putus PWM dapat dibangkitkan hanya dengan menggunakan digital i/o yang difungsikan sebagai output Gambar 4.1 Contoh PWM dengan duty cycle 50% Pada contoh gelombang diatas, perbandingan waktu antara sinyal high (1) dan sinyal low (0) adalah sama Gelombang diatas dikatakan memiliki duty cycle 50% Duty cycle adalah perbandingan antara lebar sinyal high (1) dengan lebar keseluruhan siklus (cycle) Jika amplitudo gelombang PWM adalah volt, maka tegangan rata rata (seolah olah analog) yang kita dapatkan adalah 2,5 volt Berikut contoh gelombang PWM dengan duty cycle 10%, jika amplitudo gelombang volt maka akan didapatkan tegangan rata rata analog 0,5 volt Gambar 4.2 Contoh PWM dengan duty cycle 10% Pada ATMEGA 16 ada cara membangkitkan PWM, yang pertama PWM dapat dibangkitkan dari port input/outputnya yang difungsikan sebagai output Yang kedua adalah dengan memanfaatkan fasilitas PWM dari fungsi timer/counter yang telah disediakan Dengan adanya fasilitas ini proses pengaturan waktu high/low sinyal digital tidak akan mengganggu urutan program lain yang sedang dieksekusi oleh processor Selain itu, dengan menggunakan fasilitas ini kita tinggal memasukkan berapa porsi periode waktu on dan off gelombang PWM pada sebuah register OCR1A, OCR1B dan OCR2 adalah register tempat mengatur duty cycle PWM Page | 27 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 Pada bab ini akan diperagakan bagaimana cara mendapatkan sinyal analog dari sebuah sinyal digital dengan menggunakan teknik PWM Aplikasi Praktik ● Setting Hardware Hubungkan PORTD.4 dan PORTD.5 pada port OUTPUT input/outputboard Hubungkan SPI port pada universal board dengan port USB Laptop menggunakan downloader ● Programming Buka CV AVR., pilih File->New->Project Klik YES ketika terdapat option untuk meggunakan codeWizardAVR Pilih chip yang akan digunakan ATMEGA16 dengan harga clock 16 Mhz Setting PORTD.4 (OC1B) dan PORTD.5 (OC1A) sebagai output (out) Page | 28 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 5 Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar Perhatikan setting mode non-inverted pada out A dan mode inverted pada out B Page | 29 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 6 Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit 7 Buat direktori dengan nama pwm 8 Save file CV AVR dengan nama pwm pada direktori pwm 9 Save file C dengan nama pwm.c pada direktori pwm 10 Save file project dengan nama pwm.prj pada direktori pwm ● Project Setting Terlihat pada tampilan CV AVR kode yang telah digenerate Konfigurasi project dengan memilih menu project >> configure ● Pilih tab after make, aktifkan program the chip Listing Program Page | 30 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 Kita telah menyetting PORTD.4 dan PORTD.5 sebagai output, dengan nilai awal (low) Perhatikan register yang mempengaruhi, sama seperti register pada timer/counter pada bab sebelumnya Untuk mengatur porsi on dan off kita berikan nilai pada register OCR1A dan OCR1B pada looping while Nilai maksimum dari OCR1A dan OCR1B adalah 1023 (10bit) seperti pada setting kita sebelumnya (langkah 5) Tuliskan listing kode seperti dibawah, Page | 31 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 Kita telah memberikan nilai 800 pada OCR1A dan 800 pada OCR1B (skala 1023) Program chip dengan memilih menu project >> make atau dengan menekan shift + F9 Jika pada kode masih terdapat kesalahan/error akan terlihat pada message Klik Program the chip, jika ada kesalahan periksa kembali setting hardware Amati nyala lampu pada input/output-board Ulangi dengan memberikan nilai OCR1A dan OCR1B yang berbeda beda 10 Page | 32 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 BAB LCD Pada software CodeVisionAVR telah disediakan beberapa rutin standar yang dapat langsung digunakan Anda dapat melihat lebih detil pada manual dari CodeVisionAVR Beberapa contoh fungsi yang telah disediakan antara lain adalah: 1) Fungsi LCD: Berada pada header lcd.h yang harus di-include-kan sebelum digunakan Sebelum melakukan include terlebih dahulu disebutkan pada port mana LCD akan diletakkan Hal ini juga dapat dengan mudah dilakukan dengan menggunakan CodeWizardAVR Fungsi-fungsi untuk mengakses LCD diantaranya adalah : • unsigned char lcd_init(unsigned char lcd_columns) Untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi karakter pada baris ke-0 kolom ke-0 Jumlah kolom pada LCD harus disebutkan (misal, 16) Kursor tidak ditampakkan Nilai yang dikembalikan adalah bila modul LCD terdeteksi, dan bernilai bila tidak terdapat modul LCD Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain • void lcd_clear(void) Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0 Page | 33 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 • void lcd_gotoxy(unsigned char x, unsigned char y) Meletakkan posisi karakter pada kolom ke-x baris ke-y Nomor baris dan kolom dimulai dari nol • void lcd_putchar(char c) Menampilkan karakter c pada LCD • void lcd_puts(char *str) Menampilkan string yang disimpan pada SRAM pada LCD 2) Fungsi Delay: Menghasilkan delay dalam program-C Berada pada header delay.h yang harus di-includekan sebelum digunakan Sebelum memanggil fungsi, interrupsi harus dimatikan terlebih dahulu, bila tidak maka delay akan lebih lama dari yang diharapkan Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR yang digunakan pada menu Project-Configure-C CompilerCode Generation Fungsi delay yang disediakan adalah: • void delay_us(unsigned int n) menghasilkan delay selama n μ-detik, n adalah nilai konstan • void delay_ms(unsigned int n) menghasilkan delay selama n mili-detik, n adalah nilai konstan Kedua fungsi tersebut secara otomatis akan me-reset watchdog-timer setiap milidetik dengan mengaktifkan instruksi wdr Aplikasi Praktik ● Setting Hardware a) Hubungkan PORTC universal board dengan push button (port INPUT pada input/output-board) menggunakan kabel pita b) Hubungkan PORT D universal board dengan LED Array (port INPUT pada input/output-board) menggunakan kabel pita c) Hubungkan PORTB universal board dengan LCD pin menggunakan kabel pita Page | 34 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 d) Hubungkan SPI port pada universal board dengan port USB Laptop menggunakan downloader e) Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala ● Programming a) b) c) Buka CV AVR., pilih File->New->Project Klik YES ketika terdapat option untuk meggunakan codeWizardAVR Pilih chip yang akan digunakan ATMEGA16 dengan harga clock Mhz kemudian pilih tab Ports, secara default port merupakan pin input, lakukan seting untuk portD sebagai output, lalu pilih tab LCD, gunakan portB karena pada board LCD terhubung dengan portB d) Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit Page | 35 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 e) Simpan pada direktori e:\embedded Beri nama source file, nama f) project file, dan nama codewizard project file anda Pada header program tambahkan include berikut g) Pada main program sisipkan perintah berikut h) Sebelum melakukan kompilasi, lakukan seting berikut untuk pertama kali saja Pilih Project >> Configure Pastikan pada tab C Compiler nama chip dan clock telah sesuai dengan IC yang terpasang pada board Dan pada tab After Make pilih Program the Chip Lalu tombol OK tekan Pilih Settings >> Programmer, pilih Kanda System STK200+/300 untuk AVR Chip.Programmer Type Lalu tekan tombol OK i) Secara bertahap anda dapat melakukan check syntax, compile, dan make Atau langsung pilih Project >> Make Bila tidak ada error maka akan muncul kotak dialog informasi Siapkan board, nyalakan suplai tegangannya, hubungkan kabel download dari PC ke board Kemudian tekan tombol Program j) Bila tidak ada kesalahan maka pada layar LCD akan ditampilkan tulisan “Tekan pushbutton” Cobalah menekan pushbutton (sebelah kanan), maka pada layer LCD akan ditampilkan tulisan “PB1 ditekan” dan LED menyala Page | 36 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 Apabila push-button dilepas maka tampilan layar LCD kembali seperti semula dan LED padam  Page | 37 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA [...]... akan digunakan ATMEGA16 dengan harga clock 12 Mhz d) Setting port B sebagai output (out) e) Setting port A sebagai ADC, klik tab ADC kemudian setting seperti pada gambar Page | 17 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 0 Page | 18 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER... UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 0 maka ketika ditambah satu akan terjadi overflow dan interupsi akan terjadi 4 Gunakan PORTC sebagai output dan tuliskan program berikut pada fungsi utama Program ini berfungsi mengeluarkan nilai variabel data ke PORTC 5 Program dan jalankan pada KIT Page | 25 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER... jika tombol T1 ditekan sebanyak lima kali! Gunakan Timer1 sebagai counter Page | 26 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 0 BAB 4 PWM (Pulse Width Modulation) PWM (Pulse Width Modulation) adalah teknik mendapatkan efek sinyal analog dari sebuah sinyal digital yang terputus-putus PWM dapat dibangkitkan hanya dengan menggunakan digital... Programming a) Buka CV AVR., pilih File->New->Project Page | 12 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA 201 0 MODUL TRAINING MIKROKONTROLLER b) Klik YES ketika terdapat option untuk meggunakan codeWizardAVR c) Pilih chip yang akan digunakan ATMEGA16 dengan harga clock 12Mhz d) Setting port C sebagai output (out) e) Setting port B sebagai Input (in) dan aktifkan pull-up resistor... timer dan counter bisa dilihat pada DATASHEET ATMEGA16 TIMER Menghitung Timer T(timer0) = Tosc*N*(256-TCNT0) T(timer1) = Tosc*N*(65536-TCNT1) T(timer2) = Tosc*N*(256-TCNT2) Tosc = 1/fosc T(timer) : Waktu inerval interupt timer Tosc : Periode clock fosc : Frekuensi clock Page | 21 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER N 201 0 : Skala clock... UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 0 d) Klik Program, jika ada kesalahan periksa kembali setting hardware e) Jika langkah langkah diatas telah dilakukan dengan benar, maka led pada port C akan menyala sesuai dengan push-button yang ditekan pada port B 2.2 ADC (Analog to Digital Converter) ADC (Analog to Digital Converter) adalah salah satu fasilitas mikrokontroller ATMEGA16 yang berfungsi... didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk decimal) atau 10011001 (bentuk biner) Page | 16 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER ADC pada ATMEGA16 adalah jenis 10 bit 201 0 successive approximation dengan tegangan referensi maksimum 5 volt Register-register yang harus di setting adalah ADMUX, ADCSRA, dan SFIOR Aplikasi... File->New->Project 1 2 Klik YES ketika terdapat option untuk meggunakan codeWizardAVR 2 3 Pilih chip yang akan digunakan ATMEGA16 dengan harga clock 16 Mhz 3 4 Setting PORTD.4 (OC1B) dan PORTD.5 (OC1A) sebagai output (out) Page | 28 WORKSHOP HIMPUNAN MAHASISWA ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 0 4 5 5 Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar... unsigned char lcd_init(unsigned char lcd_columns) Untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi karakter pada baris ke-0 kolom ke-0 Jumlah kolom pada LCD harus disebutkan (misal, 16) Kursor tidak ditampakkan Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi... UNIVERSITAS BRAWIJAYA MODUL TRAINING MIKROKONTROLLER 201 0 d) Hubungkan SPI port pada universal board dengan port USB Laptop menggunakan downloader e) Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala ● Programming a) b) c) Buka CV AVR., pilih File->New->Project Klik YES ketika terdapat option untuk meggunakan codeWizardAVR Pilih chip yang akan digunakan ATMEGA16 dengan harga

Ngày đăng: 28/02/2016, 23:04

TỪ KHÓA LIÊN QUAN

w