Anda di halaman 1dari 6

PRAKTEK I APLIKASI PEWAKTU TERPROGRAM MENGGUNAKAN ATMEGA 8535

I.

Cara kerja alat Alat yang kita buat kali ini berfungsi sebagai pewaktu terprogram menggunakan atmega 8535,alat ini bisa digunakan sebagai pewaktu mundur 1 detik.yaitu dengan cara kita mengeset suatu nilai tertentu setelah itu apabila kita tekan tombol pada PD.0 maka counter akan mulai menghitung mundur sampai angka 0 setelah sampai angka 0 maka sebagai indikator led akan menyala.

II.

Schematic rangkaian proyek

desain rangkaian, juga kerja alat secara lengkap Display 7-segment pada PA.0-PA.7 COMMON 7-segment terhubung dengan PC.0 dan PC.1 Indikator led terhubung dengan PC.6 scan tombol reset terhubung dengan PD.3 scan tombol up terhubung dengan PD.2 scan tombol down terhubung dengan PD.1 scan tombol start terhubung dengan PD.0

Cara kerja rangkain Apabila tombol up ditekan maka isi dari counter akan bertambah 1,penambahan dibatasi sampai angka 60. Apabila tombol down ditekan maka isi dari counter akan berkurang 1,pengurangan dibatasi sampai angka 0. Apabila tombol start ditekan maka isi dalam counter akan dikurangi 1 sampai angka 0 dengan pewaktu pengurangan setiap 1 angka = 1 detik.setelah setelah sampai angka 0 maka pada PC.6 akan berlogika 1maka transistor akan saturasi dan led akan menyala sebagai indikator .

III.

Flow chart program proyek Flow chart basis waktu satu detik

alur kerja flowchart

Saat awal program inisialisasi timer 1, counter ditambah 1 PORTC = bitwais dari isi counter kemudian apakah counter=10 jika tidak kembali ke reti jika sama clear isi counter dan stop timer 1.

Flow chart display

alur kerja flowchart

Awal program baca nilai (value) puluhan diisi dengan value/10 hasilnya disimpan divariable puluhan,kemudian satuan diisi dengan value%10 (hasilnya disimpan divariable satuan) isi variable Lc ditambah 1,data bcd puluhan dikeluarkan pada output nyalakan segment puluhan selama 500 ms kemudian matikan selama 5 ms,keluarkan data bcd satuan kemudian nyalakan segment satuan selama 500 ms kemudian matikan selama 5 ms,apakah isi dari variable Lc= 31 bila tidak tambah isi Lc (+1) bila sama Lc=31 maka buat nilai Lc 0 kembali dan kembali ke progarm dibawah interupsi yang ditinggalkan tadi.

Flow chart keseluruhan

alur kerja flowchart

Saat awal program inisialisasi timer 1 berbasis 1 detik ,jika flag = 0 maka jalankan program yang mendeteksi penscanan tombol up dan down, jika flag =1 maka jalankan program yang mendeteksi penscanan tombol reset. Bila tombol up ada penekanan maka akan menambah nilai di lanjutkan mengeksekusi program berikutnya, jika TIDAK maka akan melihat baris program berikutnya apakah mendapat respon (penekanan tombol push button) dan apakah count >60 jika IYA akan mengeksekusi program berikutnya dan jika tidak maka akan COUNT + yang berarti akan bertambah nilainya dan apakah sudah =60. Selanjutnya pendeteksian pada tombol push button DOWN COUNTER apakah = 0 jika IYA jika tidak maka akan mendeteksi flowchat berikutnya apakah mendapat penekanan pada Push Buttonnya atau tidak selanjutnya akan di deteksi lagi apakah <1 jika IYA maka akan menjadi =0 dan jika tidak maka akan mendeteksi pada push button RESET . Apakah Tombol Reset push button di tekan jika IYA maka dapat di artikan bahwa program akan dieksekusi dan akan berada pada posisi seperti awal dan jika tidak maka akan mendeteksi isi timer jika ada perbandingan pada saat mengeksekusi kali ini apakah saat pensettingan > 0 jika IYA maka program akan jalan counting down dan setelah mencapai angka paling rendah yaitu 0 timer menghentikan laju penghitungan . TIM akan di NOT kan selanjutnya akan mendeteksi pada flag display =1 ,jika variable TIM =1 maka berarti program telah selesai.

IV. Pembuatan kode program (berdasarkan flowchart)


-

Kode program basis waktu satu detik 49 // Timer 1 overflow interrupt service routine 50 interrupt [TIM1_OVF] void timer1_ovf_isr(void) 51 { 52 // Reinitialize Timer 1 value 53 TCNT1H=0xC2; 54 TCNT1L=0xF7; 55 // Place your code here 56 //count++; //maju 57 count--; //mundur 58 if(count==0){ //mundur 59 //if(count==setting) {//maju 60 count=0; 61 TCCR1A=0x00; 62 TCCR1B=0x00; 63 TCNT1H=0x00; 64 TCNT1L=0x00; 65 PORTC.6=1; 66 tim=1; 67 } 68 }

Program diatas sebagai inisialisasi basis waktu 1 detik yaitu dengan cara mengisi 53 TCNT1H=0xC2; // supaya timer berbasis selama 1 detik.

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

54 TCNT1L=0xF7; Kode program display

void tampil(unsigned char nilai){ unsigned char pul,sat,lc; pul=nilai/10; sat=nilai%10; for(lc=0;lc<0x1f;lc++) { PORTA=bcd[pul]; PORTC.0=0; delay_us(500); PORTC.0=1; delay_ms(5); PORTA=bcd[sat]; PORTC.1=0; delay_us(500); PORTC.1=1; delay_ms(5); }

Program diatas sebagai program display sistem scaning dengan delay scaning selama on 500 us dan saat off selama 5ms.

Kode program keseluruhan

V.kesimpulan

Proyek diatas merupakan Aplikasi pewaktu terprogram menggunakan atmega 8535 dengan basis waktu satu detik.pada proyek diatas untuk basis waktu 1 detik menggunakan timer 1 dengan cara mengisi TCNT1H=0xC2; // supaya hasil timer selama 1 detik. TCNT1L=0xF7 Untuk tampilan display menggunakan 7 segment dengan sistem scaning. Cara kerja rangkain diatas -Apabila tombol up ditekan maka isi dari counter akan bertambah 1,penambahan dibatasi sampai angka 60, Apabila tombol down ditekan maka isi dari counter akan berkurang 1,pengurangan dibatasi sampai angka 0. -Apabila tombol start ditekan maka isi dalam counter akan dikurangi 1 sampai angka 0 dengan pewaktu pengurangan setiap 1 angka = 1 detik.setelah setelah sampai angka 0 maka pada PC.6 akan berlogika 1maka tr akan saturasi dan led akan menyala sebagai indikator .

Anda mungkin juga menyukai