3 çıkış ile veri gönderme ve alma programları.
Bağlantılar:
U1 RA0= U2 RA0
U1 RA1=U2 RA1
U1 RA2=U2 RA2
Çıkışlar U2 PORTB(RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7)
Not:Anlamadığınız herhangi bir konuyu sorabilirsiniz(Sorular-Sorunlar bölümünden elbette
)
Veri gönderen Entegre(Pic16f84)
PHP:
/*www.cerezforum.com
merakettim*/
#include <pic1684.h>
void verigonder(int veri);
void bekle(int bek)
{
int a;
for(a=0;a<bek;a++)
asm("NOP");
}
void main(void)
{
TRISA=0b00000000;
TRISB=0b11111111;
PORTA=0;
verigonder(9999);
bas:
goto bas;
}
void verigonder(int veri)
{
int basamak=1,parca,say;
RA2=1;
for(;;)
{
parca=(((veri%(basamak*10))-(veri%basamak))/basamak);
if(basamak>veri)
break;
RA1=1;
for(say=0;say<parca;say++)
{
RA0=1;
bekle(100);
RA0=0;
}
RA1=0;
basamak*=10;
}
RA2=0;
}
Veri alan entegre(pic16f84)
PHP:
#include <pic1684.h>
int verioku(void);
void main(void)
{
//www.cerezforum.com
//merakettim
int veri=0;
TRISA=0b00000111;
TRISB=0b00000000;
PORTA=0;
PORTB=0;
bas:
if(RA2==1)
veri=verioku();
PORTB=veri;
goto bas;
}
int verioku(void)
{
int bas=1,gonder=0,verial=0,bc=0,r1den;
for(;;){
if(RA1==1)
{
r1den=1;
if(RA0==1&&bc==0)
{
verial++;
bc=1;
}
if(RA0==0)
bc=0;
}
if(RA1==0&&r1den==1)
{
r1den=0;
gonder+=verial*bas;
verial=0;
bas*=10;
}
if(RA2==0)
{
return gonder;
break;
}
}
}