Pic16F877A ve Max232 li devreye visual basicde program yazmak

Katılım
18 Ocak 2008
Mesajlar
1,088
Puanları
156
Yaş
40
Arkadaşlar selamun aleyküm bir proje yapıyorum devremde max232 entegresi birde 16F877A entegresi var bir tane de 4x20 karakter lcd ekran
Yapmak istediğim devrenin özünü şu şekilde tarif edeyim...

Visual basic ile bir arayüz programı yapıyorum programda birkaç buton,bir textbox var birde mscomm32.ocx dosyasını kullanıyorum.
Butonlardan örneğin A yazılı olana bastığımda bilgisayarın seri portundan A harfini 8N1 formatında ve 2400 baud ile yollayacak sonra pic bu A harfini yada karşılığı olan 65 sayısını aldığı zaman örneğin portd.6 bitini high yapacak ve pic bilgisayara A harfini aynı seri iletişim mantığı ve baud u ile tekrar geriye yollayacak yada ben pice istediğim bir sayıyı pcye gönderttireceğim yani bir şekilde iki yönlü veri alış verişi....
Şimdiye kadar ki çalışmalarımda bilgisayarda kurulu olan visual basic programı ile yaptığım uygulamalarda örneğin 3 buton koydum butonların caption değerlerini sırası ile A,B,C olarak değiştirdim sonra her butonun içine aşağıdaki komutları girdim...

Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,N,8,1"
MSComm1.PortOpen = True
MSComm1.Output = "A"
MSComm1.PortOpen = False
End Sub
Private Sub Command2_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,N,8,1"
MSComm1.PortOpen = True
MSComm1.Output = "B"
MSComm1.PortOpen = False
End Sub
Private Sub Command3_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,N,8,1"
MSComm1.PortOpen = True
MSComm1.Output = "C"
MSComm1.PortOpen = False
End Sub

Pic için ise aşağıdaki programı yazdım

Device 16F877A
Include "modedefs.bas"
ADCON1=7
Config HS_OSC , WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF , CP_OFF , DEBUG_OFF
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.3
Declare LCD_RSPIN PORTB.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 4
Print At 1,1,"MURAT"
DelayMS 2000
Print $FE,1
Dim degisken As Byte
degisken=0
Dim dongu As Byte
dongu=0
basla:
SerIn PORTC.7,T2400,[degisken]
Print At 1,1,degisken
Print At 2,1,#degisken
DelayMS 100
GoTo basla
Burada pic için SerIn PORTC.7,T2400,[degisken] satırında da görüldüğü gibi T2400 modunu kullandım N2400 ile haberleşmeyi sağlayamadım...
Sonuç olarak bilgisayarda visual basic ile yazdığım programdan pic e istediğim gibi karakter yada sayı gönderebiliyorum bir problem olmadı fakat sorun şurada
Picten Visual basic e bilgi gönderemedim burada çelişkiye düştüğüm bazı durumlar var örneğin T2400 mü kullanacağım N2400 mü yani verileri terslenmiş mi yollayacağım direk mi bu birinci çelişki.
İkinci çelişkili durum ise şu;bir değişkene picin yolladığı seri bilgileri almak için şu komut yeterli mi DEGISKEN=mscomm1.input yada ben bu veri alma komutunu/komutlarını nasıl ne şekilde ve nereye yazmam lazım bu işin mantığı nedir
Pic tarafından pc ye seri bilgi yollamak için kullanacağım komut ise
SEROUT PORTC.6,T2400,[DEGISKEN] yada SEROUT PORTC.6,T2400,["A"] şeklinde kalıplara sahip olacak fakat picten visual basicde yazacağım programın veri alması için T2400 mü N2400 mü yazmam lazım ve visual basicde bu verileri alması için nasıl bir döngü veya nasıl bir komut grubu oluşturmam lazım arkadaşlar bir el atarsanız çok memnun olurum saygı ve sevgilerimle....
 
Merhaba arkadaşım bunun içinprogram yazmana gerek yok. hyper terminal yada vbterminal de kullana bilirsin ben bunu ldmicro da defalarca yaptım ama sadece proteusta denedim. 16f628 ile yaptığım devreyi siteye yeni ekledim. 16f628 ile bilgisayardan 10ad. çıkış 5 bölge kontrol ettirerek ışk açma kapatma yaptırtım. Örneğin: Komut 25A yazınca 2. bölgedeki 5 nolu çıkış aktif oluyor kapatmak için 25K diyorsun kapanıyor yada 2HA diyorsun 2. bölgenin hepsi açılıyor hepsini kapama için 2HK yeterli oluyor. Kolay gelsin. devreyi aşağıya ekliyorum:
 

Ekli dosyalar

  • bilgi sayardan 5bölge 50 kontrol.rar
    31.4 KB · Görüntüleme: 5
Usta ilgi ve alakanız için çook teşekkür ederim fakat bana bu anlattığın lazım değil bana visual basic ile yazılmış program lazım özel bir devrede kullanmak istiyorum amacım sadece data aktarımı değil kolay gelsin...
 
HAS ARTVİNLİ ARKADAŞIM İKİMİZDE AYNI DEVRE İLE UGRAŞIYORUZZ bende aynı devreyi yapmaya çalıyorum max232 devresini nasıl yaptın ben pıc veri atamadım max232 de hangi kondasatörleri kullandın yaptıgın devreyi atabilirmisin sana kolay gelsinn Text1 = Text1 & MSComm1.Input 'pic tarafından yollanan datayı texte almak için kullanman gereklı olan kod degişken kullanmana gerek yok
 
18f452 mi yoksa 16f877 mi 20mhz de çalıştırıcam .
 
arkadaşlar biraz alakasız olcak ama üniversitede bilgisayar arayüzü için hangi programı gösteriyolar visual mi delphimi c mi??
 
hangi bölümdesin derslerine bir baksan bulursun sanırım..
 
lütfen bana da yardım edermsinz benm vis.basicde manav proğramı yapmam gerek ama kodları yapamıyorum bana yardım edermsnz lütffeeeeeen
 
Merhaba
Arkadaşlar bir konuya açıklık getireyim.PC ile PIC arasındaki haberleşmedeki en büyük sorun PIC tarafına yazılacak programdır.Bu programı sağlam bir şekilde yazdıktan sonra parametrelere göre VB ile arayüz yazmak daha kolay olur.Bu konu üstünde 4-5 aydır çalışmaktayım.Amatör de olduğum için takıldığım bazı yerler oluyor.Takıldığım yerleri de atlamadan devam etmek istediğimden henüz kafamdaki projeyi başaramadım.PC'den PIC'e istediğim gibi kontrol yollayabildiğim halde aynı çevrim içinde PIC'ten PC'ye data almakta zorlanıyorum.Ayrı ayrı kitlerde bu işlem oluyor ama hem data yollama hem de datayı geri alma işini aynı PIC yazılımı içinde yapamadım.
 

Ekli dosyalar

  • ku.rar
    4.4 MB · Görüntüleme: 4
vb ile arayüz çok kolay google dan aratırsanız uygulamalar bulunur çoğunlukla C# örnekleri var
önemli olan picteki program
mesaj sistemini doğru kurarsanız başarabilirsiniz
ihtiyacınız olan bilgi Microsoftun MSDN kütüphanesinde ve microchip application note larda
kolay gelsin
 

Forum istatistikleri

Konular
130,065
Mesajlar
932,701
Kullanıcılar
453,050
Son üye
alperen343

Yeni konular

Çevrimiçi üyeler

Geri
Üst