01 digitalinput dan extint 2014 ver1.40

15
 ta  P T Se T bi A po bi at pa A nil va fiq[at]pe rakte JUAN telah me 1. Men 2. Men 3. Men ORI DI Untu a dilaku R terseb rt yang d a dinyat Kon u ada is da t iap b i Ada R digital ai “high” lue terse s[dot]ac.i k 1 – yelesaik akses po akses sal aplikasi ITAL INPU k menga an deng t memili namai d kan seba isi defau ilah lain t, contoh suatu ko input ter pada reg ut haru d Digit n praktik rt pada A ah satu fi an fungsi T ses port n mende ki 32 po r ngan po r ai digital t, mikrok Tri-state ada regi disi dim se bu t jug ster POR irubah m l Inp um ini, ya R sebag ur AVR s Digital In mikroko finisikan masing- A, B, C d input d a ontroler (Hi-Z). D ter DDR na port berfung x, conto njadi 1. odul ut da ng anda i Digital I  bagai E k put dan troler A register masing s an D. Pa output. VR dide karenak mempu yang difu si sebaga pada re rakti Eks eroleh a nput sternal In  ksternal I R ATMe DRx, PI tiap 1 by  a tabel b ain seba n pada r yai initia ngsikan Digital P  gister PO um M  erna alah : terrupt nterrupt a 16 seb x dan te memil rikut ini ai digital gister D value = ebagai d ull-Up In RTC me ikrok  l Inte dengan D gai digit ORTx. Di ki 8 bit. adalah ko input ya Rx mem . gital inp ut. Dim punyai i ntrole  rrupt isplay LC l input a mana ju erdapat ndisi dim g be rsif a punyai i t, pada na denga itia l valu r 20  Inpu  16x2 taupun o lah port parsial ana s uat floating it ia l valu ikrokon n membe e = 0 seh 4 16 t utput pada ama port point e = 0 roler rikan ingga

Upload: satria-viraka-shinichi

Post on 12-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 1/14

 

ta

 

P

TSe

T

bi

A

po

bi

at

pa

A

nil

va

fiq[at]pe

rakte

JUANtelah me

1.  Men

2.  Men

3.  Men

ORI

DI

Untu

a dilaku

R terseb

rt yang d

a dinyat

Kon

u ada is

da tiap bi

Ada

R digital

ai “high”

lue terse

s[dot]ac.i

k 1 –

yelesaik

akses po

akses sal

aplikasi

ITAL INPU 

k menga

an deng

t memili

namai d

kan seba

isi defau

ilah lain

t, contoh

suatu ko

input ter

pada reg

ut haru d

Digit

n praktik

rt pada A

ah satu fi

an fungsi

T

ses port

n mende

ki 32 por

ngan por

ai digital

t, mikrok

Tri-state

ada regi

disi dim

sebut jug

ster POR

irubah m

l Inp

um ini, ya

R sebag

ur AVR s

Digital In

mikroko

finisikan

masing-

A, B, C d

input da

ontroler

(Hi-Z). D

ter DDR

na port

berfung

x, conto

njadi 1.

odul

ut da

ng anda

i Digital I

  bagai E

k

put dan

troler A

register

masing s

an D. Pa

output.

VR dide

karenak

mempu

yang difu

si sebaga

pada re

rakti

Eks

eroleh a

nput

sternal In

  ksternal I

R ATMe

DRx, PI

tiap 1 by

  a tabel b

ain seba

n pada r

yai initia

ngsikan

Digital P

  gister PO

um M

 

erna

alah :

terrupt

nterrupt

a 16 seb

x dan

te memil

rikut ini

ai digital

gister D

value =

ebagai d

ull-Up In

RTC me

ikrok 

 

l Inte

dengan D

gai digit

ORTx. Di

ki 8 bit.

adalah ko

input ya

Rx mem

.

gital inp

ut. Dim

punyai i

ntrole

 

rrupt

isplay LC

l input a

mana ju

erdapat

ndisi dim

g bersifa

punyai i

t, pada

na denga

itial valu

r 20

 

Inpu

  16x2

taupun o

lah port

parsial

ana suat

floating

itial valu

ikrokon

n membe

e = 0 seh

4

16

t

utput

pada

ama

port

point

e = 0

roler

rikan

ingga

Page 2: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 2/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 17

Sedangkan pada register PINx, merupakan register yang menampung nilai masukan dari sinyal

luar. Dari contoh ilustrasi gambar register PINC tidak adanya initial value karena status Read/Write

dari register PINx adalah read saja.

Selain itu apabila kondisi digital input difungsikan dengan mengaktifkan pull-up resistor maka

syarat pengaturan register yang dilakukan adalah mengatur register DDRx = 0x00 dan PORTx = 0xFF.

Untuk memastikan bahwa aktifasi pull-resistor berhasil digunakan maka ada register tambahan yang

mengatur kondisi tersebut. Yaitu register SFIOR (Special Function Input Ouput Register) dimana salahsatu bit-2 yang bernama PUD (Pull-Up Disable) harus diberi logika ‘0’ (low) agar pull-up resistor

berfungsi, berikut ilustrasi gambar register SFIOR.

Pada register SFIOR ini, ketika bit-2 PUD diberi logika ‘1’ maka setiap bit pada PORT AVR tidak

bisa difungsikan sebagai pull-up resistor meskipun dikonfigurasi digital input untuk aktif pull-upresistor (DDRx = 0x00 dan PORTx = 0xFF)

Sebagai contoh akses dimana pada port C diinginkan mempunyai fungsi yang bisa menerima

masukan sinyal digital dimana ada pull-up secara hardware dengan menambahkan resistor eksternal,

maka definisi register yang harus dilakukan adalah sebagai berikut :

(mode digital input dengan eksternal pull-up resistor)

DDRx = 0x00;

PORTx = 0x00;

SFIOR=0x00; //diasumsikan projek yang diakses hanya digital IO saja 

Sedangkan apabila suatu push button yang masuk ke pin mikro terhubung dengan ground maka

konfigurasi registernya adalah sebagai berikut:

(mode digital input dengan internal pull-up resistor)

DDRx = 0x00;

PORTx = 0xFF;

SFIOR=0x00; //diasumsikan projek yang diakses hanya digital IO saja

Page 3: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 3/14

 

ta

 

IN

u

da

si

IN

ya

fiq[at]pe

EK

Fitur

T1 dan I

um aka

ri mikrok

Siny

yal Low

T2 hanya

Untu

ng harus

 

GICR

s[dot]ac.i

TERNAL I 

  ekstern

T2. Fitur

ter-trigg

ontroler

l trigger

Level dan

bisa men

k bisa m

iisi, yait

(General

PUT

l interru

eksternal

er jika m

VR ATM

  yang bis

Any logi

erima sin

ngakses

:

Interrup

Bit 7 – IN

Un

Bit 6 – IN

UnBit 5 – IN

Un

t pada

interrup

nerima

ga16.

diterim

al. Dima

al ekster

fitur eks

Control

T1: Exte

tuk meng

T0: Exte

tuk mengT2: Exte

tuk meng

odul

ikrokon

ini di ko

erubaha

oleh pin

a sinyal

nal beru

ernal int

egister)

nal Inte

-enable k

nal Inte

-enable knal Inte

-enable k

rakti

roler AV

nfigurasi

sinyal.

INTx ad

tersebut

a edge tri

errupt te

rupt Req

an Extern

rupt Req

an Externrupt Req

an Extern

um M

 

R ATmeg

secara so

erikut in

lah trans

ersedia

gger saja.

  sebut bi

uest 1 E

al Interru

uest 0 E

al Interruuest 2 E

al Interru

ikrok 

 

a16 di-tr

tware. E

i pin-out

isi tepi n

ada INT0

a bekerj

able

pt 1

able

pt 0able

pt 2

ntrole

 

igger mel

sternal i

dari ekst

ik dan t

dan INT

ada be

r 20

 

alui pin

terrupt s

rnal inte

run, sert

1, namun

erapa re

4

18

INT0,

ecara

rrupt

a ada

pada

ister

Page 4: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 4/14

Page 5: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 5/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 20

  MCUCSR (MCU Control and Status Register)

o  Bit 6 – ISC2: Interrupt Sense Control 2

Jika ISC2 ditulis 0 maka falling edge pada INT2 akan mengaktifasi interupsi.

Jika ISC2 ditulis 1, maka rising edge pada INT2 akan mengaktifasi interupsi.

LCD (Liquid Crystal Display)

Dalam modul interface terdapat display LCD dengan ukuran 2x16, dimana modul tersebut

terhubung ke port B pada modul minimum sistem mikrokontroler AVR ATMega16. Dimana aturankoneksi antara AVR dan LCD disesuaikan dengan software yang digunakan yaitu Codevision AVR.

Berikut ini koneksi emulasi data 4 bit pada LCD 2x16 yang disesuaikan menurut codewizard pada

Codevision AVR :

Page 6: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 6/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 21

Berikut contoh pengkabelan yang digambarkan dimana LCD 2x16 dihubungkan pada mikro

AVR yaitu PORTC menggunakan data emulasi 4-bit.

PROSEDUR PERCOBAAN

Prosedur Umum

1.  Secara keseluruhan beberapa percobaan dibawah ini menggunakan wizard sehingga kode di-

generate secara otomatis.2.  Atur semua kode program yang ada kemudian diletakkan sesuai pada bagian-bagian kode hasil

generate wizard.

3.  Pastikan hasil compile tidak menghasilkan error dengan menekan F9.

4.  Selanjutnya download program tersebut ke MS-16 via USB dengan menekan Shift-F9  dan

tekan tombol Program the chip.

5.  Amati dan analisa hasilnya kemudian catat hasil tersebut sebagai laporan sementara.

Prosedur Khusus

Skematik referensi dalam mengakses hardware modul IO adalah sebagai berikut :

1.  LCD16x2 2. Buzzer

Page 7: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 7/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 22

3.  BarLED 4. DIPSwitch dan 4-Bit LSB PushButton

Percobaan ke :

1.   Akses LED dengan Switch

Atur konfigurasi chip dan digital input serta output terhadap DIPSwitch dan BarLED sesuai

informasi wizard berikut ini. Kemudian tambahkan syntax berikut ini setelah program berhasil

di-generate.

Tambahkan syntax berikut ini setelah baris include file header.

#define BarLED PORTD#define DIPSwitch PINC 

Kemudian sisipkan syntax berikut ini dalam area “while(1)”

BarLED = DIPSwitch;

Amati hasilnya!

Page 8: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 8/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 23

2.   Akses LCD dan LED dengan Masukan dari DIP Switch

Atur konfigurasi Codewizard AVR seperti percobaan ke-1 kemudian tambahkan setting untuk

koneksi ke LCD pada port B AVR.

#include <mega16.h>#include <stdio.h>#include <delay.h>

#define BarLED PORTD#define DIPSwitch PINC

// Alphanumeric LCD Module functions

#asm.equ __lcd_port=0x18 ;PORTB

#endasm#include <lcd.h>

// Declare your global variables hereunsigned char xstring[3]; 

void main(void) { // Declare your local variables here

// Input/Output Ports initialization

// Port A initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTA=0x00; DDRA=0x00; 

// Port B initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTB=0x00; DDRB=0x00; 

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=PPORTC=0xFF; DDRC=0x00; 

// Port D initialization

Page 9: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 9/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 24

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTD=0xFF

; DDRD=0xFF; 

// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0x00; TCNT0=0x00; OCR0=0x00; 

// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; 

// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: Disconnected

ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; 

// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00; MCUCSR=0x00; 

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00; 

// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80; 

Page 10: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 10/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 25

SFIOR=0x00; 

// LCD module initializationlcd_init(16); lcd_gotoxy(1,0);lcd_putsf("DIPSwitch to LCD"); delay_ms(2000); 

 while (1) { // Place your code herelcd_gotoxy(1,0);lcd_putsf("Data DIPSwitch"); lcd_gotoxy(5,1);sprintf(xstring,"%d",DIPSwitch);lcd_puts(xstring); delay_ms(100); lcd_clear(); BarLED = DIPSwitch; 

}; } 

3.   Akses External Interrupt dengan output Buzzer dan LCD

Mengaktifkan External Interrupt untuk menerima signal eksternal menggunakan Push-Button

yang terhubung dengan INT0 [PORTD.2] dan INT1 [PORTD.3].

Untuk LCD bisa diakses maka jumper 3 harus dihubungakan pada 2-3.

#include <mega16.h>#include <delay.h>

#define Buzzer PORTA.3

Page 11: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 11/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 26

#define ON 1#define OFF 0

// Alphanumeric LCD Module functions#asm

.equ __lcd_port=0x18 ;PORTB#endasm#include <lcd.h>

// External Interrupt 0 service routineinterrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here

lcd_gotoxy(0,1);lcd_putsf("Ext. Int. 0"); Buzzer=ON; delay_ms(100); Buzzer=OFF; 

// External Interrupt 1 service routineinterrupt [EXT_INT1] void ext_int1_isr(void) { // Place your code here

lcd_gotoxy(0,1);lcd_putsf("Ext. Int. 1"); Buzzer=ON; delay_ms(100); Buzzer=OFF; 

// Declare your global variables here

void main(void) { // Declare your local variables here

// Input/Output Ports initialization// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=TPORTA=0x00; DDRA=0x08; 

// Port B initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTB=0x00; DDRB=0x00; 

// Port C initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTC=0x00; DDRC=0x00; 

// Port D initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

Page 12: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 12/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 27

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTD=0x00; 

DDRD=0x00

// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0x00; TCNT0=0x00; OCR0=0x00; 

// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; 

// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: DisconnectedASSR=0x00; 

TCCR2=0x00; TCNT2=0x00; OCR2=0x00; 

// External Interrupt(s) initialization// INT0: On// INT0 Mode: Falling Edge// INT1: On// INT1 Mode: Rising Edge// INT2: OffGICR|=0xC0; MCUCR=0x0E; MCUCSR=0x00; 

GIFR=0xC0; 

// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00; 

// Analog Comparator initialization

Page 13: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 13/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 28

// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80

; SFIOR=0x00; 

// LCD module initializationlcd_init(16); 

// Global enable interrupts#asm("sei")lcd_gotoxy(0,0);lcd_putsf("Tipe Interrupt"); 

 while (1) { // Place your code here

}; } 

Page 14: 01 DigitalInput Dan ExtInt 2014 Ver1.40

7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40

http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 14/14

Modul Praktikum Mikrokontroler 2014

taufiq[at]pens[dot]ac.id 29

TUGAS

1. 

Pada percobaan ke-2, ubah data type data output dari integer “%d” ke “%x”. Amati danjelaskan hasil yang didapat

2.  Pada percobaan ke-3, ubah mode sinyal eksternal interrupt pada INT1 secara bergantian

dari “Any Change” kemudian “Low Level”. Amati hasil yang didapatkan.

3.  Jelaskan masing-masing mode masukan dari eksternal interrupt?

4.  Cuplik program untuk menginisialisasi LCD selain PORTB dengan LCD 20 atau 24 karakter

yang memiliki 4 baris. Jelaskan!

5. 

Jelaskan syntax berikut ini :a.  Sprintf

b.  Lcd_init

c.  Lcd_clear

d.  Lcd_gotoxy

e.  Lcd_putsf

f.  Lcd_puts

6.  Cuplik register pada yang dihasilkan dari eksternal interrupt, kemudian jelaskan status tiap

bit dari register untuk tiap mode sinyal yang masuk?

7.  Catat pemakaian memory flash yang dipakai dari masing-masing percobaan.

8.  Kemudian jelaskan setiap baris terhadap syntax dari semua percobaan diatas kemudian

tarik kesimpulan. [tulis program yang bagian utamanya saja dengan ballpoint warna hitam

kemudian beri komen dengan ballpoint warna biru]

9.  Buat laporan resmi berdasarkan hasil pengamatan.!