Indikator Soal
|
|
Disajikan struktur mikroprosesor, siswa dapat
menjelaskan bagian utama mikroprosesor
|
|
Disajikan bagian mikroprosesor, siswa dapat
menjelaskan fungsinya
|
|
Disajikan fungsi bagian mikroprosesor, siswa dapat
menyebutkan bagian mikroprosesor
|
|
Disajikan nama register, siswa dapat menjelaskan
fungsinya
|
|
Disajikan system mikroprosesor, siswa dapat
mengidentifikasikan komponen input output
|
|
Disajikan system mikroprosesor, siswa dapat
mengidentifikasikan komponen penyimpan program
|
|
Disebutkan nama bagian system mikroprosesor, siswa
dapat menjelaskan fungsinya
|
|
Dijelaskan fungsi bagian system mikroprosesor, siswa
dapat menyebutkan komponen system mikroproseor
|
|
Disebutkan jenis memory, siswa dapat menjelaskan
sifat-sifatnya
|
|
Disajikan sifat-sifat memory, siswa dapat menentukan
jenis memori.
|
|
Disajikan fungsi SFR, siswa dapat menentukan jenis
memorinya.
|
|
Disajikan alamat memori, siswa dapat menjelaskan
akses memori langsung
|
|
Disajikan alamat memori, siswa dapat menjelaskan
akses memori tak langsung
|
|
Disajikan peta memory mikrokontroler atmega8535,
siswa dapat menentukan alamat memory
|
|
Disajikan data special function register, siswa
dapat menjelaskan pengaruhnya terhadap eksekusi program
|
|
Disajikan aplikasi IDE Bahasa C, siswa dapat
menentukan area menuliskan program.
|
|
Disajikan program dalam bahasa C, siswa dapat
menentukan urutan struktur bahasa C.
|
|
Disajikan program dalam bahasa C, siswa dapat
melakukan proses kompilasi
|
|
Disajikan aplikasi program downloader, siswa dapat menentukan
urutan pengunduhan file.
|
|
Disajikan nama register I/O, siswa dapat menentukan
fungsinya
|
|
Disajikan fungsi
register I/O, siswa dapat menyebutkan nama register
|
|
Disajikan keperluan pengiriman data melalui I/O
parallel, siswa dapat menentukan data direction register
|
|
Disajikan data direction register, siswa dapat
menentukan arah pengiriman data.
|
|
Disajikan pengiriman data keluar, siswa dapat
menuliskan program inisialisasi I/O
|
|
Disjaikan pengambilan data masuk, siswa dapat
menuliskan program inisialisasi I/O
|
|
Disajikan gambar rangkaian antarmuka LED, siswa
dapat menghitung tahanan seri
|
|
Disajikan data masukan sevensegment, siswa
menentukan angka tampilan dan jenis komon
|
|
Disajikan gambar tampilan pada layar LCD, siswa
dapat menuliskan programnya.
|
|
Disajikan proses yang terjadi pada ADC, siswa dapat
menjelaskan proses pengkodean
|
|
Disajikan nama register ADC, siswa dapat menjelaskan
fungsinya
|
|
Disajikan fungsi dan data register ADMUX, siswa
dapat menentukan saluran masukan ADC.
|
|
Disajikan tegangan masukan tunggal tanpa penguatan
dan tegangan referensi internal ADC, siswa dapat menghitung nilai hasil
konversi dalam bilangan decimal.
|
|
Disajikan suhu lingkungan dari sensor panas LM35
yang dihubungkan dengan system mikroprosesor, siswa dapat menentukan angka
yang ditampilkan LCD karakter.
|
|
Disajikan program konversi ADC, siswa dapat
menjelaskan instruksinya
|
|
Disajikan program aplikasi IDE CVAVR, siswa dapat
menunjukkan letak informasi kesalahan.
|
|
Disajikan informasi kesalahan program dari compiler,
siswa dapat menafsirkan infromasi kesalahan.
|
|
Disajikan program yang mengalami kesalahan syntak,
siswa dapat menentukan urutan langkah perbaikan.
|
|
Disajikan struktur program bahasa C, siswa dapat
menentukan letak kasalahan program
|
|
Disajikan program pengambilan data, siswa dapat
menentukan instruksi yang salah.
|
|
Disajikan program pengiriman data, siswa dapat
menentukan instruksi yang benar
|
Blog ini memuat tentang Teknik Elektronika, Teknik Digital, Teknik Mikroprosesor, Teknik Mikrokontroler.
Jumat, 11 Mei 2018
Kisi-kisi Soal UAS Genap 2018
Senin, 26 Maret 2018
Port IO Atmega8535
Port Input / Output Paralel
Port Input Output (PIO) berfungsi untuk menghubungkan mikroprosesor dengan perangkat luar, seperti papan ketik, sensor, saklar sebagai perangkat masukan dan layar LCD, penggerak motor, penggerak lampu sebagai perangkat keluaran. Pada Port Input Output Paralel, data dikirim dan diterima secara serentak sebanyak 8 bit sesuai lebar data bus. Terdapat empat group PIO dan setiap group memiliki 8 kaki (pin). Masing-masing Group diberikan nama PORTA, PORTB, PORTC dan PORTD.
Semua I/O dan
periferal ATmega8535 ditempatkan di ruang I/O. Lokasi I/O diakses dengan
instruksi IN dan OUT, untuk mentransfer data antara 32 register I/O dan ruang register serbaguna (GPR). Register I/O dalam kisaran alamat 0x00-0x1F diakses secara langsung
menggunakan instruksi SBI dan CBI. Dalam register tersebut, nilai bit tunggal
dapat diperiksa dengan menggunakan instruksi SBIS dan SBIC. Ketika menggunakan
perintah khusus IN dan OUT I/O, alamat I/O 0x00-0x3F harus digunakan. Ketika
menangani Register I/O sebagai ruang data menggunakan instruksi LD dan ST, 0x20
harus ditambahkan ke alamat ini. Alamat register I/O tercantum pada tabel 1.
Tabel 1. Alamat register I/O
Register alamat I/O alamat memori
PORTA 0x1B 0x3B
DDRA 0x1A 0x3A
PINA 0x19 0x39
PORTB 0x18 0x38
DDRB 0x17 0x37
PINB 0x16 0x36
PORTC 0x15 0x35
DDRC 0x14 0x34
PINC 0x13 0x33
PORTD 0x12 0x32
DDRD 0x11 0x31
PIND 0x10 0x30
Tabel 1. Alamat register I/O
Register alamat I/O alamat memori
PORTA 0x1B 0x3B
DDRA 0x1A 0x3A
PINA 0x19 0x39
PORTB 0x18 0x38
DDRB 0x17 0x37
PINB 0x16 0x36
PORTC 0x15 0x35
DDRC 0x14 0x34
PINC 0x13 0x33
PORTD 0x12 0x32
DDRD 0x11 0x31
PIND 0x10 0x30
Semua Port
AVR memiliki kegunaan Baca-Modifikasi-tulis yang sesungguhnya ketika digunakan
sebagai Port I/O digital secara umum. Maksudnya bahwa arah dari satu pin port dapat
diubah tanpa mempengaruhi pin yang lain dengan instruksi SBI dan CBI. Cara yang
sama ketika mengubah nilai pendorong (jika dikofigurasi sebagai keluaran) atau
enable/disable resistor pull-up (jika dikonfigurasi sebagai input). Setiap
bufer keluaran memiliki karakteristik dorong yang simetris dengan pembenaman tinggi
dan kemampuan sumber. Pendorong pin cukup kuat untuk mendorong tampilan LED
secara langsung. Semua Pin port dapat memilih resistor pull-up individual
dengan satu macam resistor tegangan catu. Semua pin I/O memiliki diode
pelindung ke VCC dan Ground seperti tampak pada gambar 1.
Gambar 1. rangkaian dasar port I/O
Semua referensi register dan bit dalam bagian ini ditulis dalam
bentuk umum. Huruf kecil “x” menunjukkan huruf nomor untuk Port, huruf kecil
“n” menunjukkan nomor bit. Namun demikian ketika menggunakan definisi register
atau bit didalam program, bentuk yang tepat harus digunakan. Misalnya, PORTB3
untuk bit no.3 di Port B, di sini didokumentasikan secara umum sebagai PORTxn.
Tiga lokasi
alamat memori I/O dialokasikan untuk masing-masing port, masing-masing untuk
Data Register - PORTx , Data Direction Register - DDRx , dan Pin Port Input -
PINx. Lokasi Port input PINx I/O hanya dibaca saja, sedangkan Register Data dan
Data Direction Register dapat dibaca/ditulis. Selain itu, bit Pull-up Disable -
PUD di SFIOR menonaktifkan fungsi pull-up untuk semua pin di semua port ketika
ketika diset. Kebanyakan pin port dimultiplexing dengan fungsi alternatif untuk
fitur perangkat periferal. Perhatikan bahwa mengaktifkan fungsi alternatif dari
beberapa pin port tidak mempengaruhi penggunaan pin lainnya di port sebagai
general digital I/O.
Port I/O adalah port dua arah (bi-directional) dengan opsional
internal pull-up. Gambar 1. menunjukkan deskripsi fungsional dari satu pin
I/O-port, di sini umumnya disebut Pxn. Setiap pin PORT terdiri dari tiga bit register:
DDxn , PORTxn , dan PINxn. bit DDxn diakses di alamat DDRx I/O, bit PORTxn di
alamat PORTx I/O , dan bit PINxn di alamat Pinx I/O. Bit DDxn dalam Register DDRx memilih arah data pin ini. Jika DDxn
ditulis logika satu, Pxn dikonfigurasi sebagai pin output. Jika DDxn ditulis
logika nol, Pxn dikonfigurasi sebagai pin input.
Gambar 2. blok diagram PORT I/O
SALURAN MASUKAN
Konfigurasi pin sebagai masukan apabila DDRx ditulis logika nol (0). Jika PORTxn ditulis logika nol (0) dan pin dikonfigurasi sebagai
pin input (DDRx=0), maka pull-up resistor dinon-aktifkan, pengaturan semacam ini digunakan jika pin dihubungkan rangkaian digital yang memiliki status logika jelas ( 0 atau 1). Ketika pin tidak dihubungkan dengan rangkaian masukan, jika pin dibaca oleh mikroprosesor maka status logika tidak menentu (mengambang).
Gambar 3. RPU non-aktif, masukan terbaca mengambang
Gambar 4. RPU non-aktif, masukan terbaca nol
Untuk mengaktifkan resistor pull-up,
PORTxn harus ditulis logika satu (1) dan pin harus dikonfigurasi sebagai pin
masukan, DDRx ditulis nol (0). Ketika pin tidak terhubung dengan rangkaian yang mengambang, maka masukkan akan terbaca logika satu (1). sedangkan jika terhubung dengan rangkaian yang terhubung dengan ground maka akan terbaca nol (0).
Gambar 5. RPU aktif, masukan mengambang terbaca satu.
gambar 6. RPU aktif, pin terhubung dengan ground terbaca nol
Biasanya, resistor pull-up diaktifkan status sepenuhnya dapat diterima. Jika hal ini tidak ingin terjadi, bit PUD di register SFIOR dapat diset untuk menonaktifkan semua pull-up di semua port. SALURAN KELUARAN
Pinx akan berfungsi sebagai saluran keluaran jika DDRx ditulis logika 1. Jika PORTxn ditulis logika nol ketika pin dikonfigurasi sebagai pin keluaran, pin port didorong rendah (nol). jika sebuah LED kita hubungkan dengan Pinx maka LED tidak akan menyala.
Jika PORTxn
ditulis logika satu ketika pin dikonfigurasi sebagai pin output, pin PORT
didorong tinggi (satu). Jika sebuah LED kita hubungkan dengan pin maka LED akan menyala.
Pengaturan kaki port dan resistor pull-up dapat dilihat pada tabel 2.
Table 2. Konfigurasi Kaki
Port
DDxn
|
PORTxn
|
PUD (in SFIOR)
|
I/O
|
Pull-up
|
Comment
|
0
|
0
|
X
|
Masukan
|
Tidak
|
Tri-state
(Z-tinggi)
|
0
|
1
|
0
|
Masukan
|
Ya
|
Pxn
menghasilkan arus sumber jika keluaran ditarik rendah
|
0
|
1
|
1
|
Masukan
|
Tidak
|
Tri-state
(Z-tinggi)
|
1
|
0
|
X
|
Keluaran
|
Tidak
|
Keluaran
rendah(membenamkan)
|
1
|
1
|
X
|
Keluaran
|
Tidak
|
Keluaran
tinggi(Sumber)
|
INISIALISASI PORT I/O
Inisialisasi
Port I/O adalah mengatur fungsi awal Port sebagai masukan atau sebagai
keluaran. Contoh langkah-langkah membuat program untuk
menetapkan kondisi awal (inisialisasi)
sebuah Port I/O adalah sebagai berikut :
Membuat PORT A sebagai keluaran, langkah yang harus dilakukan adalah
menemukan alamat register arah data Port A (DDRA). Dalam data sheet dapat kita
temukan alamatnya adalah 0x1A. Untuk berfungsi sebagai keluaran maka setiap bit
DDRA harus diberikan data 1 sehingga diperoleh bilangan biner 11111111
(0b11111111) atau bilangan heksadesimal FF (0xFF). Untuk mengirimkan data keluar, data yang akan dikirim, misalnya
0x4F dapat diberikan pada alamat PORTA. Instruksi dalam bahasa C adalah :
#define DDRA 0x1A
//mendefinisikan DDRA dengan alamat 0x1A
#define PORTA 0X1B //mendefinisikan PORTA dengan alamat 0x1B
DDRA = 0xFF; //
mengisi DDRA dengan 0xFF (0b11111111)
PORTA = 0x4F; //
mengirim data 0x4F melalui PORTA
Membuat PORTB sebagai masukan, langkah yang harus dilakukan adalah menemukan alamat register arah data
Port
B (DDRB). Dalam data sheet dapat kita temukan
alamatnya adalah 0x17. Untuk berfungsi sebagai keluaran maka
setiap bit DDRA harus diberikan data 0 sehingga diperoleh bilangan biner 00000000 (0b00000000) atau bilangan heksadesimal 00 (0x00). Untuk saluran masukan perlu menentukan apakah Resistor pull-up
(RPU) diaktifkan atau tidak. Jika RPU diaktifkan, PIN akan terbaca 1 dalam
keadaan terbuka, misalnya masukkannya berupa tombol, terbaca 0 jika PIN dihubungkan
dengan ground. Jika RPU tidak diaktifkan, keadaan masukkan bergantung dari,
logika output masukkannya. Tetapi jika masukkan terbuka keadaannya mengambang.
Untuk mengaktifkan RPU register PORTB diberikan logika 1. Alamat register PORTB
adalah 0x18. Pembacaan data luar dengan memindahkan data dari register PINB ke
sebuah variable. Register PINB memiliki alamat 0x16. Contoh Instruksi dalam
bahasa C adalah :
#define PINB 0x16 //mendefinisikan PINB dengan alamat 0x16
#define DDRB 0x17
//mendefinisikan DDRB dengan alamat 0x17
#define PORTB 0X18 //mendefinisikan PORTB dengan alamat 0x18
Char DataInput; //membuat variable DataInput
DDRB = 0x00; //
mengisi DDRB dengan 0x00 (0b00000000)
PORTB = 0xFF; //
mengaktifkan RPU
DataInput = PINB; // membaca data masukan pada PINB
Jika program
sudah menggunakan file header dari type mikroprosesor yang kita gunakan,
misalnya #include <mega8535>, maka instruksi definisi alamat register
tidak perlu dituliskan lagi, karena sudah dibuat pada file header.
Langganan:
Postingan (Atom)