• Tidak ada hasil yang ditemukan

KONFIGURASI AVR Mikroprosesor 1

N/A
N/A
Protected

Academic year: 2021

Membagikan "KONFIGURASI AVR Mikroprosesor 1"

Copied!
75
0
0

Teks penuh

(1)
(2)

BASIC I/O

(3)

Sistem PORT AVR

• AVR ATmega8535 memiliki 4 buah Port 8 bit, PORTA,PORTB,PORTC,PORTD

• Untuk mengatur suatu PORT sebagai basic digital I/O pengguna harus

mengatur&mengakses Register yg terkait dengan PORT tersebut yang terletak pada daerah 64 byte I/O register

• Sebagai suatu General Purpose I/O suatu PORT memiliki 3 buah Register

(4)

Sistem PORT AVR

• Data Register PORTxn, digunakan untuk menuliskan data ouput pada PORT

• Data Direction Register DDRxn,

digunakan untuk mengatur pin PORT sebagai Input atau Output

• Input Pin Address PINxn,digunakan untuk membaca data input dari suatu PORT

(5)
(6)

CodeVision AVR

• Setting I/O dengan codewizard

memungkinkan kita untuk memilih mode I/O yg kita inginkan

• Dapat juga diatur nilai awal masing-masing pin I/O

(7)

CodeVision AVR

(8)

CodeVision AVR

• Pengaturan yg kita lakukan akan menghasilkan

(9)

Pull Up & Pull Down?

• Pull Up resistor: resistor yg dipergunakan untuk “menarik” ke logika 1(high/Vcc)

• Pull Down resistor: resistor yg

dipergunakan untuk “menarik” ke logika 0(low/Gnd)

• Pengaruh ketiadaan pull up/pull down:

tanpa adanya pull up atau pull down maka suatu titik/pin akan “float” mengambang

(10)

Pull Up & Pull Down?

• Pull Up

(11)

Pull Up internal AVR

(12)

Catatan

• Terdapat fasilitas komunikasi serial pada PORTD, yaitu PD.0 dan PD.1, jika

difungsikan sebagai Tx dan Rx maka

jangan digunakan sebagai GPIO(General Purpose I/O)

• ADC 8 channel terdapat pada PORTA, perhatikan ketika menyusun aplikasi yg

(13)

Catatan

(14)

Catatan

• Pada Modul DT AVR LC Micro System terdapat jumper untuk setting PD.0 dan PD.1

• Pada Modul DT AVR LC Micro System terdapat jumper untuk setting referensi ADC

(15)

Catatan

• Untuk setiap PORT baik pada M68HC11 atau AVR 8535, pastikan bahwa sebelum masuk pada aplikasi yg ada susun, kondisi inisial masing PORT sudah sesuai.

• Terdapat PORT yg kondisi inisialnya (sesudah reset) sudah pasti.

• Terdapat PORT yg kondisi inisialnya (sesudah reset) belum pasti

(16)

Switch, LED, Keypad&Display

(17)

Switch Interface

• Switch adalah input yg paling sederhana dan paling sering bagi mikrokontroler

• Terdapat berbagai macam switch yg harus dipilih agar sesuai dengan aplikasi yg

akan dibuat

• Pole : jumlah koneksi yg bisa diubah dengan satu tindakan pada switch

• Throw :jumlah kontak pada tiap pole • SPST : Single Pole Single Throw

(18)

Switch Interface

(19)

Switch Interface

• Momentary contact

– Push Button switch – Micro switch

• Semi permanent (non momentary)

– Toggle

– Rotary switch

– DIP switch (slide switch)/8 pole on off – Push On Push Off

(20)
(21)

Switch Interface

• Switch untuk kegunaan khusus (deteksi gerak/posisi)

(22)

Switch Interface

• Simple Interface

– Switch interface dengan pull up resitor

– Jika switch tidak ditekan maka akan diperoleh

logika “1”

– Jika switch ditekan maka akan diperoleh logika “0”

(23)

Switch Interface

(24)

Switch Interface

(25)

Switch Debounce

• Bounce : ketika switch ditekan(berpindah posisi), dari on-off atau off-on, terjadi

“bounce”(pantulan), yaitu adanya posisi yg “memantul” antara on dan off, sehingga

seolah-olah terjadi penekanan switch

berulang-ulang(transisi on-off atau off-on berulang)

• Debounce: upaya untuk menanggulangi peristiwa bounce,agar hanya terjadi satu

(26)

Switch Debounce

(27)

Switch Debounce

• Debounce

– Secara hardware, dengan memaksa sinyal logika menjadi berbentuk “kotak”

• Capacitor dan resistor

• Capacitor dan resistor serta Schmidt triger • Debouncing Latch (flip-flop)

– Secara software, dengan menyisipkan delay agar

periode pembacaan lebih lama dari periode bouncing atau menunggu sampai tombol benar-benar stabil. Secara umum prosedur switch debounce dengan software adalah dengan mengecek kondisi suatu switch, beri delay(orde ms), kemudian cek kembali kondisi switch, jika kondisinya sama berarti switch

(28)

Switch Interface

(29)

Switch Interface

• Switch dengan rangkaian debounce schmitt-triger

(30)

Switch Interface

• Mendeteksi penekanan switch

– Polling : Program mengecek secara periodis kondisi switch apakah ditekan atau tidak.

Program selalu mengulang potongan program yg digunakan untuk polling switch

– Interupt : Program tidak mengecek kondisi switch secara periodis, namun switch

(31)

Switch Interface

(32)

LED

• LED adalah ouput yg paling sederhana, namun dapat sangat membantu,

khususnya pada tahap development

aplikasi, karena dapat digunakan sebagai indikator status

(33)

LED

(34)

LED

(35)

Keypad

• Keypad – Pada dasarnya adalah sejumlah switch yg disusun secara matriks

– Terdiri dari baris dan kolom – Penekanan suatu tombol menyebabkan koneksi antara baris&kolom pada

(36)

Keypad

• Deteksi keypad

– Scanning Baris : deteksi tombol yg ditekan dilakukan mulai dari baris pertama, dicek apakah pada baris tsb ada tombol yg

ditekan, jika ya, kolom yg mana pada baris tersebut yg ditekan, jika tidak ada yg ditekan lanjut ke baris berikutnya, dan

seterusnya

– Scanning Kolom:deteksi tombol yg ditekan dilakukan mulai dari kolom pertama, dicek apakah pada kolom tsb ada tombol yg ditekan, jika ya, baris yg mana pada kolom tersebut yg ditekan, jika tidak ada yg ditekan lanjut ke kolom berikutnya, dan

seterusnya

– Scanning baris~baris sebagai output(row mask), kolom sebagai input

(37)

Keypad Matrix 4x4

• Susun koneksi seperti pd

gambar

• Aturlah agar PD.0-PD.3 sebagai input dengan internal pull up aktif

• Aturlah agar PD.4-PD.7 sebagai output

• Masking scanning kolom diberikan melalui PD.4-PD.7

• Baris yg aktif dibaca melalui PD.0 – PD.3

(38)

Keypad Matrix 4x4

• Step 1

• Set kondisi Port D =

11101111(ingat PD.0 – PD.3 sebagai input dengan internal Pull up aktif, PD.4 – PD.7

sebagai ouput dengan kondisi PD.4= 0)

• Baca kondisi Port D :

• Jika PD.0 = 0 maka Tombol 1 ditekan

• Jika PD.1 = 0 maka Tombol 4 ditekan

(39)

Keypad Matrix 4x4

• Step 2

• Set kondisi Port D =

11011111(ingat PD.0 – PD.3 sebagai input dengan internal Pull up aktif, PD.4 – PD.7

sebagai ouput dengan kondisi PD.5= 0)

• Baca kondisi Port D :

• Jika PD.0 = 0 maka Tombol 2 ditekan

• Jika PD.1 = 0 maka Tombol 5 ditekan

• Jika PD.2 = 0 maka Tombol 8 ditekan

(40)

Keypad Matrix 4x4

• Step 3

• Set kondisi Port D =

10111111(ingat PD.0 – PD.3 sebagai input dengan internal Pull up aktif, PD.4 – PD.7

sebagai ouput dengan kondisi PD.6= 0)

• Baca kondisi Port D :

• Jika PD.0 = 0 maka Tombol 3 ditekan

• Jika PD.1 = 0 maka Tombol 6 ditekan

(41)

Keypad Matrix 4x4

• Step 4

• Set kondisi Port D =

01111111(ingat PD.0 – PD.3 sebagai input dengan internal Pull up aktif, PD.4 – PD.7

sebagai ouput dengan kondisi PD.7= 0)

• Baca kondisi Port D :

• Jika PD.0 = 0 maka Tombol COR ditekan

• Jika PD.1 = 0 maka Tombol MEN ditekan

• Jika PD.2 = 0 maka Tombol Up ditekan

(42)

Keypad - LED

• Contoh aplikasi

– Keypad dihubungkan dengan PORT.D

– 8 buah Led dihubungkan dengan PORT.B

– Penekanan tombol keypad, akan ditampilkan sebagai kode biner pada LED

(43)

Keypad - LED

(44)

Keypad - LED

(45)

Keypad - LED

• Definisikan Global variable untuk menyimpan data penekanan

(46)

Seven Segment

(47)

Seven Segment

(48)

Seven Segment

(49)

Seven Segment

(50)
(51)

Liquid Crystal Display(LCD) • Pin LCD

(52)

Liquid Crystal Display(LCD) • Fungsi Register Kontrol LCD

• Display Data RAM (DDRAM), menyimpan data display dalam bentuk kode karakter 8 bit

(53)

Liquid Crystal Display(LCD) • Character Generator ROM (CGROM), menyimpan data pola karakter, bersesuaian dengan tabel ASCII

(54)

Liquid Crystal Display(LCD)

• Interface 8 bit, semua pin LCD digunakan (RS, R/W, E, D0-D7),sehingga butuh lebih dari satu port mikrokontroler untuk

mengatur LCD,karena ada sekurangnya 11 pin yg harus dikendalikan

• Interface 4 bit, hanya diperlukan satu port mikrokontroler, karena pin LCD yg

(55)

Liquid Crystal Display(LCD) • Tahapan penulisan pada LCD

– Atur agar RS menjadi “high” jika kita akan

menuliskan data(karakter), “low” jika kita akan menuliskan instruksi

– Atur agar R/W’ “low”

– Kirimkan data melalui D0-D7

– Tunggu/tahan data (minimal 140nS) – Atur agar E “high” (minimal 450 nS) – Atur agar E “low

(56)

CodeVision AVR

• Dengan CodeVision AVR kita tidak perlu memikirkan tahapan seperti tersebut di atas untuk menggunakan LCD, karena telah terdapat Library untuk LCD

• Kita bahkan tidak perlu tahu kode karakter pada tabel CGROM untuk menulis suatu karakter

(57)

CodeVision AVR

• Contoh LCD terhubung ke PORT.A

(58)

CodeVision AVR

(59)

CodeVision AVR

• Perintah-perintah LCD pada CodeVision

– void _lcd_ready(void)

– void _lcd_write_data(unsigned char data) – void lcd_write_byte(unsigned char addr,

unsigned char data);

– unsigned char lcd_read_byte(unsigned char

addr);

– unsigned char lcd_init(unsigned char

lcd_columns)

– void lcd_clear(void)

– void lcd_gotoxy(unsigned char x,unsigned char

y)

– void lcd_putchar(char c) – void lcd_puts(char *str)

(60)

CodeVision AVR

• Perintah yg sering digunakan

– unsigned char lcd_init(unsigned char

lcd_columns) Contoh :

lcd_init(16);

Inisialisasi LCD 16x2, penghapusan tampilan LCD, kursor diposisikan di kolom 0 baris 0

(61)

CodeVision AVR

• Perintah yg sering digunakan

– void lcd_gotoxy(unsigned char x, unsigned char

y)

Contoh :

lcd_gotoxy(1,1);

Memposisikan kursor pada kolom 1 baris 1

– void lcd_putchar(char c)

Contoh :

lcd_putchar(0x41);

(62)

Type Conversion

• Pada CodeVision terdapat operasi yg disebut konversi pola

• Bukan bagian dari fungsi LCD namun sangat membantu dalam mengatur

tampilan pada LCD

• Digunakan bersama dengan sprintf

atau printf

(63)

Type Conversion

• %d mengubah ke bentuk bilangan bulat positif

• %x mengubah ke bentuk hexadesimal

• %u mengubah ke bentuk bilangan desimal tanpa tanda

• %f mengubah ke bentuk bilangan floating point

• %i mengubah ke bentuk bilangan integer • %c mengubah ke bentuk ASCII

(64)

Type Conversion

• Contoh

– sprintf(kata1,"%3d",Data);

Menyimpan hasil konversi variabel Data ke bentuk bil. Bulat positif 3 digit ke dalam

variabel/array kata1

– sprintf(kata2,"%.3f",Data2);

(65)

Catatan

• Perhatikan bahwa hal yg berkaitan dengan type data sangat penting khususnya

dalam operasi matematika

• Kesalahan dalam pemilihan type data

dapat menyebabkan hasil operasi yg tidak valid

(66)

Catatan

• Contoh

unsigned char a=30; unsigned char b=128; unsigned int c;

c=a*b; //menyebabkan hasil yg salah

(67)

Catatan

• Contoh

unsigned char a=30; unsigned char b=128; unsigned char c;

float d;

c=b/a; //hasilnya adalah c=4

d=b/a //hasilnya adalah d=4

(68)

Array

• Merupakan salah satu bentuk structure,

yaitu suatu variabel yg terdiri dari sejumlah variabel denga tipe data yg sama

• Bisa kita gunakan untuk membantu

pengaturan tampilan LCD seperti halnya type conversion

(69)

Array

• Array seolah-olah kita gunakan sebagai pemesanan tempat pada LCD

• Panjang array harus sesuai dengan lebar tulisan/data yg ingin kita tampilkan

• Dengan cara ini kita dapat mengatu

tampilan agar satu baris dapat digunakan untuk menampilkan lebih dari satu data • 16 karakter/ruang pada LCD kita bagi

(70)

Array

• Penggunaan secara bersamaan dengan

didahului sprintf, dan diikuti dengan

lcd_gotoxy(baris x,kolom

y)dilanjutkan dengan lcd_puts(array)

• Untuk lebih jelasnya ada di contoh program LCD1.pdf

(71)

Contoh Program

(72)

Contoh Program

(73)

Contoh Program

(74)

Contoh Program

• Program selengkapnya ada di K2LCD.pdf • Program tersebut akan menampilkan

penekanan keypad pada LCD

• Digunakan tampilan hexadesimal pada penekanan keypad agar dengan mudah kita dapat menampilkan huruf A,B,C,D,E dan F sebagai pengganti tombol

(75)

Referensi

• Ken Stiffler, 1996, Design with Microprocessor for Mechanical Engineers, McGraw Hill

• Jan Axelson, The Microcontroller Idea Book • CodeVisionAVR User manual

• M. Ary Heryanto, Ir. Wisnu Adi P,

Pemrograman Bahasa C untuk Mikrokontroler ATmega 8535, Penerbit Andi

• ATMEL, 2003, AVR Technical documentation Series, Atmel

Referensi

Dokumen terkait

Lain hal jika rata-rata skor tes awal kelompok kontrol berbeda secara signifikan dengan rata-rata skor tes awal kelompok eksperimen, maka harus dilakukan pengolahan data

X merupakan perusahaan yang cukup besar, maka diperlukan adanya alat-alat tersebut untuk mencegah terjadinya kecurangan dalam pencatatan jam kerja maupun untuk mendukung

Bila NPCO lebih besar dari 1 (NPCO>1), berarti harga privat lebih tinggi daripada harga dunia dan sistem usahatani yang diteliti menerima proteksi. Berdasarkan

Berdasarkan hasil penyajian data pada BAB III, maka dapat diketahui dari hasil baseline 1, intervensi dan baseline 2 bahwa terapi senam perkasa dengan symbolic

Pada extended kalman filter, sama halnya dengan kalman filter, estimasi dilakukan dengan dua tahapan, yaitu dengan cara memprediksi variabel keadaan berdasarkan sistem dinamik

Laporan akhir ini disusun berdasarkan hasil pembuatan alat dengan judul “Pembuatan Pulp dari Bahan Baku Serat Lidah Mertua (Sansevieria) dengan Menggunakan

Berdasarkan latar belakang masalah tersebut maka dapat diidentifikasikan berbagai masalah yang berpengaruh terhadap kinerja sekolah: perbaikan mutu pendidikan kurang

Karena strong coloumn weak beam concept yang dipakai pada desain struktur beton tahan gempa maka besarnya momen yang dipakai dalam menghitung tulangan kolom tidak