P. 1
Cara Melakukan Simulasi Stopwatch Menggunakan Software Proteus

Cara Melakukan Simulasi Stopwatch Menggunakan Software Proteus

|Views: 2,245|Likes:

More info:

Published by: GungParamithaMaharaniPutra on Sep 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

06/29/2013

pdf

text

original

CARA MELAKUKAN SIMULASI MENGGUNAKAN SOFTWARE PROTEUS

Pada postingan ini saya akan menjelaskan bagaimana cara melakukan simulasi menggunakan software Proteus ISIS. Untuk mendapatkan software Proteus silakan download disini. Tutorial simulasi ini saya fokuskan untuk rangkaian mikrokontroler dan rangkaian elektronika sederhana, dikarenakan jika anda sudah mahir menggunakan simulasi mikrokontroler dan elektronika sederhana, maka secara tidak langsung anda juga sudah bisa melakukan simulasi untuk rangkaian elektronika lainnya. Dibawah ini adalah toolbar yang sering digunakan untuk melakukan simulasi beserta fungsinya.

Selection

Mode

(no.

1)

merupakan

kursor.

Component Mode (no. 2) digunakan untuk memunculkan part atau komponen yang akan digunakan. Ketika anda meng-klik toolbar ini maka pada sebelah kiri akan muncul gambar berikut. Ketika pertama kali anda meng-klik toolbar Component Mode, maka tidak ada daftar komponen pada menu dibawah ini. Untuk memilih atau memunculkan komponen anda harus menekan tombol P.

Wire Label Mode (no. 3) digunakan untuk memberikan label pada wire (kabel/koneksi) Text Script Mode (no. 4) digunakan untuk menambahkan text script pada lembar kerja, biasanya digunakan untuk memberikan keterangan atau catatan. Buses Mode (no. 5) digunakan untuk memfungsikan wire sebagai Bus (bus adalah kumpulan dari beberapa wire atau koneksi). Terminals Mode (no. 6) digunakan untuk memunculkan terminal, seperti Power, Ground, Input, Output dan Bidir (Bidirectional), seperti gambar dibawah ini.

Graph Mode (no. 7) digunakan untuk menampilkan berbagai bentuk sinyal digital maupun

8) digunakan sebagai penghasil (generator) sinyal DC. 2D Graphics Text Mode (no. Generator Mode (no. dengan kata lain adalah kabel.analog dalam bentuk grafik. seperti gambar dibawah ini. terdapat beberapa buah penampil grafik seperti gambar dibawah ini. 9) merupakan sebuah virtual instrumentasi yang biasanya digunakan sebagai alat penampil bentuk gelombang. 10) merupakan sebuah wire atau koneksi yang menghubungkan antara komponen-komponen. clock dan beberapa sinyal lainnya seperti gambar dibawah ini. Berikut adalah toolbar untuk menjalankan simulasi (berada disebelah kiri bawah): . 2D Graphics Line Mode (no. sinus. Virtual Instruments Mode (no. instrumentasi pengukuran dan lainnya. 11) digunakan untuk menampilkan text 2 dimensi.

14) digunakan untuk menghentikan simulasi mem-pause simulasi Dengan beberapa penjelasan fungsi toolbar diatas maka akan lebih mempermudah anda dalam membuat aplikasi dan mensimulasikannya dengan menggunakan software Proteus. dengan syarat nama dari Terminal input dan output tersebut adalah sama (disini saya gunakan PA0). Daftar komponen yang digunakan adalah sebagai berikut.0 Atmega16 saya gunakan sebuah Terminal input. Pada output LM35 saya menggunakan sebuah Terminal output. 12) digunakan untuk menjalankan simulasi Pause (no. sedangkan Port A. Kemudian digunakan sebuah alat ukur tegangan pada output LM35. Caranya klik toolbar Virtual Instruments Mode kemudian pilih DC Voltmeter. karena pada dasarnya penggunaan Terminal input dan output adalah berfungsi sebagai link yang saling menghubungkan. Kemudian hubungkan tiap probe voltmeter tersebut ke titik yang akan diukur (dalam hal ini output LM35 dengan GND). Saya akan memberikan contoh aplikasi pembacaan suhu LM35 yang hasilnya ditampilkan di LCD 2x16 menggunakan mikrokontroler ATmega16.   Untuk menampilkan terminal VCC dan GROUND silakan klik toolbar Terminal Mode.Play (no. 13) digunakan untuk Stop (no. . Hal ini saya lakukan untuk mempermudah pengkabelan. Berikut adalah schematicnya: Berikut adalah panduan singkat untuk membuat simulasi diatas:  Klik toolbar Component Mode kemudian klik button P pada menu DEVICES disebelah kiri bawah.

Berikut adalah panduan singkat untuk membuat simulasi diatas: .hex atau . Anda dapat mendownload program pengukuran suhu LM35 disini.cof) dan untuk Clock Frequency nya adalah opsional (dapat diubah. Kemudian isikan program ke Atmega16. untuk membandingkan hasil perhitungan dengan simulasi apakah sama atau tidak.  Kemudian jalankan simulasi Saya akan memberikan sebuah contoh lagi tentang rangkaian elektronika beserta perhitungannya. Isikan programnya pada kolom Program File (dapat berupa file . dapat juga tidak). maka akan muncul seperti gambar dibawah ini. double klik pada ATmega16. caranya.

jika pada amperemeter belum muncul nilai arusnya. kemudian doble klik pada sumber tegangan DC tersebut dan beri nilai pada Voltage (volts) sebesar 10 V Untuk memunculkan Virtual Instruments Mode kemudian pilih DC Voltmeter dan DC Ammeter Jalankan simulasi.     Klik toolbar Component Mode kemudian klik button P pada menu DEVICES disebelah kiri bawah. Untuk menampilkan terminal GROUND silakan klik toolbar Terminal Mode. yaitu: V_R5k=(R5k\Rtotal)*V V_R5k=(5k\15k)*10 V_R5k=3. hasilnya sama dengan yang disimulasikan. jangan langsung menutup aplikasi Proteus (mengklik close/exit atau tanda [x]).667 mA Untuk mengukur tegangan pada resistor 5k. sebaiknya di stop terlebih dahulu simulasinya. imulasi Stopwatch Dengan Proteus .33 Volt Dari perhitungan diatas. ubah ke range pengukuran yang lebih kecil. caranya double klik pada Amperemeter kemudian pilih miliAmpere. Berikut adalah perhitungannya: V=I*R_T Dimana: V=tegangan I=arus R_T=RTotal Untuk arus total adalah: I=V/R_T I=10/15k I=0. ketika sedang melakukan simulasi. ubah nilai resistor seperti gambar diatas. bisa digunakan pembagi tegangan. CATATAN PENTING: Menurut pengalaman. Untuk memunculkan sumber tegangan DC. kemudian baru di close/exit. klik toolbar Generator Mode kemudian pilih DC. Kemudian cari komponen resistor. Karena nantinya file simulasi anda akan corrupt (rusak). Munculkan di lembar kerja.

Db4 = Portc. Db5 = Portc. E = Portc. Prescale = 256 'setting porta Ddra = 0 Porta = 255 'pengaktifan interupsi timer On Ovf0 Int_timer0 .dat" $crystal = 12000000 'deklarasi LCD Config Lcdpin = Pin .2 .5 .7 Config Lcd = 16 * 2 Cursor Off Cls 'Deklarasi variabel Dim Pengali As Word Dim Detik_1 As Byte Dim Detik As Byte Dim Menit As Byte Dim Jam As Word Dim Status As Byte Dim Status2 As Byte 'konfigurasi timer Config Timer0 = Timer . program menggunakan listing sederhana menggunakan interrupt timer0 listing: 'Program Stopwatch $regfile = "m32def.3 . Db6 = Portc.4 . Dalam simulasi ini digunakan mikrokontroller ATMEGA32 dan program dibuat dengan menggunakan BASCOM.6 .Kita dapat membuat stopwatch sederhana dengan menggunakan mikrokontoller AVR. Db7 = Portc. Rs = Portc.

Set Incr Status End If If Pin_reset Pengali Detik_1 Detik = Menit = Jam = 0 End If = 0 Then = 0 = 0 0 0 If Status > 2 Then Status = 1 End If If Status2 > 2 Then Status2 = 1 Cls . Detik . ":" .0 'setting nilai awal variabel Pin_reset = 1 Pin_on_off = 1 Pin_capture = 1 Status = 0 Status2 = 1 'pengaktifan timer0 Enable Timer0 Do If Pin_capture = 0 Then Bitwait Pin_capture . Detik_1 . ":" .1 Pin_capture Alias Pina. Capture1 End If If Pin_on_off = 0 Then Bitwait Pin_on_off . ":" . 4 Lcd Jam . Set Incr Status2 Cls Locate 1 .2 Pin_on_off Alias Pina. " " . 5 Lcd "CAPTURE" Locate 2 . Menit .'penggantian nama variabel Pin_reset Alias Pina.

":" . ":" . 4 Lcd Jam . mikrokontroller 2 comments: . Electronic. ":" . 5 Lcd "STOPWATCH" Locate 2 . knowledge. " " End If Loop Int_timer0: Incr Pengali If Pengali > 0 Then Pengali = 0 Incr Detik_1 End If If Detik_1 > 99 Then Detik_1 = 0 Incr Detik End If If Detik > 59 Then Detik = 0 Incr Menit End If If Menit > 59 Then Menit = 0 Incr Jam End If Return karena masih pemula dalam pemrograman AVR maka program yang dibuat masih banyak kelemahan diantaranya fungsi start/stop yang masih kurang akurat saat penekanan tombol(telat beberapa milidetik) lalu pada fungsi lap(pause layar) terdapat angka nol yang entah darimana tiba2 muncul di pojok kiri bawah LCD. Detik_1 . Menit . bagi para pembaca yang sudah mahir tolong share apa yang kurang dari program diatas :) Posted by V3X099 at 6:29 AM Labels: design. Detik .End If If Status = 1 Then Enable Interrupts If Status = 2 Then Disable Interrupts If Status2 < 2 Then Locate 1 .

namun tidak ketika program di download ke at32 sesungguhnya. ":" .. maka akan keluar angka 0 kalo masalah telat/ delay..22detik. 2010 10:32 PM Post a Comment Newer Post Older Post Stopwatch Digital menggunakan fasilitas Timer 1 ATMEga 8535 March 16th. ":" . Angka nol yang keluar diakibatkan nilai dari capture1 selalu bernilai nol. " " . karena itu pada saat tombol capture ditekan. Menit . gue ada tugas nih buat project praktikum mikroprosessor… disuruh buat program untuk membuat stopwatch… bisa tolong dikasih arahan ini buatnya harus gimana??? coz gag ada bayangan nih. karena itu terdapt delay. tentu saja ketika di simuilasikan waktu yang ditampilkan akan mengalami delay. tolong ya. Detik_1 . 2010 10:48 PM riry said. ":" .. 2011 Musbikhin . jika anada menjalankan program ini di proteus....wisnu menggelegar said.. October 13. Namun sayangnya dalam program yang anda tuliskan ini digunakan clock internal 8Mhz. October 21. Detik . ini mungkin disebabkan oleh 2 hal. Capture1 seharunya tidak udah menggunakan capture1. untuk muncul keluar angka nol pada saat tombol capture ditekan itu disebabkan karena pada program ==>Lcd Jam . yang setiap clock nanti nya tidak akan mengeluarkan waktu tepat 1 detik melainkan 1. ya ya ya dateline nya buat minggu ini ni….

fitur yang saya pakai yaitu ekternal interupt 0.Dalam projek ini saya menggunakan ATmega 8535. eksternal interupt 1 dan timer 1. Sedangkan pada hardware yaitu menggunakan 2 push button dan LCD 2×16. Berikut Schematic : .

Setting Codevision AVR : Berikut programnya : .

http://www.25. HP InfoTech s.h> #include <stdio. // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here TCCR1A=0×00.l.equ __lcd_port=0x1B . sprintf(lcd_buffer. TCCR1A=0×00.com Project : Version : Date : 3/15/2011 Author : F4CG Company : F4CG Comments: Chip type : ATmega8535 Program type : Application Clock frequency : 12.mulai). lcd_puts(lcd_buffer).PORTA #endasm #include <lcd. . lcd_clear(). lcd_gotoxy(0.8 Professional Automatic Program Generator © Copyright 1998-2007 Pavel Haiduc.r.hpinfotech.0).h> unsigned char lcd_buffer[33]./***************************************************** This program was produced by the CodeWizardAVR V1.h> // Alphanumeric LCD Module functions #asm . unsigned int mulai. TCCR1B=0×02.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 128 *****************************************************/ #include <mega8535. } // External Interrupt 1 service routine interrupt [EXT_INT1] void ext_int1_isr(void) { // Place your code here mulai=0.”Time: %d ms”.

DDRB=0×00. // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0×00.TCCR1B=0×00. mulai++. // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0×00. DDRC=0×00. TCNT1H=0×00. } // Declare your global variables here void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0×00. TCNT1L=0×00. } // Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) { // Place your code here TCNT1H=0×00. DDRA=0×00. // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0×00. // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped . TCNT1L=0×00. DDRD=0×00.

OCR0=0×00. TCCR2=0×00. TCNT2=0×00. OCR2=0×00. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0×00. // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0×00. // External Interrupt(s) initialization // INT0: On // INT0 Mode: Low level // INT1: On // INT1 Mode: Low level // INT2: Off GICR|=0xC0. OCR1AH=0×05. . TCNT0=0×00. TCNT1L=0×00.000 kHz // Mode: Normal top=FFFFh // OC1A output: Discon. ICR1L=0×00. // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 1500. // OC1B output: Discon. TCNT1H=0×00. TCCR1B=0×02. OCR1BH=0×00. OCR1BL=0×00. ICR1H=0×00. MCUCSR=0×00.// Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0×00. GIFR=0xC0. OCR1AL=0xDC. MCUCR=0×00.

//Setting prescalar 8 OCR1AH=0×05. // Global enable interrupts #asm(“sei”) while (1) { // Place your code here }.OCR1AL=0xDC. Kuncinya yaitu pada registry: TCCR1B=0×02. SFIOR=0×00. Crystal yang saya pakai yaitu 12MHz. nilai timer yang ada pada TCNTn akan dinolkan lagi jika TCNTn sudah sama dengan nilai yang ada pada register OCRn.65535. // LCD module initialization lcd_init(16). // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0×80.// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0×10.// Mensetting nilai 0CR pada timer 1 yaitu 0x05DC atau (=1500 desimal) Pada mode CTC Timer 1.666 us. sebelumnya OCR harus diset terlebih dahulu pada timer 0 dan 0 range dari OCR = 0-255 sedangkan pada timer 1 range dari OCR = 0.Crystal/8= 12000000MHz/8= 1500000 Hz =Waktu tiap 1 clock 1/1500000= 0. } Tampilan videonya saat dirunning : Cara mengeset agar counter akan bertambah tiap 1 ms adalah sebagai berikut : Disini menggunakan timer1 mode CTC dengan prescalar 8.OCR1AL=0xDC . OCR1AH=0×05. TCCR1B=0×02. Setting nilai dari OCR = 1500(10) .

saat nilai TCNT1 = OCR maka progam akan mengaktifkan fungsi interupt Timer 1 output compare A match.666 us X 1500 = 999 us= mendekati 1 ms. .TIMSK=0×10. TIMSK=0×10. Sehingga perhitungannya = waktu tiap 1 clok x 1500= 0.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->