2 Adet 877 ile tüm RS485 haberleşme

Başlatan Mustafa48, 21 Aralık 2008, 16:36:56

Mustafa48

Aşağıdaki kodlarla 2 adet 877 RS485 olarak haberleşirler
877 nin tüm portları uzaktaki 877 den okunmaktadır. Haberleşme
karşılıklı olarak eş zamanlı yapılmaktadır. Faydalanmak bu tür
projelere ihtiyacı olan arkadaşlara örnek olabilir. Proje isis te ve
plaket üzerinde denenmiştir. Yaklaşık 200 metre mesafeden haberleşme
sorunsuzdur


http://dc87.4shared.com/download/88751665/fe1420b1/2x877_RS485.rar

http://www.4shared.com/file/88751665/fe1420b1/2x877_RS485.html

http://rapidshare.com/files/200686183/2x877_RS485.rar

http://rapidshare.com/files/200658179/Sema.rar.html

RS 485 haberleşme için SN75179 entegresi kullandım Gayet sağlıklı
çalışmaktadır

ETE arkadaşımıza katkılarından dolayı teşekkür ederim

Kodlar

1. 877

INCLUDE "modedefs.bas"

define osc 4
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 25  ' 2400 Baud @ 4MHz, 0,17%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

INTCON=%00000000 
ON INTERRUPT GOTO INT
ADCON1=7
'CMCON=7
'OPTION_REG.7=1
TRISA=%11111111
TRISB=%11111111
TRISC=%10111111
TRISD=%11111111
TRISE=%000
CLEAR
symbol ARIT=portE.0 
symbol OSMO=portE.1 
symbol LAMP=portE.2 
symbol ELK=portC.0 
symbol DOLE=portC.3
symbol DOLY=portC.2 
symbol DOLD=portC.1
symbol ONAR=portC.5
symbol ONOS=portC.4

SYMBOL GIE  =INTCON.7   'genel interruptları açıyor
SYMBOL PEIE =INTCON.6   'peripheralinterruptları açıyor
SYMBOL RCIE =PIE1.5     'USART Recive interrupt enable bit
SYMBOL RCIF =PIR1.5  

VER1 VAR BYTE 56 
VER2 VAR BYTE 57
VER3 VAR BYTE 58
VER4 VAR BYTE 59
VER5 VAR BYTE 60
VER6 VAR BYTE 61
VER7 VAR BYTE 62
VER8 VAR BYTE 63
VER9 VAR BYTE 64
GEL1 VAR BYTE 65
GEL2 VAR BYTE 66
GEL3 VAR BYTE 67
A VAR BYTE    68
temp  var byte 69
N var byte

CLEAR
RCIE=1
PEIE=1
GIE=1
'-----------------------------------------------------
BASLA:
for N= 0 to 255
pauseus 2
next

IF GEL1=11 then low ARIT
IF GEL1=22 then high ARIT
IF GEL2=33 then low OSMO
IF GEL2=44 then high OSMO
IF GEL3=55 then low LAMP
IF GEL3=66 then high LAMP

VER1=portB
VER2=portD
VER3=portA

if ELK=0 then VER4=12
if ELK=1 then VER4=21
if DOLE=0 then VER5=13
if DOLE=1 then VER5=31
if DOLY=0 then VER6=14
if DOLY=1 then VER6=41
if DOLD=0 then VER7=15
if DOLD=1 then VER7=51
if ONAR=0 then VER8=16
if ONAR=1 then VER8=61
if ONOS=0 then VER9=17
if ONOS=1 then VER9=71

hserout ["M","U","S",VER1,VER2,VER3,VER4,VER5,VER6,VER7,VER8,VER9]
for a= 0 to 255
pauseus 2
next 
GOTO BASLA 

DISABLE
INT:
    GIE=0
   Hserin 200,h6,[wait("ABC"),GEL1,GEL2,GEL3]
h6:   
   TEMP=RCREG 
   GIE=1
   Resume
   enable
end    


2.  877

INCLUDE "modedefs.bas"

define osc 4
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 25  ' 2400 Baud @ 4MHz, 0,17%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

INTCON=%00000000 
ON INTERRUPT GOTO INT
ADCON1=7
'CMCON=7
'OPTION_REG.7=1
trisa=%00000000
trisb=%00000000
trisc=%10000000
trisd=%00000000
trise=%111

symbol ARIT=portE.0 
symbol OSMO=portE.1 
symbol LAMP=portE.2 
symbol ELK=portC.0 
symbol DOLE=portC.3
symbol DOLY=portC.2  
symbol DOLD=portC.1 
symbol ONAR=portC.5 
symbol ONOS=portC.4 

SYMBOL GIE  =INTCON.7   'genel interruptları açıyor
SYMBOL PEIE =INTCON.6   'peripheralinterruptları açıyor
SYMBOL RCIE =PIE1.5     'USART Recive interrupt enable bit
SYMBOL RCIF =PIR1.5  

VER1 VAR BYTE 56 
VER2 VAR BYTE 57
VER3 VAR BYTE 58
VER4 VAR BYTE 59
VER5 VAR BYTE 60
VER6 VAR BYTE 61
VER7 VAR BYTE 62
VER8 VAR BYTE 63
VER9 VAR BYTE 64
GEL1 VAR BYTE 65
GEL2 VAR BYTE 66
GEL3 VAR BYTE 67
A VAR BYTE    68
temp  var byte  69
N var byte 70
for temp=1 to 255
pauseus 5
next  

clear 
RCIE=1
PEIE=1
GIE=1
'-----------------------------------------------------------
BASLA:
for n=0 to 255
pauseus 2
next


PORTB=VER1
PORTD=VER2
PORTA=VER3

IF VER4=12 then low ELK
IF VER4=21 then high ELK
IF VER5=13 then low DOLE
IF VER5=31 then high DOLE
IF VER6=14 then low DOLY
IF VER6=41 then high DOLY
IF VER7=15 then low DOLD
IF VER7=51 then high DOLD
IF VER8=16 then low ONAR
IF VER8=61 then high ONAR
IF VER9=17 then low ONOS
IF VER9=71 then high ONOS

IF ARIT=0 then GEL1=11
IF ARIT=1 THEN GEL1=22
IF OSMO=0 then GEL2=33
IF OSMO=1 THEN GEL2=44
IF LAMP=0 then GEL3=55
IF LAMP=1 THEN GEL3=66

hserout ["A","B","C",GEL1,GEL2,GEL3]
for a= 0 to 255
pauseus 2
next 
GOTO BASLA 

DISABLE
INT:
    GIE=0
   Hserin 200,h6,[wait("MUS"),VER1,VER2,VER3,VER4,VER5,VER6,VER7,VER8,VER9]
h6:   
   TEMP=RCREG 
   GIE=1
   Resume
   enable
end

MetaL_HEAD

Hocam yüklediğin sitelerde password istiyor. Onu da paylaşır mısın ?