16F887 ile 16f628a haberleşmesi

Başlatan ahmet5454, 16 Temmuz 2022, 22:00:33

ahmet5454

Selamlar ustalarım 16f887 ile 16f628a haberleşebilir mi?
yapmak istediğim 16f887 nin bir pinine bağlı bir butona  bastığımda 16f628a da bir led yakmak
yine aynı şekilde 16f628a nin bir pinine bağlı bir butona bastığımda 16f887 de bir led yakmak
böyle bir uygulama yapılabilir mi fikir ve öneride bulunan ustalarıma şimdiden teşekkür ediyorum

mehmet

Birinin çıkış olarak tanımlanmış
pinini, diğerinin giriş olarak
tanımlanmış pinine bağlayacaksınız.
Bireysel çalışan mcular bu şekilde
bağlanmış olacak.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

ahmet5454

Selam hocam piclerin tx ve rx üzerinden haberleşeme olacak sekilde olabiliyor mu acaba?

mehmet

Neden olmasın ki?
Haberleşecek iki cihaz...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

aRci

merhaba;
aslında burada 1 adet program olması yeterli. yapacakları iş aynı olduğu çin karşılıklı olarak haberleşme yapıldığı için Bağlantı şeklin Rx-Tx ve Tx-Rx birbirine çapraz bağlı olarak pinleri bağlaman gerek. sonra ise sürekli buton kontrolü ile seri haberleşme kontrolünü beraber yapmalısınız. Alttaki örnekle 2 buton ve 2 çıkış karşılıklı 2 devre kontrollerini yapabilir.

 ASM
    __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CPD_ON & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_ON & _FCMEN_OFF    
    __config _CONFIG2, _WRT_OFF & _PLLEN_ON & _LVP_OFF & _STVREN_OFF 
    endasm

    OSCCON = %11110000      '8 mhz internal clock, PLL on     
    ANSELA = %00000000      ' Porta. digital IO
    ANSELB = %00000000      ' Digital inputs
    
    DEFINE OSC 32
    DEFINE ADC_BITS 10     ' 10 bit A/D Conversion
    DEFINE ADC_CLOCK 1
    DEFINE ADC_SAMPLEUS 10 ' 5 uS A/D sample time

'///////////////////////////Analoglar///////////////////////////////      
    Symbol GODONE    = ADCON0.1  'Dönüştürme Durum Biti Devam ediyor = 1
    Symbol ADONE     = ADCON0.0  'Dönüştürme Modülü Etkin = 1
    Symbol ADIF      = PIR1.6      'ADC okuma bitti kesme bayrağı 
    ADCON1 = 128
    
RCSTA = $90   ' Enable serial port & continuous receive
TXSTA = $24   ' Enable transmit, BRGH = 1
SPBRG = 64    ' 9600 Baud @ 32MHz, 0,04%
SPBRGH = 3
BAUDCON.3 = 1 ' Enable 16 bit baudrate generator
    
    Symbol GIE       = INTCON.7    'genel kesmeler aktif                         
    Symbol PEIE      = INTCON.6    'Çevresel kesmeler aktif
    
    Symbol RCIE      = PIE1.5      'EUSART alma kesmesi              
    Symbol RCIF      = PIR1.5      'EUsart Kesme Bayrağı             
    'Symbol RCIP      = IPR1.5      'EUsart ALma Kesintisi Öncelik    
    Symbol SPEN      = RCSTA.7    'Seri Bağlantı Noktası Etkin = 1
    Symbol CREN      = RCSTA.4    'Sürekli veri alma etkin = 1
    Symbol OERR      = RCSTA.1    'Sürekli veri alma etkin = 1
    
    
    TRISA = %00000000     'Porta digital Cikis
    TRISB = %00000010
    Porta = 0 
    Portb = 0 

'===============================================================================
'===============================================================================
gelen var byte
symbol Buton1 = portb.4
symbol Buton2 = portb.5

symbol Cikis1 = Portb.6
symbol Cikis2 = Portb.7

Basla:
    if OERR = 1 then CREN = 0:CREN = 1
if Gelen ="1" then Toggle Cikis1
if Gelen ="2" then Toggle Cikis2
Gelen = 0
if Buton1= 0 then Hserout["Btn1"]:Goto Bekle
if Buton2= 0 then Hserout["Btn2"]:Goto Bekle
Hserin  100,Basla,[Wait("Btn"),Gelen]

goto Basla
Bekle:
while Buton1 = 0 or Buton2 = 0 : Wend
goto Basla


ahmet5454

Çok çok teşekkürler aRci hocam Çok sağolun 🖐

Powered by EzPortal