3 Kasım 2008 Pazartesi

8051 mikroişlemcisi için trafik ışığı uygulaması



#include<89c51rd2.h>
unsigned char i,b,c;
void bekle (b)
{
TMOD=0x01;
for(c=0;c<=b;c++)
{
for (i=0;i<20;i++)
{
TH0=500000/255;
TL0=-500000%256;
TF0=0;
TR0=1;
while (TF0==0);
}
}

}
void yan() interrupt 0
{
P1=0x62;
bekle(1);
P1=0x81;
bekle(2);
P1=0x43;
bekle(1);
}

void main()
{
EA=1;
EX0=1;
IT0=1;
while(1)
{
P1=0x24;
}
}

30 Mayıs 2008 Cuma

8051 mikroişlemci alıştırma


her 5 darbe de 0-9'a kadar sayan program.P3.4 portu yani T0'ı sayıcı olarak kullanmak.
#include
void main()
{
P2=0;
TMOD=0x05;
TH0=0;
TL0=0;
ET0=EA=0;
TR0=1;
while(1)
{
if(TL0==5)
{
P2++;
if(P2==10) P2=0;
TL0=0;
}
}
}

19 Mayıs 2008 Pazartesi

8051 kesme(interrupt) uygulaması

7 Khz ve 500 hz kare dalga üretici
#include<89c51rd2.h>

unsigned char a=0;
void kesme() interrupt 1
{
P1_0=~P1_0;
}
void kesme2() interrupt 3
{
a++;
if(a==4)
{
P1_7=~P1_7;
a=0;
}
}
void main()
{
P1=0;
TMOD=0x22;
TH0=256-71;
TH1=6;
TR0=TR1=1;
EA=1;
ET0=ET1=1;
while(1);
}

17 Mayıs 2008 Cumartesi

8051 kesme(interrupt) uygulaması

P3 protunun T0 girişinden 10 hz lik clocta displayde 1 artmasını sağlayan 9 olunca sıfırlayan.harici kesme ile yapılmış bir uygulama.

#include<89c51rd2.h>
void arttir(void) interrupt 1 // timer 0 kesmesi
{ if(P2<9)
P2=P2+1;
else
P2=0;


}

void main(void)

{ P2=0;


TMOD=0X06; //timer mod 2 de çalistirildi,timer sifirin sayici olarak kullanildi
TH0=246;
TL0=246;
TR0=1;
EA=1;
ET0=1;
while(1);
}

8051 interrupt(kesme) örnekleri


ileri sayarken 9 da duran geri sayarken 0 da duran.kesmelerle yapılan 0-9 ileri geri sayıcı programı

#include<89c51rd2.h>
int i;
void a(void) interrupt 0 //harici kesme 0
{
if(i<9)
{

i++;
P1=i;
}

}
void x(void) interrupt 2 //harici kesme 1
{

if(i>0)
{
i--;
P1=i;
}


}
void main(void)
{
EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
P1=0;
while(1)

{

}

}

8051 interrupt(kesme) örnekleri

ilk etapta 0 dan başlayarak sayan.butona basıldıkça tersine sayan 0-9 sayıcı uygulaması.

#include<89c51rd2.h>
int i;
int a,b;
void bekle(void)
{ unsigned int x,y;
for(x=0;x<32767;x++)
for(y=0;y<=2;y++);


}
void x(void) interrupt 0 //harici kesme
{
b=a;
b=!b;
a=b;

}
void main(void)
{ EA=1;
EX0=1;
IT0=1;
P1=0;
a=1;

while(1)
{
while(a==1)
{
if(i<9)
{
bekle();
i++;
P1=i;
}
else
{
i=0;
P1=i;
}
}
while(a==0)
{
if(i==0)
{
bekle();
i=9;
P1=i;
}
else
{
bekle();
i--;
P1=i;
}
}



}

}

16 Mayıs 2008 Cuma

8051 için c dili yazılmış buton kontrollü karaşimşek


#include<89c51rd2.h>
void bekle(void)
{

int i;
for(i=0;i<20000;i++);
}

void main()
{ P1=1;

P2=0x01;
while(1)
{
while(!P2_7)
{
while(P1_0);
while(!P1_0);
bekle();
P2=P2<<1;
}

while(!P2_0)
{
while(P1_0);
while(!P1_0);
bekle();
P2=P2>>1;
}

14 Mayıs 2008 Çarşamba

8051 için c dili yazılmış 0-99 sayıcı


Devreyi proteusta kurun.c kodlarını keilde derleyin.hex kodunu 8051'e yükleyin
#include<89c51rd2.h>
void main(void)
{
int bolum,kalan;
TL0=0;
TMOD=0X05;
TR0=1;
while(1)
{
if(TL0==100)
{ TL0=0;

}
else
{
bolum=TL0/10;
kalan=TL0%10;
P1=kalan+bolum*16;

}
}
}

23 Mart 2008 Pazar

8051 için c dili yazılmış vavien anahtar uygulaması


#include<89c51rd2.h>
void main()

{ P2=0;
P1_0=1;
P1_1=1;
while(1)

{ if(!P1_0 | !P1_1)
{P2=0xff;}

if(P1_0 & P1_1)
{
P2=0;
}

}

}
Alıntıdır.

8051 için c dili yazılmış binary sayıcı



#include<89c51rd2.h>

void main()
{ P2=0;
while(1)
{ while(P1_0);
while(!P1_0);
if(P2==0xff)
{
P2=0;
}
else
{
P2=P2+1;
}

}

}

8051 için c dili ile yazılmış johnson sayıcı

#include<89c51rd2.h>
void main()
{ int v;
P2=0;
while(1)
{
v=128;

while(P1_0);
while(!P1_0);
if(P2==0xff)


{while(1)

{
while(P1_0);
while(!P1_0);
if(P2!=0)
{P2=P2-v;
v=v/2;
}
else
break;
}

}

else
{P2=P2*2;
P2=P2+1;

}

}

}

8051 için c dili yazılmış 0-9 sayıcı


















Program keilde yazılmıştır.

#include<89c51rd2.h>
void main()

{P1_0=1;
P1_1=1;
P3=0;
while(1)
{
if(!P1_0)
{
while(!P1_0);

if(P3<=8) P3=P3+1; else P3=0; } if(!P1_1) { while(!P1_1); if(P3==0) P3=9; else P3=P3-1; } } } daha fazla bilgi için: http://8051turk.com/site/

Güvenlik Politikası

Privacy Policy Privacy Policy Ekrem AYDOĞDU built the Düzhesap app ...