01 digitalinput dan extint 2014 ver1.40
TRANSCRIPT
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
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
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
o
o
o
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
7/23/2019 01 DigitalInput Dan ExtInt 2014 Ver1.40
http://slidepdf.com/reader/full/01-digitalinput-dan-extint-2014-ver140 4/14
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 :
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
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!
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
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;
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
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
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
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
}; }
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.!