230 likes | 421 Views
I/O PADA MIKROKONTROLER AVR. SISTEM MIKROPROSESSOR UNIVERSITAS JENDERAL ACHMAD YANI RIZAL SURYANA. I/O. Perangkat I/O digunakan oleh processor untuk berkumikasi dengan dunia luar
E N D
I/O PADA MIKROKONTROLER AVR SISTEM MIKROPROSESSOR UNIVERSITAS JENDERAL ACHMAD YANI RIZAL SURYANA
I/O • Perangkat I/O digunakanoleh processor untukberkumikasidengandunialuar • Perangkat I/O merupakanpengkondisisinyalsebelumdapatdiolaholeh processor atausetelahdiolahprosessorygnberupa data digital • Logika1 (high) = 5 Volt danLogika 0 (low) = 0 Volt
I/O berkomunikasidenganprosessor • Programmed I/O Prosessormengirimdanmenerima data pada I/O sesuaiinstruksi • Interrupt-driven I/O sinyaldariluarmengatureksekusiintruksiprosessor. • Direct Memory Access (DMA) Memungkinkantrasnsfer data langsungantara peripheral I/O denganMemoritanpaketerlibatanProsessor.
REGISTER I/O • DDRx • Portx • PINx
REGISTER DDRx • Digunakanuntukmemiliharah pin • JikaDDRx = 1 sebagai output • JikaDDRx = 0 sebagai input
REGISTER Portx • Register Portxdigunakanuntuk 2 keperluan • Portxberfungsisebagai output jikaDDRx = 1 • Portxn = 1 maka pin Pxnakanberlogika high • Portxn = 0 maka pin Pxnakanberlogika low • Portxberfungsiuntukmengaktfikan resistor pullupjikaDDRx = 0 • Portxn = 1 maka pin Pxnsebagai pin input dengan resistor pull up • Portxn = 0 maka pin Pxnsebagai pin input tanpa resistor pull up
ContohPenggunaan I/O • Bahasa Assembler • In r16, PinA • Out PortA, r17 • Sbi PortB,7 • Cbi PortB,5 • Sbic PortA,3 • Sbis PortC,1 • Bahasa C • PORTA = 12 • nilaiA = PINB • bitFlag = PINC.2 • PORTD.0 = 1 • PORTD.4 = 0
TIMER/COUNTER • Fasilitas yang dimilikimikrokontrolleruntukmembuat delay atautundaan • Padadasarnyahanyamenghitungpulsa clock • Frekuensipulsa clock yang dihitungtersebutbisasamadenganfrekuensi crystal ataudiperlambatdenganmenggunakanprescaler (8, 64, 256 dan 1024)
FASILITAS TIMER/COUNTER AVR • Timer/Counter0 8 bit • Timer/Counter1 16 bit • Timer/Counter2 8 bit • 8 bit dan 16 bit adalahjumlah data yang bisaditampungpada register penampungnya
PERHITUNGAN NILAI MAKSIMUM TIMER • Sebuah AVR menggunakan Crystal 8 MHz dan Timer 16bit, makawaktumaksimum timer yang dihasilkanadalah : TMAX = 1/fCLK x (FFFFH + 1) = 0.125uS x 65536 = 0.008192 Second • Untukmenghasilkanwaktu Timer yang lebih lama dapatdigunakanprescaler, misalnya 1024 : TMAX = 1/fCLK x (FFFFH + 1) x N = 0.124uS x 65536 x 1024 = 8.388608 Second
REGISTER PENGATURAN TIMER • TCNT digunakanuntukmenyimpannilai timer yang diinginkan, register inibisaterdiridari 8 (TCNTx) atau 16 bit (TCNTxHdanTCNTxL)
Timer Interrupt Mask Register (TIMSK) dan Timer Interrupt Flag Register (TIFR) digunakanuntukmengendalikan interrupt mana yang diaktifkan
REGISTER TCCR1B • Counter Register B digunakanuntukmengatur mode timer, prescalerdanpilihanlainnya • Cs12..10 : Clock select bits digunakanuntukmemilihprescaler
PERHITUNGAN TIMER • TCNT Nilai timer (Hex) • Fclk Frekuensi clock (crystal) yang digunakan (Hz) • Timer -> Wktu timer yang diinginkan (detik) • N Prescaler (1,8,64,256,1024) • 1 + FFFFH Nilai max timer adalah FFFFH dan overflow
Contoh • Seorang Programmer menghendakitundaan/delay selama 1 detik, menggunakanfrekeunsiOsilator 11,0592MHz danprescaler 1024 • Nilai TCNTH = D5H dan TCNTL = D0H
MenghitungNilaiMaksimum Delay • Sebuah AVR menggunakanOsilator 11,0592MHz berapaNilaiMaksimumnya