JUDUL
NOMOR PERCOBAAN
: 1,2 dan 3 : Mengaktifkan Led, Mengaktifkan Seven Segment, dan Membuat Counter Dengan Seven Segment
LEMBAR PENGESAHAN
Nomor percobaan Judul pratikum : 1,2 dan 3 : Mengaktifkan Led, Mengaktifkan Seven Segment, dan Seven Segment Nama Nomor BP Kelas Tanggal pratikum Tanggal penyerahan Keterangan Nilai Pembimbing : : : 1. Nadia Alfitri ,ST.MT 2. Hendrick ,ST.MT : Rian Fernando : 0901041001 : III A EC Reguler : : Membuat Counter Dengan
1. Mengetahui cara pengaktifan Led dan seven segment menggunakan Mikrokontroller AVR Atmega 8535
dengan
2. Mengetahui cara menggunakan software CodeVision AVR sebagai editor program dan compiler untuk pemrograman dengan menggunakan AVR. 3. Mengetahui penggunaan software Proteus sebagai simulator dari pemrograman AVR yang telah dibuat. I.2 LANDASAN TEORI Mikrokontroller ATmega8535 merupakan mikrokontroller generasi AVR (Alf and Vegard Risk processor). Mikrokontroller AVR memiliki s arsitektur RISC (Reduced Instruction Set Computing) 8 bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 siklus clock. Arsitektur ATmega8535 ATmega8535 memiliki bagian sebagai berikut : 1 2
3
Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D. ADC 10 bit sebanyak 8 saluran. Tiga buah Timer/Counter dengan kemampuan pembandingan. CPU yang terdiri atas 32 buah register. Watchdog Timer dengan osilator internal. SRAM sebesar 512 byte. Memori Flash sebesar 8 Kb dengan kemampuan Read While Write. Unit interupsi internal dan eksternal. Port antarmuka SPI. sebesar 512 byte yang dapat diprogram saat operasi.
4
5
6
7
8 9
11 Antarmuka komparator analog. 12 Port USART untuk komunikasi serial dengan kecepatan maksimal 2,5 Mbps. 13 Sistem mikroprosessor 8 bit berbasis RISC dengan kecepatan maksimal 16 3
MHz.
BAB II PERCOBAAN
D1
016L
U1
1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 R 0(2) 13 12 9 PB 0/T0/XCK PB 1/T1 PB 2/A IN0/INT2 PB 3/A IN1/OC0 PB 4/SS PB 5/M OSI PB 6/M ISO PB 7/SCK PD 0/RXD PD 1/TXD PD 2/INT0 PD 3/INT1 PD 4/OC1B PD 5/OC1A PD 6/ICP1 PD 7/OC2 XTAL1 XTAL2 R ES ET A TM EGA 8535 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 P C 0/SCL P C1/SDA P C2 P C3 P C4 P C5 PC 6/TOS C1 PC 7/TOS C2 A REF A VCC 40 39 38 37 36 35 34 33 22 23 24 25 26 27 28 29 32 30
V SS V DD V EE
RS RW E 4 5 6
1 2 3
7 8 9 10 11 12 13 14
D0 D1 D2 D3 D4 D5 D6 D7
R8 R7 R6 R5 R4 R3 R2 R1
1k 1k 1k 1k 1k 1k 1k 1k
D8 D7 D6 D5 D4 D3 D2 D1
LE D -GREEN LE D-GREEN LE D-GR EEN LE D-GREEN REEN LE D-GR EEN LED -GREEN LED-GREEN LED-G
R0
0k
X1
C3
4u7
C1
22p
CRYSTA L
C2
22p
U2
7 1 2 6 4 5 3 A B C D BI/RBO RBI LT 7447 QA QB QC QD QE QF QG 13 12 11 10 9 15 14
Q1
BC557
Q2
BC557
Q3
BC557
Q4
BC557
LCD1
LM016L
R1
560
R2
560 VCC
R3
560 VCC
R4
560 VCC
U1
1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 R0(2) 13 12 9 PB0/T0/XCK PB1/T 1 PB2/AIN0/INT2 PB3/AIN1/O C0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 XTAL1 XTAL2 RESET ATMEGA8535 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2 AREF AVCC 40 39 38 37 36 35 34 33 22 23 24 25 26 27 28 29 32 30 VSS VDD VEE
VCC
RS R W E 4 5 6
1 2 3
VCC
R0
10k
7 8 9 10 11 12 13 14
D0 D1 D2 D3 D4 D5 D6 D7
X1
C3
4u7
C1
22p
CRYSTAL
C2
22p
II.II LANGKAH KERJA 1. Awalnya buka CodeVisionAVR, kemudian buka file dan klik New atau Ctrl+N
3. Selanjutnya pilh tipe Mikrokontorler yang digunakan,dalam hal ini yang digunakan ialah Atmega 8535 dengan clocknya yaitu 8 Mhz.
4. Selanjutnya pilih ports yang digunakan sebagai output, dalam praktek kali ini PortC yang digunakan sebagai output sesuai dengan gambar rangkaian.
5. Terakhir pilih file untuk menyimpan wizzard dari pilihan yang telah dilakukan tadi dengan memilih generete,save and exit kemudian editor program siap digunakan.
6. Untuk melakukan simulasi dengan proteus diharuskan mendownload file hex dari program yang dibuat pada codeVisionAVR dengan 7
mengklik IC mikrokontroller lalu pilih program file dan cari dimana file hex disimpankan kemudian ok.
III.I PROGRAM 1. Program untuk mengaktifkan led(program counter dengan led) while (1) { // Place your code here //for(nilai awal;batas;++) //{ //proses //} for(i=0;i<256;i++) { PORTC=i; delay_ms(100); } delay_ms(100); }; 2. Program untuk mengaktifkan7 segment while (1) { // Place your code here for(i=0;i<10;i++) { PORTC=i; delay_ms(100); } delay_ms(100); }; 3. Program counter while (1) { // Place your code here for(count=0;count<=1024;count++) { ribuan=count/1000%10; ratusan=count/100%10; puluhan=count/10%10; satuan=count%10; PORTC=0b11100000|ribuan; delay_ms(50); PORTC=0b11010000|ratusan; delay_ms(50); 9
10
Penghitungan dengan simulasi ini akan terus berlangsung hingga seluruh led hidup atau maksudnya data yang ditampilkan telah mencapai 255, dimana hal ini sesuai dengan program yang telah dibuat. 2. Hasil percobaan pengaktifan seven segment
Perhitungan pada simulasi akan terus berjalan hingga mencapai tampilan 1024 sesuai dengan program yang telah dibuat pada codeVision AVR. III.III ANALISA 12
Pada percobaan melakukan counter dengan tampilan LED digunakan fungsi for dengan format program : //for(nilai awal;batas;++) //{ //proses //} Hal ini maksud nya ialah diberikkan nilai awal dalam program ini dimulai dari 0 , kemudian nilai nol ini diberi batasan untuk perhitungannya (counternya) hingga 256 dengan lompatan counternya yakni satu satu. Selanjutnya pada proses digunakan PortC sebagai output sama dengan nilai awal. Untuk program pengaktifan seven segment sama halnya dengan program led namun bedanya nilai batasan yang diberikan yakni 10 hal ini dikarenakan pada seven segment mampu menampilkan hingga angka 9 saja. Untuk program counter dengan seven segment digunakan fungsi modulus,hal ini dimaksudkan untuk menyimpan sisa pembagian dari nilai yang akan ditampilkan yaitu dari nilai ribuan, ratusan, puluhan dan satuan. Dari hasil bagian ribuan maka akan ditampilkan pada 7 segment dengan data biner 0b1110 0000,dalam hal ini 4 digit dari kiri digunakan untuk tampilan seven segment dimana nilai 1 menandakan segment mati dan nilai 0 menandakan segment hidup. Untuk digit ratusan, puluhan dan satuan sama halnya dengan ribuan dan dapat dilihat seperti program dibawah ini. for(count=0;count<=1024;count++) { ribuan=count/1000%10; ratusan=count/100%10; puluhan=count/10%10; satuan=count%10; PORTC=0b11100000|ribuan; delay_ms(50); PORTC=0b11010000|ratusan; delay_ms(50); PORTC=0b10110000|puluhan; delay_ms(50); PORTC=0b01110000|satuan; delay_ms(50);
BAB IV PENUTUP
13
IV.1. KESIMPULAN 1. Untuk menampilkan output dari mikrokontroller Atmega8535 maka pada saat penyetingan awal codeVisionAVR haruslah Port yang digunakan difungsikan terlebih dahuku sebagai output. 2. Fungsi modulus pada program counter seven segment digunakan karena seven segment hanya mampu menampilkan hingga satuan saja maka modulus inilah yang berfungsi untuk menyimpan sisa pembagian dari ribuan hingga satuan. 3. Pada program counter led maupun dengan seven segment haruslah diperhatikan nilai batasan yang diberikan. 4. Pernyataan For pada program akan melakukan pengulangan beberapakali sesuai yang diinginkan dimana sebelumnya jika kondisi true maka barulah pernyataan-pernyataan dalam for dijalankan. 5. Sebelum menjalankan rangkaian dengan simulasi proteus maka download terlebih dahulu program filenya terlebih dahulu.
14