Professional Documents
Culture Documents
Percobaan 01 IO Paralel PDF
Percobaan 01 IO Paralel PDF
R1 10k
U1 20 X1 24 23 51 50 49 48 47 46 45 44 10 11 12 13 14 15 16 17 35 36 37 38 39 40 41 42 62 64 RESET XTAL1 XTAL2 PA0/AD0 PA1/AD1 PA2/AD2 PA3/AD3 PA4/AD4 PA5/AD5 PA6/AD6 PA7/AD7 PB0/SS PB1/SCK PB2/MOSI PB3/MISO PB4/OC0 PB5/OC1A PB6/OC1B PB7/OC2/OC1C PC0/A8 PC1/A9 PC2/A10 PC3/A11 PC4/A12 PC5/A13 PC6/A14 PC7/A15 AREF AVCC ATMEGA128 PD0/SCL/INT0 PD1/SDA/INT1 PD2/RXD1/INT2 PD3/TXD1/INT3 PD4/ICP1 PD5/XCK1 PD6/T1 PD7/T2 PE0/RXD0/PDI PE1/TXD0/PDO PE2/XCK0/AIN0 PE3/OC3A/AIN1 PE4/OC3B/INT4 PE5/OC3C/INT5 PE6/T3/INT6 PE7/ICP3/INT7 PF0/ADC0 PF1/ADC1 PF2/ADC2 PF3/ADC3 PF4/ADC4/TCK PF5/ADC5/TMS PF6/ADC6/TDO PF7/ADC7/TDI PG0/WR PG1/RD PG2/ALE PG3/TOSC2 PG4/TOSC1 PEN 25 26 27 28 29 30 31 32 2 3 4 5 6 7 8 9 61 60 59 58 57 56 55 54 33 34 43 18 19 1
C3 10uF
CRYSTAL C1 1nF
C2 1nF
D9 LED-RED
D10 LED-RED
D11 LED-RED
D12 LED-RED
D13 LED-RED
D14 LED-RED
D15 LED-RED
D16 LED-RED
2. Buat program LAMPU BERJALAN menggunakan CodeVisionAVR sbb: //************** CONTOH 1.1 ************* #include <mega128.h> #include <delay.h> void main(void) { unsigned char data,ulang; PORTA=0x00; 1 MIKROPOSESOR DAN ANTARMUKA| Modul 01: I/O Paralel
DDRA=0xFF; while (1) { data=0x01; for (ulang=0;ulang<8;ulang++){ PORTA=data; delay_ms(100); data=data<<1; } }; } 3. Jalankan Simulasi
B. Tugas
1. Buat program LAMPU BERJALAN dengan arah sebaliknya ! 2. Buat program LAMPU BERJALAN dua arah bergantian !
R1 10k
U1 20 X1 24 23 51 50 49 48 47 46 45 44 10 11 12 13 14 15 16 17 35 36 37 38 39 40 41 42 62 64 RESET XTAL1 XTAL2 PA0/AD0 PA1/AD1 PA2/AD2 PA3/AD3 PA4/AD4 PA5/AD5 PA6/AD6 PA7/AD7 PB0/SS PB1/SCK PB2/MOSI PB3/MISO PB4/OC0 PB5/OC1A PB6/OC1B PB7/OC2/OC1C PC0/A8 PC1/A9 PC2/A10 PC3/A11 PC4/A12 PC5/A13 PC6/A14 PC7/A15 AREF AVCC ATMEGA128 PD0/SCL/INT0 PD1/SDA/INT1 PD2/RXD1/INT2 PD3/TXD1/INT3 PD4/ICP1 PD5/XCK1 PD6/T1 PD7/T2 PE0/RXD0/PDI PE1/TXD0/PDO PE2/XCK0/AIN0 PE3/OC3A/AIN1 PE4/OC3B/INT4 PE5/OC3C/INT5 PE6/T3/INT6 PE7/ICP3/INT7 PF0/ADC0 PF1/ADC1 PF2/ADC2 PF3/ADC3 PF4/ADC4/TCK PF5/ADC5/TMS PF6/ADC6/TDO PF7/ADC7/TDI PG0/WR PG1/RD PG2/ALE PG3/TOSC2 PG4/TOSC1 PEN 25 26 27 28 29 30 31 32 2 3 4 5 6 7 8 9 61 60 59 58 57 56 55 54 33 34 43 18 19 1
C3 10uF
CRYSTAL C1 1nF
C2 1nF
D9 LED-RED
D10 LED-RED
D11 LED-RED
D12 LED-RED
D13 LED-RED
D14 LED-RED
D15 LED-RED
D16 LED-RED
Gambar 1.2 Input DIP-Switch 2 MIKROPOSESOR DAN ANTARMUKA| Modul 01: I/O Paralel
1.2
A. Langkah kerja :
1. Buat skema menggunakan Proteus seperti terlihat pada Gambar 1.2 2. Buat program menggunakan CodeVisionAVR sbb: //************** CONTOH 1.2 ************* #include <mega128.h> #define PINTU 7 #define TOMBOL 1 void main(void) { DDRC = DDRC & ~(1<<TOMBOL); PORTC = PORTC | (1<<TOMBOL); DDRA = DDRA | (1<<LED); while (1) { if (PINC & (1 << TOMBOL)) PORTA = PORTA | (1<<LED); else PORTA = PORTA & ~(1<<LED); } } 3. Jalankan Simulasi.
B. Tugas
1. Buat diagram alir dari program Contoh 1.2 ! (Sebagai panduan, buka buku referensi [Mazidi dkk.], bab 4 dan bab 7) 2. Kembangkan Contoh 1.2 dengan menambahkan sebuah tombol yang terhubung ke Port C bit 5 untuk mengendalikan LED pada port A bit 3 ! Buat diagram alir dan programnya !
1.3
LED 7-SEGMEN
7SEG-MPX8-CA-BLUE
R1
10k
U1
20
X1
RESET XTAL1 XTAL2 PA0/AD0 PA1/AD1 PA2/AD2 PA3/AD3 PA4/AD4 PA5/AD5 PA6/AD6 PA7/AD7 PB0/SS PB1/SCK PB2/MOSI PB3/MISO PB4/OC0 PB5/OC1A PB6/OC1B PB7/OC2/OC1C PC0/A8 PC1/A9 PC2/A10 PC3/A11 PC4/A12 PC5/A13 PC6/A14 PC7/A15 AREF AVCC ATMEGA128
24 23 51 50 49 48 47 46 45 44 10 11 12 13 14 15 16 17 35 36 37 38 39 40 41 42 62 64
CRYSTAL
C3
100uF
C1
33pF
C2
33pF
PD0/SCL/INT0 PD1/SDA/INT1 PD2/RXD1/INT2 PD3/TXD1/INT3 PD4/ICP1 PD5/XCK1 PD6/T1 PD7/T2 PE0/RXD0/PDI PE1/TXD0/PDO PE2/XCK0/AIN0 PE3/OC3A/AIN1 PE4/OC3B/INT4 PE5/OC3C/INT5 PE6/T3/INT6 PE7/ICP3/INT7 PF0/ADC0 PF1/ADC1 PF2/ADC2 PF3/ADC3 PF4/ADC4/TCK PF5/ADC5/TMS PF6/ADC6/TDO PF7/ADC7/TDI PG0/WR PG1/RD PG2/ALE PG3/TOSC2 PG4/TOSC1 PEN
25 26 27 28 29 30 31 32 2 3 4 5 6 7 8 9 61 60 59 58 57 56 55 54 33 34 43 18 19 1
A. Langkah kerja
1. Buat desain pada Gambar 1.2 menggunakan Proteus. 2. Buat program berikut
//************** CONTOH 1.2 ************* #include <mega128.h> #include <delay.h> #include <stdio.h> #define data PORTE #define kendali PORTF flash unsigned char segment (unsigned char c) {char tab[11]={0xC0,0xF9,0xA4,0xB0 ,0x99 ,0x92 ,0x82, 0xF8 ,0x80,0X90,0xBF}; //tabel data untuk seven segmen return tab[c];} // Declare your global variables here void tampil_seg(unsigned char jam, unsigned char menit, unsigned char detik){ unsigned char h,j,k,l,m,n; h=jam/10; j=jam%10; k=menit/10; l=menit%10; m=detik/10; n=detik%10;
kendali=0x80; data=segment(n); delay_us(100); kendali=0x40; data=segment(m); delay_us(100); kendali=0x20; data=segment(10); delay_us(100); kendali=0x10; data=segment(l); delay_us(100); kendali=0x08; data=segment(k); delay_us(100); kendali=0x04; data=segment(10); delay_us(100); kendali=0x02; data=segment(j); delay_us(100); kendali=0x01; data=segment(h); delay_us(100); } void main(void){ unsigned char h,m,s; int i,ulang; DDRF=0xFF; DDRE=0xFF; while(1){ h=00; m=00; s=00; for(i=1;i<=10;i++) { for(ulang=1;ulang<=100;ulang++) { tampil_seg(h,m,s); } s=s++; } } }
3. Jalankan hasil compilasi Program di langkah 2 pada desain yang dibuat pada Gambar 1.2. Lihat hasilnya.
B. Tugas:
1. Buat dagram alir dari program contoh 1.2 ! 2. Buat diagram alir dan program menampilkan JAM DIGITAL !