MikroC ile USB Programlama -1

MikroC ile USB programlama çok kolaydır. USB programlama için gerekli olan bütün araçları bünyesinde barındırmaktadır. Şimdi en basitinden Proteus ve mikroc kullanarak USB programlamayı öğreneceğiz.

Bizim için gerekli olan programlar:

1- Proteus devre çizimi ve similasyon için,

2- MikroC Programı PIC tarafı program yazımı için,

3- Visula Studio (C#) PC tarafı program yazımı için.

Proteus programında “Virtual USB” programını kurulmuş olması gerekmektedir. Bulunduğu konum Başlat/Tüm Programlar/Proteus 7 Professional/Virtual USB/Install USB Drivers dosyası çalıştırılarak sanal USB sürücüsü kurulmalıdır. Dosyanın diskte bulunduğu konum “C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\PIM Drivers\VirtualUSBDriver.exe”dir.

Kurulum esnasında işletim sisteme göre 32-bit  veya 64-bit olarak seçim yapılmalıdır. Aşağıdaki resimde 64-bit Windows7 işletim sistemine göre seçim yapılmıştır.

VirtualUSB_kurulum

Kurulum tamamlandıktan sonra artık USB devre similasyonları yapılabilir.

Aşağıdaki  devre şemasını Proteus ISIS’te çizelim.

PIC18F455_Deney_kit

Çizim dosyamızı bir isim vererek kaydedelim. Proteus’ta işimiz şimdilik bu kadar.

Şimdi PIC tarafının programını yazmak için mikroC programını çalıştırıyoruz. Programda yeni bir proje oluşturalım. Device olarak PIC18F4550 seçelim ve çalışma frekansı olarak 48 Mhz. seçelim. Tabii MCLR ‘yi disable yapacağız. Ayarlarını aşağıdaki resimde görebilirsiniz.

proje_edit

Resimde görülmeyen yerlerde önemli olan Reset (MCLR) disable seçilmelidir. Ayarlama tamamlandıktan sonra Library Managerden USB library seçili değilse seçilmelidir. Daha sonra F1- Help dosyasından USB örneği kopyala yapıştır ile programa taşıyalım. Aşağıdaki gibi düzenleme yapalım. (USBdsc.c dosyasının yolu doğru yazılmalı)

</pre>
#include <E:\Mikroc\PIC18F4550_DENEME\USBdsc.c>

unsigned char readbuff[64] absolute 0x500; // Buffers should be in USB RAM, please consult datasheet
unsigned char writebuff[64] absolute 0x540;

char cnt;
char kk;
void USB_Kesme() iv 0x0008 ics ICS_AUTO
{
 USB_Interrupt_Proc(); // USB servicing is done inside the interrupt
}

void main(void){
 TRISE=0;
 PORTE=0;

HID_Enable(&readbuff,&writebuff); // Enable HID communication

while(1){
 while(!HID_Read())
 {
 if(readbuff[0]==1) PORTE=1;
 if(readbuff[0]==0) PORTE=0;
 }
 for(cnt=0;cnt<64;cnt++)
 {
 writebuff[cnt]=readbuff[cnt];
 }
 while(!HID_Write(&writebuff,64))
 ;
 }
}
<pre>
Reklamlar

2 thoughts on “MikroC ile USB Programlama -1

    • Program içinde 128 elemanlı dizi oluşturulur. PC’den gönderilen verinin başında sıra no bölümü bulunur. Alınan bu veriler diziye yerleştirilir.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s