Senin, 27 Februari 2012

Simulasi Komunikasi Serial dengan Proteus


Buat para newbie di bidang Mikrokontroler  untuk mempelajari komunikasi serial mungkin akan sedikit repot. Karena sekarang udah jarang PC dan laptop yang masih menyediakan port serial atau biasa disebut DB9. Atau bahkan ada yang ingin belajar programing mikro tapi ga punya hardwarenya. Nah trus gimana donk biar bisa tetep mempelajari komunikasi serial..?? Buat yang ingin mempelajari komunikasi serial dan ga punya laptop ato pc yang masih ada port serial nya kita bisa memakai software2 ini.. untuk membuat port serial virtual kita  bisa memakai software vspe. Silahkan download disini http://www.eterlogic.com/downloads/SetupVSPE.zip


VSPE adalah software simulasi port serial yang memungkinkan kita membuat port serial virtual, Hal ini mampu menciptakan berbagai perangkat virtual untuk mengirim / menerima data. Tidak seperti port serial biasa, perangkat virtual memiliki kemampuan khusus: misalnya, perangkat yang sama dapat dibuka lebih dari sekali oleh berbagai aplikasi, yang dapat berguna dalam banyak kasus. Dengan VSPE Anda dapat berbagi data port fisik serial untuk beberapa aplikasi, mengekspos port serial untuk jaringan lokal (melalui protokol TCP), membuat pasangan perangkat virtual port serial dan sebagainya.
Untuk simulasi mikrokontroler kita bisa menggunakan Software proteus. 

Proteus adalah sebuah software untuk mendesain PCB yang juga dilengkapi dengan simulasi pspice pada level skematik, sebelum rangkaian skematik diupgrade ke PCB shingga sebelum PCBnya di cetak kita akan tahu apakah PCB yang akan kita cetak sudah benar atau tidak.

Proteus mengkombinasikan program ISIS untuk membuat skematik desain rangkaian dengan program ARES untuk membuat layout PCB dari skematik yang kita buat.

Software ini bagus digunakan untuk desain rangkaian mikrokontroller. Proteus juga bagus untuk belajar elektronika seperti dasar2 elektronika sampai pada aplikasi mikrokontroller. Software ini jika di install menyediakan banyak contoh aplikasi desain yang disertakan sehingga kita bisa belajar dari contoh2 yang sudah ada.

Setelah semua software siap. sekarang tinggal instal software dan pembuatan proramnya..
1. Instal VSPEnya trus jalankan.. pada menu device pilih create
2. pada device type pilih pair kemudian tekan next.. dan finish..
3. selamat kita sudah membuat virtual port COMx --> COMy. hasil di penulis yaitu COM1 <==> COM2


4. Disini kita menggunakan mikrokontroller ATmega8535. sekarang buat rangkaian seperti ini di proteus.


5. Masukan source code C ini. Jangan lupa di compile dulu pake CVAVR dengan frekuesi 8Mhz

/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 27/02/2012
Author : Bayu Sasongko
Company : Teknik Elektro, University Of Lampung
Comments:


Chip type : ATmega8535
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/

#include

// Standard Input/Output functions
#include
#include

// 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=0x00;
DDRA=0x00;

// 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=0x00;
DDRB=0x00;

// 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=0x00;
DDRC=0x00;

// 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=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{
// Place your code here
printf("Bayu Sasongko ");
printf("http://etekno.blogspot.com ");
delay_ms(100);
};
}

6. Setelah di compile, load programnya di proteus dan pilih setingg CKSEL fuses nya "int.RC 8Mhz"  karena kita tadi memakai frekuesi 8 Mhz di progarmnya. Atur juga settingan DB9di proteusnya, pilih physical port-nya COM1 dan setiingan lainnya seperti gambar dibawah ini


7.  Buka hyperterminal pilih connecting using COM2 (beda sama langkah sebelumnya), setting bit per second = 9600, data bit=8, parity=none, stop bit=1, dan flow control =none, klik apply

8. Jalankan rangkain di proteus dan lihat di hyperterminal




9. Selain hiperterminal bisa juga dengan menggunakan Visual basic, LabView atau Software lainnya sesuai dengan kreatifitas anda untuk menampilkan datanya. Jika anda memakai windows 7 ternyata hiperterminalnya hilang atau sengaja dihilangkan oleh microsoft. tenang kita bisa mengakalinya, baca di postingan saya berikutnya.

Selamat berkreasi.

23 komentar:

  1. saya mau bertanya, bagaimana membuat usb downloader dengan target avr ?

    BalasHapus
  2. silahkan baca disini mas http://etekno.blogspot.com/2010/06/membuat-usb-downloader-untuk-avr.html

    BalasHapus
  3. keren gan artikelnya....

    mampir ke tempat saya juga y ....
    thankz .... ^_^

    BalasHapus
  4. Mas Bayu, gimana nyari komponen COMPIM di Proteus.
    Saya pakai Proteus 7.5 SP3 kok gak dapet ya?
    Thanks

    BalasHapus
  5. @mas eko, coba lihat sebelah kiri ada aga atas ada simbol "P" "L" sama tulisan "device", pilih yang "P" di bagian keywoard ketikan "Compim"...:)

    BalasHapus
  6. mas bisa minta source codenya gak? soalnya gak bisa di copas... terima kasih

    BalasHapus
  7. mas boleh minta source codenya gak? soalnya gak bisa di copas.. terima kasih

    BalasHapus
  8. kalo komunikasi dari vs c++ ke mikrokontrol atmega16 gimana caranya bang?

    makasih

    BalasHapus
    Balasan
    1. hmm...blum pernah coba mas....tapi mnurut sy prinsipnya sama......tinggal cari compiler c++ nya yg ada komponen serial ...kalau di visual basic ada komponen serialnya...

      Hapus
  9. makasih mas,
    akhirnya bisa juga :)
    ini ss saya :
    http://www.facebook.com/photo.php?fbid=501660476511279&set=o.209354465772182&type=1&theater

    BalasHapus
  10. Mas kenapa karakter yang keluar dari proteus saya ke hyper terminal karakter2 aneh gitu?

    BalasHapus
    Balasan
    1. mungkin setingan baudrate yang mas bagas gunakan kurang tepat...bisa baudrate di proteus atau waktu program mikrokontrollernya....

      Hapus
    2. atau bisa juga frekuensi antara proteus dengan program CAVRnya berbeda....

      Hapus
  11. mas it pake program CAVR yang versi berapa yah?

    BalasHapus
    Balasan
    1. versi 2 kalau tidak salah....bisa pake versi yg terbaru juga tidak apa2 kok

      Hapus
  12. saya mau tanya dong mas, biar bisa baca adc dari mikro atmega835 gmn ya? soalnya saya bikin kok yang keluar dari serial malah karakter2 aneh?

    BalasHapus
  13. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  14. Maf mas mau tnya dong, pnya sya ko g mncul data nya di hyper trminal.Trus lampu indicator pada DB9 nya hjau smua.Mhon solusinya ya mas :D

    BalasHapus
  15. makasih mas,
    tapi kenapa pas disimulasiin, tulisannya ga beraturan ya mas, mohon bantuannya

    BalasHapus
  16. mas mau tanya... kenapa kok gak pake ic max232 ya? level tegangan mikrokontroler sama komunikasi serial kan beda... atau hanya sekedar simulasi saja... mohon pnjelasanya mas... makasih...

    BalasHapus

Silahkan isi komentar yang dapat membangun blog ini. Atas komentarnya saya ucapkan terimakasih

Related Posts Plugin for WordPress, Blogger...