• Tidak ada hasil yang ditemukan

AVR IO ConfigDigital IO

N/A
N/A
Protected

Academic year: 2018

Membagikan "AVR IO ConfigDigital IO"

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

(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

(5)
(6)

CodeVision AVR

• Setting I/O dengan codewizard

memungkinkan kita untuk memilih mode I/O yg kita inginkan

(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)

(13)

Catatan

(14)

Catatan

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

(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

(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

(22)

Switch Interface

• Simple Interface

– Switch interface dengan pull up resitor

– Jika switch tidak ditekan maka akan diperoleh

logika “1”

(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)

(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

(28)

Switch Interface

(29)

Switch Interface

(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

(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

(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

(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

(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

(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

(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

(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)

(52)

Liquid Crystal Display(LCD)

• Fungsi Register Kontrol LCD

(53)

Liquid Crystal Display(LCD)

• Character

Generator ROM (CGROM),

menyimpan data pola karakter,

(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

(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

(56)

CodeVision AVR

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

(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)

(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

(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

(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)

(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

(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

Referensi

Dokumen terkait

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

Kapal dimiliki oleh PT.PANN (Persero) di Jakarta, dilengkapi dengan Surat Ukur Internasional (1969) Nomor 1747/PPm, Surat Laut Nomor PK.674/1075/SL-PM/DK-08, Sertifikat

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

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